190 likes | 307 Views
Overview of Grid Webservices in Distributed Scientific Applications. Dennis Gannon Aleksander Slominski Indiana University Extreme! Lab. User Portals/ Science Portals. Grid Web Services Layer. P2P / Grid Services Layer. (co-)scheduling Service. Peer Creation & resolution Services.
E N D
Overview of Grid Webservices in Distributed Scientific Applications Dennis Gannon Aleksander Slominski Indiana University Extreme! Lab
User Portals/ Science Portals Grid Web Services Layer P2P / Grid Services Layer (co-)scheduling Service Peer Creation & resolution Services Information/ Naming Services Discovery service Security Service Accounting Service User Help Services Information Routing Monitoring Service Event/Mesg Service Resource layer 1000s of PCs ->massive supercomputers Portals, Components & GWS Launch, configure And control • Distributed Grid Application
Central Web Services Standards • Web Services Description Language (WSDL) • An XML document that • Describes the interfaces types for each port • The contents of messages it receives and sends • Describes the bindings of interfaces to protocols • SOAP – XML over HTTP is default, others possible • Describes the access points (host/port) for the protocol bindings • Web Services Flow Langauge (WSFL) • An XML document that describes how a business process invokes a set of services • UDDI & WSIL • A mechanism to discover WSDL docs for services • WSIF – • Translates WSDL docs into Java proxies
Why use Web Services? • Standards, standards, standards … • not necessarily cohesive but simple and embraced everywhere (HTTP, XML, …) • Simple enough • to make possible quick implementations • Good enough for significant number of tasks, ex: • send message, notification, event, • even good for small data sets
Secure Web Services • Collaborative effort to provide Web Services over Grid • LBL, SDSC, IBM • XSOAP/Java implements SOAP1.1 with SSL and GSI security over HTTP • Secure XSOAP/C++ under development • GSI delegation - steps involved • Grid proxy creation [CoG] • Opening secure connection [JSSE or IAIK] • SSL client and server authorization • Proxy delegation [CoG] • HTTP payload [XSOAP, Apache Tomcat, …] • Sending SOAP payload [XSOAP]
Where do we use it? • Better glue for component • Control tasks done with standard protocol that is simple, XML based and works everywhere (HTTP) • Example: bootstrap of components (creation service and GRAM together) • Events and event channels • Computation steering and monitoring • Resource monitoring Publishing NWS events
Web Services software we use: • XCAT • Java and C++ implementation of CCA over SOAP • Open Framework Code Gen. Toolkit (CGT) generating stubs, skeletons and glue code (such as marshalling objects to XML) • XSOAP • Java and C++ implementation of SOAP 1.1 that adss RMI API, JNDI (LDAP) integration and GSI security • XEVENTS • Reliable application event service using event channels that that is SOAP 1.1 service • XSPACES • 3rd party: Castor, Tomcat, XML parsers…
Components as Services • Our XCAT components that are CCA based are also web services • Can accept SOAP1.1 requests • Component references publishable in directory service (right now LDAP) • CCA defines internal services • Creation • Connection • …
GRAM client GRAM service SSH client SSH server Example: creation service XCAT component Scriptable component XX XX SOAP Send handle Creation service Creation service Instantiate
NOTEBOOK This is a scientific notebook example there is text and there is also some interesting graphics and some scripts Example: tracking computation XCAT Components Events are sent as SOAP packets handleEvent Event Channels subscribe Event Visualizer
Reliable Application Event Service • Publish event • Receive events • Store events for later retrieval • Deal with network failures or temporary disconnection, moving clients (DHCP) and firewalls (receiving events) • Publishing from C/C++/Fortran … • Interoperability • allow any SOAP/HTTP implementation to send events and receive events (generic event)
Web Services in Grid Programming • Authentication and Authorization • Obvious examples of Grid Web Services • Discovery Service • Finding remote “instances” of things • May be LDAP based like MDS or other … • Resource Brokering • What are the best resource upon which to run my application now? • Application Factory Service
Application Factory Service Provide me with an instance of application X • A service that understands a how to instantiate a running instance of an app component. • You provide it with appropriate requirements initial conditions, etc. • The service • checks you credentials and authorization • launches the app and returns a reference to it. App factory App Instance
User Portals/ Science Portals Web Server Disc serv Event channel App factory Resource Broker App Instance Anatomy of a Componentized Grid Service Application • User Configures Application from Web Browser • Sets application parameters • Launches job • Web Server contacts appropriate application factory service (FS) • Supplies FS with task parameters • FS contacts Resource Broker and secures job launches. • Returns jobID to server to browser • Job begins execution • Publishes its contact point to discovery service • Begins publishing status events to event channel. • Web server discovers application • Allows user to interrogate it or retrieve event traces
An Application Instance • Control Interface • check status • control messages Event stream • Typical Instance • Publishes event stream to “well known” channel. • Has a Control Interface to allow portal level interrogation or remote steering • May be linked to other components/services Links To Other Apps/ services Application Instance
How to link and control a set of application components? • We use a Jython Script • Script uses java cog to launch the component instances through gram • Or script can consult a directory service • The script can call a connect operation to link two instances • The script can invoke ports directly App Script
WSFL & Control Flow • An XML document that describes the work flow of a task that uses web services • Completely analogous to component script • Except no direct service to service link. WSFL
Further work • Better integration with GSI • Experimenting with GSI delegation • Maintain interoperability • Interoperates with SOAP/GSI from LBL pyGlobus and GSI Apache • Adding GSI security to XSOAP/C++ • Fully use WSDL • …
Contact us • Extreme! Lab Indiana University • and check our web page:and check our web page: http://www.extreme.indiana.edu/ • Get our XSOAP/Java implementation • Play with it and let us know! • And more coming soon … • XEVENTS, XSPACES, XSOAP/C++, …