Containers and Web Services Grid Middleware 7 David Groep, lecture series 2005-2006.

Slides:



Advertisements
Similar presentations
1 Java WS Core for Developers Rachana Ananthakrishnan Jarek Gawor.
Advertisements

Oct, 26 th, 2010 OGF 30, NSI-WG: Network Service Interface working group Web Services Overview Web Services for NSI protocol implementation
Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
General introduction to Web services and an implementation example
Service Orientation Considerations PoC R1 David Groep, Scaling and Validation Programme.
This product includes material developed by the Globus Project ( Introduction to Grid Services and GT3.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Scale Up Access to your 4GL Application using Web Services
6/2/2015Page 1 SOA Development and Deployment B. Ramamurthy.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
1 An Introduction to Web Services. 2 Outline What is a Web service Background Standards –XML & XML Namespaces, XML Schema,WSDL, SOAP Tools & APIs –DOM/SAX,JAX-RPC/JAX-M.
VL-e PoC Introduction Maurice Bouwhuis VL-e work shop, April 7 th, 2006.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Windows Communication Foundation and Web Services.
CSC-8530: Distributed Systems Christopher Salembier 28-Oct-2009.
Apache Axis: A Set of Java Tools for SOAP Web Services.
Web Service Implementation Maitreya, Kishore, Jeff.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Web Services (tying it all together) and Introduction to Grid Services Concepts These slides are adapted from course material developed by Barry Wilkinson,
SSC2: Web Services. Web Services Web Services offer interoperability using the web Web Services provide information on the operations they can perform.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
1 Dr. Markus Hillenbrand, ICSY Lab, University of Kaiserslautern, Germany A Generic Database Web Service for the Venice Service Grid Michael Koch, Markus.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
Module 14: WCF Send Adapters. Overview Lesson 1: Introduction to WCF Send Adapters Lesson 2: Consuming a Web Service Lesson 3: Consuming Services from.
Presentation: SOAP in a distributed object framework, Application Servers & AXIS SOAP.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
GT Components. Globus Toolkit A “toolkit” of services and packages for creating the basic grid computing infrastructure Higher level tools added to this.
Lecture 15 Introduction to Web Services Web Service Applications.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
INT-5: Integrate over the Web with OpenEdge® Web Services
© Drexel University Software Engineering Research Group (SERG) 1 An Introduction to Web Services.
Grid Services I - Concepts
Web Services Experiences Machiel Jansen Vrije Universiteit (VU) Amsterdam.
Interactive Workflows Branislav Šimo, Ondrej Habala, Ladislav Hluchý Institute of Informatics, Slovak Academy of Sciences.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Globus and PlanetLab Resource Management Solutions Compared M. Ripeanu, M. Bowman, J. Chase, I. Foster, M. Milenkovic Presented by Dionysis Logothetis.
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
.NET Mobile Application Development XML Web Services.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
Web Service Definition Language. Web Services: WSDL2 Web Service Definition Language ( WSDL ) What is a web service? [ F. Leymann 2003 ] A piece of code.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
PROGRESS: GEW'2003 Using Resources of Multiple Grids with the Grid Service Provider Michał Kosiedowski.
EGEE is a project funded by the European Union under contract IST Introduction to Web Services 3 – 4 June
WP3 Implementing R-GMA grid services in GT3 Abdeslem Djaoui & WP3 Grid Services Task Force 7 th EU Datagrid meeting 26/09/2003
EGEE is a project funded by the European Union under contract IST WSDL Which WSDL Style ?
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
DataGrid is a project funded by the European Commission EDG Conference, Heidelberg, Sep 26 – Oct under contract IST OGSI and GT3 Initial.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
SOAP, Web Service, WSDL Week 14 Web site:
EGEE is a project funded by the European Union under contract IST WSDL Which WSDL Style ? 17 th October
The Java API for XML-Based Web Services. A Web Service example in Java SOAP-awareServlet (e.g. Apache Axis2) SOAP-awareServlet Any class processing the.
A service Oriented Architecture & Web Service Technology.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) gLite Grid Introduction Salma Saber Electronic.
An Introduction to Web Services
WEB SERVICES.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Writing simple Java Web Services using Eclipse
Web Services-JAX-RPC JAX-RPC enables a Web Service endpoint to be developed using either a Java Servlet or Enterprise JavaBeans (EJB) component model.
Outline SOAP and Web Services in relation to Distributed Objects
Unit – 5 JAVA Web Services
Outline SOAP and Web Services in relation to Distributed Objects
Inventory of Distributed Computing Concepts and Web services
Presentation transcript:

Containers and Web Services Grid Middleware 7 David Groep, lecture series

Grid Middleware VII2 Outline Why web services? Web services revisited  SOAP, WS-I basic profile, encoding styles  Envelope versus body Containers  why containers  pluggable frameworks (e.g. the GT4 security stuff)  some leaky abstractions: file ACLs in the (Globus) RLS Implementing grid middleware  where to put the abstractions (crunching paper stuff)  is stuff in the envelope really standard?  syntax vs. semantics of the interface Performance: Java, C, Python,.NET

Grid Middleware VII3 Why web services came about in grid The definition of WSRF means that the Grid and Web services communities can move forward on a common base.

Grid Middleware VII4 Web Services WS are just one implementation of a SOA  we could have done ASN.1 over BEEP over avian carriers (which might even have been faster )  but we don’t, to help interoperation Web services are basically RPC using XML  largely self-describing

Grid Middleware VII5 Web Services hints Web Services are just a syntax  Define proper sementics and document that to make your service re- useable  Match up the semantics with related services  Make sure your services are compliant  with relevant standards (like WS-I Basic Profile)  with the chosen hosting system (GT4)

WSDL Styles thanks to the EGEE WS tutorial…

Grid Middleware VII7 Types of WSDL SOAP binding RPC/encoded RPC/literal Document/encoded Document/literal

Grid Middleware VII8 Java method example public void myMethod (int x);

Grid Middleware VII9 RPC/Encoded WSDL Binding is RPC/encoded

Grid Middleware VII10 SOAP message value

Grid Middleware VII11 Advantages/disadvantages Advantages  Simple WSDL  Operation name appears in the message Disadvantages  Type encoding information overhead  SOAP message cannot be validated except against WSDL

Grid Middleware VII12 RPC/Literal WSDL Binding is RPC/literal

Grid Middleware VII13 SOAP message value

Grid Middleware VII14 Advantages/Disadvantages Advantages  WSDL is simple  Operation name appears in the message  Type encoding information is minimal Disadvantages  Nearly all the definitions in WSDL so not independently validatable

Grid Middleware VII15 Document/encoded Not implemented !

Grid Middleware VII16 Document/literal WSDL

Grid Middleware VII17 SOAP message value

Grid Middleware VII18 Advantages/Disadvantages Advantages  No type encoding information  The body of the soap message is all defined in a schema and so can be validated independently Disadvantages  WSDL is more complicated  Operation name is lost

Grid Middleware VII19 Document/wrapped WSDL WSDL schema has a wrapper around the parameters

Grid Middleware VII20 SOAP message value

Grid Middleware VII21 Characteristics Input message has a single part Part is an element Element has the same name as the operation Element’s complex type has no attributes

Grid Middleware VII22 Advantages/disadvantages Advantages  No type encoding information  Soap body is defined in a schema – validation  Method name in the soap message Disadvantages  WSDL is complicated Generally this is the best style to use.

Grid Middleware VII23 When not to use document/wrapped Document literal wrapped style does not allow for overloading Cannot have two elements with the same name in XML (element has to have same name as operation) In this case you may wish to use RPC/literal so that the operation name is available.

Grid Middleware VII24 SOA Editor Cape Clear SOA Editor, Cape Clear 2003 WSDL © EGEE Consortium and partners, see

Deploying web services Containers and invocation

Grid Middleware VII26 Container A framework to accept, interpret, (de-)marshall the I/O for your application or service

Grid Middleware VII27 Container Various vendors  Oracle Application Server  SUN Application Server  IBM WebSphere  Apache Catalina/Tomcat  Apache Axis .NET although the WS on the outside may be the same, tools and interface on the business end vary

Grid Middleware VII28 Containers Many containers, but not all the same Vary in what they support, e.g.,  Platform: JVM,.NET, Unix  Language (Java, C, Python)  WSDL bindings (rpc or document/literal)  Security mechanisms (none or GSI) VL-e supplied container GT4 (Axis 2.0-RC2++)  Modified to do WS-RF, -Addressing, -Notification  With GSI Security framework  Almost like standard Axis 2

Grid Middleware VII29 Data structures All data structures in the language (Java, C, &c) need to be serialized Easy when you stick to: Global types (int, double, String, array etc.) Java beans (set and get methods) Otherwise need write custom serializers  commands like WSDL2Java generate (amonst other things) stubs to fill with the serialization code slide source: Machiel Jansen, Vrije Universiteit Amsterdam: VL-e web services induction 2006

Grid Middleware VII30 Wrapping existing application Define input and output of the application  write the appropriate WSDL Generate the Java stubs Execute application from Java Redirect the output Deploy as webservice slide source: Machiel Jansen, Vrije Universiteit Amsterdam: VL-e web services induction 2006

Grid Middleware VII31 Wrapping existing application public int run(String cmd, Writer out) throws IOException { RunTime r = Runtime.getRuntime(); Process p = r.exec(cmd); FileIO.copyFile(new InputStreamReader(p.getInputStream( )), out, true); try { p.waitFor( ); // wait for process to complete } catch (InterruptedException e) { return -1; } return p.exitValue( ); } slide source: Machiel Jansen, Vrije Universiteit Amsterdam: VL-e web services induction 2006

Grid Middleware VII32 WS Clients – 3 types Stub based (easy: use WSDL2Java ) Service endpoint is static Dynamic proxy Service endpoint dynamically at runtime Dynamic Invocation Interface (DII) Discover services at runtime then invoke methods slide source: Machiel Jansen, Vrije Universiteit Amsterdam: VL-e web services induction 2006

Grid Middleware VII33 Clients - DII Axis user guide uses Call object (DII) in examples. WSRF and GT4 examples uses stubs. slide source: Machiel Jansen, Vrije Universiteit Amsterdam: VL-e web services induction 2006

Grid Middleware VII34 WSRF and GT4 GT4 uses the WSCore library. Notes: GT4 WSRF is a little different from Apache WSRF GT4 uses GAR files and JNDI deployment. Eclipse has a GT4 plugin… slide source: Machiel Jansen, Vrije Universiteit Amsterdam: VL-e web services induction 2006

Grid Middleware VII35 Moving into the container GT4 puts most of the grid elements in the container  support for resource properties  support for the AuthZ framework  information system/MDS4  … makes application service development easier  if the service is independent of those features  otherwise, lots of callouts are needed as in the RLS security interface from lecture #6

Grid Middleware VII36 Container capabilities Axis 1.x, x<2  support RPC/encoded  deployment of services requires restart Axis 1.3  support Document/literal  still no hot deployment GT4  Like Axis 1.3, but with grid services built-in, WS-RF support Tomcat5, Axis2  hot deployment of services  WS-RF, WS-Notification, WS-Addressing in the pipeline somewhere Sun & Oracle Application Server  Hot deployment supported

Grid Middleware VII37 Implementation Remember that web services are stateless  Model state via Resources  Don’t keep running after the service invocation is complete  Use database/memory based storage, not process-based state retention  Much more friendly on the CPU  Resilient to machine/VM restarts The ultimate horror scenario: R-GMA producer & consumer threads, see Concurrency P&E paper on the web

Using containers

Grid Middleware VII39 Container deployment issues Container needs inbound connectivity to get to the services most sites & compute clusters provide only outbound connectivity how to get to the service? proxy box inside the network perimeter  needs specific site support  opens a security hole in the perimeter a better protocol  unlikely that beep will ever replace http … tunnel  layer on top of protocols like, e.g., jabber, and push messages through that with a proxy box overlay network  build a ‘quasi-VPN’ for your grid, e.g. using the GCB

Grid Middleware VII40 Typical Facility topology

Grid Middleware VII41 Service Deployment Example Farm of GT4 containers provided on the edge of the site  Based on the concept of “VO Boxes”  For now: login to these boxes via gsissh  Not for compute-intensive work You cannot run a container continuously on worker nodes  No inbound IP connectivity  Resource management and utilization And you should not want to, because  All services in a container content for CPU and (disk) bandwidth  JVM does not insulate services from each other

Grid Middleware VII42 Other constraints Worker nodes are allocated in a transient way  Jobs run in a one-off scratch directory  No shared file system for $HOME (and if it happens to be there don’t use it!)  Jobs will be queued  Short jobs get to run faster  Small jobs get to run faster  Priority depends on your VO affiliation  You can connect out, but cannot listen  Your job is limited in wall time

Grid Middleware VII43 Central Hosting A hosting environment can offered on a set of edge boxes  Visible from the outside world  Highly monitored systems for security reasons  Can talk to the ‘inside’ Requirements for deployment on the CF  Appropriate AuthN/AuthZ must be used for all services (this is available by default in GT4)  Allow for request tracability (e.g. via log files)  then, these services are allowed to talk to the ‘inside’

Wrapping Making the world into a service

Grid Middleware VII45 Some general caveats Re-use services Use generic services where possible  ‘job submission service’, ‘data location srv’ Don’t over-do it  WS are not suitable for low-latency HPC or bulk file transfer We’re not running a course on WS-RF … Not all services (nor architectures) are mature jet  Be prepared to make compromises …  … as long as it’s in-line with long-term trend

Grid Middleware VII46 Brokered Job Submission Service Submit brokered jobs in JDL through WS-interface to the Matrix Resource Broker WSDL specification For detailed info: ask Bart Heupers, SARA Future version of the basic Grid middleware will have a native WMS WS interface

Grid Middleware VII47 Defining and building Services in WS-* [See Introduction to Web Services Tutorial] 1. Start with the WSDL 2. Then, generate your interfaces E.g. with GT4 tools or JWSDP See appropriate tutorial(s): “Technologies for Building Grids” or “Sotomajor” 3. Fill the stubs with an implementation 4. Deploy your services in a container EGEE NA3 Training Home has plenty of material: