webservices PPT

36
Web Services Web Services Martin Senger Martin Senger [email protected] [email protected] 

Transcript of webservices PPT

Page 1: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 1/36

Web ServicesWeb Services

Martin SengerMartin Senger

[email protected] [email protected] 

Page 2: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 2/36

A bstractA bstract

�� W eb Services is a technology applicable forW eb Services is a technology applicable for

computationally distributed problems, including computationally distributed problems, including 

access to large databasesaccess to large databases² ² W hat other technologies were/are available and how W hat other technologies were/are available and how they compare with W eb Services?they compare with W eb Services?

�� The main buzzwords:The main buzzwords:

² ² Integration & Standardization & Access by programsIntegration & Standardization & Access by programs

Page 3: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 3/36

Why to use more than oneWhy to use more than one

computer?computer?

�� Distributed resourcesDistributed resources

² ² access to shared dataaccess to shared data² ² access to shared programsaccess to shared programs

² ² access to CPU (e.g. many desktop PCs together), toaccess to CPU (e.g. many desktop PCs together), tomemory, to special devices (e.g. printer)memory, to special devices (e.g. printer)

�� Complete independence on the internalComplete independence on the internalimplementationimplementation

Page 4: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 4/36

Distributed architectureDistributed architecture

�� gives gives 

² ² access to distributed resourcesaccess to distributed resources

² ² development encapsulationdevelopment encapsulation

�� maintainability, remaintainability, re--usability, legacy usability, legacy--awarenessawareness

² ² implementation independenceimplementation independence

�� requires requires 

² ² adding a communication layer between partsadding a communication layer between parts

² ² synchronization of effortssynchronization of efforts

�� including such nasty things as distributed garbageincluding such nasty things as distributed garbagecollectioncollection

Page 5: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 5/36

 Sending

requests,

getting

results

 Waiting for 

requests(known location,

known port)

Communication protocol, Data format

Distributed architectureDistributed architecture

�� Basic questions are:Basic questions are:

² ² W hat kind of protocol to use, and what data toW hat kind of protocol to use, and what data totransmittransmit

² ² W hat to do with requests on the server sideW hat to do with requests on the server side

Page 6: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 6/36

 Sending

requests,

getting

results

 Waiting for 

requests(known location,

known port)

Data as name/value pairs

Traditional CGITraditional CGI--based approachbased approach

�� cgicgi--bin scripts:bin scripts:

² ² Data transmitted as nameData transmitted as name--value pairs (HTML forms)value pairs (HTML forms)² ² Transport over (stateTransport over (state--less) HTTP protocolless) HTTP protocol

² ² no standards for keeping user sessions (stateno standards for keeping user sessions (state--fullness)fullness)

² ² server side: a script is calledserver side: a script is called

Page 7: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 7/36

 Sending

requests,

getting

results

 Waiting for 

requests(known location,

known port)

Data in binary format

CORBA CORBA --based approachbased approach

�� COR BA:COR BA:

² ² Data transmitted as objects (at least it looks like that)Data transmitted as objects (at least it looks like that)² ² Transport (usually) over well standardised IIOP protocolTransport (usually) over well standardised IIOP protocol

² ² user sessions (stateuser sessions (state--fullness) very interfullness) very inter--operableoperable

² ² server side: an RPC call is madeserver side: an RPC call is made

Page 8: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 8/36

 Sending

requests,

getting

results

 Waiting for 

requests(known location,

known port)

Data in XML format

SOAPSOAP--based communicationbased communication

�� SOAP:SOAP:

² ² Data in a wellData in a well--defined XML formatdefined XML format² ² Transport over various protocolsTransport over various protocols

�� HTTP, SMTP are the most used, perhaps because they areHTTP, SMTP are the most used, perhaps because they arefirewallfirewall--friendly friendly 

² ² server side: either an RPC call or a message deliveredserver side: either an RPC call or a message delivered

Page 9: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 9/36

Web servicesWeb services

�� A collection of XMLA collection of XML--based technologiesbased technologiesdeveloped by the edeveloped by the e--business community tobusiness community to

address issues of:address issues of:

² ² service discovery service discovery 

² ² interoperable data exchange and/or applicationinteroperable data exchange and/or applicationinvocationinvocation

² ² service compositions (workflow, business processes)service compositions (workflow, business processes)�� Major developers include:Major developers include:

² ² Apache, IBM, HP, SUN & Microsoft (.NET)Apache, IBM, HP, SUN & Microsoft (.NET)

�� http://www.webservices.org/http://www.webservices.org/

Page 10: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 10/36

W3C (working group) definitionW3C (working group) definition

�� "A W eb  service  is a softw a re appl ic a tion  "A W eb  service  is a softw a re appl ic a tion  identified  by a identified  by a 

URI URI , whose  interf  a ces a nd  bindings a re  c apa b l e  of   being  , whose  interf  a ces a nd  bindings a re  c apa b l e  of   being  

defined ,defined , described a nd  discovered described a nd  discovered a s XML a rtef  a cts. Aa s XML a rtef  a cts. AW eb  service  su pports  direct  inter a ctions  with  other  W eb  service  su pports  direct  inter a ctions  with  other  

softw a re a gents  using  softw a re a gents  using XML b a sed m ess a ges XML b a sed m ess a ges exch a nged  exch a nged  

vi a vi a internet internet- -b a sed protocol s b a sed protocol s." ." �� http://www.w3c.org/TR/2002/WDhttp://www.w3c.org/TR/2002/WD--wsawsa--reqsreqs--2002081920020819

Page 11: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 11/36

Web Services ArchitectureWeb Services Architecture

Let a program ´click on a web pageµ

Page 12: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 12/36

Web Services Stack Web Services Stack 

Page 13: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 13/36

SOAPSOAP

�� SSimpleimple OObjectbject A A ccessccess PProtocolrotocol

² ² http://www.w3c.org/TR/SOAP/http://www.w3c.org/TR/SOAP/

�� A lightweight protocol for exchange of A lightweight protocol for exchange of information in a decentralised, distributedinformation in a decentralised, distributed

environmentenvironment

�� Two different styles to use:Two different styles to use:

² ² to encapsulate RPC calls using the extensibility andto encapsulate RPC calls using the extensibility andflexibility of XMLflexibility of XML

² ² «or to deliver a whole document without any «or to deliver a whole document without any 

method calls encapsulatedmethod calls encapsulated

Page 14: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 14/36

Request:Request:

setHelloMessagesetHelloMessage

Request:Request:

getHelloMessagegetHelloMessage

Page 15: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 15/36

XML Messaging Using SOAPXML Messaging Using SOAP

Page 16: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 16/36

WSDLWSDL

�� WWebeb SServiceservices DDefinitionefinition LLanguageanguage

² ² http://www.w3.org/TR/wsdl/http://www.w3.org/TR/wsdl/

�� An XMLAn XML--based language for describing W ebbased language for describing W ebServicesServices

² ² what the service does (description)what the service does (description)

² ² how to use it (method signatures)how to use it (method signatures)

² ² where to find the servicewhere to find the service

�� ItIt does  not does  not depend on the underlying protocoldepend on the underlying protocol

�� But: It is not much humanBut: It is not much human--readablereadable

Page 17: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 17/36

Hello.wsdlHello.wsdl<?xml version="1.0" encoding="UTF<?xml version="1.0" encoding="UTF--8"?>8"?>

<wsdl:definitions targetNamespace="http://localhost:8080/axis/services/Hello"<wsdl:definitions targetNamespace="http://localhost:8080/axis/services/Hello"xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAPxmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP--

ENC="http://schemas.xmlsoap.org/soap/encoding/"ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:impl="http://localhost:8080/axis/services/Helloxmlns:impl="http://localhost:8080/axis/services/Hello--impl"impl"xmlns:intf="http://localhost:8080/axis/services/Hello"xmlns:intf="http://localhost:8080/axis/services/Hello"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:messagexmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:messagename="setHelloMessageRequest"> <wsdl:partname="setHelloMessageRequest"> <wsdl:part name="in0" type="xsd:string"name="in0" type="xsd:string"/>/></wsdl:message> <wsdl:message name="getHelloMessageResponse"> <wsdl:part</wsdl:message> <wsdl:message name="getHelloMessageResponse"> <wsdl:partname="return" type="xsd:string"name="return" type="xsd:string"/> </wsdl:message> <wsdl:message/> </wsdl:message> <wsdl:messagename="setHelloMessageResponse"> </wsdl:message> <wsdl:messagename="setHelloMessageResponse"> </wsdl:message> <wsdl:messagename="getHelloMessageRequest"> </wsdl:message> <wsdl:portTypename="getHelloMessageRequest"> </wsdl:message> <wsdl:portTypename="HelloWorldService"> <wsdl:operation name="name="HelloWorldService"> <wsdl:operation name="getHelloMessagegetHelloMessage">"><wsdl:input message="intf:getHelloMessageRequest"/> <wsdl:output<wsdl:input message="intf:getHelloMessageRequest"/> <wsdl:outputmessage="intf:getHelloMessageResponse"/> </wsdl:operation> <wsdl:operationmessage="intf:getHelloMessageResponse"/> </wsdl:operation> <wsdl:operationname="name="setHelloMessagesetHelloMessage" parameterOrder="in0"> <wsdl:input" parameterOrder="in0"> <wsdl:inputmessage="intf:setHelloMessageRequest"/> <wsdl:outputmessage="intf:setHelloMessageRequest"/> <wsdl:outputmessage="intf:setHelloMessageResponse"/> </wsdl:operation> </wsdl:portType>message="intf:setHelloMessageResponse"/> </wsdl:operation> </wsdl:portType><wsdl:binding name="HelloSoapBinding" type="intf:HelloWorldService"><wsdl:binding name="HelloSoapBinding" type="intf:HelloWorldService"><wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="getHelloMessage"> <wsdlsoap:operation soapAction=""/><wsdl:operation name="getHelloMessage"> <wsdlsoap:operation soapAction=""/><wsdl:input> <wsdlsoap:body<wsdl:input> <wsdlsoap:bodyencodingStyle="http://schemas.xmlsoap.org/soap/encoding/"encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"namespace="getHelloMessage" use="encoded"/> </wsdl:input> <wsdl:output>namespace="getHelloMessage" use="encoded"/> </wsdl:input> <wsdl:output>

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"namespace="http://localhost:8080/axis/services/Hello" use="encoded"/>namespace="http://localhost:8080/axis/services/Hello" use="encoded"/></wsdl:output> </wsdl:operation> <wsdl:operation name="setHelloMessage"></wsdl:output> </wsdl:operation> <wsdl:operation name="setHelloMessage"><wsdlsoap:operation soapAction=""/> <wsdl:input> <wsdlsoap:body<wsdlsoap:operation soapAction=""/> <wsdl:input> <wsdlsoap:bodyencodingStyle="http://schemas.xmlsoap.org/soap/encoding/"encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"namespace="setHelloMessage" use="encoded"/> </wsdl:input> <wsdl:output>namespace="setHelloMessage" use="encoded"/> </wsdl:input> <wsdl:output><wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"namespace="namespace="http://localhost:8080/axis/services/Hello" use="encoded"/>" use="encoded"/></wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service</wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:servicename="HelloWorldServiceService"> <wsdl:port binding="intf:HelloSoapBinding"name="HelloWorldServiceService"> <wsdl:port binding="intf:HelloSoapBinding"name="Hello"> <wsdlsoap:addressname="Hello"> <wsdlsoap:addresslocation="location="http://localhost:8080/axis/services/Hellohttp://localhost:8080/axis/services/Hello "/> </wsdl:port>"/> </wsdl:port></wsdl:service></wsdl:service>

</wsdl:definitions></wsdl:definitions>

Page 18: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 18/36

UDDI (and alternatives)UDDI (and alternatives)�� UUniversalniversal DDescription,escription, DDiscovery andiscovery and IIntegrationntegration

² ² http://www.uddi.org http://www.uddi.org 

�� UDDI creates a platformUDDI creates a platform--independent, openindependent, open

framework & registry for:framework & registry for:² ² Describing servicesDescribing services

² ² Discovering businessesDiscovering businesses

² ² Integrating business servicesIntegrating business services�� The UDDI may be less used than predicted,The UDDI may be less used than predicted,

especially on the Internet levelespecially on the Internet level

�� BioMoby 

BioMoby -- an alternative for Life Sciences domain?an alternative for Life Sciences domain?

Page 19: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 19/36

BioMobyBioMobyhttp://biomoby.orghttp://biomoby.org

Page 20: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 20/36

A Web Service example in JavaA Web Service example in Java

 

SOAPSOAP--awareaware

ServletServlet(e.g. Apache Axis)(e.g. Apache Axis)

 Any classprocessing 

the incoming 

requests

(´business logicµ

 Any class

processing the incoming 

requests(´business logicµ

 Any class

processing the incoming 

requests(´business logicµ

 Any classAny class

processing processing 

the incoming the incoming requestsrequests(´business logicµ(´business logicµ

HTTP Server HTTP Server 

Servlet engine (e.g. Apache Tomcat)Servlet engine (e.g. Apache Tomcat)

 Sending

requests,getting

results

Page 21: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 21/36

Usual principles of Java toolkitsUsual principles of Java toolkits

�� W riting server is easier than writing clients (but only W riting server is easier than writing clients (but only regarding the toolkit, not the business logic)regarding the toolkit, not the business logic)

�� ServersServers may may be written independently on the usedbe written independently on the usedtoolkittoolkit

�� Always test interoperability with a nonAlways test interoperability with a non--Java clientJava client(because of data serialization and de(because of data serialization and de--serialization)serialization)

�� Steps:Steps:² ² write your service implementationwrite your service implementation

² ² make all your classes available to the toolkitmake all your classes available to the toolkit² ² deploy your servicedeploy your service ( usu all y  done j ust  once)( usu all y  done j ust  once)

² ² restart the whole servlet enginerestart the whole servlet engine² ² test it with a client requesttest it with a client request

Page 22: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 22/36

Java SOAP ToolkitsJava SOAP Toolkits

�� Apache SOAP (was IBM·s SOAP4J)Apache SOAP (was IBM·s SOAP4J)

�� Apache Axis (a follow Apache Axis (a follow--on to the Apache SOAP)on to the Apache SOAP)

�� «and many others«and many others�� «but let·s stay with Apache Axis:«but let·s stay with Apache Axis:

² ² http://ws.apache.org/axis/http://ws.apache.org/axis/

Page 23: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 23/36

package hello;

public interface HelloWorld {String getHelloMessage();void setHelloMessage (String newHello);

}

package hello;public class HelloWorldService

implements HelloWorld {String message = "Hello, world!";

public String getHelloMessage() {return message;

}public void setHelloMessage (String newMessage) {

message = newMessage;}

}

hello/HelloWorld.javahello/HelloWorld.java

hello/HelloWorldService.javahello/HelloWorldService.java

Page 24: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 24/36

import org.apache.axis.client.*;public class HelloWorldClient {public static void main (String [] args) {try {

// prepare the call (the same for all called methods)Call call = (Call) new Service().createCall();call.setTargetEndpointAddress(new java.net.URL("http://localhost:8080/axis/services/Hello"));

// call "get message"if (args.length == 0) {call.setOperationName ("getHelloMessage");

String result = (String) call.invoke ( new Object [] {} );System.out.println (result);System.exit (0);

}

// call "set message" and afterwards "get message"call.setMaintainSession (true); // TRY also without this line...call.setOperationName ("setHelloMessage");

call.invoke ( new Object [] { args[0] } );call.setOperationName ("getHelloMessage");System.out.println (call.invoke ( new Object [] {} ));

} catch (Exception e) {System.err.println ("ERROR:\n" + e.toString());

}}

}

HelloWorldClient.javaHelloWorldClient.java

Page 25: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 25/36

Generated for HelloWorldGenerated for HelloWorld

HelloW orldServiceLocator

implements

HelloW orldService

HelloSoapBindingStub

implements

HelloW orld

getHello()

1. Make an instance of this

3. Call methods on this proxy object

2. Use it to make an instance of this

Page 26: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 26/36

public class HelloWorldClientFromStubs {public static void main (String [] args) {try {// prepare the calls (the same for all called methods)hello.generated.HelloWorldService service =new hello.generated.HelloWorldServiceLocator();

hello.generated.HelloWorld myHelloProxy = service.getHello();

// call "get message"if (args.length == 0) {String result = myHelloProxy.getHelloMessage()System.out.println (result);System.exit (0);

}

// call "set message" and afterwards "get message´myHelloProxy.setHelloMessage (args[0]);

System.out.println (myHelloProxy.getHelloMessage());

} catch (Exception e) {System.err.println ("ERROR:\n" + e.toString());

}}

}

HelloWorldClientFromStubs.javaHelloWorldClientFromStubs.java

Page 27: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 27/36

Java <=> XML Data MappingJava <=> XML Data Mapping

�� How Java objects are converted to/from XMLHow Java objects are converted to/from XML

data (in order to be able to be put into SOAPdata (in order to be able to be put into SOAPmessages)messages)

�� Important especially for the nonImportant especially for the non--basic data typesbasic data types

�� It·s easier if your nonIt·s easier if your non--basic data types are Javabasic data types are Java

Beans (having Beans (having setset//getget methods for members)methods for members)

Page 28: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 28/36

A Web Service example in PerlA Web Service example in Perl

This is a module implementing

the ³business logic´ 

package HelloPerl;use strict;

use vars qw( $Message );$Message = 'Hello, here is Perl.';sub getHelloMessage { $Message; }sub setHelloMessage { $Message = shift; }1;

This is a cgi-binscript#!/usr/bin/perl -w -- Perl ±use SOAP::Transport::HTTP;SOAP::Transport::HTTP::CGI-> dispatch_to('HelloPerl')-> handle;

#!/usr/bin/perl ±wuse SOAP::Lite

on_fault => sub {«};print SOAP::Lite

-> uri ('HelloPerl')-> proxy ('http://localhost/cgi-bin/helloserver.cgi')-> getHelloMessage

-> result;

This is a client

Page 29: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 29/36

SOAP::LiteSOAP::Lite

�� a collection of (many) modulesa collection of (many) modules² ² but they are loaded automatically when neededbut they are loaded automatically when needed

�� supports SOAP 1.1 specificationsupports SOAP 1.1 specification

�� all methods can be used for both setting andall methods can be used for both setting and

retrieving values:retrieving values:² ² if you provide no parameters, you will get current value, and if parametersif you provide no parameters, you will get current value, and if parameters

are provided, a new value will be assigned to the objectare provided, a new value will be assigned to the object

² ² and the method in question will return the current object (if not statedand the method in question will return the current object (if not stated

otherwise) which is is suitable for stacking these calls like:otherwise) which is is suitable for stacking these calls like:

$lite = SOAP::Lite$lite = SOAP::Lite

--> uri(¶openBQS')> uri(¶openBQS')

--> proxy('http://industry.ebi.ac.uk/soap/openBQS')> proxy('http://industry.ebi.ac.uk/soap/openBQS')

;;

Page 30: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 30/36

Using ´wsdlµUsing ´wsdlµ -- directlydirectly

#!/usr/bin/perl -w

use SOAP::Lite on_fault => sub {«};print SOAP::Lite

-> service ('file:/home/senger/ws-ws/perl/Hello.wsdl')-> setHelloMessage (123);

�� getting ´.wsdlµ file by using its URLgetting ´.wsdlµ file by using its URL

�� then, you do not need to worry about autotyping then, you do not need to worry about autotyping 

#!/usr/bin/perl -w

use SOAP::Lite on_fault => sub {«};my $service = SOAP::Lite -> service ('file:./Hello.wsdl');$service->setHelloMessage ($ARGV[0] or "Hello!!!");print $service->getHelloMessage, "\n";

Page 31: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 31/36

Why to use Web Services«Why to use Web Services«(comparing to CORBA )(comparing to CORBA )

�� W S are easier to deploy because of their firewallW S are easier to deploy because of their firewall--

friendlinessfriendliness

�� W S are quite well marketed (both from IT W S are quite well marketed (both from IT 

companies and Open Source projects)companies and Open Source projects)

�� However:However:

² ² user sessions are less standardiseduser sessions are less standardised

² ² many parts yetmany parts yet--toto--bebe--done (notification, transactions,done (notification, transactions,security, etc.)security, etc.)

�� The programming effort and maintainability isThe programming effort and maintainability is

similar to other distributed technologiessimilar to other distributed technologies

Page 32: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 32/36

1. What is similar1. What is similar

�� The programming effort and maintainability isThe programming effort and maintainability isroughly the same both for W eb Services androughly the same both for W eb Services andCOR BACOR BA

² ² For COR BA I need an OR BFor COR BA I need an OR B�� «but do you know anybody doing W S without a SOAP«but do you know anybody doing W S without a SOAP

toolkit?toolkit?

² ² For COR BA I need an IDL compilerFor COR BA I need an IDL compiler

�� «not always (ask Perl folks)«not always (ask Perl folks)�� «for W S you use frequently stubs generated from W SDL«for W S you use frequently stubs generated from W SDL

² ² «similar answers for valuetype/custom encoding, etc.«similar answers for valuetype/custom encoding, etc.

Page 33: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 33/36

2. What is2. What is ( IMHO)( IMHO) betterbetter

�� W S are easier to deploy because of their firewallW S are easier to deploy because of their firewall--

friendlinessfriendliness

�� W 

S are quite well marketed (both from IT

 W 

S are quite well marketed (both from IT

 companies and Open Source projects)companies and Open Source projects)

�� Integration of W S into workflows seems to beIntegration of W S into workflows seems to be

very dynamic and very real topicvery dynamic and very real topic

² ² comparing with COR BA Componentscomparing with COR BA Components

Page 34: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 34/36

3. What is3. What is ( IMHO)( IMHO) worseworse

�� PeerPeer--toto--peer access is problematicpeer access is problematic

² ² notification by ´servernotification by ´server--pushµ is harder to achievepushµ is harder to achieve

��User sessions (server·s stateUser sessions (server·s state--fullness) are lessfullness) are lessstandardisedstandardised

² ² «and therefore less inter«and therefore less inter--operableoperable

�� Many parts yetMany parts yet--toto--bebe--done, or they are quitedone, or they are quitecomplex (notification, transactions, security,complex (notification, transactions, security,

etc.)etc.)

Page 35: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 35/36

So what?So what?

�� Don't throw the baby out with the bathwaterDon't throw the baby out with the bathwater

² ² combine the existing projects with a new W ebcombine the existing projects with a new W ebServices layer; in most cases it is not so difficultServices layer; in most cases it is not so difficult

�� Apply existing standards to new W eb ServicesApply existing standards to new W eb Services

projectsprojects

² ² think MDAthink MDA ² ² it may help, even without the wholeit may help, even without the whole

OMG adoption processOMG adoption process

Page 36: webservices PPT

8/7/2019 webservices PPT

http://slidepdf.com/reader/full/webservices-ppt 36/36

ConclusionsConclusions

�� Distributed computing is inevitableDistributed computing is inevitable

�� More accesses by programs than by clicking onMore accesses by programs than by clicking onhyperlinkshyperlinks

�� More technologies of distributed architectureMore technologies of distributed architecturewill collaboratewill collaborate

�� The better standards we have the better resultsThe better standards we have the better results

we·ll getwe·ll get�� W eb Services is not a new hype but a trend toW eb Services is not a new hype but a trend to

follow follow