Professional Documents
Culture Documents
Agenda
Service Oriented Architecture Web Service Grid Service Open Grid Service Architecture(OGSA) Web Service Resource Framework
Service
What Is It?
An autonomous (business) system that accepts one or more requests and returns one or more responses via a set of published and well-defined interfaces
Service - An example
Restaurant provides various kinds of food (services) to its customers according to their requests. Shopping cart
A business-driven modeling strategy that defines the business functionality in terms of loosely coupled autonomous business systems (or services) that exchange information based on messages.
Service - Tenets(1)
A well-defined and published public interface Should be easy to consume Provide fewer public interfaces Dont expose implementation details
Autonomous
Schema = Data Contract = Behavior Services do not pass classes and types; they pass schemas and contracts
Structural compatibility is based on the contract (WSDL and optionally BPEL4WS) and the schema (XSD) WS-Policy provides for additional, automated analysis of the service-assurance compatibility between services
Service-Oriented Architecture (SOA) is a mechanism that enables organizations to facilitate communication between the systems running on multiple platforms SOA is a collection of well-defined services, each individual service can be modified independently of other services to help respond to the ever-evolving market conditions of a business
SOA - Actors
Service Provider
Service Registry
Allows service consumers to locate service providers that meet required criteria
Service Provider
Service Consumer
SOA - Benefits
Business Benefits Focus on Business Domain solutions Leverage Existing Infrastructure Agility Technical Benefits Loose Coupling Autonomous Service Location Transparency Late Binding
SOA - An Example
Storage Service
Storing and retrieving data Reserving space, monitoring status of storage service Querying and defining the policies that govern who is allowed access the service. Provide operations for requesting the transfer of data from one storage service to another Managing and monitoring such transfers Querying and defining policies that govern how difference transfer requests are prioritized.
Troubleshooting Service
The key difference is SOA provides a message-based approach based on open standards SOA is platform independent
End-to-end security
Web Service
A web service is a programmable application component accessible via standard web protocols. A Web service is a software system designed to support interoperable machine-to-machine interaction over a network Just one kind of implementation of a service
Finding services
Need to describe their interfaces in detail so that a client knows how to consume the functionality provided by the service. WSDL: Web Services Description Language.
Users need to know what web services exist and where to find them so the clients can bind to them and use the functionality. UDDI : Universal Discovery, Description, and Integration repositories
Lightweight communication protocol based on XML Used to exchange structured and typed information between systems Allows to invoke methods on remote machines without knowing specific details of the platform or software running on those machines
Extensible. Works across a number of standardized underlying network protocols. Independent of the underlying language or platform or programming model.
Method Signature int doubleAnInteger ( int numberToDouble ); Request <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:doubleAnInteger xmlns:ns1="urn:MySoapServices"> <param1 xsi:type="xsd:int">123</param1> </ns1:doubleAnInteger> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Response <?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsi=http://www.w3.org/1999/XMLSchema-instance xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:doubleAnIntegerResponse xmlns:ns1="urn:MySoapServices" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:int">246</return> </ns1:doubleAnIntegerResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Application
Web Service
The entity that a client connects to using a specific protocol and data format when consuming a service
Agenda
Service Oriented Architecture Web Service Grid Service Open Grid Service Architecture(OGSA) Web Service Resource Framework
Agenda
Service Oriented Architecture Web Service Grid Service Open Grid Service Architecture (OGSA) Web Service Resource Framework
OGSA Open Grid Service Architecture Grid Service Builds on Web Service Improves Web Service
How services are created? How long they live? How to manage faults? How to manage long-lived state?
Grid service descriptions and instances Service state, metadata, and introspection Naming and name resolution
Two-level naming
OSGA
OGSI
Description: gWSDL
Standard WSDL has no formalized concept of service state OGSI addresses these issues by defining WSDL extensions that allow for the explicit declaration of publicly visible state associated with an interface (called service data), and by defining standard operations for accessing (via both queries and subscriptions) that state Accessing Service Data
Dynamic & Stateful Distinguish one dynamically created service instance from another Naming Allows Grid Services to be upgraded during their lifetime (change protocol, add new protocol,) Two level Naming Grid Service Handle (GHS) Mapped by Handle Resolution Service No protocol, no protocol binding, no network address Invariant Grid Service Reference (GSR) Use to send requests Change over services lifetime
A client requests a lifetime modification by directing keep-alive messages The client sends periodic keep-alive requests to indicate its continued interest in the service What happens next?
The transfer completes, and the file transfer service instance terminates. The client fails, and its failure to send further keepalive messages leads to the destruction of the transfer service instance once its lifetime expires. The client decides that it is no longer interested in the transfer and, to conserve resources, performs an explicit destroy of the transfer service instance.
Define common approach for conveying fault information from operations. Comprises a standard XSD type, ogsi:FaultType
HandleResolver interface
For interoperability
Tracking, discovering, and performing replication of data resources. Describing and tracking how data are created Regenerate data on demand
OGSA
Negotiating between resource consumers and resource providers for dynamic resource allocation
Agenda
Service Oriented Architecture Web Service Grid Service Open Grid Service Architecture (OGSA) Web Service Resource Framework
WSRF
WSRF
New standard that replaces OGSI WS Resource = Web Service + stateful resource which is used in the execution of message exchanges
WSRF
Physical entities (e.g.. processor, communication link, disk drive) or Logical construct (e.g.. agreement, running task, subscription) Real or virual Static (long-lived, pre-existing) or Dynamic (created and destroyed as needed)
Unique (for the Web Service) - Has a distinguishable identity and lifetime Stateful - Maintains a specific state that can be materialized using XML May be accessed through one or more Web Services
WSRF
A set of six standards, of which only three have been released: WS-ResourceProperties:
WS-ResourceLifetime
how a Web Service interface relates to a WS-Resource lifetime management of WS Resources event subscription and notification
WS-Notification
Unreleased: WS-RenewableReference
WS-ServiceGroup
retrieving updates of invalid endpoint references heterogeneous collections of Web Services faults / error messages
WS-BaseFaults
Criticisms of OGSI from the Web services community: Too much stuff in one spec => functionality partitioned into a family of composable specifications
Does not work well with existing Web services tooling => WSRF tones down the usage of XML Schema
Too object oriented: OGSI v1.0 models a stateful resource as a Web service that encapsulates the resources state, with the identity and lifecycle of the service and resource state coupled => WSRF makes an explicit distinction between the service and the stateful entities acted upon by that service
Defines the type and values of a WSResources state that can be viewed and modified Resource properties document acts as a view on the actual state Described using XML Schema
QueryResourceProperties
WSRF An Example
WSRF An Example
<SOAP-ENV:Header> ...
<rpimpl:CartId wsa:IsReferenceParameter="true">S1</rpimpl:CartId>
WSRF An Example
<SOAP-ENV:Body> <wsrf-rp:GetResourcePropertyDocumentResponse> <ssc:SimpleShoppingCart> <ssc:Item> <ssc:ProductCode>Cat-A2004-87968556</ssc:ProductCode> <ssc:Description>Garden String - 150m</ssc:Description> <ssc:Quantity>1</ssc:Quantity> <ssc:ProductPrice>1.59</ssc:ProductPrice> </ssc:Item> </ssc:SimpleShoppingCart> </wsrf-rp:GetResourcePropertyDocumentResponse> </SOAP-ENV:Body>
WS-ResourceLifetime
WS-Notification
References
http://docs.oasis-open.org/wsrf/wsrf-primer-1.2-primer-cd02.pdf http://wikipedia.org/ http://gdp.globus.org/gt3-tutorial/ http://gdp.globus.org/gt4-tutorial/ WS-ResourceProperties: http://docs.oasis-open.org/wsrf/wsrfws_resource_properties-1.2-spec-os.pdf http://www.ibm.com/developerworks/library/specification/w s-resource/ Representational State Transfer:
http://en.wikipedia.org/wiki/Representational_State_Transfer