Upload
walter-jacobs
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
1
Achieving Dynamic Inter-Organizational Achieving Dynamic Inter-Organizational Workflow Management by Integrating Business Workflow Management by Integrating Business Processes, E-Services, Events and RulesProcesses, E-Services, Events and Rules
Jie MengJie Meng
Ph.D. CandidatePh.D. Candidate
CISE DepartmentCISE Department
January 04, 2002January 04, 2002
2
OutlineOutline IntroductionIntroduction Related ResearchRelated Research Architecture of DynaFlowArchitecture of DynaFlow Dynamic Workflow ModelDynamic Workflow Model
– E-ServicesE-Services– Dynamic Workflow ModelDynamic Workflow Model– Workflow Event DefinitionWorkflow Event Definition– Dynamic Properties of DWM and DynaFlowDynamic Properties of DWM and DynaFlow
DynaFlow DesignDynaFlow Design DynaFlow ImplementationDynaFlow Implementation
– Code Generation ApproachCode Generation Approach– Workflow Engine ArchitectureWorkflow Engine Architecture– Run-time Modification to a Process ModelRun-time Modification to a Process Model
Summary and Future WorkSummary and Future Work
This research project is supported by an NSF grant #EIA-0075284.This research project is supported by an NSF grant #EIA-0075284.
3
MotivationMotivation
Global marketplace is competitive and changing Global marketplace is competitive and changing Internet gains a great successInternet gains a great success Trend of publishing services on Internet emergesTrend of publishing services on Internet emerges Different organizations need to work togetherDifferent organizations need to work together
Virtual Enterprise
Dynamic Inter-organizational Workflow
4
Inter-organizational Workflow should be Inter-organizational Workflow should be DynamicDynamic
Business processes need to be integrated with business Business processes need to be integrated with business events and rules. The rules can:events and rules. The rules can:– In turn enact other business processes or do some work (active).In turn enact other business processes or do some work (active).
– Enforce customized business constraints and policies Enforce customized business constraints and policies (customizable). (customizable).
Runtime modifications to process model should be Runtime modifications to process model should be supported (adaptive).supported (adaptive).
Dynamic binding of service requests made in a process Dynamic binding of service requests made in a process model to services and their providers should be supported model to services and their providers should be supported (flexible).(flexible).
5
Our SolutionOur Solution
Basic idea: Basic idea: use dynamic inter-organizational workflow use dynamic inter-organizational workflow technology to integrate distributed and heterogeneous technology to integrate distributed and heterogeneous services.services.
Develop a Develop a dynamic workflow model (DWM)dynamic workflow model (DWM) by extending by extending WPDL to enable the specification of dynamic properties WPDL to enable the specification of dynamic properties associated with a business process model.associated with a business process model.– Treat sharable tasks in a virtual enterprise as Treat sharable tasks in a virtual enterprise as e-servicese-services..
– Propose constraint-based Propose constraint-based dynamic service binding dynamic service binding technology.technology.
– Integrate business processes with Integrate business processes with events and rulesevents and rules. .
– Provide Provide run-time modificationrun-time modification to process models. to process models.
Build a Build a dynamic workflow management system (DynaFlow)dynamic workflow management system (DynaFlow) as a part of the ISEE Infrastructureas a part of the ISEE Infrastructure
6
Related WorkRelated Work WfMCWfMC
– Workflow Reference ModelWorkflow Reference Model– WPDLWPDL
Workflow Projects that Make Use of Events and RulesWorkflow Projects that Make Use of Events and Rules– WIDE: Events and rules are used for exception handling.WIDE: Events and rules are used for exception handling.– EvE: Events and rules are used for EvE: Events and rules are used for defining and enforcing workflow logic. A
distributed ECA rule-based enactment architecture is also investigated in EvE. Run-time Modification to Process ModelRun-time Modification to Process Model
– ADEPT_flex.ADEPT_flex.– Rule-based approach.Rule-based approach.
Virtual Enterprise and Workflow TechnologyVirtual Enterprise and Workflow Technology– WISEWISE– CrossFlowCrossFlow
Web Service TechnologiesWeb Service Technologies– SOAPSOAP– WSDLWSDL– UDDIUDDI– WSFLWSFL
7
ISEE InfrastructureISEE Infrastructure
App
Internet Communication Infrastructure
Agent ADODOBrowser
ISEE Infrastructure
. . .
Manufacturers & Suppliers
Warehouses & Distribution Centers
Retailers
Transportation Companies
ISEE HubISEE HubISEE Hub
ISEE HubISEE Hub
OtherServersOther
Servers
ISEE-HUB
NegotiationServer
NegotiationServer
WorkflowServer
WorkflowServer
Security Server
Security Server
ETRServerETR
Server
EventServerEventServer
WebServerWeb
Server
...
Internet Communication Infrastructure
8
Internet
ISEE Hub
ISEE Hub
Broker Server
ISEE Hub
E-Services
E-Service Adapter
Organization 3Organization 2
Organization 1
Workflow Server Broker Proxy
ETR ServerEvent Server Web Server
E-Services
E-Service Adapter
E-Services
E-Service Adapter
E-Services
E-Service Adapter
Organization 4
Architecture of Architecture of DynaFlowDynaFlow
Workflow Server Broker Proxy
ETR ServerEvent Server Web Server
Workflow Server Broker Proxy
ETR ServerEvent Server Web Server
9
Components in DynaFlowComponents in DynaFlow
Process Definition Tool
ISEE Hub
E-Service Adapter
E-Services
ISEE Hub
Post Async Events
Post Sync Events
Service Invocation
Distribute Events
Event Server ETR Server
Broker Server
WF Engine
Install events, triggers and rules
Install WF Events
Forward Events
Generate Runtime WF Structures
Receive Events
Receive Events
Broker Proxy
Service Provider Inquiry
Knowledge Profile Manager
Invoke
Distribute Events
ISEE Hub
Browse E-Service Information
INTERNET
10
E-ServicesE-Services E-Services E-Services are services offered on the Internet that can be are services offered on the Internet that can be
accessed programmatically using a standard Internet accessed programmatically using a standard Internet Protocol and representation format like HTTP and XML.Protocol and representation format like HTTP and XML.
Categorize e-services by the Categorize e-services by the types of business types of business that the that the providers conduct.providers conduct.
For each type of e-service, a For each type of e-service, a e-service templatee-service template is defined is defined to standardize the specification of an e-service.to standardize the specification of an e-service.
E-service templates are managed by the Broker Server. E-service templates are managed by the Broker Server. Service providers register the e-service they provided to the Service providers register the e-service they provided to the
Broker Server according to e-service templates. Broker Server according to e-service templates. E-service E-service specificationsspecifications are maintained by the Broker Server. are maintained by the Broker Server.
Process model designers specify Process model designers specify e-service requestse-service requests in a in a process model according to e-service templates. process model according to e-service templates.
11
Build-time Relationship among the Broker Server, Build-time Relationship among the Broker Server, Service Providers and Process Model DesignerService Providers and Process Model Designer
Broker Server
E-Service Rquests
Process Model Designer
Service Provider
Service
E-Service Adapter
ServiceService
register reference
E-Services
E-Service Specification
E-Service Template
12
An Example of E-Service TemplateAn Example of E-Service Template
Operations Name Type
Input Attributes Product_NameModel_NameQuantityUser_Info
StringStringIntUserInfo
Output Attributes Status Status
ProcessOrder
Service Attributes DurationCostShpping_Method
TimeCostString
Business Type: Distributor E-Service: OrderProcessing
13
An Example of E-Service ConstraintAn Example of E-Service Constraint
E-Service Constraint E-Service Constraint restricts the kind of data that the requester of an e-restricts the kind of data that the requester of an e-service can provide when the e-service is invoked. service can provide when the e-service is invoked.
Distributor Distributor Worldwide Worldwide which provides the e-service which provides the e-service OrderProcessing OrderProcessing may specify constraints on the operation may specify constraints on the operation Process Order Process Order as follows:as follows:
ATTRIBUTE_CONSTRAINT:ATTRIBUTE_CONSTRAINT:
Product_Name String ENUMERATION [“Computer”] priority[1]Product_Name String ENUMERATION [“Computer”] priority[1]
Model_Name String ANY priority[2]Model_Name String ANY priority[2]
Quantity Integer RANGE [1-1000] priority[3]Quantity Integer RANGE [1-1000] priority[3]
INTER_ATTRIBUTE_CONSTRAINT:INTER_ATTRIBUTE_CONSTRAINT:
Iac1Iac1 Quantity > 500 Quantity > 500 impliesimplies Duration>10 Duration>10
14
E-Service RequestE-Service Request
E-service requestsE-service requests in a process model are defined in a process model are defined according to e-service templates.according to e-service templates.
An e-service request contains two parts:An e-service request contains two parts:– Variable mappings of the input/output attributes.Variable mappings of the input/output attributes.
– Constraints on the service attributes.Constraints on the service attributes.
ATTRIBUTE_CONSTRAINT:ATTRIBUTE_CONSTRAINT:Duration int RANGE[0 .. 10] priority[1]Duration int RANGE[0 .. 10] priority[1]
Cost float RANGE[0 .. 1000] priority[2]Cost float RANGE[0 .. 1000] priority[2]
INTER_ATTRIBUTE_CONSTRAINTINTER_ATTRIBUTE_CONSTRAINT
Iac1Iac1: Duration >4 : Duration >4 implies implies Cost < 800Cost < 800
15
Constraint-based BrokeringConstraint-based Brokering
An important function of the Broker Server is to do An important function of the Broker Server is to do constraint-based brokering and service provider selection.constraint-based brokering and service provider selection.
ProceduresProcedures– Call Call Constraint Satisfaction Processor (CSP)Constraint Satisfaction Processor (CSP) to match the to match the e-service e-service
request constraintsrequest constraints with the with the e-service constraintse-service constraints in the e-service in the e-service specifications of different service providers.specifications of different service providers.
– Three possible results:Three possible results: None: fail.None: fail. Only one: succeed.Only one: succeed. More than one: call More than one: call Cost Benefit Module (CBM) Cost Benefit Module (CBM) to get the best to get the best
service provider.service provider.
16
E-Service Invocation MechanismE-Service Invocation Mechanism
Legacy Application
E-Service Adapter E-Service Adapter
Distributed Object
ISEE Hub
WF EngineBroker Proxy
Local Workflow
SOAP MSG
Internet (HTTP)
17
Extension to WPDLExtension to WPDL
Introduction to Introduction to ConnectorConnector Encapsulation of the activity definitionEncapsulation of the activity definition Inclusion of e-service requests in activity definitionsInclusion of e-service requests in activity definitions Inclusion of explicit data flow specificationInclusion of explicit data flow specification Introduction of events and rulesIntroduction of events and rules
– Before-Activity-EventBefore-Activity-Event
– After-Activity-Event After-Activity-Event
– External EventExternal Event
Workflow Events
18
Workflow EventsWorkflow Events Workflow Events are automatically generated based on the process Workflow Events are automatically generated based on the process
model name, the activity name, and the input and output data of the model name, the activity name, and the input and output data of the activity.activity.
Synchronous workflow eventSynchronous workflow event– The rules attached to the synchronous workflow events of a process model The rules attached to the synchronous workflow events of a process model
can only be defined by the model designer and by the organizations that can only be defined by the model designer and by the organizations that use the business process model.use the business process model.
– Organization customizationOrganization customization: different organizations defines business rules : different organizations defines business rules attached to the synchronous workflow events to reflect their local business attached to the synchronous workflow events to reflect their local business policies.policies.
– Instance customizationInstance customization: a workflow instance can also trigger a different set : a workflow instance can also trigger a different set of rules when an unexpected event happens.of rules when an unexpected event happens.
Asynchronous workflow events:Asynchronous workflow events:– The organizations in the virtual enterprise can subscribe to the The organizations in the virtual enterprise can subscribe to the
asynchronous workflow events and receive notifications on asynchronous workflow events and receive notifications on some processing milestones of an enacted business process or exceptions.
19
Graphical Representation of a Process Model in DWMGraphical Representation of a Process Model in DWM
AE
EE
BE
Activity
Connector
Condition
Before- Activity-Event
After- Activity-Event
External Event
Rule
Transition
Subflow
Data flow
BE
AE
EE
Triggers
Begin-Activity or End-Activity
Block
Legend:
20
Activity Definition... Activity Definition... Activity specification
ACTIVITY <activity id>
[DESCRIPTION <description>]
[PERFORMER < participant assignment>]
IN_PARAMETER <input parameter list>
OUT_PARAMETER <output parameter list>
[WF_EVENTS] <workflow event list>
[ACTIVITY_VAR <variable list>]
IMPLEMENTATION <activity body>
END_ACTIVITY
Task items in activity body
– E-service requests
SERVICE <business type name>. <e-service name>SERVICE <business type name>. <e-service name>
INPUTINPUT < <in_attributes mapping>in_attributes mapping>
[OUTPUT[OUTPUT < <out_attributes mapping>]out_attributes mapping>]
CONSTRAINTCONSTRAINT < <constraint definition>constraint definition>
END_SERVICEEND_SERVICE
– Inline code
– External event posting
21
PERFORMER specificationPERFORMER specification PERFORMERPERFORMER <business type name> (<performer selection constraint>)<business type name> (<performer selection constraint>)
performer selection constraintperformer selection constraint– CONSTANTCONSTANT
PERFORMER PERFORMER DistributorDistributor (CONSTANT (CONSTANT IBMIBM))
– ANYANYPERFORMER PERFORMER Transportation_AgencyTransportation_Agency (ANY) (ANY)
– SAME_ASSAME_ASPERFORMER PERFORMER DistributorDistributor (SAME_AS (SAME_AS Activity1Activity1))
– VARIABLEVARIABLEPERFORMER PERFORMER ManufacturerManufacturer (VARIABLE (VARIABLE Activity2.bestManufacturerActivity2.bestManufacturer))
...Activity Definition ...Activity Definition
22
Sample Activity DefinitionSample Activity DefinitionACTIVITY Shipping
DESCRIPTION “Ship the order to the customer”.IN_PARAMETERS ProductDesc prod_desc, Integer quantity, UserInfo user_infoOUT_PARAMETERS Boolean shipping_statusPERFORMER TransportationAgency (ANY)WF_EVENT async-afterIMPLEMENTATION
E-SERVICE ShipOrder.InitiateShipping INPUT prod_desc, quantity, user_info OUTPUT shipping_status CONSTRAINT ATTRIBUTE_CONSTRAINT: duration int [0 .. 5] priority[1] END_CONSTRAINTEND_SERVICE
END_IMPLEMENTATION
END_ACTIVITY
23
Dynamic Properties of DWMDynamic Properties of DWM
ActiveActive: Business process may post synchronous and/or : Business process may post synchronous and/or asynchronous events to trigger the processing of business asynchronous events to trigger the processing of business rules.rules.
FlexibleFlexible: The e-service requests specified inside a process : The e-service requests specified inside a process model are bound to suitable service providers during the model are bound to suitable service providers during the enactment of the business process through a dynamic enactment of the business process through a dynamic service binding mechanism.service binding mechanism.
AdaptiveAdaptive: Process models can be easily modified to adapt to : Process models can be easily modified to adapt to the changing business environment. the changing business environment.
CustomizableCustomizable: Organizational customization and instance : Organizational customization and instance customization can be achieved through the customization of customization can be achieved through the customization of business rules attached to synchronous workflow events.business rules attached to synchronous workflow events.
24
Sample ScenarioSample Scenario
Order Entry
Check and Adjust Inventory
Acknowledge Purchase Order
Initiate Shipping
Begin
End
Distributor (ANY)
Distributor (SAMEAS A1)
Transportation Agency (ANY)
B ESYNC
AE
ASYNC
AE
A1:
A2:
A4: A5:
AND
AND
Distributor (SAMEAS A1)
ASYNC
T1
T2
T3
T4 T5
T6 T7
25
Process Definition Tool
Metadata Manager
Process Models, E-service Constraints,E-service Templates,
Events, Triggers,
Rules
KPMConstraint
GUI
Triggers, Rules, Data Classes, Events
E-Service Request Constraints
Process Models
Runtime WF Structures, Activity Codes,
E-service Templates
Event Server
ETR Server
Install Events
Install Events, Triggers, Rules
WF Code Generator
Process Models
Install Events
Invoke
Invoke
Invoke
Build-time Build-time EnvironmentEnvironment
26
Process Definition ToolProcess Definition Tool
27
Code Generation ApproachCode Generation Approach
Code GenerationCode Generation approach is used to implement the Workflow Engine. approach is used to implement the Workflow Engine. The Workflow Code Generator is used to process a process model’s The Workflow Code Generator is used to process a process model’s
meta-information and to generate meta-information and to generate run-time workflow structuresrun-time workflow structures and and activity codes.activity codes.
The Workflow Engine uses run-time workflow structures to schedule The Workflow Engine uses run-time workflow structures to schedule the transitions and data flows between activities, blocks, and subflows.the transitions and data flows between activities, blocks, and subflows.
When an activity is scheduled for execution, the Workflow Engine When an activity is scheduled for execution, the Workflow Engine simply loads the corresponding activity code from a run-time simply loads the corresponding activity code from a run-time repository and executes the code directly to perform the specified task repository and executes the code directly to perform the specified task items.items.
Code Generation approach results in a Code Generation approach results in a lightweightlightweight, , efficientefficient, and , and adaptiveadaptive Workflow Engine. Workflow Engine.
28
Run-time Workflow StructuresRun-time Workflow Structures
An entity structureAn entity structure provides the necessary information to schedule and execute provides the necessary information to schedule and execute each of the following entities in a process model: activities, blocks, and each of the following entities in a process model: activities, blocks, and subflows. subflows.
A control flow structureA control flow structure is generated for each of the following entities of a is generated for each of the following entities of a process model: activity, subflow, block, connector, and End-Activity. It process model: activity, subflow, block, connector, and End-Activity. It captures the control dependency between the entity and its preceding entities in a captures the control dependency between the entity and its preceding entities in a process model.process model.
– Entity name: The name of the entity of the control flow structure name: The name of the entity of the control flow structure
– Aggregation property: Aggregation property: JOIN connector: same as the aggregation property of the connector (i.e., AND, OR, or JOIN connector: same as the aggregation property of the connector (i.e., AND, OR, or
XOR).XOR). Otherwise, the aggregation property is SIMPLE.Otherwise, the aggregation property is SIMPLE.
– Transition(s):Transition(s): JOIN connector: multiple transitions. JOIN connector: multiple transitions. Otherwise, only one transition. Otherwise, only one transition.
A data flow structureA data flow structure specifies data dependency, i.e., the parameter mapping specifies data dependency, i.e., the parameter mapping information between two entities in a process model. information between two entities in a process model.
29
Dynamic Service BindingDynamic Service Binding Get e-services that need to be provided by the same service providerGet e-services that need to be provided by the same service provider
– E-Services inside an activity definitionE-Services inside an activity definition– SAME_ASSAME_AS
Put e-service request constraint and the values of input attributes togetherPut e-service request constraint and the values of input attributes together– Constraint on the service attributes of an e-service Constraint on the service attributes of an e-service
ATTRIBUTE_CONSTRAINT:ATTRIBUTE_CONSTRAINT:duration int RANGE[0 .. 10] priority[1]duration int RANGE[0 .. 10] priority[1]cost float RANGE[0 .. 1000] priority[2]cost float RANGE[0 .. 1000] priority[2]
INTER_ATTRIBUTE_CONSTRAINTINTER_ATTRIBUTE_CONSTRAINT iac1iac1: duration >4 : duration >4 implies implies cost < 800cost < 800
– The values of input parameters of an e-service requestThe values of input parameters of an e-service request
ATTRIBUTE_CONSTRAINT:ATTRIBUTE_CONSTRAINT:Product_Name String EQUAL “Compaq” Priority [1]Product_Name String EQUAL “Compaq” Priority [1]Model_Name String EQUAL “Model_Name String EQUAL “PentiumIII 800” Priority [1]” Priority [1]
Contact the Broker Server to get the proper service provider.Contact the Broker Server to get the proper service provider.
30
Activity CodeActivity CodeImport statementsClass processName::activityName{ variable declaration processName::activityName() // Constructor { [ Get reference of the broker proxy ] /* If there are e-service requests in the activity.*/ [ Get references of the event server and the ETR server ] /* If there are event postings.*/ } ActivityResult activate(Vector inputValues, String businessType, Hashtable serviceConstraints ) { Initialization of input variables … /* Following statements are for dynamic service binding */ [ Put input attribute values of an e-service to the e-service request constraint ] [ Contact broker proxy to get the service provider’s URL (dynamic service binding) ] … /* Following statements are for an e-service invocation */ [ Generate SOAP request message ] [ Invoke e-service and get SOAP response message ] [ Get the return value from the SOAP response message ] … /* Following statements are for an event posting. */ [ Construct the event object ] [ Post synchronous event to the ETR Server ] [ Post asynchronous event to the Event Server ] … /* For inline code, directly copy it to the activity code. */ [ inline code ] … }
31
Workflow Engine ArchitectureWorkflow Engine Architecture
Workflow Scheduler
E-Service Adapter
Initiate Workflow Instance
Activity Codes
Runtime WF Structure
Activity Handler
Service Client
Subflow Scheduler Block Scheduler
E-Service AdapterE-Service Adapter
ETR Server
Event Server
32
Run-time Modification to Process ModelRun-time Modification to Process Model
Run-time modifications to a process model is achieved by the modification to the run-time workflow structure.– Delete/Add a Transition
– Delete/Add a Data flow
– Replace an Activity
– Modify Condition
33
Summary of Research and ContributionsSummary of Research and Contributions The design of a The design of a Dynamic Workflow Model (DWM)Dynamic Workflow Model (DWM) by extending by extending
WfMC’s WPDL: adding the concepts of events and rules into WfMC’s WPDL: adding the concepts of events and rules into WPDL, introducing the WPDL, introducing the Connector Connector construct, encapsulating activity construct, encapsulating activity definitions, and supporting e-service requests. DWM is active, definitions, and supporting e-service requests. DWM is active, flexible, adaptive, and customizable. flexible, adaptive, and customizable.
The introduction of a constraint-based dynamic service binding mechanism for the enactment of business processes.
The design of an DynaFlow, which is a part of the ISEE information infrastructure for supporting e-business enterprises.
The technique for run-time modifications of the run-time workflow structures to alter the course of executing workflow instances.
How Dynamic?
(1) Constraint-based dynamic service binding
(2) Organizational customization of process model
(3) Instance customization of process model
(4) Run-time modification to process model
(5) Notification of Milestones of the enactment of business processes
34
Future WorkFuture Work
Security issuesSecurity issues– Process modelsProcess models
– Workflow eventsWorkflow events
– E-servicesE-services Correctness proof of a process modelCorrectness proof of a process model The assumptions on standardized e-service templates may not be The assumptions on standardized e-service templates may not be
realistic because different organizations may use different ontologies. realistic because different organizations may use different ontologies. Also, the e-services they provide may have different operations and Also, the e-services they provide may have different operations and attributes.attributes.
Further research can be done on e-service composition.Further research can be done on e-service composition.