nullnull Problématique de la mobilité dans les systèmes distribués
Guy Bernard
Institut National des Télécommunications, Evry, France
Prologue: MotivationPrologue: Motivationhttp://www.tjzgzm.com/ 工矿灯 led投光灯 泛光灯 http://www.u51688.com http://www.qiwhy.comWhat is mobile ??What is mobile ??user mobility
terminal mobility
user mobility with mobile terminal
code mobility
network mobility
case studies
perspectives
not considered here:
telecommunication infrastructure/services supporting terminal mobility (GSM, WAP, GPRS, UMTS, …)
protocols for supporting mobility (Mobile IP, …)
database aspects (disconnected transactions, …)
adhoc networksUser mobility (1)User mobility (1)problem
users are increasingly moving - wish to feel "at home" anywhere
office desktop - laptop - home PC - smartphone/PDA - airport - hotel - …
need for retrieving one's environment on any machine
programs, preferences, data
tools and solutions
file systems
disconnected file systems
CODA (Satyanarayanan, CMU, 1990), Ficus (Popek, UCLA, 1990), Bayou (Petersen, Xerox, 1995)
automatic hoarding (Popek, UCLA, 1997)
using a smart card as a portable computer/data repository
RNRT "CESURE" project (Gemplus - INRIA Grenoble - LIFL - INT)
example: tele-meeting
Grenoble University campus project (pool of non-personal desktops)
user preferences / accountingParenthesis: smart card capabilitiesParenthesis: smart card capabilitiesthe smart card IS a real computer
processor, memory, custom OS
JVM - Javacard 2.2
current generation:
128K ROM, 64K EEPROM, 4K RAM
acts as a slave (server) answering requests from the (client) host terminal
prototypes
Gemplus, 1999: 2 MB of memory
Gemplus, 2001: 224 MB of memory
keyboard, screen
software: SC can be active in the SC -- host terminal interactions
for SC manufacturers, the tomorrow's computer is the SC
Smart phones are just a SC plus a keyboard, a screen and an antenna
for SP manufacturers, the tomorrow's computer is the SP
SC is just used for persistent storage and authentificationUser mobility (2)User mobility (2)corollary 1: handling heterogeneity
processors, OSes
HMI
screen size - keyboard - pointer - mouse - voice command …
current solution
component-based distributed software
clear separation of application engine and application HMI
dynamic loading of appropriate HMI component
example: RNRT "CESURE" project: "intelligent" tradingUser mobility (3)User mobility (3)corollary 2: very large scale systems
world-wide services (naming, location, …)
robust and scalable algorithms (IP routing, DNS, …)
example
GLOBE project (Tanenbaum, VU Amsterdam, 1996)
large scale load balancing between distributed servers
current algorithms are not scalable
synchronous communications, centralized load balancers
suited for a large number of hosts on a high speed / short range network - eg., AOL Web cache (> 1,000 nodes) - MSN Hotmail (> 5,000 nodes)
need for decentralized / asynchronous algorithms
example: OMG's Load balancing and Monitoring RFP, document orbos/2000-04-27
co-author of the joint accepted answer (Tri-Pacific Software - VERTEL - IONA - Alcatel - INT - Lucent Tech. - PrismTech - UC Irvine - Univ. Toronto), june 2002 (document orbos/2002-04-05)
open problem: large scale copy consistency for modifying access patternsUser mobility (4)User mobility (4)corollary 3: location-dependent data
added-value services (weather forecast, restaurants, taxis, …)
solution: extend trading service
for static terminals, the geographical position is known
if (l1
location determination must be dynamic
requires a support from telecom provider / GPS / …
survey of location systems for ubiquitous computing: IEEE Computer, August 2001
GPS
24+3 satellites - accuracy: 1-5m (95-99%) - not indoor
E911
US Federal Communications Commission initiative
wireless phone providers must develop a way to locate any phone that makes a 911 emergency call
many companies are developing a variety of location systems to determine a cellular phone's location
these systems will also support new consumer services (find the nearest gas station, post office, or automated teller machine)User mobility with mobile terminal (2)User mobility with mobile terminal (2)a lot of applications
eg., guiding firemen, or search-and-rescue team for the best route to quickly locate all the avalanche victims)
tentative solution: trader federation
a lot of opened problems, eg.
where are the traders located?
how do they cooperate?
how many traders?
how does the terminal knows where are the traders?
...Code mobilityCode mobilityreferenced code
RPC, RMI, HTTP/CGI - synchronous
remote evaluation
Java servlets - synchronous - code is pushed
on-demand code
Java applets - asynchronous - code is pulled
mobile code (mobile agents)
code and state move together - asynchronous
neither "push" nor "pull" model - rather, self mobility (proactive migration)
...instruction i ; go ("somewhere") ; instruction i + 1 ; ...
a network connection is needed only during agent transfer between sites
survey of mobile code system-related problems: Fuggetta et al., 1998
fits well with wireless terminals and terminal mobility
application code can jump from a nearby server to current user location
is proactive migration (mobile agents) really needed??Network mobilityNetwork mobilityconstellations of LEO satellites (eg., Teledesic)
viewed by satellites, even mobile users are almost still
dual problem of mobile users within a network of static servers
if satellites embed applicative code, this code moves over users
code jumping to user terminals when seen by a satellite??
no outstanding research work in this area
Case studiesCase studieshandling user mobility
CESURE
application-aware adaptation
to bandwidth variability
ODYSSEY
to network disconnections
ROVER
DOMUser mobility: RNRT CESURE ProjectUser mobility: RNRT CESURE ProjectModelling and exploitation of the concept of service application to mobile users of the network
Service application
distributed application providind an added-value service to users
Mobile users
users can connect to the service from anywhere, any kind of terminal (including mobile terminals: smart phones, PDAs, …)
november 1999 - november 2001
Gemplus - INRIA Grenoble - LIFL Lille - INT
funded by Ministry of Research
CESURE: problemCESURE: problemNomadic
userServiceCESURE: ObjectivesCESURE: Objectivesprovide tools and system infrastructure for mobile applications enabling
building added-value services
creating dynamically instances of applications adapted to the user
architecture based on 2 types of elements
downloadable and configurable components
remote services Based on a smart card acting as a central point for the applicationCESURE: mobile / configurable componentsCESURE: mobile / configurable componentsno standard definition, but…
autonomous software module that can be installed on different platforms
exports several attributes, properties or methods
can be configured
benefit
being configurable building block enabling to build applications by compositionCESURE: Software architecture descriptionCESURE: Software architecture description2 steps
the designer specifies the architecture
using an Architecture Description Language
the architecture is then "deployed"
system service for deployment and executionconsultcharacteristicsComponent databaseCESURE: ApproachCESURE: Approachapplication design according to a modular approach (distributed sofware components)application description in a smart carddeployment and execution platform for instantiating the configuration the best suited to the contextCESURE: Component-based applicationCESURE: Component-based applicationexample application: weather forecast
available anywhere, from any terminal type
the user gets weather forecast:
relative to his/her current location
according to service subscription options (3 days, terrestrial, in french)
adaptation requirements: the application configuration must be adapted
to the terminal (HMI, processor/network characteristics, …)
to the current user location
to subscription parameters
to the state of the environment (load of servers, ...)CESURE: Application layout CESURE: Application layout WeatherServer
provides raw forecast data
WeatherConsult
receives raw forecast data and adapts them according to subsrciption parameters
UserInterface
displays the data according to terminal typeForecastDisplay InterfaceForecastData InterfaceUserInterfaceWeatherConsultWeatherServerusesusesprovidesprovidesruninitinitCESURE: Component descriptionCESURE: Component description
More information has to be associated to components -- eg, some description of provided functionality Application descriptionApplication description
Application deployment - Installation scriptApplication deployment - Installation scriptdefault_directory = "dir.meteo.com:3000"
params.directory = default_directory
// looking for existing components
meteo = locate_component ( params, "WeatherServer" )
// instanciation of new components -- local or remote
params.host = 'localhost'
hmi = create_component ( params, "UserInterface" )
params.host = 'any'
client = create_component ( params, "WeatherConsult" )
// component connexion
connect ( BASIC, client.display, hmi.display )
connect ( BASIC, client.data, meteo.data)
// service customization
client.init ()
// application starting
hmi.run ()
NB - this is a generic logical description of the application -- some params (eg, terminal type, will be determined at deployment time)CESURE: Deployment platformCESURE: Deployment platformReconfiguration
servicesCESURE: Extended trading serviceCESURE: Extended trading serviceDeployment EngineInstance ManagerExecution servers Package librariesCESURE: "Intelligent" extended tradingCESURE: "Intelligent" extended tradingHost is known - package lookup:
reasons
GUI component host = user terminal
co-location of components
search the apropriate package that can be instantiated on the given host
Criteria: OS, runtime, available software, display capabilities
Package is known - host lookup:
Find an host that can instantiate the given package
Criteria : OS, runtime, required software
If several host are suitable, select the least loaded one for package instantiation
Instance lookup:
If several instances are already installed, select the one running on the least loaded one
CESURE: Monitoring InfrastructureCESURE: Monitoring InfrastructureCollecting load information in the Linux kernel
DLBARuntime processus
CPU utilization
machine availability = CPU capacity / number of active threads
CPU capacity quantified in “bogomips” (Linux unit)
Memory utilization
Monitoring information spreading
HostLoadUpdater processus
UDP datagrams (CDR encoding)
sent only in case of significative changes in load state
CESURE: Deployment of a sample applicationCESURE: Deployment of a sample applicationGUIAutomatic
transfer
agentBNPServerBNP accountLaPosteServerpre-instantiated componentLaPoste accountBanking application CESURE: Deployment stepsCESURE: Deployment stepsBank accountsTrader5) search for a Transfer Agent package1) send terminal properties2) search for bank accounts3) search for interface package6) search for the less loaded serverpackagesTransfer
Agent 7) instantiation of Transfer AgentCESURE: Demo application prototypeCESURE: Demo application prototypeinterfacing a monitoring tool with a trading service
prototype
3 laptops
2 PCs under Linux
JDK 1.3 + ORBacus
1 PC under Windows 2000
JDK 1.3 (contains Swing) + ORBacus
1 iPAQ
WinCE + J9 (contains MicroView) + OBE (ORBacus Embedded Java)
Network
802.11b 11mbit/s wireless Ethernet
CESURE: Demo application prototypeCESURE: Demo application prototypeterminalWindows CE Ipaq
(ipaq1)CESURE: Application interface for iPAQCESURE: Application interface for iPAQCESURE: Application interface for PCCESURE: Application interface for PCCESURE: Demo application trader consoleCESURE: Demo application trader consoleCESURE: evaluationCESURE: evaluationmain contribution
provide a generic architecture for the deploy