Frequently the arrangement and intercommunicaion between these components can be as important as the performance of the individual components, to the performance of the whole. There are currently two main activities. One is the development of analytical and hybrid performance modeling methodologies and tools, and software performance engineering. The other is the development of a distributed technique that permits computers to co-operate to provide networking Quality of Service guarantees, without any special support from the network. Indy provides a framework for a modelling expert to develop custom model applications using pre-existing core components and services.
Users can plug different hardware models, workload descriptions and external performance components.
This lets Indy to grow and adapt to the needs of its users. Typical Indy applications include capacity planning tools for e-commerce platforms and architecture models of PC clusters for optimization studies. The two components of Indy that model developers will most often interact with are the kernel, and IndyView. The kernel is a linkable library containing all the algorithms needed for evaluation of models, and for the coordination of the other components in a particular performance study. It has APIs that can be called to define hardware models and workloads.