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.

Slides:



Advertisements
Similar presentations
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Advertisements

Overview of Web Services
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
General introduction to Web services and an implementation example
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
This product includes material developed by the Globus Project ( Introduction to Grid Services and GT3.
Presentation 7: Part 1: Web Services Introduced. Outline Definition Overview of Web Services Examples Next Time: SOAP & WSDL.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
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.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Technical Architectures
J2ME Web Services Specification.  With the promise to ease interoperability and allow for large scale software collaboration over the Internet by offering.
CSC-8530: Distributed Systems Christopher Salembier 28-Oct-2009.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Workshop on Cyber Infrastructure in Combustion Science April 19-20, 2006 Subrata Bhattacharjee and Christopher Paolini Mechanical.
Apache Axis: A Set of Java Tools for SOAP Web Services.
JSLEE. What is JSLEE ? is an event oriented application middleware. Its main job is to receive events from external resources and deliver these events.
Java Web Services: A Conceptual Overview 1. Introduction Use Application Program Interfaces (APIs) platform – building embedded applications, desktop.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
1 CS 483 Enterprise and Web Application Programming Week 7 Web Services.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
Chapter 4: Core Web Technologies
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
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.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
Web Services Architecture1 - Deepti Agarwal. Web Services Architecture2 The Definition.. A Web service is a software system identified by a URI, whose.
Presentation: SOAP in a distributed object framework, Application Servers & AXIS SOAP.
COP 4991 Component Based Software Development Lecture #4 Java Web Services Onyeka Ezenwoye.
第十四章 J2EE 入门 Introduction What is J2EE ?
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
J2EE Structure & Definitions Catie Welsh CSE 432
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Lecture 15 Introduction to Web Services Web Service Applications.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development using JSP and Web Services JSP and Web Services 18 th March 2005.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Web Services Presented By : Noam Ben Haim. Agenda Introduction What is a web service Basic Architecture Extended Architecture WS Stacks.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Spring Remoting Simplifying.
Enterprise Computing: Web Services
XML and Web Services (II/2546)
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
Kemal Baykal Rasim Ismayilov
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Web Services An Introduction Copyright © Curt Hill.
1 Distributed System using J2EE. 2 What is J2EE?  J2EE (Java2 Enterprise Edition) offers a suite of software specification to design, develop, assemble.
.NET Mobile Application Development XML Web Services.
INFSO-RI Enabling Grids for E-sciencE Web Services Mike Mineter National e-Science Centre, Edinburgh.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
1 Web services for DIP LDIWG meeting C.H.Sicard 7 Jan 2003.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
WEB SERVICES.
Outline SOAP and Web Services in relation to Distributed Objects
Outline SOAP and Web Services in relation to Distributed Objects
Distributed System Using Java 2 Enterprise Edition (J2EE)
Introduction to Web Services
Distributed System using Web Services
Distributed System using Web Services
Presentation transcript:

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

jra1 IT-CZ Meeting, 8-9/06/ 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

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

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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”

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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

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

jra1 IT-CZ Meeting, 8-9/06/ 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)

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

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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)

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

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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

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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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)

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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)

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

jra1 IT-CZ Meeting, 8-9/06/ 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 )

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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

jra1 IT-CZ Meeting, 8-9/06/ 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