CN102254233B - Flow driving method and flow driving device - Google Patents

Flow driving method and flow driving device Download PDF

Info

Publication number
CN102254233B
CN102254233B CN201010180046.8A CN201010180046A CN102254233B CN 102254233 B CN102254233 B CN 102254233B CN 201010180046 A CN201010180046 A CN 201010180046A CN 102254233 B CN102254233 B CN 102254233B
Authority
CN
China
Prior art keywords
flow process
flow
service logic
execution object
call
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010180046.8A
Other languages
Chinese (zh)
Other versions
CN102254233A (en
Inventor
陈乜云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Kingdee Tianyanyun Computing Co Ltd
Original Assignee
Shenzhen Kingdee Middleware Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Kingdee Middleware Co ltd filed Critical Shenzhen Kingdee Middleware Co ltd
Priority to CN201010180046.8A priority Critical patent/CN102254233B/en
Publication of CN102254233A publication Critical patent/CN102254233A/en
Application granted granted Critical
Publication of CN102254233B publication Critical patent/CN102254233B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

The invention discloses a flow driving method and a flow driving device and belongs to the field of computers. The method comprises the following steps of: determining a flow element of a flow to be driven and a flow behavior which corresponds to the flow element; mapping the flow element into a corresponding executable object, and assembling the flow behavior of the flow element into the corresponding executable object; and during external call of the executable object, starting an execution process of the executable object. The invention has the advantages that: by mapping the flow element into the corresponding executable object, starting the execution process of the executable object during the external call of the executable object, and summarizing the behavior characteristics of various kinds of flow languages by the executable object, the flow is driven, flow languages such as blocky flow language and graphic flow language can be supported, the expansibility of the flow driving is improved, and the portability of the flow driving can be improved due to no binding with any specific data storage layer technology and an inversion of control (IOC) container.

Description

Flow driving method and device
Technical field
The present invention relates to computer realm, particularly a kind of Flow driving method and device.
Background technology
Growing along with computer technology, the kind of flow process language is also more and more.Although grammer and the form of flow process language are different, the problem that solve is substantially identical, and circulation behavior is consistent.Design a universal driving system that adapts to various flow process language, be conducive to improve the development efficiency of BPM (Business Process Management, business process management system) engine; Can make BPM product line there is the extendability of height; Also can meet the specific demand of simultaneously supporting multiple flow process language in a system.
The drive system that prior art one provides, first PVM (Process Virtual Machine has been proposed, flow process virtual machine) this concept, and utilize this PVM successfully to drive BPEL (Business Process Execution Language, BPEL) and JPDL (Java business process management Process Definition Language, BPM process defining language).Second prior art has developed Windows Workflow Foundation (workflow framework) system, although be not named " PVM ", but the design object of this system is consistent with PVM, this system can drive flow process language like various and BPEL class of languages.
Realizing in process of the present invention, inventor finds that prior art at least exists following shortcoming:
The PVM that prior art one provides is the serious Object Relation Mapping framework (Hibernate) that relies on open source code when operation, this PVM also has IOC (Inversion of Control, control reversion) assembly such as container, these assemblies are irrelevant with PVM in essence, cause on the contrary this product cannot be integrated with other products, cause transplantability poor; Prior art two is for figure shape flow process language, as more difficult competent in BPMN (Business Process Modeling Notation, BPMN) etc., especially for the operation flow of demands such as having free redirect, fetch, endorse; In addition, owing to depending critically upon .Net Framework, cause extendability also poor.
Summary of the invention
In order to improve extendability and the portability of Flow driving, and then the Practical Performance of raising Flow driving, the embodiment of the present invention provides a kind of Flow driving method and device.Described technical scheme is as follows:
On the one hand, provide a kind of Flow driving method, described method comprises:
Determine the flow process element of flow process to be driven, and flow process behavior corresponding to described flow process element;
For described flow process element is selected corresponding execution object, by described flow process element map in the execution object of described correspondence, and the flow process behavior of described flow process element is assembled in the execution object of described correspondence, described execution object comprises executive process, wakeup process and end process;
When carrying out object described in external call, start the implementation of described execution object.
On the other hand, provide a kind of Flow driving device, described device comprises:
Determination module, for determining the flow process element of flow process to be driven, and flow process behavior corresponding to described flow process element;
Mapping block, be used to described flow process element to select corresponding execution object, by described flow process element map in the execution object of described correspondence, and the flow process behavior of described flow process element is assembled in the execution object of described correspondence, described execution object comprises executive process, wakeup process and end process;
Driver module, for starting the implementation of described execution object when carrying out object described in external call.
The beneficial effect of the technical scheme that the embodiment of the present invention provides is:
By by flow process element map in corresponding execution object, and when this execution object of external call, start and carry out the implementation of object, to carry out object, summarize the behavioural characteristic of various flow process language, the driving of realization to flow process, not only can support block flow process language, also can support well figure shape flow process language, thereby improve the extendability of Flow driving; In addition, because the technical scheme that the embodiment of the present invention provides is not bound with any specific data storage layer technology and IOC container, therefore, there is very high portability.
Accompanying drawing explanation
In order to be illustrated more clearly in the technical scheme in the embodiment of the present invention, below the accompanying drawing of required use during embodiment is described is briefly described, apparently, accompanying drawing in the following describes is only some embodiments of the present invention, for those of ordinary skills, do not paying under the prerequisite of creative work, can also obtain according to these accompanying drawings other accompanying drawing.
Fig. 1 is the Flow driving method flow diagram that the embodiment of the present invention one provides;
Fig. 2 is the schematic diagram that is related to of the BPMN2.0 that provides of the embodiment of the present invention two and Flow driving device;
Fig. 3 is the Flow driving method flow diagram that the embodiment of the present invention two provides;
Fig. 4 is the flow process element schematic diagram of the BPMN2.0 that provides of the embodiment of the present invention two;
Fig. 5 is the flow process behavior schematic diagram of the flow process element of the BPMN2.0 that provides of the embodiment of the present invention two;
Fig. 6 is the various execution object schematic diagram that the embodiment of the present invention two provides;
Fig. 7 is the schematic diagram that is related between the various execution objects that provide of the embodiment of the present invention two;
Fig. 8 is the execution object structure schematic diagram that the embodiment of the present invention two provides;
Fig. 9 is the Flow driving apparatus structure schematic diagram that the embodiment of the present invention three provides;
Figure 10 is the driver module structural representation that the embodiment of the present invention three provides;
Figure 11 is the performance element structural representation that the embodiment of the present invention three provides.
Embodiment
For making the object, technical solutions and advantages of the present invention clearer, below in conjunction with accompanying drawing, embodiment of the present invention is described further in detail.
Embodiment mono-
Referring to Fig. 1, the present embodiment provides a kind of Flow driving method, and the method flow process is specific as follows:
101: determine the flow process element of flow process to be driven, and flow process behavior corresponding to this flow process element;
102: this flow process element map, in corresponding execution object, and is assembled to the flow process behavior of this flow process element in corresponding execution object;
103: the implementation that starts this execution object when this execution object of external call.
The method that the present embodiment provides, by by flow process element map in corresponding execution object, and when this execution object of external call, start and carry out the implementation of object, to carry out object, summarize the behavioural characteristic of various flow process language, the driving of realization to flow process, not only can support block flow process language, also can support well figure shape flow process language, thereby improve the extendability of Flow driving; In addition, because the technical scheme that the embodiment of the present invention provides is not bound with any specific data storage layer technology and IOC container, therefore, there is very high portability.
Embodiment bis-
The present embodiment provides a kind of Flow driving method, and the method is passed through flow process element map, in corresponding execution object, to summarize the behavioural characteristic of various flow process language to carry out object, realizes the driving to flow process.For convenience of explanation, the present embodiment describes as an example of BPMN2.0 flow process language example, and Fig. 2 is the schematic diagram that is related between this BPMN2.0 flow engine and Flow driving device.Referring to Fig. 3, the method flow that the present embodiment provides is specific as follows:
301: determine the flow process element of flow process to be driven, and flow process behavior corresponding to this flow process element;
For this step, each specific flow process language has comprised various flow process elements, and about flow process element and the corresponding flow process behavior of how to confirm flow process to be driven, the present embodiment is not specifically limited.Take BPMN2.0 flow process language as example, its flow process element as shown in Figure 4, has comprised Process, Activity, and Event, the flow process elements such as SequnceFlow, corresponding flow process behavior can be as shown in Figure 5.
302: for this flow process element is selected corresponding execution object;
Particularly, the present embodiment represents to carry out object with Executable Object, be seen as a Java Bean with specific behavior, and three kinds of processes have been defined, i.e. executive process execute (), wakeup process awaken () and finish process complete ().Wherein, execute () is for carrying out service logic, and this service logic is the service logic that the flow process that is mapped in this execution object is carried; Awaken (), for waking execution object up, during practical application, recovers to wake up execution object by carrying out data; Complete () carries out service logic at execute () and finishes rear called.
Although each execution object has execute (), awaken (), three processes of complete (), the specific implementation of these processes is not necessarily identical.Referring to Fig. 6, according to the difference of process implementation, can be divided into net (NetInstance), node (NodeInstance) and arc (ArcInstance) three types by carrying out object.Wherein, a net can comprise several interconnected node and arcs; Node can have several input arcs and several output arcs, and each arc must have an input node and an output node; In addition, a net can comprise subnet, and the relation between various execution objects can be as shown in Figure 7.
About how for flow process element is selected corresponding execution object, the present embodiment does not limit concrete selection mode, still take the flow process element in BPMN2.0 as example, can select Process flow process element map in the execution object of Net type, the flow process such as Activity, Event element map in the execution object of Node type, and by flow process element map such as SequnceFlow in the execution object of Arc type.
303: this flow process element map, in corresponding execution object, and is assembled to the flow process behavior of this flow process element in corresponding execution object;
Wherein, after the flow process behavior of this flow process element is assembled in corresponding execution object, all execution objects can be assembled to inner core managing device, by this inner core managing device, be in charge of a series of execution objects that have cross correlation, when object is carried out in external call, by this inner core managing device, be responsible for calling the implementation of carrying out object.
304: the implementation that starts this execution object when this execution object of external call.
For this step, the mode of expressing the service logic of carrying due to different process definition languages is different, and ExecutableObject can not be hard coded into all situations in Flow driving device architecture in advance.Therefore, the method that the present embodiment provides adopts the design philosophy of extension point to meet this demand: for each ExecutableObject has assembled 3 extension points, quote 3 fixing interface: IncomingLogic, BusinessLogic, LeavingLogic, as shown in Figure 8.
Wherein, in IncomingLogic interface, be provided with canBeFired () object, for judging whether service logic has met executive condition; In BusinessLogic, be provided with perform () object, for carrying out real service logic; In LeavingLogic, be provided with determineLeavingStragegy () object, for indicate next step operation when service logic finishes, next step operation may be to carry out a new ExecuteObject, also may be to return to upper level ExecuteObject, and call its complete () method.
While starting the implementation of carrying out object, first call the canBeFired () object arranging in IncomingLogic interface, call again the perform () object arranging in BusinessLogic, finally call the determineLeavingStragegy () object arranging in LeavingLogic, that is to say, while starting the implementation of carrying out object, specifically comprise:
Judge whether to trigger the corresponding service logic of execution object;
If so, carry out service logic, and after execution finishes, indicate next step operation.
Wherein, carry out service logic, specifically comprise:
Call executive process execute () and carry out service logic, and after execution service logic finishes, call end process complete ();
If need the long-time service logic of carrying out, the state of carrying out object is kept in storage medium, until carry out service logic, finish, call wakeup process awaken () and carry out data recovery, and call end process complete () after data are recovered.
The method that the present embodiment provides, by by flow process element map in corresponding execution object, and when this execution object of external call, start and carry out the implementation of object, to carry out object, summarize the behavioural characteristic of various flow process language, the driving of realization to flow process, not only can support block flow process language, also can support well figure shape flow process language, thereby improve the extendability of Flow driving; In addition, because the technical scheme that the embodiment of the present invention provides is not bound with any specific data storage layer technology and IOC container, therefore, there is very high portability.
Embodiment tri-
Referring to Fig. 9, the present embodiment provides a kind of Flow driving device, and this device comprises:
Determination module 901, for determining the flow process element of flow process to be driven, and flow process behavior corresponding to flow process element;
Mapping block 902, for by flow process element map to corresponding execution object, and the flow process behavior of flow process element is assembled in corresponding execution object;
Driver module 903, for starting the implementation of carrying out object when object is carried out in external call.
Particularly, referring to Figure 10, driver module 903, specifically comprises:
Judging unit 9031, for when object is carried out in external call, judges whether to trigger the corresponding service logic of execution object;
Performance element 9032, for when judging unit 9031 judgements can trigger service logic, carries out service logic;
Indicating member 9033, for after carrying out service logic at performance element 9032 and finishing, indicates next step operation.
Further, referring to Figure 11, performance element 9032, specifically comprises:
First calls subelement 9032a, for calling executive process, carries out service logic;
Second calls subelement 9032b, for first call executive process that subelement 9032a calls and carry out service logic and finish after, call end process;
The 3rd calls subelement 9032c, for calling first executive process that subelement 9032a calls, need long-time while carrying out service logic, the state of carrying out object is kept in storage medium, until carry out service logic, finish, call wakeup process and carry out data recovery, and call end process after data are recovered.
The device that the present embodiment provides, by by flow process element map in corresponding execution object, and when this execution object of external call, start and carry out the implementation of object, to carry out object, summarize the behavioural characteristic of various flow process language, the driving of realization to flow process, not only can support block flow process language, also can support well figure shape flow process language, thereby improve the extendability of Flow driving; In addition, because the technical scheme that the embodiment of the present invention provides is not bound with any specific data storage layer technology and IOC container, therefore, there is very high portability.
It should be noted that: the Flow driving device that above-described embodiment provides is when driving flow process, only with the division of above-mentioned each functional module, be illustrated, in practical application, can above-mentioned functions be distributed and by different functional modules, completed as required, the inner structure of the equipment of being about to is divided into different functional modules, to complete all or part of function described above.In addition, Flow driving device and Flow driving embodiment of the method that above-described embodiment provides belong to same design, and its specific implementation process refers to embodiment of the method, repeats no more here.
The invention described above embodiment sequence number, just to describing, does not represent the quality of embodiment.
All or part of step in the embodiment of the present invention, can utilize software to realize, and corresponding software program can be stored in the storage medium can read, as CD or hard disk etc.
The foregoing is only preferred embodiment of the present invention, in order to limit the present invention, within the spirit and principles in the present invention not all, any modification of doing, be equal to replacement, improvement etc., within all should being included in protection scope of the present invention.

Claims (7)

1. a Flow driving method, is characterized in that, described method comprises:
Determine the flow process element of flow process to be driven, and flow process behavior corresponding to described flow process element;
For described flow process element is selected corresponding execution object, by described flow process element map in the execution object of described correspondence, and the flow process behavior of described flow process element is assembled in the execution object of described correspondence, described execution object comprises executive process, wakeup process and end process;
When carrying out object described in external call, start the implementation of described execution object.
2. method according to claim 1, is characterized in that, the described implementation that starts described execution object when carrying out object described in external call, specifically comprises:
Judge whether to trigger the corresponding service logic of described execution object;
If so, carry out described service logic, and after execution finishes, indicate next step operation.
3. method according to claim 2, is characterized in that, the described service logic of described execution, specifically comprises:
Call executive process and carry out described service logic, and after the described service logic of execution finishes, call end process;
If need the long-time described service logic of carrying out, the state of described execution object is kept in storage medium, until carry out described service logic, finish, call wakeup process and carry out data recovery, and call end process after data are recovered.
4. method according to claim 1, is characterized in that, described execution object is divided into net, node and arc;
Wherein, each net comprises multiple interconnected nodes and arc; Each node comprises multiple input arcs and multiple output arc; Each arc at least comprises an input node and an output node.
5. a Flow driving device, is characterized in that, described device comprises:
Determination module, for determining the flow process element of flow process to be driven, and flow process behavior corresponding to described flow process element;
Mapping block, be used to described flow process element to select corresponding execution object, by described flow process element map in the execution object of described correspondence, and the flow process behavior of described flow process element is assembled in the execution object of described correspondence, described execution object comprises executive process, wakeup process and end process;
Driver module, for starting the implementation of described execution object when carrying out object described in external call.
6. device according to claim 5, is characterized in that, described driver module, specifically comprises:
Judging unit, for when carrying out object described in external call, judges whether to trigger the corresponding service logic of described execution object;
Performance element, for when described judging unit judgement can trigger described service logic, carries out described service logic;
Indicating member, for after carrying out described service logic at described performance element and finishing, indicates next step operation.
7. device according to claim 6, is characterized in that, described performance element, specifically comprises:
First calls subelement, for calling executive process, carries out described service logic;
Second calls subelement, for described first call the executive process that gives cell call and carry out described service logic and finish after, call end process;
The 3rd calls subelement, for calling described first executive process that subelement calls, need long-time while carrying out described service logic, the state of described execution object is kept in storage medium, until carry out described service logic, finish, call wakeup process and carry out data recovery, and call end process after data are recovered.
CN201010180046.8A 2010-05-20 2010-05-20 Flow driving method and flow driving device Active CN102254233B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010180046.8A CN102254233B (en) 2010-05-20 2010-05-20 Flow driving method and flow driving device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010180046.8A CN102254233B (en) 2010-05-20 2010-05-20 Flow driving method and flow driving device

Publications (2)

Publication Number Publication Date
CN102254233A CN102254233A (en) 2011-11-23
CN102254233B true CN102254233B (en) 2014-04-23

Family

ID=44981481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010180046.8A Active CN102254233B (en) 2010-05-20 2010-05-20 Flow driving method and flow driving device

Country Status (1)

Country Link
CN (1) CN102254233B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662725B (en) * 2012-03-15 2015-01-28 中国科学院软件研究所 Event-driven high concurrent process virtual machine realization method
CN105224341B (en) * 2015-11-09 2018-09-14 中国民生银行股份有限公司 The implementation method and device of program development

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005191A1 (en) * 2001-07-02 2003-01-16 Bea Systems, Inc. Programming language extensions for processing xml objects and related applications
CN100571167C (en) * 2006-02-24 2009-12-16 国际商业机器公司 The method and apparatus of the unit testing of Web service operation flow
CN101668047A (en) * 2009-09-30 2010-03-10 北京航空航天大学 Method and device for automatically generating composite service description language
CN101695080A (en) * 2009-09-30 2010-04-14 北京航空航天大学 Execution method of BPMN composition service and execution device thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005191A1 (en) * 2001-07-02 2003-01-16 Bea Systems, Inc. Programming language extensions for processing xml objects and related applications
CN100571167C (en) * 2006-02-24 2009-12-16 国际商业机器公司 The method and apparatus of the unit testing of Web service operation flow
CN101668047A (en) * 2009-09-30 2010-03-10 北京航空航天大学 Method and device for automatically generating composite service description language
CN101695080A (en) * 2009-09-30 2010-04-14 北京航空航天大学 Execution method of BPMN composition service and execution device thereof

Also Published As

Publication number Publication date
CN102254233A (en) 2011-11-23

Similar Documents

Publication Publication Date Title
US9003343B2 (en) Energy consumption simulation and evaluation system for embedded device
Mens et al. Challenges in software evolution
US20070043724A1 (en) Systems and methods for integrating business processes
CN101901164B (en) Time plan scheduler module and method
US20110219383A1 (en) Processing model-based commands for distributed applications
Cho A hybrid software development method for large-scale projects: rational unified process with scrum
CN101201753A (en) Method for configuring and managing multimode machine supervising engine
CN101840352A (en) Method and device for monitoring database connection pool
CN103646104A (en) Hard real-time fault diagnosis method and system
US20120151505A1 (en) Creation and termination of component scopes
MX2008011910A (en) Asynchronous fault handling in process-centric programs.
KR102569415B1 (en) Service platform system for generating workflow and workflow generating method
CN106446019A (en) Software function processing method and device
Dong et al. IBM SmartSCOR-a SCOR based supply chain transformation platform through simulation and optimization techniques
CN102254233B (en) Flow driving method and flow driving device
Kolovos et al. The epsilon pattern language
US8165906B2 (en) Business planning tool
CN101751332A (en) Method, device and system for simulating process of workflow middleware
CN110941422A (en) Code automatic generation method, code generator and readable storage medium
Alebrahim et al. Problem-based requirements interaction analysis
Taborda Enterprise Release Management: Agile Delivery of a Strategic Change Portfolio
CN112419582A (en) Method for reading social security card information based on BS architecture, card reading device and medical self-service equipment
CN117094174B (en) Method for recording simulation data and analyzing data stream and resource occupation
CN116011257B (en) Flow simulation method and device for multi-level task
Sun et al. Research on Application Ecological Architecture Technology of Digital Substation System

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee middleware Limited by Share Ltd.

Address before: 518057 Guangdong City, Nanshan District province high tech Zone in the middle of the industrial zone of the sparrow tower M-6 building, floor 1, area 3, second, 4

Patentee before: Shenzhen Kingdee Middleware Co., Ltd.

CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee tianyanyun computing Co., Ltd.

Address before: 518057 south block, 2f, building a, Kingdee Software Park, No. 2, Keji South 12th Road, South District, high tech Industrial Park, Yuehai street, Nanshan District, Shenzhen

Patentee before: Shenzhen Kingdee middleware Limited by Share Ltd.

CP03 Change of name, title or address