JXTA: Tech Brief Dan Berger, Suvidhean Dhirakaosal, Essia Hamouda, Demetris Zeinalipour CS 202 Spring 2003.

Slides:



Advertisements
Similar presentations
peer-to-peer and agent-based computing
Advertisements

Extensible Networking Platform IWAN 2005 Extensible Network Configuration and Communication Framework Todd Sproull and John Lockwood
Service Oriented Architectures in Heterogeneous Environments
 Introduction Originally developed by Open Software Foundation (OSF), which is now called The Open Group ( Provides a set of tools and.
Network Programming Chapter 11 Lecture 6. Networks.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
JAVA Technology. Java Technology Java technology is a portfolio of products that are based on the power of networks and the idea that the same software.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
JXTA P2P Platform Denny Chen Dai CMPT 771, Spring 08.
JXTA Protocol Introduction Student : Jia-Hui Huang Adviser : Kai-Wei Ke Date : 2005/11/22.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 Java Networking – Part I CS , Spring 2008/9.
JXTA Selo TE Introduction What is JXTA ( pronounced Juxta ) What is JXTA ( pronounced Juxta ) Jxta – an open, network computing platform designed.
CS3771 Today: network programming with sockets  Previous class: network structures, protocols  Next: network programming Sockets (low-level API) TODAY!
Peer-to-Peer Networks & JXTA by Madhurasmitha Chakravarthy & Priti Sabadra.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 25 Networking.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Fionn Murtagh Dimitri Zervas Pedro Contreras Royal Holloway, University of London Munich, 24 of June 2005 JXTA P2P, Web Services and WS-Talk.
Project Jxta Prepared by: Sameh El-Ansary SICS AB.
JXTA Lecture 1.JXTA Overview a) Background to Project JXTA b) Design Constraints c) Terminology d) Overview and Architecture e) Introducing the Concepts.
A Study on Mobile P2P Systems Hongyu Li. Outline  Introduction  Characteristics of P2P  Architecture  Mobile P2P Applications  Conclusion.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
MobileMAN Kickoff1 Prototype Development Kit & P2P Middleware Proposal Giovanni Turi IIT - CNR Pisa
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Cli/Serv.: JXTA/151 Client/Server Distributed Systems v Objective –explain JXTA, a support environment for P2P services and applications ,
Cmpe 494 Peer-to-Peer Computing Anıl Gürsel Didem Unat.
Project JXTA Instructor: Dr. Erdogan Dogdu Presented by: Liu Shuai
Getting Started with JXTA for J2ME Advisor : Dr. Ching-Long Yeh Report : DI.2, 洪泰昌 ( ) Course: XML 文件管理.
NET0183 Networks and Communications Lecture 31 The Socket API 8/25/20091 NET0183 Networks and Communications by Dr Andy Brooks Lecture powerpoints from.
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
C Copyright © 2009, Oracle. All rights reserved. Appendix C: Service-Oriented Architectures.
Sun’s Project JXTA Technical Overview Presented by Sergei Kovalenko Red Team: Janhavi James A. Davis Fernando D. Diaz.
JuxMem: An Adaptive Supportive Platform for Data Sharing on the Grid Gabriel Antoniu, Luc Bougé, Mathieu Jan IRISA / INRIA & ENS Cachan, France Workshop.
Peer To Peer Applications
COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye.
1 A P2P Collaborative System Using JXTA Hosei Graduation School ITPC 02R3315 Katsuhiro CHIBA.
Triana: Service-Oriented Examples Ian Taylor Cardiff University, and the Center for Computation and Technology LSU.
Project JXTA : An Open Peer-to-Peer Network Environment Gene Kan Project JXTA Sun Microsystems, Inc.
Naming Examples UUID (universal unique ID) – 128 bit numbers, locally generated, guaranteed globally unique Uniform Resource Identifier (URI) URL (uniform.
11-1 Pipes. Learning Objectives ● This module will help you... – Understand key JXTA pipe concepts – Understand how pipes work – Gain familiarity with.
Cli/Serv.: Chat/121 Client/Server Distributed Systems v Objectives –discuss a client/server based chat system –mention two other ways of chatting.
8-1 Hello World. 8-1 Learning Objectives ● This module will help you... – Get started with running a simple JXTA application – Understand the JXTA configuration.
Vassil Roussev 2 A socket is the basic remote communication abstraction provided by the OS to processes. controlled by operating system.
Configuring Network Services and Protocols Lecture 2.
2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building.
3-1 JXTA Platforms. 3-1 Learning Objectives ● Learn about the different platform implementations of the JXTA protocols – Features provided by each implementation.
P2P-Based Best Resolution Match Image Access, Retrieval and Delivery P Contreras, S Johnstone, F Murtagh CS, QUB.
14-1 JXTA for J2ME Learning Objectives ● This module will help you... – Learn about the architecture of JXTA for J2ME – Learn the JXTA for J2ME.
1 Chapter 28 Networking. 2 Objectives F To comprehend socket-based communication in Java (§28.2). F To understand client/server computing (§28.2). F To.
Dr. Ian Wang Cardiff University, U.K.. Ian Wang, Cardiff University Peer-to-Peer and Grids What does the Peer-to-Peer paradigm offer Grids? Scalable Decentralized.
Towards high-performance communication layers for JXTA on grids Mathieu Jan GDS meeting, Lyon, 17 February 2006.
L 2 - 1 3( 1/ 20) : Java Network Programming. The Socket API The previous contents describe client-server interaction that application programs use when.
9-1 JXTA Discovery Learning Objectives This module will help you... – Understand how JXTA advertisements are published, cached, and.
13-1 Monitoring and Metering Learning Objectives ● This module will help you... – Understand the JXTA monitoring and metering functionality – Gain.
P2P Computing MIRA YUN September 16, Outline What is P2P P2P taxonomies Characteristics Different P2P systems Conclusion.
Java Programming: Advanced Topics 1 Networking Programming Chapter 11.
18-1 Summary (Day 2) Learning Summary – What is JXTA ? – Understand the fundamental concepts of JXTA – Learn about the various implementations of.
6-1 How to Write JXTA Applications. 6-1 Learning Objectives ● This module will help you... – Gain familiarity with guidelines and design conventions that.
Confidential & Proprietary Information of Digital Focus J2ME and the IVY Platform.
Department of Communications, Optics & Materials Technical University of Denmark JXTA protocols Colin Chaballier Advanced.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
Project JXTA Kaarthik Sivashanmugam. JXTA..? JXTA is a set of open, generalized peer-to-peer (P2P) protocols that allow any connected device on the network.
Network Programming. These days almost all devices.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Project JXTA By Jude Mercado.
Building Distributed Educational Applications using P2P
Chapter 3: Windows7 Part 4.
Distributed System using Web Services
Presentation transcript:

JXTA: Tech Brief Dan Berger, Suvidhean Dhirakaosal, Essia Hamouda, Demetris Zeinalipour CS 202 Spring 2003

Outline Problem Statement/Motivation Architecture Overview Experiments/Demonstrations Conclusions

Motivation Existing P2P solutions have had rapid adoption and success – so why build another? JXTA attempts to address 3 key “shortcomings” of typical P2P systems: Interoperability Platform Independence Ubiquity

Interoperability Gnutella for file sharing, ICQ/AIM/Yahoo/Jabber/MSN for instant messaging But none of them can talk to each other. This has led to the development of apps like Gaim (linux) and Trillian (windows) that provide a single front-end to multiple protocols. JXTA aims to standardize at the protocol level.

Platform Independence JXTA is “independent” of programming language, operating system, and networking platform. The core of JXTA are protocol definitions, not API’s.

Ubiquity JXTA was designed to be scalable to any device with a “network heartbeat” – cited examples are: Sensors Consumer electronics (toasters, cell phones) PDAs Etc.

The Grand Vision

Enough Buzzwords, Already JXTA proposes a set of services to enable building a securable logical overlay network linking “peers:” Peer Discovery Peer Resolution Rendezvous Pipe Binding Endpoint Routing

Gratuitous Architecture Picture

Just the Facts Each node in the JXTA network has a “peer id” - a “globally” unique ID (UUID) Urn:jxta:idform3-31:08:66:42:67:::91:24::73 Is Autonomous and may operate independently of all peers Peers (self)organize into peer groups – loosely hierarchical. All peers belong to the “World” group. Peers and services are advertised with advertisements (XML documents)

Advertisements Used to describe peers, peers groups, pipes, content, services and resources Used to pass info between peers Are presented in XML Peer Adv. Peer group Adv. Module Class Adv. Module Spec. Adv. Module Implementation Adv.

Discovery Query

Discovery LAN-based (broadcast) Invitation (in or out of band, via an advertisement) Cascaded (controlled view across discovered peers) Rendezvous (napster-esqe)

Resolution In general – a service that resolves advertisements into endpoints. JXTA ships with one implementation – “Rendezvous” – in which hosts serve as switchboards for messages. More complex/decentralized resolvers are possible, but not specified/provided.

Pipes Pipes are unidirectional communication channels. Peers can host input pipes (incoming messages), or output pipes (outgoing messages). Pipes can be chained to link peers across multiple logical hops, and can be one-to-many. Pipes are bound to peer ids, not IP address.

Pipe

Routing Allows peers to discover routes for reaching a peer which can not be directly connected to. I.e. behind a firewall, NAT device, different network platform, etc.

Experiments

Required Components has Java and C implementations of the core protocols. The C version is based on the APR (apache portable runtime) and trails behind the JAVA version in terms of functionality and ease of use. For Java – requires the J2SE JDK

Installation & Configuration Install a JRE/JDK (e.g. Sun 1.3.1_1) Download the latest JXTAInst_VM.exe InstallAnywhere installer (JXTA v2.0) (4.71MB) (Or download JXTAInst.exe which contains VM) Download tutorials/code from

JXTA Jars JXTA’s core uses 13 other JAR files like Jetty portable Web/Servlet Server, Log4J apache’s generic logging API. Directory Structure so far /InstantP2P -> A “full-fledged” instant P2P application /lib -> The JAR Files /lib/jxta.jar -> Contains the JXTA Programming API /Shell -> Command-line Interface to JXTA /tutorials -> Tutorials that we downloaded individually

import net.jxta.peergroup.*; import net.jxta.impl.id.UUID.*; import net.jxta.impl.id.binaryID.*; public class Hello { static PeerGroup netPeerGroup = null; static DigestTool digestTool = new DigestTool(); public static void main(String args[]) { try { netPeerGroup = PeerGroupFactory.newNetPeerGroup(); System.out.println("Hello from JXTA group " + netPeerGroup.getPeerGroupName() ); System.out.println(" Group ID = " + netPeerGroup.getPeerGroupID().toString()); System.out.println(" Peer name = " + netPeerGroup.getPeerName()); System.out.println(" Peer ID = " + netPeerGroup.getPeerID().toString()); } catch(Exception e) { e.printStackTrace(); } } Step 0: Source/Compiling “Creating a PeerGroup” java -classpath jxta.jar;OTHER_JAR_FILES.jar; Hello

Step 1 : Running the code Now a.jxta directory is created on disk which contains all settings On the next run we only fill in an authentication box

Step 2 : JXTA Sockets! (as of v2.0) JXTA introduces a Socket API which is similar to the familiar sockets. The Socket API attempts to make JXTA Pipe programming easier. (JxtaSocket is a bi- directional Pipe) JxtaServerSocket: Server socket that waits for connections from clients. JxtaSocket: Socket class used to create the I/O streams for both clients and servers.

Step 3 : JXTA Sockets Example In this example we use to types of “advertisement” Discovery Services: LAN-based discovery: Local broadcast over the subnet. ( to ) Works if peers are within the same subnet or if multicast- enabled routers are connecting the peers Discovery via rendezvous points A peer at a well- known address has the task of knowing and disseminating locations of peers. Works if peers are fire-walled in which case direct connection between peers is not feasible.

Step 3 : JXTA Sockets Example socket.adv urn:jxta:uuid A D FBC JxtaUnicast socket example ClientServer read the text file1 Rendevouz Service My ServerSocket ID isuuid...BC 2 read the text file3 The Server I want to connect to is uuid...BC 4 FIREWALL (multicast channel) 5 a)connect, b)receive msg, c) send msg back a)connect, b)receive msg, c) send msg back 6

JXTA Sockets Code Snippets Server (main snippets) // create, and Start the default jxta NetPeerGroup PeerGroup netPeerGroup = PeerGroupFactory.newNetPeerGroup(); // Read file from disk FileInputStream is = new FileInputStream("socket.adv"); // Generate Pipe Advertisment PipeAdvertisement pipeAdv = (PipeAdvertisement)AdvertisementFactory. new Advertisement(is); // Launch ServerSocket JxtaServerSocket serverSocket = new JxtaServerSocket(netPeerGroup, socEx.pipeAdv); // if client connects, spawn two new Threads (input/output). JxtaSocket socket = serverSocket.accept(); OutputStream out = socket.getOutputStream(); InputStream in = socket.getInputStream(); // send a message String msg = “Hello JXTA”; out.write(msg.getbytes()); // receive message back in.read(inbuf, 0, bufsize);

JXTA Sockets Code Snippets Client (main snippets) // create, and Start the default jxta NetPeerGroup PeerGroup netPeerGroup = PeerGroupFactory.newNetPeerGroup(); // Read file from disk FileInputStream is = new FileInputStream("socket.adv"); // Generate Pipe Advertisment PipeAdvertisement pipeAdv = (PipeAdvertisement)AdvertisementFactory. new Advertisement(is); // Launch Socket along with 2 new Threads (input/output). JxtaSocket socket = new JxtaSocket(netPeerGroup, pipeAdv); OutputStream out = socket.getOutputStream(); InputStream in = socket.getInputStream(); // receive message read = in.read(inbuf, 0, bufsize); System.out.println(">> " + new String(inbuf)); // send message back out.write(inbuf, 0, read);

JXTA Sockets Code Snippets Server acting also as Rendezvous Client connecting to Rendezvous

Conclusions JXTAGnutellaNapsterFreenet/Chord Key Difference P2P Platform that allows the deployment of “any” P2P service P2P Protocol tailored to the needs of file- sharers (searching based on filename P2P Protocol tailored to the needs of file- sharers (searching based on filename) Algorithms for Object Location in P2P systems (searching based on keys) Architecture Any (Pure, Rendezvous (hybrid), or centralized Pure/Hybrid P2P (started out as Pure but with Limewire’s Ultra-peers moving to Hybrid) Centralized P2P Structured P2P networks (peers are positioned at well-known places) Transport HTTP or TCP/IPTCP/IP mostly TCP/IP Communication Sync/AsyncAsynchronousSynchronousAsynchronous Data Replication Open (depends on the Application) No (downloaded file not considered replication) Required Lang Bindings JAVA, “C”,Open source mostly in Java. No API. (proprietary) Java and C++

Ongoing JXTA Projects Full list available at : Gnougat: A Fully decentralized file caching RossetChat: Localized JXTA Peer Text Messaging Radiojxta: delivering audio content over JXTA networks P2Pconference: A tool to conduct remote, text-based conferences InstantP2P: To be interactively displayed.