This chapter illustrates the concept of repairable processes and self-healing functionalities and discusses about their design requirements. Self-healing processes are able to monitor themselves, to diagnose the causes of a failure and to recover from the failure, where a failure can be either the inability to provide a given service, or a loss in the service quality. Defining the process as a composition of services, the aim of this chapter is also to provide guidelines for designing services in such a way that they can be easily recovered during their execution. Repair mechanisms are thoroughly described by distinguishing between mechanisms applicable at design time and at run time.
Control Theory Basics
In this section, we will briefly define some basic concepts in control theory – system, controller, open and closed feedback.
A system is defined as an abstraction that represents a set of real world objects (shown in Figure 1). For example, you can have a system that represents an airplane. A system can consist of set of systems. For example, an airplane system consists of the navigation system, the propeller system and the cargo system. We determine a system by choosing the relevant interactions we want to consider plus choosing the system boundary or, equivalently, providing membership criteria to determine which objects are part of the system, and which objects are outside of the system and are therefore part of the environment of the system. A boundary is used to separate the system from its environment.
A controller (shown in Figure 2) is a device which monitors the system and/or environment and affects the behaviour of the system. For example, the heating system of a house can be equipped with a thermostat (controller) for sensing the air temperature of the house (environment) which can turn the A/C on or off when the air temperature becomes too low or too high. The controller affects the behaviour of the system based on a set of system or environment control variables. In this case, the desired temperature is the control variable.
A controller monitors and controls a system’s behaviour