SCXML - SCXML
Přípona názvu souboru | .scxml |
---|---|
Vyvinul | World Wide Web Consortium |
Poslední vydání | 1.0 (1. září 2015) |
Typ formátu | Značkovací jazyk |
Rozšířeno z | XML |
webová stránka | http://www.w3.org/TR/scxml/ |
SCXML znamená State Chart XML: State Machine Notation for Control Abstraction. Je to XML -na základě značkovací jazyk který poskytuje obecný státní stroj -založené prostředí pro provádění založené na Harelské státní mapy.
SCXML dokáže popsat komplex konečné stavové automaty. Například je možné v SCXML popsat notace, jako jsou dílčí stavy, paralelní stavy, synchronizace nebo souběžnost.
Cíle
Cílem této normy je zobecnit stavový diagram notace, které se již používají v jiných kontextech XML. Například se očekává, že notace SCXML nahradí Zápisy státních strojů použito v dalším CCXML Verze 2.0 (standard XML navržený tak, aby poskytoval telefonie podpora VoiceXML ). Mohlo by to být také použito jako multimodální kontrolní jazyk v Aktivita multimodální interakce.
Jedním z cílů tohoto jazyka je zajistit, aby byl jazyk kompatibilní s CCXML a aby existovala snadná cesta pro převod existujících skriptů CCXML do SCXML bez větších změn programovacího modelu nebo struktury dokumentu (například pomocí an Transformace XSL ).
Aktuální verzi specifikace vydala W3C v září 2015.[1]
Aplikace
Podle specifikace W3C SCXML,[2] SCXML je univerzální stavový stroj založený na událostech založený na událostech, který lze použít mnoha způsoby, včetně:
- Jako jazyk na vysoké úrovni dialogu ovládající zapouzdřené řečové moduly VoiceXML 3.0 (hlasová forma, hlasový seznam atd.)
- Jako metajazyk hlasové aplikace, kde kromě funkčnosti VoiceXML 3.0 může také řídit přístup do databáze a moduly obchodní logiky.
- Jako multimodální ovládací jazyk v rámci MultiModal Interaction, který kombinuje dialogy VoiceXML 3.0 s dialogy v jiných modalitách včetně klávesnice a myši, inkoustu, vidění, haptiky atd. Může také ovládat kombinované modality, jako je lipreading (kombinované rozpoznávání řeči a vidění) řeči vstup s klávesnicí jako záložní a více klávesnic pro úpravy více uživatelů.
- Jako rámec stavového stroje pro budoucí verzi CCXML.
- Jako rozšířený jazyk pro správu call centra kombinující funkce ovládání hovorů CCXML s integrací počítačové telefonie pro call centra, která integrují telefonní hovory se zobrazením obrazovky počítače, a další typy výměny zpráv, jako jsou chaty, rychlé zprávy atd.
- Jako generál kontrola procesu jazyk v jiných kontextech bez zpracování řeči.
Návrh W3C VoiceXML 3.0 specifikace[3] zahrnuje státní graf a reprezentaci SCXML k definování funkčnosti.
Multimodální aplikace
Multimodální návrhy aplikací mohou používat různé způsoby (například hlas vs. dotyková obrazovka vs. klávesnice a myš) pro různé části komunikace, které se k ní nejlépe hodí. Například hlasový vstup lze použít, abyste nemuseli psát na malé obrazovce mobilního telefonu, ale obrazovka může být rychlejším způsobem komunikace se seznamem nebo mapou ve srovnání s poslechem dlouhých popisů dostupných možností. SCXML usnadňuje paralelní provádění několika věcí a aplikace SCXML Interaction Manager bude udržovat synchronizaci mezi hlasovými a vizuálními dialogy.
Dokument W3C Authoring Applications for the Multimodal Architecture[4] popisuje multimodální systém, který implementuje multimodální architekturu W3C, a uvádí příklad jednoduché multimodální aplikace vytvořené pomocí různých značkovacích jazyků W3C, včetně SCXML, CCXML, VoiceXML 2.1 a HTML.
Implementace
- scxmlcc Efektivní kompilátor scxml do C ++.
- Apache Commons SCXML, čistá knihovna Java pro analýzu a provádění diagramů SCXML
- SCION SCXML implementován v přenosném JavaScriptu.
- JSSCxml implementace webového prohlížeče. Vysoce kompatibilní s dobrou podporou událostí DOM. Podporuje pouze datový model ECMAScript.
- uSCXML C / C ++ tlumočník a transformátor / kompilátor s jazykovými vazbami pro Java a C #. Plná podpora ECMAScript přes JavaScriptCore nebo Google v8, další datové modely LUA a Prolog, pouze základní podpora pro datový model XPath. Datový model PROMELA pro formální ověření pomocí kontroly modelu SPIN.
- LXSC Lua XML StateChart interpreter - analyzuje a spouští stavové stroje SCXML s datovým modelem Lua.
- Qt SCXML Engine implementovány také v C ++ a úzce integrovány s jejich Signály a sloty koncept s integrovaným vizuálním editorem v Tvůrce Qt.
- XState implementováno v JavaScriptu.
Neaktivní implementace
Následující implementace jsou neaktivní, tj. Poslední změna jejich zdrojového kódu byla provedena před více než dvěma lety:
- Webové rozhraní k experimentální implementaci SCXML v programovacím jazyce Oz
- Legian Engine SCXML implementovaný v Javě pomocí Rhina jako enginu Javascript. Podporuje také některé další funkce, jako jsou vlastní knihovny značek a zahrnuje. Není plně kompatibilní s W3C.
- PySCXML implementace v Pythonu. Podporuje širokou škálu technologií, včetně webových zásuvek a SOAP. Vysoce v souladu s normami. Podporuje také datový model ECMAScript. (poslední stisk 2013)
- Konzola PySCXML webová interaktivní konzola SCXML pro spouštění a interakci s dokumenty SCXML. Podporuje datový model ECMAScript.
- SCXML4Flex ActionScript / Flex částečný port PySCXML.
- SCXMLgui Java Visual Editor pro SCXML.
Viz také
Reference
- ^ „State Chart XML (SCXML): State Machine Notation for Control Abstraction“. World Wide Web Consortium. 1. září 2015. Citováno 2. března 2016.
- ^ State Chart XML (SCXML): State Machine Notation for Control Abstraction specification
- ^ Specifikace Voice Extensible Markup Language (VoiceXML) 3.0
- ^ Tvorba aplikací pro multimodální architekturu