The role of the emulation extension is to integrate the simulated environment with a real-world environment. Simulated applications allow for inexpensive performance testing and enable the implementation of features that may be easier to develop and test in a simulated environment than in the real world. Validating these testing results or new features in simulation is a first step, and implementing them in the real world is the final step. In between lies the process of testing a simulated feature in the real world.
The extension includes a translation layer that converts simulation Messages to corresponding SOAP messages. The author specifies a mapping between simulated messages and the SOAP messages described in a WSDL, and a mapping between the WSDL operations and the simulated operations. The emulation layer converts simulation-generated messages into SOAP messages, and vice versa. This allows the use of simulation request generators, a mix of real and simulated services, and the interaction of simulated components with real-world services. A second translation layer aggregates metrics from real-world entities and includes them in the metrics engine; the existing metrics listeners, incluing the visualization dashboard, function as they do in simulation. The time-driven clock of the simulation engine is governed by actual time.
For example, this extension was employed to test load balancing strategies and an autonomic management feature, both implemented in simulation, using simulation-generated requests. The use of this extension requires a one-to-one mapping between simulated entities and real-world entities. Simulated servers cannot host real services, and real servers cannot host simulated services.