Minimal Infrastructure: SOA, WS-Addressing, WSRF, WSDL - PowerPoint PPT Presentation

1 / 76
About This Presentation
Title:

Minimal Infrastructure: SOA, WS-Addressing, WSRF, WSDL

Description:

widget:createWidgetResponse widget:widgetReference ... widget:resourceID /soap:Header soap:Body /soap:Body /soap:Envelope 25 ... – PowerPoint PPT presentation

Number of Views:173
Avg rating:5.0/5.0
Slides: 77
Provided by: stephe270
Category:

less

Transcript and Presenter's Notes

Title: Minimal Infrastructure: SOA, WS-Addressing, WSRF, WSDL


1
Minimal InfrastructureSOA, WS-Addressing, WSRF,
WSDL Naming
  • Stephen Davey, NeSC

1st NextGRID Training Course National e-Science
Centre (NeSC), Edinburgh, 7th March 2006
2
Contributors Acknowledgments
  • This presentation is based on work by
  • Richard Hopkins, Web Services Resource Framework
    - WSRF. http//www.egee.nesc.ac.uk/trgmat/events/
    otherNA3/05-02-23-IntroWSRF-Edinburgh-UK/talks/WSR
    F.ppt.
  • With additional information from
  • The Joy of Web Services. http//vermont.mvc.mcc.
    ac.uk/JoyOfWebServices.ppt. Author M. McKeown.
  • Foundation Grid Services using WSRF and OGSA
    base profile. http//www.egee.nesc.ac.uk/trgmat/e
    vents/otherNA3/05-07-10-SummerSchool-Naples-Italy/
    talks/Tues_7_19.ppt. Author D. Snelling.
  • Web Services, WSRF and GT4. http//gks05.fzk.de/
    upload/lectures/Mineter_WS_WSRF_GT4_v1.pdf.
    Author M. Mineter.
  • These slides have been compiled / edited by
  • Stephen Davey

3
Introduction - Aim Scope
  • These slides intend to cover the following
  • NextGRID Minimal Infrastructure
  • Service-Oriented Architecture
  • OGSA WSRF Base Profile 1.0
  • WSDL 1.1
  • Naming
  • They are at an Introductory level, aimed at
    people with some knowledge in this area.

4
Introduction - Contents
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

5
What is a Service-Oriented Architecture?
  • Service-Oriented Architecture (SOA)
  • This term is increasingly used to refer to an
    architectural style of building reliable
    distributed systems that deliver functionality as
    services, with the additional emphasis on loose
    coupling between interacting services.
  • Service
  • A software component participating in a
    service-oriented architecture that provides
    functionality and/or participates in realizing
    one or more capabilities.
  • OGSA Glossary v1.0

6
What is a Service?
  • In computing terms, a service is simply a
    function that can be invoked via a well-defined
    remote interface.
  • OGSI primer
  • Systems interact with a Web service in a manner
    prescribed by its description using SOAP
    messages, typically conveyed using HTTP with an
    XML serialization in conjunction with other
    Web-related standards.
  • W3C Web Services Architecture

7
Benefits of Web Services SOA
  • Benefits
  • Allows us to hide the details of how a service is
    implemented only URL and data types are required
  • It is largely irrelevant to the client whether
    the service is developed with Java or ASP.NET or
    if it is running on Windows, Linux or any other
    platform
  • Key Service Oriented Principles
  • Composable
  • Simple parts
  • Intended for distributed systems
  • Acknowledgement of boundaries

8
SOA Triangle
Service Registry
Find (Discover)
Publish
Service Description
Service Requestor
Service Provider
Bind (Interact)
9
Web services stack
Application
Application (servlet)
rpcrouter
Web server
SOAP
SOAP
HTTP
HTTP
TCP/IP
TCP/IP
Infrastructure (Data link)
Infrastructure (Data link)
10
SOAP
  • SOAP provides a simple lightweight mechanism for
    exchanging structured and typed information
    between peers in a decentralized, distributed
    environment using XMLMicrosoft

11
SOAP over HTTP
HTTP Headers
ltsoapEnvelopegt ltsoapHeadergt
XML lt/soapHeadergt
ltsoapBodygt XML payload
lt/soapBodygt lt/soapEnvelopegt
SOAP Envelope
Header
Body
Message Pay Load
12
SOAP Structure
  • Envelope contains the entire SOAP message.
  • Header (optional) contains header information.
  • Body contains the application pay load.
  • Message Payload the part of the message that is
    intended for the application.

13
Sample SOAP
  • ltSOAP-ENVEnvelope
  • xmlnsSOAP-ENVhttp//schema.xmlsoap.org/soap/e
    nvelope/
  • xmlnsSOAP-ENChttp//schema.xmlsoap.org/soap/e
    ncoding/
  • SOAP-ENVencodingStylehttp//schema.xmlsoap.or
    g/soap/encodinggt
  • ltSOAP-ENVBodygt
  • ltgetHostname/gt
  • lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt
  • Invokes the getHostname operation on the Web
    service.

14
OGSA WSRF Base Profile 1.0
  • Key parts mandated in the profile
  • Addressing
  • WS-Addressing endpoint references and places some
    constraints on their structure, thus enabling
    interoperable addressing.
  • Resource Properties
  • resource must support certain resource
    properties,
  • support for certain operations that are optional
    in the WS-ResourceProperties specifications.
  • Resource Lifetime
  • ImmediateResourceTermination portType, and
  • ScheduledResourceTermination portType (and their
    associated operations and properties).
  • Base Notification
  • NotificationProducer portType (and its associated
    operations and properties to provide notification
    using a publish/subscribe pattern).
  • Base Faults
  • WS-BaseFaults (and extends the fault structure).

15
WS-Addressing
  • Before WS-Addressing
  • WS-Addressing specification
  • Endpoint References
  • EPRs and SOAP
  • Message Addressing Properties (headers)
  • To, From, ReplyTo, FaultTo, Action, MessageID,
    RelatesTo.
  • Reference parameters.
  • Anonymous None URIs.

16
Before WS-Addressing
  • To locate a web service had to ask for the URL of
    the endpoint or the WSDL.
  • Plus might need to identify the web services
    instance.
  • Could use a URL with a session identifier (e.g.
    appending ?resourceID123).
  • Could add extra information in SOAP headers, but
    now no longer bound to one specific transport
    protocol.

17
Endpoint References (EPRs)
  • Web service endpoint is a entity to which Web
    service messages can be addressed.
  • Endpoint references convey the information needed
    to address a Web service endpoint.
  • EPR is basically a URL wrapped by some XML
    elements.
  • ltwsaEndpointReferencegt
  • ltwsaAddressgtxsanyURIlt/wsaAddressgt (1..1)
  • ltwsaReferenceParametersgtxsanylt/wsaReferencePar
    ametersgt ?
  • ltwsaMetadatagtxsanylt/wsaMetadatagt?
  • lt/wsaEndpointReferencegt

18
EPRs and SOAP
  • How does a Service return a reference to a new
    entity?
  • Does so by returning an EPR
  • E.g. An EPR with an added ReferenceParameters
    element.
  • ltsoapEnvelope ...gt
  • ltsoapBodygt
  • ltwidgetcreateWidgetResponsegt
  • ltwidgetwidgetReferencegt
  • ltwsaAddressgthttp//host/WidgetServicelt/
    wsaAddressgt
  • ltwsaReferenceParametersgt
  • ltwidgetresourceIDgt123lt/widgetresourc
    eIDgt
  • lt/wsaReferenceParametersgt
  • lt/widgetwidgetReferencegt
  • lt/widgetcreateWidgetResponsegt
  • lt/soapBodygt
  • lt/soapEnvelopegt

19
Message Addressing Properties
  • To
  • Target Web service's URI. Typically same as the
    HTTP request's URL, but it is not required to be.
  • ltwsaTogt http//host/WidgetService
    lt/wsaTogt
  • The To header should be the same value as the
    ltwsaAddressgt element when using an EPR.
  • From
  • EPR of the message's (source) sender.
  • Used in cases where an acknowledgement needs to
    be sent back to the sender (WS-ReliableMessage).
  • ltwsaFromgt
  • ltwsaAddressgt http//client/myClient
    lt/wsaAddressgt
  • lt/wsaFromgt

20
Message Addressing (cont.)
  • ReplyTo
  • Any response from the Web service should be sent
    to the ReplyTo EPR.
  • From and ReplyTo can be two distinct EPRs, the
    message's sender might not be the endpoint that
    is meant to receive the response.
  • ltwsaReplyTogt
  • ltwsaAddressgt http//client/myReceiver
    lt/wsaAddressgt
  • lt/wsaReplyTogt
  • FaultTo
  • If the response to a message is a SOAP fault, the
    fault should be sent to the EPR in the FaultTo
    header.
  • ltwsaFaultTogt
  • ltwsaAddressgt http//client/FaultCatcher
    lt/wsaAddressgt
  • lt/wsaFaultTogt

21
Message Addressing (cont. 2)
  • MessageID
  • The MessageID is a URI that uniquely identifies a
    message.
  • ltwsaMessageIDgturnuuid12-34-56-78lt/wsaM
    essageIDgt
  • Action
  • The Action header is the in-envelope version of
    the SOAP HTTP Action header. REQUIRED.
  • ltwsaActiongt http//host/widgetOp
    lt/wsaActiongt
  • RelatesTo
  • Typically used on response messages to indicate
    that it is related to a previously-known message
    and to define that relationship.
  • ltwsaRelatesTo RelationshipType"wsaResponse"gt
  • urnuuid12-34-56-78
  • lt/wsaRelatesTogt

22
Constructing SOAP Messages
  • ltwsaAddressgt value is copied into the ltwsaTogt
    header block.
  • Reference parameters.
  • Each element in ltwsaReferenceParametersgt
    (including all of that elements children,
    attributes and namespaces) is copied literally as
    header blocks in the SOAP message.
  • Each header block added as a result of the above
    rule is annotated with wsaIsReferenceParameter
    true.

23
Anonymous None URIs
  • http//www.w3.org/2005/08/addressing/anonymous
  • In all of the headers can use a special anonymous
    URI.
  • When you use this URI, you are indicating that
    there is no real endpoint available for this
    address.
  • http//www.w3.org/2005/08/addressing/none
  • Messages sent to EPRs whose address is this value
    MUST be discarded.
  • Typically used to designate that no reply or
    fault message should be sent.

24
WS-Addressing
  • WS-Addressing specification
  • requires the Address element,
  • but resourceID is specific to the WidgetService.
  • SOAP envelope of future requests to this EPR
    would take the form
  • ltsoapEnvelope...gt
  • ltsoapHeadergt
  • ltwsaTogt http//host/WidgetService
    lt/wsaTogt
  • ltwidgetresourceID wsaIsReferenceParameter
    truegt
  • 123
  • lt/widgetresourceIDgt
  • lt/soapHeadergt
  • ltsoapBodygt
  • ...
  • lt/soapBodygt
  • lt/soapEnvelopegt

25
Introduction - Contents
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

26
Web Services Resource Framework
  • Stateful Resources
  • Web service itself (front end) is stateless.
  • Maintains state in a back-end.
  • Service request identifies the specific resource.
  • WSRF is for Persistent State (stateful resource)
  • One message exchange produces a long-lived change
    in state which affects other message exchanges.

27
WSRF Architecture
  • A stateful (WS) resource
  • Is a repository for persistent state
  • Like an object in an object-oriented
    architecture.
  • Has state that comprises a set of state data
  • Each item of state data is a resource property.
  • A resource property is expressible as an XML
    document, which can in principle be retrieved and
    updated.
  • E.g. Bank Account has properties
  • Balance owed, Credit limit, Latest statement,
  • Differences from Object-Oriented Architecture
  • O-O object has just one interface, and is defined
    by the operations on it.
  • The type of a WS-resource is
  • The type of its resource properties document
  • Not the signatures of its operations

28
WSRF Architecture
  • A stateful (WS) resource
  • .
  • Has a well-defined life-cycle creation and
    destruction
  • Destruction can be explicit or scheduled
  • Can be known and acted upon by one or more Web
    Services
  • Has a globally unique identifier
  • http//www.company/CreditCardAc7
  • Can be passed between services to identify the
    resource
  • Is associated with one or more web services,
    providing interfaces for manipulating it.
  • A WS-Resource comprises its service the
    resource itself
  • http//docs.oasis-open.org/wsrf/wsrf-ws_resource-1
    .2-spec-cs-01.pdf

29
Running Example
  • Seat Booking System for a Specific Event
  • Resource Event6
  • Properties
  • Places number of seats in total
  • Held number of seats with provisional bookings
  • Booked number of seats with confirmed bookings
  • Service
  • End-point www.events.org/E6
  • Operations
  • Get returns the resource properties
  • Reserve creates a reservation resource
  • .

30
Running Example
  • Resource Reservation (i.e. a booking)
  • Properties
  • RNo reservation number Identifier, not an
    actual property
  • Firm - number of seats with confirmed booking
  • Hold number of seats with provisional booking
  • Seats list of seat numbers allocated
  • Arrival expected time of arrival
  • Service
  • End-point - www.events.org/E6res
  • Operations
  • Get retrieve the properties
  • SetArrival change/set the Arrival property
  • Change reset reservation properties (firmn
    holdm)
  • .

31
Referencing
www.events.org/E6
11
reserve(3, hold)
www.events.org/E6
places 120 held 6 booked 8
Resource qualified End-point reference
(www.events.org/E6 X3)
create
  • RNo X3

firm0 hold3 seats K1, K2, K3 arrival nil
www.events.org/E6res X3
1
Change(Firm2, Hold0)
www.events.org/E6res
  • Resource-qualified endpoint reference the
    service address and specific resource identifier
    part of WS-Addressing Standard.
  • If service has only one resource instance (11)
    dont need to include resource identifier in
    address.

32
Multiply-serviced Resource
www.events.org/E6res X3
  • RNo X3

Change(Firm2, Hold0)
firm0 hold3 seats K1, K2, K3 arrival nil
www.events.org/E6res
- Get - SetArrival - Change
www.events.org/E6admin X3
clearHolds(1)
www.events.org/E6admin
- ClearHolds - ChangeSeats - Get
  • Two end-point references
  • www.events.org/E6res
  • www.events.org/E6admin
  • Each providing a different interface to the same
    set of resource instances

33
Operations on Resource Properties
  • WS-ResourceProperties
  • http//docs.oasis-open.org/wsrf/wsrf-ws_resource_p
    roperties-1.2-spec-pr-01.pdf
  • GetResourcePropertyDocument - retrieve the values
    of all resource properties of the WS-Resource.
  • GetResourceProperty get single property.
    Mandatory.
  • GetMultipleResourceProperties get multiple
    properties.
  • QueryResourceProperties - query resource
    properties document using a query expression such
    as XPath.
  • PutResourcePropertyDocument replace all
    properties.
  • SetResourceProperties - modify the values of
    multiple resource properties Insert, Update,
    Delete.
  • InsertResourceProperties - insert new values of a
    single resource property.
  • UpdateResourceProperties - replace the existing
    values of a single resource property.
  • DeleteResourceProperties - removal of all values
    of a single resource property.

34
GetResourceProperty
ltenvenvelope .namespace definitions
..gt ltenvHeadergt ltwsaActiongt http//...wsrf.../G
etResourceProperty lt/gt ltwsaTo
envmustUnderstand1gt www.events.org/E6res
lt/gt ltmResIdgtX7lt/gt lt/gt ltenvBodygt ltwsrpGetReso
urcePropertygttnsseat lt/gt lt/gtlt/gt
ltenvenvelope .namespace definitions
..gt ltenvHeadergt ltwsaActiongt http//...wsrf.../
GetResourcePropertyResponse lt/gt ltwsaTo
envmustUnderstand1gt www. requestor
lt/gt ltmResIdgtX7lt/gt lt/gt ltenvBodygt
ltwsrplGetResourcePropertyResponsegt ltseatgtK1lt/gt
ltseatgtK2lt/gt ltseatgtK3lt/gt lt/gtlt/gt
  • Returns all elements with the specified element
    name

35
Get Multiple Resource Properties
ltenvenvelope .namespace definitions
..gt ltenvHeadergt ltwsaActiongt http//...wsrf.../G
etMultipleResourceProperties lt/gt ltwsaTo
envmustUnderstand1gt www.events.org/E6res
lt/gt ltmResIdgtX7lt/gt lt/gt ltenvBodygt ltwsrpGetMult
ipleResourcePropertiesgt ltwsrpResourcePropertygt
tnsfirm lt/gt ltwsrpResourcePropertygttnsseat
lt/gtlt/gtlt/gt
ltenvenvelope .namespace definitions
..gt ltenvHeadergt ltwsaActiongt http//...wsrf.../
GetResourcePropertyResponse lt/gt ltwsaTo
envmustUnderstand1gt www. requestor
lt/gt ltmResIdgtX7lt/gt lt/gt ltenvBodygt
ltwsrplGetResourcePropertyResponsegt
ltfirmgt3lt/gt ltseatgtK1lt/gt ltseatgtK2lt/gt ltseatgtK3lt/gt
lt/gtlt/gt
  • Must specify at least one
  • Order in response should follow order in request

36
SetResourceProperties
ltenvenvelope .namespace definitions
..gt ltenvHeadergt ltwsaActiongt http//...wsrf.../S
etResourceProperties lt/gt ltwsaTo
envmustUnderstand1gt www.events.org/E6res.lt/gt
ltmResIdgtX7lt/gt lt/gt ltenvBodygt
ltwsrpSetResourcePropertiesgt ltwsrpUpdategtlttnsho
ldgt0lt/gt lttnsfirmgt4lt/gtlt/gt ltwsrpDelete
resourcePropertytnsarrivalgt ltwsrpInsertgt
gtlttnsseatgtJ9lt/gt lt/gtlt/gtlt/gt
ltenvenvelopegt .ltenvBodygt ltwsrplGetResourceP
ropertyResponsegtlt/gtlt/gtlt/gt
  • A number of SetRequestComponents, each insert,
    update, delete
  • Must be done in given order could have several
    for same element name
  • If failure on one
  • Must not do any subsequent ones
  • Final result may reflect the partial processing
  • Final result may be the original

37
SetResourceProperties
firm0 hold3 seats K1, K2, K3 arrival 150000
firm4 hold0 seats K1, K2, K3, J9
ltwsrpUpdategtlttnsholdgt0lt/gt
lttnsfirmgt4lt/gtlt/gt ltwsrpDelete
resourcePropertytnsarrivalgt ltwsrpInsertgt
gtlttnsseatgtJ9lt/gt lt/gtlt/gtlt/gt
RNo X3
  • RNo X3
  • Faults
  • ResourceUnknownFault
  • InvalidResourcePropertiesRequestContent
  • The result would be a properties document which
    is invalid, e.g. too many seats if maxoccurrs3
  • UnableToModifyResourceProperty a read-only
    resource
  • InvalidResourcePropertyQName
  • SetResourcePropertyRequestFailed one or more
    components failed
  • to be defined
  • Fault message must indicate whether effects of
    processing non-failed components were restored

38
Introduction - Contents
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

39
WS-ResourceLifetime
  • Lifetime of a WS-Resource is defined as the
    period between its instantiation and its
    destruction.
  • Specification defines standard by which
  • WS-Resource can be destroyed.
  • Lifetime can be monitored.
  • Specification does not prescribe the means by
    which a WS-Resource is created.

40
Immediate Destruction
  • Destroy
  • lts11Envelope . . .gt
  • lts11Headergt
  • . . .
  • ltwsaActiongt
  • http//docs.oasis-open.org/wsrf/rlw-1/ImmediateRes
    ourceTermination/DestroyRequest
  • lt/wsaActiongt
  • . . .
  • lt/s11Headergt
  • lts11Bodygt
  • ltwsrf-rlDestroy/gt
  • lt/s11Bodygt
  • lt/s11Envelopegt

41
Scheduled Destruction
  • SetTerminationTime
  • RequestedTerminationTime
  • RequestedLifetimeDuration
  • Querying Current Time
  • Clock synchronization between the service
    requestor and the service provider.
  • Resource properties
  • ltwsrf-rlCurrentTimegt
  • ltwsrf-rlTerminationTimegt

42
Termination Time Expiration
  • If service requestor fails to successfully update
    the termination time of a WS-Resource before the
    termination time expires, the WS-Resource MAY be
    destroyed and therefore no longer be accessible.
  • An implementation MAY delay destruction of the
    WS-Resource at its own discretion.

43
Resource Destruction
  • Immediate Destruction
  • Send a destroy message to the resource-qualified
    endpoint
  • Thereafter any attempt to access it must result
    in a Unknown Resource fault message this is a
    synchronisation point the reply to the destroy
  • The consumer could decide to destroy the
    reservation resource cancelling the reservation
  • Scheduled Destruction
  • Can request a modification in the termination
    time
  • Extend the provisional booking for another 2 days
  • If termination time is in the past this may be
    interpreted as an immediate asynchronous destroy
  • A resourced service should have a destruction
    policy which does not depend on action by the
    consumer service
  • Consumer may disappear at any time
  • Consumer may be impolite
  • Risk of having the physical resources never
    recovered, and performance consequences of large
    number of useless resource instances.

44
Introduction - Contents
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

45
WS-Notification
  • WS BaseNotification
  • WS Topics
  • WS BrokeredNotification

46
Notification
  • WS-Notification is draft standards dealing with
    the
  • The Notification-based Interaction pattern
    Event Driven
  • Model - Subscribing to a Notification service on
    some topics
  • E.g. My boss (Subscriber) informs a
    press-cutting service (Publisher) that it is to
    notify me (Consumer) of articles on WebServices
    (Topic) appearing in the popular press (Producer)
  • Topic Space - a forest of topic Trees
  • Publisher distributes notification messages
    according to subscriptions
  • Producer generates notification messages for
    Consumers
  • Can combine Producer and publisher - same
    service generates the event and sends it to the
    subscribers otherwise Publisher is a Broker
  • Can separate them producer generates the
    notification and sends it to a broker who
    distributes it according to subscriptions
  • Subscriber creates a subscription for a consumer
    in a Publisher
  • Consumer receives notification messages (may
    combine with subscriber)

travel
webServices
USA
EU
WSRF
WSDL
47
Notification and WSRF
  • NotificationProducer Interface
  • Notify
  • Subscribe
  • GetCurrentMessage
  • PullPoint Interface
  • SubscriptionManager Interface
  • Relation to WSRF
  • A subscription is a resource
  • A resourced service can be producer/publisher
  • To notify consumers of changes in state of the
    resource
  • Value change
  • Destruction

48
Destruction Notification Pattern
www.events.org/E6
places 120 held 6 booked 8
reserve(3, firm)
(www.events.org/E6 X3)
  • RNo X3

firm3 hold0
www.events.org/E6res
www.events.org/E6res X3
Subscribe(topicResourceTermination)
EventCancelled
Notify(Event Cancelled, dateTime)
www.events.org/E6res X3
  • WS-Notification standard deals with this
  • Subscribe to the resource
  • Resource notifies subscriber

49
Destruction Notification
  • If Resource chooses to support the pattern of
    notifying interested parties when it is destroyed
  • And to use the WS-Notification standard,
  • Then must follow this standard
  • The TopicSpace ResourceLifetime
  • The Topic nameResourceTermination
  • The notification message must include the
    following element

ltwsrlTerminationNotificatongt
ltwsrlTerminationTimegt xsddateTime lt/gt
ltwsrlTerminationReasongt xsdany lt/gt?lt/gt
50
Value Change Notification
  • Can similarly subscribe to being notified of
    value changes for the resource.
  • If the resource supports the property
    value-change notification pattern, and it uses
    WS-Notification then it must follow these
    standards
  • Subscription can be a sub-set of the resource
    properties
  • E.g. wanting notification of changes in seat
    numbers
  • The notification message must contain an element
    of the form

ltwsrpResourcePropertyValueChangeNotificationgt ltw
srpOldValuegt ltseatgtK1lt/gt ltseatgtK2lt/gt
ltseatgtK3lt/gtlt/gt ltwsrpNewValuegt ltseatgtK1lt/gt
ltseatgtK2lt/gt ltseatgtJ4lt/gtlt/gtlt/gt
  • One such notification for every value change
  • OldValue if nil, there was no value if absent
    the old value was not recorded
  • NewValue can be nil
  • !!!Standard does not actually allow multiple
    components!!!

51
Introduction - Contents
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

52
WS-BaseFaults
  • Difficult when interfaces use different
    conventions for representing common information
    in fault messages.
  • So specify Web Service fault messages in a common
    way.
  • WS-BaseFaults defines an XML Schema type for a
    base fault, along with rules for how this fault
    type is used by Web Services.

53
Base Fault Type
  • Base fault has the following syntax
  • ltBaseFaultgt
  • ltTimestampgtxsddateTimelt/Timestampgt
  • ltOriginatorReferencegt
  • wsaEndpointReferenceType
  • lt/OriginatorReferencegt ?
  • ltErrorCode dialect"anyURI"gt
  • xsdanyType
  • lt/ErrorCodegt ?
  • ltDescriptiongtxsdstringlt/Descriptiongt
  • ltFaultCausegtanylt/FaultCausegt ?
  • any
  • lt/BaseFaultgt

54
Introduction - Contents
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

55
What is WSDL?
  • In XML format
  • For describing network services
  • Which operate either on
  • Documents
  • Procedure calls
  • Describes the exposed interface i.e. What the
    consumer sees of the service
  • Constitutes a contract with the client
  • Provides a specification of what is offered by
    the service provider which can be relied on by
    the service consumer.

56
What is WSDL?
  • Supports separation of concerns
  • logical structure of messages
  • binding to a specific underlying protocol
  • definition of a particular deployed service
  • To allow common definition and re-combination
  • Does not describe what the service does, how it
    does it or how you should use the service i.e.
    does not provide semantic information about the
    service.
  • Here using WSDL 1.1 a W3C submission (March
    2001).
  • WSDL 2.0 is a W3C Candidate Recommendation (6
    January 2006) many differences.

57
Structure
ltimportgt incorporate external definitions

lttypesgt logic structure of data being transmitted
?
ltschemagt


ltTYPEgt
Abstract
ltmessagegt transmittable messages

ltpartgt

ltportTypegt interface operations and assoc.
messages

ltoperationgt


ltMESSAGETYPEgt
Physical
ltbindinggt how messages will be transmitted

ltservicegt how a service is accessed


ltportgt web-address ref
58
Contents of a WSDL document
  • Types a container for data type definitions
    using some type system (such as XSD).
  • Message an abstract, typed definition of the
    data being communicated.
  • Operation an abstract description of an action
    supported by the service.
  • Port Typean abstract set of operations supported
    by one or more endpoints.
  • Binding a concrete protocol and data format
    specification for a particular port type.
  • Port a single endpoint defined as a combination
    of a binding and a network address.
  • Service a collection of related endpoints.

59
Services Structure Example
  • Company Provides two types of service (PortTypes)
  • General Service
  • Get general information
  • Open an account
  • Customers Service (being a Customer having an
    account)
  • Purchase Order
  • Invoice
  • Payment Advice
  • Get Statement
  • Both over two kinds of binding
  • RPC
  • Email

60
Services Structure Example
Message Mess1 .
Schema .
PortTypeCustomer Op PurchOrder Op Inv
Op PayAdv Op GetStmt Op Overdue
PortTypeGeneral Op GenInfo Op OpenAcc
Binding Service Location www. /WS-RPC
Binding Service Location www. /WS-RPC
Binding Service Location www. /WS-EM
Binding Service Location www. /WS-EM
www/CustRPC
www/GenRPC
www/GenEM
www/CustEM
61
Services Structure Example
Four message patterns ? IN One-way ?
OUT Notify ?? IN then OUT Request/Response
?? OUT then IN Solicit/Response
Reversed roles Provider proactive
client Consumer reactive server
Message Mess1 .
Schema .
PortTypeCustomer Op PurchOrder ?? Op Inv
? Op PayAdv ? Op GetStmt ?? Op Overdue ??
PortTypeGeneral Op GenInfo ?? Op OpenAcc ??
Binding Service Location www. /WS-RPC
Binding Service Location www. /WS-RPC
Binding Service Location www. /WS-RPC
Binding Service Location www. /WS-RPC
www/CustRPC
www/GenRPC
www/GenEM
www/GenEM
62
Request - Response
  • Most Common Pattern
  • Message to service provider reply to service
    consumer
  • A logical pattern, Binding might be either
  • An HTTP request/response
  • Two HTTP requests

ltwsdlportType nameCustomerPortgt
ltwsdloperation namePurchOrdergt
ltwsdlinput namePurchOrderRequest
messagePOinMgt ltwsdloutput
namePurchOrderResponse messageDeliveryScheduleMgt
ltwsdlfault namePurchOrderDuffAccFM
messageDuffAccFMgt .. lt/gt
ltwsdloperation gt lt/gt lt/gt
ltwsdlmessage namePOinMgt ltpart
nameaccInfo typemaccInfoTgt ltpart
nameorder elementmaccInfoTgt lt/gt
Default message name operation
request/response
63
Solicit - Response
  • Backwards two-way Pattern
  • Message from service provider to consumer reply
    from consumer to provider
  • Example overdue payment
  • Company sends this notification to the customer
    and expects a response

ltwsdlportType nameCustomerPortgt
ltwsdloperation nameOverduegt
ltwsdloutput nameOverdueSolicit
messageOverdueOutMgt ltwsdlinput
nameOverdueResponse messageExcuseInMgt
ltwsdlfault nameOverdueThreatOutFM
messageThreatOutFMgt .. lt/gt
ltwsdloperation gt lt/gt lt/gt
Opposite order!
Default message name operation
solicit/response
64
Single Message
  • Notify
  • Message from service provider to consumer, with
    no reply
  • Example Invoice
  • Send an invoice
  • One-way -- Request with no reply
  • Message from service consumer to provider
  • Example payment advice
  • Company gets notification from customer that a
    payment has been made

ltwsdlportType nameCustomerPortgt ..
ltwsdloperation nameInvgt
ltwsdloutput nameInv messageInvoiceOutMgt lt/gt
ltwsdloperation namePayAdvgt
ltwsdlinput namePayAdv messagePaymentAdviceInMgt
lt/gt lt/gt
Default message name operation
Cant have fault message
65
Binding - General
  • A Binding defines
  • For a particular PortType named as its type
  • Particular message format and communication
    protocol details
  • By extensibility point
  • A standard extension is SOAP binding
  • Can have multiple bindings for one PortType
  • Different modes in which it can be accessed

Message Mess
Schema
PortTypeGeneral Op GenInfo ?? .
PortTypeCustomer Op PurchOrder ?? .
Binding Service Location
Binding Service Location
Binding Service Location
Binding Service Location
www/CustRPC
www/GenRPC
www/GenEM
www/GenEM
66
Binding Extensions
  • There are a number of defined bindings
  • SOAP identify the SOAP standards
  • Transport
  • Over HTTP
  • .
  • Style
  • RPC
  • Document
  • Use
  • Literal
  • Encoded
  • HTTP
  • MIME
  • SOAP over HTTP, Literal is most commonly used
  • all we will deal with here

67
RPC vs Document
ltwsdlmessage namePOinMgt ltpart
nameaccInfo typegt ltpart nameorder
elementgt lt/gt
ltwsdlmessage namePOoutMgt ltpart
nameResult typegt ltpart namedelivSched
typegt lt/gt
ltwsdloperation namePurchOrdergt
ltwsdlinput namePurchOrderRequest
messagePOinMgt ltwsdloutput
namePurchOrderResponse messagePOoutMgt .. lt/gt
RPC Actual messages
ltenvBodygt ltmPurchOrderRequestgt
ltaccInfogt lt/gt ltordergt lt/gtlt/gtlt/gt
ltenvBodygt ltmPurchOrderResponsegt
ltResultgt lt/gt ltdelivSchedgt lt/gtlt/gtlt/gt
ltenvBodygt ltaccInfogt lt/gt ltordergt
lt/gtlt/gtlt/gt
Document Actual messages
ltenvBodygt ltResultgt lt/gt ltdelivSchedgt
lt/gtlt/gtlt/gt
68
Introduction - Contents
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

69
Naming
  • Naming definitions
  • Requirements on names
  • Existing naming schemes
  • Overview of the Handle syntax
  • NextGRID Experiment in WP1
  • Summary

70
Naming definitions
  • Name - attribute used to identify an entity. In
    OGSA-naming, 3 types human-oriented names,
    abstract names, and addresses.
  • Human-oriented name - a naming scheme designed
    to be easily interpreted by humans (e.g.
    human-readable and human-parsable).
  • Abstract name - persistent name suitable for
    machine processing that does not necessarily
    contain location information. Abstract names are
    bound to addresses.
  • Address - specifies the location of an entity.
  • Additionally,
  • Resolution Name resolution is the mapping of
    human names to abstract names, which are then
    mapped to some form of address.
  • E.g. A name resolution function could be
    Address Resolve(AbstractName)

71
Requirements on names
  • Names and naming schemes need to
  • Be transmitted and resolved in a new context.
  • Name all entities in the universe of discourse
    that need naming.
  • Allow autonomous allocation of names - it is
    solely the responsibility of a name issuing
    authority to determine conditions under which it
    will issue a name.
  • Allow scalable distributed name resolution.
  • Be secure and reliable there must be no
    spoofing of the naming service and no
    impersonating of names. It must support digital
    signatures, encryption and non-repudiation.
  • Be robust and trusted - data confidentiality and
    privacy need to be included.
  • Have global scope - it needs to have the same
    meaning everywhere, extensible
    internationalisable.
  • Globally unique the same name will never (to
    best probability affordable) be assigned to two
    different objects.

72
Existing naming schemes
  • Uniform Resource Identifier (URI) - a string used
    for identifying an abstract or physical resource
    in a web application.
  • Uniform Resource Locator (URL) - the address of
    an Internet resource named as a combination of a
    DNS name and local name.
  • Uniform Resource Name (URN) - a subset of URI
    that defines a namespace registration mechanism
    for persistent namespaces under URI. E.g.
    urnnextgridwp1usecasewp320050427FinancialSce
    nario
  • Universally-unique identifier (UUID) / Globally
    Unique Identifier (GUID) - 128 bits long, and
    can provide a guarantee of uniqueness. E.g.
    f81d4fae-7dec-11d0-a765-00a0c91e6bf6.
  • Life Science Identifiers (LSIDs) - persistent,
    location-independent, resource identifiers for
    uniquely naming biologically significant
    resources. E.g. URNLSIDrcsb.orgPDB1D4X22.
  • Extensible Resource Identifier (XRI) - built
    directly on top of URI IRI specifications.
    Examples
  • xri//_at_example.orgagencydepartment/!(urnISBN0-
    395-36341-1)
  • xri//_at_!9990!A58F!1C3D/!(urnISBN0-395-36341-1)

73
Existing naming schemes
  • Endpoint reference (EPR) a WS-Addressing
    construct that identifies a message destination.
    In WSRF an EPR conveys the information needed to
    identify or reference a stateful resource.
  • WS-Naming a profile on top of the WS-Addressing
    specification, where additional elements
    AbstractName and ReferenceResolver are included
    in the MetaData element of a WS-Addressing
    Endpoint Reference.
  • Resource Namespace Service (RNS) - RNS primarily
    addresses the human-readable level rather than
    the abstract level. Intended to facilitate
    namespace services for a wide variety of Grid
    applications.
  • Domain Name Service (DNS) primarily designed
    for mapping domain names into IP Addresses for
    network routing purposes.
  • X.500 / LDAP - X.500 defines a hierarchical data
    and information model with a set of protocols to
    allow global name lookup and search. LDAP
    (Lightweight Directory Access Protocol) is a
    simpler protocol aimed at being easier to
    implement.
  • Handle.net - a general-purpose global name
    service that allows secured name resolution and
    administration over networks such as the
    Internet. It manages handles, which are unique
    names for digital objects and other Internet
    resources.

74
Overview of the Handle syntax
  • Handle System architecture defines a hierarchical
    service model.
  • Single top level service, known as the Global
    Handle Registry (GHR).
  • Lower levels known as Local Handle Services
    (LHS).
  • Syntax
  • ltHandlegt ltHandle Naming Authoritygt "/"
    ltHandle Local Namegt
  • Handle.net meets all of the requirements for
    allowing scalable distributed name resolution,
    autonomous allocation of names, be secure,
    extensible, and guarantee global uniqueness.
  • Server and client software is available through
    its website, http//www.handle.net/download.html.
  • Handle Proxy Sever is http//hdl.handle.net/

75
NextGRID Experiment in WP1
  • NextGRID project Naming Authority Handle
  • 0.NA/2131
  • Also have sub-prefixes for workpackages.
  • 0.NA/2131/WP1

Handle System Proxy Server
http//hdl.handle.net/ webpage
Resolve name. (Read-only)
NextGRID BSCW Server
Naming webpage
Create, delete, modify list names.
Other NextGRID Server
Interfaces ?? Security model ??
Other NextGRID Service
Create, delete, modify list names.
76
The End
  • What is a Service-Oriented Architecture?
  • Web services stack.
  • SOAP.
  • OGSA WSRF Basic Profile 1.0
  • WS-Addressing
  • WS-ResourceProperties
  • WS-ResourceLifetime
  • WS-BaseNotification
  • WS-BaseFaults
  • WSDL 1.1
  • Naming

Questions?
Write a Comment
User Comments (0)
About PowerShow.com