SCXML

SCXML
상태 차트 XML
파일 이름 확장자
.scxml
개발자월드 와이드 웹 컨소시엄
최신 릴리즈
1.0
2015년 9월 1일
포맷의 종류마크업 언어
확장원XML
웹 사이트http://www.w3.org/TR/scxml/

SCXML은 State Chart XML: State Machine Notation for Control Abstraction의 약자입니다.XML 기반 마크업 언어이며 Harel 상태 차트를 기반으로 일반적인 상태 머신 기반 실행 환경을 제공합니다.

SCXML은 복잡한 유한 상태 머신을 기술할 수 있습니다.예를 들어 SCXML에서는 서브스테이트, 병행스테이트, 동기화, 동시성 등의 표기를 기술할 수 있습니다.

목표들

이 표준의 목적은 다른 XML 컨텍스트에서 이미 사용되고 있는 상태 다이어그램 표기법을 범용화하는 것입니다.를 들어 SCXML 표기법은 다음 CCXML 2.0 버전(VoiceXML에 텔레포니지원을 제공하도록 설계된 XML 표준)에서 사용되는 State Machine 표기법을 대체할 것으로 예상됩니다.또한 Multimodal Interaction Activity에서 Multimodal 제어 언어로 사용할 수 있습니다.

이 언어의 목적 중 하나는 언어가 CCXML과 호환성이 있는지 확인하고 프로그래밍 모델이나 문서 구조를 크게 변경하지 않고 기존 CCXML 스크립트를 SCXML로 쉽게 변환할 수 있도록 하는 것입니다(XSL 변환 사용 등).

현재 버전의 사양은 2015년 [1]9월에 W3C에 의해 공개되었습니다.

적용들

W3C SCXML [2]사양에 따르면 SCXML은 범용 이벤트 기반 스테이트 머신 언어이며 다음과 같은 다양한 방법으로 사용할 수 있습니다.

  • VoiceXML 3.0의 캡슐화된 음성 모듈(음성 형식, 음성 선택 목록 등)을 제어하는 고급 대화 언어로서의 기능
  • 음성 어플리케이션 메타언어로서 VoiceXML 3.0 기능 외에 데이터베이스 액세스 및 비즈니스 로직모듈도 제어할 수 있습니다.
  • MultiModal Interaction 프레임워크의 멀티모달 제어 언어로서 VoiceXML 3.0 대화 상자를 키보드와 마우스, 잉크, 비전, 합틱스 등의 다른 형식의 대화 상자와 결합합니다.또, 립 리딩(음성 인식과 시각의 조합) 음성 입력과 키보드를 폴백으로 하여 복수의 키보드를 편집하는 등, 복합적인 형태를 제어할 수도 있습니다.
  • 향후 버전의 CCXML을 위한 상태 시스템 프레임워크로 사용됩니다.
  • 확장 콜 센터 관리 언어로서 CCXML 콜 제어 기능과 전화 콜을 컴퓨터 화면과 통합하는 콜센터의 컴퓨터 전화 통합 및 채팅, 인스턴트 메시징 등의 기타 유형의 메시지 교환 기능을 결합합니다.
  • 일반적인 프로세스로서 음성 처리를 수반하지 않는 다른 컨텍스트에서의 제어 언어.

W3C VoiceXML 3.0 사양[3] 초안에는 기능을 정의하기 위한 상태 차트 및 SCXML 표현이 포함되어 있습니다.

멀티모달 어플리케이션

멀티모달 애플리케이션 설계에서는, 최적인 통신의 다른 부분(예를 들면, 음성 vs. 터치 스크린 vs. 키보드와 마우스)에 대해서, 다른 형식(예를 들면, 음성 voice vs. touchscreen vs.예를 들어, 음성 입력은 휴대 전화의 작은 화면에 입력할 필요가 없도록 사용할 수 있지만, 사용 가능한 옵션에 대한 긴 설명을 듣는 것에 비해 화면이 목록 또는 지도를 전달하는 더 빠른 방법이 될 수 있습니다.SCXML을 사용하면 여러 작업을 병렬로 쉽게 수행할 수 있으며 Interaction Manager SCXML 응용 프로그램은 Voice 대화와 Visual 대화 상자 간의 동기화를 유지합니다.

A multimodal configuration

W3C 문서 "Authoring[4] Applications for the Multimodal Architecture"에서는 W3C 멀티모달아키텍처를 구현하는 멀티모달시스템에 대해 설명하고 SCML, CCXML, VoiceXML 2.1 및 HTML 등의 다양한 W3C 마크업 언어를 사용하여 작성된 단순한 멀티모달어플리케이션의 예를 나타냅니다.

실장

  • scxmlcc C++ 컴파일러에 대한 효율적인 scxml.
  • Apache Commons SCXML - SCXML 다이어그램을 해석하고 실행하는 순수 Java 라이브러리
  • SCXML용 SCXMLgui Java Visual Editor.
  • SCION SCXML은 휴대용 JavaScript에 구현되어 있습니다.
  • 브라우저 구현인 JSSCxml.준거성이 뛰어나고 DOM 이벤트를 충분히 지원합니다.ECMAScript 데이터 모델만 지원합니다.
  • 자바 및 C#용 언어 바인딩을 가진 uSCXML C/C++ 인터프리터 및 트랜스포머/컴파일러.JavaScriptCore 또는 Google v8을 통한 완전한 ECMAScript 지원, 추가 LUA 및 Prolog 데이터 모델, XPath 데이터 모델 기본 지원만 제공합니다.SPIN 모델 체커를 통한 공식 검증을 위한 PROMELA 데이터 모델.
  • LXSC Lua XML StateChart 인터프리터 - Lua 데이터 모델을 사용하여 SCXML 스테이트 머신을 해석 및 실행합니다.
  • Qt SCXML Engine은 C++로 구현되어 있으며, Qt Creator에 통합된 비주얼 에디터와 함께 Signals 및 Slots 개념과 긴밀하게 통합되어 있습니다.
  • XState는 TypeScript에 구현되어 있습니다.

비활성 구현

다음 구현은 비활성화되어 있습니다.즉, 소스코드가 마지막으로 변경된 것은 2년 이상 전입니다.

  • Oz 프로그래밍 언어로 실험적인 SCXML 구현을 위한 웹 인터페이스
  • Legian Rhino를 Javascript 엔진으로 사용하여 Java에서 구현된 SCXML 엔진입니다.또한 커스텀 태그 라이브러리 및 다음과 같은 추가 기능도 지원합니다.W3C에 완전히 준거하고 있지 않습니다.
  • PySCXML은 Python 구현입니다.웹소켓, SOAP 등 다양한 기술을 지원합니다.고도의 규격 준거.ECMAScript 데이터 모델도 지원합니다.(마지막 푸시 2013)
  • PySCXML Console은 SCXML 문서를 실행하고 상호 작용하기 위한 웹 기반 대화형 SCXML 콘솔입니다.ECMAScript 데이터 모델을 지원합니다.
  • SCXML4Flex ActionScript/PySCXML의 Flex 부분 포트.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "State Chart XML (SCXML): State Machine Notation for Control Abstraction". World Wide Web Consortium. September 1, 2015. Retrieved March 2, 2016.
  2. ^ State Chart XML(SCXML): Control Abstraction 사양을 위한 State Machine 표기법
  3. ^ Voice Extensible Markup Language(VoiceXML) 3.0 사양
  4. ^ 멀티모달 아키텍처용 어플리케이션 작성

외부 링크