Share this book "Activiti" and links to several workflows

Source: Internet
Author: User
Tags jbpm

Now make the work flow, open source many use Activiti, but the related Chinese book actually not much, in when when found a copy, temporarily did not download to PDF piracy, read the catalogue is good, especially from the probation chapter understand history, so share a bit.


Java Workflow Development Framework Comparison
http://blog.csdn.net/chinarenzhou/article/details/7679148
Throughout jbpm: from JBPM3 to JBPM5 and Activiti5
Http://www.infoq.com/cn/articles/rh-jbpm5-activiti5
Workflow Engine Activiti Usage Summary
http://blog.csdn.net/ocean20/article/details/16961679


Benefits of enterprise Application workflow
Http://jingyan.baidu.com/article/90895e0fe9c56164ec6b0b24.html

Benefits of Workflow Management
Http://blog.sina.com.cn/s/blog_51ef3b580100azq3.html

Introduction to Workflow engine features
http://wenku.baidu.com/link?url=qnvrlphofuwuvfiu7_z8q-c4gnz_- U75oekrane4s6iamicb0emetp4weavwobdcql76-t3kp1oeasfjah-1xkbseqkxqcjljanxxh_9dhq


Fourth chapter design and implementation of workflow engine (I.)
Http://blog.sina.com.cn/s/blog_5f30147a0100d9jw.html


Activiti Workflow engine uses
Http://www.open-open.com/lib/view/open1350460225367.html
Here are a lot of Activiti related documents!

Comparison of three major workflow engines (2005)
Http://www.360doc.com/content/05/0806/02/73_4713.shtml

The great Situation of Workflow (2006)
Http://www.newmaker.com/art_17650.html

Selection of Workflow engine
Http://wenku.baidu.com/link?url=2VL5lW8Na24dnkGlntEVigs2cPiyN5xwqqp1RVkq5H8dlZFPN6SXVLjPuZF_ xgv8xxrsle8pdy0j2vt8ektsts0nwfz9mlnmxwlzw6rui3g


Baidu Encyclopedia-Workflow
Http://baike.baidu.com/link?url=ZjElBNByyZz_ItLtd_Uqt3Sadcwv0-4CDO806vKQWJDuUOFybbkzpg8GOB1EU71w8bT4x64RoRXBrFXa7o_dK


Directory
This book is recommended
Objective
The first part prepares the article
The 1th chapter of Understanding Activiti
1.1 What is Activiti
1.2 Workflow Basics
1.2.1 What is BPM
1.2.2 Workflow Life Cycle
1.2.3 What is BPMN
Characteristics of 1.3 Activiti
Application of 1.4 Activiti
1.5 Activiti Architecture and components
Comparison between 1.6 Activiti and jBPM5
1.7 Summary of this chapter
The 2nd chapter constructs the Activiti development environment
2.1 Downloads Activiti
2.1.1 Directory structure
2.1.2 Javadocs
2.2 Environment Configuration Check
2.2.1 Checking and installing the JDK
2.2.2 Check and install Ant
2.2.3 Checking and installing Maven
2.3 Introduction to configuration Files
2.3.1 Activiti configuration file
2.3.2 Maven configuration file
2.4 Hello World
2.4.1 The simplest process definition
2.4.2 Creating a Unit test class
2.4.3 Run Hello World
2.4.4 Adding a business node
2.5 Activiti Explorer
2.5.1 Configuring and Running Activiti Explorer
2.5.2 using Activiti Explorer
2.6 Summary of this chapter
The second part of the basic article
3rd Chapter Process Design Tools
3.1 Process designer based on B/S architecture Activiti Modeler
3.1.1 Activiti Modeler Features
3.1.2 Download signavio-core-components
3.1.3 Configuration Package and run
3.1.4 Windows user Packaging
3.1.5 Design Leave process
3.1.6 Export Bpmn2.0.xml
3.2 Using Activiti Modeler in Activiti Explorer
3.3 Process designer based on Eclipse plug-in Activiti Designer
3.3.1 Activiti Designer Features
3.3.2 Installing Activiti Designer
3.3.3 Design Process
3.3.4 Automation
3.3.5 Upgrade History Legacy Process Design
3.3.6 Import Activiti Modeler Design
3.3.7 swimming pool with swim lanes
3.3.8 using lanes and pools in Activiti designer
3.4 Summary of this chapter
4th Chapter Activiti and BPMN 2.0 specification
4.1 Start and End events
4.1.1 Startup Events
4.1.2 End Event
4.2 Sequential Flow
4.2.1 Standard Sequential Stream
4.2.2 Conditional Sequential Flow
4.3 Quests
4.3.1 User Tasks
4.3.2 Script Task
4.3.3 Java Service tasks
4.3.4Web service tasks
4.3.5 Business Rule Tasks
4.3.6 Mail Tasks
4.3.7Camel Tasks
4.3.8Mule Tasks
4.3.9 Manual Tasks
4.3.10 Receiving tasks
4.3.11Shell Tasks
4.3.12 multi-instance
4.4 Gateways
4.4.1 Exclusive Gateways
4.4.2 Parallel Gateway
4.4.3 Containment Gateway
4.4.4 Event Gateway
4.5 sub-processes and invoke activities
4.5.1 Sub-process
4.5.2 Invoke activity
4.5.3 Event Sub-process
4.5.4 Transaction Sub-process
4.6 Boundary and intermediate events
4.6.1 Boundary Events
4.6.2 Intermediate Capture Event
4.6.3 Intermediate Throw Event
4.7 Listeners
4.7.1 Execution Listener
4.7.2 Task Listener
4.8 Summary of this chapter
The third part of the actual combat
5th Chapter User and group and deployment management
5.1 Users and Groups
5.1.1 Users
5.1.2 Group
5.1.3 User-to-group relationships
5.1.4 users and groups in a user task
5.2 Deployment of Process resources
5.2.1classpath mode
5.2.2InputStream mode
5.2.3 String method
5.2.4zip/bar Format Compression Package mode
5.3 Process deployment and resource reading
5.3.1 Read the deployed process definition
5.3.2 Deployment process from client
5.3.3 reading the XML of a process definition
5.3.4 read the process definition of the picture and the image of the Chinese garbled
5.3.5 Deleting a deployment
5.4 Summary of this chapter
Chapter 6th Task Form
6.1 Dynamic Forms
6.1.1 Process Definition
6.1.2 Unit Test
6.1.3 running processes in Activiti Explorer
6.2 Implementing your own Activiti Explorer
6.2.1 Perfecting the authentication function
6.2.2 Process Initiation Form
6.2.3 Task signing and handling
6.2.4 field types for custom forms
6.3 External Forms
6.3.1 Process Definition
6.3.2 Unit Test
6.3.3 Customizing the form engine
6.3.4 Read Process Initiation form
6.3.5 Task signing and handling
6.4 Summary of this chapter
7th Chapter Activiti and container integration
7.1 Process engine Factory
7.1.1 How to create an engine
7.1.2 Configuration Processenginefactory-bean
7.2 Automatic deployment process definition
7.3 Expressions
7.3.1 Expression Basics
7.3.2 Expression Example
7.3.3 using spring to manage variables
7.4 Listeners
7.5 Spring Container Integration Application Example
7.5.1 Business Modeling
7.5.2 START Process
7.5.3 Task Read
7.5.4 Task Handling
7.6 Initializing the engine with spring annotations
7.6.1 using @enableactiviti annotations
7.6.2 using the Spring boot initialization engine
7.7 CDI Module
7.7.1 Startup Example
7.7.2 engine configuration and process definition
7.7.3 Process Definition and startup
7.7.4 Task Processing and completion
7.7.5 Event Monitoring
7.8 Summary of this chapter
The 8th Chapter Mail Service
8.1 Configuration and Testing
8.1.1 Build mail system
8.1.2 sending mail via Activiti Mail task
8.1.3 using Gmail to send mail
8.2 Integration with Business
8.2.1 Send mail instantly
8.2.2 sending messages regularly
8.3 Summary of this chapter
Chapter 9th Multi-instance
9.1 Non-user tasks
9.2 User Tasks Multi-instance
9.2.1 Sequential Way Processing
9.2.2 Parallel Mode processing
9.2.3 Set End Condition
9.3 Examples of application-leave to be countersigned
9.3.1 Process Definition
9.3.2 Task Handling
9.4 Approval of comments
9.5 Summary of this chapter
10th Zhang Ziyi (process and invoke activity
10.1 Sub-processes
10.1.1 Process Definition
10.1.2 Process Management
10.1.3 Analyzing process data
10.2 Invoke Activity
10.2.1 Process Definition
10.2.2 Unit Test
10.2.3 Process Management
10.2.4 Analyzing process data
10.3 Event Sub-process
10.3.1 Process Definition
10.3.2 Unit Test
10.4 Multi-instance support
10.5 Summary of this chapter
Chapter 11th Events
11.1 Startup Events
11.1.1 timed Start Events
11.1.2 Message Start Events
11.2 End Event
11.3 Boundary Events
11.3.1 Anomalous Boundary Events
11.3.2 Message Boundary Events
11.3.3 Signal Boundary Event
11.4 Intermediate Events
11.5 Summary of this chapter
12th Chapter User Tasks and Attachments
12.1 User Tasks
12.1.1 Improvement Task List
12.1.2 Improving task Forms
12.1.3 Task related personnel
12.1.4 Anti-Signature task
12.1.5 Candidates and candidate groups
12.1.6 Improve task Query
12.2 Sub-tasks
12.3 Manual Tasks
12.4 Accessories
12.5 Improvement Comments List
12.6 Task Delegation
12.6.1 Unit Test
12.6.2 delegation in a task form
12.7 Summary of this chapter
13th chapter Process data query and tracking
13.1 Query API Introduction
13.2 Run-Time data queries
13.2.1 Task Query
13.2.2 Query the process of participation
13.3 Flowchart Tracking
13.4 Historical Data query
13.4.1 querying historical activities and forms
13.4.2 Querying archived processes
13.5 customsql query based on MyBatis
13.5.1 Defining the Mapper interface
13.5.2 Display Data
13.6 Summary of this chapter
14th Chapter Administrator Features
14.1 Process Status
14.1.1 Process Definition Status
14.1.2 Job Query
14.1.3 Process Instance State
14.2 Job Management
14.2.1 Job Execution principle
14.2.2 Job Execution exception
14.2.3 Exclusive vs. asynchronous
14.3 Deleting a process instance
14.4 Process Definition Permission Control
14.4.1 permission interception
14.4.2 set up candidate and candidate startup groups
14.4.3 Read candidate boot data
14.5 Read Engine properties
14.6 database queries
14.7 Users and Groups
14.8 Summary of this chapter
Part IV high-level article
15th Chapter Integrated WebService
15.1 Release WebService Services
15.2 Defining WebService tasks in a process
15.3 Calling WebService in the process
15.4 Summary of this chapter
16th. Integration Rule Engine
16.1 Defining processes and rules
16.1.1 Deployment Rule Files
16.1.2 Unit Test
16.2 Summary of this chapter
17th Chapter Integrated JPA
17.1 Configuring JPA
17.1.1Standalone mode
17.1.2Spring mode
17.2JPA release of Leave process
17.2.1 persist JPA Entities when starting a process
17.2.2 Changing JPA Entity properties
17.2.3 Clean up History form data
17.3 Summary of this chapter
18th Chapter Integration ESB
18.1Camel Introduction and Quick Start
18.2 Calling Camel in a process
18.2.1Camel Dependencies and Configuration
18.2.2 Defining Camel Routes
18.2.3 Performing unit tests
18.2.4URI Input Parameters
18.2.5URI Output parameters
18.3 Asynchronous Camel Task
18.4 Starting a process in camel
18.5 integrates into Mule
18.5.1Mule Quick Start
18.5.2Mule, spring and Activiti integration
18.5.3 calls mule in the process
18.6 Summary of this chapter
19th Chapter Unified Identity Management
19.1 a set of typical identity systems
19.2 Engine Identity Interface mode
19.3 using views instead of physical tables
19.4 set into LDAP
19.5 Summary of this chapter
Chapter 20th REST Services
20.1 Introduction to Communication protocols
20.2REST API Overview
20.3 Publishing the rest API
20.3.1 Access via browser
20.3.2 access via HttpClient
20.3.3 access via Restlet
20.3.4 access via Apache CXF
20.4 Integrated Rest API
20.4.1 dependencies and configuration files
20.4.2 Access via Ajax
20.5 Complete Example
20.5.1 deployment Process
20.5.2 Query Deployment
20.5.3 query Process Definition
20.5.4 START Process
20.5.5 reading process variables
20.5.6 Query Tasks
20.5.7 Signoff Mission
20.5.8 Complete the task
20.5.9 Querying historical data
20.6 integrated Flowchart tracking component Diagram Viewer
20.6.1 Preparing resource Files
20.6.2 Preparing the configuration file
20.6.3 Access Diagram Viewer tracking process
20.7 Building Process Center based on rest service
20.7.1 Infrastructure
20.7.2 Form Mode selection
20.7.3 Unified Components
20.7.4 Transaction Management
20.8 Integrated process designer Activiti Modeler
20.8.1 Preparing resource Files
20.8.2 Preparing the configuration file
20.8.3 Changing the default configuration
20.8.4 Creating a model
20.8.5 process XML for exporting models
20.8.6 transforming a model into a process definition
20.8.7 converting a process definition to a model
20.8.8 Deleting a model
20.9 Summary of this chapter
21st Chapter Invasion Activiti
21.1 parsing BPMN Files
Conversions between 21.1.1BpmnModel objects and XML
21.1.2 Dynamic Creation Process
21.1.3BPMN Parsing processor
21.2 Global event handlers
21.2.1 Defining event Handlers
21.2.2 handling of captured events
Exception handling for 21.2.3 event handlers
21.2.4 dynamically registering event handlers
21.2.5 Task Auto-turn
21.2.6 Event Log
21.3 Commands and interceptors
21.3.1 Command and Interceptor operation mechanism
21.3.2 Custom Commands
21.3.3 command Blocker
21.4 Process Virtual Machine-PVM
21.4.1 Introduction to PVM
21.4.2Hello PVM
21.4.3PVM Advanced
21.5 Summary of this chapter


The first part
Prepare the article
Workflow (WorkFlow) engine is widely used in various information systems, the original scattered or even chaotic business carding after the establishment of a business specification process, and then to constrain the standardization of business processing and operation. The requirements staff and developers work together to develop a process definition that conforms to the BPMN2.0 specification and then deploy it to the workflow engine, which automatically drives the business process.
In this part, as a preparation, the 1th chapter introduces what is Activiti and its historical background, then introduces the concepts of workflow, BPM, BPMN, so that the readers of the first contact workflow can quickly understand the relevant concepts and various specifications. The 2nd chapter starts from setting up the development environment, then introduces the HelloWorld of Activiti and helps readers get started quickly.


1th Chapter
Meet Activiti
Many people should be familiar with the workflow (Workflow). Life is full of living "flow": in the unit to take leave, the first to find leadership approval, in the leadership approval after the application is approved; from the online shopping, the moment of the order has triggered a workflow, at this time can track the shopping process, when the order, what time to pay, when the delivery, when the goods, When you sign a courier, it's the end of a work flow.
Workflow is widely used in a variety of task-driven systems to see it, such as CRM, ERP, ECM, BI, OA and so on. There are also many product or platform integrated workflow engines in enterprise applications to handle the business processes initiated during system operation.
Workflows always drive people in the form of tasks (task) to process the business or drive the business system to complete the job automatically. With the workflow engine, we do not have to wait for the progress of other people, to be blunt, we only need to care about the system home page to do the number of tasks, the system reminds the current number of tasks to be processed.


1.1 What is Activiti
When people first contacted Activiti, they did not understand why it was called, and no explanation was found in the dictionary. One might think of another word activity, the difference between a single letter and a activiti. Some basic readers of the workflow may quickly understand that the business process is chained together and each link is assigned to a task, and each task can be divided into multiple activities. As a daily example-the next step in online shopping, you first need to search for the item you want to buy, then add it to your cart, and then fill in your mailing address and pay. Each action in this example can be called activity, which is the smallest component of a business process. Many activities in English must be in the plural form, that is, activities, and finally, a complex simplification of the collection of activities, so as to interpret the purpose and design of Activiti and workflow.
This project is another masterpiece of Tombayen (founder of JBPM) since 2010 when he left JBoss to join alfresco: The first edition was released in May 2010, when only the simplest process was supported, and the subsequent version perfected the support for the BPMN2.0 specification.
It is worth mentioning that, in addition to Tombayen and more than 10 core developers involved in the development of the project, there are other company employees, such as SpringSource, MuleSoft, salves, Signavio, Fusesource, Nextlevel and so on.
Activiti is a lightweight workflow business management platform for enterprise users, developers, and system administrators, with the core of a fast, stable BPMN2.0 process engine developed using Java. Activiti is released under the ApacheV2 license and can be run in any type of Java program, such as servers, clusters, cloud services, and so on. The Activiti can be seamlessly integrated with spring. At the same time, the design based on minimalist thinking makes Activiti very lightweight.
Activiti has an active community, and more and more companies are choosing Activiti as their own process engine or embedding it into their own system platform (such as an ESB).
Let's take a quick look at the history of workflows and their related specifications.




1.2 Workflow Basics
1.2.1 What is BPM
BPM is the abbreviation of businessprocessmanagement, the Chinese meaning is business process management, is a set of enterprises to achieve a variety of business integration of a comprehensive management model.
BPM is a collection of logically related activities that are executed for the purpose of achieving certain business purposes. The output of a business process is a product or service that meets the needs of the market. According to the different functions, management scope and so on, enterprise process management generally divides into the production process layer, the operation layer, the plan level and the strategic level four levels. BMP is an IT tool that promotes the integration and adjustment of business methods and solutions between people, between people and systems, and between systems and systems, based on changes in the operational environment.
BPM was first developed by the gradual integration of workflow and Enterprise application integration (enterpriseapplicationintergration) to meet paperless office needs (one of the earliest requirements). I have seen the early involvement of the OA system development when the "original" workflow-no workflow engine, the entire process is a series of separate tasks for different task nodes designed to concatenate, complete a node in the database to mark the current task name, in order to achieve "process-driven."
Over time, the scope of BPM definition has been extended to meet paperless office requirements, and BPM is now an enterprise integration technology as a service-oriented system architecture SOA (service-orientedarchitecture), Enterprise application integration EAI ( Enterpriseapplicationintegration), a supplement to the Enterprise Service Bus ESB (Enterpriseservicebus).
Conceptually, BPM consists of two different meanings: Management specification and software engineering. The major BPM vendors have long tried to abstract these two different aspects, but they remain chaotic.
As a management specification, BPM is the responsibility of every strategic manager. BPM is the core business process that an organization must perform, encompassing the value of the enterprise and how it is delivered. As part of their daily work, business systems can define business processes with model and process specifications. The BPM flowchart expresses the steps to execute the process and the specific goals have been fulfilled. In particular, these models are used for human-to-human communication. These are all unresolved, meaning that they can contain higher-level valuable information without including unnecessary details. This interpretation of unresolved process models is also known as abstract business processes (abstractbusinessprocesses.).
BPM can be used by BPM systems (BPMS) to execute executable business processes as software engineering. An executable business process is a process that represents a different sequence of processes based on the processes. A flowchart can be seen as an abstract business process. An executable process differs from an abstract business process because it always runs in the simplest way. This part of the content is also recognized and accepted by most manufacturers.
1.2.2 Workflow Life Cycle
A complete workflow life cycle takes 5 steps, and the iteration loop, 1-1, is shown.
Definition: The workflow life cycle always begins with the process definition. The task at this stage is primarily to collect business requirements and translate them into process definitions. This is typically done by the business needs staff, which is then transferred to the process definition that the computer can identify.
Publish: The developer packages a variety of resources and then publishes the process definition in System Management (platform). Include process definition files (end of Bpmn20.xml), custom forms, task listener classes in a specific process engine.
Execution: A specific process engine (for example, Activiti) executes the business process in a task-driven manner, in accordance with a predefined process route.
Monitoring: This phase is dependent on the execution phase. The business person collects the results of each task (task) While processing the task, and then processes the results accordingly, for example, in the procurement of office supplies process, after the approval of the leadership, the procurement staff will go out of the purchase according to the application form.
Optimization: At this stage, a complete process is over, perhaps to meet the business requirements, perhaps optimization, and a bad situation is the need to redesign (the process does not end abnormally terminated), optimization and design is exactly what this stage needs to deal with. The root cause of the problem is analyzed based on the results of the process, and then further improved on this basis and a new cycle is started again.
1.2.3 What is BPMN
Businessprocessmodelingnotation, referred to as BPMN, is a business process modeling callout, published by the BPMN Standards Organization, and its first edition of the BPMN1.0 specification was released in May 2004. After years of improvement new specification BPMN2.0 was released in 2011. After the major manufacturers, open source communities are based on the 2.0 specifications of the design of their own process engine, the end of the various manufacturers "fragmented" situation, the corresponding unified standard, thus conducive to future product migration.
BPMN defines the business flowchart, which is based on flowchart technology, and also cuts the graphical model for creating business process operations. A model of a business process is a graph of graphical objects, including activities (and, optionally, work) and flow controls that define the order of operations.
Some concepts in the bpmn1.x version, such as human tasks, scripts that can be executed, automated decisions, and so on, are standardized in a way that is independent of the vendor's visualization. The BPMN2.0 specification focuses on how to implement semantics and a common interchange format that is recognized by the industry. This means that BPMN2.0-based process modeling is not only common on process designers, but can also be executed on any process engine that conforms to the BPMN2.0 specification.
There are many details about BPMN, and the official documentation is full of more than 500 pages, and in the 4th chapter we introduce the BPMN2.0 specification supported by Activiti and the Activiti extension based on the BPMN2.0 specification. The other content of BPMN is not listed in this book, and interested readers can read the official documents carefully.




Features of 1.3Activiti
1. Persistence of data
The design idea of Activiti is concise and fast. Developers with experience in application development know that the bottleneck of the application is in the process of exchanging data with the database, and for this reason Activiti chooses to use MyBatis, so that the command can be executed with the best SQL statements, so that the engine can maintain the highest performance on speed.
2. Engine Service Interface
The Activiti Engine provides seven service interfaces, all obtained through Processengine, and supports a chain-based API programming style. Table 1-1 provides a simple list of the seven service interfaces and their roles, which will be introduced in a later chapter.
Table 1-1activiti Engine's seven service interfaces
Service Interface function
Repositoryservice Process Warehouse Service for managing process warehouses, such as deploying, deleting, and reading process resources
Identifyservice Identity Service, you can manage and query the relationship between users and groups
Runtimeservice run-time service that can handle all running state process instances, tasks, and so on
Taskservice Task service for managing and querying tasks such as sign-off, handling, assigning, etc.
Formservice form Service for reading and process, task-related form data
Historyservice History Service, you can query all historical data, such as process instances, tasks, activities, variables, attachments, etc.
Managementservice engine Management Service, and specific business-independent, mainly can query engine configuration, database, jobs, etc.
3. Process Designer
In the jBPM4 era there is a dedicated eclipse plugin that can be used to design jpdl, and the same Activiti team has designed the process designer-eclipsedesigner to design BPMN2.0 specifications. There is also a web-based Activitimodeler process designer for Activiti customized by Signavio company.
4. Native Support Spring
Activiti native support for spring, this is especially important for enterprise applications: It is easy to do spring integration, making it easy to manage transactions and parse expressions (expression).
5. Separating runtime from historical data
Activiti inherits from the JBPM4 and also follows the separation of the runtime from the historical data in the design of the table structure, so that the design can quickly read the runtime data and read from the Specialized historical data table only when the historical data needs to be queried. This design method can greatly improve the data access efficiency, especially when the data accumulates quickly and still can respond rapidly.




Application of 1.4Activiti
At present Activiti in foreign countries have been used by many manufacturers, and even someone specifically set up a company to train the use of Activiti. Activiti's domestic development is on the rise in a straight line, and has set up a technology community involving a number of enthusiastic technology enthusiasts. At present, many new projects and new products are beginning to adopt Activiti as the next generation workflow engine.
1. Application in System integration
Integrate with the ESB (Enterpriseservicebus, Enterprise Service Bus), such as Mule.
Integrate with the Rule engine (ruleengine), such as Jbossdrools.
Embed an existing system platform, for example, many companies have developed their own system platform in which Activiti is embedded as part of the platform.
2. Application in other products
Alfresco Company's ECM (enterprisecontentmanagement) products alfresco widely used in enterprises, mainly related to document management, collaboration, records management, Knowledge Base management, Web content management and so on.
If the enterprise or customer is using alfresco to manage the document, then the process definition for the document management process design can be deployed directly on the alfresco, and if you have not previously contacted JBPM and now have learned to use Activiti, then you will not need to learn other process engines. The difference between Activiti and jbpm is mentioned in section 1.6.
The JBPM is used as the process engine before Activiti is released, and alfresco supports both when activiti matures, although support for JBPM may be canceled at some later time.




1.5Activiti Architecture and Components
The most important of the Activiti architecture is certainly the engine, and of course the external tools and components just mentioned, as shown in 1-2.
Figure 1-2activiti Frame composition
The following describes the individual components in the Activiti schema diagram in turn.
Activitiengine: As a core module, provides parsing, execution, creation, management (tasks, process instances), query history, and generating reports based on the results of the BPMN2.0 specification.
Activitimodeler: is a model designer, it is not developed by the Activiti company, but by the industry recognized by the Signavio company (Signavio was originally charged products, is now free of charge to Activiti users). Suitable for business people to translate requirements into canonical process definitions.
Activitidesigner: Functions and Activitimodeler are similar and provide visual design functionality based on BPMN2.0 specifications, but the definition of the BPMN specification is not fully supported at this time. For developers, the business requirements staff can be imported into the designer using the Signavio design process definition (XML format), allowing the developer to further process it into a workflow definition that can be run.
Activitiexplorer: Can be used to manage warehouses, users, groups, start-up processes, tasks and so on. This component provides a basic design model using the rest-style API, which is designed to get developers started quickly. If the business is simple, it can also be used directly without development. It can also be used as a process and task management system for background administrators.
Activitirest: Provides a restful style of service that allows clients to interact with the restapi of the engine in JSON, with common protocols that cross-platform, cross-language features.




Comparison between 1.6Activiti and JBPM5
The current popular workflow engine has Activiti and jBPM5, and most of the projects and platforms were developed based on JBPM3 and JBPM4 before JBPM5 was released. This section compares Activiti and jBPM5 in terms of technical and practical applications. Table 1-2 compares the differences from the technical level.
Comparison of technical aspects between table 1-2activiti and jBPM5
Technical composition ACTIVITIJBPM
ORM Framework Mybatis3hibernate3
Persistent Standard No EJBJPA specification
Transaction management MyBatis comes with/spring integrated transaction Bitronix, based on JTA transaction management
Database connection Mode Jdbc/datasourcejdbc/datasource
Spring supports native support spring, which can use spring proxy beans as part of the expression in the process, and supports JPA and transaction management by default without providing support for spring
Supported databases Oracle, SQL Server, MySQL, H2, memory database, etc. oracle, SQL Server, MySQL, memory database, etc.
Design mode command mode, observer mode, etc.
Apachemina asynchronous communication between internal service communication service through API calls
Integrated interface soap, Mule, restful message communication
Supported process formats BPMN2, XPDL, JPDL, etc. (implemented by PVM) are currently only supported Bpmn2xml
Engine core PVM (Process virtual machine) Drools
Technology predecessor JBPM3, Jbpm4droolsflow
Members of the team, in addition to the employees of the alfresco company, include employees of Spring-source, MuleSoft, salves, Signavio, Fusesource, Nextlevel and others who have joined a dedicated team, as well as some individual participants
The Add-on tool provides the Eclipse plugin-based process designer-eclipsedesigner, which provides a restful activitiexplorer that can be used to manage warehouses, users, groups, start-up processes, Task handling also provides Eclipse plug-ins and a Web application management process
The release cycle is fixed every two months, including: engines, Eclipsedesigner, Activitiexplorer, rest applications jbpm release cycles are relatively less fixed, and the release includes engines and Eclipse-based designers
Activiti is a derivative version based on the jBPM4 design, if the choice Activiti can continue to follow the idea of jbpm design, integration Activiti to the project or platform, which is relative to the jBPM5 of an advantage; It takes time for jBPM5 to re-embrace the developers ' design ideas.
There is a lot of talk about how to choose Activiti and jBPM5 in the various process engine communities, and there are a lot of similarities between the arguments, which are mostly support for the rule engine: jBPM5 is a rule engine based on droolflow all natural depth inheritance Drools , the early Activiti function is relatively simple, later added new features also support rules engine drools, developers as long as simple configuration rules interface can achieve the same effect as jBPM5.




1.7 Summary of this chapter
The main content of this chapter is to explain what the workflow is and what is activiti in the perspective of the workflow and Activiti of the first knowledge. From the Activiti project launch, characteristics, application, architecture, and compared with other similar products in the perspective of the concept of the reader a guide and understanding.
As a developer, you can know why you need to learn what Activiti,activiti can do to help businesses solve problems, why choose Activiti instead of other workflow engines.
See here you may be impatient, will think of a sentence: "Talkischeap.showmethecode." The next chapter will lead you to experience Activit
......


This article originates from: Ouyida3 's CSDN Blog

2015.3.20

Share this book "Activiti" and links to several workflows

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.