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
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
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, …
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
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
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
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
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.
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
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”
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
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
13
ICT
ICT
Goal: Composite applicationsComponents: EAI, BPM, B2B, B2BiExtensions: Adapter, collaboration, analysis, reporting, development, monitoring, contracts, SOA standards, …
Integration suite services
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
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
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?
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.
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
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
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
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)
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
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
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
25
ICT
SOAP envelope
ICT
Making a SOAP function call over HTTP
Body
XMLData
HeaderHTTP Request
Body
XMLData
Header
HTTP Response
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)
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.
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>
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.
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.
31
ICT
XSD metamodel
ICT
XSD metamodel (simplified)
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
33
ICT
UML profile for XSD (3)UML representation Text representation
ICT
Web Services DescriptionLanguage (WSDL)
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
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
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
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..*
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
39
ICT
UML profile for WSDL (3)UML representation Text representation
ICT
Web Services Business Process Execution Language (WS-BPEL)
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
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.
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
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
44
ICT
BPEL example
ICT
PO : POMessage
Invoice : InvMessage
receive
reply
shippingInfo
shippingSchedule
flow
sequence sequence sequence
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
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>
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>
...
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
49
ICT
UML profile for BPEL (3)
ICT
References
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/