@@ -11,10 +11,12 @@ The definition of the scope of a WFS is up to the user. Some predefined WFSs as
### SimStadt Workflow Step
In general, a workflow step in SimStadt consists of a functional part (F), connector to workflow communication part (C) and a human computer interaction part (HCI).
In general, a workflow step in SimStadt consists of a functional part F, connector to workflow communication part C and a human computer interaction part HCI.
Figure 1: the three components of a SimStadt Workflow Step
The functional part of the Workflow step encapsulates the purpose of a particular workflow step. For example, the calculation of the volume of a building happens here. The functional part has to be independend of the communication between workflow steps as well as the HCI part. Why? Because a workflow step has to have the same functionality in the SimStadt desktop application and as Web Services. In addition, the workflow can be executed as a batch process and as an interactive system.
The C part is necessary to connect the workflow step to an existing workflow in a given workflow environment. It retrieves input data that is needed to execute the functionality of the WFS, execute the functionial part of the WFS and passes the results to the next WFS. The implementation of the C part depends on the used workflow environment itself. A workflow step usually has a connector to the SimStadt desktop (SD_Connector) workflow environment as well as to the Micro Web Service (WS_Connector) workflow environment. If another workflow system such as FME shall be used, a specific connector has to be implemented.
...
...
@@ -29,7 +31,7 @@ An example of a SD_connector is given in the SimStadt documentation. The example
The HCI part is used to interactively change the configurion of the Workflow environment and a WFS if required. At the same time it displays the results of the WFS during runtime.
## SimStadt Data Model
### SimStadt Data Model
Math: The SimStadt data model is a heterogeneous algebra.
...
...
@@ -87,5 +89,4 @@ Please notice that it is a simple example, and not implemented as such in the Si
The level of abstraction is similar to a mathematical function, an algorithm (implementation of a function) and Java Method (implementation of an algorithm). There are many different algorithms to implement the same mathematical function. And of course, an algorithm can be implemented by an infinite number of different implementations in Java and in other programming languages. But it is still the same algorithm. The same idea applies to data types and algebra. A data type can be implemented an invinite number of different Java classes and in other programming languages such as Fortran and C, as well as in INSEL, but it is still the same data type.