Executable Enterprise Modeling with UMLExecutable Enterprise Modeling with UML
Presented to:OMG Workshop on UML in the
EnterpriseDecember 3-6, 2001
By:Michael Latta
Yngvar D. Tronstad
2001 Ceira Technologies Inc.™ Page 2
Overview
!! ArchitectureArchitecture!! OO ModelingOO Modeling
–– StructureStructure–– BehaviorBehavior–– StateState
!! Push Push !! Execution EngineExecution Engine!! J2EE Apps ServerJ2EE Apps Server!! JMS/JCAJMS/JCA!! Lessons LearnedLessons Learned
2001 Ceira Technologies Inc.™ Page 3
SalesSupport
InventoryControl Shipping Customer
Care Billing
Message Transformation
Workflow Engine
!Error Detection
B2BGateway
Web Portals
Message Bus
Problem space and Challenges
An example integration environment, using TIBCO middleware
Configured piece by piece, it requires organizations to carefully coordinate all of the implementation artifacts to build the final end-to-end solution.
A
BC
D E F G H
I
J
K
L M O PN
2001 Ceira Technologies Inc.™ Page 4
UML Authoring in EAI
!! UML OO modeling supportUML OO modeling support!! Collaborative Modeling Collaborative Modeling
EnvironmentEnvironment–– Different but related modeling Different but related modeling
domains/facetsdomains/facets–– Consistency checkingConsistency checking–– MultiMulti-- user supportuser support–– PersistencePersistence–– Versioning and Configuration Versioning and Configuration
ManagementManagement!! Model based design with validationModel based design with validation!! Direct deployment and execution of Direct deployment and execution of
the modelsthe models
2001 Ceira Technologies Inc.™ Page 5
Why Executable Models?
!! The Model and the Implementation will not The Model and the Implementation will not drift apartdrift apart–– Automate the generation of the execution system Automate the generation of the execution system
from the model itselffrom the model itself–– Allows verification prior to deploymentAllows verification prior to deployment
!! Removes AmbiguityRemoves Ambiguity–– Forces semantics to be definedForces semantics to be defined–– Makes behavior more visible than when in codeMakes behavior more visible than when in code
!! Provides medium for CommunicationProvides medium for Communication–– Business Owners and Designers can more easily Business Owners and Designers can more easily
relaterelate–– Highlights general process flow over detailsHighlights general process flow over details
2001 Ceira Technologies Inc.™ Page 6
What is an Executable Model?
!! A model complete enough to be executedA model complete enough to be executed!! Can be augmented by custom code, but only Can be augmented by custom code, but only
at the leaf level of the behavior treeat the leaf level of the behavior tree!! Defines structure of business objects and Defines structure of business objects and
their behavior, “smart objects” that can be their behavior, “smart objects” that can be distributed distributed
!! Embraces interface to external systemsEmbraces interface to external systems!! Scales to support the demands of an Scales to support the demands of an
enterprise class customerenterprise class customer
2001 Ceira Technologies Inc.™ Page 7
How to provide an Executable Model
!! Start with UMLStart with UML!! Add missing semanticsAdd missing semantics!! Clarify variations Clarify variations !! Generate database from structure modelGenerate database from structure model!! Execute behavior in process serverExecute behavior in process server
2001 Ceira Technologies Inc.™ Page 8
Challenge in Executable Models:Add Missing Semantics
!! Define concrete semantics between state machine and Define concrete semantics between state machine and their contexttheir context–– How are state machines started?How are state machines started?–– Can an instance have multiple active state machines?Can an instance have multiple active state machines?
!! How is an incoming message converted to an event to How is an incoming message converted to an event to be delivered to a state machinebe delivered to a state machine
!! How is a generated event converted to an outgoing How is a generated event converted to an outgoing messagemessage
!! Ambiguity in handling SynchStateAmbiguity in handling SynchState
2001 Ceira Technologies Inc.™ Page 9
Challenge in Executable Models:Clarify Variations
!! Resolving transition selectionResolving transition selection!! Processing transitions in series or concurrentlyProcessing transitions in series or concurrently!! Transaction boundaries around state machine Transaction boundaries around state machine
semanticssemantics!! Mapping of UML structure models to RDBMSMapping of UML structure models to RDBMS!! Selection of action representation (1.x or Action Selection of action representation (1.x or Action
Semantics) and the concrete syntax for actionsSemantics) and the concrete syntax for actions!! Selection of primitive actions, functions, data typesSelection of primitive actions, functions, data types!! Implementation of custom code actionsImplementation of custom code actions
2001 Ceira Technologies Inc.™ Page 10
Business Objects
Message DefinitionsEvent DefinitionsTransformationsBehaviors
OHANA
Authoring
PEAR
bus objs
PMobjs
POAL
PEAR
RDB
(Fixed Schema)
PM Base Schema(Dynamic Schema)
Bus Obj Schema
Meta-schema API
Action Semantics
EEJ2EE
Application Server
JMS MSG
JMS MSG MG
Process Manager Execution Engine
Executable Model Framework
2001 Ceira Technologies Inc.™ Page 11
CustomercustomerIDfirstNamelastNameaddresscitystatezip
OrderorderIDquantity
10..*
orderOwner
customerOrder
Class Diagram
Business Objects
Association
UML Notation for Classes
2001 Ceira Technologies Inc.™ Page 12
Object
Composite State
Transition
Simple State
Transition
Final State
Initial State
UML Notation for Behavior
2001 Ceira Technologies Inc.™ Page 13
Initial State
Simple State
Final State
Do Action
Exit Action
Entry Action
Entry Action Do Action Exit Action
Start Message
Start Event
Do Action
Exit Action
Entry Action
Transaction 1
Transaction 2
Transaction 3
Transaction 4
Transaction 5
Transaction Model
2001 Ceira Technologies Inc.™ Page 14
Adapter
JMSIN
E2Mxform
Enact
JMSOUT
M2Exform AS
Do Action
3. Output Message
1. Start Message
4. Input Message
5. Do Action Final State
2b. Do Action Composite State
2a. DoAction Simple State
Execution Engine Processing
2001 Ceira Technologies Inc.™ Page 15
Adapter
JMSIN
E2Mxform
Enact
JMSOUT
M2Exform
IN MDB
AS
JMSOUTJMS
IN
E2Mxform
DO MDB
AS
Message Driven Beans Support Transaction Model
2001 Ceira Technologies Inc.™ Page 16
Web Front End Process Manager Execution Engine
Billing System Provisioning System
Create Customer
Provision Order
Account Billed
Billing Account Created
Order Provisioned
Bill For Service
Place Order
Business Object
Enterprise Customer
Create Billing Account
Create CustomerBilling
Message Traffic Example
2001 Ceira Technologies Inc.™ Page 17
Enterprise Objects
2001 Ceira Technologies Inc.™ Page 18
CreateCustomer
InitializeCustomer
2. Send Message CreateCustomerBilling(to Customer)
1. StartEvent CreateCustomer(from web)
Create Customer
Enterprise
Enterprise Object Behavior
2001 Ceira Technologies Inc.™ Page 19
Customer
CreateBilling 3. Send Message BillingAccountCreation(to Billing Stub)
Receive StartEvent CreateCustomerBilling(from Enterprise)
4. Receive Message BillingAccountCreated(from Billing Stub)
Create Billing
BillingAccountCreatedEvent
Customer Object Behavior
2001 Ceira Technologies Inc.™ Page 20
Customer
CreateOrder
6. Send Message ProvisionOrder(to Provision Stub)
5. Receive StartEvent PlaceCustomerOrder(from Web)
7. Receive Message OrderProvisioned(from Provision Stub)
Place Order
ProvisionDSL
BillForDSL9. Receive Message OrderBillingCompleted(to Billing Stub)
8. Send Message BillForOrder(to Billing Stub)
OrderProvisionedEvent
OrderBillingCompletedEvent
Customer Object Behavior (cont.)
2001 Ceira Technologies Inc.™ Page 21
J2EE Deployment Architecture
Topic
Msg
Web App
Bill
Prov
publishesdelivers
Msg Msg
JMS
Middleware
J2EE Server
MDBInstance
EJB Container
… MDBInstance
EJB Container
MDBInstance
EJB Container
MDBInstance
EJB Container
APACHE
2001 Ceira Technologies Inc.™ Page 22
Summary
!! Process ManagerProcess Manager–– UML Based OO Authoring and CMUML Based OO Authoring and CM–– Execution of Smart Distributed ObjectsExecution of Smart Distributed Objects
!! J2EE Application ServerJ2EE Application Server–– ScalabilityScalability–– Transaction controlTransaction control
!! JMS/JCAJMS/JCA–– Distribution, Delivery, StatusDistribution, Delivery, Status
2001 Ceira Technologies Inc.™ Page 23
Demonstration is available
Show Me !