SHARK workflow implementation and comparison of WMFC & OMG specifications
----- Party Part: ServiceManager for the OBE engine
Keywords: Shark workflow WMFC OMG specification
ServiceManager is a workflow service class for system level.
Can be initialized in two ways:
1, Use the obe initialization servlet.
If you use OBE workflows in the J2EE server, this method is required.
2, INITIALIZED by the constructor.
This type is usually used when we do not use this way when the J2EE server is used.
The main job of ServiceManager is to define the following services:
"Org.obe.event.basicApplicationEventbroker"
"Org.obe.Runtime.strategy.basicassignmentStrateGyFactory"
"Org.obe.Engine.async.basicasyncManager"
"Org.obe.Engine.calendar.basiccalendarfactory"
"Org.obe.Runtime.strategy.basiccompletionStrateGyFactory"
"Org.obe.Engine.util.dataconverter"
"Org.obe.Runtime.evaluator.basicevaluatorFactory"
"Org.obe.Runtime.evaluator.basicfunctionFactory" "Org.obe.Engine.Persistence.Memory.basicinstanceRepository"
"Org.obe.Runtime.Participant.basicRealm"
"Org.obe.spi.service.xpdlparserfactory" "Org.obe.Engine.Persistence.Memory.basicProcessRepository"
"Org.obe.Runtime.Tool.basictoolFactory"
"Org.obe.spi.Service.WorkflowEventbroker"
"Org.obe.Engine.Repository.basicxmlRepository"
Pay attention to the category of the above.
In the OBE default Test example, you use a file system to save a workflow instance. That is
"Org.obe.Engine.Persistence.Memory.basicProcessRepository"
Come. BasicProcessRepository inherits from AbstractRepository.
Obviously, in the enterprise level application we mainly save the workflow instance in the database.
Combined with item (16) (OBE's database design), we can inherit AbstractRepository to achieve its workflow real access class. Then follow the above method to register in ServiceManager.
There are two places that need to be discussed here:
BasicProcessRepository is a file-based workflow definition function service class.
This class demonstrates how to instantiate the Package class parsed from the XPDL definition file to the file system. Similar to we can change it into methods that instantiate into the database.
However, this class is from: AbstractRepository inherits, and many methods of instantiating from the file system in AbstractRepository, which I have not fully understood this class. But OBE also provides the interface of Public Interface ProcessRepository Extends WorkflowService.
AbstractRepository also inherits from WorkflowService.
So I suggest: If you build your own repository, don't inherit AbstractRepository, but inherit: ProcessRepository this interface.
to be continued
Tian Chunfeng
Accesine@163.com