Benutzer:TobbiM/SCXML
Vorlage:Infobox file format SCXML steht für State Chart XML: State Machine Notation for Control Abstraction. Bezeichnet wird damit eine XML-basierte Auszeichnungssprache, welche eine Ausführungsumgebung für allgemeine Zustandsmaschinen auf Basis von Harels Statecharts bietet.
Mit SCXML ist es möglich, komplexe endliche Zustände zu definieren. Beispielsweise kann man mit der Sprache Notationen wie Unterzustände, gleichzeitige Zustände, Synchronisation und Gleichzeitigkeit ausdrücken.
Ziele
Ziel dieses Standards ist es, Notationen für Zustandsdiagramme zu vereinheitlichen, welche bereits in anderen XML-Zusammenhängen genutzt werden. Es wird zum Beispiel erwartet, dass SCXML-Notationen die Zustandsmaschinennotation, die in der nächsten Version 2.0 von CCXML Anwendung findet, ersetzen soll (CCXML ist ein XML-Standard für die Telefonieunterstützung bei VoiceXML). Weiterhin kann SCXML als multimodale Kontrollsprache in der Multimodal Interaction Activity verwendet werden.
Einer der Ziele der Sprache ist, sicherzustellen, dass die Sprache mit CCXML kompatibel ist, und dass es einen leichten Weg gibt, vorhandene CCXML-Skripte nach SCXML zu konvertieren, ohne größere Änderungen am Programmiermodell oder der Dokumentenstruktur vornehmen zu müssen (zum Beispiel durch die Verwendung von XSL-Transformationen).
Der letzte Arbeitsentwurf der Spezifikation wurde vom W3C im April 2011 herausgegeben.[1]
Beispiele
Laut der State Chart XML (SCXML): State Machine Notation for Control Abstraction-Spezifikation ist SCXML eine allgemeingültige ereignisbasierte Zustandsmaschinen-Sprache, die auf verschiedene Weise genutzt werden kann, darunter:
- Als hohe Dialogsprache zur Kontrolle der von VoiceXML 3.0 bereitgestellten Sprachmodule (Sprach-Formularfeld, voice picklist, etc.)
- Als Metsprache für Sprachanwendungen, wobei zusätzlich zu den Funktionen von Voice XML 3.0 auch Datenbankzugriff und Geschäftslogik-Module angesprochen werden können.
- As a multimodal control language in the MultiModal Interaction framework, combining VoiceXML 3.0 dialogs with dialogs in other modalities including keyboard and mouse, ink, vision, haptics, etc. It may also control combined modalities such as lipreading (combined speech recognition and vision) speech input with keyboard as fallback, and multiple keyboards for multi-user editing.
- As the state machine framework for a future version of CCXML.
- As an extended call center management language, combining CCXML call control functionality with computer-telephony integration for call centers that integrate telephone calls with computer screen pops, as well as other types of message exchange such as chats, instant messaging, etc.
- As a general process control language in other contexts not involving speech processing.
The W3C Voice Extensible Markup Language (VoiceXML) 3.0 specification includes State Chart and SCXML Representation to define functionality.
Truly multimodal applications should allow the user to communicate through the interface most suitable for the context of the interaction. Consider an application that has voice as well as the mobile phones display and keyboard as interfaces. The user will favor the most effective interface and can make a voice request to avoid excessive typing and then “click” on a list or map on the display instead of listening to long descriptions of available options. SCXML makes it easy to do several things in parallel, and the Interaction Manager SCXML application will maintain the synchronization between Voice and Visual dialogues.
The W3C document Authoring Applications for the Multimodal Architecture describes a multimodal system which implements the W3C Multimodal Architecture and gives an example of a simple multimodal application authored using various W3C markup languages, including SCXML, CCXML, VoiceXML 2.1 and HTML.
Here is the state chart diagram which describes the behavior of a stopwatch:
The SCXML file describing the transitions in this diagram is:
<?xml version="1.0" encoding="UTF-8"?>
<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initial="ready">
<state id="ready">
<transition event="watch.start" target="running"/>
</state>
<state id="running">
<transition event="watch.split" target="paused"/>
<transition event="watch.stop" target="stopped"/>
</state>
<state id="paused">
<transition event="watch.unsplit" target="running"/>
<transition event="watch.stop" target="stopped"/>
</state>
<state id="stopped">
<transition event="watch.reset" target="ready"/>
</state>
</scxml>
(Apache Licenced, see on this page)
Implementations
- Intervoice Media Exchange and Intervoice Voice Portal contain orchestration engines that have been designed to initiate and manage media interactions. Media Exchange and Voice Portal are the industry's first commercially available products that have implemented the World Wide Web Consortium (W3C) State Chart eXtensible Markup Language (SCXML) as the framework for building complex multi-modal interactions.
- Intervoice Interaction Composer is a graphical, Eclipse-based Integrated Development Environment (IDE) for building, deploying, and managing complex voice or multi-modal applications. Interaction Composer enables the development of applications that allow callers to perform tasks simultaneously or interrupt tasks with new requests, and then resume tasks where they left off. Interaction Composer leverages the W3C specification for State Chart eXtensible Markup Language (SCXML).
- Apache Commons SCXML, a pure Java library to parse and execute SCXML diagrams
- Web interface to an experimental SCXML implementation in the Oz programming language
- Simple State Chart XML provided the first publicly available SCXML C++ implementation.
- Qt SCXML Engine implemented in C++ as well and tightly integrated with their Signals and Slots concept.
- PySCXML a Python-implementation under active development. Supports a wide range of technologies, including websockets and SOAP. Highly standards-compliant. Also supports the ECMAScript datamodel.
- The PySCXML Console a web-based interactive SCXML console for running and interacting with SCXML documents. Supports the ECMAScript datamodel.
- SCXML4Flex ActionScript/Flex partial port of PySCXML.
- EclipseSCXML Eclipse Based Visual SCXML Editor.
- SCXMLgui Java Visual Editor for SCXML.
See also
References
<references>
External links
Vorlage:W3C standards Vorlage:Use mdy dates
- ↑ State Chart XML (SCXML) Working Draft Published. World Wide Web Consortium. 26. April 2011. Abgerufen am 25. Mai 2011.