1
Based on material developed in ATHENA (IST-507849), INTEROP (IST-508011) and MODELWARE (IST-511731)
Lecture #10 (F10)30 March 2006
–
Service-oriented architecture (SOA), COMET architecture
modelling method, PIM4SOABrian Elvesæter, SINTEF ICT [email protected]
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 2
Outline
• Service-oriented architecture (SOA)– SOA and Web service architectures
• COMET (service) architecture modelling method• ATHENA service-oriented interoperability (SOI)
framework– Rapid prototyping framework for SOA– Baseline modelling methodology for SOA– Platform independent model for SOA (PIM4SOA)– Modelling tools and services
• Case study– AIDIMA e-procurement scenario
• References
2
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 3
Service-Oriented Architecture (SOA)
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 4
SOA definition
• Service-oriented architecture (SOA)– “A set of components which can be invoked, and
whose interface descriptions can be published, discovered and invoked over a network.” (W3C)
• http://www.w3.org/
• Evolution of architectural styles to designing software systems– Data-orientation– Procedure-orientation– Object-orientation– Component- and message-orientation– Service-orientation
3
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 5
Service-oriented model
• Service provider: A service provider is the party that provides software applications for specific needs as services. Service providers publish, unpublish and update their services so that they are available on the Internet.
• Service requester: A requester is the party that has a need that can be fulfilled by a service available on the Internet. A requester could be a human user accessing the service through a desktop or a wireless browser; it could be an application program; or it could be another service. A requester finds the required services via a service broker and binds to services via the service provider.
• Service broker: A service broker provides a searchable repository of service descriptions where service providers publish their services and service requesters find services and obtain binding information for these services. Examples of service brokers are UDDI (Universal Description, Discovery, and Integration) and XMethods. In many cases the role of the service broker is not explicitly needed. Services can be discovered by marketing channels or by referrals.
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 6
Motivation
Enterprise• Challenges
– Business agility– Flexibility and adaptability
• Enterprise architecture frameworks+ Holistic approach+ Different views of an enterprise as
related (visual) knowledge models- Current enterprise architectures are only
blueprints
ICT• Challenges
– Inflexible and difficult to adapt– Enterprise application integration (EAI)
• Service-oriented architecture (SOA)+ Loosely coupled systems+ Horizontal integration between different
business domains+ Use case oriented service composition+/- Web services (enabling technology)- Discussion about architectural style
RequirementsEnterprises require operational enterprise architecturesICT solutions must be designed to be inherently interoperable
4
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 7
Business and technology alignment
• Business – Services can be seen as
business capabilities that support the enterprise.
– Services usually represent a business function or domain.
– Services provide the ‘units of business’ that represent value propositions within a value chain or within business processes.
– Traceability between the service as a business capability and its technical implementation.
– Services will improve delivery methods that are an integral part of the business product.
• Technology– Modular design– Compositions and granularity– Services are loosely coupled– From compile-time and
deployment-time dependencies to run-time dependencies
– Dynamic discovery and binding– Services are standardized
(“platform independent”)– Standard Internet and Web
protocols as the common “glue” to provide “syntactical interoperability”
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 8System A System DSystem CSystem B
From isolated application systemsto service-oriented systems
• “A set of components which can be invoked, and whose interface descriptions can be published and discovered.”
• “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/
SOA(architectural style)
Web service (enablingtechnology)
5
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 9
SOA and Web services
• SOA is the blueprint for IT infrastructure of the future.
• SOA extends the Web services value proposition by providing guidance on how enterprise IT infrastructures should be designed using services.
• Four step migration process.1. Implementing individual Web services: Creating
services from tasks contained in new or existing applications
2. Service-oriented integration of business functions3. Enterprise-wide IT transformation4. On-demand business transformations
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 10
New mode of collaboration
?
Privateview
Publicview
Business services
Internal services
Enterprise Service Bus
?
Enterprise A
Enterprise X Enterprise Y
Knowledge model
Service
Collaboration space
Composed business services
Shared business model
6
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 11
8 SOA challenges
1. Service identification. What is a service? What is the business functionality to be provided by a given service? What is the optimal granularity of the service?
2. Service location. Where should a service be located within the enterprise?
3. Service domain definition. How should services be grouped together into logical domains?
4. Service packaging. How is existing functionality within legacy mainframe systems to be re-engineered or wrapped into reusable services?
5. Service orchestration. How are composite services to be orchestrated? 6. Service routing. How are requests from service consumers to be routed
to the appropriate service and/or service domain? 7. Service governance. How will the enterprise exercise governance
processes to administer and maintain services? 8. Service messaging standards adoption. How will the enterprise adopt a
given standard consistently?
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 12
COMET (service) architecture modelling method
7
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 13
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 14
4+2 tier reference architecture
User ServiceTierUser ResourceService Tier LS
Legacy
BusinessServiceTier
ResourceServiceTier
Presentation Tier
User Dialog Tier Com
ponentInfrastructure
Key
Component
Inter-componentcommunication
UserS
erviceD
omain
Business Service
Dom
ain
UserInterfaceTier
LS
Resource AdapterRARA
LA
RA
LA Local Adapter
Local Storage
Database
ToolApplication
8
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 15
System boundary model
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 16
Architecture model (1/2)
• The architecture model describes the overall architecture of the system and its partitioning into components– The collaborations of components are described in terms of
component interactions, component interfaces and protocols.
• The architecture model describes two aspects of the system; the static (structure) and dynamic (behaviour).– The structural model describes the components, their
dependencies, and internal component design– the dynamic model describes the component interfaces,
interactions and protocols.
• The architecture model is a platform independent system specification.– To keep platform independence there is a need to be able to also
specify the data types in a platform independent way.
9
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 17
Architecture model (2/2)
• Component Structure and Internal Designdescribes the static aspect of the system.– It includes the overall architecture and the partitioning
into components as well as the internal design of the components.
• Interface and Interaction Specification describes the dynamic aspect of the system.– It specifies the interfaces and related protocols as well
as defining the interactions between sets of components necessary to provide the required services.
– The abstract object model provided through an interface are also described
• PIM data types contains the platform independent data-types used in the architecture model.
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 18
Component structure metamodel
10
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 19
Survey booking model structure
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 20
Architecture model template in RSM
11
Based on material developed in ATHENA (IST-507849), INTEROP (IST-508011) and MODELWARE (IST-511731)
Reference Architecture Analysis
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 22
Reference architecture analysis
• Recall the Reference Architecture with associated tiers and component types.
• Analyse the System Boundary part of the Use Case Model with regards to the Reference Architecture.
– The System Boundary correspond to the boundaries of the component of concern for the actual project, typically an Application Component.
• After the identification of this "main" component the next step is to analyze the System Boundary Model with respect to its set of use cases and actors.
• Divide the System Boundary Model into a set of subsystems.
– Each subsystem will cover a collection of the System Boundary use cases.
– The subsystems are non-exclusive, implying that a use case might be part of more than one subsystem.
– The result of this task is a functional decomposition of the main component, with reiterated versions of the use cases.
12
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 23
Subsystem grouping
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 24
Component identification
Component Infrastructure
BookingEditor BookingViewer
BookingService
ActivityInfo
SubscriptionService
SubscriptionEditor
SubscriptionInfo
13
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 25
Component structure and internal design
• Use the reference architecture to define components.• The following factors might be considered when dividing into
components:– Functionality and usage Technology. This includes for instance
network, component infrastructure, reference architecture, distribution mechanisms, operating system, data storage frameworks and standards that should be followed.
– Organization. This might be how the development team is organized or how the end users are organized.
– Distribution. This includes distribution of people, equipment and systems; both at build time (development environment) and run time (end user environment).
– Use case actors. Grouping of functionality based on the actors of the use cases.
– Physical nodes. What nodes are available, and where are the locations.– Parallel work. How to subdivide to maximize parallel work, this might be
during in build time and/or run time.– Non-functional requirements such as availability, performance,
security, scalability etc.
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 26
Application component (AC) structure
BookingEditor BookingViewer SubscriptionEditor
SubscriptionService
ISubscription
SubscriptionInfo
ISubscriptionInfo
EmailBrowser
BookingService
IBookingService
ActivityInfo
IActivityInfo
INotifyEmailServer
SMTP
POP
Survey Booking AC Subscription Management AC
Existing Email Service
14
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 27
Component model in RSM
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 28
Booking editor tool in RSM
15
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 29
Interface and interaction specification
• Goals– Capture and describe component interface and interactions.– The behaviours of the architectural elements should be
understood and described, i.e. how components collaborate.• Methods and techniques
– Inputs are the Business Model the Requirements Model (including the Reference Architecture Analysis and the work element analysis).
– In addition the Component Structure and Internal Design defines the component structure and interface dependencies and is obviously an important input to this model.
– Vice versa the Interface and Interaction Specification is key input to the Component Structure and Internal design as these models forms different viewpoints of the same part of the full model and thus, have to be fully consistent.
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 30
Booking editor tool: Component structure
16
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 31
Booking editor tool:Business resource analysis
• Identify the business resources that should be available through the tool by:– Examining the
use casesfor the tool
– Examining the screen-mockups (developed for the prototype)
Old GUI Prototype GUI
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 32
Booking editor tool:Business resource analysis result
17
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 33
Booking editor tool:User service interface specification
IU serServ ice
+O PERA T ION _A : integer=1
+createSchedule(In subRegionsList [*] string ,In vesselList [*] st ring ,In startT ime:D ate ,In endT ime:D ate):P roject
+imp ortSchedule(In schedule:Project ,In subregionList [*] string ,In vesselList [*] string ,In includeOw nA ctivit ies:boolean ,In includeComp etitorA ctivit ies:boolean):Exp ortResult
+startBrow ser(In scheduleData:Project )+login(In username:string ,In p assword:string ,In url:U RL):LoginStatus+exit ()+hasA ccessRights(In op erat ion:integer):boolean
+getUsername(In loginStatus:LoginStatus):string+isN ew (In scheduleD ata:Project):boolean+isM odified(In scheduleD ata:Project)+checkD irectory (In dir:string):st ring+getScheduleBufferN ames(): [*] string+getScheduleFileNames(): [*] st ring+getScheduleFileNames(In directory :string): [*] string+getSchedule(In name:string):Project+closeSchedule(In scheduleD ata:Project )+getScheduleD irectory (In scheduleD ata:P roject):string+getScheduleFileName(In scheduleD ata:Project):string+op enSchedule(In directory :string):Project+saveSchedule(In directory :string ,In filename:st ring ,In stealLock:boolean):boolean
+mergeSchedule(In schedule:Project ,In data:Exp ortResult ,In localID s [*] string):Project+exp ortSchedule(In schedule:Project ,In localID [*] st ring ,In force:boolean):Exp ortResult
+getCountry List (): [*] O rgU nit+getRegions(): [*] O rgU nit+getCorp orat ionCodes(): [*] OrgU nit+getComp anies(In only Comp etitors:boolean): [*] O rgU nit+getOw nComp any ():O rgUnit+getAllVessels(): [*] OrgU nit+getVessels(In comp any N ame:string): [*] OrgU nit
+createO rgU nit (In scheduleD ata:P roject ,In ty p e:string ,In name:st ring):O rgU nit+createProject(In scheduleD ata:P roject ,In ty p e:string ,In name:string):Project
+getVessels(In comp any N ames [*] string): [*] OrgU nit+createPreferences():ParameterSet+getPreferences():ParameterSet+savePreferences(In data:ParameterSet):boolean
+O PERA T ION _A : integer=1
+createSchedule(In subRegionsList [*] string ,In vesselList [*] st ring ,In startT ime:D ate ,In endT ime:D ate):P roject
+imp ortSchedule(In schedule:Project ,In subregionList [*] string ,In vesselList [*] string ,In includeOw nA ctivit ies:boolean ,In includeComp etitorA ctivit ies:boolean):Exp ortResult
+getVessels(In comp any N ame:string): [*] OrgU nit+getVessels(In comp any N ames [*] string): [*] OrgU nit
+startBrow ser(In scheduleData:Project )+login(In username:string ,In p assword:string ,In url:U RL):LoginStatus+exit ()+hasA ccessRights(In op erat ion:integer):boolean
+getUsername(In loginStatus:LoginStatus):string+isN ew (In scheduleD ata:Project):boolean+isM odified(In scheduleD ata:Project)+checkD irectory (In dir:string):st ring+getScheduleBufferN ames(): [*] string+getScheduleFileNames(): [*] st ring+getScheduleFileNames(In directory :string): [*] string+getSchedule(In name:string):Project+closeSchedule(In scheduleD ata:Project )+getScheduleD irectory (In scheduleD ata:P roject):string+getScheduleFileName(In scheduleD ata:Project):string+op enSchedule(In directory :string):Project+saveSchedule(In directory :string ,In filename:st ring ,In stealLock:boolean):boolean
+mergeSchedule(In schedule:Project ,In data:Exp ortResult ,In localID s [*] string):Project+exp ortSchedule(In schedule:Project ,In localID [*] st ring ,In force:boolean):Exp ortResult
+getCountry List (): [*] O rgU nit+getRegions(): [*] O rgU nit+getCorp orat ionCodes(): [*] OrgU nit+getComp anies(In only Comp etitors:boolean): [*] O rgU nit+getOw nComp any ():O rgUnit+getAllVessels(): [*] OrgU nit
+createO rgU nit (In scheduleD ata:P roject ,In ty p e:string ,In name:st ring):O rgU nit+createProject(In scheduleD ata:P roject ,In ty p e:string ,In name:string):Project
+createPreferences():ParameterSet+getPreferences():ParameterSet+savePreferences(In data:ParameterSet):boolean
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 34
Booking service business service: Component structure
BookingService
IBookingService
IActivityInfo
ISubscription
INotify
18
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 35
Booking service business service:Interface specification
IBookingService
+userName : string+userEMailAddress : string
+importSchedule(In subregionList [*] List(string) ,In vesselList:List(string) ,In startTime:Date ,In endTime:Date ,In existingGlobalIds:Vector ,In companyFilter:CompanyEnum):ExportResult+exportSchedule(In _scheduleProperties:Vector ,In _force:boolean):ExportResult
+userName : string+userEMailAddress : string
+importSchedule(In subregionList [*] List(string) ,In vesselList:List(string) ,In startTime:Date ,In endTime:Date ,In existingGlobalIds:Vector ,In companyFilter:CompanyEnum):ExportResult+exportSchedule(In _scheduleProperties:Vector ,In _force:boolean):ExportResult
<<CompositeData>>ExportResult
GLOBAL_ID : stringLOCAL_ID : stringLAST_UPDATED : stringscheduleProperties : VectorconflictProperties : Vector
GLOBAL_ID : stringLOCAL_ID : stringLAST_UPDATED : stringscheduleProperties : VectorconflictProperties : Vector
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 36
ATHENA Service-Oriented Interoperability (SOI)
Framework
19
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 37
Rapid prototyping framework for SOA
PIM4SOA
MDD FrameworkWSDL Documents BDI Teams
WSDL Analyzer
External WSDL Documents
Lyndon
Johnson 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
• 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 ATHENA baseline methodology for SOA provides guidelines for developing platform independent models for SOA (PIM4SOA).• Provides a set of modelling tools and services for mapping between PIM4SOA and platform specific models (Web services and BDI agents)
AgentsServices
Modelling
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
ATHENA IntegratedExecution Infrastructure
RegistryRepository
Service Wrappers (Enterprise A)
Evaluation & Negotiation of Available Functionality
Enhanced Service Interconnection Bus
Cross-org.
Intra-org.
Existing Enterprise Applications
PublicInfrastructure Services
Service Wrappers(Enterprise X)
Service Wrappers(Enterprise Y)
InternalInfrastructure Services
Process Execution Platform(BPEL)
Goal-orientedAdaptive ExecutionPlatform(Agents)
Goal-orientedAdaptive ExecutionPlatform(Agents)
ActiveModel Platform(AKMii)
ActiveModel Platform(AKMii)
Legend
Message-OrientedPlatform(MQSeries)
Message-OrientedPlatform(MQSeries)
Server-side Component Platform(.NET, J2EE)
Server-side Component Platform(.NET, J2EE)
ComposedWebServicePlatform(WebServices)
Business Process/Agent
Active (Business) Model
Web/Server Component
Middleware Process/Agent
Middleware Component
Adaptive Distributed Resource Mgt Platform (P2P)
Deployment
UML Profile for SOA• Information• Service• Process• QoSR
efer
ence
Ont
olog
y
annotated with
Model to Model Transformation
Model to TextTransformation
OWLOntology
annotatedwith
annotatedwith
EnterpriseModel
UML Profile for POP*• Process• Organisation• Product• …
Model to ModelTransformation
Business Requirements
Analysis
annotated with
ATHENA baseline methodology for SOA (overview)
20
Method chunks for SOA andWeb Service Interoperability
ReferenceOntology
annotatedwith
WSDLDocument
OWL-SDocument
BPELDocument
BDIPlan
XSDDocument
WS-?Document
ATHENA Web ServiceExecutionInfrastructure
Model Registry (A6)
Other Com
pany
Internal Service Interconnection Bus
Wrappers
Legacy Applications
Execution
Service
Service
Composition
Nehem
iah (A2)
JACK
Mediation
ARES (A3)
Evaluation
ServiceModels
PlatformModels
ContractModels
Compo-sition
Models
Negotiation
ExternalRegistry
Publishing
Interaction
...
Brokering
Brokering Tool (A5)
OWLOntology
annotatedwith
UML Profile for POP*• Process• Organisation• Product• …En
terp
rise
Mod
el
ProcessView
OrganisationView
ProductView
…View
1
1
Model to ModelTransformation
Business Requirements
Analysis
SOA
Mod
elInformation
ViewService
ViewProcess
ViewQoSView
UML Profile for SOA• Information• Service• Process• QoS
annotatedwith
XMLMessage
ServiceDescription
ProcessExecution
QoSDescriptionW
eb S
ervi
ceM
odel
UML Profile for Web Services• XML Message (XSD)• Service Description (WSDL)• Process Execution (BPEL)• QoS
Model to ModelTransformation
1
1..*
Model to TextTransformation
Web
Ser
vice
Doc
umen
ts
1..*
1..*
ATHENA baselinemethodology for SOA (detailed)
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 40
ATHENA Platform Independent Model for SOA (PIM4SOA)
21
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 41
PIM4SOA objectives
• Platform independent model for specifying service-oriented architectures– Represent SOA solutions in a platform independent
way– Integrate and define mappings to Web services,
agents, peer-to-peer (P2P) and Grid execution platforms.
– Bridging the gap between the enterprise layer and the technical layer
– Establishing relationships between layers through model-based transformations
– Two-way transformations supporting both• model-driven development (MDD); and• architecture-driven modernisation (ADM)
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 42
PIM4SOA requirements
Depending on the source of requirements• From the enterprise or business viewpoint
– Process, Organisation, Product and System (POPS) dimensions
– Mapping enterprise and business model elements to PIM4SOA
• From the platform point of view– What are the necessary PSM elements to be
represented at PIM level?– How do we identify these elements?– We need identify overlapping elements amongst
platforms
22
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 43
Metamodel and profile development
1. MetamodelScope,
concepts, style
3. TestEvaluate in
user scenarios
2. UML profileMap
metamodel concepts to
UML
4. FeedbackAdd, remove, and modify concepts
Understanding of SOA concepts and interoperability issues• Initial (interoperability) requirements• SOA concepts• Partitioning of the metamodel into structures• Architectural style for developing interoperable software systems• Document the metamodel in RSM (.uml2) and develop it in EMF (.ecore)
Define how SOA models should be specified using UML• Map metamodel concepts to
UML types• Define UML stereotypes and
tagged values• Define new visual symbols• Define model views• Define validation rules• Implement UML profile in RSM
Evaluate and test UML profile in user scenarios• Four ATHENA use cases (pilots)
Feedback• Iterative development• Modifications according
to test and evaluation
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 44
PIM4SOAMetamodel
Web ServicesMetamodel
Agent Metamodel(AgentMM)
P2PMetamodel
GridMetamodel
PIM
PSM
s
Symbols
Metamodel
Concept
RelationshipCorrespondence
PIM4SOA → platform specific models
23
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 45
Metamodel for (software) services Metamodel for (automated software) processes
Metamodel for information Metamodel for quality of service (QoS)
PIM4SOA addresses four system aspects
Services are an abstraction and an encapsulation of the functionality provided by an autonomous entity. Service architectures are composed of functions provided by a system or a set of systems to achieve a shared goal.
Web Services Architecture as proposed by W3C (W3C 2004)UML Profile for Enterprise Distributed Object Computing (OMG 2002)
Information is related to the messages or structures exchanged, processed and stored by software systems or software components.
Structural constructs for class modelling in UML 2.0 (OMG 2003)UML Profile for Enterprise Distributed Object Computing (OMG 2002)
Processes describe sequencing of work in terms of actions, control flows, information flows, interactions, protocols, etc.
Business Process Definition Metamodel(BPDM) (IBM et al. 2004)UML Profile for Enterprise Distributed Object Computing (OMG 2002)
Extra-functional qualities that can be applied to services, information and processes.
UML Profile for Modeling Quality of Service and Fault Tolerance Characteristics and Mechanisms (OMG 2004)
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 46
Metamodel for (software) services
Collaboration– Collaboration represents a pattern of
interaction between participating roles– A binary collaboration specifies a
service
CollaborationUse– The model element to represent a usage
of a service
Role– The model element to represent a usage
of a service
RoleBinding– Relates a role with a usage of a service.
RoleType– In a service oriented domain two are the
RoleTypes identified: the requester and the provider
Behaviour– An abstract class for the specification of
messages sequence within a service
ServiceProvider– Specify an entity describing and specifying
in its turn services, roles and constraints
ProviderType– The ServiceProviers can have to types:
Abstract ore Executable
EndPoint– Represents an address identifying a
service
Registry– A Registry model element is based on
index approach containing addressable services
RegistryItem– Represents a service and an end point.
24
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 47
Process elements
Process aspect
Scope– Scope is an abstract container for
individual behavioral steps
Step– Step is a single node in a process, such
as making a decision or calling an external service. The ‘everyday’ specialization of Step is Task
Process– Implements a behaviour for a service
provider, as a set of tasks and decisions (Steps) linked by control flows (Flows), optionally including detail on the exchanged messages / items.
StructuredTask– A composite task consisting of a collection
of Steps related to a specific subsection of a Process
Task– The low level ‘building blocks’ of a process
• calls to another service • require manual intervention
Task– Defines an interface for input or output
flows on a Step
Pin– Input or output for a specific item type
when a flow connects to a Step in the Process
Flow– Provide the links between Steps (tasks
etc.) in the behavior. A flow may be associated with a message type being transported.
ItemFlow– A flow between specific pins on
interactions to show precise relationships between output from one Step/Interaction and input on another
JoinSpecification– Defines convergence behaviour when two
flows provide input to a single Step/Interaction
GuardSpecification– Defines conditions (e.g. in terms of Pin
contents) under which an output flow is or is not activated
Metamodel for (automated software) processes
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 48
Item– Defines the set of elements that a role
manages.
ItemType– Represents simple types: string, integer
and boolean.
Role– is imported from the service metamodel.
PackageableElement– Extracted from the UML2.0 specification.
Association– Represents the association between two
entities. – It is used to describe complex types
Package– Extracted from the UML2.0 specification.
Document– Represents an object with a specific
structure and composed by entities.
TypeLibrary– defines a packaging structure containing
some types of the application
BusinessTypeLibraryEntity– represents a structure element of
information
AttributeNameElement– extracted from the UML2.0 specification.
Element– extracted from the UML2.0 specification.
Metamodel for information
25
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 49
NFA– Represents Non-Functional Aspects for a
specific usage of a service. • defined in Collaboration and
ServiceProvider specification• related with CollaborationUse element
All Others– Defined in the OMG standard for
specifying quality of service
Metamodel for QoS
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 50
PIM for SOAInformation Service Process QoS
CBP
XSD WSDL BPEL WS-?BRMF Jack
ARIS POP*
UML Profile for SOA
UML*
Maestro
Model 2 Model
Model 2 Text
Import / ExportModel 2 Model
Export + XML 2 Model
CBP: Collaborative Business ProcessPIM: Platform Independent ModelSOA: Service-Oriented ArchitectureXSD: XML Schema Definition
BRMF: Business Resource Management FrameworkWSDL: Web Service Description LanguageBPEL: Business Process Execution Language
Tools and services (overview)
26
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 51
PIM4SOA model (.uml2)
WS-* model (.uml2)
UML profile for Web services
Web service artefacts
EMF EcoreMetamodels/Models
RSMUML Models and Profiles
XSD
WSDL
BPEL
XSD
WSDL
BPEL
M2M
M2M
UML profilefor PIM4SOA
PIM4SOA model (. ecore)
WS-* models (.ecore)
M2MM2T
M2M
1
2
3 4
X
Eclipse/RSM modelling environment
1. Build your PIM4SOA (.uml2) model in RSM using the UML profile for PIM4SOA and transform it to a PIM4SOA (.ecore) model in EMF.
2. Transform the PIM4SOA (.ecore) model to Web service (.ecore) models.
3. Transform the Web service (.ecore) models to Web service artefacts.
4. Model transformation for UML profiles for Web services
• Eclipse Modelling Framework (EMF)
• Rational Software Modeler (RSM)
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 52
UML extensions for service modelling
Item represents the data managed by a roleParameterItem
The message concept is related with a role through an interface.
OperationMessage
Registry Item is an entity to relate a collaboration and an address
Class, PartRegistryItem
Registry represents a container to know where the services are placed
PackageRegistry
An endpoint represent the address for a servicePropertyEndPoint
A role represents a structural part in a collaborationPartRole
This element represent the service provider ClassServiceProvider
This is not a mandatory feature. It is used to connect two roles in the structural part of a class or collaboration
DependencyRoleBinding
A collaboration use represents the usage of a service. This service must to be defined previously. CollaborationUse specification must be encapsulated in a composition structure. This structure is provided by a collaboration definition or by a service provider.
CollaborationUse(sometimes called
CollaborationOccurence)
CollaborationUse
This element represents the definition of a service. Each service description is viewed as a collaboration between roles
CollaborationCollaboration
DescriptionBase ClassStereotype
27
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 53
UML extensions for process modelling
This dependency relates a “structuredTask”(source) with a collaboration use (target). This relationship contains a parameter indicating the order of containment.
DependencyColaborationUsePath
This flow relates two interactions.TagDefinition: GuardSpecification:String
ControlFlowFlow
An interaction represents a reference to a message. It also contains a reference to an input pin or an output pinTagDefinition:JoinSpecification:string
Interaction,Call behaviorAction
Interaction
A structured task is related with a collaboration use. This element contains a set of interactions
Structured Activity Node Task
A process represents an activity diagram. This activity diagram is contained by a service provider or collaboration
ActivityProcess
DescriptionBase ClassStereotype
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 54
UML extensions for information modelling
Assigned to package. Indicates packaging of a reusable type library.
Package<<TypeLibrary>>
Assigned to class. Represents elements used to describe complex types
Class<<Entity>>
Assigned to package. Indicates the business logic
Package<<BusinessTypeLibrary>>
Assigned to class or package. Indicates root and packaging of a business document information model as a reusable asset.
Class, Package<<Document>>
DescriptionBase ClassStereotype
28
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 55
RSM and UML profile for PIM4SOA
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 56
Case study: AIDIMA e-procurement scenario
29
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 57
Introduction to business scenario
• Scenario is based on the current situation of the furniture SMEs regarding the procurement issues
• Value in the furniture industry is concentrated in design, manufacturing, sales and marketing– Clear benefit from the adoption of e-commerce initiatives
• Initiatives in the field of e-procurement of raw and semi-finished materials in the coming years– Significant benefits to be achieved in terms of cost reduction and
efficiency • Distribution in the furniture industry is structured in a
complex way– Extranets and Internet-enabled supply-chain automation should
optimize the relationships• Order management and logistics with e-commerce
implementations– Beneficial to the furniture industry
R3. Order
R1. Request for QuotationR2. Quotation
R4. Order Confirmation
Interior Decoration
Project
M2. Quotation
M1. Request for Quotation
M3. OrderM4. Order Confirmation
MANUFACTURER
RETAILERPROVIDER
● Retailer-Manufacturer● 1. RFQ● 2. Quote● 3. Order
● Manufacturer-Supplier● 1. RFQ● 2. Quote● 3. Order● 4. Order Confirmation
● Retailer-Manufacturer● 4. Order Confirmation
30
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 59
Selling process: Customer-oriented scenario
Delivery
R5. Delivery NoteR6. Packing List R7. Invoice
Customer communication
R3. Order
R1. Request for QuotationR2. Quotation
R4. Order Confirmation
Interior Decoration Project
Looks for furniture
Invoice
Delivery
MANUFACTURER
RETAILER
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 60
Procurement process: Supplier-oriented scenario
M2. Quotation
M6. Invoice
M1. Request for Quotation
M3. OrderM4. Order Confirmation
MANUFACTURER
PROVIDER
M5. Delivery Note
Delivery
31
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 61
5 main problems
1. Repetitive manual process for regular bulk orders– Much of the manufactured products are generic and this involves
repeated periodic processing of similar or identical orders2. Confusion resulting from poor product descriptions
– Clients very often order the wrong products!3. Missing information (both from supplier and buyer!)
– Permasa have 3 people employed on the client site and 1 person employed on the supplier side to ensure the integrity of orders and RFQs
4. Lag time from product order to delivery could be shorter.– Shortening time from ordering to receiving raw materials from the
supplier has a direct effect on the delivery date of the finished product5. Time spent rating supplier
– Permasa conducts tri-monthly reviews of their suppliers to ensure that standards are kept
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 62
5 main expectations
1. Major reduction in false/incorrect orders2. Dramatic shortening of time from order to
delivery3. Dramatic reduction in surplus stock in
warehouse4. Ability to search new providers and apply
Permasa criteria to rate those providers5. Better integration between internal systems. (i.e.
Stock, purchasing, manufacturing, invoicing sub-systems)
32
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 63
Possible solution
Database (OS400)
Sales Mgmt. (ILE)
Manufacturing (ILE)
Purchasing (ILE)
Web Services Layer
Customer Order processing Procurement
Logistics(ILE)
Client Supplier
Design(AutoCAD)
Integration Layer
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 64
Data exchange in e-procurement
RetailerFrontEndSystem
(OMS – Order Management System)
ManufacturerFrontEndSystem
(ERP – Enterprise Resource Planning)
Send RFQ
Respond RFQQuotation
Approve QuotationSend Order
Confirm Order
Change Order
Send Goods & Delivery Note
Return Delivery Note signed
Send Invoice
Confirm Order Changed
33
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 65
Enterprise model: e-procurement process
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 66
PIM4SOA: Order process
34
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 67
PIM4SOA: Services interfaces
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 68
PIM4SOA: Delivery and invoicing collaborations
35
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 69
PIM4SOA: Obtain quotation collaboration
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 70
PIM4SOA: Furniture procurement collaboration
• Three roles – “Retailer”,– ”Manufacturer”– “Supplier”
• Two usage of collaboration – “Goods Supply”– “Materials Supply”
• Relationshipsbetween role and collaboration use – “RoleBinding”
36
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 71
PIM4SOA: Goods supply collaboration
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 72
PIM4SOA: Documents and type libraries
Documents andtype libraries
Type library
37
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 73
Model of anorder document
PIM4SOA: Order document
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 74
References
38
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 75
References (ATHENA deliverables)
[ATHENA] ATHENA, "ATHENA Public Web Site", ATHENA Integrated Project (IST-507849). http://www.athena-ip.org/
[ATHENA A5 2005] ATHENA A5, "D.A5.1: Perspectives on Service-Oriented Architecturesand there application in environments that require solutions to be planned and customisable", ATHENA IP, Deliverable D.A5.1, 2005.
[ATHENA A5 2005] ATHENA A5, "D.A5.2: Model and Specification of Service Descriptions and Usage as well as Advanced Concepts", ATHENA IP, DeliverableD.A5.2, 2005.
[ATHENA A5 2006] ATHENA A5, "D.A5.3: Architecture of SOA Platforms", ATHENA IP, Deliverable D.A5.3, 2006.
[ATHENA A5 2006] ATHENA A5, "D.A5.4: Execution Framework(s) for Planned and Customisable Service-Oriented Architectures", ATHENA IP, Deliverable D.A5.4, 2006.
[ATHENA A5 2006] ATHENA A5, "D.A5.5: Validation of Research Results", ATHENA IP, Deliverable D.A5.5, 2006.
[ATHENA A6 2005] ATHENA A6, "D.A6.1: Specification of a Basic Architecture Reference Model", ATHENA IP, Deliverable D.A6.1, 2005.
[ATHENA A6 2006] ATHENA A6, "D.A6.2: Enhanced Registry/Repository Infrastructure", ATHENA IP, Deliverable D.A6.2, 2006.
[ATHENA A6 2006] ATHENA A6, "D.A6.3: Model-driven and Adaptable Interoperability Framework", ATHENA IP, Deliverable D.A6.3, 2006.
[ATHENA A6 2006] ATHENA A6, "D.A6.4: Model-driven and Adaptable Interoperability Infrastructure", ATHENA IP, Deliverable D.A6.4, 2006.
Based on material developed in ATHENA (IST-507849 ), INTEROP (IST-508011) and MODELWARE (IST-511731) 76
References (Papers)
[Benguria, et al. 2006] G. Benguria, X. Larrucea, B. Elvesæter, T. Neple, A. Beardsmore, and M. Friess, ”A Platform Independent Model for Service Oriented Architectures”, presented at the 2nd International Conference on Interoperability of EnterpriseSoftware and Applications (I-ESA 2006), Bordeaux, France, 2006.
[Elvesæter, et al. 2005] B. Elvesæter, A. Hahn, A.-J. Berre, and T. Neple, "Towards an Interoperability Framework for Model-Driven Development of Software Systems", in Proc. of the 1st International Conference on Interoperability of Enterprise Software and Applications (INTEROP-ESA 2005), Geneva, Switzerland, 2005.
[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.
[Lillehagen, et al. 2005] F. Lillehagen, D. Karlsen, H. G. Solheim, H. D. Jørgensen, H. Smith-Meyer, B. Elvesæter, and R. K. Rolfsen, "Enterprise Architecture - from Blueprints to Design Services", 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. 121-128.
[Fischer, et al. 2006] K. Fischer, B. Elvesæter, A.-J. Berre, C. Hahn, C. Madrigal-Mora, and I. Zinnikus, ”Model-Driven Design of Interoperable Agents”, presented at the 2nd Workshop on Web Services Interoperability (WSI 2006), Bordeaux, France, 2006.
[Vayssière, et al. 2006] J. Vayssière, G. Benguria, B. Elvesæter, K. Fischer, and I. Zinnikus, "Rapid Prototyping for Service-Oriented Architectures", presented at the 2nd Workshop on Web Services Interoperability (WSI 2006), Bordeaux, France, 2006.