MOBY – A Mobile Peer-to-Peer Service and

Download Report

Transcript MOBY – A Mobile Peer-to-Peer Service and

MOBY – A Mobile Peer-to-Peer
Service and Data Network*
Tzevetan Horozov1, Ananth Grama1,
Sean Landis2 & Venu Vasudevan2
1 Dept. of Computer Sciences, Purdue University, W.Lafayette, IN 47907
{horozov, ayg}@cs.purdue.edu
2 Motorola Labs. IL02-2240, 1301, E. Algonquin Road, Schaumburg, IL 60196
{Sean_Landis-CSL044, Venu_Vasudevan-CVV012}@email.mot.com
Presented by Mehmet Koyutürk
Dept. of Computer Sciences, Purdue University
* This work is supported in part by National Science Foundation grants EIA-9806741, ACI-9875899, ACI-9872101,
and Motorola Labs. Computing equipment used for this work was supported by National Science Foundation, Intel
Corp. and Motorola Labs.
Motivation
Peer-to-Peer networks are gaining
popularity




Decentralized management
Distributed resources
Anonymity
Examples: Napster, Gnutella, Freenet,
Gnunet
Goal: Building a similar network on the
wireless internet capable of sharing
both data and services
Applications
 Daily
 Alternate routes in traffic
 Weather information, regional maps
 Scientific domain
 Access to services on large computing platforms
 Access to services on data repositories
 Can be done without relying on a central
server
 Thin clients as both data sources and data
sinks
 PDA : Appointment books/calendar
 Sensors are sources of sensed data
Stationary vs. Wireless
High mobility
 devices come and go
 device/service mapping is highly dynamic
 the user adds value to the network
location specific information
Hardware/software limitations
 device/service interaction is limited
Low network bandwidth
 device network I/O must be minimized
Design Considerations
End-user transparency
 Providing the end user a seamless view of
the network
Ubiquity
 Facilitating a wide range of wired and
wireless components into the network
Ease of application integration
Performance
Underlying Technologies
 Jini
 A service broker architecture
 JAVA and RMI technology
 Clients/Services have no a-priori knowledge of
each other
 Ideal for wireless networks
 Ad-hoc nature
 Must interact with devices that have different capabilities
 Most mobile devices don’t have sufficient
resources to support Jini
Underlying Technologies
 Surrogate Architecture
Specification
 Architecture to overcome
hardware/software
limitations of the device
 Allows device to run a
surrogate on a wired host
 Surrogate host: Java
framework launched on the
host-capable machine
 Surrogate: Java program
available on an HTTP
server
Challenges for MOBY
 J2ME does not support class loading for
security and performance reasons

Serious limitation if we want to instantiate
different protocol adapters in order to
communicate with various services
 Secure and reliable Jini services discovery
over the internet
 Performance

Service locations and client mapping have
critical impact on resource utilization and enduser performance
Related Research
 P2P data networks: wide-spread deployment
 Gnutella, Freenet, Limewire
 Focus on information sharing, but provide some underlying
technologies
 Enabling infrastructure for sharing services in distributed objectoriented frameworks
 RMI, CORBA, DCOM, DOT-NET
 Foundational technologies for remote-method calls
 Rover software toolkit
 Develop proxies for services to make mobile characteristics
transparent to applications
 The Ninja project
 Targets robust, scalable distributed internet services for highly
heterogeneous devices
 JXTA
 Interoperability in data sharing, platform independence in service
sharing and ubiquity across devices
Past Research vs. MOBY
Majority of frameworks assume:
 Static service sites
 Deterministic mapping of clients to services
invariant on system state
MOBY’s objective
 Integrating transparent service migration
and dynamic client mapping for seamless
scalable performance
MOBY System Architecture
 MOBY pieces together a number of
Jini domains consisting of a LAN that
allows multicast with following
components:
 Wireless access point
 Surrogate host
 Jini Lookup Service (JLUS)
 Jini Services Host (JSI)
 A central gateway called Mnode
 Jini services
 Wireless devices
Mnode
 Exports methods to allow devices to search
MOBY
 Provides secure broadcast and forwarding of
queries
 Central server
 Tunneled communication
 Responds to queries
 Stores a snapshot of the Jini domain
 Launches/terminates System Jini Services
Device Connection
 Device contacts MOBY and launches its
surrogate
 The surrogate gets a reference from SH to
JLUS
 The surrogate opens two TCP ports


To keep surrogate alive
Sending/receiving data
 The device connects and brings up UI
allowing the user to search the network
Terminal Application
CommandSender interface
 Based on javax.microedition.lcdui
 CommandSender object on surrogate
 Invoking methods on CommandSender
modifies terminal application on device by
creating objects on device
Objects on device referenced with their hash
codes
 Interpretation of user response
Commands are created as objects in J2ME
Surrogate Architecture
 Surrogate has three main functions
 Class loading: downloads protocol adapter, and
instantiates it with a reference to CommandSender
 Query initiation: first contacts JLUS, if can’t find
service invokes appropriate RMI methods of Mnode
to search over entire MOBY network
 Query response: uses appropriate RMI methods to
register peer service
Services in MOBY
General Jini Services
System Jini Services
Peer Services
General Jini Services
Jini services provided by service
provider companies
Statically registered with a JLUS in a
given Jini domain
Manually launched by system
administrators
System Jini Services
 Why System Jini Services?
 Interests for service change in long-run.
 Interests change in the short-run.
 Stock quote, traffic during day
 Restaurant / club finder during night
 Improved client-service interaction
 Easy to locate
 Which services could be SJS?




Computation intensive: Photo-editor
Small database: Yellow pages for a city
Coherence of interest: Mapquest
Real-time: Stock quotes
Peer Services
Services provided by peers
Downloaded in a jar file and launched
on the surrogate
Example: Talk daemon
 Surrogate downloads, user can connect
and chats with other devices
Client/Service Interaction
Service proxy
 Downloaded from JLUS
 Usually in the form of RMI stubs that have
reference to service methods
 Provides only communication
Protocol adapter provides interaction
between user and service
 Service provider supplies downloadable
device specific protocol adapters
Searching for Services in MOBY
 General Jini Services
 Surrogate searches for Jini service in local domain
 If not found, a secure MOBY search is performed
 Search returns reference to appropriate JLUS
 System Jini Service
 If service not found, it must be launched
 Peer Services
 Centralized server keeps track of URL storage
 Search performed by contacting a central authority
 Centralized server is not a bottleneck since
instantiation happens only when a service is
restarted at an alternate location or replicated
Searching for Services in MOBY
 Each service has an XML descriptor
 Jini services
 General service description
 URL for protocol adapters
 Peer services
 Information valuable to other peers that need to contact
the service
 Query must be propagated to as many
Mnodes as possible
 Broadcast with adjustable TTL
 Search can be repeated with a higher TTL
 UDP is used for communication between Mnodes
Resource Management in MOBY
 Deployment model: Phone companies and ISPs to
provide access to wireless subscribers
 Problems
 Service distribution among Jini domains
 Hardware resource allocation
 General Jini Services
 Each service provider company assigned an Mnode
 Peer Services
 Administrators need to provide verification and storage
 System Jini Services
 Require special handling
 Should be launched at locations where most requested
 Client latency optimized by moving services closer,
replicating services and terminating them
Managing System Jini Services
Two methods for launching a service
 Deterministic launch
Current Mnode tries to launch service locally
If cannot launch, picks the closest node that
has sufficient hardware resources to launch
Guarantees instantiation
 Probabilistic launch
There is a predetermined maximum distance at
which a service could be launched
Failure signalled if no Mnode with sufficient
resources in this neighborhood could be found
Security in MOBY
 Each Mnode has a tuple (Port, IP, ID
descr, Ti, D, PubKey) referred as Node
ID
 Central server signs Node ID
 Mnodes secure-tunnel their communication
 RSA used for session key exchange
 Boroadcast messages are secure-tunneled
between Mnodes with the obtained session key
 Secure queries are broadcast to secure
Mnodes
 The result is associated with the replying
Node ID
Screenshots
Performance: Terminal Application
 Benchmark application: basic objects like forms, text
boxes, lists
 Both devices run J2ME with 64K application memory
Test
Palm OS
Emulator
Handspring
Platinum
Max # of components
201
201
Total time (sec.)
49
66
Average command per sec.
4
3
MOBY application start (sec.)
8
12
Performance : Surrogate Host
 Performance depends on
 Hardware characteristics of the host machine
 Complexity of surrogate
 Observations on an SH on Pentium III, 600
MHz, 256 RAM
 100 surrogates arriving at the same time take 10
sec to register over TCP
 Can support 50-100 concurrent surrogates at
acceptable latency
Performance : Mnode
 Results on single domain are promising
 Assumptions
 Average phone cell hosts 50 users at a time
 2 queries per user p/m, total 100 queries p/m
 Mnode can process 12000 queries p/m
 120 hosts can maintain lossless broadcasting
Conclusions & Future Work
 MOBY: A fully functional wireless P2P
network
 Infrastructure leverages on various existing
technologies to achieve design goals of end-user
transparency, ubiquity, ease of application
integration and performance
 Difficult to quantify without a large-scale
deployment
 Future work
 Standardizing a service interface
 Quantification of performance