Newer
Older
Dimitrios Giannopoulos
committed
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
<h1 id="consuming-services-from-external-partner-organizations">Consuming Services From External Partner Organizations</h1>
<p>A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources.</p>
<p>TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF.</p>
<p>The following figure shows how openslice could be used in such scenarios:</p>
<p><a href="../../images/multi-domain-architecture.png"><img alt="Openslice multi-domain-architecture" src="../../images/multi-domain-architecture.png" /></a></p>
<p>In Openslice we can consume services from 3rd parties via Open APIs.</p>
<p>We use the TMF 632 Party Management model to specify Organizations that we can exchange items and other information such as:</p>
<ul>
<li>Import Service Specifications</li>
<li>Create a Service Order</li>
<li>Use the Service Inventory to query the status of the service ordered to the external partner organization</li>
</ul>
<h2 id="define-an-organization-as-3rd-party-to-consume-services-east-west">Define an Organization as 3rd party to consume services East-West</h2>
<p>An organization must have the following characteristics in openslice catalog, like for example:</p>
<p>"EXTERNAL_TMFAPI_BASEURL", "http://portal.openslice.io"</p>
<p>"EXTERNAL_TMFAPI_CLIENTREGISTRATIONID", "authOpensliceProvider"</p>
<p>"EXTERNAL_TMFAPI_OAUTH2CLIENTID", "osapiWebClientId"</p>
<p>"EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET", "secret"</p>
<p>"EXTERNAL_TMFAPI_OAUTH2SCOPES", scopes</p>
<p>"EXTERNAL_TMFAPI_OAUTH2TOKENURI", "http://portal.openslice.io/osapi-oauth-server/oauth/token"</p>
<p>"EXTERNAL_TMFAPI_USERNAME", "admin"</p>
<p>"EXTERNAL_TMFAPI_PASSWORD", "openslice"</p>
<p>"EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS" = "/tmf-api/serviceCatalogManagement/v4/serviceSpecification?type=CustomerFacingServiceSpecification" (this is optional, fetch a list of service specs it will be relative with the BASEURL. If the url is empty then no specs will be fetched, the EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS might be used)</p>
<p>"EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS" = "/tmf-api/serviceCatalogManagement/v4/serviceCategory/{categoryid}" (this example will fetch all specs in a category. You may define comma separated URLs of categories API URL . This will fetch specifications of every defined category. If you want only one specific category put for example the uuid only of one category: "/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d". multiple urls should be "/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d,/tmf-api/serviceCatalogManagement/v4/serviceCategory/9b6d8bf3-abd2-43c4-8154-c8c6fe5545b2")</p>
<p>"EXTERNAL_TMFAPI_SERVICE_SPEC" = "/tmf-api/serviceCatalogManagement/v4/serviceSpecification"</p>
<p>"EXTERNAL_TMFAPI_SERVICE_ORDER_URLS"= "/test/v1/serviceorder" (this is optional)</p>
<p>An example Organization defined example in json:</p>
<pre><code>
{
"uuid": "1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "Openslice.io",
"id": "1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae",
"isHeadOffice": null,
"isLegalEntity": null,
"nameType": null,
"organizationType": null,
"tradingName": null,
"contactMedium": [],
"creditRating": [],
"existsDuring": null,
"externalReference": [],
"organizationChildRelationship": [],
"organizationIdentification": [],
"organizationParentRelationship": null,
"otherName": [],
"partyCharacteristic": [
{
"uuid": "3a2f7221-e0a2-4a6b-88d1-534c8e1963f6",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_CLIENTREGISTRATIONID",
"valueType": null,
"value": {
"value": "authOpensliceProvider",
"alias": null
}
},
{
"uuid": "c24bb527-f178-4d38-9b93-2027c1732876",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_USERNAME",
"valueType": null,
"value": {
"value": "admin",
"alias": null
}
},
{
"uuid": "27e45df8-414b-44c6-a5d5-3f064e2cfd3b",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_PASSWORD",
"valueType": null,
"value": {
"value": "openslice",
"alias": null
}
},
{
"uuid": "e0e470b8-6024-4014-8a18-2333e5465ce1",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET",
"valueType": null,
"value": {
"value": "secret",
"alias": null
}
},
{
"uuid": "3e0de762-ac80-4c1e-a0a1-f265ff0899b4",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_OAUTH2SCOPES",
"valueType": null,
"value": {
"value": "admin;read",
"alias": null
}
},
{
"uuid": "0bbb8314-f7f2-420d-9fed-ba054b15f886",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_OAUTH2TOKENURI",
"valueType": null,
"value": {
"value": "http://portal.openslice.io/osapi-oauth-server/oauth/token",
"alias": null
}
},
{
"uuid": "3a567de4-79eb-4006-a500-3e5229b44175",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_OAUTH2CLIENTID",
"valueType": null,
"value": {
"value": "osapiWebClientId",
"alias": null
}
},
{
"uuid": "6dca729f-dbe1-46b7-89f1-5c4f9fe89d4e",
"@baseType": "BaseEntity",
"@schemaLocation": null,
"@type": null,
"href": null,
"name": "EXTERNAL_TMFAPI_BASEURL",
"valueType": null,
"value": {
"value": "http://portal.openslice.io",
"alias": null
}
}
],
"relatedParty": [],
"status": null,
"taxExemptionCertificate": []
}
Dimitrios Giannopoulos
committed
</code></pre>
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
</article>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../../lcm/" class="md-footer__link md-footer__link--prev" aria-label="Previous: LCM Rules">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<div class="md-footer__title">
<span class="md-footer__direction">
Previous
</span>
<div class="md-ellipsis">
LCM Rules
</div>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
</a>
<a href="../../service_inventory/" class="md-footer__link md-footer__link--next" aria-label="Next: Service Inventory">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
Service Inventory
</div>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright © 2019-2024 Openslice Project
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<div class="md-social">
<a href="https://osl.etsi.org/" target="_blank" rel="noopener" title="osl.etsi.org" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64h185.4c2.2 20.4 3.3 41.8 3.3 64zm28.8-64h123.1c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6 78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7 10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5 11.6 26 20.9 58.2 27 94.7zm-209 0H18.6c30-74.1 93.6-130.9 172-151.6-25.5 34.2-45.3 87.7-55.3 151.6zM8.1 192h123.1c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zm186.6 254.6c-11.6-26-20.9-58.2-27-94.6h176.6c-6.1 36.4-15.5 68.6-27 94.6-10.5 23.6-22.2 40.7-33.5 51.5-11.2 10.7-20.5 13.9-27.8 13.9s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6-78.4-20.7-142-77.5-172-151.6h116.7zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6 25.5-34.2 45.2-87.7 55.3-151.6h116.6z"/></svg>
Dimitrios Giannopoulos
committed
</a>
<a href="https://labs.etsi.org/rep/osl" target="_blank" rel="noopener" title="labs.etsi.org" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81-2.9-.295-5.7.083-8.4 1.11-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.09 18.09 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3 4.7 0 9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z"/></svg>
Dimitrios Giannopoulos
committed
</a>
<a href="https://www.linkedin.com/company/openslice/" target="_blank" rel="noopener" title="www.linkedin.com" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg>
Dimitrios Giannopoulos
committed
</a>
<a href="https://twitter.com/OpensliceOSS" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9L389.2 48zm-24.8 373.8h39.1L151.1 88h-42l255.3 333.8z"/></svg>
Dimitrios Giannopoulos
committed
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<div class="md-progress" data-md-component="progress" role="progressbar"></div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.instant", "navigation.instant.progress", "navigation.top", "navigation.footer", "navigation.path", "search", "search.highlight"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
Dimitrios Giannopoulos
committed
<script src="../../assets/javascripts/bundle.ad660dcc.min.js"></script>
Dimitrios Giannopoulos
committed
</body>
</html>