triana: service-oriented examples
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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• 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)
Triana, the GAT and the GAP
P2PS JXTAWeb
Services
GAP Interface
UDDISOAP
P2PSDiscovery
P2PSPipes
JXTADiscovery
JXTAPipes
GAT Interface
Condor
Globus RLS
Unicore
PBS GridLab
GRMS
SGESSH
WSRF
LDR
.NET
Other..
GridFTP
Grid Computing:
Job Submission, File services
A Graphical Grid Computing
Environment or Portal
Service Based Computing:
Deployment, discovery and communication with distributed services e.g. P2P and (GSI) Web services
Grid services
• 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
Short Course:Service-Oriented Usage
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
P2PS JXTAWeb
Services
GAP Interface
UDDISOAP
P2PSDiscovery
P2PSPipes
JXTADiscovery
JXTAPipes
QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.
Service Oriented Comms
network
babelfish.altavista.
com
BabelFish
en_fr
hello
bonjour• Service Discovery
• Dynamic?• Decentralized?
• Communication• Message Format
• SOAP?
• Transport Protocol• TCP?• UDP?
GAP
GAP Interface
• Simple Java API• Peer-to-Peer Discovery• Pipe-Based Communication
• Multiple Bindings• JXTA• P2PS• Web Services (WSPeer)
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()); }}
GAP Interface
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)
P2PS Overview• 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 TCP Resolver ??? Resolver
DiscoveryService
RendezvousService
P2PS Peer
PipeService
UDP Resolver
NetworkUDP TCP ???
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)
WSPeer
WSPeer – P2PS
Application
WSPeer – HTTP/UDDI
deploy publish locate invoke
UDDI
HTTPServer
deploy
launch server
publish locate
invoke
deploy
publish locate
invoke
• 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
Short Course:Service-Oriented Usage