Sometimes, people is confused about Simware capabilities. Because Simware is compliant with data distribution technologies as HLA or DDS, some people says that Simware is another middleware. Others see the many extensions in Simware and the capabilities included in them and think about Simware as a vertical solution ready to be installed in the end-user facilities. Parts of Simware can work as a middleware or as end-user applications, but essentially Simware is a SIMULATION PLATFORM, oriented to the developer of simulation applications. Even when it is true that Simware includes middlewares and deployment tools and infrastructure, what it is important and relevant in Simware is how all the tools, middlewares, runtimes infrastructures and APIs are integrated into a comprehensive software platform.
Simware’s bedrock is his data-centric, layered and modular architecture. This architecture, named LSA for Layered Simulation Architecture, can be leveraged by the applications to build different kind of simulation applications, from simple federates to complex real time high-fidelity simulators. Our layered architecture provides a great modularity and flexibility of use.
Simware is composed by next layers:
Then, you can see that Simware has a middleware but it is not only a middleware. The middleware is only a layer in Simware. But it is true that Simware can be used only as a middleware, because of its uncoupled architecture that allows to use only the layers that are requested in each application (see the below examples)
Besides the layered and modular architecture in Simware, the other key concept in Simware is its pure data-centric design. Simware only leverages data to enable the interactions between all the entities connected to the platform. Data is used to exchange information about the dynamics and behaviors of the different simulated objects, including the interactions between them. Simware also use data to manage the execution of the simulation in a distributed environment (control of the state-machine and the clock, management of instances of the different objects, etc.). To know more about the data-centric architecture in Simware go to www.simware.es/data-centric-architecture.html
Simware architecture gives you the flexibility to use only the layers you need. In this way it is much easier to integrate third-party components that can provide equivalent capabilities to some of the features included in Simware. A typical example is to integrate a different simulation engine instead of the runtime infrastructure already provided in Simware. This case is possible in Simware and the only rule to follow is to use the provided APIs to integrate the third-party software with the layers used in Simware.
Here you have several examples of how Simware can be used in different applications. Take a look to them.
This post is only showing some of the multiple choices the developer has when is developing with Simware. Loosely coupled architecture in Simware allows to combine the different layers in many ways. Modularity allows only to use the requested layers in each integration, avoiding any unnecessary overhead and minimizing the impact of the platform in the performance of the whole product.
You can find more detail about the different layers in the architecture and their APIs in the document "Simware Resources: Understanding Simware architecture" that is located at www.simware.es/resources.html . Real uses cases about how Simware has been used in different solutions are found at www.simware.es/solutions.html
About the Blog
This Blog is supported by Simware Team. We are the team in charge of developing the product and supporting its users.