760 likes | 880 Views
Porting applications to Globus Toolkit 3.0 and designing an OGSI-based architecture. Pawel Plaszczak and Rich Wellner. Perfringo Grid Solutions http://perfringo.com. Tutorial materials: http://perfringo.com/events. About the authors. From Foster’s Globus team in Argonne
E N D
Porting applications to Globus Toolkit 3.0 and designing an OGSI-based architecture Pawel Plaszczak and Rich Wellner Perfringo Grid Solutions http://perfringo.com Tutorial materials: http://perfringo.com/events
About the authors • From Foster’s Globus team in Argonne • Co-founded Perfringo Grid Solutions • Focus: industry level Grid applications • Currently: NeesGRID - distributed earthquake simulations • pawel@perfringo.com, rw2@perfringo.com Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Prerequisities • Necessary: distributed systems & software design, purpose of Grid • Useful: Java, Web services, XML, Grid services (will be briefly explained) • Not necessary: coding experience • We will speak on decision making and design. No hands-on programming Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Plan • Part I: Grid services - why and when? • Part II: OGSI and OGSA technology review • Part III: Use case: NTCP • Part IV: Porting to Grid services and GT3 Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Plan of Part I: Grid services - why and when? • Overview: Globus Alliance and Toolkit • Overview: GT2 vs GT3, OGSA • Why go Grid? • Why comply with OGSA? • Why port to GT3? Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
The Globus Alliance • Globus Project ™, since 1996 • Ian Foster (Argonne National Lab), • Carl Kesselman (University of Southern California’s Information Science Institute) • Develop protocols, middleware and tools for Grid computing • Globus Alliance, since Sept 2003 • International scope • University of Edinburgh’s EPCC • Swedish Center for Parallel Computers (PDC) • Advisory council of Academic Affiliates from Asia-Pacific, Europe, US Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Globus Toolkit • GT2 (2.4 released in 2002): reference implementation of Grid fabric protocols • GRAM for job submissions • MDS for resource discovery • GridFTP for data transfer • GSI security • GT3 (3.0 released July 2003): redesign • OGSI based • Grid services, built on SOAP and XML Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
OGSI and OGSA • OGSI = Open Grid Service Infrastructure • Specs from GGF OGSI working group • Defines what makes a Grid service • Based on Web service • Naming, life cycle, state, notification • portTypes definitions, WSDL 1.2 draft • OGSA = Open Grid Service Architecture • Specs from GGF OGSA working group • Defines a list of fundamental Grid services, and how they cooperate • Work in progress Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
What’s new in GT3.0 • Emphasis on OGSI compliant Grid services • OGSA implemented • Uniform SOAP/XML communication layer • Focus on Java implementation • Old GT2 services redesigned • Backward compatibility where possible Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Meaning of GT3 in the community • Most commonly referred project • Traditionally “de facto standard” • Acknowledged leadership by academia and industry (IBM,…) • BSD style license allows for commercial usage • However, it is only a reference implementation. Now standards = GGF • GT undergoes constant changes • With business entering grid, commercial implementations may soon catch up Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Alternatives to GT3 • Protocol level interoperability: • “Grid compliant” >= “implements OGSI” • Other OGSI implementations • OGSI.NET (U.Virginia) • pyGlobus (LBNL) • .NET (U.Edinburgh) • PERL (U. Manchester) • UNICORE (Fujitsu) • Commercial OGSI compliant products by: • Avaki, Platform, Data Synapse, … • Web service alternative: Grid App Framework http://www.neresc.ac.uk/ws-gaf Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Part I contd. • Overview: Globus Alliance and Toolkit • Overview: GT2 vs GT3, OGSA Why? • Why go Grid? • Why comply with OGSA? • Why port to GT3? • upgrading from GT2 Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Why go Grid? • Hot subject • Try it, experience it to learn the potential • Will enable true ubiquitous computing in future • Today, proven in some areas: intraGrids • But still long way to World Wide Grid • State of art techniques, tools are difficult • Short term goals? Use another technology • Does your system have Grid characteristics? • Distributed users, large scale and heterogeneous resources, across domains Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
OGSI architecture: why and when? • Commonly accepted Grid standard • But there are alternatives: WS-GAF, GT2,… • Extends Service-Oriented Architecture • Modular, scalable, maintainable, interoperable • Extensions: use only when needed • Uniform communication layer • Be compatible and inter-operable with other grid systems (that’s what grids are about!) Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Porting to GT3: why and when? • Implementing OGSI is plenty of work! • Piggyback on GT3 for OGSI/A compliance (watch commercial products) • Most serious middleware to consider • Language bindings: traditionally Unix/C, now Java leads • But: unstable, new versions bring changes • Traditionally, for hard core hackers • Traditionally, documentation was lacking • recent signs of improvement, also IBM redbook Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
GT3 stability • GT3 took only 1.5 year to develop. It will change many times! • Anticipated or considered changes: • Refactor GridFTP control channel into XML, DAI • Security: add CASS • GRAM: ongoing improvements • OGSA-C hosting environment to come • OGSA specs is draft • OGSI specs are completed (v. 1.0) Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
GT3.2 • Expected January 2004 • Features: • CAS (Community Authorization Service) • Index Service reimplemented • GridFTP server reimplemented • GridFTP java client: connection reuse, MLST • GRAM performance improvements • CRL support (certificate revocation list) • several bug fixes in core Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Java CoG Kit status • Before: Java client for GT2 • Now integrated with GT3 • Provides low level API for GT3 services: security, GridFTP • Experimental features to come soon (not part of GT3): • Workflow management, compliant with GT2 and GT3 • Comes with example Jetspeed portlets Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
roadmap • Part I: Grid services - why and when? • Part II: OGSI and OGSA technology review • Part III: Use case: NTCP • Part IV: Porting to Grid services and GT3 Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Plan of Part II: OGSI and OGSA technology review • Web service • XML and SOAP • Service Oriented Architecture • Grid service (OGSI) • OGSA • How does GT3 implement OGSA • Examples Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
What is a Web service • Not much to do with HTML • Interface to a well-explained, self-contained function (module, component) • Usu. small grained • Defined in WSDL • Communication: XML and SOAP Web service client SOAP/XML OnlineStore Web service queryItems() orderItem() Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
More on Web services • Specs • W3 Consortium www.w3.org, IBM, Microsoft • OASIS (WS security) • For developers: “Building Web services with Java” by Steve Graham et al • For managers: “Web services and Service-Oriented Architectures” by Doug Barry (the savvy manager’s guide) • Stay tuned: IBM developerWorks articles • http://www-106.ibm.com/developerworks/webservices/ Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Service-Oriented Architecture • System composed of several components exhibiting WS interfaces • Discovery through a well-known directory, such as UDDI • External services use internal ones • Modular, scalable, maintainable, interoperable Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Service-Oriented Architecture in practice OnlineStore WS Web service client queryItems() orderItem() query order StockMgr WS OrderMgr WS query() ship() ship order() bill() warehouse Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
What is a Grid service • Defined by OGSI (GGF working group) • Is a Web service with additions, which are: • Name (handle GSH, reference GSR) • Lifetime management (factories, persistent and transient services) • State (Service Data) • Notification as well as querying • WSDL 1.2 draft (gwsdl: namespace) • Definitions of portTypes Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Grid services in practice: notifications and service data Notification source Subscribe: “tell me when you have it on stock” OnlineStore GS Grid service client query() subscribe() Notify: “it just arrived.” Notification sink StockItem SDE Service data element Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Grid services in practice: naming and life cycle OnlineStore Persistent GS Grid service client 1. query queryItems() 4. query 2. Get reference StockItemAF45X Transient GS 3. create StockMgr Persistent GS getItem() Item SDEs: dimension, price Factory Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
What is OGSA • Open Grid Service Architecture, being defined by GGF OGSA working group • In ubiquitous Grid platform, there is common need for some basic services • OGSA defines this set of base services • OGSA builds on OGSI Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
How does GT3 implement OGSA • Java implementation, C to follow • Container approach: host small-grained services • Hosting environment takes care of basic GS functions • GT3 provides core and base services, users to implement their own • Transient and persistent GS API • Tools to generate Java <-> GWSDL • Axis engine used for SOAP handling • Run with Tomcat or standalone Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
roadmap • Part I: Grid services - why and when? • Part II: OGSI and OGSA technology review • Part III: Use case: NTCP • Part IV: Porting to Grid services and GT3 Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Plan of part III: NTCP • NeesGRID project overview • NTCP requirements & high level design • Choosing Grid services for NTCP subsystem • Choosing Grid services for Matlab subsystem • Not choosing Grid services for ShoreWestern subsystem • Deployment • On-going work Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
NeesGRID • Make collective use of geographically distributed experiment facilities, heterogeneous hardware • Users dislocated from facilities • Applying Grid to earthquake science • 3 year project involving several US institutes • Distributed simulation of a building in an earthquake • Scale: models costs millions of $ and several months to build. Some experiments are not repeatable (model used once) Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
The MOST experiment UIUC Experimental Model U. Colorado Experimental Model NCSA Computational Model m1 f2 f1 f2 f1 m1 Slide courtesy of Bill Spencer, UIUC Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
MOST requirements • Distributed simulation of a building in an earthquake • 3 experimental sites • Hybrid experiment: 2 physical and 1 computational simulations • Results at one time-step used to calculate inputs at the next time-step • Pseudodynamics: order of 10 ms per time-step • Successfully run on 30th July 2003 Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
NTCP: NEESGrid Teleoperation Control Protocol • Vital component of NeesGRID and MOST • Telecontrol system, used to coordinate the experiment with commands • Output data collected with other NEESGrid systems like NSDS Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
NTCP system architecture Coordinator (NTCP client) NTCP subsystem NTCP NTCP NTCP NTCP server NTCP server NTCP server Local protocol Local protocol Local protocol local subsystems Backend ShoreWestern Backend Matlab sim. Backend Matlab + XPC UIUC NCSA U Colorado Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
NTCP protocol • Coordinator follows the script with recorded earthquake data • Coordinator orders servers to simulate one time-step at a time (pseudodynamics) • Servers can refuse if parameters out of range • Core commands • Propose() negotiates an action • Execute() starts an action • Cancel() issued when negotiation failed • Other: get/setParameter, open/closeSession… Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Sequence diagram (simplified) NTCP Server A NTCP Server B coordinator openSession openSession propose (accepted) execute 1 time step (started) execution results propose Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
NTCP subsystem: choosing Grid services and GT3 • Long term goals • System characteristics: distributed, heterogeneous resources across administrative domains • Interoperability, manageability, scalability • Risk: GT3 released early July, MOST scheduled end of July Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
NTCP server simplified design Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
NTCP server as a Grid service • Front end: Permanent Grid service • Operates on real hardware; only admin can restart • methods • Open/closeSession, propose, execute, cancel, get/setParameter, getControlPoint • Service data: Transaction state • Notification: Execution results • Back end: LocalControlPlugin interface for implementing adapters to the local non-OGSI technologies Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Sequence diagram revisited in Grid service terms NTCP Grid service Coordinator (GS client) Propose transaction Transaction Service Data create (accepted) Subscribe for transaction status 1 time step Execute transaction execution (started) update Transaction results notification results Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Matlab subsystem: plugin and backend Coordinator (NTCP client) NTCP NTCP NTCP NTCP server NTCP server NTCP server Local protocol Local protocol Local protocol Backend ShoreWestern Backend Matlab sim. Backend Matlab + XPC Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Matlab subsystem: characteristics • Command flow: • Coordinator • NTCP server frontend • NTCP server Matlab control plugin (Mplugin) • Backend machine running Matlab simulation • Matlab single threaded, not event driven • Information pull model enforced • Matlab has Java interface, fully compliant with Java 1.3. Can use Java class library, third party jar files, multiple threads Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Matlab subsystem: choosing Grid services • Choose network communication technology between Mplugin and backend • TCP/IP, RMI, Corba, Web services… • Although no Grid characteristics… why not Grid services? • Pulling scenario -> “server” on the same machine as the NTCP server • OGSA container is already there • Ockham razor: one technology instead of many Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Typical Service-Oriented Arch compared to NTCP + Matlab Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Client, server and backendin Grid service model • Methods: • hasCommand, pullCommand, pushResult • No service data, notification • Could as well be a Web service • Reversed information flow, as compared to typical Service-Oriented • Both NTCP and commandBuffer services are persistent; must match at start-up Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
Testing the NTCP and Matlab subsystem • Junit and TestServer from GT3 • 3 test suites, 4 test units • Some units implement same interfaces • 3 simulators, some deployed inside gar Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
ShoreWestern subsystem Coordinator (NTCP client) NTCP NTCP NTCP NTCP server NTCP server NTCP server Local protocol Local protocol Local protocol Backend ShoreWestern Backend Matlab sim. Backend Matlab + XPC Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com
ShoreWestern subsystem:plugin and backend • ShoreWestern hardware driver to operate physical experiment facility • Push communication OK • ShoreWestern already speaks a proprietary protocol based on TCP/IP, equivalent in functionality to NTCP Porting to GT3 & designing OGSI - Perfringo Grid Solutions http://perfringo.com