480 likes | 633 Views
Distributed Computing Technologies – Selecting an Appropriate Approach . Philip Maechling Web Services Workshop UNAVCO/IRIS Joint Workshop 8 June 2005. Outline. Discuss different approaches to distributed computing with examples from real life.
E N D
Distributed Computing Technologies – Selecting an Appropriate Approach Philip Maechling Web Services Workshop UNAVCO/IRIS Joint Workshop 8 June 2005
Outline • Discuss different approaches to distributed computing with examples from real life. • Based largely on: Seismic Hazard Analysis Using Distributed Computing in the SCEC Community Modeling Environment : March/April 2005 Electronic Seismologist Column UNAVCO/IRIS Web Services Workshop
A New Computing Model for Scientific Computing • Can we utilize a distributed, component-based computing model to do science? • What technologies are available? • What are the advantages/disadvantages for each? UNAVCO/IRIS Web Services Workshop
A New Computing Model for Scientific Computing • Premise is that there is no “one-best” approach that fits all Projects or needs (unfortunately). • Encourage Discussion and groups experiences with these technologies UNAVCO/IRIS Web Services Workshop
A New Computing Model for Scientific Computing Program 1 Program 2 Program 3 Program 4 Program 5 USC P1 P2 P3 P4 P5 IRIS SDSC SCEC JPL UNAVCO/IRIS Web Services Workshop
A New Computing Model for Scientific Computing UNAVCO/IRIS Web Services Workshop
Why is this a hard problem ? • Multiple programming languages • Multiple hardware platforms • Multiple operating systems • Multiple data types and data formats • Reliability/Stability of components • Discovering what is available • Communications bandwidth and reliability • Practical issues of support, development, tools, infrastructure, funding etc. UNAVCO/IRIS Web Services Workshop
Characteristics of Technologies that impact selection • Where does program run (Client Side or Server Side) • Input and output and output data types • How a components is called (API) • Support for Objects • Statefulness of components • Blocking versus non-blocking calls • Communication Protocol • Speed • Robustness • Scalability Number of Clients by a Server • Server Security • Client and Server Program languages • Peer to Peer between computers or Client Server Model UNAVCO/IRIS Web Services Workshop
Desirable Characteristics of a Solution • Distributed • Secure • Multi-organizational • Multi-language • Loose coupling • High cohesion • Minimal modifications to existing codes • Minimal costs • Minimal training time • Standards-based UNAVCO/IRIS Web Services Workshop
Component Characteristic • Stateful • A stateful component maintains information about previous calls. • Object Oriented • An object oriented component allows you to create an stateful instance of the component. It provides user defined interfaces to the component. UNAVCO/IRIS Web Services Workshop
Technologies Not Considered Existing Distributed Computing technologies not consider here due to limited inroads into geophysics community: • Remote Procedure Calls (RPC) • DCOM • Enterprise Java Beans • .Net • Common Component Architecture (CCA) UNAVCO/IRIS Web Services Workshop
Client Side Techniques Example Client Side Technologies • Java Applets • JavaScript • Macromedia Flash • Active X UNAVCO/IRIS Web Services Workshop
Client Side Techniques • Java Applet Advantages • Download the program into your browser • Program runs on your computer • Rich User Interfaces • Reasonably Secure UNAVCO/IRIS Web Services Workshop
Client Side Techniques • Java Applet Disadvantages • Uses CPU on the client • Distribution of code only, not shared computing processing • Required JVM in browser on client • Security limitations on what applet can do (e.g. accessing files on local machine may be restricted) UNAVCO/IRIS Web Services Workshop
Considering Using Java Applets When…. • Want rich interface including graphics • Want users to use their own computer • Want secure run-time on users platform • Want to distribute new versions of code • Want platform independence UNAVCO/IRIS Web Services Workshop
Common Distributed Programs • Web Browsers • Variety of Client side and Server Side execution • Standards-based (W3C) • Great Interoperability for non-dynamic content • Interoperability issues typically on client side technologies (JavaScript, Flash etc) • Where’s the click stream UNAVCO/IRIS Web Services Workshop
Common Gateway Interface (CGI Scripts) UNAVCO/IRIS Web Services Workshop
HTTP based Program calls • Parameters are passed as parameter_name=parameter_value pair during invocation of cgi-bin or servlet Examples: • http://www.SOMEWHERE.org/cgi-bin/ice_cream.plx?flavor=mint • http://66.102.7.104/search?q=cache:AU7xpnWlL0wJ:pyre.third-bit.com/2004-fall/tomcat.ppt+History+of+Servlet+Containers&hl=en UNAVCO/IRIS Web Services Workshop
CGI Disadvantages • May overwhelm server • Security issues • Not stateful • Practical issue relating to web server technologies such as web server capacities and communications timeouts. UNAVCO/IRIS Web Services Workshop
Considering Using CGI When…. • Want minimal installation and operation • Small number of users • Want to use common programming/scripting languages (perl, php) • Dynamic web pages • Display data from database UNAVCO/IRIS Web Services Workshop
Java Servlets • Java-based server side technology • Adds memory and process management (improves scalability) through the user of a “servlet engine” or “servlet container” • Security and performance improvements UNAVCO/IRIS Web Services Workshop
Java Servlet Interface UNAVCO/IRIS Web Services Workshop
Servlet Advantages • Executable stays in memory once it is called • Container provides memory and process management • Added safety and security • Easy to add statefulness • Server side code is Java, so it’s platform independent. UNAVCO/IRIS Web Services Workshop
Servlet Advantages • Executable stays in memory once it is called • Container provides memory and process management • Added safety and security • Easy to add statefulness UNAVCO/IRIS Web Services Workshop
Servlet Disadvantages • Not Object Oriented Interface • Not inherently Stateful • Limitations on input and output types • Practical issues with size of data in and out (e.g. web server time-outs) UNAVCO/IRIS Web Services Workshop
Considering Using Servlets When…. • Want higher performance from server • Want to protect server from being overwhelmed by calls • Want to build Dynamic web pages • Display data from database • Want platform independence on server side code • Want to work in Java including access to all the Java Libraries UNAVCO/IRIS Web Services Workshop
Web Services • Standards-based approach to distributed computing. • Follows Model of Web Browser/Web Server Technology • Establishes Exchange Format (XML), Communication Protocol (SOAP), and Interface Definition (WSDL) UNAVCO/IRIS Web Services Workshop
Web Services Interface UNAVCO/IRIS Web Services Workshop
Web Services XML Request/Response UNAVCO/IRIS Web Services Workshop
Web Services Advantages • Could transform distributed computing like WWW has transformed information sharing • Standards-based • Uses standard ports • Interoperability between languages • Hardware independent UNAVCO/IRIS Web Services Workshop
Web Services Disadvantages • Not Object Oriented Interface • Not Stateful • Limitations on input and output types • Trades performance for interoperability • Many standards • Large data transfers typically done out of band losing interoperability advantages UNAVCO/IRIS Web Services Workshop
Considering Using Web Services When…. • Interoperability is more important performance • Want to interoperate between languages • Want standards based system • Want access to commercial tools and techniques UNAVCO/IRIS Web Services Workshop
Common Object Request Broker Architecture (CORBA) • CORBA is a specification for distributed object technology • Language independent (Supports C, C++, Fortran, Java, others) • Full Object Support • Robust communication Protocol • Stable, mature CORBA implementations are available including open source and real-time versions. UNAVCO/IRIS Web Services Workshop
CORBA Operation UNAVCO/IRIS Web Services Workshop
CORBA Operation UNAVCO/IRIS Web Services Workshop
CORBA Advantages • Object oriented, robust, well supported • Many features such as object discovery UNAVCO/IRIS Web Services Workshop
CORBA Disadvantages • Fairly complex • May have more features than you need UNAVCO/IRIS Web Services Workshop
CORBA Pro/Cons UNAVCO/IRIS Web Services Workshop
Considering Using CORBA When…. • Multi-language support • Very high reliability • Object oriented systems • Dynamic discovery of object and services UNAVCO/IRIS Web Services Workshop
Java Remote Method Invocation (Java RMI) • Java RMI is distributed object technology developed to work with the Java Language • Comprehensive, Object-oriented, platform independent, robust, mature • Distributed without cost by Sun UNAVCO/IRIS Web Services Workshop
Java RMI Architecture UNAVCO/IRIS Web Services Workshop
Java Remote Method Invocation (RMI Interface) import java.rmi.Remote; import java.rmi.RemoteException; public interface EUStats extends Remote { String getMainLanguages(String CountryName) throws RemoteException; int getPopulation(String CountryName) throws RemoteException; String getCapitalName(String CountryName) throws RemoteException; } UNAVCO/IRIS Web Services Workshop
Java RMI Disadvantages • Java RMI only supports Java • Proprietary protocol by single vendor • Requires RMI-lookup • Requires non-standard port UNAVCO/IRIS Web Services Workshop
Java RMI Advantages • Full object support • Cross platform capabilities • Robust communications • Large objects • Security for client and servers • Distribution/updates of codes UNAVCO/IRIS Web Services Workshop
RMI Pros/Cons UNAVCO/IRIS Web Services Workshop
Conclusions • Distributed computing allows sharing and re-use • Introduces uncertainties • Explore existing solutions before inventing your own. UNAVCO/IRIS Web Services Workshop