IBM®
Skip to main content
    United States change      Terms of use
 
 
Select a scope:    
     Home      Products      Services & industry solutions      Support & downloads      My account     
alphaWorks  >  XML  >  

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
Overview Requirements DownloadFAQsForum Reviews

1. How can I find out more about the State Chart XML (SCXML) language and UML (Unified Modeling Language) 2.0 State Charts?
2. To which version of the W3C SCXML Working Draft should I refer?
3. How is this alphaWorks release related to the SCXML work in the Apache Software Foundation?
4. What are IBM's® goals in pursuing this technology?
5. What type of applications are suitable for SCXML?
6. In the Rational Software Architect plug-in, I am getting an Invalid Source... error message. What is wrong?
7. In the Rational Software Architect plug-in, how are activities transformed inside my state machine?
8. In the Rational Software Architect plug-in, how do I create a Time event?
9. In the Rational Software Architect plug-in, how does the transformer know the proper syntax for the cond attribute?
10. In the Mozilla plug-in, where do I put the nsscxml.jar file?
11. In the Mozilla plug-in, how do I fire events on the state machine defined by the SCXML mark-up?
12. In the Mozilla plug-in, what extension or mime type should be used?
13. In the Mozilla plug-in, what expression language(s) are supported?


1. How can I find out more about the State Chart XML (SCXML) language and UML (Unified Modeling Language) 2.0 State Charts?

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.
Back to top Back to top

2. To which version of the W3C SCXML Working Draft should I refer?

Please refer to the July 2005 Working Draft.
Back to top Back to top

3. How is this alphaWorks release related to the SCXML work in the Apache Software Foundation?

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.
Back to top Back to top

4. What are IBM's® goals in pursuing this technology?

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.

Back to top Back to top

5. What type of applications are suitable for SCXML?

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."
Back to top Back to top

6. In the Rational Software Architect plug-in, I am getting an Invalid Source... error message. What is wrong?

Click near the title bar to make sure you select the entire diagram rather than an individual state or region.
Back to top Back to top

7. In the Rational Software Architect plug-in, how are activities transformed inside my state machine?

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.
Back to top Back to top

8. In the Rational Software Architect plug-in, how do I create a Time event?

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.
Back to top Back to top

9. In the Rational Software Architect plug-in, how does the transformer know the proper syntax for the cond attribute?

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.
Back to top Back to top

10. In the Mozilla plug-in, where do I put the nsscxml.jar file?

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.
Back to top Back to top

11. In the Mozilla plug-in, how do I fire events on the state machine defined by the SCXML mark-up?

XML events are used to fire events on the SCXML root element. See the examples directory for samples.
Back to top Back to top

12. In the Mozilla plug-in, what extension or mime type should be used?

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.
Back to top Back to top

13. In the Mozilla plug-in, what expression language(s) are supported?

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.

Back to top Back to top
View screenshots:
Application development cycle using IBM Modeling and Integration Tools for SCXML.

Download now Download now

Related technologies

For platform(s):
Windows

For topics:
Eclipse, integration, Java technology, modeling, Web services, XML


 

    About IBM Privacy Contact