Preface:
It's an annual Christmas, but it's none of my business.:(, last weekend, or something else, I recently released an article about workflow: the NBPM workflow engine of the program ape behind closed doors-the beginning, many of the small partners who love the workflow are interested in the component, So I'm going to write a series of articles that describe some of the components of the component, and give some reference and help to the small partners who care about the component.
Make a list first (because I am busy at work, only the weekend to share the relevant information, progress also hope that you understand):
the NBPM workflow engine-Opening of the program ape behind closed doors
02. "Procedural ape Behind closed doors" nbpm Workflow engine-Project overall architecture
03. "Procedural ape Behind closed doors" nbpm workflow engine-engine structure analysis (overall idea)
04. "Procedural ape Behind closed doors" nbpm workflow engine-engine structure analysis (dynamic form implementation)
05. "Procedural ape Behind closed doors" nbpm workflow engine-engine structure analysis (Process designer implementation)
06. "Procedural ape Behind closed doors" nbpm workflow engine-engine structure analysis (Process Execution process implementation)
07. "Procedural ape Behind closed doors" nbpm Workflow engine-system integration practice
08. "Procedural ape Behind closed doors" nbpm Workflow engine-system component extension Practice
09. "Procedural ape Behind closed doors" nbpm workflow engine-Simple OA approval system case development
10. "Procedural ape Behind closed doors" nbpm Workflow engine-project development planning
------------------------------------------I'm a split line------------------------------------------------
the nbpm of "procedural ape behind closed doors" workflow engine-project overall architecture
don't talk about it, let's start with the architecture plan.
Description:
1. Basic Environment Layer
This is not much to say, many of the system architecture diagram is so designed, I also like this painting. But there are three points:
A. The project is currently using. NET (C #) development, later, and other projects mature, time is sufficient, perhaps probably will be implemented in other languages version (such as java,php, etc.), but that is something, see how the development of the back, perhaps halfway will not be possible;
B. Currently used. NET development, but I was deliberately aware of cross-platform support on component dependencies, theoretically allowing deployment on platforms such as Linux (by mono), but requiring subsequent testing and validation;
C. Currently used. NET4.0 development, but can be replaced by any version, only some of the tools rely on problems need to be resolved (such as Newtonsoft.json, etc.).
2. Infrastructure Layer
This layer, as the lowest level of the program, provides the following types of components:
- Database entities in a process (entity)
- View model in a process (ViewModel)
- Read (config) of profile values that may be used in the process
- External Data Object Interface
- External Data Provider Interface
- Process data Access interface
- Log Record interface
- Rule Calculation interface
- Process exception
3. Data Persistence layer
The purpose of this layer is to provide database access support for the process engine, which implements the "Process data access interface" in the "Basic implementation Layer", by default I implement the EF6 and ADO version two database access layer (need to configure configuration files, such as database type, database connection string, etc.); This layer can be provided entirely by a third-party implementation, because the system uses the IOC (inversion of control) programming, as long as the "basic implementation layer" in the "Process data Access Interface" class, can be used as a component, the implementation of the article "08." The NBPM workflow engine of "procedural ape behind closed doors"- The System component Expansion practice "describes the principles and how to implement them.
The layer needs to be aware that any type of database can be used because it exists as an IOC component.
4. Core business Layer
This layer is NBPM most important soul component, realizes the form management, the process management, the rule computation, the process execution and so on important operation, the concrete principle please refer to the subsequent article.
This layer requires the following IOC components: The Process database access component, the logging component, and the rule calculation component. The above three types of components I have provided by default, but can be fully implemented by the third party, only need to rely on the "infrastructure layer" and implement the relevant interface.
5. Resource Layer
This layer mainly contains front-end resources and SDKs and common tools:
Front-end resources have pictures, style sheets, JS scripts, form designers, process designers, process forms automatically generated, are a large number of use of JS;
The SDK tools encapsulate the important service classes in the core business layer, including: Management Service (manager), Operation class Service (Client), management services, main implementation of the form process and other maintenance work, operation services mainly to achieve the initiation of process instances, drive, calculation to do the work;
Tools mainly implement the "basic implementation layer" in the "Logging interface" and "Rule Computing Interface", the common tool components are implemented by default in the Nbpm.util assembly, where the log is log4net, the rules are calculated using LUA.
6. Application Layer
This layer is the final application, through the reference to the resource layer, realizes the maintenance of the process, the use and so on;
This layer needs to implement the "External Data Interface" and "External Data Provider Interface" in the "Base implementation layer" to integrate third-party system data with NBPM, such as user organization, parameters, dictionaries and other data;
This layer can be a WebForm project or an ASP. NET MVC project.
Above is the general idea of NBPM architecture design, if the small partners have good suggestions, hope to advise.
------------------------------------------I'm a split line too----------------------------------------------
Attached: NBPM Project solution diagram
This is the right place to go, the next article will describe the structure of the process engine
The nbpm of "procedural ape behind closed doors" workflow engine-project overall architecture