kuali enterprise workflow kuali days – november 2008 scott gibson, university of maryland bryan...
TRANSCRIPT
Kuali Enterprise Workflow
Kuali Days – November 2008
Scott Gibson, University of Maryland
Bryan Hutchinson, Cornell University
James Smith, University of Arizona
Kuali Enterprise Workflow
• What is KEW?
• The Building Blocks of Workflow
• Developing a Workflow Document
• eDoc Lite
• Deployment and Integration
What is KEW?
What is KEW?
• A module of Kuali Rice• Provides a content-based routing engine• Used for business transactions in the form of electronic
documents that require approval from multiple parties• Composed of a set of services, APIs, and GUIs
KEW Core features
• Action List (User’s Work List)• Document Searching• Document Audit Trail (Route Log)• Flexible process definition (Document Type)
Splits, Joins, Parallel branches, Sub processes, Dynamic process generation
• Basic User and Group supportCan be overridden and customized to plug into Institutional
user and group servicesGroups and Users will be managed by KIM
• Rules Engine• Email Notification
KEW Core features
• Notes and attachments• Wide array of pluggable components to
customize routingWhere to route documentIndexing of document data for searchingEmail Notification CustomizationCustomization of Action ListCustomization of Routing Rules
• eDoc LiteFramework for creating simple documents quicklyWill see more of eDoc Lite later
KEW Core features
• Plug-in ArchitecturePackaging and deployment of routing components to the
Rice Standalone Server at runtimeInstitutional Customization
• Transactional ProcessingJTA can be used for multi-datasource transactions
• Can run in J2EE appservers• Can run in Servlet Containers
In non-J2EE environment, can use JOTM or other JTA implementation to provide JTA transactions
The Building Blocks of Workflow
Document Type
• Document TypeContains identifying information
Also contains document policies
Defines the Route Path executed for a document of that type
Hierarchical - children inherit attributes from their parents
Defined in XML
Route Node
• Route NodeA step in the routing process of a document typeDefines the behavior of the document when it reaches
that nodeExamples:
• Simple - do some arbitrary work• Requests - generate action requests using a Route
Module or the Rules engine• Split - split the route path into one or more parallel
branches• Join - join one or more branches back together• Sub Process - execute another route path inline• Dynamic - generate a dynamic route path
Rule Attribute
• Rule AttributeEvaluates document data to determine whether or
not the rule should fireDefines what data is collected on a ruleTypically corresponds to one piece of data on a
document (i.e dollar amount, department, organization, account, etc.)
Can be written in Java or easily defined in XML
Role Attribute
• Role AttributeResolves to a set of users and/or workgroups
who should receive action requests
Used to resolve Roles from external systems or databases for routing purposes
Examples: Fiscal Officer, Dean, Supervisor, etc.
KEW integration with KIM also does this…
Rule Template
• Rule TemplateA bunch of Rule Attributes
Rules = Document Type + Rule Template
Can also be used to define various other rule properties (defaults, etc.)
Routing Rule
• Routing RuleWho should receive action requests at a
particular node?
Created against a Rule Template.
Rule matching behavior is handled by the Rule Attributes
Defines the users, workgroups and/or roles who should receive action requests
Post Processor
• Post ProcessorReceives events as the process is executedStatus ChangeNode TransitionAction Taken by UserUsually used to “commit” the business transaction
once all approvals have been gathered
Searchable Attribute
• Searchable AttributeExtracts and indexes document data for searchingDefines custom fields for Document SearchCan be written in Java or defined in XML using
Xpath.
Developing a Workflow Document
KFS Routing Example
Let’s route a document…
and look at doc type
rule creation
route log
KFS Routing Example - Summary
• SummaryCan be simple or complexProcess definition is definedRule Attributes and Templates are CreatedRules are ConfiguredFor more complex routing logic, routing
components may need to be implementedFor simpler routing logic, out-of-the-box
components can be used (i.e. XPath eval.)
eDoc Lite
eDoc Lite
• Sometimes you need integration to a big client app with a sophisticated interface
eDoc Lite
• Sometimes you don’t.
• …this where eDoc Lite comes in.
eDoc Lite
• eDoc Lite is a simple, form-based system that runs entirely within a Standalone Rice Servercan be created with no java, just XML
eDoc Lite - Details
• Simple form creation and presentationXML definition of form fieldsUse your own custom XSLT for presentation
• Simple validation rulesRegular ExpressionCustom ValidatorsRequired/Not-RequiredJavaScript Validation
• SecurityAchieved through XSLT integration with KEW APIs
Building Blocks of an eDoc Lite
• Every eDoc Lite consists of 4 pieces:Field Definitions – defines what fields the EDL
has, what type, validations, etc.Stylesheet – an XSLT stylesheet that renders
the EDL for the userDocument Type – defines the workflow
process for the EDLEDL Association – associates each of the 3
pieces above to form an eDoc Lite
eDocLite – EDL Form
eDocLite – Summary
• Makes creating a workflow-enabled application based on a simple form easy
• No Java development required
• No application to deploy
Deployment and Integration
Deployment and Integration
• There are multiple ways to deploy and integrate applications with Kuali RiceBundled – Kuali Rice software is “bundled” into your applicationStandalone – a standalone server is deployed
• In addition, when deploying a standalone server, the following client integration options are available, most relate to the KEW moduleEmbedded KEW – workflow engine is embedded into your
applicationKEW Java Thin ClientWeb Services – for KEW and, eventually, KIMeDoc Lite
Bundled Mode
• All Kuali Rice modules are embedded into the client application, including the Web Application
• Does not require the deployment of a standalone Rice server
Ideal for development or “quickstart” applications
This is not desirable for Enterprise deployments of Kuali Rice
Bundled Mode Diagram
Standalone Rice Server
• The Standalone Rice Server allows you to run a central Kuali Rice application that can be integrated with multiple clients
• Facilitates a single KEW Action List, Document Search, etc.
• Allows for a shared KSB Service Registry• Supports multiple integration options for
clients:KEW Java Thin ClientEmbedded KEWWeb Services
KEW Java Thin Client
• Allows for a Java client application to integrate with the KEW module of Rice
• Uses Java Serialization over HTTP• All workflow processing happens on the
standalone server• If the workflow processing requires custom
code (i.e. Post Processors), then plug-ins need to be developed and deployed to the server
KEW Java Thin Client Diagram
Embedded KEW
• Embedded KEW allows you to configure a workflow engine embedded in your application but still use a standalone rice server
• This allows for the following:Integration of database transactions between client
application and embedded KEW (via JTA)Fast - Embedded client talks directly to databaseNo need for application plug-ins on the serverStill a single KEW web app but scalability is
increased because of multiple Workflow Engines
Embedded KEW Diagram
KEW Web Services
• There are a few web service endpoints that are exposed from Kuali Rice
• KEW has a subset of it’s API available using this integration method
• The KSB allows for exporting of services onto the bus using SOAP Web Services
• In the future, we hope to add more web service endpoints to Kuali Rice
• For example, KIM is being designed with web service remoting in mind
Bringing it all Together
• Leveraging the KSB and the previous examples, it’s possible to utilize multiple strategies for Kuali Rice/KEW integration and deployment
• Examples:Some clients running as Thin ClientsSome clients leveraging code deployed in plug-ins on
the standalone serverMultiple servers deployed in a cluster for scalabilitySome clients integrating directly with web service
endpointsSome clients running in Embedded ModeNumerous eDoc Lite applications
The Whole Picture
Questions?
Questions from the audience.
Rice web site: http://rice.kuali.org