Article Preview
Top1. Introduction
Real-Time systems are playing a crucial role in our society, and in the last two decades, there has been an explosive growth in the number of real-time systems being used in our daily lives and in industry production. Systems such as chemical and nuclear plant control, space missions, flight control systems, military systems, telecommunications, multimedia systems, and so on all make use of real-time technologies (Gharsellaoui, 2013). To reduce their cost of development, these systems must be reusable. The component-based programming seems the best solution for the development of such real-time systems. For example, between 250 and 500 process steps on 50–120 different types of equipment are required to produce a chip of average complexity. Since the 1990s, the market of semiconductor fabrication has become increasingly global, dynamic and customer driven. An organization’s competitive advantage depends more and more on its responsiveness in meeting market changes and opportunities, and in coping with unforeseen circumstances (i.e., machine breakdowns, rush orders, etc.). Thus, it is important to reduce inventories, decrease cycle time, and improve resource utilization (Zhang, 2014).
Several component technologies are proposed such as JavaBeans (related to Sun society) (Jubin, 2000), Component Object Model (related to Microsoft society) (COM, 2010), Corba Component Model (provided by the Object Management Group (OMG)) (Pérez, 2002). However, there are few kinds of component technologies (such as Koala (Jonge, 2009), PBO (Stewart, 1997), PECOS (Wuyts, 2005) used in the development of embedded system due to extra-functional properties to be verified (for example quality of service, timeleness …) (Artist, 2003). Anyway, each component technology has its benefits and its drawbacks. As in our work, we want to be independent of any component technology, we propose a new concept of component named “Control Component” which is considered as a software part having interaction with other Control Components and ensuring control of the plant through data provided from (resp. to) sensors (resp. actuator).
A Control System is assumed to be a composition of Control Components with precedence constraints to control the plant according to well-defined execution orders (Azar & Vaidyanathan, 2015a, b,c; Zhu & Azar, 2015; Azar & Zhu, 2015). The proposed method to ensure Functional Safety of the interconnected Control Component is agent-oriented software. On the one hand, we study the Functional Safety in a central system i.e. a single agent supervising the whole system. This agent reacts as soon as an error occurs in the plant. The decision taken may vary from changing the set of Control Components that constitute the system, modifying the connection between different Control Components, substituting the behavior of some Control Component by another behavior or even modifying data. According to these functionalities, it is possible to define the architecture of the agent as based on four levels.