  Constructing testbeds for systems which are interconnected with large
networks of other software services is a challenging task. It is particularly
difficult to create testbeds facilitating evaluation of the non-functional
qualities of a system, such as scalability, that can be expected in production
deployments. Software service emulation is an approach for creating such
testbeds where service behaviour is defined by emulate-able models executed in
an emulation runtime environment. We present (i) a meta-modelling framework
supporting emulate-able service modelling (including messages, protocol,
behaviour and states), and (ii) Kaluta, an emulation environment able to
concurrently execute large numbers (thousands) of service models, providing a
testbed which mimics the behaviour and characteristics of large networks of
interconnected software services. Experiments show that Kaluta can emulate
10,000 servers using a single physical machine, and is a practical testbed for
scalability testing of a real, enterprise-grade identity management suite. The
insights gained into the tested enterprise system were used to enhance its
design.
