1
Laboratory for Advanced Collaboration
LAC
Overview of MoCA:Mobile Collaboration
Architecture
Overview of MoCA:Mobile Collaboration
ArchitectureLaboratory for Advanced Collaboration
PUC-Rio, Brazil
May 2007
22
Agenda
Research GoalsThe big pictureMain Components and their interactionPrototype ApplicationsPapers and Contact Information
2
33
Research Goals
Main Goals: Design and implement a middleware to supportthe development and deployment of suchcollaborative applications;Experiment with new forms of context/location-aware collaboration, develop applications usingthe middleware, and evaluate their usability andusefulness.
Target setting:Structured wireless network (802.11)Users with laptops and palmtopsIntra-domain applications (e.g. for Universitycampus-community, corporation)
Mobile Collaboration Architecture (MoCA)
44
MoCA
Emphasis is on context-processing and -awarenessMoCA consists of basic services for collecting and processing
context information, synchronous & asyncronouscommunication and client/serverAPIs and a proxyFramework that facilitate the use of these services bydevelopers of applications for mobile networks.
Essentially, the basic services supportDistributed monitoring, storage and complex queries aboutthe execution context of mobile devices.Location inference based on IEEE 802.11Advertisement and dynamic discovery of applications andmiddleware services (not yet fully implemented)
3
55
The big Picture
Client
Cm+ECIM
UDS CIS CS
Local CIS/UDS?Contextinfo
req
subscrevent
reply
LIS
COPS
Core Services
OptionalServices
Server
Cm+ECI
Server
Application-specific adaptations
Application
SRM
ServicesHere?
Personalities
Glossary:Client and Server APIsCm: Communication ServiceECI: Event Communication InterfaceM: Monitor (/XP, /CE, /Sim)CS: Configuration ServiceCIS: Context Information ServiceLIS: Location Inference ServiceUDS: Ubiquitous Discovery ServiceCOPS: Context Privacy Service
66
MoCA´s Personalities
In order to widen the usability of MoCA’s core services, we have developed three additionalprogramming interfaces personalitiesMoCA/MAX – for use with Agent Framework JadeMoCA/WS – a proxy that works as a Web ServiceMoCA/ORB – a proxy talks IIOP
MoCA Core Services
MoCA/MAX MoCA/WS
Jade Application C# Application
SOAP/XMLFIPA
Java Application
Cm ECI(Pub/Sub)
MoCA/ORB
CORBA Appl.
IIOP
4
77
Communication APIs
Communication Service (Cm):Supports synchronous (req/reply) and asynchronouscommunication among Java programs using either TCP orUDP
Event-based Communication Interface (ECI):Supports asynchronous communication through topic-based publish/subscribeConsists of server and client API. A process may:
subscribe to events related to some topic (and satisfying an given SQL-like expression) and/or publish an event (an object) on a topic.
An event provider is in charge of dispatching events to all subscribers which have subscribed to this event and whose expression is satisfied by the event properties.
88
ECI: Singular Features
Subscription (with context expression E) willcause notifications both when E and ¬E becometrue
Allows the client to specify the number ofnotifications (once, N times, or regularly)
Interception: application (provider) canmanipulate the list of notification addressees
Any process may use the ECI server or client API
5
99
Core Services of MoCA
Monitor (at the mobile device):Is in charge of: (i) probing the state information (akaexecution context) of the mobile device and (ii) sendingthis information to the Context Information Service(CIS) executing in the static network;
Configuration Service (CS):Stores and manages the configuration of each mobile device:
MAC Address, (IP:port) pair of CIS, periodicity of theMonitor repots to the CIS, and (IP:port) pair of theDiscovery Service;
Context Information Service (CIS): stores and processes the state information received fromthe Monitors, and eventually sends notifications aboutcontext changes to Proxies which have subscribed to such notifications;
Other Services: Discovery Service, LocationInference Service & Symbolic Region Manager
1010
Main Components
Monitor (XP/CE/Sim)is a daemon executing on the mobile device;Periodically probes (and sends to the CIS) state informationabout the mobile device’s resources and wireless RF signals, e.g.:
Strength of RF signal received from all visible Access Points ;CPU utilization, available memory and energy;MAC Address, IP and currently used Access Point;other data....
RF signals are obtained through WiFi scan operations, in a uniform way, independently of the 802.11 network interface;
Implemented for WinXP and WinCEThe Monitor also reports to the CIS any change of the currentIP address or Access Point of the device (i.e. a migration)
6
1111
Monitor/XP
1212
Monitor/CE
For palmtops running Windows Mobile 5.0Probing of GPS coordinates (lat./long./height) for devices with GPS sensor.
Architecture:
MoCAMonitorDllCE (C)
MoCAMonitor (C# .NET CF)
NDIS
MoCAMonitorInterfaceCE (C# .NET CF)
Windows CE API GPSID
MoCAMonitorGPSDllCE (C)
7
1313
Monitor/CE
Adapted GUI for usage at Palmtops
1414
Context Information Service(CIS)Delivers context information to any application entity (e.g.
server/client/proxies), through direct queries or subscriptions withcontext expressions.Context variables used in expressions• CPU (Int – 0 to 100) %• EnergyLevel (Int – 0 to 100) %• AdvertisementPeriodicity (Int – 0 to 100000)• APMacAddress (String)• FreeMemory (Long) in Kbytes• DeltaT (Long)in ms• OnLine (Boolean)• IPChange (Boolean)• Roaming (Boolean)• RF Signal Strength from each AP (dB)• LinkQuality (dB)
Usually, applications are interested in:State of the device (e.g. available memory, enery level)Wireless connectivity statusAproximate position of the device
8
1515
Context Information Service(CIS)
CIS can be deployed as a pool of servers (each onecollecting the context information from Monitors);Each device has associated its context information(indexing through MAC-Address) CIS-Monitorcommunication uses sockets/UDP;CIS Clients subscribe to the service informing thedevices’s MAC-Address (as the Subject) and anSQL92-like expression defining the state ofcontext they are interested in. Example:
Subject=”02:DA:20:3D:A1:2B”, Properties = “roaming = True” OR “FreeMem < 15%” OR “CPU > 90%”;
1616
Static Context Information
Device static information from UAProfprofileAPI to obtain context attributes valuesExamples
DeviceProfile.HardwarePlatform.ScreenSizeWidthDeviceProfile.HardwarePlatform.ScreenSizeHeightDeviceProfile.HardwarePlatform.BitsPerPixelDeviceProfile.SoftwarePlatform.OSName
Context attributes can also be used in a subscription expression
subscribe("00:02:2D:A5:06:46", "Device.LocalResources.EnergyLevel > 30 AND DeviceProfile.HardwarePlatform.ColorCapable = TRUE")
9
1717
Context Information Service(CIS)
UAProfRepository
MoCA's Context Model
CIS
UAProfHandler
Controller
Con
text
Acce
ss A
PI UAProf Cache
Monitorvendor & model
context information
vendor & model
staticcontext
context information
UAProf Profile
Vendors servers
1818
Location Inference Service(LIS)LIS is a GPS-less positioning service for indoor applications,
based on IEEE 802.11 signal strength finger-printing thatuses a stochastic algorithm to correlate sinal patterns.
Usage is in two phases:Calibration:
Within the area of interest (e.g. a building, part of a campus) several reference points (RP) are defined (eachof which receives an identifier = symbolic name).At each RP, the RSSI from all visible 802.11 Access Pointsis sampled (e.g. N samples), which are stored at LIS’s database,A Symbolic Region is defined in terms of its RP’s identifiers.
Inference:At any time, LIS gets N samples of the signal strength atthe current position and identifies the set of k RPs in thedatabase that have the most similar signal distributionscompared to the current distribution.It then infers that the device is located in the symbolicregion determined by the majority of RPs.
10
1919
LIS Histogram Algorithm
2020
{-59,-80,-49} {-63,-85,-57} {-42,-60,-60} {-30,-45,-64}
{-90,-75,-42} {-92,-72,-53} {-82,-50,-89} {-55,-35,-78}
{-75,-78,-68} {-76,-77,-74} {-54,-55,-70}
Room 501 Room 502 Room 503 Room 504
Room 505 Room 506 Room 507 Room 508
Corridor
Access Point
Reference Points {Signal Pattern}
Device
Location Inference Service (LIS)
{-60,-78,-48}
Inferred Device Location:Inferred Device Location:Room 501
11
2121
LIS – Types of Access
LIS supports:Syncronous access
Symbolic region of a device DAll Devices within a reguion R
Asynchronous notificationsApplication instantiates either a RegionListener or a DeviceListenerWhenever a device enters or leaves a region, LIS notifies all subscribed applications about thecorresponding regionID or deviceID
Definition and Management of different regionhierarchies (built upon atomic regions)
2222
LIS – Asynchronous access
Basic API:void subscribe(String regionId, RegionListener listener)
onDeviceEntered(String regionId, String deviceId)onDeviceExited(String regionId, String deviceId)
void unsubscribe(String regionId, RegionListener listener)
void subscribe(String deviceId, DeviceListener listener)onRegionChanged(String deviceId, String regionId)void unsubscribe(String deviceId, DeviceListener listener)
void unsubscribe(String deviceId, DeviceListener listener)
12
2323
LIS-LIS Interaction
Monitor sends context data each 30 ms (configurable)Each second LIS queries CIS about Signal Strengths ofall devices (2) & (3)
LIS analyses the n most recent probes from each device, infers the current symbolic location, compares it with thelast seen (device, region) association, and possibly sendsnotifications (4) to all interested client applications
2424
Monitor/Sim
Is a tool which simulates a mobile device:Behavior defined by a configuration file (scans are read from different files)
Sends this information to CIS (like the “real” Monitor)Can be deployed on any host
This facilitates: Debugging of the context-aware applications in the usual networked environment (without having to physically move between regions)Evaluating the scalability of the application (test with hundreds/thousands of fake mobile devices)
monitor.scanInterval=1000 monitor.repeating=true cis.server.host=localhostcis.monitor.port=55010 file1=conf/Scan-Banco_01.txt interval1=5000 file2=conf/Scan-EspacoAberto.txt interval2=10000 file3=conf/Scan-Mesa_03.txt interval3=20000
loop
13
2525
Some Prototype Applications
Some location-aware prototypes developed using MoCA:W-Chat chat-tool with connectivity awarenessNotes in the Air (NITA) notes to locations (virtual
whiteboards) and location-based chatMobile Matchmaking Service location-based matching of
user interestsBuddySpaceLive on-line tracking of friend’s locationsWireless Marketing Service location-based discount
couponsVirtual Lines location-based reservation of a
position in a lineWho Are You? (WAY) proximity-based exchange of business
cardsuGuide allows to open region-specific URLs in
any browser
2626
W-Chat
Wireless Chat (W-Chat) shares the wirelessconnectivity status of the participants of a chatroom;
14
2727
Ubiquitous Guide - uGuide
Client/Server applicationAdmin registers at theserver one URL for each symbolic regionSymbolic Regionsmay be representendin an hierarchy, e.g.
/PUC-Rio/RDCBuilding/5thfloor/Room511
2828
uGuide @ the Client
User logs in Icon appears in task-barWhenever user entersa registered region, a pop-up opens withthe corresponding link Link can be opened in any Web browserPerhaps, user entersa non registeredregion
15
2929
Some uses of MoCA
MoCA has been used as the fundamental building block for other specialized middleware, developed by other groupsand universities. Some examples:MoGrid: a middleware for mobile Grids (LNCC/RJ) – PhDthesisContext-aware Exeption Handling for Ubiquitousenvironments (LES/PUC-Rio) - M.Sc. thesisContextTV: a context-aware middleware for interactivedigital TV on mobile devices (UF Pernambuco) – M.Sc. thesisIntegration of JSP with MoCA as a web service (UF Viçosa/MG) – undergraduate final projectMAG/MoCA: Interface for Grid access through handhelddevices (UF Maranhão) – Integrade Research project
3030
Selected Publications(available at www.inf.puc-rio.br/~endler/publ.html)
Overview:V. Sacramento, M. Endler, H.K. Rubinsztejn, L.S. Lima, K. Gonçalves, F.N.do Nascimento, G. Bueno, MoCA: A Middleware for Developing Collaborative Applications for Mobile UsersIEEE Distributed Systems Online, ISSN 1541-4922, vol. 5, no. 10, October, 2004.
LIS and NITA:K. Gonçalves, H.K. Rubinsztejn, M. Endler, B. Santana, S.D.J. Barbosa, Um aplicativo para comunicacão baseada em localização, 6o. Workshop de Comunicação sem Fio e Computação Móvel (WCSF 2004), Fortaleza, pages 225-231, October 2004. H.K. Rubinsztejn, M. Endler, V. Sacramento, K. Gonçalves, F.N. do Nascimento, Support for Context-aware Collaboration, First International Workshop on Mobility Aware Technologies and Applications (MATA 2004), Florianópolis, LNCS no. 3284, pages 37-47, October, 2004
16
3131
Selected Publications(available at www.inf.puc-rio.br/~endler/publ.html)
Proxy Framework:H.K. Rubinsztejn, M. Endler, N. Rodrigues, A Framework for Building Customized Adaptation Proxies, in Proc. of the IFIP conference on Intelligence in Communication Systems (INTELLCOMM 2005), Montreal, October 2005.
Privacy Service:V. Sacramento, M. Endler, F.N do Nascimento, A Privacy Service for Context-Aware Mobile Computing, Proc. of the IEEE Conference on Security and Privacy for Emerging Areas in Communication Networks (to appear), Athens, September 2005.
3232
Credits
The Middleware Guys:Vagner Sacramento Hana K. RubinsztejnRicardo C.A. da RochaLuciana dos S. LimaJosé Viterbo FilhoFernando Ney NascimentoGustavo Luis Baptista
The Application Guys:Kleder GonçalvesPedro NevesRodrigo PrestesMarcelo MalcherJordan Janeiro
Other Collaborators:Giulliano Bueno
17
3333
More Information...
For documentation and downloads visitMoCA’s Web Site:
www.lac.inf.puc-rio.br/moca
Send Email to: