Project JXTA Instructor: Dr. Erdogan Dogdu Presented by: Liu Shuai

Slides:



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

High Performance Computing Course Notes Grid Computing.
Service Oriented Architectures in Heterogeneous Environments
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Technical Architectures
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.
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.
Lesson 18-Internet Architecture. Overview Internet services. Develop a communications architecture. Design a demilitarized zone. Understand network address.
The Internet Useful Definitions and Concepts About the Internet.
Supporting Mobile Sensors and Typed Data Exchange Through the JXTA p2p Framework Supporting Mobile Sensors and Typed Data Exchange Through the JXTA p2p.
JXTA Selo TE Introduction What is JXTA ( pronounced Juxta ) What is JXTA ( pronounced Juxta ) Jxta – an open, network computing platform designed.
Interpret Application Specifications
Peer-to-Peer Networks & JXTA by Madhurasmitha Chakravarthy & Priti Sabadra.
1 Seminar: Information Management in the Web Gnutella, Freenet and more: an overview of file sharing architectures Thomas Zahn.
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.
1CS 6401 Peer-to-Peer Networks Outline Overview Gnutella Structured Overlays BitTorrent.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Web-based Portal for Discovery, Retrieval and Visualization of Earth Science Datasets in Grid Environment Zhenping (Jane) Liu.
A centralized system.  Active Directory is Microsoft's trademarked directory service, an integral part of the Windows architecture. Like other directory.
MobileMAN Kickoff1 Prototype Development Kit & P2P Middleware Proposal Giovanni Turi IIT - CNR Pisa
Virtual LANs. VLAN introduction VLANs logically segment switched networks based on the functions, project teams, or applications of the organization regardless.
A global, public network of computer networks. The largest computer network in the world. Computer Network A collection of computing devices connected.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Cli/Serv.: JXTA/151 Client/Server Distributed Systems v Objective –explain JXTA, a support environment for P2P services and applications ,
Introduction to Networking Concepts. Introducing TCP/IP Addressing Network address – common portion of the IP address shared by all hosts on a subnet/network.
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
Cmpe 494 Peer-to-Peer Computing Anıl Gürsel Didem Unat.
RUNNING PARALLEL APPLICATIONS BEYOND EP WORKLOADS IN DISTRIBUTED COMPUTING ENVIRONMENTS Zholudev Yury.
Getting Started with JXTA for J2ME Advisor : Dr. Ching-Long Yeh Report : DI.2, 洪泰昌 ( ) Course: XML 文件管理.
Sun’s Project JXTA Technical Overview Presented by Sergei Kovalenko Red Team: Janhavi James A. Davis Fernando D. Diaz.
Version 4.0. Objectives Describe how networks impact our daily lives. Describe the role of data networking in the human network. Identify the key components.
Peer To Peer Applications
Enabling Embedded Systems to access Internet Resources.
1 A P2P Collaborative System Using JXTA Hosei Graduation School ITPC 02R3315 Katsuhiro CHIBA.
Project JXTA : An Open Peer-to-Peer Network Environment Gene Kan Project JXTA Sun Microsystems, Inc.
11-1 Pipes. Learning Objectives ● This module will help you... – Understand key JXTA pipe concepts – Understand how pipes work – Gain familiarity with.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Peer-to-Pee Computing HP Technical Report Chin-Yi Tsai.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
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.
Virtual Private Ad Hoc Networking Jeroen Hoebeke, Gerry Holderbeke, Ingrid Moerman, Bard Dhoedt and Piet Demeester 2006 July 15, 2009.
JXTA (Juxtapose) Presented By: Anıl Gürsel Mehmet Çatalgöl.
1 4/23/2007 Introduction to Grid computing Sunil Avutu Graduate Student Dept.of Computer Science.
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.
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.
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.
JXTAJXTA By Fawaz AlSulaiman
Flashback: A Peer-to-Peer Web Server for Flash Crowds Presented by Tom Batkiewicz CS 587x Fall ‘07.
11 CLUSTERING AND AVAILABILITY Chapter 11. Chapter 11: CLUSTERING AND AVAILABILITY2 OVERVIEW  Describe the clustering capabilities of Microsoft Windows.
Jini Architecture Introduction System Overview An Example.
Kemal Baykal Rasim Ismayilov
Fundamentals of Information Systems, Second Edition 1 Telecommunications, the Internet, Intranets, and Extranets.
18-1 Summary (Day 2) Learning Summary – What is JXTA ? – Understand the fundamental concepts of JXTA – Learn about the various implementations of.
ECEG Group. iSpace Room Before iSpace Room After.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Peer-to-Peer Systems: An Overview Hongyu Li. Outline  Introduction  Characteristics of P2P  Algorithms  P2P Applications  Conclusion.
6-1 How to Write JXTA Applications. 6-1 Learning Objectives ● This module will help you... – Gain familiarity with guidelines and design conventions that.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 6: Planning, Configuring, And Troubleshooting WINS.
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.
Chapter 1 Introduction to Networking
Project JXTA By Jude Mercado.
Building Distributed Educational Applications using P2P
CHAPTER 3 Architectures for Distributed Systems
Chapter 3: Windows7 Part 4.
Presentation transcript:

Project JXTA Instructor: Dr. Erdogan Dogdu Presented by: Liu Shuai

Outline Introduction - what is JXTA Goal - what JXTA is aiming at Structure - how JXTA is built Protocols - what protocols JXTA has Implementation – JXTA programming in Java Applications - what can be done with JXTA

Introduction started by Sun's Chief Scientist Bill Joy JXTA is pronounced as “juxta”, is short for juxtapose, as in side by side. an effort to create a common platform for building distributed services and applications, especially for P2P networking.

What is P2P? Server-Client model

What is P2P? (Cont.) Problem with Server-Client Model Scalability  As the number of users increases, there is a higher demand for computing power, storage space, and bandwidth associated with the server-side Reliability  The whole network will depend on the highly loaded server to function properly

What is P2P? (Cont.) Peer-to-Peer model

What is P2P? (Cont.) Advantage of P2P model 1. The system is based on the direct communication between peers 2. There is zero reliance on centralized serviced or resources for operations 3. The system can survive extreme changes in network composition 4. They thrive in a network with heterogeneous environment 5. This model is highly scalable

Goals Interoperability — JXTA technology is designed to enable peers providing various P2P services to locate each other and communicate with each other. Platform independence — JXTA technology is designed to be independent of programming languages, transport protocols, and deployment platforms. Ubiquity — JXTA technology is designed to be accessible by any device with a digital heartbeat, not just PCs or a specific deployment platform.

JXTA Core JXTA Services JXTA Applications Structure Any Peer on the Web (Desktop, cell phone, PDA, Server) Security Peer GroupsPeer PipesPeer Monitoring JXTA Community Services Sun JXTA Services JXTA Community Applications Sun Applications JXTA Shell Peer Commands

Technology Concepts Peer Any networked device that implements one or more of the JXTA protocols Peer group A collection of peers that have agreed on a common set of services. Each peer group can establish its own membership policy One peer can belong to more than one peer group Advertisement An XML-structured format file describing all existing resource, such as peer, peer group, pipe, service.

Technology Concepts(Cont.) Message A set of name/value pairs sent between JXTA peers. Pipe Message transfer mechanism for service communication A message queue supporting create, open, close, delete, send and receive operations

Protocol JXTA is a set of six protocols Peer Discovery Protocol - find peers, groups, advertisements Peer Resolver Protocol - send/receive search queries for peers Peer Information Protocol - learn peers’ status/properties Peer Membership Protocol - sign in, sign out, authentication Pipe Binding Protocol - pipe advertisement to pipe endpoint Endpoint Routing Protocol - available routes to destination

Implementation JXTA in Java JXTA Standard platform for JDK1.3 PJAVA for Personal Java JXME for J2ME (CLDC/MIDP) Implementation in other language including C Perl 5.0 Python Ruby Smalltalk

Application Create a group of peers that provide a service Securely communicate with other peers on the network Find other peers on the network with dynamic discovery across firewalls Easily share documents with anyone across the network Find up to the minute content at network sites Monitor peer activities remotely

Application - examples Connected game/chat systems so that multiple people in multiple locations can locate each other, send messages securely. Distributed file caching/knowledge base for data sharing. To share and search file/media over the network

A sample program public class DiscoveryDemo implements DiscoveryListener { static PeerGroup netPeerGroup = null; private DiscoveryService discovery; PeerAdvertisement peerAdv; public DiscoveryDemo() {... } // method to start the JXTA platform private void startJxta() { try { netPeerGroup = PeerGroupFactory.newNetPeerGroup(); }catch ( PeerGroupException e) {... } // Get the discovery service from our peer group discovery = netPeerGroup.getDiscoveryService(); }

A sample program(cont.) //This thread loops forever discovering peers every minute, and displaying the results. public void run() { try { // Add ourselves as a DiscoveryListener for DiscoveryResponse events discovery.addDiscoveryListener(this); while (true) { System.out.println("Sending a Discovery Message"); // look for any peer discovery.getRemoteAdvertisements(null, DiscoveryService.PEER,null, null, 5, null); // wait a bit before sending next discovery message try { Thread.sleep(10 * 1000); } catch(Exception e) {... } } //end while } catch(Exception e) {... } }

A sample program(cont.) public void discoveryEvent(DiscoveryEvent ev) { DiscoveryResponseMsg res = ev.getResponse(); String aRes = res.getPeerAdv(); try { InputStream is = new ByteArrayInputStream( (aRes).getBytes() ); peerAdv = (PeerAdvertisement) AdvertisementFactory.newAdvertisement(new MimeMediaType( "text/xml" ), is); System.out.println (" [ Got a Discovery Response ["+ res.getResponseCount()+ " elements] from peer : " + peerAdv.getName() +" ]"); } catch (java.io.IOException e) {... } Enumeration enum = res.getResponses(); String str=null; PeerAdvertisement newAdv=null;

A sample program(cont.) while (enum.hasMoreElements()) { try { str = (String) enum.nextElement(); newAdv =(PeerAdvertisement) AdvertisementFactory.newAdvertisement (new MimeMediaType ("text/xml"), new ByteArrayInputStream(str.getBytes())); System.out.println(" Peer name = " + newAdv.getName()); } catch (java.io.IOException e) {... } } } // end while }

A sample program(cont.) static public void main(String args[]) { DiscoveryDemo myapp = new DiscoveryDemo(); myapp.startJxta(); myapp.run(); }

Reference L. Gong, "Sun's Project JXTA: A technology Overview," 'Project JXTA': A Technology Overview, JavaOne 2001 Project JXTA: Java™ Programmer’s Guide

Creating JXTA Systems Instructor: Dr. Erdogan Dogdu Presented by: Yan Gu

Outline Application level design and architecture a top-down look at Jxta A distributed data collection problem. Analyze and design a solution through Jxta How Jxta changes the networking landscape by juxtaposition Jxta Service and Client

A specific example Create a large-scale distributed weather data collection and analysis system.  Collectors: Are weather data collection points Dispersed all over the world Not all of them connected directly to the Internet May go online or offline at anytime.  Concentrator: Monitors data from many collectors feed data in realtime into relational database Vary in number and location  Relational Database  Supercomputer: Analysis for data from relational database

Problem to solve how can our system operate continuously allow for the dynamic addition and removal of both collectors and concentrators with little impact on overall performance?.

Solutions: Juxtaposition

Data Collector Network

Jxta Benefits for P2P Network Uniform decentralized addressing Easy addition and removal of new collectors or concentrators Network virtualization simplicity in design Fault Resiliency continuous operations Dynamic self-organized network maintenance-free operations Support for a diversity of implementations hardward platforms, programming languages, and communication protocols

Unique Identifier Uniquely identify an entity and serves to locate it No central name server like DNS Presented as URN  Sort of URI 64 bytes array  Typical id:  urn:jxta:uuid …C8168F0E4BDA903

Network Virtualization

Peer Endpoint Protocol Used to dynamically find a route to send a message to another peer  Uses queries send to other routers Caches route information locally and uses remote peers  Uses the relay service for peers that are not reachable (firewall) Leasing mechanism  Uses the Endpoint service to send messages  The PeerAdvertisement contains a list of Transport Protocols  Endpoint service used to delegate the sending part to the appropriate protocol

End point protocols as drivers

Jxta routing example

Fault Resiliency P2P network topology will change unreliable nature of P2P peer reroute message on the fly as peers come and go in the network peergroup level support peergroup service -- redundantly implemented services that should always be available within a peergroup

Dynamic self-organized network A peer with a uniform ID must Locate the local peers and discover their capabilities discover the peergroups that are available and join one discover the services available in a peergroup and start using them A peergroup serve as a network-partitioning mechanism ensuring that advertisements are only related to he group members also serve authentication domain for certain applications

Weather station example Concentrator - Jxta Services Collector - Jxta clients

Concentrator Implementation 1. Read and process appropriate configuration file 2. Start Jxta 3. Join the group in the configuration file 4. Determine if the service ad is present. If not, create one and publish it. 5. Wait on pipe for message from collectors 6. Process the message and store in database 7. Go back to step 6

Collector Implementation 1. Read and process appropriate configuration file 2. Start Jxta 3. Join the group specified in the configuration file 4. Discover service ad by concentrator. If not, we can not go ahead. 5. Extract pipe information from service ad. 6. Collect data at timed intervals 7. Create message containing the collector location and data 8. Send message to concentrator through pipe 9. Go back to step 6

Application Pattern Two extremely loosely coupled populations Consumer and Producer Consumer not willing to committed to one specific producer Consumer may want Select the best producers at any time Reduce dependence on one single producer Choose from one large dynamic community whose size and topology is unmanageable