From cb9e0233b89453c9337fec845fa780b520c3eec8 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Thu, 24 Aug 2023 12:49:26 +0100 Subject: [PATCH 1/3] Create README.md for Discovery folder with intents Added mapping of each API to intents --- code/API_definitions/Discovery/README.md | 37 ++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 code/API_definitions/Discovery/README.md diff --git a/code/API_definitions/Discovery/README.md b/code/API_definitions/Discovery/README.md new file mode 100644 index 00000000..a28a4952 --- /dev/null +++ b/code/API_definitions/Discovery/README.md @@ -0,0 +1,37 @@ +# Edge Discovery APIs +These APIs fulfil the ['discovery' intents](https://github.com/camaraproject/EdgeCloud/blob/main/documentation/SupportingDocuments/Harmonisation%20of%20APIs/describing%20and%20harmonising%20the%20Edge%20APIs.md) + +*Simple Edge Discovery* fulfils a single intent, "4. I can discover the closest MEC platform to a specific terminal (closest in terms of shortest network path)" + +*MEC Exposure and Experience Management* is a more comprehensive discovery API and fulfils the following intents: + +### Developer intents +#### Provisioning intents +1. “I can retrieve a list of the operator’s MECs and their status, ordering the results by location and filtering by status (active/inactive/unknown)” +2. "I can discover the capabilities/resources available at an operator’s MEC: CPU, Memory, Storage, GPU" +3. "I can discover the geographical regions covered by the operators MECs" +4. "I can discover the closest MEC platform to a specific terminal (closest in terms of shortest network path)" +5. "I can ask the operator to provision my application server to the optimal MEC for a specific terminal, taking into account connectivity, resources (e.g. vCPU, Memory, network interfaces, storage, GPU) shortest network path, cost, network load, MEC platform load, application privacy considerations etc." + * "I can ask the operator to provision my application server to all MECs that meet these criteria (note this is not focussing on a specific terminal)" + * "I can ask the operator to provision my application server to a minimal set of MECs that meet these criteria across a given footprint (note this is not focussing on a specific terminal)" +6. "I can ask the operator to inform me if the optimal MEC for my application and a specific terminal changes, taking into account mobility events, connectivity, shortest network path, cost, network load, MEC platform load etc." + +16. “I can ask the operator to provide the details of all the onboarded applications” +17. "I can ask the operator to inform about the application instance details e.g., communication endpoints, resource consumed etc" + + +#### Runtime intents +19. "I can discover the closest MEC platform to a particular terminal (closest in terms of shortest network path)" +20. "I can discover the optimal MEC platform for my application and a particular terminal, taking into account connectivity, shortest network path, cost, network load etc." (`A`) +21. "I can discover the optimal application service endpoint for a specific terminal, taking into account mobility events, connectivity, shortest network path, cost, network load, MEC platform load etc." + +### Operator intents +#### Provisioning intents +23. “I can publish an (ordered, filtered) list of my MECs, their coverage, capabilities and status” _(aligns with 1,2,3 in the developer intents)_ +24. “I can map an application’s requirements to the best MEC for hosting it, based on application demands for CPU,Memory,Storage,GPU,bandwith,Network forecast, mobility” _(aligns with 4,5,8,9)_ +#### Runtime intents +25. “I can inform the developer of any event which changes which MEC is optimal for their application and connected terminals” _(aligns with 6)_ + +## Notes: + +`A` this may not be the closest MEC, rather the 'best MEC for this job' which accounts for current MEC or network load, MEC copmute power and features etc. From ed6c8f9a9cf125e28266e388530e2288b3b53fb7 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Thu, 24 Aug 2023 13:00:44 +0100 Subject: [PATCH 2/3] added API descriptions and intents mapping --- code/API_definitions/Discovery/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/code/API_definitions/Discovery/README.md b/code/API_definitions/Discovery/README.md index a28a4952..adef9ae7 100644 --- a/code/API_definitions/Discovery/README.md +++ b/code/API_definitions/Discovery/README.md @@ -1,4 +1,21 @@ # Edge Discovery APIs + +## Simple Discovery API +This API allows a client application to discover the closest MEC platform to the UE hosting the client application. 'Closest' means 'shorteset network path' as that will give the shortest propogation distance, which is a major factor in latency. + +## MEC Experience Management and Exposure API +This API allows a developer to: +- discover available MEC platforms, ranked by proximity to a UE. +- read the state (availability and capabilities) of an operator's various MEC platforms. +- register a service profile (a description of the developer's edge service) with the MEC operator +- register the deployed service endpoints with the MEC operator, which allows the closest service endpoint to be discovered at runtime + +The API will also support the following capabilities: +- events(such as change of status of a MEC platform or another event which could affect their service) +- subscription to notification of events. + +# Mapping to the list of intents + These APIs fulfil the ['discovery' intents](https://github.com/camaraproject/EdgeCloud/blob/main/documentation/SupportingDocuments/Harmonisation%20of%20APIs/describing%20and%20harmonising%20the%20Edge%20APIs.md) *Simple Edge Discovery* fulfils a single intent, "4. I can discover the closest MEC platform to a specific terminal (closest in terms of shortest network path)" From 2298334d3b6f5da6ef1565e1cef43025f93e44cf Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Mon, 9 Oct 2023 15:44:38 +0000 Subject: [PATCH 3/3] Updated intents in readme following discussion --- code/API_definitions/Discovery/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/API_definitions/Discovery/README.md b/code/API_definitions/Discovery/README.md index adef9ae7..203298e8 100644 --- a/code/API_definitions/Discovery/README.md +++ b/code/API_definitions/Discovery/README.md @@ -28,10 +28,6 @@ These APIs fulfil the ['discovery' intents](https://github.com/camaraproject/Edg 2. "I can discover the capabilities/resources available at an operator’s MEC: CPU, Memory, Storage, GPU" 3. "I can discover the geographical regions covered by the operators MECs" 4. "I can discover the closest MEC platform to a specific terminal (closest in terms of shortest network path)" -5. "I can ask the operator to provision my application server to the optimal MEC for a specific terminal, taking into account connectivity, resources (e.g. vCPU, Memory, network interfaces, storage, GPU) shortest network path, cost, network load, MEC platform load, application privacy considerations etc." - * "I can ask the operator to provision my application server to all MECs that meet these criteria (note this is not focussing on a specific terminal)" - * "I can ask the operator to provision my application server to a minimal set of MECs that meet these criteria across a given footprint (note this is not focussing on a specific terminal)" -6. "I can ask the operator to inform me if the optimal MEC for my application and a specific terminal changes, taking into account mobility events, connectivity, shortest network path, cost, network load, MEC platform load etc." 16. “I can ask the operator to provide the details of all the onboarded applications” 17. "I can ask the operator to inform about the application instance details e.g., communication endpoints, resource consumed etc"