140 likes | 307 Views
Triana: Service-Oriented Examples. Ian Taylor Cardiff University, and the Center for Computation and Technology (CCT) @ LSU. Our Research Motivation. Based on research within the Triana project: Triana - a vehicle for investigating research into distributed systems
E N D
Triana:Service-OrientedExamples Ian Taylor Cardiff University, and the Center for Computation and Technology (CCT) @ LSU
Our Research Motivation • Based on research within the Triana project: • Triana - a vehicle for investigating research into distributed systems • a workflow-based Problem Solving Environment • Goals: • To make the access of distributed services as seamless as possible • To connect heterogeneous Grids • To abstract the core capabilities needed for service-based computing (in P2P, Web services or Grid Computing)
Research Scope • Triana is currently funded through 2 main research projects: • GridOneD: to investigate P2P and integrating visual distributed programming for Gravitational Wave applications • GridLab: one of the 2 project applications (other is Cactus) used to shape the Grid Application Toolkit (GAT)
Grid services Triana, the GAT and the GAP Service Based Computing: Grid Computing: Deployment, discovery and communication with distributed services e.g. P2P and (GSI) Web services Job Submission, File services A Graphical Grid Computing Environment or Portal GAP Interface GAT Interface P2PS JXTA Web Services Condor Unicore GridFTP GRMS WSRF Globus RLS PBS .NET GridLab P2PS Discovery UDDI JXTA Discovery SOAP P2PS Pipes SSH SGE LDR Other.. JXTA Pipes
Short Course:Service-Oriented Usage • Service Discovery + Choreography • Web services • Connecting Web services and integrating with other Triana units • Service Deployment • Peer-to-peer services • Distributing Audio !!! • Generic example - can try and distribute using other networks • Shows the basic interface to distribution
GAP Interface P2PS JXTA Web Services P2PS Discovery UDDI JXTA Discovery SOAP P2PS Pipes JXTA Pipes GAP Interface • Motivation by GAT • A Simple Service based API, for • Service Deployment, • Service Discovery • Pipe Based Communication • Static application interface with multiple middleware bindings • P2PS (name…?) • JXTA • Web services
Service Discovery Dynamic? Decentralized? Communication Message Format SOAP? Transport Protocol TCP? UDP? Service Oriented Comms en_fr hello network bonjour BabelFish GAP babelfish. altavista. com
GAP Interface • Simple Java API • Peer-to-Peer Discovery • Pipe-Based Communication • Multiple Bindings • JXTA • P2PS • Web Services (WSPeer)
GAP Interface public class Server implements MessageListener { public Server(Peer parentpeer) throws PeerException { // create the server service Peer peer = parentpeer.createService(SERVER_SERVICE); // create the server contrrol pipe peer.createControlPipe(SERVER_PIPE, this); // deploy and advertise the service peer.deployService(); peer.advertiseService(); } public void messageReceived(MessageEvent event) { // do something when a message is received } public static void main(String[] args) { new Server(new JXTAPeer()); } } public class Server implements MessageListener { public Server(Peer parentpeer) throws PeerException { // create the server service Peer peer = parentpeer.createService(SERVER_SERVICE); // create the server contrrol pipe peer.createControlPipe(SERVER_PIPE, this); // deploy and advertise the service peer.deployService(); peer.advertiseService(); } public void messageReceived(MessageEvent event) { // do something when a message is received } public static void main(String[] args) { new Server(new JXTAPeer()); } } public class Server implements MessageListener { public Server(Peer parentpeer) throws PeerException { // create the server service Peer peer = parentpeer.createService(SERVER_SERVICE); // create the server contrrol pipe peer.createControlPipe(SERVER_PIPE, this); // deploy and advertise the service peer.deployService(); peer.advertiseService(); } public void messageReceived(MessageEvent event) { // do something when a message is received } public static void main(String[] args) { new Server(new WSPeer()); } }
P2P GAP Bindings • Two Main Bindings • Jxta • legacy implementation, due to upgrade soon… • P2PS • Simple (lightweight) P2P System • Uses in Triana, NRL (sensor nets) and Simulations (within NS-2) • Useful in highly dynamic environments • Based on some Jxta principles i.e. pipes, rendezvous nodes, dynamic discovery, etc • Capable of building small-world networks (centralised-decentralised)
Discovery Service Broadcast/Locate Adverts + Queries in Discovery Subnet Pipe Service Connect Pipes using Endpoint Resolvers Rendezvous Service Send/Receive Adverts + Queries from known Rendezvous Peers Resolvers Pluggable Network Interfaces For Ns2 simulation environment P2PS Overview P2PS Peer Discovery Service Rendezvous Service Pipe Service UDP Resolver TCP Resolver ??? Resolver UDP TCP ??? Network
WSPeer • High Level Interface to Web Services • Discovery • Invocation • Deployment • Hosting • Abstract from usual Web Service Discovery and Communication Mechanisms (i.e. UDDI and HTTP) • P2PS Web Service Discovery? • Uses Apache AXIS as SOAP Engine • Extends Capabilities of Apache AXIS • Stubless Invocation (including complex types) • Non Standard Transports (i.e. P2PS)
locate publish publish locate deploy deploy invoke invoke launch server UDDI HTTP Server WSPeer Application deploy publish locate invoke WSPeer – HTTP/UDDI WSPeer – P2PS
Short Course:Service-Oriented Usage • Service Discovery + Choreography • Web services • Connecting Web services and integrating with other Triana units • Service Deployment • Peer-to-peer services • Distributing Audio !!! • Generic example - can try and distribute using other networks • Shows the basic interface to distribution