1、123Basic Introduction to Workflow TechnologyWhat is Work Flow technologyWhat is WorkflowWhat is Workflow Management SystemWFM systems support in three functional areas: the Build-time functions the Run-time control functions the Run-time interactions with human users and IT application toolsWhat is
2、Workflow Enactment ServiceWhat is Workflow Engine4Generic Workflow Product Structure5WfMC and Workflow Reference ModelProcess Defition ToolWorkflow Enactment ServiceWorkflow Client ApplicationsInvoked ApplicationsOther Workflow Enactment ServiceAdministration & Monitoring toolsAdmin and WH ClientsSh
3、ark Tool AgentsTWEShark ServerInterface 1Interface 2Interface 3Interface 4Interface 567TWE IntroductionGraphical application for XPDL Process Definition Modeling. Makes creating and editing XPDL easy. Uses swim lines to represent participants of the process. Every XPDL element has property panel for
4、 editing element properties.Final output of modeling process is a XML file based on XPDL schemaXPDL created by TWE can be interpreted by any XPDL workflow engineAccomplished three main goals: Graphical representation of process definition Export of process definitions to XPDL Import of any valid XPD
5、L and its graphic representation8XPDL and TWEPackage the top element of XPDL schema External package concept How does TWE support external package concept How to create new XPDL and to define package properties in TWE9XPDL and TWEWorkflow Process DefinitionGraph and property panel representation of
6、workflow process definition in TWE Start/End markers10XPDL and TWETypeDeclarationStandard XPDL data typesCustom data typesPackage scopeProblems with a scope - external packages and application definitionsShark solution to scope problemHow to use it when defining variablesHow to define in TWEParticip
7、ant representation of users/roles/systemExternal package/Package/Workflow process scopeWhere to define - best practiceHow to define in TWETWEs Special “Arbitrary expression participant”TWEs LDAP support11XPDL and TWEApplication representation of applications to be executed at runtimeExternal package
8、/Package/Workflow process scopeWhere to define - best practiceHow to define in TWEHow to use it from Activitys ToolFormal parameters like a Java method parameter definitionDataField Synonymous (workflow relevant data, variable)Usage within workflow (conditions, actual parameters, ) Data types standa
9、rd/customScopeHow to define in TWEHow to use it in conditions, actual parameters, deadline expressions,12XPDL and TWE-Activity -represents the unit of work-generally associated with their performers and application assignments. 13XPDL and TWE-Different activity typesManual activityTool activityRoute
10、 activitySub-Flow activityBlock activity How to define in TWETransition Link between two activities Can describe the condition to get from the source to the target activity Different transition types Conditional/unconditional transition Otherwise transition Exception transition Default exception tra
11、nsition How to define in TWE How does TWE validate graphical transition insertion14XPDL and TWEActivitySet Group of activities and transitions inside process Executed by block activities When to use it How to define in TWEExtended attributes Necessity for vendor specific attributes Primary method to
12、 support vendor specific extensions. Defined by the user or vendor to express any additional entity characteristics How to define in TWE simple part of Extended Attribute complex part of Extended Attribute Can be defined for every main main XPDL entitity15TWE GUISplit into several parts: Main menu,
13、main toolbar and info bar. 4 areas with components Easy to layout components differently16TWE GUIComponents: Graph displays the selected process or activity set Graph toolbar Participant manipulation Activity and transition manipulation Standard editor functions: inserting, moving, selecting and del
14、eting Double click, right click functionality XPDL View Text view of the selected element Highlighting Search function (Graph) Overview overview of the whole process graph easy way to navigate17TWE GUI External package relations Relations amongst main package and its externally referenced packages T
15、ransient package pool Shows packages opened in Transient mode Add/remove Transient packages Copy from transient packages Navigator Hierarchical view of package and its main sub-elements Package tree hierarchical view of the whole package/XPDL Properties main details of selected element Search Displa
16、ys references to the selected object or search result Results in hierarchical view18TWE GUI Problems Displays information about problems in XPDL Possibility to easily navigate to the problematic element WfXML Communication with workflow engine based on WfMC If4 Uploading/downloading/updating XPDL) M
17、enu & Toolbar: File (new, open, reopen, close, save, recent files,) Edit (cut, copy, paste, undo, redo,.) Package (validation, insert process, properties, ) Process (properties, ) External packages Settings (Language, Configuration) Help19TWE ConfigurationBasic configuration fileOne property file pe
18、r componentConfiguring TWE behaviorConfiguring graphical propertiesPossibility to switch between different configuration/modes at runtime Shark engine configuration WfMOpen engine configuration20Possible TWE customizationsHelping XPDL developers to concentrate on business problemMaking XPDL modeling
19、 less error proneWorkflow engine dependent customization special ext. attributes and their property panels set of XPDL features it does not support XPDL features interpreted in a special way Introduction of new activity types E.g. automated activities for sending e-mails customized property panel fo
20、r entering all the informationSpecial XPDL template for creating new workflow processesTWE can be easily customized in order to support these requirements.21Modeling XPDLs for SharkPackages script type elementTool activity with sys. participant performer and start mode restrictionNo activity and sys
21、tem participant restrictionType specifics allowed data typesApplication definition and ToolAgentClass extended attributeDeadlines usage of additional (system) variables in expressions PROCESS_STARTED_TIME ACTIVITY_ACTIVATED_TIME ACTIVITY_ACCEPTED_TIMEType Declarations and External packages issue22Ap
22、plication definitions and tool agentsTool agent interface defined by WfMC Engine access to external system in a standard manner XPDL Application definition representation of real application like declaring a function in programming language this function is called by Tool activities defined in the p
23、rocess flow. Tool activities Provide information about the parameters to pass to the applicationMany different XPDL application can be mapped to tool agent represented by the same Java class Those application definitions can even They can define different formal parameters.23Deadlines, exception han
24、dling, transition conditionsDeadlines Defined for Activities A time until activity should be finished Workflow system periodically tests the deadline condition If deadline condition is satisfied, process will follow the “exception” transition as defined in XPDL.Exceptions Special transition types to
25、 model it Modeling what happens in the case of deadline Modeling what happens in the case of exception in tool agent execution.Transition conditions Expressions made by the usage of variables Expressions evaluated at run-time Expression must evaluate in boolean value Used to determine if the transit
26、ion should be triggered or not24Enhydra Shark/TWSEnhydra Shark / Together Workflow Server25Introduction to SharkWorkflow engine that executes processes based on XPDL definition.Completely based on standards defined by WfMC and OMGA library that can be embedded in WEB/Swing/Console application, or it
27、 can be deployed as CORBA service, WEB service, EJB service, RMI service, Supports automated, manual and mixed workflow processesExtensible work item allocation algorithms. Activities are automated through an extensible system of Tool AgentsHuman interactions are managed through work itemsThrough a
28、worklist API shark clients are able to manage work items.Fully transactional behavior with JTA supportCan be used in a cluster scenarioEasy change of DB used for persistence via DODS. It includes scripts for creating tables for DB2, HSQL, MSQL, MySQL, Oracle, PostgreSQL, 26Introduction to SharkA lot
29、 of possibilities to configure engine thanks to its nice architectureEach shark component has an API, and default implementation(s) Standard implementation simply replacable by the custom ones Even the kernel itself can be tuned-up.Default kernel does not use proprietary extensions of XPDL (extended
30、 attributes)Supports ToolAgent concept defined by WfMC. Comes with several useful tool agents already definedSupports deadline handling and XPDL exception transitionsPossible callback to shark from its componentsCan use custom Java classes as variablesAppearing of deadlocks is minimized thanks to th
31、e DODS buffer transaction.Supports XPDL definition update27XPDL and Shark28XPDL and SharkProcess definitionFor each XPDL definition there is a factory that creates process instancesEvery process instance has unique instance IdActivity definition Created during process enactment, and based on the flo
32、w and rules defined in XPDLevery activity instance has unique instance IdVariable definitionCreated during process enactment based on XPDL definitionThe same Id as in XPDL Assigned to process/activity context Value is changing in runtime through shark API or during tool agent executionEngine execute
33、s processes based on XPDL definitionEngine interacts with the user that can update process/activity variables, and complete activity; Based on user input, variable values, engine determines which activity will be executed next 29Shark architectureThe architecture is divided into three main API compo
34、nents:shark client API, shark kernel and shark plug-in APIs30Shark client APIs - possibilitiesAPI for handling XPDLs Getting the list of uploaded XPDLs (and their versions), upload, update, delete, retrieval of XPDLs for the monitoring purpose (possible usage from the client side to graphically show
35、 the process flow)API for obtaining the list of uploaded processs definitionsAPI for obtaining various runtime and XPDL informationCore API (OMG API and WAPI) Instantiating processes, aborting processes/activities, retrieving/changing process/activity variables, completing activity, API for deleting
36、 processes, checking deadlines and limits, cache handlingFilter builder API:Filters and OMGs “WfXXXIterators”Filters and WfMCs WAPIWhy to use filter builders?31Core client API (OMG API)32Shark kernelImplementation of special core kernel APIA glue that bounds client API implementations and internal c
37、omponent implementations based on provided configuration.Handles the client requests by parsing XPDL definition, communicating with internal components and implementing its own logic to achieve the goal.The benefit of having kernel API33Kernel processing34Kernel processing (simplified)35Shark plug-i
38、n APIsMandatory plug-in components and their purpose: Repository persistence componentInstance persistence componentScripting componentOptional plug-in components and their purpose: Assignment componentUserGroup componentParticipantMapping componentToolAgent componentApplicationMapping componentEven
39、tAudit componentLogging componentCaching componentSecurity component36TWS - shark extensionsTWS is shark extension that: Implements advanced APIs Extends shark kernel to interpret extended attributes Brings more useful implementations of plug-in APIs Brings more useful tool agent implementationsMost
40、 important additional functionality: Possibility to use variables not defined in XPDL Possibility to have transient processes and variables (even the ones not defined in XPDL by the usage of special naming convention) Possibility to specify that all activities should not have special context, but to
41、 use the one of the process (for performance reasons) Possibility to specify a process or activity behavior per definition. API to “find out the future and the past”, and to navigate through process based on its XPDL definition37Swing Admin process monitoring38WEB Client worklist handling39Worklist
42、handlerApplication that enables a human workflow participant to manage the work items which have been assigned to them Shark provides graphical Worklist Handlers: graphical swing worklist handle, WEB based worklist handler applicationWorklist handlers able to access shark through: POJO EJB WebServic
43、e40Assignment managerWhats the purpose of Assignment managerAssignmentManager 4 method interface:Method to configure managerMethod to obtain UserGroup API implementationMethod to obtain ParticipantMapping API implementationMethod to actually retrieve assignments for the activitySeveral assignment ma
44、nager implementations coming with Shark:StandardAssignmentManagerHistoryRelatedAssignmentManagerXPDLStraightParticipantMappingAssignmentManagerHow to handle XPDL, Participant mapping and UserGroup informationHow to write your own assignment manager41Tool agents XPDL Application definition42Tool agen
45、ts definition of activity ToolThe actual values for the application parameters will be determined at run-timeWe can consider such Activity execution as a call to the function43Tool agents how it worksShark kernel is passing workflow relevant data to tool agent and expecting tool agent to update some
46、 variables as the result of its call.When XPDL is deployed into shark engine, and when tool activity is about to execute shark kernel:gets the current value of variables specified as actual parameters in the case actual parameter is an expression, it evaluates expression using current values of all
47、process variables and specified expression interpreterprovides these values to a DefaultToolAgent (if we do not use Application mapping)DefaultToolAgent reads an ext. attrib. ToolAgentClass (from Application definition) delegates a call to appropriate tool agent specified by this attributeActual too
48、l agentreads additional extended attributeExecutes tool agent logic using variables provided by kernel updates variable values.At the end, kernel reads-back the variables which type is OUT or INOUT and updates process instance variables.44Tool agentsHow to write your own tool agentHow to model XPDL
49、to react upon some expected errors in Tool AgentsTwo approaches when implementing tool agent: To expect a certain parameter at a certain position To search for parameters by the formal parameter name from XPDL definition 45Callback from shark plug-in components to shark engineIn order to obtain more
50、 information required to do their job, plug-in components can do a callback to engine. When doing a callback, components are using engines client API, as any other client application does.Examples: ToolAgent implementation can query shark engine in order to set/get variables of some process instance
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。