Refer to POSA2 for any details. This article is a simple review with some records that give me brain storming in the book.
The Component Configurable design pattern also known as Service Configurator allows an application to link and unlink its component implimentations at run-time without having to modify, recompile, or statically relink the application. Component Configurator further supports the reconfigration components into different application processes without having to shut down and restart running processes.
This pattern includes four participants:
1. A component defines a uniform interface that can be used to configure and control the type of application service or functionality provided by a component implementation. Common control operations include initializing, suspending, resuming, and terminating a component.
2. Concrete components implement the component control interface to provide a specific type of component. A concrete component also implements methods to provide application-specific functionality, such as processing data exchanged with other connected peer components. Concrete components are packaged in a form that can be dynamically linked and unlinked into or out of an application at run-time, such as a dll.
3. A component repository manages all concrete components that are configured currently into an application. This repository allows system management applications or administrators to control the behavior of configured concrete components via a central administrative mechanism.
4. A component configurator uses the component repository to coordinate the (re)configuration of concrete components. It implements a mechanism that interprets and executes a script specifying which of the available concrete components to (re)configure into the application via dynamic linking and unlinking from dlls.
The windows nt SCM allows a master scm process to initiate and control administrator-installed service components automatically using the message-based strategy. The master SCM process initiates and manages system service components by passing them various control messages, such as PAUSE, RESUME, and TERMINATE, that must be handled by each service comonent. scm-based service comonents run as separate threads within either a single-service or a multi-service server process. Each installed service component is responsible for configuring itself and monitoring any communication endpoints, which can be more general than socket ports. For instance, the scm can control named pipes and shared memory.