We use proprietary and third party's cookies to improve your experience and our services, identifying your Internet Browsing preferences on our website; develop analytic activities and display advertising based on your preferences. If you keep browsing, you accept its use. You can get more information on our Cookie Policy
Cookies Policy
Mobility Manager API Specification (PRELIMINARY) - FIWARE Forge Wiki

Mobility Manager API Specification (PRELIMINARY)

From FIWARE Forge Wiki

Jump to: navigation, search

Contents

Mobility Manager API

Please check the FI-WARE Open Specifications Legal Notice to understand the rights to use FI-WARE Open Specifications.

Intended Audience

This specification is intended for software developers who will use the API, and for those who will implement the specification.

It is assumed that the reader is familiar with WebIDL. The Mobility Manager API does not use any existing WebIDL API specifications (like the Contacts API or Geolocation API), but it uses only the semantics of WebIDL.

Introduction to the Mobility Manager API

The Mobility Manager API allows an application or application developer to request a certain level of connectivity for a specific connection, in the API description referred to as a flow. The API allows to express connectivity requirements on a specific connection that needs to be ensured. The API also allows to retrieve information on the current connectivity parameter. The API also provides a notification mechanism that allows applications to be notified if a specific connection requirement is available.

The API provides the following functions:

  • Register a connection and request a specific QoS for that connection. This returns an identifier that is used to identify the connection for further requests.
  • Unregister a connection in order to stop managing a connection
  • Reading the current QoS allocation of a connection
  • Adapting the connection to the current needs of an application, e.g. request a certain minimum of bandwidth
  • Request to be notified if a given connectivity related condition is met, e.g. a given network is available
  • Performing seamless handover between different access networks, e.g. switching from a mobile network to a specific wifi network without disconnection of ongoing data flows

Mobility Manager API

The Mobility Manager API is expressed in WebIDL. The following provides an overview of the preliminary API for the CDI’s Mobility Manager Functional Block implementation.

Design Goals

The goal of the Mobility Manager API is to provide an easy mechanism for application developer to make use of the network resources when needed by an application. The Mobility manager also serves as abstraction layer to the connected network, meaning the developer does not need to know about the access network needed to provide the needed QoS.

The API is stateless, meaning there is no relation to specific API objects. Identification of connections is done by passing an identifier of a connection to the API.

Mobility Manager API Change History

Version Date Author Comment
0.1 27 April 2012 Frank Schulze (Fraunhofer)

frank.schulze@fokus.fraunhofer.de

1st Draft

Initial Draft of the Mobility Manager API

0.2 10 September 2012 Frank Schulze (Fraunhofer)

frank.schulze@fokus.fraunhofer.de

Adopted comments of the peer review feedback:
  • Changed function names of IMobilityManager and NotifyCB for QoS notifications, since they where not clear
  • Added information that WebIDL provides only the semantics of the interface definition, not the API itself
0.3 22 April 2013 Frank Schulze (Fraunhofer)

frank.schulze@fokus.fraunhofer.de

Some adaptions of the functionality of the MM due to results of the current development process.
0.4 21 May 2013 Frank Schulze (Fraunhofer)

frank.schulze@fokus.fraunhofer.de

Some changes according to the review feedback
0.5 05 July 2013 Frank Schulze (Fraunhofer)

frank.schulze@fokus.fraunhofer.de

Changes in the JavaScript API

Authentication

The Mobility Manager uses a network API of the S3C GE for some QoS functionalities. The device will be identified using the Mobile Subscriber Identifier (IMSI) of the device or, in case of IMS only services, the IP Multimedia Public Identity (IMPU) may be used. No authentication is used.

NOTE: The Mobility Manager API uses the Mobility Manager Service which needs root-permissions for the full functionality. However, it is only necessary for seamless handover between different access networks. Most of the functionality will also be available without root permissions.

Connection Management

The MobilityManager interface provides methods to retrieve connection specific statistics and to enforce connection specific QoS requirements.

[NoInterfaceObject]
interface IMobilityManager {

	DOMString startQosSession(
                      DOMString source_ip, 
                      DOMString source_port, 
                      DOMString destination_ip, 
                      DOMString destination_port, 
                      DOMString protocol, 
                      ErrorCB errorCB,
                      SuccessCB successCB
        );
	
        void modifyQosAllocation(
                      DOMString flow_id, 
                      DOMString parameter,
                      DOMString value,
                      ErrorCB errorCB,
                      SuccessCB successCB
        );

	void endQosSession(
                      DOMString s_id, 
                      ErrorCB errorCB,
                      SuccessCB successCB
        );

	void getQosStatus(
                      DOMString flow_id,
                      DOMString parameter,
                      ErrorCB errorCB,
                      SuccessCB successCB
        );

	
        void handoverToWifi(
                     DOMString ssid, 
                     ErrorCB errorCB,
                     SuccessCB successCB
        );

        void handoverToTGPP(
                     ErrorCB errorCB,
                     SuccessCB successCB
        );
};


Call back Interfaces

The following are the call back functions used by the Mobility Manager functional block.

[Callback=FunctionOnly, NoInterfaceObject]
interface ErrorCB  {        
         void onError (MMError error);
};

[Callback=FunctionOnly, NoInterfaceObject]
interface SuccessCB  {        
         void onSuccess (DOMString result);
};
 

Mobility Manager Error Interface

[NoInterfaceObject]
interface MMError {
         const unsigned short              UNKNOWN_ERROR = 0;
         const unsigned short              NOT_FOUND = 1;
         const unsigned short              TIMEOUT_ERROR = 2;
         const unsigned short              INTERNAL_ERROR = 3;
         const unsigned short              SERVER_ERROR = 4;


         readonly attribute unsigned short code;
};
Personal tools
Create a book