Web Services - PowerPoint PPT Presentation

1 / 45
About This Presentation
Title:

Web Services

Description:

A Web Service is a software component that could be described ... Idoox WASP for C . Microsoft SOAP Toolkit (part of the .net framework) SOAP::Lite for Perl ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 46
Provided by: ise2
Category:
Tags: services | web

less

Transcript and Presenter's Notes

Title: Web Services


1
Web Services

2
Web Services - 1
  • A Web Service is a software component that could
    be described via WSDL (Web Service Description
    Language) and is capable of being accessed via
    standard network protocols, such as SOAP, over
    HTTP
  • Web Services define a platform and
    language-independent standard based on XML to
    communicate within distributed systems.
  • SOAP is a lightweight protocol defined by the
    World Wide Web Consortium (W3C), which defines
    how to exchange information in a decentralized,
    distributed systems based on XML.
  • Ref http//www.hta-bi.bfh.ch/Projects/wssec/gener
    ated/html/glossary.html
  • http//www.oasis-open.org/committees/wsia/glossary
    /wsia-draft-glossary-03.htm

3
Web Services - 2
4
Web Services - 3
  • Use of web service
  • RPC-based Java API for XML-based remote
    procedure calls (JAX-RPC) defines mappings
    between Java types and XML types
  • Message-based (SOA) SOAP messages
  • REpresentational State Transfer (REST) a
    network of web pages (a virtual state-machine),
    where the user progresses through an application
    by selecting links (state transitions), resulting
    in the next page (representing the next state of
    the application) being transferred to the user
    and rendered for their use. -- Dr. Roy T.
    Fielding

5
Web service protocol stack
6
Web service protocols
7
SOAP
  • SOAP is a protocol, which applies XML for
    message exchange in support of remote method
    calls over the Internet.
  • Compared to Remote Method Invocation (RMI) or
    CORBA-based facilities
  • SOAP is web-based or wired and hence is not
    subject to firewall restrictions
  • is Language-independent
  • provides just-in-time service integration--as
    requesters use a service broker (e.g.,
    UDDI--Universal Description, Discovery, and
    Integration ) to find services, the discovery
    will take place dynamically.

8
Remote Procedure Call using HTTP
9
SOAP Messages
10
SOAP Messages
11
Example of a SOAP message
12
A SOAP Message with a RPCsource
(http//www.soaprpc.com/tutorials/) A Busy
Developers Guide To Soap1.1
  • ltSOAP-ENVEnvelope
  • SOAP-ENVencodingStyle
  • "http//schemas.xmlsoap.org/soap/enco
    ding/"
  • xmlnsSOAP-ENC"http//schemas.xmlsoap.org/so
    ap/encoding/" xmlnsSOAP-ENV"http//schemas.xmlso
    ap.org/soap/envelope/" xmlnsxsd"http//www.w3.or
    g/1999/XMLSchema" xmlnsxsi"http//www.w3.org/199
    9/XMLSchema-instance"gt
  • ltSOAP-ENVBodygt       ltmgetStateName
    xmlnsm"http//www.soapware.org/"gt         ltstat
    enum xsitype"xsdint"gt41lt/statenumgt         lt/m
    getStateNamegt lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

13
An Example SOAP Requestsource
(http//www.soaprpc.com/tutorials/) A Busy
Developers Guide To Soap1.1
14
Response example source (http//www.soaprpc.com/
tutorials/) A Busy Developers Guide To Soap1.1
15
Example of a SOAP message for an Error RPC
responsehttp//www.soapware.org/bdg
16
HTTP and SOAP RPC Requestsource
(http//www.soaprpc.com/tutorials/) A Busy
Developers Guide To Soap1.1
  • A SOAP message can be used to transport a SOAP
    remote procedure request/response, as follows
  • POST /examples HTTP/1.1User-Agent
    Radio UserLand/7.0 (WinNT)Host
    localhost81Content-Type text/xml
    charsetutf-8Content-length 474SOAPAction
    "/examples"ltblank linegt
  • lttext for SOAP messagegt

17
An HTTP request that carries a SOAP RPC request
source (http//www.soaprpc.com/tutorials/) A
Busy Developers Guide To Soap1.1
  • POST /examples HTTP/1.1User-Agent
    Radio UserLand/7.0 (WinNT)Host
    localhost81Content-Type text/xml
    charsetutf-8Content-length 474SOAPAction
    "/examples"lt?xml version"1.0"?gtltSOAP-ENVEnvel
    ope SOAP-ENVencodingStyle
  • "http//schemas.xmlsoap.org/soap/encoding/"
    xmlns
  • SOAP-ENC"http//schemas.xmlsoap.org/soap/enc
    oding/" xmlns
  • SOAP-ENV"http//schemas.xmlsoap.org/soap/env
    elope/" xmlnsxsd"http//www.w3.org/1999/XMLSchem
    a" xmlnsxsi"http//www.w3.org/1999/XMLSchema-ins
    tance"gtltSOAP-ENVBodygt       ltmgetStateName
    xmlnsm"http//www.soapware.org/"gt         ltstat
    enum xsitype"xsdint"gt41lt/statenumgt         lt/m
    getStateNamegt lt/SOAP-ENVBodygt lt/SOAP-ENVEnvel
    opegt

18
An HTTP request that carries a SOAP RPC
responsesource (http//www.soaprpc.com/tutorials
/) A Busy Developers Guide To Soap1.1
  • HTTP/1.1 200 OKConnection
    closeContent-Length 499Content-Type text/xml
    charsetutf-8Date Wed, 28 Mar 2001 050504
    GMTServer UserLand Frontier/7.0-WinNTlt?xml
    version"1.0"?gtltSOAP-ENVEnvelope
    SOAP-ENVencodingStyle"http//schemas.xmlsoap.org
    /soap/encoding/" xmlnsSOAP-ENC"http//schemas.xm
    lsoap.org/soap/encoding/" xmlnsSOAP-ENV"http//s
    chemas.xmlsoap.org/soap/envelope/"
    xmlnsxsd"http//www.w3.org/1999/XMLSchema"
    xmlnsxsi"http//www.w3.org/1999/XMLSchema-instan
    ce"gt   ltSOAP-ENVBodygt      ltmgetStateNameRespo
    nse xmlnsm"http//www.soapware.org/"gt         lt
    Result xsitype"xsdstring"gtSouth
    Dakotalt/Resultgt         lt/mgetStateNameResponsegt
          lt/SOAP-ENVBodygt   lt/SOAP-ENVEnvelopegt

19
An HTTP request that carries a SOAP Error
messagesource (http//www.soaprpc.com/tutorials/
) A Busy Developers Guide To Soap1.1
  • HTTP/1.1 500 Server ErrorConnection
    closeContent-Length 511Content-Type text/xml
    charsetutf-8Date Wed, 28 Mar 2001 050632
    GMTServer UserLand Frontier/7.0-WinNT
  • lt?xml version"1.0"?gtltSOAP-ENVEnvelope
    SOAP-ENVencodingStyle"http//schemas.xmlsoap.org
    /soap/encoding/" xmlnsSOAP-ENV"http//schemas.xm
    lsoap.org/soap/envelope/" xmlnsxsd"http//www.w3
    .org/1999/XMLSchema" xmlnsxsi"http//www.w3.org/
    1999/XMLSchema-instance"gt   ltSOAP-ENVBodygt     
     ltSOAP-ENVFaultgt         ltfaultcodegt
    SOAP-ENVClient lt/faultcodegt         ltfaultstring
    gt Can't call getStateName because there are too
    many parameters.lt/faultstringgt         lt/
    SOAP-ENVFaultgt      lt/SOAP-ENVBodygt   lt/SOAP-E
    NVEnvelopegt

20
Advantages of web serviceshttp//en.wikipedia.org
/wiki/Web_serviceAdvantages_of_web_services
  • Web services provide interoperability between
    various software applications running on
    disparate platforms.
  • Web services use open standards and protocols.
    Protocols and data formats are text-based where
    possible, making it easy for developers to
    comprehend.
  • By utilizing HTTP, web services can work through
    many common firewall security measures without
    requiring changes to the firewall filtering
    rules. Other forms of RPC may more often be
    blocked.
  • Web services allow software and services from
    different companies and locations to be combined
    easily to provide an integrated service.

21
Disadvantages of Web Serviceshttp//en.wikipedia.
org/wiki/Web_service
  • Lacks of standard features, such as transactions,
    while comparing to other open standards, such as
    CORBA.
  • Poor performance due to using of XML text-formats.

22
Example of Web Service Request
  • lt?xml version"1.0" encoding"UTF-8" ?gt
  • ltSOAP-ENVEnvelope xmlnsSOAP-ENV"http//schemas.
    xmlsoap.org/soap/envelope/" xmlnsq0"http//wsv.m
    ci.com/ETECapability" xmlnsxsd"http//www.w3.org
    /2001/XMLSchema" xmlnsxsi"http//www.w3.org/2001
    /XMLSchema-instance"gt
  • ltSOAP-ENVBodygt
  • ltq0BuildingIDgtrvclt/q0BuildingIDgt
  • lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

23
Example of Web Service Response
  • lt?xml version"1.0" encoding"utf-8" ?gt
  • ltsoapenvEnvelope xmlnssoapenv"http//schemas.xm
    lsoap.org/soap/envelope/" xmlnssoapenc"http//sc
    hemas.xmlsoap.org/soap/encoding/"
    xmlnsxsd"http//www.w3.org/2001/XMLSchema"
    xmlnsxsi"http//www.w3.org/2001/XMLSchema-instan
    ce"gt  ltsoapenvHeader /gt
  • ltsoapenvBodygt
  • ltETESitesForBuilding xmlns"http//wsv.mci.com/ETE
    Capability"gt
  •   ltBuildingIDgtrvclt/BuildingIDgt
  •   ltOnNetgt1lt/OnNetgt
  •   ltBuildingStatusgtactivelt/BuildingStatusgt
  •   ltBuildingServiceTypegtfiberlt/BuildingServiceType
    gt
  • ltSitesgt
  •   ltSiteCodegt80lt/SiteCodegt
  •   ltSiteCLLIgtCHCGILTOH44lt/SiteCLLIgt
  • ltPortTypesgt
  • ltEquipmentTypegtee4000lt/EquipmentTypegt
  • ltPortTypegt10/100lt/PortTypegt
  • ltPortTypegtGigElt/PortTypegt
  •   lt/PortTypesgt
  •   ltDedicatedgt0lt/Dedicatedgt
  • ltCSiteID xsinil"true" /gt
  • ltColloRestrictedFlaggt0lt/ColloRestrictedFlaggt

24
SOAP Packagessource http//www.soapuser.com
  • Apache SOAP for Java
  • Apache Axis for Java
  • Idoox WASP for C
  • Microsoft SOAP Toolkit (part of the .net
    framework)
  • SOAPLite for Perl
  • Demo http//cs1.cs.gmu.edu8081/admin/index.html

25
Apache SOAP
  • Allows clients and services to be written in Java
  • Part of the Apache-XML project (http//xml.apache.
    org/)
  • SOAP package downloadable http//xml.apache.org/d
    ist/soap/
  • Installation instruction
  • http//www.xmethods.com/gettingstarted/apache.htm
    l

26
Apache SOAP installation
27
Classpath setting
  • set CLASSPATH
  • C\soap\soap-2_2\lib\xerces.jar
  • C\jdk1.3\bin
  • C\jdk1.3\lib\tools.jar
  • C\soap\soap-2_2\lib\mail.jar
  • C\soap\soap-2_2\lib\soap.jar
  • C\soap\soap-2_2\lib\activation.jar
  • C\tomcat\lib\servlet.jar
  • .

28
Writing a Client Application using Apache
SOAPsource http//www.xmethods.com/gettingstarte
d/apache.html
  • Classpath The CLASSPATH environment variable
    should have both the "soap.jar" and "xerces.jar"
    JAR files included. Importing packages For basic
    SOAP method invocation
  • // Required due to use of URL class , required
    by Call class import java.net. // Required
    due to use of Vector class import java.util.
    // Apache SOAP classes used by client import
    org.apache.soap.util.xml. import
    org.apache.soap. import org.apache.soap.rpc.

29
Ready-made SOAP Services
  • A number of SOAP ready-made services are
    available at http//www.xmethods.com/
  • XMethods Service Weather Temperature
  • ID8
  • Service Ownerxmethods.net
  • Contact Emailsupport_at_xmethods.net
  • Service DescriptionCurrent temperature in a
    given U.S. zipcode region.
  • SOAP ImplementationApache SOAP

30
Sample SOAP service
Found at http//www.xmethods.com
31
RPC Profile for Service

See sample TempClient.java
32
Client program samples
  • See samples in client folder
  • TempClient.java
  • StockQuoteClient.java
  • CurrencyClient.java

33
SOAP data types
  • SOAP Data Types http//www.sdc.iup.edu/outreach/sp
    ring2002/webservices/datatypes.html
  • Uses XML Schema data types
  • Primitive Types
  • string, boolean, decimal, float, double,
    duration, dateTime, time, date, gYearMonth,
    gYear, gMonthDay, gDay, gMonth, hexBinary,
    base64Binary, anyURI, QName, NOTATION

34
SOAP data types
  • Derived Types
  • Simple types (derived from a single primitive
    type) integer is derived from decimal int
    (-2147483648 lt int lt 2147483647) is derived
    from long which is derived from integer
    5-digit zip code can be derived from int may
    use regular expressions to specify derived types,
    such as (A-Z)2,3-\d5

35
Complex Type
  • Complex types (struct or array)
  • Struct exampleltinstructorgt
  • ltfirstname xsitype"xsdstring"gtEdlt/firstnamegt
  • ltlastname xsitype"xsdstring"gtDonleylt/lastname
    gt lt/instructorgt
  • Array example
  • ltmathcourses xsitype
  • "SOAP-ENCArray" SOAP ENCarrayType"sestring3
    "gt ltsestringgt10452Clt/sestringgt
    ltsestringgt10454Clt/sestringgt ltsestringgt11123Tlt/s
    estringgt
  • lt/mathcoursesgt

36
Creating Web Services (server-side SOAP)
  • O'Reilly Network Using SOAP with Tomcat
    http//www.onjava.com/pub/a/onjava/2002/02/27/tomc
    at.htm
  • Apache SOAP allows you to create and deploy a
    SOAP web service.
  • Some jar files must be installed, and must be
    accessible by the CLASSPATH.
  • Algorithm
  • Develop a class for providing the service.
  • Create a deployment descriptor in XML.
  • Deploy the service with the service manager.

37
The Apache SOAP service manager
  • The service manager is itself implemented as a
    SOAP service.
  • To see what services are deployed on your system
  • java org.apache.soap.server.ServiceManagerClient
    http//localhost8080/soap/servlet/rpcrouter list
  • To deploy a service
  • java org.apache.soap.server.ServiceManagerClient
    http//localhost8080/soap/servlet/rpcrouter
    deploy foo.xml

38
Creating a SOAP ServiceO'Reilly Network Using
SOAP with Tomcat Feb. 27, 2002http//www.onjava
.com/pub/a/onjava/2002/02/27/tomcat.html
  • A SOAP service can be just about any Java class
    that exposes public methods for invocation.
  • The class does not need to know anything about
    SOAP, or even that it is being executed as a SOAP
    service.
  • The method parameters of a SOAP service must be
    serializable. The available types that can be
    used as SOAP service parameters are shown in the
    next slide

39
SOAP Service Parameter Types
  • All Java primitive types and their corresponding
    wrapper classes
  • Java arrays
  • java.lang.String
  • java.util.Date
  • java.util.GregorianCalendar
  • java.util.Vector
  • java.util.Hashtable
  • java.util.Map

40
SOAP Service Parameter Types
  • java.math.BigDecimal
  • javax.mail.internet.MimeBodyPart
  • java.io.InputStream
  • javax.activation.DataSource
  • javax.activation.DataHandler
  • org.apache.soap.util.xml.QName
  • org.apache.soap.rpc.Parameter
  • java.lang.Object (must be a JavaBean)

41
Sample SOAP Service Implementations
  • TempService A temperature service
  • Exchange currency exchange service and client
  • Ref http//ise.gmu.edu/yhwang1/SWE622/Sample_Cod
    es/chapter11/SOAP/

42
Sample SOAP Service Class
  • // A sample SOAP service class
  • // ref http//www.onjava.com/pub/a/onjava/2002/02
    /27/tomcat.html
  • package onjava
  • public class CalcService
  • public int add (int p1, int p2)
  • return p1 p2
  • public int subtract (int p1, int p2)
  • return p1 - p2

43
Deployment Descriptor
  • ltisdservice xmlnsisd"http//xml.apache.org/xml-
    soap/deployment"
  • id"urnonjavaserver"gt
  • ltisdprovider type"java"
  • scope"Application"
  • methods"add subtract"gt
  • ltisdjava class"onjava.CalcService"/gt
  • lt/isdprovidergt ltisdfaultListenergtorg.apa
    che.soap.server.DOMFaultListener

  • lt/isdfaultListenergt
  • lt/isdservicegt

44
Sources of Information
  • Programming Web Services with SOAP, by Snell et
    al, OReilly
  • SOAP Tutorial, http//www.w3schools.com/soap/defau
    lt.asp
  • SoapRPC.com Tutorials, http//www.soaprpc.com/tut
    orials/--Developers Guide To Soap1.1
  • DaveNet XML-RPC for Newbies, http//davenet.user
    land.com/1998/07/14/xmlRpcForNewbies
  • SoapRPC.com Other resources, http//www.soaprpc.c
    om/resources/

45
Summary
  • SOAP is a protocol that makes use of HTTP
    requests and responses to effect remote method
    calls to web services.
  • A SOAP method call is encoded in XML and is
    embedded in an HTTP request
  • The return value of a method call is likewise
    embedded and encoded in an HTTP response
  • A number of SOAP APIs are available for
    programming web services and client method calls.
    The Apache API was introduced.
Write a Comment
User Comments (0)
About PowerShow.com