Deploying Services in DoCoMo’s Testbed
Deploying Services in
Deploying Services in DoCoMo’s DoCoMo’s Testbed
Testbed
K K ároly ároly Farkas Farkas
Computer Engineering and Networks Computer Engineering and Networks
Laboratory Laboratory
ETH Zürich, Switzerland
ETH Zürich, Switzerland
Outline Outline
• Service Deployment in General
• Overview of the Prototype Scenario from the Service Deployment’s Viewpoint
• Network Level Service Deployment
• Node Level Service Deployment (Chameleon)
• Implementation Summary
• To Do List
Service Deployment on Two Levels Service Deployment on Two Levels
• Network level service deployment [Matthias’ ANTA paper, 2003]
– Identification of appropriate nodes to run service components – Allocation of network resources
• Node level service deployment [Matthias’ Smartnet paper, 2002]
– Identification of appropriate service components
- Depending on node environment
– Installation and Binding of these service components
Prototype Scenario Prototype Scenario
Handover Manager Service Deployment
Server
Provider’s Fix Network
Mobile Node 1.
2.
Network Level Service Deployment I.
Network Level Service Deployment I.
Service Deployment Manager
Code Server
Service Deployment Server
Management Execution Environment
Service Server Local Service
Creation Engine Management Execution
Environment
1. Services to install
Handover Manager’s Chameleon (Node level Service
2. Downloading Service Descriptors
3. Downloading Module Codes 4. Confirmation
Execution Environments
HSM EE Module
Installation
Network Level Service Deployment II.
Network Level Service Deployment II.
Service Deployment Manager
Code Server
Service Deployment Server
(Service Creation Framework) Management Execution
Environment
Service Server Local Service
Creation Engine Management Execution
Environment
Mobile Node’s Chameleon (Node level Service Creation Framework)
2. Downloading Service Descriptors
3. Downloading Module Codes 1.Request the List of
Available Services
Execution Environments
HSM EE
PromethOS EE
Module Installation Service
Selection
Node Level Service Deployment Node Level Service Deployment
• Service model
– Component based
– Support for transport/control plane separation
• Node level service deployment mechanism
– Resolution of the node independent service specification to a node specific service implementation (this resolution controlled by the node)
– Installation of the resulted implementations into the required Execution Environments
• Chameleon is our prototype implementation of node level service
deployment
Active Node Model Active Node Model
• NodeOS
– Demultiplexing, resource control
• Management EE
– Manages service EEs – Configures nodeOS
– Runs Service Creation Engine (SCE)
• Service EE
– Runs service components
– Provides a particular programming model (user space / CORBA, kernel / C, etc.)
SCE Management
Execution Environment
NodeOS
Service Execution Kernel Environment
Service Execution Corba Environment
Active Node
Hardware
Demux
Service Description: Service Tree Service Description: Service Tree
• Dependency resolution of the service specification
• Tree nodes represent compositions of service components
• Leaves represent implementations (code modules or built-in service components)
• Tree is a management structure in the management EE
• Tree depends on node environment/capabilities
Service Description: Implementation Maps Service Description: Implementation Maps
• EE specific implementation maps
• Grey components are the leaves from the service tree
• Components are mapped to code modules for different EEs
• Adapters allow inter-EE communications
WaveVideo Classifier Controller Java EE
Packet Classifier/
Dropper 1 Java EE
Adapter
Adapter
Adapter Queue 3
Kernel EE Adapter
Java EE Kernel EE
Local Service Creation Engine Local Service Creation Engine
Mobile Node
Node Property Description Node Property Description
Notation:
• Elements ─> surrounded by ellipses
• Attributes ─> encircled by a hexagon
• Doubly surrounded Elements ─> may appear more than once
• Mandatory nodes ─> solid arrows; Optional nodes ─> dashed arrows
XML Node Descriptor for the Prototype Services XML Node Descriptor for the Prototype Services
<?xml version="1.0" encoding="UTF-8"?>
<NODE_DESCRIPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Chameleon\XML\chameleon.xsd">
<xsi:OS xsi:name="Linux" xsi:version="2.4.20"/>
<xsi:EE xsi:name="HSMEE" xsi:configurator="hsmee" xsi:version="1">
<xsi:PORT xsi:type="push_in"/>
<xsi:PORT xsi:type="push_out"/>
</xsi:EE>
<xsi:EE xsi:name="PROMETHOS" xsi:configurator="promethos" xsi:version="1">
<xsi:PORT xsi:type="push_in"/>
<xsi:PORT xsi:type="push_out"/>
<xsi:PORT xsi:type="procfs_in" xsi:flag="optional"/>
<xsi:PORT xsi:type="procfs_out" xsi:flag="optional"/>
</xsi:EE>
<xsi:EE_CONNECTIONS xsi:fromEE="PROMETHOS" xsi:toEE="HSMEE">
<xsi:CONNECTION xsi:fromPort="procfs_out" xsi:toPort="push_in"/>
</xsi:EE_CONNECTIONS>
<xsi:EE_CONNECTIONS xsi:fromEE="HSMEE" xsi:toEE="PROMETHOS">
<xsi:CONNECTION xsi:fromPort="push_out" xsi:toPort="procfs_in"/>
</xsi:EE_CONNECTIONS>
<xsi:EE_CONNECTIONS xsi:fromEE="PROMETHOS" xsi:toEE="PROMETHOS">
<xsi:CONNECTION xsi:fromPort="push_out" xsi:toPort="push_in"/>
</xsi:EE_CONNECTIONS>
<xsi:EE_CONNECTIONS xsi:fromEE="HSMEE" xsi:toEE="HSMEE">
<xsi:CONNECTION xsi:fromPort="push_out" xsi:toPort="pull_in"/>
</xsi:EE_CONNECTIONS>
Service Description Service Description
Notation:
• As previously
XML Service Descriptor: Context Aware Handover XML Service Descriptor: Context Aware Handover
Service on Mobile Node Service on Mobile Node
<?xml version="1.0" encoding="UTF-8"?>
<SERVICE_LIST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\My Documents\Projects\Chameleon\XML\chameleon.xsd">
<SERVICE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\My Documents\Projects\Chameleon\XML\chameleon.xsd"
xsi:type="SPECIFICATION">
<DESCRIPTION xsi:servicename="ContextAwareHandover-MN" xsi:option="normal">
<PROVIDER>DoCoMo</PROVIDER>
<VERSION>0.1</VERSION>
</DESCRIPTION>
<PORTS>
<IN_PORT xsi:type="push_in"/>
<OUT_PORT xsi:type="push_out"/>
</PORTS>
<SUB_SERVICE xsi:name="HDM" xsi:instance_name="hdm"/>
<SUB_SERVICE xsi:name="HSMforMN" xsi:instance_name="hsm_for_mn"/>
<TRANSPORT_CONNECTION>
<SRC_PORT xsi:service_instance="this" xsi:type="push_in"/>
<DEST_PORT xsi:service_instance="hdm" xsi:type="push_in"/>
</TRANSPORT_CONNECTION>
<TRANSPORT_CONNECTION>
<SRC_PORT xsi:service_instance="hsm_for_mn" xsi:type="push_out"/>
<DEST_PORT xsi:service_instance="this" xsi:type="push_out"/>
</TRANSPORT_CONNECTION>
XML Service Module Descriptor: Modules of Context XML Service Module Descriptor: Modules of Context
Aware Handover Service on Mobile Node Aware Handover Service on Mobile Node
<?xml version="1.0" encoding="UTF-8"?>
<SERVICE_LIST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Chameleon\XML\chameleon.xsd">
<SERVICE xsi:type="IMPLEMENTATION">
<DESCRIPTION xsi:servicename="HDM" xsi:option="normal">
<PROVIDER>DoCoMo</PROVIDER>
<VERSION>0.1</VERSION>
</DESCRIPTION>
<ENVIRONMENT>
<OS>
<NAME>Linux</NAME>
<VERSION>2.4.20</VERSION>
</OS>
<EE>
<NAME>PROMETHOS</NAME>
<VERSION>1</VERSION>
</EE>
</ENVIRONMENT>
<PORTS>
<IN_PORT xsi:type="push_in"/>
<OUT_PORT xsi:type="push_out"/>
</PORTS>
<CODE_LOCATION>handover.o</CODE_LOCATION>
</SERVICE><SERVICE xsi:type="IMPLEMENTATION">
...