MobileMAN Kickoff1 Prototype Development Kit & P2P Middleware Proposal Giovanni Turi IIT - CNR Pisa
MobileMAN Kickoff2 Agenda Introduction The need for a “PDK” (Prototype Development Kit) JXTA, a middleware for p2p networking Conclusions
MobileMAN Kickoff3 Introduction MobileMAN has objectives at all levels Demonstrations play an important role: For single modules For the “fully functional”, integrated system Demonstrate through usage of new/ported “killer” applications
MobileMAN Kickoff4 The need for a PDK – (1) Few and unusable examples of ad hoc networks There is the need for a Prototype Development Kit (PDK) A PDK intended as a set of devices and tools to modify, build and test ad hoc software
MobileMAN Kickoff5 The need for a PDK – (2) Use the PDK to: Gain experience with the new technologies Develop step-by-step prototypes Do real experiments Have more feedback to our “paper work” Extend the PDK scope to all project members: Share everybody’s expertise Have a common testbed for coherent results
MobileMAN Kickoff6 The need for a PDK – (3) Target to set up an ad hoc network from (possibly) dishomogeneous nodes Fix the application layer with a reference middleware (MW) Play inside and below the MW Middleware Transport Routing MAC … Application
MobileMAN Kickoff7 The need for a PDK – (4) What kind of devices and tools can we use? HW: laptops, PDA’s, MeshAP… OS: Linux for sure! But MS Windows XX? Wireless Devices: IEEE x, Bluetooth Tools: C/C++ (gcc), Java (JDK) …but one reference MW: Currently investigating on JXTA Applications?
MobileMAN Kickoff8 JXTA A middleware for p2p computing
MobileMAN Kickoff9 JXTA – Intro (1) Pronounced as “juxta” (from “juxtaposition”) P2p computing side-by-side with client/server Set of open, generalized p2p protocols To do what? To build distributed applications able to communicate and collaborate on the network in a p2p fashion
MobileMAN Kickoff10 JXTA – Intro (2) JXTA protocols are designed to deliver: Interoperability, peers locate and communicate with each other Platform independence, from the HW, from the programming language (see “binding”), from the transport protocol, (TCP/IP, Bluetooth, HomePNA) Ubiquity, JXTA technology designed to be accessible by any digital device ...sounds interesting for “ad hoc”...
MobileMAN Kickoff11 JXTA – Intro (3) And more for p2p nets JXTA delivers: Uniform decentralized addressing scheme Network virtualization Fault resiliency Dynamic self-organization ...even more interesting for “ad hoc”! See later more specific slides…
MobileMAN Kickoff12 JXTA – mechanisms What can JXTA-based peers do? Discover each other Self-organize into peer groups Advertise and discover network services Communicate with each other (even in a secure way SSL/TCL) Monitor each other
MobileMAN Kickoff13 JXTA – architecture Three foundamental layers Applications Services Core Some community p2p application Applications and services are not rigidly separeted… p2p networking primitives: pipes, peer groups, monitoring, security Basic p2p services: search and index, file sharing, DFS, PKI…
MobileMAN Kickoff14 JXTA - components Network is composed by peers Peers can group up, forming peer groups Peers can notify offered services through advertisements (XML docs or Binaries) Peers communicate using pipes, exchanging messages (XML docs) Pipes, with asynchronous and unidirectional communication (1:1, 1:N)
MobileMAN Kickoff15 JXTA - protocols Peer Discovery, peers advertise and discover offered resources Peer Information, peers obtain other peers status information Peer Resolver, peers define and exchange information in a query/response model Pipe Binding, peers establish virtual communication channels Endpoint Routing, route discovery…similar to DSR, but with peer hierarchy Rendezvous, message propagation within a group
MobileMAN Kickoff16 JXTA – key aspects (1) Data standardization, use of XML docs to share information among peers Uniform addressing scheme, use Uniform Resource Names (URNs) to identify any resource (peers, groups, pipes…), NO central authority like DNS Example ID: urn:jxta:uuid …..87DA4F688
MobileMAN Kickoff17 JXTA – key aspects (2) Network virtualization and fault resiliency, network topology is abstracted, use of independent routing protocol (ERP), reroute on the fly as peers come and go, replicate services within groups Dynamic self-organization, A peer locates other peers and groups, agrees on groups’ services, implements them and joins A group maintains advertisements for its members, eventually authenticate members
MobileMAN Kickoff18 JXTA - conclusions JXTA sounds appealing for our experiments At least the concepts inside are close enough to ad hoc concepts We can open the box and provide our own ad hoc services Routing: DSR, AODV Transport: TCP, HTTP, Bluetooth Monitoring: check other peers behavior ….and so on
MobileMAN Kickoff19 JXTA – problems Sun supports a JAVA binding, and JAVA is perfect for fast application development, but… Is it light enough for small devices? How can we work around “SW-elefants”? Do our own binding, maybe using the JAVA Native Interface Use variants like JXME on small boxes
MobileMAN Kickoff20 JXME JXTA for JAVA Micro Edition Suitable for small devices with low capabilities Mixed architecture: JXME on edge peers + JXTA with relay service on normal peers
MobileMAN Kickoff21 JXME – features supported Discovery of pipes, peers and groups Creation of pipes and groups Group join Communication through pipes
MobileMAN Kickoff22 JXME – constraints No security (no SSL) Limited architecture and run time support resources Limited networking only HTTP No XML (parsers are really really heavy!)
MobileMAN Kickoff23 JXME – the relays Relay peers will offer: Compact Advertisement XML binary translation Proxy for small Mobile Information Device Profile ( MIDP) devices
MobileMAN Kickoff24 References and questions JXTA project: JXME project: URNs: IETF RFC 2141