A multi-thread supported service and custom action management system for Apache 
Commons SCXML engine
----------------------------------------------------------------------------------------------------

                 Key: SCXML-117
                 URL: https://issues.apache.org/jira/browse/SCXML-117
             Project: Commons SCXML
          Issue Type: New Feature
         Environment: Java environment
            Reporter: Gui Xunlong


Abstract:
 
Apache Commons SCXML is an implementation aimed at creating and maintaining a 
Java SCXML engine capable of executing a state machine defined using a SCXML 
document which is very useful to handler complex status transfer logic.This 
project aims to implement a multi-thread supported service and custom action 
management system for Commons SCXML.
 
Description:
 
State Chart XML (SCXML) provides a generic state-machine based execution 
environment based on Harel State Tables and is very useful to handler complex 
status transfer logic.Apache Commons SCXML is an implementation aimed at 
creating and maintaining a Java SCXML engine capable of executing a state 
machine defined using a SCXML document. It is just a single thread SCXML 
engine,if user want to implement a whole SCXML based application, he must do 
some secondary development jobs.
This project aims to develop a open source multi-thread SCXML services 
management system. It includes these main function module,and this is also what 
i need to do:
 
1.Custom actions management module
All the system custom actions are registered in a configuration xml named 
system_custom_actions.xml. 
Each custom action Java Class must implement interface 
org.apache.commons.scxml.model.Action, and write practical code in function 
execute(final EventDispatcher evtDispatcher, final ErrorReporter errRep, final 
SCInstance scInstance, final Log appLog, final Collection derivedEvents) 
When system initializate, load all the custom actions Class from 
system_custom_actions.xml,instance them and add them into system context 
environment.User can use this mechanism to add his own custom actions to the 
system 
Create a Java Swing based Graphics User Interface to add,modify,delete custom 
actions into the system.
 
2.Thread pool management module
Use a thread pool mechanism to manage SCXML engines. The thread pool properties 
information is stored in a XML confiuration file named 
system_thread_pool.xml,it includes these attributes: 
min_thead_number,max_thread_number,thread_release_timespan may be some more 
When system initializate, it will instance several SCXML engines objects 
according to min_thread_number. If these thread are all busy, but one new 
service is start,system will start a new thread to handle this service. The 
thead number can not outstrip max_thread_number. If a thread has been free for 
a period of time which is marked by attribute thread_release_timespan,system 
will release this thread. 
 
3.Service management module
Every application service is a SCXML document,all the system services are 
registered in a configuration xml file named system_service.xml, each service 
has a unique id which is used to mark the service.
 
4.Service manage and monitor module
Build a Java Swing GUI to check service list,start,stop,deploy or delete some 
services.And also, it has a sub system to monitor running service status,look 
over data in running context,reset this service or kill it.
5.Event dispatch module
Implement a EventDispather class instance to send Event to the system. Each 
Event will contain a service id which is used to mark its owner service and 
specific event content.
 
This is a whole SCXML deploy and management system. If user want to implement 
some SCXML based application, just write proper SCXML document and 
corresponding custom actions,register them in to the system,and start the 
service,it is done.
I think it is a practical SCXML engine,it will make Apache Commons SCXML more 
and more popular,In fact, i have finish some function module, such as custom 
action management module.

I think this is a proper project for GSoC under Apache Commons SCXML, but i 
have not a mentor yet, any one interested in it, please contact 
ustbco...@gmail.com

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to