QuA defines a component based software architecture for distributed systems, where QoS management is handled by the platform. To support QoS management, QuA uses pluggable service planners, that configure – or plan – services. A service planner consists of three parts, a composition planner, a binding planner, and an implementation planner. The implementation planner is responsible for selecting a component implementation for a given type, the binding planner selects remote bindings to bind components together, and the composition planner creates the complete component composition for a service.
As QuA uses utility functions as a generic approach to describe QoS and a generic resource model, it should be possible to create an implementation planner that can be used to select and configure component instances for a given component type and with limited resource availability.
This thesis presents a Java implementation of a QuA capsule that supports pluggable components for capsule services, including basic implementation of all capsule services, and a pluggable Generic Implementation Planner. The Generic Implementation Planner implements an algorithm that is used to select and configure QoS-aware component instances. Even though the problem of selecting and configuring these components is related to NP-hard components, this thesis shows through experiments that for limited problem areas, the Generic Implementation Planner is precise and efficient for real-world applications.