inf5120 – model-based system development€¦ · inf5120 – model-based system development...

50
1 ICT INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter, SINTEF ICT Based on material developed in the ATHENA (IST-507849), COMBINE (IST-1999-20839), INTEROP (IST-508011), and MODELWARE (IST-511731) research projects. ICT Outline What is an architecture? MDD framework for SOA SOA and integration Web services architecture UDDI, SOAP, XSD, WSDL, BPEL References

Upload: others

Post on 30-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

1

ICT

INF5120 – Model-based System Development

Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL

7 April 2008Brian Elvesæter, SINTEF ICT

Based on material developed in the ATHENA (IST-507849), COMBINE (IST-1999-20839),INTEROP (IST-508011), and MODELWARE (IST-511731) research projects.

ICT

Outline

What is an architecture?MDD framework for SOASOA and integrationWeb services architecture

UDDI, SOAP, XSD, WSDL, BPEL

References

Page 2: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

2

ICT

What is an architecture?

ICT

Different kinds of architectures

Business architecture

Integration architecture

Conceptual architecture

Architecture framework

Logical architecture

Knowledge architecture

Information architecture

Realisation architecture

Functional architecture

ICT architecture

Web servicesarchitecture

Enterprisearchitecture

Service-oriented

architecture

Page 3: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

3

ICT

EA – SOA – WSA

Enterprise architecture (EA) is the practice of applying a method for describing a current and/or future structure and behaviour for an organization's processes, information systems, personnel and organizational sub-units, so that they align with the organization's core goals and strategic direction.

Holistic view of the enterprise and all its important assets.

Service-oriented architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. [OASIS 2006]

Architectural style for designing (technical) systems.

Web services architecture (WSA) intends to provide a common definition for understanding Web services. A Web services architecture involves many layered and interrelated technologies. [W3C 2004]

A set of enabling Web technologies for implementing software systems.

ICT

IEEE Std 1471-2000

IEEE Std 1471-2000IEEE Recommended Practice for Architectural Description of Software-Intensive SystemsAdopted September 2000

Architecture definitionStructure(s) of a system in terms of

components, their externally visible properties, their relations,and the underlying principles

Common frame of reference for architectural descriptionsCommon terminology

architecture, architectural description, model, view, viewpoint, system, stakeholder, concern, …

Page 4: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

4

ICT

Developed using the methods established by its viewpoint, consisting of views expressing an architectural description.

The expression of a systems architecture with respect to a particular viewpoint. Addresses one or more of the concerns of the system stakeholder.

described by

identifies

SystemEnvironmentinfluences

inhabits

Mission

Stakeholder

has

fulfills

Architecturehas an

Architectural description

Concern

is important to

has identifies

ViewViewpointused to cover

is addressed to

selects organized by

conforms to

Modelestablishes methods for

participates in

consists of aggregates

participates in

Library viewpoint

has source

Rationaleprovides

1..*

1..*

1..*

1..*

1..* 1..*

1..*

1..*

1..*

1..*

0..1

1..*

1..*

1..*

1..*

The fundamental organisation of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution.

Has interest in, or concerns relative to the system.

Those interests which pertain the system’s development, operation and other aspects that are critical or otherwise important to one or more stakeholders.

ICT

Architecture of what and for whom?Virtual enterprise

Business

Software system

Software component

Software object

SOA

EA

Decomposition

Bus1Bus2 Bus3

Bus4

SW syst1Actor1 Actor2

SW syst2

Decomposition

Comp1Comp2 Comp3

Comp4

Decomposition

Decomposition

Object1Object2 Object3

Object4

Datatype1Datatype2 Operation1

Datatype3

WSA

Page 5: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

5

ICT

Why enterprise architecture?

??

??

How can Iinvolve my peoplein improving theperformance of thebusiness

How can I use best practices to ensure the success of the business?

How can I ensure that the IS

technologyhelps the work of

my people?

??

ICT

Role of enterprise architecture

Mark Lankhorst et al., "Enterprise Architecture at Work: Modelling, Communication and Analysis", Springer, 2005, ISBN: 978-3-540-24371-7.

Mission

Goals

Strategy

Actions

Vision

as is to be

enterprise architecture

domain/aspectarchitectures

culture

people

leadership

Operations… peopleprocesses ITproducts

Page 6: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

6

ICT

Describing coherence

Mark Lankhorst et al., "Enterprise Architecture at Work: Modelling, Communication and Analysis", Springer, 2005, ISBN: 978-3-540-24371-7.

Process architecture

Application architecture Technical architecture

Information architecture Product architecture

?

?

?

?

?

ICT

MDD framework for SOA

Page 7: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

7

ICT

MDD framework

UPMS

MDD FrameworkWSDL Documents BDI Teams

WSDL Analyzer

External WSDL Documents

Web servicesenactmentframework

Jack«invoke» «invoke»

• Johnson and Lyndon provide enactment of all the roles found in an SOA (consumer, provider, intermediary) and flexible communication between Web services through an intuitive user interface• The WSDL Analyzer tool detected syntactical mismatches between service descriptions and provides a basis for runtime mediation of Web service messages

Services Agents• The Web service extensions to the JACK autonomous agents platform allow SOAs to use agents for brokering, mediation and negotiation between Web services• BDI teams provide a flexible and composablealternative to traditional approaches to Web service composition

• The baseline methodology for SOA provides guidelines for developing platform independent models for SOA with UPMS.• Provides a set of modelling tools and services for mapping between UPMS and platform specific models (Web services and BDI agents)

Modelling

ICT

Mod

ellin

g ap

proa

ch fo

r SO

A

SemanticSpace

Service-OrientedArchitecture Model

Web ServiceExecution Artefacts

AgentExecution Artefacts

BPELExecution Artefacts

P2PExecution Artefacts

Web ServiceSpecification Model

Agent SpecificationModel

BPEL SpecificationModel

P2P SpecificationModel

Model Transformation

UML Profile for Web ServicesUML Profile for AgentsUML Profile for BPELUML Profile for P2P

Model Transformation

Architecture Specification

Execution Infrastructure

RegistryRepository

Service W rappers (Ent erprise A)

Evaluation & Negotiation of Availab le Fun ctionalit y

Enhanced Service Interconnection Bus

Cross-org.

Intra-org.

Existing Enterpr ise Ap plications

PublicInfrastructure Services

Service W rappers

(Enterprise X)

Service W rappers

(Enterprise Y)

InternalInfrastructure Services

ProcessExecutio n

Platform(BPEL)

Goal- orientedAd aptive Executio n

Platform(Agents)

Goal- orientedAd aptive Executio n

Platform(Agents)

ActiveModelPlatform

( AK Mii)

ActiveModelPlatform

( AK Mii)

LegendMessage-OrientedPlatform

( MQSeries)

Message-OrientedPlatform

( MQSeries)

Server- side Compon ent

Platform(.NET, J2EE)

Server- side Compon ent

Platform(.NET, J2EE)

ComposedW ebService

Platform( W ebServices)

Business Process/Agent

Active (Business) Mod el

W eb/Server Component

Middleware Pro cess/Agent

Middleware Co mponent

Ad aptive Distrib utedResource Mgt Platform

(P2P)

Deployment

UML Profile for UPMS

Ref

eren

ceO

ntol

ogy

annotated with

Model to Model Transformation

Model to TextTransformation

OWLOntology

annotatedwith

annotatedwith

EnterpriseModel

Enterprise Model• BMM• BPMN• …

Model to ModelTransformation

Business Requirements

Analysis

annotated with

Page 8: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

8

ICT

SOAMetamodel

Web ServicesMetamodel

Agent Metamodel(AgentMM)

P2PMetamodel

GridMetamodel

PIM

PSM

s

Symbols

Metamodel

Concept

RelationshipCorrespondence

Mod

el tr

ansf

orm

atio

ns CIM

“EA”Metamodel

ICT

Web services enactment framework

OutboundEndpoints

Outbound processing chains

Folders forstoring messages

Inbound processing chains

InboundEndpointsIn

com

ing

mes

sage

s

INB

OX

OU

TBO

X

User Interface

Out

goin

g m

essa

ges

It enables users to enact most of the roles typically found in an SOA.It allows sending real SOAP messages between Web services without having to write a single line of code.It features a Web-based user interface designed to closely resemble Web-based email applicationsSOAP messages and Web Services endpoints are used in place of email messages and email addressesThe user can see incoming SOAP messages in the Inbox and create outgoing SOAP messages in the Outbox that will be sent to external Web services.A powerful user-interface generator relieves the user from having to deal with XML documents by generating forms for displaying and editing any XML-based data type.

Page 9: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

9

ICT

SOA and integration

ICT

The waves of client/server technology

Base Source: Client/Server Survival Guide, 1994Robert Orfali, Dan HarkeyOS/2 Edition, VNR Computer library + AJB update

1982 1986 1990 1994 1998 1999 2000 2001 2002 2003

FileServers

Database Servers

Groupware

TP Monitors

DistributedObjects

FirstWave

SecondWave

ThirdWave

OMG CORBACOM/OLEWeb/InternettJava

J2EE/EJBCOM+Corba Comp

Server-sidecomponentsc

MDA, WebServices, .NetService-orientedArchitectureSOAP, XML

WSDL/WSFL

FourthWave

FifthWave

P2PGrid

Agents,FIPA

Page 10: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

10

ICT

Service-oriented architecture (SOA)Application architecture

Segmented business areas Collaborative business areas

SOA

y1

r

a

y1

r

a

y2

s

b

y2

s

bc

t

z

c

t

z

x x

a b cr

st x

yz

a b t zyr s y

z

c

Application architecture vs. SOA

ICT

SOA and integration

Fundamental change for integration: X <-> YPre-SOA: outside, after developmentPost-SOA: inside, integral part of development / computational model

ConsequencesHow should integration be done?Innovation and experienceCompetition, expansion, consolidation

Not understood:IDC Directions 2006 (3/2/06): SOA important but not understood or deployed as claimedGartner (2/15/06): “Globally, organizations placing minor emphasis on understanding the role of data integration in SOA and creation of data services at the foundation of their architectures”

Page 11: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

11

ICT

History of integration

1950 – 2006: Integration = develop then integrate1950s-1970s: Simple, manual integration1970s-1980s: Distributed Computing

Applications (interoperation)Databases (integrate)

1990s: Business Driven Integration – concepts, technologies, and tools – increased automation, internet-based computing

Concepts: Workflows, Processes, Web,Integration solutions blossom (diverge): ETL, EAI, BPM, …

2000: SOA Emerges2000: Web services2003: Integration solution evolution accelerates, vendor chaos ensues2005: Growth in all integration categories

ICT

Integration in SOA

2006 – 2012: Integration = dominant programming model2001-2010: Wrapping2005-2010: Re-Engineering2006-2008: Consolidation2006-2008: Research on Semantic SOA2007-2012: Emergence of SOA Platforms and Solutions2006-2012: Problem Solving Era: IT/integration relegated to low level function

Page 12: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

12

ICT

ICT

SOA platform consolidation

Data and information integration ➪ Information FabricEII: Enterprise information integrationETL: Extract, transform and load

Application integration ➪ Integration SuiteEAI: Enterprise application integrationB2Bg: Business-to-business gatewayESB: Enterprise service bus

Applications and Processes ➪ Business Process Management Suite

BPM: Business process managementB2Bi: Business-to-business integration

Enterprise workplace ➪ Interaction Platform

Page 13: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

13

ICT

ICT

Goal: Composite applicationsComponents: EAI, BPM, B2B, B2BiExtensions: Adapter, collaboration, analysis, reporting, development, monitoring, contracts, SOA standards, …

Integration suite services

Page 14: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

14

ICT

Business process management suite& interaction services

Goal: Continuous process improvementComponents: BPM

human-centric: people-intensive processesIntegration-centric: system-intensive processes

ICT

Information fabric services

Goal: Holistic view of data (information virtualisation)Components: DBMS, EII + ETL + replicationExtensions: Distributed meta-data repository, distributed data access, integrated data management

Page 15: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

15

ICT

Trends

Consolidation ➪ comprehensive platformsMerging of Human Workflow and System Orchestration/Process servicesIntegration of Business Rules EnginesSupport for Event Notification services (publish and subscribe)Integration of Model-generated workplaces and role/task-oriented user interfaces, user interaction services, portals, and multi-device interfacesExplicit use of models (Enterprise and System)Enterprise architecture + SOA

ICT

Web services architecture

Page 16: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

16

ICT

What is a Web service?

The term “Web services” is confusing.There are many things that are referred to as “Web services”.Adding to the confusion is the term “services” which is interpreted differently by different people.

ICT

WebWeb serviceservice

Web is short for World Wide Web.

Work performed or offered by a software system (possibly including human resources as well.)

Software services performed or offered on the Web, using open Internet standards and technologies.

What is a Web service?

Page 17: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

17

ICT

Definition (W3C): Web service

“A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the 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 Glossary, http://www.w3.org/TR/ws-gloss/

ICT

Characteristics of a basic Web service

Two fundamental requirements:It sends and receives data formatted as XML documents using SOAP over HTTP.It provides a WSDL service description.

Additionally, it is common for a Web service to:Be registered with a discovery agent through which it can be located, typically UDDI.

Page 18: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

18

ICT

Web services stack

Technologystack

Conceptualstack

ICT

Web services – a conceptual view

Underlying Protocols

Messaging Encoding

Business EntitiesWeb Service Interfaces

HTTP/WEB

VANsFTP

SMTP/EMAIL MQ-Series

SOAP

EDI“Binary”

Raw XML ebXML

BPEL____________________________________________________________

EGO-CentricWorkflow ProcessDescription

WSDL____________________________________________________________

(Syntactic) Web Service Interface Description

Bindings and Endpoint Descriptions

WS-CHOR____________________________________________________________

Interaction Sequencing

(Co)Constraints

XSD____________________________________________________________

XML MessageSchemaDefinition

Page 19: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

19

ICT

Web Services Architecture

BPEL

ICT

WS-* stack to-be

Simplified version of the to-be WS-* stackFamilies of related specs not expandedCompeting spec families not shown“Historical” or abandoned specs not shown

XML

SOAP WSDL

BPEL

WS-CDLWS-Security

WS-Addressing

WS-ReliableMessagingWS-Coordination

WS-Policy

WS-MetadataExchange

WS-Notification

WS-ResourceWS-Transfer

UDDI

WS-Federation

Page 20: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

20

ICT

WS-* stack as-is

Complete version of the as-is WS-* stackThe 3 widely-accepted specs today are the same as 5 years agoBPEL and WS-Security is gaining momentumOrchestration, discovery and brokering do not exist in today’s world

XML

SOAP WSDL

BPEL

WS-CDLWS-Security

WS-Addressing

WS-ReliableMessagingWS-Coordination

WS-Policy

WS-MetadataExchange

WS-Notification

WS-ResourceWS-Transfer

UDDI

WS-Federation

ICT

Model-driven Web Services –Two alternatives

Web Service (XML, Textual)

Model-to-modelPIM (UPMS models)

transformation

PSM (WS UML Profile)

Model-to-textModel-to-text

1

2

1

1. Transformation in two steps via UML profile

ATL

MOFScript MOFScript

2. Transformation in one step

Transformation choices:• fixed• config file• user is prompted

Page 21: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

21

ICT

Web service metamodels

Registry<<Metamodel>>

+ UDDI.

Endpoint Description<<Metamodel>>

+ WS-MetadataExchange.+ WS-Policy.

+ WS-PolicyAttachement.

Service Interface Description

<<Metamodel>>

+ WSDL 1.1.+ WSDL 2.0.

Reliability<<Metamodel>>

+ WS-ReliableMessaging.Coordination

<<Metamodel>>

+ WS-Coordination.

Eventing<<Metamodel>>

+ WS-BaseNotification.+ WS-BrokeredNotification.

+ WS-Eventing.+ WS-Topics.

Resource Access and Management

<<Metamodel>>

+ WS-Enumeration.+ WS-Resource.

+ WS-ResourceLifetime.+ WS-ResourceProperty.

+ WS-Transfer.

Transport<<Metamodel>>

+ HTTP.

Messaging<<Metamodel>>

+ SOAP.+ WS-Addressing.

XML<<Metamodel>>

+ XML Core / XSD.+ XML Encryption.+ XML Signature.

+ XPATH.

Security<<Metamodel>>

+ WS-Security.

eContract<<Metamodel>>

+ ATHENA eContract Extensions.

Composition<<Metamodel>>

+ ACE-GIS Composition Extensions.+ WS-BPEL.+ WS-CDL.

ICT

Universal Description, Discoveryand Integration (UDDI)

Page 22: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

22

ICT

UDDI Registry

UDDI Business Registry

3. UBR assigns a programmatically unique identifier to each service and business registration

Marketplaces, search Marketplaces, search engines, and business apps engines, and business apps query the registry to query the registry to discover services at other discover services at other companiescompanies

44..

Service TypeRegistrations

SW companies, standards SW companies, standards bodies, and programmers bodies, and programmers populate the registry withpopulate the registry withdescriptions of different types descriptions of different types of servicesof services

11..

BusinessRegistrationsBusinesses Businesses

populate populate the registry withthe registry withdescriptions of descriptions of the services they the services they supportsupport

22..

Business uses this Business uses this data to facilitate easier data to facilitate easier integration with each integration with each other over the Webother over the Web

55..

Universal Description, Discovery and Integration

ICT

Registry data

Businesses register public informationabout themselvesStandards bodies, Programmers, Businesses register information about their Service Types

Page 23: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

23

ICT

The global UDDI business registry

Business ServiceRegistrator

Application

Application

Application

ICT

UDDI – Four information types

<businessEntity>name, contacts,description, indentifiers, categories

<businessService> sService> (1..n)

namedescription, categories

<bindingTemplate>(1..n)technical information

<tModel>namedescriptionURL pointers to specifications

Page 24: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

24

ICT

Simple Object Access Protocol (SOAP)

ICT

Use of SOAP

network protocol

SOAP

application -service

requester

network protocol

SOAP

serviceprovider

request(soap request message)

respons(soap response message)

1 4 23

Page 25: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

25

ICT

SOAP envelope

ICT

Making a SOAP function call over HTTP

Body

XMLData

HeaderHTTP Request

Body

XMLData

Header

HTTP Response

Page 26: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

26

ICT

The SOAP Envelope

<SOAP:Envelope><SOAP:Header></SOAP:Header>

<SOAP:Body><m:FunctionName>

<paramName1>paramValue1</paramName1><paramName2>paramValue2</paramName2>

</m:FunctionName></SOAP:Body>

</SOAP:Envelope>

Optional

ICT

XML Schema Definition (XSD)

Page 27: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

27

ICT

XML Schema Definition (XSD)

DescriptionAn XML schema describes the structure of an XML document.XSD is a comprehensive data modelling language for XML documents.The one XML schema specification that has received the broadest industry support.The XML schema definition language is also referred to as XML Schema Definition (XSD).XML schema is an XML-based alternative to DTD. It replaces/superseedes DTD.

- W3C, "XML Schema Part 0: Primer Second Edition", World Wide Web Consortium (W3C), W3C Recommendation, 28 October 2004. http://www.w3.org/TR/xmlschema-0/

ICT

XSD: Purpose

Define the legal building blocks of an XML document:Defines elements that can appear in a document.Defines attributes that can appear in a document.Defines which elements are child elements.Defines the order of child elements.Defines the number of child elements.Defines whether an element is empty or can include text.Defines data types for elements and attributes.Defines default and fixed values for elements and attributes.

Page 28: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

28

ICT

XSD: Approaches for specification

Several different ways of specifying an XSD. XML text editorXML schema design editorUML profile for XSD

ICT

XSD: XML text editor

Can also be built using simple text editorsXML editors gives contextual support, e.g. like auto-completion, suggestions for elements, etc., as well as validation of the XML document.

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

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name=“XMLRequest">

<xs:complexType>

</xs:complexType>

</xs:element>

</xs:schema>

Page 29: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

29

ICT

XSD: XML schema design editor (1/3)

Visual language for schema designSupported by e.g. XMLSpy

ICT

XSD: XML schema design editor (2/3)

Terminal: This is the graphical representation of terminal elements. They usually contain text, numbers or another type of basic data.

Intermediate: The intermediate elements represents the structure of the document. The "+" symbol indicates us that the element can contain more elements.

Element types

Relationship types

Sequence: This schema represents that bankingInformation contains element accountNumber and bankData.

Choice: This schema represents that fileId contains fileUri or (exclusive or) fileName.

Page 30: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

30

ICT

XSD: XML schema design editor (3/3)

We have seen the types and relationship between elements, but not the times that an element can appears.

Zero or one: Tell us that the element is optional (can appear zero or one times).

Cardinality modifier

One or more: Tell us that the element appears at least one time, but can appear all times we want.

Zero or more: Tell us that the element appears zero or more times.

ICT

XSD: UML profile for XSD

UML representation of XML schema.Useful in a UML-centric development method if the modelling environment supports generation/import of XSD documents.

Page 31: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

31

ICT

XSD metamodel

ICT

XSD metamodel (simplified)

Page 32: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

32

ICT

UML profile for XSD (1)Stereotype UML

construct Tagged value Description

<<any>> Class, Property

The stereotyped class or attribute will be relaced by an 'any' or 'anyAttribute' element. The tagged values are copied into the corresponding attributes of the generated element

namespace As defined in XML Schema specification processContents As defined in XML Schema specification

• values="skip | lax | strict" • default="strict"

<<attribute>> Property Assigned to UML attribute or association end. Indicates item is to be generated as an attribute within complexType and not as an element

default As defined in XML Schema specification fixed As defined in XML Schema specification form Overrides the attributeFormDefault for this

schema • values="qualified | unqualified"

use As defined in XML Schema specification • values="prohibited | optional | required" • default="optional"

<<choice>> Class Elements marked with this stereotype represent a Choice model group conatined within a complexType definition

<<complexType>> Class ComplexType definition generated in XML Schema

memberNames Overrides the package-level default for naming complexType definitions • values="qualified | unqualified"

ICT

UML profile for XSD (2) mixed Determines whether this element may contain

mixed element and character content. • values="true | false" • default="false"

modelGroup Overrides the package-level default model group • values="all | sequence | choice"

<<element>> Property Assigned to UML attribute or association end. Indicates item is to be generated as element within complexType and not as attribute

anonymousRole The class type will be directly embedded within the complexType definition. Omit attribute or role type wrapper • values="true | false" • default="false"

anonymousType The class type will be anonymous for XML documents generated by the schema • values="true | false" • default="false"

form Overrides the elementFormDefault for this schema • values="qualified | unqualified"

position If assigned, indicates position in the sequence model group

<<facet>> Property A facet is a single defining aspect of a value space. Generally speaking, each facet characterizes a value space along independent

Page 33: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

33

ICT

UML profile for XSD (3)UML representation Text representation

ICT

Web Services DescriptionLanguage (WSDL)

Page 34: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

34

ICT

Web Services Description Language (WSDL)

PurposeWeb services need to be defined in a consistent manner so that they can be discovered by and interfaced with other services andapplications.The Web Services Description Language is a W3C specification providing the foremost language for the description of Web service definitions.

- W3C, "Web Services Description Language (WSDL) Version 2.0 Part1: Core Language", World Wide Web Consortium (W3C), W3C Working Draft, 3 August 2004. http://www.w3.org/TR/2004/WD-wsdl20-20040803/

ICT

WSDL: Description

XML-based language for describing functional properties of Web services.A service consists of a collection of message exchange end points.An end point contains an abstract description of a service interface and implementation binding.The abstract description of a service contains:

(i) definitions of messages which are consumed and generated by the service(ii) signatures of service operations.

The implementation binding provides a means to map abstract operations to concrete service implementations.

It essentially contains information about the location of a binding and the communication protocol to use (e.g., SOAP over HTTP) for exchanging messages

Page 35: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

35

ICT

WSDL: Conceptual view

Underlying Protocols

Messaging Encoding

Business EntitiesWeb Service Interfaces

HTTP/WEB

VANsFTP

SMTP/EMAIL MQ-Series

SOAP

EDI“Binary”

Raw XML ebXML

WSDL____________________________________________________________

(Syntactic) Web Service Interface Description

Bindings and Endpoint Descriptions

ICT

WSDL: Conceptual model

WS Provider

WSClient

WS Interface

Ports

Operations

Name,Abstract Message Parts SchemaMessage Exchange Pattern

Porttype

Operation

Concrete Message EncodingConcrete Messaging Protocol

(Reusable) Binding

Concrete Endpoint Address

Operations Invoked through Ports

Page 36: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

36

ICT

WSDL: Message exchange patterns

WS Provider

WSClient

Time

Request-Response

Solicit-Response

One-Way

Notification

ICT

WSDL 1.1 metamodelWSDL DocumentWSDL Component

0..10..1

Port+ Name

Operation+ Name

Part+ Name+ Type+ Element

Service

+ Name

1..*1..*

Binding

+ Name

1

1

1

1

Port Type

+ Name11 11

Message+ Name

1..*

0..1

1..*

+input

0..1 0..1+output

0..10..1+fault 0..1

0..*0..*

Import

+ NameSpace+ Location

Include

+ Location

Element+ Name+ BaseType+ MinOccurs+ MaxOccurs

Definition

+ Name+ TargetNameSpace0..*0..*

0..*0..*0..*0..*

0..*0..*

0..*0..*

Schema+ TargetNameSpace

Types

0..10..1

A collection of related endpoints

A single endpoint defined as a combination of a binding and a network address

A concrete protocol and data format specification for a particular port type

An abstract set of operations supported by one or more endpoints

An abstract, typed definition of the data being communicated

An abstract, description of an action supported by the service

A container for data type definitions

Page 37: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

37

ICT

Changes in WSDL 2.0

Removal of Operation overloadingPortType renamed to Interface

Interface inheritance

Port renamed EndpointExtended repertoire of Message Exchange Patterns.

ICT

WSDL 2.0 metamodel

Definitions Interface Fault+ name : wsdls_NCName+ target namespace : wsdls_anyURI

Interface Operation+ name : wsdls_NCName+ target namespace : wsdls_anyURI+ message exchange pattern : wsdls_anyURI+ style [0..*] : wsdls_anyURI+ safety : wsdls_boolean

Message Reference+ message label : wsdls_NCName

+ direction : wsdls_token+ message content model : wsdls_token

0..*

+message references

0..*Fault Reference

+ message label : wsdls_NCName+ direction : wsdls_token

1+fault reference1

0..*+fault references0..*

Interface+ name : wsdls_NCName+ target namespace : wsdls_anyURI0..*

+interfaces

0..*

0..*

+extended interfaces

0..*

0..*

+faults

0..*

0..*+operations 0..*Binding Fault

1+fault reference

1

Binding Operation

1

+operation reference

1

Binding Message Reference+ message label : wsdls_NCName

+ direction : wsdls_token

0..*+message references

0..*

Service+ name : wsdls_NCName+ target namespace : wsdls_anyURI

0..*+services 0..*

1+interface

1Binding

+ name : wsdls_NCName+ target namespace : wsdls_anyURI+ type : wsdls_anyURI

0..*

+bindings

0..*

0..1+interface

0..1

0..*+faults

0..*

0..*+operations

0..*

Property+ name : wsdls_anyURI+ required : wsdls_boolean

0..*+properties

0..*

0..*+properties

0..* 0..*+properties0..*0..*+properties0..*

0..*

+properties

0..*

0..*

+properties

0..*

0..*

+properties

0..*0..*

+properties

0..*

0..*+properties

0..* 0..*+properties0..*

Feature+ name : wsdls_anyURI+ required : wsdls_boolean

0..*+features

0..*

0..*

+features

0..*

0..*+features

0..* 0..*+features

0..*

0..*

+features

0..*

0..*

+features

0..*

0..*

+features

0..*0..*

+features

0..*0..*

+features

0..*0..*

+features0..*

Endpoint+ name : wsdls_NCName+ address : wsdls_anyURI1..*

+endpoints

1..*

1

+binding

1

0..*+properties0..*

0..*+features

0..*

Page 38: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

38

ICT

UML profile for WSDL (1)Stereotype UML

construct Tagged value Description

<<binding>> Class A concrete protocol and data format specification for a particular port type. A concrete protocol and data format specification for a particular port type. A <<binding>> class represents a binding component of the WSDL metamodel.

binding Binding type • default=”soap:binding”

style The style attribute indicates whether the operation is a remote procedure call (RPC) or a document-oriented operation. • default=”rpc”

transport The transport attribute specifies the type of binding to be used. • default=”http://schemas.xmlsoap.org/soap/http”

<<definition>> Class A <<definition>> class represents a definition component of the WSDL metamodel.

targetNameSpace TargetNameSpace is an URI (Uniform Resource Identifier). It is mandatory and identifies the namespace which it will belong all of the component names.

<<element>> Class An <<element>> class represents an element of the XML Schema.

baseType The base type maxOccurs The maximum number of occurrences minOccurs The minimum number of occurrences name The name of the element <<fault>> Association An <<fault>> association represents a relationship

between an operation and a message in the WSDL metamodel.

<<import>> Class An <<import>> class represents an import component of the WSDL metamodel.

ICT

UML profile for WSDL (2) location Location is an URI. It is optional and indicates the

location of some information for the namespace. namespace Namespace is an URI (Uniform Resource Identifier). It is

mandatory and indicates that the containing WSDL document can contain references to the WSDL definitions in that namespace.

<<input>> Association An <<input>> association represents a relationship between an operation and a message the WSDL metamodel.

<<message>> Class An abstract, typed definition of the data being communicated. A <<message>> class represents a message component of the WSDL metamodel.

<<operation>> Class An abstract, description of an action supported by the service. An <<operation>> class represents an operation component of the WSDL metamodel.

<<output>> Association An <<output>> association represents a relationship between an operation and a message the WSDL metamodel.

<<part>> Class A <<part>> class represents a part component of the WSDL metamodel.

type Type is a base type XSD. It is optionally and must be defined when the part component uses a base type but not when the part component uses an element of the XML Schema.

<<partElement>> Association A <<partElement>> association represents a relationship between a part component of the WSDL metamodel and

Page 39: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

39

ICT

UML profile for WSDL (3)UML representation Text representation

ICT

Web Services Business Process Execution Language (WS-BPEL)

Page 40: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

40

ICT

Web Services Business ProcessExecution Language (WS-BPEL)

DescriptionWS-BPEL (or BPEL for short) is a language based on XML that allows for controlling the process flow of a set of collaborating Web services.It can be seen as a (business) extension to the Web services paradigm. Partner interaction is based on the notion of peer-to-peer interaction between Web services.BPEL introduces concepts to express the peer-to-peer conversational relationships between services.Partner links specify the services that a business process interacts with and is introduced as a WSDL extension element.

- T. Andrews, F. Curbera, H. Dholakia, Y. Goland, J. Klein, F. Leymann, K. Liu, D. Roller, D. Smith, S. Thatte, I. Trickovic, and S. Weerawarana, "Business Process Execution Language for Web Services Version 1.1", May 2003. ftp://www6.software.ibm.com/software/developer/library/ws-bpel.pdf

ICT

BPEL language

XML notationInteraction with other Web services:

<receive>. Wait for an incoming message. Typically at the process start<invoke>. Call another Web service<reply>. Send a response message from the entire BPEL service

Control flow<sequence>. Sequential control flow<flow>. Parallel control flow<switch>. Conditional branching<while>. Loop

Data flow<variable>. Defines the data objects involved<assign>. Copy a data object from one variable to another possibly w/ data transformation

Page 41: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

41

ICT

Web service composition

BPEL is a Web service composition language.It defines how to compose other Web services so to accomplish a more complex task.A BPEL engine is capable of executing the compositeservice described by BPEL.The outcome will be a composite BPEL-defined Web service which itself can be regarded as a Web service.

ICT

BPEL simplified viewA BPEL process is a composite Web service with a WSDL description.

Page 42: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

42

ICT

BPEL roles in the Web services world

As a public specification of abstract services protocolsbusiness partners can supply precise information about semantics of a service and its message properties......without revealing internal (opaque) details of implementation

As an intermediate language for implementing business processesrelatively portableextensible for platform-specific operations possible

As a programming language for Internet-scale distributed applicationsmessagingconcurrencyerror handling...

ICT

BPEL foundations

Page 43: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

43

ICT

BPEL detailsTwo Uses

Executable process descriptionsBusiness protocol descriptions – Abstract processes

Partner linksPaired WSDL interfacesCorrelation setsBind messages to process/activity instances.Endpoint references

PartnerGrouping constraint on partner links to a single business partner.

Process ActivitiesBasic - assign, throw, terminate, wait, empty, compensatePartner interaction - receive, reply, invokeStructured - sequence, switch, while, pick, flow, scope

Process

Partner - Links

WSDL PortType

ICT

BPEL process and scope activities

PrimaryActivity

Partner Links

Partners<process/> only

Fault HandlersCompensation

Handler

Event Handlers

Install special purpose activities in scope

Compensation of completed scopes

Variables

Message variables shared by activities in <scope/>

Correlation SetsCorrelation sets for associating messages with process/activity instances

Page 44: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

44

ICT

BPEL example

ICT

PO : POMessage

Invoice : InvMessage

receive

reply

shippingInfo

shippingSchedule

flow

sequence sequence sequence

Page 45: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

45

ICT

WSDL port type XML syntax

<portType name="purchaseOrderPT"><operation name="sendPurchaseOrder">

<input message="pos:POMessage"/><output message="pos:InvMessage"/><fault name="cannotCompleteOrder"

message="pos:orderFaultType"/></operation>

</portType>

ICT

Partner link types

Page 46: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

46

ICT

Purchase order WSDL<message name="POMessage">

<part name="customerInfo" type="sns:customerInfo"/><part name="purchaseOrder" type="sns:purchaseOrder"/>

</message><message name="InvMessage">

<part name="IVC" type="sns:Invoice"/></message><message name="orderFaultType">

<part name="problemInfo" type="xsd:string"/></message><message name="shippingRequestMessage">

<part name="customerInfo" type="sns:customerInfo"/></message><message name="shippingInfoMessage">

<part name="shippingInfo" type="sns:shippingInfo"/></message><message name="scheduleMessage">

<part name="schedule" type="sns:scheduleInfo"/></message>

ICT

BPEL Process<process name="purchaseOrderProcess"

xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><partnerLinks>

<partnerLink name="purchasing"partnerLinkType="lns:purchasingLT"myRole="purchaseService"/>

<partnerLink name="invoicing"partnerLinkType="lns:invoicingLT"myRole="invoiceRequester"partnerRole="invoiceService"/>

<partnerLink name="shipping"partnerLinkType="lns:shippingLT"myRole="shippingRequester"partnerRole="shippingService"/>

<partnerLink name="scheduling"partnerLinkType="lns:schedulingLT"partnerRole="schedulingService"/>

</partnerLinks>

Page 47: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

47

ICT

BPEL process<sequence><receive partnerLink="purchasing"

portType="lns:purchaseOrderPT"operation="sendPurchaseOrder"variable="PO"/>

<flow><links>

<link name="ship-to-invoice"/><link name="ship-to-scheduling"/>

</links><sequence>

<assign><copy>

<from variable="PO" part="customerInfo"/><to variable="shippingRequest" part="customerInfo"/>

</copy></assign>

...

ICT

BPEL process<invoke partnerLink="shipping"

portType="lns:shippingPT"operation="requestShipping"inputVariable="shippingRequest"outputVariable="shippingInfo">

<source linkName="ship-to-invoice"/></invoke>

<receive partnerLink="shipping"portType="lns:shippingCallbackPT"operation="sendSchedule"variable="shippingSchedule">

<source linkName="ship-to-scheduling"/></receive>

...

Page 48: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

48

ICT

UML profile for BPEL (1)Stereotype UML

construct Description

<<assign>> Action An assign activity maps to a BPEL assign activity with each entry action mapping to a copy element. The right-hand side of each assign statement provides the details of a from element and the left-hand side provides then details of the to element.

<<catch>> Action When an invoked operation throws an exception, or a throw activity explicitly throws an exception, normal execution within the containing scope is terminated.An exception can be caught within the containing scope so that error recovery behavior can be performed. This is modelled as an <<catch>> activity.

<<compensate>> Action Compensation can be triggered by a compensate activity. We follow the BPEL semantics for compensation and when it can be triggered. In particular, a compensate activity is only permitted in the following places: • In a catch activity of the scope that immediately encloses the

scope for which compensation is to be performed. • In the compensation handler of the scope that immediately

encloses the scope for which compensation is to be performed.

<<compensationHandler>> Action Compensation handler activities can be defined to reverse the work performed by a scope, if necessary. Compensation handler activities are not executed when control reaches the parent activity. If the parent activity completes successfully then the compensation handler is installed.

<<correlation>> Class, Property A correlation set is defined by a class stereotyped by <<correlation>> containing attributes with names and types matching those of properties defined within its namespace. A process specifies that it uses a correlation set through an attribute with the type of the correlation set. The stereotype <<correlation>> can also be applied (redundantly) to the attribute to distinguish it from other attributes.

ICT

UML profile for BPEL (2)the attribute to distinguish it from other attributes.

<<data>> Class A message type has a number of parts, each of which is of a specified data type. Data types are represented by classes stereotyped as <<data>>.

<<external>> Package External packages contain elements that are defined in another model or elements that are defined directly as platform-specific artifacts (such as Web services or BPEL documents). External packages are not mapped to platform-specific artifacts. Elements that are reused can be modeled explicitly and placed in a package stereotyped with <<external>>.

<<invoke>> Action An invocation of an operation on a partner is represented as an activity with stereotype <<invoke>> with an entry action indicating the operation to be invoked and the attribute containing the input message. For two-way messages, assignment notation is used to indicate the attribute that is updated with the reply message.

<<loop>> Action A looping node is shown as an activity with the stereotype <<loop>>, which contains a decision node and an activity to be repeated, with a control link from the decision node to the activity. The guard on the control link provides the Boolean expression which determines whether the activity is executed each time round the loop.

<<messageContent>> Class A message type has a number of parts, each of which is of a specified data type. Message types are represented by classes stereotyped as <<messageContent>>

<<pick>> Action, It is often useful to group a set of receive activities and

Page 49: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

49

ICT

UML profile for BPEL (3)

ICT

References

Page 50: INF5120 – Model-based System Development€¦ · INF5120 – Model-based System Development Lecture #10: SOA, Web services architecture, XML, WSDL, BPEL 7 April 2008 Brian Elvesæter,

50

ICT

References

[ATHENA] ATHENA, "ATHENA Home Page", ATHENA IP. http://www.athena-ip.org/[DnD] DnD, "Faggruppen for applikasjonsintegrasjon – metoder og arkitektur", Den norske dataforening (DnD). http://www.dnd.no/[Elvesæter, et al. 2005] B. Elvesæter, R. K. Rolfsen, F. Lillehagen, and D. Karlsen, "Integrated Enterprise Service Architecture", in Proc. of the 12th ISPE International Conference on Concurrent Engineering (CE 2005), Fort Worth, Texas, USA, 2005, M. Sobolewski and P. Ghodous (Eds.), International Society for Productivity Enhancement, Inc., NY, USA, pp. 129-134. [INTEROP] INTEROP, "INTEROP Home Page", INTEROP NoE. http://www.interop-noe.org/[NESSI] NESSI, "Networked European Software & Services Iniative (NESSI)". http://www.nessi-europe.eu/Nessi/[OASIS 2006] OASIS, "Reference Model for Service Oriented Architecture 1.0", OASIS, OASIS Standard, 12 October 2006. http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.pdf[W3C 2004] W3C, "Web Services Architecture", World Wide Web Consortium (W3C), W3C Working Group Note, 11 February 2004. http://www.w3.org/TR/ws-arch/