Web Services

Download Report

Transcript Web Services

Web Services
A good choice for sharing
[ocean science] data.
Distributed Computing
Connecting systems

Transparency

Scalability

Fault Tolerance
Data Sharing Obstacles
Platforms
Languages
Transports
Data Sharing Methods
CORBA, RMI, DCOM
Problems




Goals lacked heterogeneous environment
Difficult-to-implement
Proprietary protocols
Not modular – crammed specifications
The Web Service
Defined: Process between systems
Leverage Internet standards

Passes XML messages over HTTP
Promotes

Interoperability
Perl to C++ to AppleScript…

Loose coupling
Implementation-independent & Versioning
SOAP
The Emerging Web Service


Interface to existing programs
Modular Design
Extensible – add-on distinct specs


Security
Reliability
Customizable – combine features as needed


No forced model
80+ implementations (platforms,languages)
SOAP: Requirements
Application
Application Server
SOAP Implementation
XML parser (sometimes)
SOAP: How It Works
Calls functions of existing programs

Application server knows:
Available functions
How to decode requests
How to encode responses

XML Request – invokes a function call
With function parameters (if necessary)

XML Response
Packages returned data of the function
SOAP: Getting Started
Receiving SOAP requests

Define a SOAP “Service”
Tell Server “Providing” program
How to translate data (mapping)
Sending SOAP requests

Write SOAP call
Knowing what you are receiving
What parameters to pass along (if necessary)
SOAP Example
Online Address Book
Functions:



getAddressForName( name )
addEntry( <some data> )
getAllListings()
SOAP Response: Notify Server
<isd:service …
id="urn:AddressFetcher">
<isd:provider
type="java" ...
methods="getAddressFromName addEntry getAllListings" …
class="samples.addressbook.AddressBook" …
…
<isd:mappings>
…
</isd:service>
SOAP Request: Making the Call
URL url = new URL("http://ragnarok.whoi.edu:7001/soap/servlet/rpcrouter");
…
Call call = new Call(); …
call.setTargetObjectURI("urn:AddressFetcher");
call.setMethodName("getAddressFromName");
…
Vector params = new Vector();
params.addElement( … "John B. Good“ …);
call.setParams(params);
Response response = call.invoke(url);
Parameter ret = response .getReturnValue();
…
<do something>
SOAP: In Action
getAddressFromName(“John B. Good”)
Try it
addEntry(“John Doe ...”)
Try it
getAddressFromName(“John Doe”)
Try it
getAllListings()
Try it
SOAP: Drawbacks
Performance

XML lacks efficiency of parsing
XML Infoset (W3C recommendation)

HTTP limitations
Popular Web Services
Product
Apache SOAP
GLUE
WASP
SOAP::Lite
SOAPx4
Support OS
UNIX, Windows
UNIX, Windows
UNIX, Windows
UNIX, Windows
UNIX
Language
Java
Java
C++
Perl
PHP