Project JXTA Technology Overview
Total Page:16
File Type:pdf, Size:1020Kb
PPrroojjeecctt JXTJXTAA TTeecchhnnoollooggyy OOveverrvviieeww Dr Simon See Technical Director Asia Pacific Science & Technology Center www.jxta.org Sun Microsystems Inc. The Time Is Right for P2P and Project JXTA Peer-to-Peer (P2P) is not new. However, the time is now right for the broad P2P applications deployment. The Project JXTA technology lets developers build and deploy P2P solutions more quickly. Topics • Peer-to-Peer computing • Project JXTA technology • Project JXTA today • Future directions What Is Peer-to-Peer (P2P)? • P2P covers a wide range of applications… – Sharing files, distributed search and indexing – Sharing CPU and storage resources – Instant messaging & devices communicating together – Collaborative work (and games) – Web services – New forms of content distribution, sharing, and delivery • P2P is not… – New or a specific architecture, technology, business model, or market – About eliminating servers or centralized services PP22PP iiss aabboouutt aannyy ddeevviiccee eeaassiillyy ccoonnnneeccttiinngg ““ddiirreeccttllyy”” ttoo ootthheerr ddeevviicceess ttoo eennaabbllee aa mmoorree ccooooppeerraattiivvee,, oorr ssoocciiaall,, ssttyyllee ooff ccoommppuuttiinngg.. P2P Makes Sense Now • More people connected, more Network Computing Explosion data generated Everythiing that touches • More nodes on the Internet the network iis growiing Devices and wireless Web at an exponential rate Data • More bandwidth available Users Services • More computing power Transactions Bandwidth available (disk, memory, CPU) Use of the Network/ Value of the Network • More interesting applications, content, and services • Edge devices are increasingly providers of resources Characteristics of Ideal P2P Applications • Applications best suited for P2P implementation are those where: – Centralization is not possible or desired – Massive scalability is desired – Relationships are transient or ad-hoc – Resources are highly distributed – Resilience is desired TTheheiirr vvaalluuee oorr ppeerrffoorrmmaancncee iincncrreeaasseess aass mmoorree nonoddeess ppaarrttiicicippaattee iinn tthhee nenettwwoorrkk JXTA Enables Classic P2P Applications Communications, collaboration, gaming Content delivery and sharing networks Transactional Web services Resource sharing JXTA Sample Applications Wireless P2P on JavaTM 2 Platform, Micro Edition (J2METM) P2P Messaging P2P Entertainment P2P Image Sharing Group and 1:1 Chat TicTacToe Game JXTA Sample Applications -- myJXTA2 and PicShare JXTA Sample Application – Ifreestyle by Digital Dream JXTA Sample Applications -- Momentum 1.0 by InView Software JXTA Sample Applications – VistaPortal JXTA Sample Applications - Java IDE by Internet Access Methods Protocols Drive Distributed Computing TCP/IP HTTP JXTA Client-Server Web-based Peer-to-Peer JXTA Virtual Network Project JXTA Virtual Network Peer Peer Peer Peer Peer Peer Peer Peer Virtual Mapping TCP/IP Physical Network Firewall HTTP NAT JXTA Peer Types ● Micro peers ● Standard peers ● Super peers: ● Rendezvous peer ● Relay peer ● Proxy peer JXTA Peer Groups Chat Peer Group Personal Peer Group Workgroup Peer Group Corporate Resources Peer Group JXTA Technology Objectives ● Interoperability – Across different P2P systems and communities ● Platform independence – Programming languages, system platforms, and networking platforms ● Ubiquity – Every device with a digital heartbeat ● Security and Monitoring – For commercial and enterprise deployment Any Platform, Any Network JXTA Chat (J2METM) JXTA MyJXTA Virtual TM Network ( J2SE on Windows ) Network JXTA--C Shell (C on SolarisTM) JXTA Core Building Blocks • Peer Groups – Manages identity of peers and peer groups – Join, Leave, Create • Peer Pipes – Send any content (code, data, etc.) to peers – Messages in XML format – Secure pipes supported • Peer Monitoring – Check peers’ status remotely, control remote peer behavior – Meter peers’ usage, set usage or bandwidth limits • Security – Pluggable architecture supports a variety of standard security solutions – Control group membership – Encrypt data sent over pipes JXTA Software Architecture Sample Applications JXTA Instant Messaging File Sharing Resource Sharing Applications Instant Messaging File Sharing Resource Sharing Collaborative Apps Auctions JXTA Sample Services Services Search Indexing Discovery Membership JXTA Peer Groups Peer Pipes Peer Monitoring Core Peer Advertisements Peer IDs Security Any Connected Device JXTA Is Based on Protocols ● JXTA defines XML message formats, or protocols, for communication between peers ● Protocols used to discover peers, advertise and discover resources, communicate and route messages, and provide monitoring ● Can be implemented in any language JXTA Implementation Platforms ● J2SEä Implementation – Full implementation of JXTA protocols – Standard and Super Peer functionality – APIs and functionality frozen ● JXTA-C – Standard Peer functionality only – Runs on Linux, Solaris OE, and Windows ● JXTA for J2MEä – Micro Peer functionality only – MIDP-1.0 compliant – Iappli compliant jxta.org Based on a Proven Open Source Model • www.jxta.org – All source, projects, docs, examples on-line • Apache–style software license – No barriers to getting started – No royalties, no fees, no registration • Meritocracy – The more you've done, the more you can do JXTA Community Momentum www.jxta.org (4/2001 – 7/2003) 1,400,000+ downloads 80+ projects 14,000+ members Active discussion groups Community actively contributing and integrating technology Please join our efforts! Community Projects ● Python ● Perl ● Objective-C ● Ruby ● SmallTalk ● Services (e.g. JXTA-SOAP) ● And many others… JXTA Books http://www.jxta.org/bookshelf.html • Early Adopter: JXTA, Sing Li, 2001 • JXTA, Brendon J. Wilson, 2002 • JXTA: Java P2P Programming, Daniel Brookshire, et al, 2002 • Mastering JXTA Development, Joe Gradecki, August 2002 • Java P2P Unleashed, Robert Flenner, et al, 2002 • JXTA in a Nutshell, Scott Oaks, et al, 2002 Looking Ahead • Enhanced Performance, Scalability, and Security • New services and opportunities – E.g. identity, integration with Web services, content management, digital rights, presence • Specification standardization through public organization Problems JXTA Solves ● Provides a set of building blocks and infrastructure that provide a foundation for P2P applications ● Provides an open and interoperable set of protocols that do not have special licensing requirements ● Quick time to market for new products and services What JXTA Does Creating Connected Communities ● Brings devices, services, and networks together ● Enables interactions among highly dynamic resources ● Takes the complexity out of the network and operating environments so developers can quickly build applications ● Users have better access to content across multiple devices, regardless of location – Find it, get it, use it Summary • Project JXTA is an open source platform for P2P applications – it is free! • Project JXTA technology is language, operating system, network, and service agnostic. • Project JXTA works on any network device -- from cell phones to super servers • Project JXTA has a large and active community at http://www.jxta.org Dr Simon See [email protected] [email protected] www.jxta.org.