Upload
others
View
18
Download
0
Embed Size (px)
Citation preview
1
Telecom and Informatics 1
INF5120
”Modellbasert Systemutvikling”
”Modelbased System development”
Lecture 13: 23.04.2012 Arne-Jørgen Berre
[email protected] or [email protected]
Telecom and Informatics 2
INF5120 - Lecture plan - 2012
Part I: SSI – Service Innovation and Agile Service/Software Engineering
Part II: SSMDE – Model Driven Engineering
Part III – Model Driven Interoperability and ADM
1: 16/1: Introduction to Model Based System Development (INF5120)
2: 23/1: SIE I: Enterprise Architecture, Role modeling-Collaboration and Value Networks – Verna Allee (VNA)
3: 30/1: SIE II:: Business Process Modeling with BPMN 2.0 and Business Model Innovation - Peter Lindgren (BMI)
4: 6/2: SIE III: AT ONE –User-oriented design – with Use cases and user stories
5: 13/2: SIE IV: Service modeling with SoaML – Service modeling - Design, patterns
6: 20/2: SIE V: Precise Modeing in UML with OCL and Design with DCI - Design, patterns
7: 27/2: MDE I: Software Process Model Frameworks – Essence/SEMAT, SPEM, EPF and ISO 24744 –Shihong Huang/Brian Elvesæter/Arne J. Berre
8: 5/3: MDE II: Metamodels, Domain specific languages and UML profiles (Franck Fleurey, Brian Elvesæter)
9: 12/3: MDE III: Metamodeling, MDLE and DSL Tools (EMF, GMF, ATL, Kermeta) (Franck Fleurey)
10: 19/3: MDE IV: Model transformations - MOFScript, QVT DSLs with examples (Franck Fleurey)
11: 26/3: MDE V: Method Engineering and CORAS UML profile-: DSL example (Arne J. Berre)
2/4, 9/4: EASTER
12: 16/4: MDE VI: User Interface Modeling – WebRatio-WEBML, ESITO-Genova, OMG IFML (AJB, Knut Sagli)
13: 23/4: MDI I: SOA technologies, MDE for SOA (Accenture/NAV) (AJB, Ismar Slomic, Øystein Gisnås )
14: 30/4: MDI II: Information Models, Semantics and Model Driven Interoperability (AJB, Dumitru Roman)
15: 7/5: MDI III: Model Driven Interoperability , ADM and MDA/Migration to SOA/SaaS/Cloud
16: 13/5: Conclusion and Summary for INF5120 - Preparation of Exam
Exam: Monday June 4th, 2011, 1430-1830 (4 hours)
2
Telecom and Informatics 3
INF5120 – Oblig/Exercise plan - 2012
1: 16/1: None
2: 23/1: Guest lecture: Value Networks – Verna Allee (VNA)
3: 30/1: Guest lecture: Business Model Innovation - Peter Lindgren (BMI) – Establish groups
4: 6/2: AT ONE initial exercise – overall approach for Oblig 1 – “myServiceFellow”
5: 13/2: Group presentation
6: 20/2: Group presentation
7: 27/2: Group presentation
8: 5/3: MDE Tools – introduction – Oblig 2 intro
9: 12/3: MDE Tools II - EMF
10: 21/3: MDE Transformation tools - Delivery of Oblig 1
11: 26/3: Walk through of Oblig 1
2/4, 9/4: EASTER
12: 16/4: Discussion on Oblig 2 – part 1 and 2
13: 23/4: Discussion on Oblig 2 - part 2 and 3
14: 30/4: Discussion on Oblig 2 - part 3
14: 7/5: Oblig 2 delivery (!)
15: 7/5: Oblig 2 summary
16: 13/5: Conclusion and Summary for INF5120 - Preparation of Exam
Exam: Monday June 4th, 2011, 1430-1830 (4 hours)
ICT
Outline
Service-oriented architecture (SOA)
EA and MDD for SOA & SOA platforms
Web services architecture
UDDI, SOA, XS, WSDL, BPEL
SOA Design Patterns
MDE and SOA in practice (Accenture and NAV)
AICIT (Accenture Innovation Center for IBM Technology)
NAV – “The Pension program project”
Ismar Slomic, Øystein Gisnås
3
ICT
OMG Modeling languages and
Zachman Framework
5
Data
(What)
Function
(How)
Network
(Where)
People
(Who)
Time
(When)
Motivation
(Why)
Scope
(Contexts)
Business
(Concepts)
System
(Logic)
Technology
(Physics)
Component
(Assemblies)
List of things
important
to business
List of processes
that the business
performs
List of locations
which the business
operates
List of organizations
important to the
business
List of events/cycles
important to the
business
List of business
goals/strategies
Semantic Model
Business
Process
Model
Business
Logistics
System
Workflow
Model
Master
Schedule
Business
Plan
Logical Data ModelApplication
Architecture
Distributed
System
Architecture
Human
Interface
Architecture
Process
Structure
Business Rule
Model
Physical Data Model System DesignTechnology
Architecture
Presentation
Architecture
Control
Structure
Rule
Design
Data Definition ProgramNetwork
Architecture
Security
Architecture
Timing
Definition
Rule
Definition
Operation
(Instances)Data Function Network Organization Schedule Strategy
BMM
SBVR
VDM OSMSBVR
DTFV
BPMN
UMLIMM
(CWM)
CMPM
SoaML
ODM
UML
SoaML
BPMN
ICT 6
CIM-PIM-PSM Reference Matrix
4
ICT
Context and Goals
Interactions
Interface
Channels
Roles
Actors
Resources
Functions
Tasks
Executors
Processes
Orchestra- tion
Workflows
Information
Data
Stores and
Messages
EFA
Extra
Functional
Aspects
QoS
SLA
Monitoring,
adaptation
Inte
raction
Requirements
Function
Coord
ination
Info
rmation
Qualit
y
Design
Implementation
Infrastructure
Str
uctu
re
Role
Models UML
Class
Ontologies
Goal oriented
Use cases/stories
UI
IFML
WebML
OCL
collaboration
with
INF5120
Modeling
languages
Model Driven Architecture/MDE
SoaML BPMN
ICT 8
PIM-K
CIM-K
Ontologies Bus.Process Bus.Rules Goals NFA/Qualities Org
BPDM, SBVR,
EDOC,UPMS,
PIM4SOA, ODM
PSM-K
BPMN, POP*, ARIS,
ArchiMate,
GERAM, GRAI, Zachman,
UEML, B.Rules. ..
Technologies/Realisation-K
UML profiles and
metamodels for BPEL, WSDL, XML,
XPDL,
OWL-S, WSML, WSDL-S
Technology
Reliastion
Code
Information Process Services Rules NFA UI
Data Wflow/Comp Interfaces Rules NFA UI
XML, BPEL/XPDL, WSDL, SWRL, Security, AJAX
OWL, OWL-S/WSML WSDL-S, Induction, … QoS
Legacy and New systems/services, ERPs/ESAs
5
ICT
Service-oriented architecture
(SOA)
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 services
architecture
Enterprise
architecture
Service-
oriented
architecture
6
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
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
?
?
?
?
?
7
ICT
Basic service-oriented model
Service provider
Provides software applications for specific needs as services.
Service requester
A requester could be a human user/application program/another service accessing the service
through a desktop or a wireless browser; it could be an application program.
Service broker:
A service broker provides a searchable repository of service descriptions.
Examples of service brokers are UDDI (Universal Description, Discovery, and Integration).
ICT
OASIS Reference Model for
Service Oriented Architecture 1.0
OASIS http://www.oasis-open.org/home/index.php
Abstract framework. Understanding significant entities and relationships between them within a
service-oriented environment.
Development of consistent standards or specifications supporting service-oriented environment.
Based on unifying concepts of SOA and may be used by architects developing specific service-oriented architectures
in training and explaining SOA.
Reference model not directly tied to any standards, technologies or other concrete implementation details
Provide a common semantics that can be used unambiguously across and between different implementations.
The reference model focuses on the field of software architecture.
8
ICT
What is an SOA
Service-oriented architecture (SOA) is a paradigm for organizing
and utilizing distributed capabilities that may be under the control of
different ownership domains.
Visibility, interaction, and effect are key concepts for describing the
SOA paradigm.
Visibility refers to the capacity for those with needs and those with
capabilities to be able to see each other.
Whereas visibility introduces the possibilities for matching needs to
capabilities (and vice versa), interaction is the activity of using a
capability.
The purpose of using a capability is to realize one or more real world
effects. At its core, an interaction is “an act” as opposed to “an object”
and the result of an interaction is an effect (or a set/series of effects).
ICT
Principal concepts
Service: The means by which the
needs of a consumer are brought
together with the capabilities of a
provider.
Visibility: The capacity for those
with needs and those with
capabilities to be able to interact
with each other.
Service description: The
information needed in order to use,
or consider using, a service.
Execution context: The set of
technical and business elements
that form a path between those
with needs and those with
capabilities and that permit service
providers and consumers to
interact.
Interaction: The activity involved
in making using of a capability
offered, usually across an
ownership boundary, in order to
achieve a particular desired real-
world effect.
Real world effect: The actual
result of using a service, rather
than merely the capability offered
by a service provider.
Policy: A statement of
obligations, constraints or
other conditions of use of
an owned entity as defined
by a participant.
9
ICT
Execution context
ICT
MDD for SOA & SOA platforms
10
ICT
Mo
dellin
g a
pp
roach
fo
r S
OA
Semantic
Space
Service - Oriented Architecture Model
Web Service Execution Artefacts
Agent Execution Artefacts
BPEL Execution Artefacts
P2P Execution Artefacts
Web Service Specification Model
Agent Specification Model
BPEL Specification Model
P2P Specification Model
Model Transformation
UML Profile for Web Services
UML Profile for Agents
UML Profile for BPEL
UML Profile for P2P
Model Transformation
Architecture Specification
Execution Infrastructure
Registry Repository
Service Wrappers (Enterprise A)
Evaluation & Negotiation of Available Functionality
Enhanced Service Interconnection Bus
Cross - org.
Intra - org.
Existing Enterprise Applications
Public
Infrastructure Services
Service Wrappers
(Enterprise X)
Service Wrappers
(Enterprise Y)
Internal
Infrastructure Services
Process
Execution
Platform
(BPEL)
Goal - oriented
Adaptive
Execution
Platform
(Agents)
Goal - oriented
Adaptive
Execution
Platform
(Agents)
Active
Model
Platform
( AKMii )
Active
Model
Platform
( AKMii )
Legend
Message -
Oriented
Platform
( MQSeries )
Message -
Oriented
Platform
( MQSeries )
Server - side
Component
Platform
(.NET, J2EE)
Server - side
Component
Platform
(.NET, J2EE)
Composed
WebService
Platform
( WebServices )
Business Process/Agent
Active (Business) Model
Web/Server Component
Middleware Process/Agent
Middleware Component
Adaptive Distr ibuted
Resource Mgt Platform
(P2P)
Deployment
UML Profile for SOA
(SoaML)
Refe
ren
ce O
nto
log
y
annotated with
Model to Model Transformation
Model to Text Transformation
OWL Ontology
annotated with
annotated with
Enterprise Model
Enterprise Model
• BMM • BPMN • …
Model to Model Transformation
Business Requirements
Analysis
annotated with
ICT
SOA
Metamodel
Web Services
Metamodel
Agent Metamodel
(AgentMM)
P2P
Metamodel
Grid
Metamodel
PIM
P
SM
s
Symbols
Metamodel
Concept
Relationship
Correspondence
Mo
del tr
an
sfo
rmati
on
s
CIM
“EA”
Metamodel
11
ICT
ICT
SOA platform consolidation
Data and information integration ➪ Information Fabric
EII: Enterprise information integration
ETL: Extract, transform and load
Application integration ➪ Integration Suite
EAI: Enterprise application integration
B2Bg: Business-to-business gateway
ESB: Enterprise service bus
Applications and Processes ➪ Business Process Management Suite
BPM: Business process management
B2Bi: Business-to-business integration
Enterprise workplace ➪ Interaction Platform
12
ICT
ICT
Goal: Composite applications
Components: EAI, BPM, B2B, B2Bi
Extensions: Adapter, collaboration, analysis, reporting, development,
monitoring, contracts, SOA standards, …
Integration suite services
13
ICT
Information fabric services
Goal: Holistic view of data (information virtualisation)
Components: DBMS, EII + ETL + replication
Extensions: Distributed meta-data repository, distributed data access,
integrated data management
ICT
Business process management suite
& interaction services
Goal: Continuous process improvement
Components: BPM human-centric: people-intensive processes
Integration-centric: system-intensive processes
14
ICT
Architecture of Web-based solutions
Web
Tier
Business
Tier
Persistent
Entities
EJB Session
Beans
JSP / JSF
Pages
JavaBeans(optional)
Client
TierDynamic HTML
Pages
Application
Client
Enterprise Information
System (EIS)
TierDatabase
Database
Server
Java EE
Server
Client
Machine
BPEL
Processes
Web Services Web ServicesWeb Services
ICT
Web services architecture
15
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
Web service
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?
16
ICT
Transports
Messaging
Description
Composable
Service
Assurance
Service
Composition
HTTP HTTPS SMTP
XML SOAP WS-Addressing
XSD WSDL UDDI WS-PolicyWS-Metadata
Exchange
WS-SecurityWeb Service Reliable
Messaging (WS-RM)WS-Transactions
WS-BPEL
Web services stack
Technology
stack
Conceptual
stack
ICT
Web services – a conceptual view
Underlying Protocols
Messaging Encoding
Business Entities
Web Service Interfaces
HTTP/WEB
VANs FTP
SMTP/EMAIL MQ-Series
SOAP
EDI “Binary”
Raw XML ebXML
BPEL
___________
___________
___________
___________
___________
_____
EGO-Centric
Workflow
Process
Description
WSDL
___________
___________
___________
___________
___________
_____
(Syntactic)
Web Service
Interface
Description
Bindings and
Endpoint
Descriptions
WS-CHOR
___________
___________
___________
___________
___________
_____
Interaction
Sequencing
(Co)Constraints
XSD
___________
___________
___________
___________
___________
_____
XML Message
Schema
Definition
17
ICT
Web Services Architecture
BPEL
ICT
Model-driven Web Services –
Two alternatives
Web Service (XML, Textual)
Model-to-model PIM
(SoaML models)
transformation
PSM
(WS UML Profile)
Model-to-text Model-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
18
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.
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, Discovery
and Integration (UDDI)
19
ICT
UDDI Registry
UDDI Business Registry
3. UBR assigns a programmatically unique
identifier to each service and business
registration
Marketplaces, search
engines, and business apps
query the registry to
discover services at other
companies
4.
Service Type
Registrations
SW companies, standards
bodies, and programmers
populate the registry with
descriptions of different types
of services
1.
Business
Registrations Businesses
populate
the registry with
descriptions of
the services they
support
2.
Business uses this
data to facilitate easier
integration with each
other over the Web
5.
Universal Description, Discovery and Integration
ICT
Simple Object Access Protocol
(SOAP) and RESTful Services
20
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
ICT
SOAP envelope
21
ICT
XML Schema Definition (XSD)
ICT
XML Schema Definition (XSD)
Description
An 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/
22
ICT
XSD: XML text editor
Can also be built using simple text editors
XML 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>
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.
23
ICT
XSD metamodel
ICT
XSD metamodel (simplified)
24
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"
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
ICT
UML profile for XSD (2)
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"
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
25
ICT
UML profile for XSD (3) UML representation Text representation
ICT
Web Services Description
Language (WSDL)
26
ICT
Web Services Description Language
(WSDL)
Purpose
Web services need to be defined in a consistent manner so that
they can be discovered by and interfaced with other services and
applications.
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 Part
1: 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
27
ICT
WSDL: Conceptual view
Underlying Protocols
Messaging Encoding
Business Entities
Web Service Interfaces
HTTP/WEB
VANs FTP
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
WS
Client
WS Interface
Ports
Operations
Name,
Abstract Message Parts Schema
Message Exchange Pattern
Porttype
Operation
Concrete Message Encoding
Concrete Messaging Protocol
(Reusable) Binding
Concrete Endpoint Address
Operations Invoked through Ports
28
ICT
WSDL: Message exchange patterns
WS
Provider
WS
Client Time
Request-Response
Solicit-Response
One-Way
Notification
ICT
WSDL 1.1 metamodel
WSDL Document WSDL Component
0..1 0..1
Port
+ Name
Operation
+ Name
Part
+ Name
+ Type
+ Element
Service
+ Name
1..* 1..*
Binding
+ Name
1
1
1
1
Port Type
+ Name
1 1 1 1
Message
+ Name
1..*
0..1
1..*
+input
0..1 0..1
+output
0..1 0..1 +fault 0..1
0..* 0..*
Import
+ NameSpace
+ Location
Include
+ Location
Element
+ Name
+ BaseType
+ MinOccurs
+ MaxOccurs
Definition
+ Name
+ TargetNameSpace 0..* 0..*
0..* 0..* 0..* 0..*
0..* 0..*
0..* 0..*
Schema
+ TargetNameSpace Types
0..1 0..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
29
ICT
Changes in WSDL 2.0
Removal of Operation overloading
PortType renamed to Interface
Interface inheritance
Port renamed Endpoint
Extended 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 reference 1
0..* +fault references 0..*
Interface
+ name : wsdls_NCName
+ target namespace : wsdls_anyURI 0..*
+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
1 Binding
+ 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..*
+properties 0..*
0..* +properties 0..*
0..*
+properties
0..*
0..*
+properties
0..*
0..*
+properties
0..*
0..*
+properties
0..*
0..*
+properties
0..* 0..* +properties
0..*
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..*
+features
0..*
Endpoint
+ name : wsdls_NCName
+ address : wsdls_anyURI 1..*
+endpoints
1..*
1
+binding
1
0..* +properties 0..*
0..* +features
0..*
30
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.
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
ICT
UML profile for WSDL (2)
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.
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
31
ICT
UML profile for WSDL (3)
UML representation Text representation
ICT
Web Services Business Process
Execution Language (WS-BPEL)
- Direct relationship to BPMN
32
ICT
Web Services Business Process
Execution Language (WS-BPEL)
Description
WS-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 notation
Interaction 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
33
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 composite
service described by BPEL.
The outcome will be a composite BPEL-defined Web
service which itself can be regarded as a Web service.
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>
34
ICT
Partner link types
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>
35
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>
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>
...
36
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>
...
ICT
SensorWeb
Web based access and modeling of Sensors
Relate to Oblig2 and sensor models ?
See www.opengis.org
37
ICT
References
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/
38
ICT
Principles of Service Design
Design principles
Standardised Service Contracts
Service Loose Coupling
Service Abstraction
Service Reusability
Service Autonomy
Service Statelessness
Service Discoverability
Service Composability
ICT
39
ICT
Service-Orientation and Object-
Orientation (T. Erl)
Service-Orientation and Object-Orientation Part I:
A Comparison of Goals and Concepts
http://www.soamag.com/I15/0208-4.asp
Service-Orientation and Object-Orientation Part II:
A Comparison of Design Principles
http://www.soamag.com/I16/0308-4.asp
ICT
40
ICT
SOA Design Patterns (Erl)
http://www.soapatterns.org
ICT
Vendor-agnostic context pattern