SCXML
Расширение имени файла | .scxml |
---|---|
Разработано | Консорциум Всемирной паутины |
Последний выпуск | 1.0 1 сентября 2015 г. |
Тип формата | Язык разметки |
Расширено с | XML |
Веб-сайт | http://www.w3.org/TR/scxml/ |
SCXML означает XML диаграммы состояний: нотация конечного автомата для абстракции управления. Это XML на основе язык разметки , который обеспечивает общую среду выполнения на основе конечного автомата на основе диаграмм состояний Harel .
SCXML способен описывать сложные конечные автоматы . Например, в SCXML можно описывать такие нотации, как подсостояния, параллельные состояния, синхронизация или параллелизм.
Цели
[ редактировать ]Целью этого стандарта является обобщение нотаций диаграммы состояний , которые уже используются в других контекстах XML. Например, ожидается, что нотации SCXML заменят нотации конечных автоматов, используемые в следующей версии CCXML 2.0 (стандарт XML, разработанный для обеспечения поддержки телефонии для VoiceXML ). Его также можно использовать в качестве языка мультимодального управления в Multimodal Interaction Activity .
Одна из целей этого языка — убедиться, что язык совместим с CCXML и что существует простой путь преобразования существующих сценариев CCXML в SCXML без серьезных изменений в модели программирования или структуре документа (например, с помощью использования XSL -преобразование ).
Текущая версия спецификации была выпущена W3C в сентябре 2015 года. [1]
Приложения
[ редактировать ]Согласно спецификации W3C SCXML, [2] SCXML — это язык конечных автоматов общего назначения, основанный на событиях, который можно использовать разными способами, в том числе:
- В качестве языка диалога высокого уровня, управляющего инкапсулированными речевыми модулями VoiceXML 3.0 (голосовая форма, голосовой список выбора и т. д.)
- В качестве метаязыка голосовых приложений, где помимо функций VoiceXML 3.0 он также может управлять доступом к базе данных и модулями бизнес-логики.
- В качестве языка мультимодального управления в структуре MultiModal Interaction, сочетающего диалоги VoiceXML 3.0 с диалогами в других модальностях, включая клавиатуру и мышь, рукописный ввод, зрение, тактильные ощущения и т. д. Он также может управлять комбинированными модальностями, такими как чтение по губам (комбинированное распознавание речи и зрение) речь. ввод с клавиатуры в качестве запасного варианта и несколько клавиатур для многопользовательского редактирования.
- В качестве структуры конечного автомата для будущей версии CCXML.
- В качестве расширенного языка управления колл-центром, сочетающего функции управления вызовами CCXML с интеграцией компьютерной телефонии для колл-центров, которые интегрируют телефонные звонки с всплывающими сообщениями на экране компьютера, а также другие типы обмена сообщениями, такие как чаты, обмен мгновенными сообщениями и т. д.
- В качестве общего языка управления процессами в других контекстах, не связанных с обработкой речи.
Проект спецификации W3C VoiceXML 3.0 [3] включает диаграмму состояний и представление SCXML для определения функциональности.
Мультимодальные приложения
[ редактировать ]В проектах мультимодальных приложений могут использоваться разные модальности (например, голос, сенсорный экран или клавиатура и мышь) для разных частей коммуникации, наиболее подходящих для этого. Например, голосовой ввод можно использовать, чтобы избежать необходимости печатать на маленьком экране мобильного телефона, но экран может быть более быстрым способом передачи списка или карты по сравнению с прослушиванием длинных описаний доступных опций. SCXML позволяет легко выполнять несколько задач параллельно, а приложение Interaction Manager SCXML будет поддерживать синхронизацию между голосовыми и визуальными диалогами.
Документ W3C «Разработка приложений для мультимодальной архитектуры». [4] описывает мультимодальную систему, реализующую мультимодальную архитектуру W3C, и приводит пример простого мультимодального приложения, созданного с использованием различных языков разметки W3C, включая SCXML, CCXML, VoiceXML 2.1 и HTML.
Реализации
[ редактировать ]- scxmlcc Эффективный компилятор scxml в C++.
- Apache Commons SCXML , чистая библиотека Java для анализа и выполнения диаграмм SCXML.
- Визуальный редактор Java SCXMLgui для SCXML.
- SCION SCXML реализован на переносимом JavaScript.
- JSSCxml — реализация веб-браузера. Высокая совместимость с хорошей поддержкой событий DOM. Поддерживается только модель данных ECMAScript.
- uSCXML Интерпретатор и преобразователь/компилятор C/C++ с языковыми привязками для Java и C#. Полная поддержка ECMAScript через JavaScriptCore или Google v8, дополнительные модели данных LUA и Prolog, лишь элементарная поддержка модели данных XPath. Модель данных PROMELA для формальной проверки с помощью средства проверки моделей SPIN.
- Интерпретатор LXSC Lua XML StateChart — анализирует и выполняет конечные автоматы SCXML с моделью данных Lua.
- Qt SCXML Engine также реализован на C++ и тесно интегрирован с их концепцией сигналов и слотов , а визуальный редактор интегрирован в Qt Creator .
- XState реализован на TypeScript.
Неактивные реализации
[ редактировать ]Следующие реализации являются неактивными, т.е. последнее изменение в их исходный код было внесено более двух лет назад:
- Веб-интерфейс экспериментальной реализации SCXML на языке программирования Oz.
- Legian Механизм SCXML, реализованный на Java с использованием Rhino в качестве механизма Javascript. Он также поддерживает некоторые дополнительные функции, такие как библиотеки пользовательских тегов и включает в себя. Он не полностью совместим с W3C.
- PySCXML — реализация Python. Поддерживает широкий спектр технологий, включая веб-сокеты и SOAP. Высокое соответствие стандартам. Также поддерживает модель данных ECMAScript. (последний рывок 2013 г.)
- Консоль PySCXML — это интерактивная веб-консоль SCXML для запуска документов SCXML и взаимодействия с ними. Поддерживает модель данных ECMAScript.
- SCXML4Flex ActionScript/частичный порт Flex PySCXML .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «XML диаграммы состояний (SCXML): нотация конечного автомата для абстракции управления» . Консорциум Всемирной паутины . 1 сентября 2015 года . Проверено 2 марта 2016 г.
- ^ XML диаграммы состояний (SCXML): нотация конечного автомата для спецификации абстракции управления
- ^ Спецификация расширяемого языка разметки голоса (VoiceXML) 3.0
- ^ Разработка приложений для мультимодальной архитектуры.