Commit 4d13efa1 authored by Mike Roy's avatar Mike Roy
Browse files

Added use-case 3 & 4

parent c84ce595
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ The following tables list supported Endpoints for each API.
| Yes | `/applications/{appInstanceId}/services`   |     |
| Yes | `/applications/{appInstanceId}/subscriptions`   |     |
| Yes | `/transports` | |
| Yes | _Liveness URI is dynamic_ | |
| Yes | `<dynamic-liveness-uri>` | _Liveness URI is dynamic_ |

### Application Support API
|Supported | Endpoint |  Notes:   |
@@ -22,7 +22,7 @@ The following tables list supported Endpoints for each API.
| Yes | `/applications/{appInstanceId}/confirm_termination`  |     |
| No  | `/applications/{appInstanceId}/traffic_rules` | _No traffic through platform_ |
| No  | `/applications/{appInstanceId}/dns_rules` | _No DNS support_ |
| Yes | `/timing/timing_caps`   | _Mocked data (requires NTP server)_  |
| Yes | `/timing/timing_caps`   | _No NTP server (mocked data)_  |
| Yes | `/timing/current_time`   |     |

_NOTE -- STF599 MEC011 Development Plan is scoped in 3 phases_
@@ -40,20 +40,20 @@ References:
### Service Management API Endpoints
| Endpoint | Sandbox Usage |Notes |
| ---------- | --------------------- | -------------- |
| `/services` <br> `/services/{serviceId}`  | GET - Returns a list/individual MEC service(s) | Existing MEC services can be discovered |
| `/applications/{appInstanceId}/services` | GET - Returns a list of MEC services for an individual application <br><br> POST - Creates a MEC service for an individual application | Existing MEC services can be discovered <br><br> Existing MEC services use POST to create their service resource |
| `/applications/{appInstanceId}/services/{serviceId}` | GET - Returns an individual MEC services for an individual application <br><br> PUT - updates an existing service resource <br><br> DELETE removes an existing service resource| Existing MEC services can be discovered <br><br> Existing MEC services use PUT to modify their service resource <br><br> Existing MEC services use DELETE when terminating |
| `/applications/{appInstanceId}/subscriptions` | GET - Returns a list of subscriptions <br><br> POST - creates a subscription |  Existing MEC services don't use this endpoint <br><br> User can subscribe to MEC services management events |
| `/applications/{appInstanceId}/subscriptions/{subscriptionId}` | GET - Returns an individual subscription <br><br> DELETE - removes an existing subscription | Existing MEC services don't use this endpoint <br><br> User can delete subscription(s) |
| `/transports` | GET - Returns a list of supported MEC transports | Only HTTP supported |
| _Liveness URI_ | GET - Returns info about the liveness of a MEC service of an application instance <br><br> PATCH - Sends a "heartbeat" message related to a MEC service instance | Existing MEC applications use this endpoint to report their liveness
| `.../services` <br> `.../services/{serviceId}`  | GET - Returns a list/individual MEC service(s) | Existing MEC services can be discovered |
| `.../applications/{appInstanceId}/services` | GET - Returns a list of MEC services for an individual application <br><br> POST - Creates a MEC service for an individual application | Existing MEC services can be discovered <br><br> Existing MEC services use POST to create their service resource |
| `.../applications/{appInstanceId}/services/{serviceId}` | GET - Returns an individual MEC services for an individual application <br><br> PUT - updates an existing service resource <br><br> DELETE removes an existing service resource| Existing MEC services can be discovered <br><br> Existing MEC services use PUT to modify their service resource <br><br> Existing MEC services use DELETE when terminating |
| `.../applications/{appInstanceId}/subscriptions` | GET - Returns a list of subscriptions <br><br> POST - creates a subscription |  Existing MEC services don't use this endpoint <br><br> User can subscribe to MEC services management events |
| `.../applications/{appInstanceId}/subscriptions/{subscriptionId}` | GET - Returns an individual subscription <br><br> DELETE - removes an existing subscription | Existing MEC services don't use this endpoint <br><br> User can delete subscription(s) |
| `.../transports` | GET - Returns a list of supported MEC transports | Only HTTP supported |
| `.../<dynamic-liveness-uri>` | GET - Returns info about the liveness of a MEC service of an application instance <br><br> PATCH - Sends a "heartbeat" message related to a MEC service instance | Existing MEC applications use this endpoint to report their liveness

### Application Support API Endpoints
| Endpoint | Sandbox Usage |Notes |
| ---------- | --------------------- | -------------- |
| `/applications/{appInstanceId}/subscriptions` | GET - Returns a list of subscriptions <br><br> POST - creates a subscription |  Existing MEC services don't use this endpoint <br><br> User can subscribe to MEC application management events |
| `/applications/{appInstanceId}/subscriptions/{subscriptionId}` | GET - Returns an individual subscription <br><br> DELETE - removes an existing subscription | Existing MEC services don't use this endpoint <br><br> User can delete subscription(s) |
| `/applications/{appInstanceId}/confirm_ready` | POST - confirms the application is ready | Existing MEC application report readiness
| `/applications/{appInstanceId}/confirm_termination` | POST - confirms the application is terminated | Existing MEC applications reports termination |
| `/timing/timing_caps` | GET - returns information about timing caps | Mocked information returned since no NTP server is used
| `/timing/current_time` | GET - returns current time | Time of the MEC Sandbox VM is returned
| `.../applications/{appInstanceId}/subscriptions` | GET - Returns a list of subscriptions <br><br> POST - creates a subscription |  Existing MEC services don't use this endpoint <br><br> User can subscribe to MEC application management events |
| `.../applications/{appInstanceId}/subscriptions/{subscriptionId}` | GET - Returns an individual subscription <br><br> DELETE - removes an existing subscription | Existing MEC services don't use this endpoint <br><br> User can delete subscription(s) |
| `.../applications/{appInstanceId}/confirm_ready` | POST - confirms the application is ready | Existing MEC application report readiness
| `.../applications/{appInstanceId}/confirm_termination` | POST - confirms the application is terminated | Existing MEC applications reports termination |
| `.../timing/timing_caps` | GET - returns information about timing caps | Mocked information returned since no NTP server is used
| `.../timing/current_time` | GET - returns current time | Time of the MEC Sandbox VM is returned
+4 −1
Original line number Diff line number Diff line
@@ -8,8 +8,9 @@
      * network: 4G, 5G, WiFi
      * terminal: high-velocity, low-velocity, stationary
  * [MEC Services APIs](#mec-services-apis)
    * MEC013 - Location Service
    * MEC011 - Application Enablement Service
    * MEC012 - Radio Network Information Service
    * MEC013 - Location Service
    * MEC028 - WLAN Access Network Information Service
  * [MEC Sandbox Use Cases](#mec-sandbox-use-cases)
     * Sandbox External ME App discovery of the Network and Tracking a Device via Location Service API
@@ -51,6 +52,8 @@
| - | -
|External ME App |  [Discovering the network & tracking a terminal location](use-case1.md)
|Browser | [Tracking a terminal location](use-case2.md)
| External ME App | [Use case for service consuming MEC application](use-case3.md)
| External ME App | [Use case for service offering MEC application](use-case4.md)

## Assumptions and Limitations
| Category | Assumptions/Limitations
+28 −0
Original line number Diff line number Diff line
# Use case for service consuming MEC application

This section describes a use case that the user can accomplish using the MEC Sandbox APIs from a MEC application

Objective:
  * As a MEC Sandbox User, I have an ME App that does not have any prior knowledge or configuration information of the MEC services offered by the MEC platform.
  * ME App learns which services are available
  * ME App starts using the MEC service
  * ME App subscribes to changes in MEC service state
  * When Location service becomes not available, ME App is notified and stops using it
  * When Location service becomes available again, ME App is notified and starts using it again

*See [user interface wireframes](../Sandbox-User-Interface#mec-sandbox-wireframe) for frontend details*

| Operation: | Notes: |
| ---------  | ------ |
| 1a. Login via the frontend & select Sandbox tab |  |
| 2. Select a network to deploy in the user sandbox |  |
| 3a. Pre-configure ME Application with the MEC Sandbox URI (e.g. `https://try-mec.etsi.org/<my-sandbox-key>/`) <br><br> _Note: for readability, URI is replaced by `.../` in next steps_ | |
| 3b. Pre-configure ME Application with an Application Instance ID <br> (e.g. `appInstanceId`) | In order to create subscriptions at step 6, an `appInstanceId` is required <br><br> MEC Platform Manager (MEPM) usually assigns `appInstanceId` to running applications<br><br> To support external user applications, the `appInstanceId` has to be generated from the frontend |
| 4. Start ME App or environment |  ME App knows nothing about available MEC services <br><br> In the following steps, ME App will learn MEC services availability via Mp1 interface |
| 5. `GET .../services` | ME App discovers there are 3 services available (Location/RNIS/WAIS) with their respective URIs <br><br> ME App decides to start using discovered Location service. |
| 6. `POST .../applications/{appInstanceId}/subscriptions` | ME App wants to learn about service availability changes for Location service <br><br> ME App stores the returned subscription id for future subscription management
| 7. Disable Location service from the frontend | ME App is notified of Location service un-availability and stops using it |
| 8. Enable Location service from the frontend | ME App is notified of Location service availability and starts using it
| 9. Stop my ME App | |
| 10. Terminate scenario | |
| 11. Logout of  MEC Sandbox |  |
+28 −0
Original line number Diff line number Diff line
# Use case for service offering MEC application

This section describes a use case that the user can accomplish using the MEC Sandbox APIs from a MEC application

Objective:
  * As a MEC Sandbox User, I have an ME App that wants to offer a service through the MEC application.
  * ME App starts and confirms readiness to the MEC platform
  * ME App creates its MEC service on the MEC platform
  * ME App sends periodic keep-alive to the MEC platform
  * When ME App is terminated, ME App deletes its service and confirms termination

*See [user interface wireframes](../Sandbox-User-Interface#mec-sandbox-wireframe) for frontend details*

| Operation: | Notes: |
| ---------  | ------ |
| 1a. Login via the frontend & select Sandbox tab |  |
| 2. Select a network to deploy in the user sandbox |  |
| 3a. Pre-configure ME Application with the MEC Sandbox URI (e.g. `https://try-mec.etsi.org/<my-sandbox-key>/`) <br><br> _Note: for readability, URI is replaced by `.../` in next steps_ | |
| 3b. Pre-configure ME Application with an Application Instance ID <br> (e.g. `appInstanceId`) | In order to offer a service, an `appInstanceId` is required <br><br> MEC Platform Manager (MEPM) usually assigns `appInstanceId` to running applications<br><br> To support external user applications, the `appInstanceId` has to be generated from the frontend |
| 4. Start ME App or environment |  In the following steps, ME App will register a service via Mp1 interface |
| 5. `POST .../applications/{appInstanceId}/confirm_ready` | ME App indicates readiness to the MEC platform |
| 6. `POST .../applications/{appInstanceId}/services` | ME App creates its service on the MEC platform <br><br> From this point, other ME Apps can discover the  newly offered service and can start using it <br><br> _Note: the URI provided needs to be reachable by other ME Apps to allow usage_|
| 7. `PATCH .../<dynamic-liveness-uri>` | ME App sends periodic keep alive to MEC platform |
| 8. `DELETE .../applications/{appInstanceId}/services` | ME App terminates its service, application is still running |
| 9. `POST .../applications/{appInstanceId}/confirm_termination` | ME App indicates termination to the MEC platform
| 9. Stop my ME App | |
| 10. Terminate scenario | |
| 11. Logout of  MEC Sandbox |  |