IBM Modeling and Integration Tools for State Chart XML
Plug-ins for Rational Software Architect and Mozilla that generate and execute event-based application controllers expressed in SCXML and that are based on UML 2.0 state charts.
Date Posted: March 8, 2007
|
|
 |
 |
|
 |  SCXML is an XML representation of a subset of UML 2.0 State Charts, which are described in the UML Specification Version 2.0. SCXML is currently a Working Draft published by the World Wide Web Consortium (W3C). In addition, those extensions to UML 2.0 State Charts made by SCXML are described in the W3C Working Draft. | | |
 |  The Jakarta Commons project in the Apache Software Foundation includes Commons SCXML: an implementation aimed at creating and maintaining a Java™ SCXML engine capable of executing a state machine defined using an SCXML document, while abstracting and extracting the environment interfaces. What we have provided in this alphaWorks technology is a Mozilla plug-in that bridges the environment-independent interfaces of the Apache interpreter and the specific environment of the Mozilla and Firefox browsers. A second plug-in for Rational® Software Architect transforms UML State Chart and Activity Diagrams into SCXML mark-up able to be interpreted by the Apache engine. Note that users must separately download the Apache engine from the Jakarta Commons Web site. | | |
 |  Our first goal in supporting the development of SCXML has been to encourage a common approach to modeling and run-time execution of both visual and voice Web applications. SCXML is emerging from the Voice Browser Working Group at the W3C as a controller for VoiceXML and Call Control XML languages. The charter goal of the SCXML effort is to define a generic XML notation for State Chart-based controllers, hence one suitable for non-voice applications as well. We believe that making use of existing and standards-based design tools, such as UML and SCXML, will help move toward common design methods for Web applications that operate in a variety of interaction channels.
A second goal still under exploration is, in addition to unifying design methods for end-user interaction over multiple channels, to work toward common event-based controllers end-to-end -- that is, for both user interaction and business state machines. | | |
 |  SCXML is a generic state-machine XML notation and, as such, is suitable for a wide variety of uses. Both client-side and server-side examples have been built, including support both for user interaction and business state machines. The Apache SCXML interpreter is independent of any specific container or platform environment, as is the Rational Software Architect plug-in provided in this alphaWorks technology. The Mozilla browser extension is intended to support coordination among multiple, interacting, event-based Web components -- for example, in Web 2.0 client-side "mash-ups." | | |
 |  Click near the title bar to make sure you select the entire diagram rather than an individual state or region. | | |
 |  If you include an activity diagram inside the onentry/onexit actions in a state machine, you will see additional files prefixed by "activity" generated by the UML-to-SCXML transformer. However, in a state machine, the executable content cannot contain a state machine (it will not be interpreted properly by this SCXML plug-in). Therefore, although the activity transformation is done, it is not linked to the main state machine that contains it. | | |
 |  Currently, Time events are not supported in the UML-to-SCXML transformer. Timeouts must be added manually to the generated SCXML file after transformation is complete. | | |
 |  The transformer doesn't. It will simply read what you put in the guard property of the transition. You must manually edit the file and insert the appropriate conditions based on the expression language supported. | | |
 |  Security considerations often require the nsscxml.jar file to be on the same domain as the host serving the (X)HTML document containing the SCXML mark-up. The document-relative URL for the folder containing the nsscxml.jar file can be specified by the nsscxml:classpath attribute, as illustrated in the examples. | | |
 |  XML events are used to fire events on the SCXML root element. See the examples directory for samples. | | |
 |  Mozilla or Firefox will recognize the SCXML name space only if the host document is an XHTML document (with an .xhtml extension). The mime type (if document is hosted on the server) is application/xhtml+xml. | | |
 |  The extension supports Commons JEXL, the default expression language used by the Commons SCXML implementation. In addition, authors can evaluate XPath expressions using the following:
- xpath.evaluateNumber(String expression)
- xpath.evaluateString(String expression)
- xpath.evaluateBoolean(String expression)
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
IBM and Rational are trademarks of IBM Corporation in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
| |
|
|
 |
|
View screenshots:
 |
| |