300 likes | 375 Views
A P2P Collaborative System Using JXTA. Hosei Graduation School ITPC 02R3315 Katsuhiro CHIBA. Background. In latest years, Peer to Peer (P2P) technologies have great influences on people.
E N D
A P2P Collaborative System Using JXTA Hosei Graduation School ITPC 02R3315 Katsuhiro CHIBA
Background • In latest years, Peer to Peer (P2P) technologies have great influences on people. • With the appearance of Napster, Gnutella and so on P2P applications grew very popular. The initial goal of P2P was file sharing. • But, nowadays, we can see new P2P applications for other purposes, such as groupware, distributed computing, and collaboration on the Internet.
Objective of Research • Development and implementation of a P2P collaborative system with following features: • Sharing web information and browser’s actions with multiple users. • Sharing view of text and image files with multiple users. • Supporting collaborative work with groups on the Internet, regardless of network configuration (firewalls and NAT*). • Keywords • Peer to peer network • JXTA • Collaboration on the Internet *NAT :Network Address Translation
What is Collaboration? • In recent years, the collaboration work style has permeated. A collaboration is the way a group of people do work together over the wall of a company or a section. • By practical use of P2P technology, people cooperate in the business by gathering in a virtual group exceeding the gap of time or distance. • Furthermore, JXTA enables us to collaborate on the Internet, regardless network of composition and hierarchy.
Why Peer to Peer? • Merits • Decentralization • Robustness • Cost reduction • Scalability • Resource Sharing • Demerits • Uneasy of security • Maintenance of network composition
Browser for Collaboration Screen Image
Functions of Collaborative System • Shared browser’s view (WYSWIS) • Shared navigation (URL field, hyperlink clicks, scrollbar movements) • Shared text and picture files, etc. • Real-time communication (chat & messenger) • Synchronized drawing pad
Client / Server Architecture • Nowadays, most systems are based on the client/server architecture. • Because resources and management authority are concentrating on a server, management is very easy. • At the same time, server make it difficult that clients work freely.
Peer to Peer Architecture (1) • Peer to Peer architecture consists of computers/devices with equal capabilities that share resource, communicate exclusively with each other and don’t rely on a server or central database for exchanging information and sharing resource. • Representative systems • Napster, Gnutella (file sharing) • Groove, BadBlue (groupware) • SETI@HOME (distributed computing) • Kontiki (contents distribution) • ICQ, AOL Messenger (messenger)
Peer to Peer Architecture (2) • Pure P2P Architecture • Pure P2P does not have any central servers. There is no authentication, and peers search for resource via a distributed-search mechanism. • Hybrid P2P Architecture • A central server authenticates all users. A peers serve as search hubs which catalog the files of peers connected to them. Then, the server responds with results that allow direct connections for file transfer.
JXTA (1) • JXTA is a set of open, generalized peer-to-peer protocols that allow any connected devices on the network to communicate and collaborate as peers, with following main features: • Interoperability • Platform independence • Ubiquity
Peer group Advertisement Message JXTA concepts Peer Service Pipe JXTA (2)
Peers & Peer Groups • Peers • Each peer operates independently and asynchronously from all other peers, and is uniquely identified by its peer ID. • Peers voluntarily discover each other on the network to form transient or persistent relationships called peer groups. • Peer Groups • A peer group is a collection of peers that have agreed upon a common set of services. • Each peer group can establish its own membership policy from open to highly secure and protected.
Service • Discovery service • Membership service (join, leave, making group) • Access service • Pipe service • Resolver service (send generic query requests) • Monitoring service
All JXTA network resources are represented by advertisements. Advertisements are metadata structures represented as XML documents. The JXTA protocols define the following advertisement types. Peer Advertisement Peer Group Advertisement Pipe Advertisement Module Advertisement <?xml version="1.0"?> <!DOCTYPEjxta:PipeAdvertisement> <jxta:PipeAdvertisement xmlns:jxta= "http://jxta.org"> <Id> urn:jxta:uuid-DD6DDF43EB9044A5B8BC9725ECD3EA7448B8BBCFDDC84F5E868E9DB02F646AD204 </Id> <Type> JxtaPropagate </Type> <Name> yamada </Name> </jxta:PipeAdvertisement> Advertisement Ex. pipe advertisement
Discover Animation http://platform.jxta.org/servlets/ProjectHome
Pipe (1) • Pipes are asynchronous and unidirectional message transfer mechanisms used for service communications. • Pipes are indiscriminate; they support the transfer of any object, including binary code, data string, and Java technology-based objects. • The pipe endpoints are referred to as the input pipe and the output pipe.
Point-to-point Pipe A point-to-point pipe connects exactly two pipe endpoints together. Propagate Pipe A propagate pipe connects one output pipe to multiple input pipes. All propagations are done within the scope of a peer group. Peer A Peer B Message Pipe (2) B A D C Input pipe Output pipe
Message • A message is the basic unit of data exchange between JXTA peers. • A message is an ordered sequence of named and typed contents called message elements. • There are two representations for messages; • XML (many different kinds of protocols) • Binary (J2SE platform)
Overview of Collaborative System Group Management Shared View Management Chat Management
Peer name Group name Peer list Group list Make group button Join group button Leave group button System exit button Group Management
URL field Browser Panel Browser Button Share Button Scroll Bar Shared View Management
Send Button Output Area Input Field One-to-one chat Communication Management • Group chat • among all peers in a group • One-to-one chat • Between any two peers in a group
Summary • Features • This system uses the pure P2P architecture rather than else. It enables us to share information and communicate with others, regardless of network configuration and hierarchy. Finally, it helps us to collaborate on the Internet. • Potential applications • E-education • Tele-presentation on the Internet • Virtual meeting on the Internet • Flexible information sharing • Co-navigation on the Internet
Current Work Finished • Basic group management • Shared browser • Group chat • One-to-one chat • Pipe across firewalls & NAT via HTTP
Future Work • Short term (by next March) • Sharing files (text, image, pdf, mp3) • Improving communication reliability • Enhancing group management • Effective memory usage • Free drawing pad • Long term • Voice/video communication based on Java & JMF • Record additional drawing on text & image file • Network security
Comparison [Comparison with C/S chat] [Comparison with JINI]
References (1) • Environment • JAVA : JDK 1.4.0 • JXTA : JXTA stable builds (09/24/2002) (http://download.jxta.org/easyinstall/install.html) • OS : Windows 2000, XP, Linux
References (2) [1] Project JXTA, http://www.jxta.org/ [2] Project JXTA, Java programmer’s guide, http://www.jxta.org/docs/jxtaprogguide_final.pdf [3] Project JXTA, v1.0 Protocols Specification, http://spec.jxta.org/v1.0/docbook/JXTAProtocols.html [4] Groove Network, http://www.groove.net/ [5] Jnutella, http://www.jnutella.org/ [6] O’REILLY OpenP2P.com, http://www.openp2p.com [7] Napster, http://www.napster.com
References (3) [8] 伊藤直樹, P2Pコンピューティング, 株式会社ソフト・リサーチ・センター [9] 大谷卓史/亀井聡/高橋寛幸 共著, P2Pがビジネスを変える, 翔泳社 [10] Joseph D. Gradecki, Mastering JXTA, Wiley Publishing, Inc. [11] Daniel Brookshier, Darren Govoni etc., JXTA: Java P2P Programming, Sams Publishing Inc. [12] Mikito Nakamura and Jianhua Ma, A Peer-to-Peer Shared Web Browser