Skip to content
README.md 7.61 KiB
Newer Older
# Demo4
Demo4 scenario showcases the _Edge Platform Application Enablement_ and _Application Mobility_ edge services.

For more details, check out the [Demo4 Documentation](https://interdigitalinc.github.io/AdvantEDGE/docs/usage/usage-demo4/)
Yann Garcia's avatar
Yann Garcia committed



Demo4 scenario showcases the _Edge Platform Application Enablement_ and _Application Mobility_ edge services.

Demo4 includes:
- A Terminal application, named [demo4-ue](#demo4-ue), that can be deployed either as a container using the provided AdvantEDGE scenario, or as an external application that interacts with private or public AdvantEDGE deployments such as the ETSI MEC Sandbox.
- An onboarded MEC application, named [onboarded-demo4](#onboarded-demo4) , that is deploy on the MEC platform. It can be instantiated using MEC-016 Service APIs

Demo4 Terminal application does not provide a dashboard GUI, tools such as cUrl or Postman can be used (see clause [demo4-ue](#demo4-ue))

## Demo4 Scenario Overview

The Demo4 scenario consists of one or more instances of a single Terminal application running one or more fixed or mobile terminal equipment. 
MEC-016 Service APIs "/dev_app/v1/context" and "/dev_app/v1/context/{instance}" provide the capability to instante one or more MEC applications.
By default, there is one onboarded MEC application named onboarded-demo4, described below (see file ~/AdvantDEGE/examples/demo4-ue/src/onboarded-demo4.yaml):

```yaml
{
    "appList":
        [
            {
                "appInfoList":
                    [
                        {
                            "appDId": "onboarded-demo4",
                            "appName": "onboarded-demo4",
                            "appProvider": "ETSI",
                            "appSoftVersion": "v0.1.0",
                            "appDVersion": "v0.1.0",
                            "appDescription": "Basic HTTP Ping Pong",
                            "appLocation":
                                [
                                    {
                                        "area": null,
                                        "civicAddressElement": null,
                                        "countryCode": "33"
                                    }
                                ],
                            "appCharcs":
                                [
                                    {
                                        "memory": 1024,
                                        "storage": 1024,
                                        "latency": 1024,
                                        "bandwidth": 1024,
                                        "serviceCont": 0
                                    }
                                ],
                            "cmd": "/onboardedapp/onboarded-demo/onboarded-demo4",
                            "args":null
                        }
                    ],
                    "vendorSpecificExt": {
                        "vendorId": "ETSI"
                    }
            }
        ]
}
```

### demo4-ue

The Terminal application demo4-ue provide a simply HHTP REST APIs for MEC-016 in order to validate quickly MEC-016 support.

#### Check that the demo4-ue is up

The requets `GET /info/application` provides a description of the demo4-ue application.
```sh
$ curl "http://mec-platform.etsi.org:31111/info/application" -H "accept: application/json"
{"config":"app_instance.yaml","ip":"http://demo4-ue1:80","id":"ce454f4c-16f8-4542-83d8-c8afd45bcfea","mecReady":true,"subscriptions":{"AppTerminationSubscription":{"subId":"sub-LzNr62ED50GbZL_S"},"SerAvailabilitySubscription:":{"subId":"sub-Ec2tT-tKAe_qLxI7"}},"offeredService":{"serName":"demo4","id":"2ad0e566-2054-4550-ba97-1fe1f100fff0","state":"ACTIVE","scopeOfLocality":"MEC_SYSTEM","consumedLocalOnly":true},"discoveredServices":[{"serName":"meep-dai","serInstanceId":"70bb83a5-7ec7-4ab4-b889-ca7033a5be2b","consumedLocalOnly":true,"link":"http://mec-platform.etsi.org/yannsb/dev_app/v1/","version":"2.0"},{"serName":"meep-rnis","serInstanceId":"3e72aa67-ff20-4e7e-bf21-aea928a1743b","consumedLocalOnly":true,"link":"http://mec-platform.etsi.org/yannsb/rni/v2/","version":"2.0"},{"serName":"meep-ams","serInstanceId":"99e8a85d-5f87-48ed-be5e-1302c18e4664","consumedLocalOnly":true,"link":"http://mec-platform.etsi.org/yannsb/amsi/v1/","version":"2.0"},{"serName":"meep-loc-serv","serInstanceId":"85ddf74d-d5e7-4d6f-beb5-25e97f8b57c9","consumedLocalOnly":true,"link":"http://mec-platform.etsi.org/yannsb/location/v2/","version":"2.0"},{"serName":"meep-vis","serInstanceId":"3e23a210-8b1a-4a01-bc0c-1df7d1ad6be3","consumedLocalOnly":true,"link":"http://mec-platform.etsi.org/yannsb/vis/v2/","version":"2.0"},{"serName":"meep-wais","serInstanceId":"a22f614e-a5c1-4902-84d3-4361ac9e3425","consumedLocalOnly":true,"link":"http://mec-platform.etsi.org/yannsb/wai/v2/","version":"2.0"}]}
```

The requets `GET /info/logs` provides some executon logs for the demo4-ue application.
```sh
$ curl "http://mec-platform.etsi.org:31111/info/logs" -H "accept: application/json"
["5. demo4DaiAppListGET: applicationList succeed, len= 1","4. daiClient instance created","3. Subscribe to service-availability notification [201]","2. Subscribe to app-termination notification [201]","1. === Register Demo4 MEC Application [200]","0. Send confirm ready [204]"]
```

#### Retrieve the list of existing onboarded MEC applications

The requets `GET /dai/apps` provides the list of the onboarded MEC application.
```sh
$ curl "http://mec-platform.etsi.org:31111/dai/apps" -H "accept: application/json"
{"appList":[{"appInfo":{"appCharcs":{"bandwidth":1024,"latency":1024,"memory":1024,"storage":1024},"appDId":"onboarded-demo4","appDVersion":"v0.1.0","appDescription":"Basic HTTP Ping Pong","appLocation":[{"countryCode":"33"}],"appName":"onboarded-demo4","appProvider":"ETSI","appSoftVersion":"v0.1.0"}}]}
```

#### Instantiate an onboarded MEC application

The requets `POST /dai/instantiate` is used to create a new AppContext and instantiate the specified onboarded MEC application.
```sh
$ curl -X POST "http://mec-platform.etsi.org:31111/dai/instantiate" -H "accept: application/json"
{"appAutoInstantiation":true,"appInfo":{"appDId":"onboarded-demo4","appDVersion":"v0.1.0","appDescription":"Basic HTTP Ping Pong","appName":"onboarded-demo4","appProvider":"ETSI","appSoftVersion":"v0.1.0","appPackageSource":"appPackageSource1","userAppInstanceInfo":[{"appInstanceId":"20","appLocation":{"countryCode":"33"},"referenceURI":"https://mec-platform.etsi.org/yannsb/onboarded-demo4"}]},"appLocationUpdates":true,"associateDevAppId":"04e71585-87c7-4d2e-b913-538cf1ef","callbackReference":"http://demo4-ue1:80","contextId":"20"}
```

Note that, in the response, the field "contextId" indicate the identifier to be used to [terminate the instance](#terminate-an-existing-instance-of-onboarded-mec-application).

#### Ping request

TODO

#### Terminate an existing instance of onboarded MEC application

TODO

### onboarded-demo4

The MEC application onboarded-demo4 is a basic HTTP REST API "Ping/Pong" application. When it recieves an HTTP GET /ping request, it replies with 200 OK "pong".
The goal of thos application is just to validate the support of MEC-016 Service APIs.

## Using Demo4

### Preamble

Before to use Demo4, you have to copy the file ~/AdvantDEGE/examples/demo4-ue/src/onboarded-demo4.yaml into the folder /var/lib/docker/volumes/meep-dai/_data/ (required to use sudo command)

### Using Demo4 with AdvantEDGE

To use Demo4 as an AdvantEDGE scenario container:

- Build & dockerize Demo4 server & frontend
- Import the provided scenario demo4-scenario.yaml
- Create a sandbox & deploy Demo4 scenario
- Start Demo4 application frontend in browser

## Using Demo4 with ETSI MEC Sandbox

TODO