SCXML datamodel: What is the motivation and how to do better #32
tfahringer
started this conversation in
General
Replies: 1 comment
-
Scxml has <invoke> element that invokes submachine with its own scope. In the example below data model element called i_ID is seen only inside submachine. And you can implement your custom invoker which will launch submachine on another PC |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
A main concern I have with the latest SCXML specification refers to its data model. SCXML supports all this sophisticated nesting of state machines and states with compound states and parallel states. Even if a runtime system (processor) for SCXML is a serial or shared memory parallel program it is unclear why the current SCXML data model specification allows global data only.
From my point of view there could be data that is alive only when a state is active. Such data actually could even be visible only to this state where the data is declared and all child/descendent states but not in a hierarchy above.
So I believe a weakness of SCXML data model is the lack of private data or scope of data that goes beyond "all global data".
This lack is even more serious if someone would want to build a parallel processor or runtime system such that different states may run on different compute resources for instance over the cloud. So if all data must be global, this model would be difficult to implement and cause scalability problems. Private data that is seen only by a state and its descendents would simply things a lot.
Interesting would be to allow data elements that are seen only within a state and its descendents and they disappear once the state with the declaration of this data is not active. Furthermore, some kind of static data element which remains even if the state is no longer active, would be interesting as well.
Beta Was this translation helpful? Give feedback.
All reactions