Web services and grid services
This presentation is the property of its rightful owner.
Sponsored Links
1 / 47

Web Services and Grid Services PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on
  • Presentation posted in: General

Web Services and Grid Services. Mike Jackson – EPCC Some slides in this presentation are graciously provided by the OGSA-DAI Project. Purpose. XML and Web Services Grids OGSA OGSI. XML and Web Services. Web Services (1/2). Network-enabled application Exposes a well-defined interface

Download Presentation

Web Services and Grid Services

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Web services and grid services

Web Services and Grid Services

Mike Jackson – EPCC

Some slides in this presentation are graciously provided by the OGSA-DAI Project


Purpose

Purpose

  • XML and Web Services

  • Grids

  • OGSA

  • OGSI


Web services and grid services

XML and Web Services


Web services 1 2

Web Services (1/2)

  • Network-enabled application

  • Exposes a well-defined interface

  • Often Stateless:

    • Born

    • Services Request

    • Dies

  • State maintenance dependant on service hosting environment

  • Accessible using common Internet protocols:

    • HTTP

  • XML-oriented technology:

    • Describe services and their interfaces:

      • WSDL – Web Services Description Language

    • Support messaging:

      • SOAP – Simple Object Access Protocol


Web services 2 2

Web Services (2/2)

SOAP Response

SOAP Request

WSDL

Database

Web Service

Client

Application Code

Application Code


Web services and grid services

XML

  • eXtensible Markup Language

  • Standard format for structured documents and data:

    • Supports exchange over heterogeneous platforms

  • Human-readable:

    • Less efficient than proprietary formats

  • Address the limitations of HTML:

    • Application-specific syntax and semantics


An example of xml

An Example of XML

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- A list of attendees on some course -->

<attendees>

<attendee id=“123”>

<name first-name=“Mike” last-name=“Jackson”/>

<institution>EPCC</institution>

</attendee>

<attendee id=“456”>

<name first-name=“Daragh” last-name=“Byrne”/>

<institution>EPCC</institution>

</attendee>

</attendees>


Xml namespaces 1 3

XML Namespaces (1/3)

<film-types>

<film-type>RomCom</film-type>

<film-type>Spaghetti Western</film-type>

</film-types>

<film-types>

<film-type>amphipathic</film-type>

<film-type>hydrophobic</film-type>

</film-types>


Xml namespaces 2 3

XML Namespaces (2/3)

  • Telephone numbers:

    • Within Edinburgh University: 50-5141

    • Within Edinburgh:650-5141

    • Within the UK:0131-650-5141

  • XML namespaces:

    <xmlns:bio=“http://bio.stuff/membrane” bio:film-types>

    • Namespace prefix:

      • Declaration: xmlns:

      • Maps to URI reference: bio

    • URI reference:

      • Global URI: “http://bio.stuff/membrane”

    • Local part: film-types

    • Qualified name: bio:film-types


Xml namespaces 3 3

XML Namespaces (3/3)

<xmlns:cinema=“http://world.cinema/flix” cinema:film-types>

<cinema:film-type>RomCom</cinema:film-type>

<cinema:film-type>Spaghetti Western</cinema:film-type>

</cinema:film-types>

<xmlns:bio=“http://bio.stuff/membrane” bio:film-types>

<bio:film-type>amphipathic</bio:film-type>

<bio:film-type>hydrophobic</bio:film-type>

</bio:film-types>


Xml schema

XML Schema

  • Specify the structure of XML documents:

    • Names of elements and attributes

    • Content of elements

    • Values of attributes

    • Namespaces of elements

  • XML Schema are XML documents

  • Facilitates validation of XML documents:

    • Check conformance of document to XML Schema:

      • Are elements nested legally?

      • Do elements have legal attributes?

      • Do attributes have legal values?

  • More information from:

    • http://www.w3.org/XML/Schema


Soap 1 2

SOAP (1/2)

  • Simple Object Access Protocol:

    • a stateless,

    • one-way,

    • message exchange paradigm

  • Framework to convey application-specific information in an extensible manner

  • Specifies rules for:

    • SOAP envelopes – container for:

      • Header: originator and destination and application-specific information e.g. payment or authentication details about the SOAP message

      • Body: message data

    • Data encoding format

    • Conventions for message encoding:

      • Document-style

      • RPC-style


Soap example 1 2

SOAP Example (1/2)

<soapenv:Envelope>

<soapenv:Header>

<wsse:Security

soapenv:actor=“http://some.security.intermediary"

soapenv:mustUnderstand=“1">

. . .

</wsse:Security>

</soapenv:Header>

<soapenv:Body>

<!–- An RPC call to a sayHelloWorld() operation -->

<sayHelloWorld/>

</soapenv:Body>

</soapenv:Envelope>


Soap example 2 2

SOAP Example (2/2)

<soapenv:Envelope>

<soapenv:Header>

<wsse:Security

soapenv:actor=“http://some.security.intermediary"

soapenv:mustUnderstand=“1">

. . .

</wsse:Security>

</soapenv:Header>

<soapenv:Body>

<sayHelloWorldResponse>

<!–- The result of the sayHelloWorld() operation -->

<helloMessage>Hello World!</helloMessage>

</sayHelloWorldResponse>

</soapenv:Body>

</soapenv:Envelope>


Soap 2 2

SOAP (2/2)

  • Silent on:

    • Semantics of any application-specific data it conveys

    • Routing of SOAP messages

    • Reliable data transfer

    • Firewall traversal

  • Can operate over various transports:

    • HTTP

    • FTP

    • SMTP

  • Fully describes the required actions to be taken by a SOAP node on receiving a SOAP message

  • More information from

    • http://www.w3.org/2000/xp/Group/


Wsdl 1 2

WSDL (1/2)

  • Web Services Description Language – 1.1

  • XML description of Web Services:

    • Define input and outputmessages

    • Define operations in terms of input and output messages

    • Aggregate operations into portTypes:

      • Application-specific collections of related operations.

    • Combine portTypes with a concrete network protocol and message format to form a binding:

      • How to communicate to a service’s portType.

    • Combine a binding and a network address to define a concretenetwork endpoint or port:

      • Where to find a service’s portType.

    • Aggregate ports into an abstract network endpoint or service


Wsdl 2 2

WSDL (2/2)

  • WSDL is extensible:

    • Allows description of endpoints and their messages

    • Regardless of what message formats or network protocols are used to communicate

  • Typically used in conjunction with following protocols and message formats:

    • SOAP 1.1

    • HTTP GET/POST

    • MIME

  • More information from:

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


Wsdl example 1 3

WSDL Example (1/3)

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="HelloWorld">

<types>

<xsd:schema>

<!-- For example <helloMessage>HelloWorld!</helloMessage> -->

<xsd:complexType name="HelloMessageType">

<xsd:sequence>

<xsd:element name="helloMessage“ type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<!-- For example <sayHelloWorld/> -->

<xsd:element name="sayHelloWorld">

<xsd:complexType/>

</xsd:element>

<!-- For example <sayHelloWorldResponse>

<helloMessage>HelloWorld!</helloMessage>

</sayHelloWorldResponse/> -->

<xsd:element name="sayHelloWorldResponse"

type="HelloMessageType"/>

</xsd:schema>

</types>


Wsdl example 2 3

WSDL Example (2/3)

<message name="HelloInputMessage">

<part name="parameters“

element="sayHelloWorld"/>

</message>

<message name="HelloOutputMessage">

<part name="parameters"

element="sayHelloWorldResponse"/>

</message>

<portType name="HelloWorldPortType">

<operation name="sayHelloWorld">

<input message="HelloInputMessage"/>

<output message="HelloOutputMessage"/>

</operation>

</portType>


Wsdl example 3 3

WSDL Example (3/3)

<binding name="HelloWorldSOAPBinding"

type="helloworld:HelloWorldPortType">

<soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="sayHelloWorld">

<soap:operation soapAction="http://www.tutorial.org/myservices/helloworld#sayHelloWorld"/>

<input><soap:body

namespace="http://www.tutorial.org/myservices/helloworld"

use="literal"/></input>

<output><soap:body

namespace="http://www.tutorial.org/myservices/helloworld"

use="literal"/></output>

</operation>

</binding>

</definitions>


Web services summary

Web Services – Summary

  • XML:

    • eXtensible Markup Language

    • Namespaces

    • XML Schema

  • SOAP:

    • Simple Object Access Protocol

    • Stateless, one-way message exchange paradigm

  • WSDL:

    • Web Services Description Language

    • Abstract interface description

    • Concrete service location and communication information.

  • Web Services:

    • Stateless

    • XML-oriented technology


Web services and grid services

Grids


Motivating grids

Motivating Grids

  • Difficult problems – “Grand Challenges” – require:

    • Collaboration

    • Sharing:

      • Ideas

      • Efforts

      • Resources – computational, data, storage

  • Emerging Open Grid Infrastructures will:

    • Support global collaboration

    • Change the way that we work


What are grids

What are Grids?

  • Grids are about dynamic Virtual Organisations (VOs) sharing data and computing resources

  • Virtual Organisations:

    “Dynamic groups of individuals, institutions, and resources, which have a well-defined set of sharing and Quality-of-Service (QoS) rules associated with them”

    P. Z. Kunszt, The Open Grid Services Architecture: A Summary and Evaluation, CERN, April 2002.


Virtual organisations

Virtual Organisations

  • VOs include:

    • Resource users

    • Resource providers:

      • Including application, data and storage service providers

  • Resources include:

    • Data resources

    • Servers

    • Other programs

  • Resource Usage Policies:

    • Grid end-users can utilise resources according to:

      • The policies (rules) of the VO of which they are a member of

      • The policies of the resource providers

  • Dynamic VOs:

    • VOs should be able to change in scope and extension, transparently from the end users, or clients


Examples of vos

Examples of VOs

  • Scientific Collaborations:

    • e.g. Astronomers, Geneticists, Physicists, Medics:

      • Need to share and integrate data

      • Need to share computing power for data analysis

  • Engineering Collaborations:

    • e.g. Aircraft design and construction consortia:

      • Need to share computing power for simulations for design

      • Need to share and integrate analysis data and results

  • Business:

    • e.g. Business-to-Business (B-to-B):

      • Need to share and integrate data

      • Need to share computing power for e.g. data mining, market simulations


Open grids

Open Grids

  • Open Grids enable:

    • Coordinated and coherent collaboration

    • Resource sharing

  • Service component-based Grids enable heterogeneous environments to be integrated and reconciled to accomplish complex tasks

  • Service components support heterogeneity:

    • Interface- and message-passing-based

    • Hide platform and implementation


Web services and grid services

OGSA


What is ogsa

What is OGSA?

  • Open Grid Services Architecture:

    • Open Grid Architecture + Web Services = Grid Services

  • Grid Services:

    • Dynamic

    • Transient

    • Stateful – have a finite lifetime

    • Defined by a well-defined set of interfaces and behaviours

  • More information from:

    • http://forge.gridforge.org


Ogsa characteristics

OGSA Characteristics

  • Supports:

    • Resource access

    • Resources sharing

    • Service integration

    • Uniform access to services

  • Specifies protocols and standards that:

    • Are:

      • Implementation-independent

      • Platform-independent

    • Support:

      • Communication

      • Data access, transfer, translation and transformation

      • Access and security

      • Auditing and logging


Best of both worlds

Best of Both Worlds

Open Grid Services Architecture

Share

resource

Manage

resource

Access

resource

Continuous

Availability

Resources

on demand

Applications on

demand

Global

Accessibility

Secure and

universal access

Business

integration

Vast resource

scalability

Grid Protocols

Web Services


Ogsa structure

OGSA Structure

System Management Services

Grid Services

Open Grid Services Infrastructure

Web Services


Web services and grid services

OGSI


What is ogsi

What is OGSI?

  • Open Grid Services Infrastructure

  • Minimum set of standards and behaviours with which Grid Services must comply

  • Exploits existing Web Services properties:

    • Interface abstraction via WSDL portTypes

    • Web Service protocols

    • Hosting platform-independent

  • Extends these to provide for:

    • State management

    • Event notification

    • Service location and access

    • Lifecycle management

    • Service data

  • More information from:

    • http://forge.gridforge.org


Ogs i porttypes 1 2

OGSI PortTypes (1/2)

  • GridService:

    • findServiceData

    • setServiceData

    • requestTerminationBefore

    • requestTerminationAfter

    • destroy

  • Factory:

    • createService

  • HandleResolver:

    • findByHandle

  • ServiceGroup

  • ServiceGroupRegistration:

    • add

    • remove


Ogsi porttypes 2 2

OGSI PortTypes (2/2)

  • ServiceGroupEntry

  • NotificationSource:

    • subscribe

  • NotificationSubscription

  • NotificationSink:

    • deliverNotification


Grid service identification

Grid Service Identification

  • Grid Services are identified by means of a

    • Grid Service Handle (GSH), which is used to find the

    • Grid Service Reference (GSR) that is unique to an instance of a Grid Service.

    • A HandleResolver service is used to provide a GSR given a GSH

  • GSH:

    • Type of URI (or URL)

    • Constant for the lifetime of the Grid Service.

  • GSR:

    • Representation of the service interfaces:

      • Can be a WSDL document

    • Can change if the service evolves


Anatomy of a grid service 1 4

Anatomy of a Grid Service (1/4)

GridService portType

(required)

Other PortTypes

(Optional)

  • Service Data Access

  • Lifetime Management

  • Service Creation

  • Service Grouping

  • Notification

  • Handle Resolution

  • Other functions e.g:

    • Workflow

    • Auditing

    • Resource Management

Grid Service

Handle

Hosting Environment


Anatomy of a grid service 2 4

Anatomy of a Grid Service (2/4)

GridService portType

(required)

Other PortTypes

(Optional)

  • Service Data Access

  • Lifetime Management

  • Service Creation

  • Service Grouping

  • Notification

  • Handle Resolution

  • Other functions e.g:

    • Workflow

    • Auditing

    • Resource Management

ServiceDataSet

Handle

Hosting Environment


Anatomy of a grid service 3 4

Anatomy of a Grid Service (3/4)

GridService portType

(required)

Other PortTypes

(Optional)

  • Service Data Access

  • Lifetime Management

  • Service Creation

  • Service Grouping

  • Notification

  • Handle Resolution

  • Other functions e.g:

    • Workflow

    • Auditing

    • Resource Management

Handle

Hosting Environment

Service

Data

Service

Data

Service

Data


Anatomy of a grid service 4 4

Anatomy of a Grid Service (4/4)

PortTypeImpl.cs

PortTypeImpl.cs

PortTypeImpl.cs

PortTypeImpl.cs

PortType

PortType

PortType

PortType

SDE

SDE

SDE

SDE

SDE

SDE

SDE

SDE

SDE

SDE

SDE

SDE

Service

Data

Service

Data

Service

Data

Service

Data

Grid Service


Wsdl and gwsdl

WSDL and GWSDL

  • WSDL 1.1:

    • Lack of portType inheritance:

      • A portType cannot be defined in terms of an aggregation or extension of one or more other portTypes

    • Lack of an open content model:

      • Needed for specifying service data

  • GWSDL:

    • portType inheritance

    • Open content model

  • GWSDL => WSDL 1.1:

    • Flattening the inheritance hierarchy

    • The “most-derived” portType

  • WSDL 2.0:

    • Currently a draft standard

    • Replace GWSDL


Gwsdl and flattening

GWSDL and Flattening

GridService

setServiceData() findServiceData()

requestTerminationBefore() requestTerminationAfter()

destroy()

MyService

setServiceData() findServiceData()

requestTerminationBefore() requestTerminationAfter()

destroy()

add()

remove()

myOperation()

ServiceGroup

ServiceGroupRegistration

add()remove()

MyService

myOperation()


Ogs i implementation s

OGSI Implementations

  • Microsoft .NET:

    • EPCC: MS.NETGridOGSI Release 1.2

    • University of Virginia: OGSI.NET Release 2.1

  • Java:

    • Globus: Globus Toolkit 3 Release 1.0

    • Unicore

  • Perl:

    • University of Manchester: OGSI::Lite

  • Python:

    • Lawrence Berkley National Labs: pyGlobus


Web services and grid services

WSRF

  • Web Services Resource Framework

  • Access and manipulate state via Web Services:

    • WS-Resource – a stateful resource

  • Replaces OGSI:

    • WS-Addressing for resource identification

    • WS Resource Framework rendered in terms of six new specifications:

      • WS-ResourceProperties

      • WS-ResourceLifetime

      • WS-Notification

      • WS-RenewableReferences

      • WS-ServiceGroup

      • WS-BaseFault

  • More information from:

    • http://www.globus.org/wsrf

    • Especially: “From Open Grid Services Infrastructure to WS-Resource Framework: Refactoring”


Ogsi wsrf

OGSI => WSRF

  • GWSDL=> WSDL1.1

    + portType flattening pending WSDL 2.0

  • GSH=> WS-Addressing Endpoint Reference

    + WS-RenewableReferences

  • GSR=> WS-Addressing Endpoint Reference

  • Service data=> Resource properties

  • GridService portType=> WS-ResourceProperties

    + WS-ResourceLifetime

  • Factory portType=> Factory pattern

  • ServiceGroup portTypes=> WS-ServiceGroups

  • Notification portTypes=> WS-Notification

  • HandleResolver portType => WS-RenewableReferences

  • Operation Faults=> WS-BaseFault


Grid services summary

Grid Services – Summary

  • Grids:

    • Virtual Organisations

    • Sharing, access and management of distributed, heterogeneous resources

  • Open Grid Services Architecture:

    • Grid Services = Web Services + Open Grid Architecture

    • State + lifetime

  • Open Grid Services Infrastructure:

    • Building blocks of OGSA service

    • Service lifetime management, state access, registration, notification, creation, access

    • Service identification – GSH + GSR

    • Service description – GWSDL

  • Web Services Resource Framework


  • Login