<- Security API     Go to ToC    Profiles->

1       Architecture
2           Workflow 3           MPAI-AIF Basic API
2.1        Creation of infrastructure 3.1        Preparation of the infrastructure.
2.1.1     Connection to the SCI 3.1.1     Initialise the Controller Instance.
2.1.2     Creation of an AIF Controller instance 3.1.2     Discover Workflow..
2.1.3     Workflow discovery 3.1.3     Upload AI Workflow..
2.1.4     Launch of the desired AI Workflow 3.1.4     Start AI Workflow..
3.1.5     Pause AI Workflow..
3.1.6     AI Workflow Status.
3.1.7     Resume AI Workflow..
2.2        Message Exchange 3.2        Operation of the infrastructure.
2.2.1     Delivery of messages to the input ports of the AI Workflow 3.2.1     Send Input Data.
2.2.2     Reception of messages from the output ports of the AI Workflow 3.2.2     Receive Output Data.
2.3        Termination of infrastructure 3.3        Termination of the infrastructure.
2.3.1     Termination of the AI Workflow 3.3.1     Terminate AI Workflow..
2.3.2     Release of the AIF Controller 3.3.2     Delete Remote Controller Instance.

1        Architecture

Remote Controller Access specifies a remote HTTP-based protocol that exposes the MPAI AIF Basic API functionality for use by a Remote Client (a remote HTTP 1.1 Client). The following API specification describes the minimum profile of Request and Response Messages.

Figure 1 depicts the global architecture of an System enabling MPAI as a Service (MaaS) allowing  Remote Client Application (RCA) to select and run AI Workflows (AIW) instances.

Figure 1 – Reference architecture of an MaaS

The RCA issues HTTP(s) Requests to the Server API through the local API Client. These Requests comprise AIF Controller instance management and AIW instance management (Sections 3 and 5 below) and AIM Port message exchange (Section 4 below) as required to satisfy the MaaS needs of the RCA.

The Server API, in response to the received Requests, will negotiate through the Store API the selection of appropriate AIW Descriptions and with the Controller Instance (CI) performs subsequent AIW instance management using the AIF API (Start/Pause/Resume/Stop).  CI retrieves AIW from the MPAI Store for instantiation as requested by the Server using the AIF API (Get and parse archive).

2        Workflow

2.1       Creation of infrastructure

Creation of infrastructure is the responsibility of the deployment/control plane to avoid access to the application data plane by the control plane and vice-versa. The REST API protocol is used to specify the steps.

2.1.1      Connection to the SCI

Service Controller Instance (SCI) specifies the required security protocols that the Remote Client Application (RCA) must employ for authentication and authorisation purposes. AIF includes an exemplary list of security protocols (basic, digest, bearer).

The connection is required by all subsequent points and must be secured using one of the proposed security schemes described in End Point Open API.

2.1.2      Creation of an AIF Controller instance

RCA ask the AIF endpoint for the creation of one or more AIF Controller instances to which all subsequent AIF API requests will be issued.

The objective of Controller instance creation is the acquisition of a Remote Controller Instance identity for use in subsequent API request to identify a Controller among many to which the message is directed.

2.1.3      Workflow discovery

RCA submits a request to the Server API for Workflow matching and discovery. The resulting collection of Work Descriptions is returned to the RCA for ultimate selection.

2.1.4      Launch of the desired AI Workflow

RCA submits a request to the AIF Controller through the AIF Endpoint for the launch of the desired AIW(s).

The objective of Workflow launch is the acquisition of a Remote Workflow Instance identity for use in subsequent API request to identify a Workflow among many with which input/output messages will be exchanged.

2.2       Message Exchange

Application data exchange is the responsibility of the application data plane thus ensuring non-exposure of application data to the control plane. The REST API protocol is used to specify the steps.

2.2.1      Delivery of messages to the input ports of the AI Workflow

RCA submits requests to the above-identified AIF Controller, through the AIF Endpoint for the delivery of AIF Messages containing application data to the desired input port(s) of the above-identified and launched AIW(s).

2.2.2      Reception of messages from the output ports of the AI Workflow

RCA may submit requests to the above-identified AIF Controller through the AIF Endpoint for the reception of AIF Messages from the desired output port(s) of the above-identified and launched AIW(s). The RCA makes provision for asynchronous delivery of the response when required.

2.3       Termination of infrastructure

The deployment/control plane is responsible for the avoidance of  access to the application data plane by the control plane and vice-versa. The REST API protocol is used to specify the steps.

2.3.1      Termination of the AI Workflow

RCA submits requests to the AIF Controller through the AIF Endpoint for the termination of the above-identified AIW(s).

2.3.2      Release of the AIF Controller

RCA submits requests to the AIF Endpoint for the termination of the above-identified AIF Controller(s).

3        MPAI-AIF Basic API

3.1       Introduction

The following clauses apply, where appropriate, to all API specifications described here.

  • The Service Level Agreement (SLA) must be negotiated and agreed between the RCA and the MPAI as a Service Provider prior to the subsequent use of the Server API exposed by the Service Provider.
  • The application security paradigm, described by the SLA, MUST be chosen from the standard HTTP security paradigms (BASIC, DIGEST, BEARER) but is not normative.
  • The example HTTP request and response messages only include essential and normative information, allowing for interoperability and subsequent derivational extensions.
  • Only the relevant HTTP headers are shown. These MUST be accompanied by all HTTP headers required by the HTTP 1.1 standard and all those required to satisfy the features of the security paradigm that is employed.
  • All API requests MUST use the most recent version of Transport Layer Security (TLS), and client certificate exchange MAY be necessary based on the server’s security requirements.
  • The term {cid} represents the ID of a Controller Instance returned by a successful request to the Controller Instance Creation API specified below.
  • The term{wid} represents the ID of a Workflow Instance returned by a successful request to the Workflow Instance Start API specified below.
  • Any ID format may be used for all SCI and Workflow Instance IDs exchanged between the RCA and the HTTP Server of the MaaS. However, use of UUIDs is recommended.
  • Standard HTTP status codes MUST be used to communicate eventual failure of an API request (302, 400, 401, 403, 404, 500 etc) and MUST be used in accordance with their standard meaning.
  • In all API Requests, other than the initial SCI Creation Request, a value returned in the optional prefix field of the SCI Creation Response message, MUST be used in place of the default /MPAI/AIFU prefix.

3.2       Preparation of the infrastructure

3.2.1      Initialise the Controller Instance

All API Calls that are performed subsequent to the Call MUST be with respect to an SCI Identifier returned by a successful invocation of this Call.

3.2.1.1     REQUEST

POST /MPAI/AIFU/Controller HTTP/1.1
ACCEPTS: application/json

3.2.1.2     RESPONSE

HTTP/1.1 201 CREATED
CONTENT-TYPE: application/json
CONTENT-LENGTH: <size of body>{“id”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”}

For enhanced security reasons, the Response returned by the Controller Initialisation Request MAY return an alternative mapping of the standard collection of MPAI AIFU route prefix to the Controller Instance specific route prefix. This route prefix mapping, if returned, MUST be used in place of the standard /MPAI/AIFU/ prefix in all subsequent Requests issued for the corresponding SCI.

HTTP/1.1 201 CREATED

CONTENT-TYPE: application/json

CONTENT-LENGTH: <size of message>

 

{“id”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”, “prefix”:”/alternative/endpoint/prefix”}

3.2.2      Discover Workflow

The process ensures that the required Workflow is actually available (Workflow exists in the relevant MPAI Store or in the SCI environment) and accessible to the intended Remote Client Application (as described by the terms of the SLA).

 

When successful, the URL of the Workflow Description will be returned providing the client application with the required input and output port type information allowing preparation and  integration of data for subsequent message exchange.

3.2.2.1     REQUEST

POST /MPAI/AIFU/{cid}/Workflow HTTP/1.1

ACCEPTS: application/json

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{ “name”: “myworkflow” }

 

3.2.2.2     RESPONSE

HTTP/1.1 200 OK

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{

“controller”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”,

“name”: “myworkflow”,

“url”: <workflow description URL>

}

 

3.2.3      Upload AI Workflow

This operation is necessary if the preceding step fails. It ensures that the required AIW is now available in the MPAI Store and accessible by SCIs of the associated SLA.

3.2.3.1     REQUEST

POST /MPAI/AIFU/{cid}/Upload HTTP/1.1

ACCEPTS: application/json

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{ “name”: “myworkflow”, “url”: <workflow description URL> }

 

3.2.3.2     RESPONSE

HTTP/1.1 200 OK

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{

“controller”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”,

“id”: “wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww”,

“name”: “myworkflow”,

}

3.2.4      Start AI Workflow

This operation requests the SCI to initiate the AIW. This assumes that the preceding check and upload calls would return the corresponding AIW Identifier.

3.2.4.1     REQUEST

POST /MPAI/AIFU/{cid}/AIW/Start HTTP/1.1

ACCEPTS: application/json

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{“workflow”: “myworkflow”}

 

3.2.4.2     RESPONSE

HTTP/1.1 200 OK

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{

“controller”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”,

“id”: “wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww”,

“name”: “myworkflow”,

“state”: “ACTIVE”,

“change”: <date string of state change>

}

 

3.2.5      Pause AI Workflow

This operation requests the SCI to suspend the AIW.

3.2.5.1     REQUEST

GET /MPAI/AIFU/{cid}/AIW/{wid}/Pause HTTP/1.1

ACCEPTS: application/json

 

3.2.5.2     RESPONSE

HTTP/1.1 200 OK

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{

“controller”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”,

“id”: “wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww”,

“name”: “myworkflow”,

“state”: “PAUSED”,

“change”: <date string of state change>

}

 

3.2.6      AI Workflow Status

This operation requests the current status of the AIW.

3.2.6.1     REQUEST

GET /MPAI/AIFU/{cid}/AIW/{wid} HTTP/1.1

ACCEPTS: application/json

 

3.2.6.2     RESPONSE

HTTP/1.1 200 OK

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{

“controller”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”,

“id”: “wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww”,

“name”: “myworkflow”,

“state”: <current status>,

“change”: <date string of state change>

}

 

3.2.7      Resume AI Workflow

This operation requests the SCI to resume the paused AIW.

3.2.7.1     REQUEST

GET /MPAI/AIFU/{cid}/AIW/{wid}/Resume HTTP/1.1

ACCEPTS: application/json

 

3.2.7.2     RESPONSE

HTTP/1.1 200 OK

CONTENT-TYPE: application/json

CONTENT-LENGTH : <size of body>

 

{

“controller”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx”,

“id”: “wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww”,

“name”: “myworkflow”,

“state”: “ACTIVE”,

“change”: <date string of state change>

}

3.3       Operation of the infrastructure

Input and output data messages will be sent and received by the RCA through the SCI to and from the input and output ports of the corresponding AIW or AIM.

 

The data carried in the HTTP Body section of these Input and Output messages, will be formatted in strict accordance with the standard byte serialisation, corresponding to the declared type of the involved ports, exposed specifically for this purpose in the Workflow Description.

3.3.1      Send Input Data

These operations allow delivery of input data messages prepared by the RCA to the input Port(s) of the AI Workflow.

3.3.1.1     REQUEST

POST /MPAI/AIFU/{cid}/AIW/{wid}/Input/{pid} HTTP/1.1

CONTENT-TYPE: MPAI/port-data

CONTENT-LENGTH : <size of body>

 

<MPAI port data bytes formatted in accordance with the expected input serialisation>

3.3.1.2     RESPONSE

HTTP/1.1 200 OK

3.3.2      Receive Output Data

These operations allow reception by the RCA of data messages delivered by the output Port(s) of the AI Workflows of the SCI.

3.3.2.1     REQUEST

GET /MPAI/AIFU/{cid}/AIW/{wid}/Output/{pid} HTTP/1.1

3.3.2.2     RESPONSE

HTTP/1.1 200 OK

CONTENT-TYPE: MPAI/port-data

CONTENT-LENGTH : <size of body>

 

<MPAI port data bytes formatted in accordance with the expected output serialisation>

3.4       Termination of the infrastructure

3.4.1      Terminate AI Workflow

This operation ensures release of the AI Workflow that was instantiated by the SCI.

3.4.1.1     REQUEST

GET /MPAI/AIFU/{cid}/AIW/{wid}/Stop HTTP/1.1

3.4.1.2     RESPONSE

HTTP/1.1 200 OK

3.4.2      Delete Remote Controller Instance

This operation ensures release of the SCI.

3.4.2.1     REQUEST

DELETE /MPAI/AIFU/Controller/{cid} HTTP/1.1

3.4.2.2     RESPONSE

HTTP/1.1 200 OK

 

.

 <- Security API     Go to ToC      Profiles->