UML4EDOC The Joint UML for EDOC Submission Submitters: CBOP, Data Access Technologies, DSTC, EDS,...
Transcript of UML4EDOC The Joint UML for EDOC Submission Submitters: CBOP, Data Access Technologies, DSTC, EDS,...
UML4EDOCUML4EDOC
The Joint UML for EDOC Submission
Submitters:
CBOP, Data Access Technologies, DSTC, EDS, Fujitsu, IBM, Iona Technologies, OPEN-IT, Sun Microsystems, Unisys
Supporting companies:
Hitachi, Netaccount, SINTEF
…
ad/2001-06-09
UML4EDOCUML4EDOC
AgendaAgenda
Introduction to UML for EDOC– Vision and Rationale– Submission structure, RFP Requirements
Platform Independent Modeling - ECA CCA Profile Entities Profile Events Profile
Business Process Profile Relationships Profile Patterns
Platform Specific Modeling– EJB, FCM, MOF – Technology Mappings
Summary, RFP Requirements - Discussion
UML4EDOCUML4EDOC
EDOC VisionEDOC Vision
Simplify the development of component based Enterprise (EDOC) systems by means of a modeling framework, based on UML 1.4 and conforming to the OMG Model Driven Architecture.
Provide a platform independent, recursive collaboration based modeling approach that can be used at different levels of granularity and different degrees of coupling, for both business and systems modeling.
UML4EDOCUML4EDOC
EDOC Key RFP RequirementsEDOC Key RFP Requirements
Modelling framework for enterprise distributed object computing systems:– Based on UML 1.4 – System operation directly relatable to business
processes– Models driven by business requirements – Mappable to different platforms (incl. CORBA )
Specifically, support modelling of:– Business entities– Business processes– Business rules– Business events.
UML4EDOCUML4EDOC
Submission StructureSubmission Structure
Chapter 1 - Response to RFP
Chapter 2 - EDOC Rationale & Use
Chapter 3 - ECA
Chapter 4 Patterns
Chapter 5 - Technology Specific Models
Chapter 6 - UML Profile for MOF
Part II - Examples & Technology Mappings
Section 1 - ECA Rationale
Section 2 - CCA
Section 3 - Entities Section 4 - Events
Section 5 - Processes
Section 6 - RelationshipsSection 1 - EJB and Java Metamodels
Section 2 - FCM
UML4EDOCUML4EDOC
Using RM-ODP viewpointsUsing RM-ODP viewpoints
Enterprise viewpoint(CCA, Business Processes, Entities, Relationships, Events)
Information viewpoint (Entities, Events, Relationships) (CCA, Entities, Events)
Computational viewpoint(CCA, Entities, Events)
Computational viewpoint
Technology viewpoint(UML for J2EE/EJB/JMS, CORBA 3/CCM, COM, SOAP, ebXML)
Technology viewpoint(UML for J2EE/EJB/JMS, CORBA 3/CCM, COM, SOAP, ebXML)
Part I:Technology Specific ModelsPart I:Technology Specific Models
Part II: ECA totechnology mappings
Part II:
mappings
Part I: ECA
(Technology abstraction: FCM)
Engineering viewpoint(Technology abstraction: FCM)
Engineering viewpoint
Part I: Patterns - applied to all viewpoints
UML4EDOCUML4EDOC
Four general categories of ProcessComponent
Four general categories of ProcessComponent
E-business Components
Application Components
Distributed Components
Program Components
UML4EDOCUML4EDOC
The Internet Computing Model The Internet Computing Model
Collaboration of independent entities
Document exchange over internet technologies
– Large grain interactions, not “method calls”
No required infrastructure * Long lived business processes Business transactions
– Not technical transactions
BusinessParty
BusinessParty
Portals
UML4EDOCUML4EDOC
“Pattern” for the MDA“Pattern” for the MDA
ECAEntities Process
Events
Platform Specific ModelsPlatform Specific Models
RelationshipsCCA
Integration -viewpoints
etc
FCMFCM
ebXMLebXML
Patterns
Platform Independent ModelsPlatform Independent ModelsPlatform Independent ModelsTechnology mappings
EJBEJBCORBACORBA COMCOMMOMMOM
UML4EDOCUML4EDOC
Platform Independent Modeling
The Enterprise Collaboration Architecture
UML4EDOCUML4EDOC
Component Collaboration Architecture
Collaborative process component specification for ECA
UML4EDOCUML4EDOC
The Marketplace ExampleThe Marketplace Example
Mechanics Are UsBuyer
Acme IndustriesSeller
GetItThere FreightShipper
Order
Conformation
Ship Req
Shipped
Shipped
PhysicalDelivery
Delivered
Status
ProcessComplete
UML4EDOCUML4EDOC
The Seller’s DetailThe Seller’s Detail
Order
Conformation
Shipped
Ship Req
Shipped
Delivered
Order Processing
Shipping
Receivables
Event
UML4EDOCUML4EDOC
The Buyer’s DetailThe Buyer’s Detail
Order
Conformation
Shipped
Ship Req
Shipped
Delivered
Supplier Evaluation
Order
Receive Goods
Process DataFlow
Process DataFlow
UML4EDOCUML4EDOC
Specification of CCA
Structure +
Composition +
Choreography
UML4EDOCUML4EDOC
Parts of a CCA SpecificationParts of a CCA Specification
Structure of process components and protocols– Process components, ports, protocols and documents
Class Diagram or CCA Notation
Composition of process components– How components are used to specify components
Collaboration diagram or CCA Notation
Choreography – Ordering of flows and protocols in and between process
components Activity Diagram
UML4EDOCUML4EDOC
Process ComponentProcess Component
A CCA Process Component defines a configurable behavioral unit that can be composed in a particular way
They can be logical or physical, concrete or abstract– They can represent anything from a business partner in a B2B
exchange to a fine-grain computation Process Components can be used to compose other
process components, recursively CCA is intended to be specialized, as a core architecture
for process, entities and events at multiple levels of granularity
CCA is compatible with the ebXML Business Process Specification Schema which specifies B2B collaborations
Extends real-time capsule model
Buyer
BuyDelivery
UML4EDOCUML4EDOC
The Community ProcessThe Community Process
Identify a “community process”, the roles and interactions Using CCA Notation
Buyer Seller
BuySell CommunityProcess
Buy Sell
Shipper
ShipDelivery
ShipDelivery
UML4EDOCUML4EDOC
Seller
Sell
Buyer
Buy
Component structureComponent structure
Buys(from Buyer)
<<ProtocolPort>>
Buyer<<ProcessComponent>> <<initiates>> Sells
(from Seller)
<<ProtocolPort>>
Seller<<ProcessComponent>><<responds>>
BuySellProtocol<<Protocol>>
Component structure Defines the “outside”Contract of a component
UML4EDOCUML4EDOC
ProcessComponent
- granularity : GranularityKind- isPersistent : Boolean = false- primitiveKind : String = ""- primitiveSpec : String
Port
- name : String- isSynchronous : Boolean- isTransactional : Boolean- direction : DirectionType- postCondition : Status
<<boundary>>
PortOwner
n
1
+portsn
+owner 1
Ports
Protocol
ProtocolPort<<boundary>>
1
+uses
1
ProtocolType
FlowPort<<boundary>>
Meta Model for StructureMeta Model for Structure
Key Point:Process Components have portsThat either initiate or respondTo a protocol or flow
Sells(from Seller)
<<ProtocolPort>>Seller
(from BuySell)
<<ProcessComponent>>
OrderBT(from BuySell)
<<Protocol>>
<<responds>>
Seller
Sell
UML4EDOCUML4EDOC
OrderData<<CompositeData>>
OrderConfirmationData<<CompositeData>>
Order(from OrderBT)
<<FlowPort>>OrderConfirmation
(from OrderBT)
<<FlowPort>>
OrderBT<<Protocol>><<responds>>
<<initiates>>
OrderDeniedData<<CompositeData>>OrderDenied
(from OrderBT)
<<FlowPort>>
<<initiates>>
Protocol ExampleProtocol Example
Specification of a protocol
Protocol OrderBT
OrderDenied
OrderConfirmationOrder
responderRoleSeller
initiatorRoleBuyer
UML4EDOCUML4EDOC
Meta Model for ProtocolMeta Model for Protocol
OrderData<<CompositeData>>
OrderConfirmationData<<CompositeData>>
Order(from OrderBT)
<<FlowPort>>OrderConfirmation
(from OrderBT)
<<FlowPort>>
OrderBT<<Protocol>><<responds>>
<<initiates>>
OrderDeniedData<<CompositeData>>OrderDenied
(from OrderBT)
<<FlowPort>>
<<initiates>>
PortOwner
Port
- name : String- isSynchronous : Boolean- isTransactional : Boolean- direction : DirectionType- postCondition : Status
<<boundary>>
FlowPort<<boundary>>
DataElement(from DocumentModel)
n1
+ports
n
+owner
1
Ports
0..1n
+type
0..1n FlowType
Protocol
ProtocolPort<<boundary>>
1
+uses
1
ProtocolType
MetaModel
Model
UML4EDOCUML4EDOC
Protocol OrderBT
OrderDenied
OrderConfirmationOrder
responderRoleSeller
initiatorRoleBuyer
Choreography of ProtocolChoreography of Protocol
<<initiates>> Order
<<responds>> OrderDenied <<responds>> OrderConfirmation
Failure Success
Transition
- preCondition : StatusPortUsage
Node
- name : StringAbstractTransition
Choreography
n1
+outgoing
n
+source
1
Sourcen1
+incomingn
+target
1
Targetn+nodes
n
Nodes
n +connectionsn
Connections
n
0..1
+subtypesn Generalization
+supertype
0..1
PseudoState
- kind : PseudostateKind
UML4EDOCUML4EDOC
Object InterfacesObject Interfaces
Use standard interface notation
Are a subtype of “Protocol” in the MetaModel
Allow modeling of and integration with classical and/or existing objects
CustService
+ checkCustomer()+ checkCredit()
<<Interface>>
EnqStatus(from CustomerComponent)
<<ProtocolPort>>
CustomerComponent<<Entity>>
<<responds>>
Interface
Protocol
UML4EDOCUML4EDOC
CompositionComposition
Seller : Sells
Validate : OrderValidation
: checkOrder
: reject
: acceptOrder
: CheckCustomer
Process : OrderProcessing
: doOrder
: ProcessedOrder
CustBean : CustomerComponent
: SendOrder
: GetDenied
: GetConfirmation
: EnqStatus
Seller Composition
1: checkCustomer(order : Order)
Use of an interface
Composition definesthe “inside” of a component
UML4EDOCUML4EDOC
Composition MetaModelComposition MetaModel
PortConnector
Connection
Port<<boundary>>
PortUsageProcessComponentComponentUsage
name : String
1
n
+represents1
n
Represents
createscreates
1
n +uses
1
n
Uses
Compositionowns
IsComposition
1
n
+owner
1
+usesn
ComponentUsages
connects
Seller : Sells
Validate : OrderValidation
: checkOrder
: reject
: acceptOrder
: CheckCustomer
: Order
: OrderDenied
: OrderConfirmation
UML4EDOCUML4EDOC
PropertiesProperties
Properties make process components configurable They can be reset when a component is used – in a
composition or at deployment time
Timer
Start Timeout
MaxTime Real 500
ProcessComponent
PropertyDefinition
- name : String- initial : Expression- isLocked : Boolean
1
n
+component 1
+properties n
Properties
Com ponentUsage
nam e : String
PropertyValue
- value : Express ion
+owner1
+configurationnn
1
UML4EDOCUML4EDOC
ECA Entity Profile
The model of things
UML4EDOCUML4EDOC
Sample Information ModelSample Information Model
+Street : String+City : String+State : String+Zip : String
«EntityData»Addtress
+Cust
1
+Adr
1..*
+Name : String+Balance : Decimal = 0+AccountNo : long
«EntityData»Account
+InvNum : Integer+Total : Decimal
«EntityData»Invoice
-Act1
-Invoices*
+Quantity : float-Price : Currency
«EntityData»LineItem +PartId : String
+Description : String+QtyInStock : float(idl)
«EntityData»Part
-Env
1
-Items
*
-Items
*
-Part
1+InvNum : Integer
«Key»InvoiceKey
-.
1
-.
1
+PartId : String
«Key»PartKey
-. 1
-. *
+AccountNo : String
«Key»AccountKey
-.
1
-.
1
+Name : String-CompanyId : String
«EntityData»Company
+CompanyId : String
«Key»CompanyKey
-.
1
-.
1
UML4EDOCUML4EDOC
MetaModel for Information Model
MetaModel for Information Model
+Street : String+City : String+State : String+Zip : String
«EntityData»Addtress
+Cust
1
+Adr
1..*
+Name : String+Balance : Decimal = 0+AccountNo : long
«EntityData»Account
+AccountNo : String
«Key»AccountKey
-.
1
-.
1
+Name : String-CompanyId : String
«EntityData»Company
+CompanyId : String
«Key»CompanyKey
-.
1
-.
1
EntityDataKey
+ PrimeKey : Boolean
Composite Data(from CCA)
10..n 10..n
UML4EDOCUML4EDOC
Adding EntitiesAdding Entities
Entities are added to manage entity data
Entity Roles are managers that provides a view of the same identity in another context
The Entities have ports for managing and accessing the entities
Non-entities which are owned by (aggregate into) an entity are managed by the entity
+Street : String+City : String+State : String+Zip : String
«EntityData»Addtress
+Cust
1
+Adr
1..*
+Name : String+Balance : Decimal = 0+AccountNo : long
«EntityData»Account
+AccountNo : String
«Key»AccountKey
-.
1
-.
1
+Name : String-CompanyId : String
«EntityData»Company
+CompanyId : String
«Key»CompanyKey
-.
1
-.
1
.Manages
<<Entity>>CompanyManager
Manage
<<EntityRole>>AccountManager
Manage
-Manages1
-.1
UML4EDOCUML4EDOC
Entity Meta ModelEntity Meta Model
Process Component(from CCA)
EntityData
Entity Role
+ VirtualEntity : Boolean
Entity
+ Managed : Boolean
+Context
0..n
+Parent
0..n
11
0..n0..n
Composite Data(from CCA)
Data Manager
+ NetworkAccess : Boolean+ Sharable : Boolean
11 1
+manages
1
+Street : String+City : String+State : String+Zip : String
«EntityData»Addtress
+Cust
1
+Adr
1..*
+Name : String+Balance : Decimal = 0+AccountNo : long
«EntityData»Account
+AccountNo : String
«Key»AccountKey
-.
1
-.
1
+Name : String-CompanyId : String
«EntityData»Company
+CompanyId : String
«Key»CompanyKey
-.
1
-.
1
.Manages
<<Entity>>CompanyManager
Access
<<EntityRole>>AccountManager
Access
-Manages1
-.1
UML4EDOCUML4EDOC
ECA Business Events
The model of when…
UML4EDOCUML4EDOC
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
BusinessServices
Event Based Business Processes
Event Based Business Processes
UML4EDOCUML4EDOC
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
Business Events
Business Process
Business Entity
BusinessRules
Business Actions
Event Notification
Event Based Business Processes
Event Based Business Processes
UML4EDOCUML4EDOC
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
Event Notifications
Point to Point NotificationPoint to Point Notification
UML4EDOCUML4EDOC
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
App
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
Pub/Sub
Loose Coupling
Pub/Sub NotificationPub/Sub Notification
UML4EDOCUML4EDOC
PubSub PackagePubSub Package
SubscriberPublisher
Subscription
subscriptionClause : expressiondomain : String
Publication
publicationClause : expressiondomain : String
PubSubNotice
FlowPort(from CCA)
CompositeData(from CCA)
+offers 0..n
+subscribedBy
1..n
+offeredBy 0..n
0..n
0..n
+announcedBy
1..n
+subscribesTo
1..n
1..n
1..n
+announces
1..n
1..n
1..n
UML4EDOCUML4EDOC
Event PackageEvent Package
DataManager(from Entity)
BusinessEvent
EventNotice(from Event)
EventbasedDataManager
DataEvent
EventbasedProcess
Choreography(from CCA)
ProcessEvent
entry : Booleansuccess : Boolean
Node(from CCA)
+triggers1+describedBy
0..1
+triggeredBy0..n
1
0..n+describes
0..n
0..1
0..n
1
0..n
1
0..n
lifeCycle
0..n0..n
lifeCycle
+reflects0..n
+reflectedIn
1..21..2
0..n
UML4EDOCUML4EDOC
Putting it all togetherPutting it all together
Business Process
Business Entity
BusinessRules
Business Events
Business Actions
EventNotice
EventbasedDataManager
Subscriber
EventCondition
EventbasedProcess
Subscription
NotificationRule
+requiredBy
0..n
+guards
0..n
+requires
0..n
0..n
0..n
+guardedBy
0..n0..n0..n
Publisher
PubSubNotice
1..n
1..n
+subscribedBy1..n
+subscribesTo1..n
Publication
0..n
0..n
+offers0..n
+offeredBy0..n
+announces
+announcedBy
1..n
1..n
1..n
1..n
UML4EDOCUML4EDOC
Event ExampleEvent Example
UML4EDOCUML4EDOC
Summary of AdvantagesSummary of Advantages
Recursive decomposition & assembly Trace ability Automating the development process Loose coupling Technology Independence Enabling a business component marketplace Simplicity through abstraction
UML4EDOCUML4EDOC
Business Process Profile
how things are coordinated
UML4EDOCUML4EDOC
Business ProcessesBusiness Processes
Specialize CCA Activity-centric view of a Process Express
– Complex temporal and data dependencies between business activities
– Iteration of activities– Alternative required Inputs and Outputs of activities– Roles related to performers, artifacts and responsible parties for
activities
UML4EDOCUML4EDOC
CT
The Business Process Concepts
The Business Process Concepts
B
A
C
RP
PR2AR
PR1
UML4EDOCUML4EDOC
ProcessComponent Specialization
ProcessComponent Specialization
CompoundTask is a special ProcessComponent– Its Ports represent the type of an Activity – Its Composition arranges Activities in a dependency
graph
Activity is a special ComponentUsage– Its MultiPort usages contain ProcessPortConnectors
(ProcessFlowPort usages)– DataFlows between these Connectors express
dependencies between Activities
UML4EDOCUML4EDOC
Metamodel for BP Components
Metamodel for BP Components
Activity
ProcessComponent
granularity : String = "Program"isPersistent : Boolean = falseprimitiveKind : StringprimitiveSpec : String
(from CCA) ComponentUsage
name : String(from CCA)
n1 n
+uses
1
Composition(from CCA)
n
1
+uses n
+owner
1
CompoundTask
BusinessProcess
BusinessProcessEntity
Entity
Managed : Boolean(from Entity)
CT
B
A
C
RP
PR2AR
PR1
Activity
UML4EDOCUML4EDOC
BusinessProcess and BusinessProcessEntityBusinessProcess and
BusinessProcessEntity
A BusinessProcess – Exposes arbitrary Ports (outside)
which define interfaces, operations, events for composition using CCA
– Its Composition (inside) is restricted to containing Activities and DataFlows
A BusinessProcessEntity– Is a BusinessProcess whose instances are uniquely
identifiable
UML4EDOCUML4EDOC
Port Types and SemanticsPort Types and Semantics
ProcessMultiPorts specialize CCA Multiports– They act as correlators for data from many sources– May be synchronous (required before starting an Activity) – or asynchronous (accepted by Activity during execution)
ProcessFlowPorts specialize CCA FlowPorts– Multiplicity indicates how many values are required to enable
containing Multiport
3 concrete kinds of ProcessMultiPort– InputGroup – alternative data sets required to begin an Activity– OutputGroup – alternative Activity result data sets– ExceptionGroup – abnormal Activity results
UML4EDOCUML4EDOC
Metamodel for BP PortsMetamodel for BP Ports
Port
name : Stringsynchronous : Booleantransactional : Booleandirection : DirectionTypepostCondition : Status
(from CCA)
<<boundary>>
PortUsage(from CCA)
1 n
+represents
1 n
PortConnector(from CCA)
AbstractTransition(from CCA)
Node
name : String
(from CCA) n1
+outgoing
n
+source
1
n1
+incoming
n
+target
1
FlowPort(from CCA)
<<boundary>>MultiPort
(from CCA)
ProcessMultiPort
InputGroup OutputGroup
ExceptionGroup
ProcessFlowPort
multiplicity_lb : shortmultiplicity_ub : short
ProcessPortConnectorDataFlow
Connection(from CCA)
connects
ProcessPortConnector
CT
B
A
C
RP
PR2AR
PR1
DataFlow
UML4EDOCUML4EDOC
Metamodel for BP PortsMetamodel for BP Ports
Port
name : Stringsynchronous : Booleantransactional : Booleandirection : DirectionTypepostCondition : Status
(from CCA)
<<boundary>>
PortUsage(from CCA)
1 n
+represents
1 n
PortConnector(from CCA)
AbstractTransition(from CCA)
Node
name : String
(from CCA) n1
+outgoing
n
+source
1
n1
+incoming
n
+target
1
FlowPort(from CCA)
<<boundary>>MultiPort
(from CCA)
ProcessMultiPort
InputGroup OutputGroup
ExceptionGroup
ProcessFlowPort
multiplicity_lb : shortmultiplicity_ub : short
ProcessPortConnectorDataFlow
Connection(from CCA)
connects
ProcessPortConnector
CT
B
A
C
RP
PR2AR
PR1
DataFlow
UML4EDOCUML4EDOC
Data FlowsData Flows
DataFlows are special CCA Connections– Uni-directional between ProcessFlowPorts– DataFlows indicate
data dependency & transmit values at run-time, or temporal dependency (aka control flow)
UML4EDOCUML4EDOC
Process RolesProcess Roles
ProcessRoles are placeholders for the components that an Activity needs to do its work
Contain SelectionRules and/or CreationRules– these are search expressions / factory parameters to
bind to objects at run-time
Three kinds of Roles– Performer - does the job of the Activity– Artifact – is a resource needed by the Performer– ResponsibleParty - authorizes the Activity
UML4EDOCUML4EDOC
Metamodel for Process RolesMetamodel for Process Roles
Composition(from CCA)
Performer Artifact ResponsibleParty
Activity
ProcessRole
selectionRule : stringcreationRule : string 0..n
0..n
+responsibleFor0..n
0..n
0..n0..n
+usesArtifact
0..n0..n
+performedBy
0..1 0..n0..1 0..n
CompoundTask
BusinessProcess
ProcessComponent
granularity : String = "Program"isPersistent : Boolean = falseisPrimitive : Boolean = false
(from CCA)
ComponentUsage
name : Stringn1
+uses
n
+owner
1
+uses n
1
n
1
CT
B
A
C
RP
PR2AR
PR1
UML4EDOCUML4EDOC
Process PatternsProcess Patterns
The basic model elements– ProcessMultiPorts– CompoundTasks– Activities– DataFlows
Are used to define useful patterns for processes– PreConditions and PostConditions– Timers and ProcessTerminators– Loops (while, for, repeat)– MultiTask - which spawns parallel Activities for each
value in a collection Input
UML4EDOCUML4EDOC
Interactions between Interfaces and Process Definitions
Interactions between Interfaces and Process Definitions
BusinessProcesses are – Roots of process definition graphs– CCA “Interface” ProcessComponents on the outside– CompoundTask Compositions on the inside– Gateway from the component world into the process
definition world ProcessRoles are
– Leaves of a process definition graph– Bindings from Activities to “Interface”
ProcessComponents which perform their work– Gateway from the process definition world into the
component world
UML4EDOCUML4EDOC
Relationships Profile
useful associations and dependencies
UML4EDOCUML4EDOC
Relationships ProfileRelationships Profile
Enables non-binary aggregations Defines useful association and dependency
stereotypes
partA partB
aggregate <<Aggregation>>
<<Packet>>
<<Assembly>>
<<Subordination>>
<<List>> <<List>>
or
or
UML4EDOCUML4EDOC
Aggregation RelationshipsAggregation Relationships
<<Aggregation>> is non-binary “black diamond” or “white diamond” whole/part association
4 more constrained aggregations are defined:– <<Assembly>> is an aggregation where the whole
cannot exist without its parts– <<Subordination>> is an aggregation where the parts
cannotb exist without the whole– <<Packet>> is an aggregation where the parts or the
whole may exist independently– <<List>> is an aggregation where both the parts and
the whole must exist in order to be valid (assembly and subordination)
UML4EDOCUML4EDOC
Dependency RelationshipsDependency Relationships
<<AbstractReference>> defines a dependency between a maintained instance whose properties are partly derived from a referenced instance
2 Concrete reference kinds are defined– <<Reference>> is a dependency indicating that a
maintained instance has properties derived from a referenced instance
Whenever a property of the referenced element changes, the properties of the maintained element must be examined and possibly changed.
– <<ReferenceForCreate>> is a dependency indicating that at creation time a maintained instance has properties derived from a referenced instance, but thereafter they are independent
UML4EDOCUML4EDOC
Patterns Profile
reusing parameterized designs
UML4EDOCUML4EDOC
Patterns ProfilePatterns Profile
Profiles UML Parameterized Collaborations Based on Business Function Object Patterns
(BFOP)– Multi-Layer– Based on Catalysis Approach
Adds stereotypes for– Named Patterns– Inheritance– Composition– Pattern Binding with renaming
UML4EDOCUML4EDOC
Applying Simple PatternApplying Simple Pattern
Constraint/Operation
P
<A> B
P
applying
Unfolding and Renaming
s1
m1
A1s2
m2
A [t1/tt1]
A1s1s2m1m2
B
t1
tt1
UML4EDOCUML4EDOC
Applying Inherited PatternApplying Inherited Pattern
Constraint/Operation
<A1>
<B1>
Constraint/Operation
<A2>
B2
P1
P2
P1
A3
P2
A3 B2
P1
A3 B2
Applyingunfolding
unfoldingA1 B1
A2
A1 B1
UML4EDOCUML4EDOC
Applying Composite PatternApplying Composite Pattern
Constraint/Operation
<C3>
P1 P2
Constraint/Operation
A1 <C1>
P1
Constraint/Operation
B1<C2>
P2
P3
C4
P3
C4
P1
C4 B1
applying
unfolding
unfolding
P2
A1
C1 C2
C3
C1 C2
UML4EDOCUML4EDOC
Patterns: Buyer/SellerPatterns: Buyer/Seller
Inheritance
Composition
UML4EDOCUML4EDOC
Patterns: Buyer/SellerPatterns: Buyer/Seller
Unfolding
Applying
UML4EDOCUML4EDOC
Platform Specific Modeling
EJB, FCM, MOF Technology mappings from EDOC to
Distributed Component and Message Flow Platform Specific Models
– EDOC to J2EE/EJB mapping– EDOC to CORBA/CCM mapping– EDOC Business Process to FCM
mapping– EDOC Business Process to CORBA
mappinG
UML4EDOCUML4EDOC
EJB, Java Profile – and JSR-26 “UML for EJB”
EJB, Java Profile – and JSR-26 “UML for EJB”
EJB is an implementation technology for distributed components
JSR-26 provides the UML Profile for EJB EDOC provides
– The EJB metamodel for this profile– The Java metamodel to support the EJB metamodel
Work in progress to map between the metamodel and the JSR-26 Profile
UML4EDOCUML4EDOC
FCM – Flow Composition Model
FCM – Flow Composition Model
General purpose model describing flows of information between application components enabling
– Breakdown of complex acctions into simple flow components– Composition of simple entities into higher level flow models
Layer of abstraction just above middleware technology– WSDL, messaging, workflow
Mappings to FCM– EDOC: Business Process Profile– EAI: messaging technologies
UML4EDOCUML4EDOC
UML Profile for MOFUML Profile for MOF
The MOF Profile describes how to normatively express MOF models using UML.– Used by this submission to express the MOF models in
the EDOC Specification– 2-way transformation between UML and MOF for
Designing metamodels with UML (UML to MOF) Viewing metamodels with UML (MOF to UML)
Expressed as tables showing:– The mappings of element types– Detailed mapping descriptions for individual element
types– Guidelines for MOF modeling using UML
UML4EDOCUML4EDOC
Part II - Supporting Annexes
Annex A - Procurement, Buyer/Seller example
Annex B - Meeting Room example
Annex C - Hospital example
Annex D - Examples of Patterns
Annex E - Technology mappings from EDOC to Distributed Component and Message Flow Platform Specific Models
XMI, DTD files
UML4EDOCUML4EDOC
Technology mappings from EDOC to Distributed Component and Message
Flow Platform Specific Models
Technology mappings from EDOC to Distributed Component and Message
Flow Platform Specific Models
Introduction to EDOC and Platform Specific Models
Principal Platform Specific Models Mapping from EDOC to J2EE/EJB Mapping from EDOC to CORBA/CCM Mapping from EDOC Business Process profile to
CORBA Mapping from EDOC Business Process profile to
FCM
UML4EDOCUML4EDOC
Abstract Technology Model Abstract Technology Model
DeferredSynch request
Naming service
Persistence service
ServerComponents
Message
Transaction service
Concurrencyservice
XML
Synchron.request
Event - publish & subscribe
Data services &Legacy systems
Shared BusinessServices
User services(application/process)
Interaction/Presservices
Trading serviceSecurity service
Workflowservice
Streaming
Integration service
User InterfaceDocument modelWeb interaction
System/Use Mngt
UML4EDOCUML4EDOC
Computational viewpointComputational viewpoint
ReservationManagerComponent t
IReservationManagement ReservationRemoteMgt
ResourceRemoteMgt
ResourceManagerComponent
t
IResourceManagement ResourceRemoteMgt
MeetingReservationServiceComponent t
IMeetingReservation IResourceManagement
EmailServer t
SendMail
OrganizationServer t
EnqOrgUnit
IMeetingInvitation
IMeetingRetrieval
IResourceRetrieval
IReservationManagement
SendMail
Property Type Value
ResourceAdministrationServiceComponent t
IResourceAdministration EnqOrgUnit
IResourceManagement
Property Type Value
IResourceRetrieval
UML4EDOCUML4EDOC
Computational viewpointComputational viewpoint
IReservationManagement
+ FindReservationByPrimaryKey(pk : ReservationKey) : Reservation+ CreateSuggestionList(requirements : ReservationRequirements) : ReservationSuggestion+ CreateReservation(reservationSuggestion : ReservationSuggestion) : Reservation
<<Interface>>
IReservationMgmtResp<<ProtocolPort>>
<<responds>>
ReservationManagerComponent<<ProcessComponent>>
Protocol derived from a “traditional” interface
UML4EDOCUML4EDOC
Mapping from EDOC to EJBMapping from EDOC to EJB
<<Entity>>Reservation
<<EJBImplementation>>ReservationBean
<<Entity>>Resource
<<EJBImplementation>>ResourceBean
<<ProcessComponent>>MeetingReservationToolComponent
<<Java application>>MeetingReservationToolComponent
<<ProcessComponent>>MeetingReservationService
<<Java interface>>MeetingReservationService<<Java class>>MeetingReservationServiceImpl
<<ProcessComponent>>MeetingResponseToolComponent
<<Java application>>MeetingResponseToolComponent
<<ProcessComponent>>MeetingResponseService
<<Java interface>>MeetingReservationService<<Java class>>MeetingReservationServiceImpl
<<ProcessComponent>>ResourceAdministrationTool
<<Java application>>ResourceAdministrationTool
<<ProcessComponent>>ResourceAdministrationService
<<Java interface>>ResourceAdministrationService<<Java class>ResourceAdministrationServiceImpl
<<ProcessComponent>>ReservationManagerComponent
<<EJBImplementation>>ReservationManagerBean
<<ProcessComponent>>ResourceManagerComponent
<<EJBImplementation>>ResourceManagerBean
UML4EDOCUML4EDOC
Technology viewpoint (EJB)Technology viewpoint (EJB)
<<EJBSessionHomeInterface>>
ReservationManagerHome
<<EJBRemoteInterface>>
ReservationManager
<<EJBImplementation>>
ReservationManagerBean
<<EJBRealizeHome>>
<<EJBRealizeRemote>>
ejbActivate()
createReservation()
createReservation()
createReservation()
deleteReservation()
createSuggestionList()
ejbCreate()
ejbPassivate()
ejbRemove()
findReservationByPrimaryKey()
findReservationsAll()
findReservationsByOrganizer()
getSessionContext()
newMethod()
setSessionContext()
<<EJBCreateMethod>>
+create():ReservationManager
<<EJBRemoteMethod>>
+createReservation(Inout requirements:ReservationRequirements):Reservation<<EJBRemoteMethod>>
+createReservation(Inout suggestion:ReservationSuggestion):Reservation<<EJBRemoteMethod>>
+createReservation():Reservation<<EJBRemoteMethod>>
+createSuggestionList(Inout requirements:ReservationRequirements): [*] ReservationSuggestion<<EJBRemoteMethod>>
+deleteReservation(Inout reservation:Reservation)<<EJBRemoteMethod>>
+findReservationByPrimaryKey(Inout pk:ReservationKey):Reservation<<EJBRemoteMethod>>
+findReservationsAll():Enumeration<<EJBRemoteMethod>>
+findReservationsByOrganizer(Inout pk:ResourceKey):Enumeration
UML4EDOCUML4EDOC
Mapping from EDOC to Corba/CCM
Mapping from EDOC to Corba/CCM
OperationDef(from BaseIDL)
ProvidesDefUsesDef
+ multiple : boolean
InterfaceDef(from BaseIDL)
1
0..*
+provides1
0..*0..*
1
0..*
+uses1
EmitsDef PublishesDef ConsumesDef
FactoryDef FinderDef
ComponentDef
isBasic : boolean
1
0..*
1
+facet0..*
0..*
1
+receptacle0..*
1
0..*
0..*
+supports 0..*
0..*
1
0..*
1
+emits
0..*
1
0..*
1
+publishes 0..*
1
0..*
1
+consumes0..*
HomeDef
+ isBasic : boolean
1
0..*
1
+factory0..*
1
0..*
1
+finder0..*
1
0..*
+manages 1
+home0..*
PrimaryKeyDef
1
0..1
+home1
+key0..1
/Home_Key
ValueDef(from BaseIDL)
1
0..*
+type
1
0..*
EventDef
1
0..*
+type1
0..*
UML4EDOCUML4EDOC
Mapping from EDOC Business Process
Mapping from EDOC Business Process
To CORBA - based on mapping to Workflow service elements
To CORBA -extended using Notification-based mapping
To CORBA - alternative using Interface-based mapping
To FCM- the Flow Composition Model
UML4EDOCUML4EDOC
Wrap-up
UML4EDOCUML4EDOC
The EDOC visionThe EDOC vision
A MOF model and a UML profile sufficient to support seamless, robust and consistent specification of all elements of the life cycle of an enterprise system
– Enable the design, integration and subsequent evolution of enterprise systems
– Links business concepts to system implementation by using same modeling concepts on multiple levels
– Integrate commercial transactions, business processes and distributed object applications
– Insulate business system specifications from technological idiosyncrasies
– Support the development of specialized tools to improve the quality, cost and adaptability of business systems
– Enable a business system components marketplace
UML4EDOCUML4EDOC
Summary: Mandatory Requirements
Summary: Mandatory Requirements
Specification of Business Process objects (R3)
Modeling of Business Processes, Entities, Rules and Events (R2)
Specification of Relationships (R4)Component modeling (R1)MOF alignment (R5)Proof of concept of Profile (R6)Proof of concept of Mappability (R7)
UML4EDOCUML4EDOC
Call for Volunteers
We need a review team – to report by (Toronto – 3 weeks)
UML4EDOCUML4EDOC
Tomorrow – UML4EDOC “Tutorial”
0900 - North Shore B
See the ships -
meet the men
(and women)
UML4EDOCUML4EDOC
Questions?