CHAPTER 3 SPECIFICATION FOR SIMULATION SERVICE AND SERVICE-
3.3 A specification for simulation software as a service and service-oriented simulation
3.3.1 Specification for simulation software as a service
As for a simulation, it can be perceived as a black box, which is shown in Figure
3.1, associated with its inputs, outputs, initial state, resource data, control and
configurable model parameters. To make a simulation as a service, these six aspects
Figure 3.1 The meta-model of a simulation service
A single simulation service is a ten-tuple:
SimSaaS=<NameSpace, ID, [I], [O], initialS, [RD], Control, [CMP], [Operation],
[Query]>,
where
NameSpace is the identifier that uniquely distinguishes one simulation service from
another.
ID is the instance identifier of the simulation service. It is used to distinguish
multiple instances of the same simulation services.
[I] represents a set of inputs associated with the simulation service. For example, the
ignition point location is an input of the wildfire simulation service.
[O] represents a set of outputs associated with the simulation service. For example,
the burned area and perimeter of the fire at certain simulation timestamp are two outputs
of the wildfire simulation service.
initialS represents the simulation initial state. It is the starting state of a simulation
instance. In wildfire simulation, the initial state is the initial fire shape.
[RD] represents a set of the resource data, which are used by the simulation as
resources. For example, fuel data, aspect data, and slope data are the resource data that
are used in wildfire simulation. These three data lay the ground where the fire propagates.
Control represents Start, Stop, Pause, Continue commands.
[CMP] represents a set of the configurable model parameters, which are used to
configure the simulation model. For example, the burning threshold is a model parameter
[Operation] represents a set of simulation related operations. These operations will
be used by the coordinator service when composed with other simulation services.
[Query] represents a set of interfaces that can be used by the user to obtain model
related outputs.
Sometimes, some simulation services need to be composed together in order to
achieve accuracy or these simulation services depend on each other to work properly.
Thus, a specification for composed simulation service is also needed, which can be
represented by an eleven-tuple:
Composed SimSaaS=<[SimSaaS], Coordinator Service, [Composition Coupling], [I],
[O], [initialS], [RD], Control, [CMP], [Operation], [Query]>,
where
[SimSaaS] represents a set of simulation services used for composition.
[Composition Coupling] represents a set of connections that define the data flow
among the simulation services. The composition coupling can be represented as
Composition Coupling=<SimSaaSi.NameSpace, SimSaaSi.ID, SimSaaSi.O,
SimSaaSj.NameSpace, SimSaaSj.ID, SimSaaSj.I, [Property]>. It specifies one output of
SimSaaSi should be fed to one input of SimSaaSj in the composed simulation service.
[Property] is a set of properties that associates with this coupling. It defines pragmatic
level interoperability between two simulation services, which will be detailed in the next
section.
[I] represents a set of inputs associated with this composed simulation service. It
contains a union set or a subset of the union set of all the inputs of all the simulation
[O] represents a set of outputs associated with this composed simulation service. It
contains a union set or a subset of the union set of all the outputs of all the simulation
services employed in this composed simulation service.
[initialS] represents a set of initial states for each simulation service employed in
this composed simulation service.
[RD] represents a set of the resource data associated with this composed simulation
service. It contains a union set of all the resource data of all the simulation services
employed in this composed simulation service.
Control is represented by the Control of Coordinator Service. In other words, a
composed simulation service is controlled via its Coordinator Service.
[CMP] represents a set of the configurable model parameters associated with this
composed simulation service. It contains a union set of all the configurable model
parameters of all the simulation services employed in this composed simulation service.
[Operation] represents a set of simulation related operations, which will be used
during the execution of the composed simulation service. It is provided by the [Operation]
of Coordinator Service, in order to be composed in a larger context with other simulation
services.
[Query] represents a set of interfaces that can be used by the user to get model
related outputs. It contains a union set of the [Query] of all the simulation services
employed in this composed simulation service.
Coordinator Service is a special service that acts as the “glue” that actually connects
controls the execution phase of the composed simulation service. It is represented by a
five-tuple:
Coordinator Service=<NameSpace, ID, Execution Protocol, [Operations], Control>,
where
NameSpace is the identifier that uniquely distinguishes one coordinator service from
another.
ID is the identifier that of the coordinator service. It is used to distinguish multiple
instances of the same coordinator services.
Execution Protocol specifies how the simulation services in a composed simulation
service should be executed. It guarantees the temporal order of the events occur in each
participant simulation service in order to assure the correctness of the composed
simulation service.
[Operations] represents a set of operations employed during the execution of the
composed simulation service.
Control represents Start, Stop, Pause, Continue commands.
A composed simulation service is still a simulation service, and it can be further
composed with other simulation services. Figure 3.2 shows an example of composed
simulation services. The solid line with arrow illustrates the actual data flow and the
dashed line with arrow represents the composed coupling. From the figure we can see
that a composed simulation service retain the same interface as an individual simulation
service, which means that it can be further composed in a larger context with other
Figure 3.2 An example of composed simulation service