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

Flow driving method and flow driving device Download PDF

Info

Publication number
CN102254233A
CN102254233A CN2010101800468A CN201010180046A CN102254233A CN 102254233 A CN102254233 A CN 102254233A CN 2010101800468 A CN2010101800468 A CN 2010101800468A CN 201010180046 A CN201010180046 A CN 201010180046A CN 102254233 A CN102254233 A CN 102254233A
Authority
CN
China
Prior art keywords
flow process
execution object
service logic
flow
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.)
Granted
Application number
CN2010101800468A
Other languages
Chinese (zh)
Other versions
CN102254233B (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

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 process driving method and device
Technical field
The present invention relates to computer realm, particularly a kind of flow process driving method and device.
Background technology
Growing along with computer technology, the kind of flow process language is also more and more.Although the grammer and the form of flow process language have nothing in common with each other, the problem that solve is identical substantially, and the circulation behavior is consistent.Design a general driving system that adapts to various flow process language, help improving the development efficiency of BPM (Business ProcessManagement, business process management system) engine; Can be so that the BPM product line has the extendability of height; Also can satisfy the specific demand of in a system, supporting multiple flow process language simultaneously.
The drive system that prior art one provides, PVM (Process Virtual Machine has at first been proposed, the flow process virtual machine) this notion, and utilize this PVM successfully to drive BPEL (Business ProcessExecution Language, BPEL) and JPDL (Java business processmanagement Process Definition Language, BPM process defining language).Second prior art has developed Windows Workflow Foundation (workflow framework) system, though be not named " PVM ", the design object of this system is consistent with PVM, and this system can drive flow process language like various and the BPEL class of languages.
In realizing process of the present invention, the inventor finds that there is following shortcoming at least in prior art:
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 counter-rotating) assembly such as container, these assemblies are irrelevant with PVM in essence, cause this product can't be integrated on the contrary, cause transplantability poor with other products; Prior art two is for figure shape flow process language, and is then difficult competent as BPMN (Business ProcessModeling Notation, BPMN) etc., especially for the operation flow of demands such as free redirect being arranged, fetch, endorse; In addition, owing to depend critically upon .Net Framework, cause extendability also relatively poor.
Summary of the invention
In order to improve extendability and the portability that flow process drives, and then improve the Practical Performance that flow process drives, the embodiment of the invention provides a kind of flow process driving method and device.Described technical scheme is as follows:
On the one hand, provide a kind of flow process driving method, described method comprises:
Determine the flow process element of flow process to be driven, and the flow process behavior of described flow process element correspondence;
Described flow process element map in the execution object of correspondence, and is assembled to the flow process behavior of described flow process element in the execution object of described correspondence;
Start the implementation of described execution object when externally calling described execution object.
On the other hand, provide a kind of flow process drive unit, described device comprises:
Determination module is used for determining the flow process element of flow process to be driven and the flow process behavior of described flow process element correspondence;
Mapping block is used for the execution object of described flow process element map to correspondence, and the flow process behavior of described flow process element is assembled in the execution object of described correspondence;
Driver module starts the implementation of described execution object when being used for externally calling described execution object.
The beneficial effect of the technical scheme that the embodiment of the invention provides is:
By with the flow process element map in the execution object of correspondence, and start the implementation of carrying out object when externally calling this execution object, promptly summarize the behavioural characteristic of various flow process language to carry out object, realization is to the driving of flow process, not only can support block flow process language, also can support figure shape flow process language well, thereby improve the extendability that flow process drives; In addition, because the technical scheme that the embodiment of the invention provides is not bound with any specific data storage layer technology and IOC container, therefore, has very high portability.
Description of drawings
In order to be illustrated more clearly in the technical scheme in the embodiment of the invention, the accompanying drawing of required use is done to introduce simply in will describing embodiment below, apparently, accompanying drawing in describing below only is some embodiments of the present invention, for those of ordinary skills, under the prerequisite of not paying creative work, can also obtain other accompanying drawing according to these accompanying drawings.
Fig. 1 is the flow process driving method process flow diagram that the embodiment of the invention one provides;
Fig. 2 is the synoptic diagram that concerns of the BPMN2.0 that provides of the embodiment of the invention two and flow process drive unit;
Fig. 3 is the flow process driving method process flow diagram that the embodiment of the invention two provides;
Fig. 4 is the flow process element synoptic diagram of the BPMN2.0 that provides of the embodiment of the invention two;
Fig. 5 is the flow process behavior synoptic diagram of the flow process element of the BPMN2.0 that provides of the embodiment of the invention two;
Fig. 6 is the various execution object synoptic diagram that the embodiment of the invention two provides;
Fig. 7 is the various execution relation between objects synoptic diagram that the embodiment of the invention two provides;
Fig. 8 is the execution object structure synoptic diagram that the embodiment of the invention two provides;
Fig. 9 is the flow process driving device structure synoptic diagram that the embodiment of the invention three provides;
Figure 10 is the driver module structural representation that the embodiment of the invention three provides;
Figure 11 is the performance element structural representation that the embodiment of the invention three provides.
Embodiment
For making the purpose, technical solutions and advantages of the present invention clearer, embodiment of the present invention is described further in detail below in conjunction with accompanying drawing.
Embodiment one
Referring to Fig. 1, present embodiment provides a kind of flow process driving method, and this method flow is specific as follows:
101: determine the flow process element of flow process to be driven, and the flow process behavior of this flow process element correspondence;
102: this flow process element map in the execution object of correspondence, and is assembled to the flow process behavior of this flow process element in the corresponding execution object;
103: the implementation that starts this execution object when externally calling this execution object.
The method that present embodiment provides, by with the flow process element map in the execution object of correspondence, and start the implementation of carrying out object when externally calling this execution object, promptly summarize the behavioural characteristic of various flow process language to carry out object, realization is to the driving of flow process, not only can support block flow process language, also can support figure shape flow process language well, thereby improve the extendability that flow process drives; In addition, because the technical scheme that the embodiment of the invention provides is not bound with any specific data storage layer technology and IOC container, therefore, has very high portability.
Embodiment two
Present embodiment provides a kind of flow process driving method, and this method is passed through the flow process element map in the execution object of correspondence, summarizes the behavioural characteristic of various flow process language to carry out object, realizes the driving to flow process.For convenience of explanation, present embodiment is that example describes with BPMN2.0 flow process language, and Fig. 2 is the synoptic diagram that concerns between this BPMN2.0 flow engine and the flow process drive unit.Referring to Fig. 3, the method flow that present embodiment provides is specific as follows:
301: determine the flow process element of flow process to be driven, and the flow process behavior of this flow process element correspondence;
At this step, each specific flow process language has all comprised various flow process elements, and about flow process element and corresponding flow process behavior how to determine flow process to be driven, present embodiment is not done concrete qualification.With BPMN2.0 flow process language is example, and its flow process element has comprised Process as shown in Figure 4, Activity, and Event, 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, present embodiment represents to carry out object with Executable Object, be seen as a Java Bean, and defined three kinds of processes, be i.e. executive process execute (), wakeup process awaken () and end process complete () with specific behavior.Wherein, execute () is used to carry out service logic, and this service logic is the flow process institute loaded service logic that is mapped in this execution object; Awaken () is used to wake up the execution object, during practical application, recovers to wake up the execution object by carrying out data; Complete () then carries out at execute () and is called after service logic finishes.
Though each carries out object execute () is arranged all, awaken (), three processes of complete (), the specific implementation of these processes is not necessarily identical.Referring to Fig. 6,, can be divided into net (NetInstance), three types of node (NodeInstance) and arcs (ArcInstance) with carrying out object according to the difference of process implementation.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 various execution relation between objects can be as shown in Figure 7.
About how being the corresponding execution object of flow process element selection, present embodiment does not limit concrete selection mode, be example still with the flow process element among the BPMN2.0, can select Process flow process element map in the execution object of Net type, flow process such as Activity, Event element map in the execution object of Node type, and with flow process element map such as SequnceFlow in the execution object of Arc type.
303: this flow process element map in the execution object of correspondence, and is assembled to the flow process behavior of this flow process element in the corresponding execution object;
Wherein, after being assembled to the flow process behavior of this flow process element in the corresponding execution object, all can be carried out object and be assembled to the inner core managing device, be in charge of a series of execution objects that cross correlation is arranged by this inner core managing device, externally call when carrying out object, be responsible for calling the implementation of carrying out object by this inner core managing device.
304: the implementation that starts this execution object when externally calling this execution object.
At this step, because the mode of different process definition languages expression institute loaded service logic is different, ExecutableObject can not be hard coded into all situations in the flow process drive unit framework in advance.Therefore, the method that present embodiment provides adopts the design philosophy of extension point to satisfy this demand: for each ExecutableObject has assembled 3 extension points, promptly quote 3 fixing interface: IncomingLogic, BusinessLogic, LeavingLogic, as shown in Figure 8.
Wherein, be provided with canBeFired () object in the IncomingLogic interface, be used to judge whether service logic has satisfied executive condition; Be provided with perform () object among the BusinessLogic, be used to carry out real service logic; Be provided with determineLeavingStragegy () object among the LeavingLogic, be used for when service logic finishes, indicating next step operation, next step operation may be to carry out a new ExecuteObject, also may be to return upper level ExecuteObject, and call its complete () method.
When then starting the implementation of carrying out object, at first call the canBeFired () object that is provided with in the IncomingLogic interface, call the perform () object that is provided with among the BusinessLogic again, call the determineLeavingStragegy () object that is provided with among the LeavingLogic at last, that is to say, when starting the implementation of carrying out object, specifically comprise:
Judge whether to trigger the pairing service logic of execution object;
If then carry out service logic, and after carrying out end, indicate next step operation.
Wherein, carry out service logic, specifically comprise:
Call executive process execute () and carry out service logic, and after carrying out the service logic end, call end process complete ();
Carry out service logic if desired for a long time, the state that then will carry out object is kept in the storage medium, finishes until carrying out service logic, calls wakeup process awaken () and carries out the data recovery, and call end process complete () after data are recovered.
The method that present embodiment provides, by with the flow process element map in the execution object of correspondence, and start the implementation of carrying out object when externally calling this execution object, promptly summarize the behavioural characteristic of various flow process language to carry out object, realization is to the driving of flow process, not only can support block flow process language, also can support figure shape flow process language well, thereby improve the extendability that flow process drives; In addition, because the technical scheme that the embodiment of the invention provides is not bound with any specific data storage layer technology and IOC container, therefore, has very high portability.
Embodiment three
Referring to Fig. 9, present embodiment provides a kind of flow process drive unit, and this device comprises:
Determination module 901 is used for determining the flow process element of flow process to be driven and the flow process behavior of flow process element correspondence;
Mapping block 902 is used for the execution object of flow process element map to correspondence, and the flow process behavior of flow process element is assembled in the corresponding execution object;
Driver module 903 is used for externally calling the implementation that starts the execution object when carrying out object.
Particularly, referring to Figure 10, driver module 903 specifically comprises:
Judging unit 9031 is used for externally calling when carrying out object, judges whether to trigger the pairing service logic of execution object;
Performance element 9032 is used for carrying out service logic when judging unit 9031 judgements can trigger service logic;
Indicating member 9033 is used for indicating next step operation after performance element 9032 is carried out the service logic end.
Further, referring to Figure 11, performance element 9032 specifically comprises:
First calls subelement 9032a, is used to call executive process and carries out service logic;
Second calls subelement 9032b, be used for first call executive process that subelement 9032a calls and carry out service logic and finish after, call the end process;
The 3rd calls subelement 9032c, be used for when first calls that executive process needs that subelement 9032a calls are long-time carries out service logic, the state of carrying out object is kept in the storage medium, finish until carrying out service logic, call wakeup process and carry out the data recovery, and after data are recovered, call the end process.
The device that present embodiment provides, by with the flow process element map in the execution object of correspondence, and start the implementation of carrying out object when externally calling this execution object, promptly summarize the behavioural characteristic of various flow process language to carry out object, realization is to the driving of flow process, not only can support block flow process language, also can support figure shape flow process language well, thereby improve the extendability that flow process drives; In addition, because the technical scheme that the embodiment of the invention provides is not bound with any specific data storage layer technology and IOC container, therefore, has very high portability.
Need to prove: the flow process drive unit that the foregoing description provides is when driving flow process, only the division with above-mentioned each functional module is illustrated, in the practical application, can as required the above-mentioned functions distribution be finished by different functional modules, the inner structure of the equipment of being about to is divided into different functional modules, to finish all or part of function described above.In addition, flow process drive unit that the foregoing description provides and flow process driving method embodiment belong to same design, and its specific implementation process sees method embodiment for details, repeats no more here.
The invention described above embodiment sequence number is not represented the quality of embodiment just to description.
All or part of step in the embodiment of the invention can utilize software to realize that corresponding software programs can be stored in the storage medium that can read, as CD or hard disk etc.
The above only is preferred embodiment of the present invention, and is in order to restriction the present invention, within the spirit and principles in the present invention not all, any modification of being done, is equal to replacement, improvement etc., all should be included within protection scope of the present invention.

Claims (7)

1. a flow process driving method is characterized in that, described method comprises:
Determine the flow process element of flow process to be driven, and the flow process behavior of described flow process element correspondence;
Described flow process element map in the execution object of correspondence, and is assembled to the flow process behavior of described flow process element in the execution object of described correspondence;
Start the implementation of described execution object when externally calling described execution object.
2. method according to claim 1 is characterized in that, the described implementation that starts described execution object when externally calling described execution object specifically comprises:
Judge whether to trigger the pairing service logic of described execution object;
If then carry out described service logic, and after carrying out end, 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 carrying out described service logic end, call the end process;
The described service logic of long-time if desired execution, then the state with described execution object is kept in the storage medium, finishes until carrying out described service logic, calls wakeup process and carries out the data recovery, and call the 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 a plurality of interconnected nodes and arc; Each node comprises a plurality of input arcs and a plurality of output arc; Each arc comprises an input node and an output node at least.
5. a flow process drive unit is characterized in that, described device comprises:
Determination module is used for determining the flow process element of flow process to be driven and the flow process behavior of described flow process element correspondence;
Mapping block is used for the execution object of described flow process element map to correspondence, and the flow process behavior of described flow process element is assembled in the execution object of described correspondence;
Driver module starts the implementation of described execution object when being used for externally calling described execution object.
6. device according to claim 5 is characterized in that, described driver module specifically comprises:
Judging unit when being used for externally calling described execution object, judges whether to trigger the pairing service logic of described execution object;
Performance element is used for carrying out described service logic when described judgment unit judges can trigger described service logic;
Indicating member is used for indicating next step operation after described performance element is carried out described service logic end.
7. device according to claim 6 is characterized in that, described performance element specifically comprises:
First calls subelement, is used to call executive process and carries out described service logic;
Second calls subelement, be used for described first call executive process that subelement calls and carry out described service logic and finish after, call the end process;
The 3rd calls subelement, be used for when described first calls that executive process needs that subelement calls are long-time carries out described service logic, the state of described execution object is kept in the storage medium, finish until carrying out described service logic, call wakeup process and carry out the data recovery, and after data are recovered, call the end process.
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 true CN102254233A (en) 2011-11-23
CN102254233B 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)

Cited By (2)

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

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

Cited By (4)

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

Also Published As

Publication number Publication date
CN102254233B (en) 2014-04-23

Similar Documents

Publication Publication Date Title
US8538797B2 (en) Systems and methods for integrating business processes
CN101901164B (en) Time plan scheduler module and method
US7974939B2 (en) Processing model-based commands for distributed applications
US7840857B2 (en) Method and system for automated handling of resolvable and non-resolvable errors in execution of system management flows consisting of system management tasks
CN101201753A (en) Method for configuring and managing multimode machine supervising engine
CN101430644B (en) System and method of executing a dynamic program in a structured environment
CN105847088A (en) Virtual machine performance testing system based on cloud service
CN105159920A (en) Attribute tag based database access method
CN102279766A (en) Method and system for concurrently simulating processors and scheduler
CN106446019A (en) Software function processing method and device
KR102569415B1 (en) Service platform system for generating workflow and workflow generating method
CN103605528A (en) Service development method and device
CN101706823B (en) Inquiry system and method of customized database
US8806490B1 (en) Method and apparatus for managing workflow failures by retrying child and parent elements
CN102254233B (en) Flow driving method and flow driving device
US8165906B2 (en) Business planning tool
CN105512829A (en) Web service protocol-based card value multidimensional cost accumulation method
CN102024235A (en) Business process generation system and application service provision system
CN111078371B (en) Branch task reconstruction method and device based on Flowable process engine
CN101425090A (en) Method for generating intelligent SQL statement for summarization of data
Taborda Enterprise Release Management: Agile Delivery of a Strategic Change Portfolio
CN102789398A (en) Host resource self-adaptive management method and device
CN116011257B (en) Flow simulation method and device for multi-level task
CN102479077A (en) Method and device for dynamically constructing function operation, and application system
CN101819527A (en) Method for improving real-time performance of embedded graphic user interface 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
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.