• No results found

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