Presentation is loading. Please wait.

Presentation is loading. Please wait.

EGEE is a project funded by the European Union under contract IST-2003-508833 Web Services Survey Giuseppe Avellino jra1 IT-CZ Meeting, 8-9/06/2004 www.eu-egee.org.

Similar presentations


Presentation on theme: "EGEE is a project funded by the European Union under contract IST-2003-508833 Web Services Survey Giuseppe Avellino jra1 IT-CZ Meeting, 8-9/06/2004 www.eu-egee.org."— Presentation transcript:

1 EGEE is a project funded by the European Union under contract IST-2003-508833 Web Services Survey Giuseppe Avellino jra1 IT-CZ Meeting, 8-9/06/2004 www.eu-egee.org

2 jra1 IT-CZ Meeting, 8-9/06/2004 - 2 Contents Web Services General Knowledge Application Servers and tools: Java  J2EE  Axis Java  JBoss C++  Axis C++  gSOAP Python  SOAPpy Still under evaluation: WSIF XDoclet

3 jra1 IT-CZ Meeting, 8-9/06/2004 - 3 General Knowledge Distributed objects/services general common access model: Client Skeleton Stub Distributed Object (service) Network (Internet, LAN,...) Remote Interface

4 jra1 IT-CZ Meeting, 8-9/06/2004 - 4 General Knowledge When use a Web service architecture? In many situations, other technologies may be a more appropriate solution (e.g. CORBA, RMI-IIOP, …) Some guide lines helping in choosing or not a Web Server architecture solution are:  Interoperability requirements  Accessibility requirements  Integration requirements (different kinds of Information Systems)  Types of clients one wants to support (e.g. Wireless, PDAs,... Web services are platform independent)

5 jra1 IT-CZ Meeting, 8-9/06/2004 - 5 General Knowledge What is the better way to implement a Web service? Some guide lines are:  Provider support  WSDL generation  Code generation  Deployment characteristics  Parser performance  Clustered Applications  Asynchronous services  Security  Reliability  Scalability  Performance

6 jra1 IT-CZ Meeting, 8-9/06/2004 - 6 General Knowledge The World Wide Web Consortium (W3C) organization defines a Web Service as: “A Web Service is a software system identified by a URI whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web Service in a manner prescribed by its definition, using XML-based messages conveyed by Internet protocols”

7 jra1 IT-CZ Meeting, 8-9/06/2004 - 7 General Knowledge W3C definition means: Clients access Web services using an URL and an XML-based protocol such as SOAP, sent by an Internet protocol such as HTTP (SMTP, FTP,...)  SOAP (communication protocol - used to define data type mapping and a common messaging format to write messages with XML language)  HTTP (transfer protocol) Clients access Web services through services interfaces defined using XML based languages such as WSDL  XML (used as a common language)  WSDL (XML-based language to describe Web service details and how to access the service)

8 jra1 IT-CZ Meeting, 8-9/06/2004 - 8 General Knowledge Web services are services offered through the Web Web services technologies allow enterprises to expose applications as services accessible via Internet Web services provide a way to offer application-to- application comunication running on different platforms (interoperability) A Web services can be used to: Provide a functionality over the Web Communicate with other applications over a nework

9 jra1 IT-CZ Meeting, 8-9/06/2004 - 9 General Knowledge The most important characteristic of Web services is they can be offered (exposed) regardless:  Services implementation  Programming language  Computer platform  Transport mechanism

10 jra1 IT-CZ Meeting, 8-9/06/2004 - 10 General Knowledge A Service Oriented Architecture is composed of:  A Service implementing the business logic exposed through well-defined interfaces  A Registry where services are published providing the specific interface (e.g. UDDI, ebXML)  Client who access the registry to find services to use (interface description)

11 jra1 IT-CZ Meeting, 8-9/06/2004 - 11 General Knowledge Web Service Client Web Service UDDI Registry WSDL Request Service Info (WSDL) Download WSDL Send SOAP messages with XML document

12 jra1 IT-CZ Meeting, 8-9/06/2004 - 12 General Knowledge Web Service Impl. WSDL UDDI Generate WSDL from code Publish a service (description) WSDL Retrieve a service (description) Generate Stub SOAP Invoke a Web Service Generate Skeleton Client Iml. Web Service Skeleton Client Stub (Proxy)

13 jra1 IT-CZ Meeting, 8-9/06/2004 - 13 General Knowledge Considering a Web service providing a single method. To use this service:  The client invokes this method using an XML message. This message contains the method name and the arguments.  The message is sent to the service provider using SOAP protocol  The result of the method is inserted inside an XML message and sent to the client if you use a browser:  The client creates an HTML page  The HTML page is sent to the client browser

14 jra1 IT-CZ Meeting, 8-9/06/2004 - 14 General Knowledge Web services Pros: Interoperability They are more firewall friendly They are capable to easily switching configuration They could be realized to be used by a Browser (accessibility) They doesn’t require changes to the Web infrastructure Web services Cons: Security (Denial of Service - DoS) They require more processing time then traditional computing environments Web Services are based on XML, this affects performance and introduce a very verbose format (big payload) Reliability is not so easy to achieve because HTTP is unreliable Important issues: scalability, load balancing, failover (clustered applications)

15 jra1 IT-CZ Meeting, 8-9/06/2004 - 15 General Knowledge Web services are a new way to provide services. The technology is evolving; it could be not so simple to choose among different available possibilities Web services are tightly connected to different technologies, standards and specification in order to provide interoperability, O.S. and programming languages independence New standards are currently being defined Some opened issues are:  Interoperability  Coordination of multiple services to implement the Business Logic  Security (even if OASIS has approved WS-Secure as a standard, an integrated security model is far to be defined)

16 jra1 IT-CZ Meeting, 8-9/06/2004 - 16 J2EE J2EE Platform Architecture An Application Server is J2EE based if it supports server side components such as EJBs, servlets and JSPs Basic aims: Components portability Interoperability among J2EE based platforms Resource APIs (JAX-RPC, SAAJ,...) Java Runtime Environment EJB Container (business components) Servlet/JSP Container (Web components)

17 jra1 IT-CZ Meeting, 8-9/06/2004 - 17 J2EE Web service tipical architecture: Servlet JSP Client Web Service Web Service Web Browser HTTP Request HTTP Response (HTML) SOAP Request SOAP Response (XML)

18 jra1 IT-CZ Meeting, 8-9/06/2004 - 18 J2EE J2EE Application Server (JWSDP) is the SUN standard J2EE based application server. J2EE provides support to develop server-side and client-side Web services and distributed, multi-tier applications Available API’s: JAXP – Java API for XML Processing. Lightweight APIs for parsing or processing XML document. JAXP allows the use of other vendors parser. It uses SAX and DOM models JAX-RPC – Java API for XML-based RPC, used to support RPC for Java. Remote calls can be done with three different modes:  Synchronous Request-Response mode  One-Way RPC mode  Non-Blocking RPC Invocation mode (Asynchronous mode)

19 jra1 IT-CZ Meeting, 8-9/06/2004 - 19 J2EE JAXR – Java API for XML Registries SAAJ – SOAP with Attachments API for Java. It allows to produce and consume SOAP messages with attachment (XML document or fragment, MIME type). Two available modes:  Synchronous Request-Response messaging  One-Way Asynchronous messaging J2EE offers three different ways to implement a client: Static Stub – a Java class statically connected to the endpoint interface Dynamic Proxy – dynamic endpoint interface support at runtime Dynamic Invocation Interface (DII) – defines a dynamic Call object. It has to be configured before use, but this way, changes on the server side don’t affect the client side

20 jra1 IT-CZ Meeting, 8-9/06/2004 - 20 J2EE SOAP Support for SOAP1.1/1.2 Support for the SOAP with Attachments specification (SAAJ) Providers for RPC and message based SOAP services Transport HTTP servlet-based transport JMS based transport Web Service Description Language (WSDL) Support for the WSDL Automatic WSDL generation wscompile tool for building WSDL file and mapping file (Java – WSDL)

21 jra1 IT-CZ Meeting, 8-9/06/2004 - 21 J2EE Types and Java Beans Support for all basic types and complex types EJB container is provided Security and Persistence Security model based on the Java Servlet specification Support for HTTPS (SSL/TLS) via Tomcat Deployment Custom deployment via an XML deployment descriptor file wscompile tool for building client stub wsdeploy tool for building server tie deploytool tool to deploy Web services Self-contained Web application (WAR - Web Application Archive)

22 jra1 IT-CZ Meeting, 8-9/06/2004 - 22 J2EE J2EE includes:  A stand-alone server  A tool for deploying  Java BluePrints guidelines J2EE addresses the WS-I Basic Profile specification J2EE most important features are: Portability. J2EE adds portability to Web services Reusability. J2EE allows component base development (reusability of components) Scalability. J2EE containers provide a mechanism that supports simplified scaling of distributed applications

23 jra1 IT-CZ Meeting, 8-9/06/2004 - 23 J2EE J2EE Pros:  Complete set of APIs provided  Deploy tool provided  Provider and Java Community support J2EE Cons:  Security issues

24 jra1 IT-CZ Meeting, 8-9/06/2004 - 24 Axis Java Axis (Apache eXtensible Interaction System) Java is an implementation of the SOAP (SOAP engine) used to implement Java Web services. It is a framework for constructing clients and servers processing SOAP Axis includes:  A stand-alone server (with HTTP support; alternative to servlet-based servers such as Tomcat)  A server capable to use different servlet engines such as Tomcat  A tool that generates Java classes from WSDL  A tool for monitoring TCP/IP packets (the tool monitors SOAP request/response messages) Axis addresses the WS-I Basic Profile and JAX-RPC specifications

25 jra1 IT-CZ Meeting, 8-9/06/2004 - 25 Axis Java Axis most important features are:  Performance. Axis uses SAX parsing (event based, faster than DOM)  Flexibility. Axis architecture is extendible  Stability. Axis defines a set of published interfaces which change slowly  Component-oriented deployment. You can implement common patterns of processing for your applications  Transport framework. Axis has a simple abstraction for designing transports (i.e. SOAP senders and listeners over various transport protocols). The core of the engine is completely transport- independent

26 jra1 IT-CZ Meeting, 8-9/06/2004 - 26 Axis Java SOAP Support for SOAP1.1/1.2 Support for the SOAP with Attachments specification (SAAJ) Providers for RPC and message based SOAP services Transport HTTP servlet-based transport JMS based transport SMTP, FTP based transport Web Service Description Language (WSDL) Support for the WSDL Automatic WSDL generation from deployed services WSDL2Java tool for building Java proxies and skeletons from WSDL documents Java2WSDL tool for building WSDL from Java classes

27 jra1 IT-CZ Meeting, 8-9/06/2004 - 27 Axis Java Types and Java Beans Support for all basic types Automatic conversions between Java Collections and SOAP Arrays Automatic Serialization/Deserialization of Java Beans An EJB provider for accessing EJBs as Web Services (no code) Security and Persistence Preliminary security extensions Support for session-oriented services, via HTTP cookies or transport- independent SOAP headers Deployment Support for JWS deployment of SOAP services (instant deployment) Custom deployment via a deployment descriptor file (WSDD) Self-contained Web application

28 jra1 IT-CZ Meeting, 8-9/06/2004 - 28 Axis Java Axis Pros:  Architecture design  Large number of unit tests  Support of JAX-RPC and SAAJ Axis Cons:  Asynchronous request/response message processing not yet supported (and maybe not in the early future)  Security issues

29 jra1 IT-CZ Meeting, 8-9/06/2004 - 29 JBoss JBoss was created as an Enterprise Java Beans container. Now is a complete J2EE Application Server JBoss architecture consists of a “microkernel” and a set of components giving a very flexible way to configure JBoss supports clustered Stateless Session Beans, Stateful Session Beans and Entity Beans JBoss partially supports JMS and Message Driven Beans JBoss includes:  Tools  Developing libraries  Tomcat container

30 jra1 IT-CZ Meeting, 8-9/06/2004 - 30 JBoss JBoss most important features are:  Performance. JBoss offers improved performance respect other J2EE application servers  Memory Usage. JBoss microkernel has a low memory overhead  Modular Architecture. JBoss is composed by a microkernel and a set of pluggable component services (SOA – Services Oriented Architecture)  Security. JBoss grants full security implementation and JAAS (Java Authentication and Authorization Service) integration  Scalability. JBoss has a good level of scalability and offers full clustering of any Java object

31 jra1 IT-CZ Meeting, 8-9/06/2004 - 31 Axis C++ Axis C++ is a SOAP implementation done in C++ Axis C++ has adopted the general architecture of Axis Java, but it introduces several core architectural features realized to increase performance Axis C++ has the same features of Axis Java: speed, flexibility, and so forth Axis C++ includes:  A stand-alone server (with HTTP support)  Web server modules for Apache HTTP server  A tool that generates basic wrapper classes

32 jra1 IT-CZ Meeting, 8-9/06/2004 - 32 Axis C++ SOAP Support for SOAP1.1/1.2 SOAP engine with both client and server support Web Service Description Language (WSDL) Support for the WSDL WSDL2WS tool for building C/C++ components from WSDL WSDL2WS tool for generating wrappers that act as RPC Providers Types Support for all basic types, complex types and arrays Serialization/Deserialization Deployment Custom deployment via a deployment descriptor file (WSDD)

33 jra1 IT-CZ Meeting, 8-9/06/2004 - 33 gSOAP gSOAP provides a set of tools to develop Web services application in C/C++ gSOAP provides a C/C++ SOAP API that hides SOAP details gSOAP compiler, to generate stub and skeleton, automatically maps native and user C/C++ data types to XML data types gSOAP includes:  A stand-alone server (with HTTP/1.1, HTTPS support)  Apache module for Apache HTTP server  CGI and FastCGI interfaces gSOAP addresses the WS-I Basic Profile specification

34 jra1 IT-CZ Meeting, 8-9/06/2004 - 34 gSOAP gSOAP most important features are:  Performance. gSOAP uses streaming XML parsing techniques (gSOAP seems to be the fastest SOAP compliant C/C++ implementation available)  Memory Usage. gSOAP has a very low memory overhead. Clients and servers can be created with a low total memory footprint gSOAP memory management uses garbage collection  Efficiency. gSOAP has a very low SOAP RPC latencies (important for real-time applications)  Scalability. gSOAP has an high level of scalability

35 jra1 IT-CZ Meeting, 8-9/06/2004 - 35 gSOAP SOAP Support for SOAP1.1/1.2 Providers for RPC and message based SOAP services SOAP Fault and Header processing Transport HTTP transport (HTTP/1.1) Web Service Description Language (WSDL) Support for the WSDL Automatic WSDL generation wsdl2h tool to convert WSDL into header file specifications of Web services soapcpp2 tool to generate the stub and skeleton source code

36 jra1 IT-CZ Meeting, 8-9/06/2004 - 36 gSOAP Types Support for all basic and complex types Serialization/Deserialization Security and Persistence HTTP/1.1 keep-alive support Support for session-oriented services, via HTTP cookies or transport- independent SOAP headers Support for HTTPS (SSL/TLS) Globus GSI plug-in available Deployment No need to rewrite C/C++ applications for Web service deployment (sometimes, if one need serialization)

37 jra1 IT-CZ Meeting, 8-9/06/2004 - 37 gSOAP gSOAP Pros:  Persistence  Globus GSI plug-in available gSOAP Cons:  Generated code  Provider support

38 jra1 IT-CZ Meeting, 8-9/06/2004 - 38 SOAPpy SOAP Support for SOAP 1.1 Web Service Description Language (WSDL) Support for WSDL WSDL.Proxy API:  Parse WSDL document  Discover SOAP-based services published APIs  Translate them into Python applications Types Support for all basic types Does not support complex types Deployment No deploy tool provided ( py2wsdl )

39 jra1 IT-CZ Meeting, 8-9/06/2004 - 39 SOAPpy SOAPpy Pros:  Easy & Quick-Writing (4-5 code lines for simple service)  No Compilation Required SOAPpy Cons:  Dynamic types: WSDL hand-writing add (a, b): return (a + b) can be anything  Still new product, not yet standardized  Provider support

40 jra1 IT-CZ Meeting, 8-9/06/2004 - 40 WSIF Apache WSIF (Web Services Invocation Framework) is a WSDL based API (Java) for invoking Web services WSIF enables developers to interact with Web services through WSDL instead working with SOAP APIs directly WSIF is very flexible: it has a pluggable architecture with "providers" to handle invocations (dynamic) according to a specific protocol. There is a separation between APIs and protocol to be used WSIF includes providers for SOAP (using Axis), local java classes, EJBs, JMS services and applications WSIF allows clients to be unaware of changes to services such as service migration, change of protocols, new providers and so forth (no needs to recompile client code) WSIF allows stubless or completely dynamic invocation of a Web service, based upon examination of the meta-data about the service at runtime

41 jra1 IT-CZ Meeting, 8-9/06/2004 - 41 XDoclet XDoclet is a code generation tool based on Attribute-Oriented Programming. It helps to code J2EE applications XDoclet is composed by a core and a set of modules XDoclet enables developers to add meta data (attributes) to java sources, inserting specific JavaDoc tags XDoclet generates XML descriptor file and source code referring to a defined template that use information provided by the code and the tags Currently XDoclet can only be used in conjunction with Ant XDoclet most important features are:  Deployment configuration information are shown inside the code  Development time reduced  Redundant work reduced


Download ppt "EGEE is a project funded by the European Union under contract IST-2003-508833 Web Services Survey Giuseppe Avellino jra1 IT-CZ Meeting, 8-9/06/2004 www.eu-egee.org."

Similar presentations


Ads by Google