You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
4
+
5
+
This API allows a client application to discover the closest MEC platform to the UE hosting the client application. 'Closest' means 'shortest network path' as that will give the shortest propagation distance, which is a major factor in latency.
5
6
6
7
## MEC Experience Management and Exposure API
8
+
7
9
This API allows a developer to:
10
+
8
11
- discover available MEC platforms, ranked by proximity to a UE.
9
12
- read the state (availability and capabilities) of an operator's various MEC platforms.
10
13
- register a service profile (a description of the developer's edge service) with the MEC operator
11
14
- register the deployed service endpoints with the MEC operator, which allows the closest service endpoint to be discovered at runtime
12
15
13
-
The API will also support the following capabilities:
16
+
The API will also support the following capabilities:
17
+
14
18
- events(such as change of status of a MEC platform or another event which could affect their service)
15
19
- subscription to notification of events.
16
20
@@ -23,28 +27,34 @@ These APIs fulfil the ['discovery' intents](https://github.com/camaraproject/Edg
23
27
*MEC Exposure and Experience Management* is a more comprehensive discovery API and fulfils the following intents:
24
28
25
29
### Developer intents
26
-
#### Provisioning intents
27
-
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)”
28
-
2. "I can discover the capabilities/resources available at an operator’s MEC: CPU, Memory, Storage, GPU"
29
-
3. "I can discover the geographical regions covered by the operators MECs"
30
-
4. "I can discover the closest MEC platform to a specific terminal (closest in terms of shortest network path)"
31
30
32
-
16. “I can ask the operator to provide the details of all the onboarded applications”
33
-
17. "I can ask the operator to inform about the application instance details e.g., communication endpoints, resource consumed etc"
31
+
#### Provisioning intents
32
+
33
+
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)”
34
+
2. "I can discover the capabilities/resources available at an operator’s MEC: CPU, Memory, Storage, GPU"
35
+
3. "I can discover the geographical regions covered by the operators MECs"
36
+
4. "I can discover the closest MEC platform to a specific terminal (closest in terms of shortest network path)"
34
37
38
+
16. “I can ask the operator to provide the details of all the on-boarded applications”
39
+
17. "I can ask the operator to inform about the application instance details e.g., communication endpoints, resource consumed etc"
35
40
36
-
#### Runtime intents
37
-
19. "I can discover the closest MEC platform to a particular terminal (closest in terms of shortest network path)"
38
-
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`)
39
-
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."
41
+
#### Runtime intents
42
+
43
+
19. "I can discover the closest MEC platform to a particular terminal (closest in terms of shortest network path)"
44
+
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`)
45
+
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."
40
46
41
47
### Operator intents
48
+
42
49
#### Provisioning intents
43
-
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)_
44
-
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)_
45
-
#### Runtime intents
46
-
25. “I can inform the developer of any event which changes which MEC is optimal for their application and connected terminals” _(aligns with 6)_
47
50
48
-
## Notes:
51
+
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)*
52
+
24. “I can map an application’s requirements to the best MEC for hosting it, based on application demands for CPU, Memory, Storage, GPU, bandwidth, Network forecast, mobility” *(aligns with 4,5,8,9)*
53
+
54
+
#### Runtime intents
55
+
56
+
25. “I can inform the developer of any event which changes which MEC is optimal for their application and connected terminals” *(aligns with 6)*
57
+
58
+
## Notes
49
59
50
-
`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.
60
+
`A` this may not be the closest MEC, rather the 'best MEC for this job' which accounts for current MEC or network load, MEC compute power and features etc.
Copy file name to clipboardexpand all lines: code/API_definitions/Discovery/simple_edge_discovery.yaml
+11-12
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ info:
7
7
---
8
8
# Summary
9
9
10
-
The Simple Edge Discovery API returns the name of the closest operator MEC platform to a particular user device.
10
+
The Simple Edge Discovery API returns the name of the closest operator MEC platform to a particular user device.
11
11
12
12
# Purpose
13
13
Network operators may host multiple Multi-access Edge Computing (MEC, or 'Edge') platforms in a given territory. Connecting your application to a server on the closest MEC platform means packets travel the shortest distance between endpoints, typically resulting in the lowest round-trip latency. Note, the physical (GPS) location of a user device is not a reliable way to determine the closest MEC platform, due to the way operator networks are routed - so the operator will calculate the MEC platform with the _shortest network path_ to the network-attached device identified in the API request.
@@ -18,21 +18,20 @@ info:
18
18
* or, if you have no instance on that MEC platform, you may wish to deploy one there.
19
19
20
20
# Usage
21
-
21
+
22
22
The API may be called either by an application client hosted on a device attached to the operator network (i.e. phone, tablet), or by a server.
23
-
23
+
24
24
There is a single API endpoint: `/mecplatforms?filter=closest`. To call this endpoint, the API consumer must first obtain a valid OAuth2 token from the token endpoint, and pass it as an `Authorization` header in the API request.
25
25
26
-
27
26
The API returns the closest MEC platform to a given device, so that device needs to be identifiable by the network:
28
27
* if you call the API from a server, you must explicitly pass one or more device identifiers in the HTTP request header:
29
28
* `IP-Address`. This is the public IP address of the user device: this can be obtained by an application hosted on that device calling a public IP address API (e.g. GET https://api.ipify.org?format=json)
30
29
* `Phone-Number` . The international E.164 format (starting with country code), e.g. +4407123123456
31
30
* `Network-Access-Identifier` (where available from the API host operator)
32
-
31
+
33
32
* if you call the API from a device attached to the operator network, you _may_ omit the explicit device identifier(s)from the request header. If such a request fails with a `404 Not Found` error then retry the request but this time include a device identifier.
34
33
35
-
The provider of the MEC Platform may be an operator, or a cloud provider. The
34
+
The provider of the MEC Platform may be an operator, or a cloud provider. The
36
35
37
36
# Example requests:
38
37
@@ -47,12 +46,12 @@ info:
47
46
Host: example.com
48
47
Accept: application/json
49
48
IP-Address: 84.125.93.10
50
-
49
+
51
50
GET /mec-platforms?filter=closest HTTP/1.1
52
51
Host: example.com
53
52
Accept: application/json
54
53
Phone-Number: 441234567890
55
-
54
+
56
55
Example where API client is on a network-attached device:
57
56
58
57
GET /mec-platforms?filter=closest HTTP/1.1
@@ -85,9 +84,9 @@ info:
85
84
Any more general service failures will result in an error in the `5xx`range with an explanation.
86
85
87
86
# Note for Simple Edge API publishers
88
-
The API publisher (i.e. the operator implementation) must ensure that the tuple of edgeCloudProvider+edgeResourceName in the success reponse is unique.
87
+
The API publisher (i.e. the operator implementation) must ensure that the tuple of edgeCloudProvider+edgeResourceName in the success response is unique.
89
88
90
-
# Further info and support
89
+
# Further info and support
91
90
92
91
---
93
92
contact:
@@ -229,7 +228,7 @@ components:
229
228
230
229
EdgeResource:
231
230
description: |
232
-
Edge Resource Name - an identifier for an edge reource in the operator domain.
231
+
Edge Resource Name - an identifier for an edge resource in the operator domain.
233
232
type: string
234
233
additionalProperties: false
235
234
@@ -263,7 +262,7 @@ components:
263
262
{
264
263
"code": "INVALID_ARGUMENT",
265
264
"status": 400,
266
-
"message": "Insufficient parameters: At least one of Network-Access-Identifier, Phone-Number or IP-Address must be specified, or, the API must be called by a client on a netwok-attached device (hence passing the source IP in the request header) ",
265
+
"message": "Insufficient parameters: At least one of Network-Access-Identifier, Phone-Number or IP-Address must be specified, or, the API must be called by a client on a network-attached device (hence passing the source IP in the request header) ",
0 commit comments