412 IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 50, NO. 3, JUNE 2003 Reusable Industrial Control Systems Andreas Speck Abstract—Industrial control hardware may be reused for several purposes. The same industrial PC type may control the drives of a portal system, act as a programmable logic controller, or control any other device. Moreover the same piece of hardware may control different device types at the same time in concurrency. In this paper, we discuss four successive software engineering approaches to exploit the possibilities provided by the control hardware: an object-oriented architecture, an architectural pattern, a control framework, and an architectural model for componentbased frameworks. Each of these approaches provides means of different levels to structure a system and to reuse concepts, patterns, or real code. All presented approaches are used to build control systems controlling different types of robot arms and other devices. Additionally, in the component-based system a new component has been introduced to enable a network connection of the control system. Index Terms—Factory automation, industrial control systems, software reuse concepts. I. INTRODUCTION AND MOTIVATION I N INDUSTRIAL automation, the importance of software is constantly increasing. Tasks formerly performed by hardware are now executed by software systems. The main reasons for this trend are twofold. Firstly, both the production costs for software are smaller and the flexibility of software is higher compared to hardware [6], [7], [10]. In contrast to hardware components, the incurring production costs for software are mainly limited to the development phase. Once developed, software can be copied multiple times at comparatively low expenditure. Therefore, in our work we introduce approaches supporting system development in this domain. Secondly, the increasing percentage of software is due to the development on the hardware sector. The number of standard systems (off-the-shelf hardware) in circulation is growing [15]. Manufacturer-specific expensive hardware is being replaced by low-cost standard hardware like PCs, workstations, or their industrial counterparts industrial PC’s (IPCs) and industrial-grade workstations, respectively. Some examples for this development are the two robot controls Kuka KR C1 and Bosch rho 4 or the porting of the Programmable Logic Controller system (PLC) S7 of Siemens of the industrial PC line Sicomp. Besides the fact that standard hardware is less expensive, it has the advantage that it automatically takes part in the rapid advance of hardware development. In parallel to this trend toward standard hardware, the need for software is growing. Software is necessary to adapt those standard hardware components to specific applications Manuscript received July 1, 2002; revised November 25, 2002. Abstract published on the Internet March 4, 2003. The author is with Intershop Research, D-07440 Jena, Germany (e-mail: a.speck@intershop.com). Digital Object Identifier 10.1109/TIE.2003.812274 which was formerly done by application specific hardware. The missing application-specific hardware is mostly substituted by software. This advance and growing importance of software requires more advanced technologies for the software development process than is currently available and applied in industrial controls. Some software systems are still implemented in Assembler or C with little application of software engineering methodologies. Modern approaches like the object-oriented paradigm or the application of patterns are not very widespread yet. Our work contributes to close this gap between importance of software and support or methodology, respectively, in the domain of industrial automation. Four successive approaches are introduced which support reuse on a different level suitable to the specific problems to be solved by the control system. The level of abstraction provided by each approach increases in parallel to their order. 1) Object-Oriented Architecture: This architecture has been built for a new generation of open universal control systems which run on standard hardware. The architecture has been realized on Sun SPARC workstations in the project HIGHROBOT [10]. The HIGHROBOT system proved that the object-oriented approach can be successfully applied in the area of industrial control systems. 2) Architectural Pattern: The architectural pattern is a further step toward improved reusability. While the objectoriented system may be regarded as a novelty in the field of control systems, this approach is also an improvement in the domain of object oriented software engineering. The pattern provides a guideline how the object oriented system may be reused efficiently. 3) Control Framework: This approach is based on the motivation that the control system has to be ported to new platforms such as Windows NT, Linux, or proprietary industrial PCs [23]. The object oriented-control framework may be applied to systems with POSIX-compliant operating systems like Windows NT or Linux. The framework allows minor adjustments of the operating system calls. (Of course, the potential control application is also a flexible element in the framework.) Both the pattern and the framework support not only the control of a robot arm, but also other machine tools. The architectural pattern is driven by the experiences acquired from the object oriented architecture. As opposed to the framework, this pattern may also be used for platforms with non-POSIX-compliant operating systems (e.g., the real-time system RMOS for Siemens IPCs). 4) Architectural Model for Component-Based Frameworks: In collaboration with D. Parsons, A. Rashid, and A. Telea, 0278-0046/03$17.00 © 2003 IEEE Authorized licensed use limited to: UNIVERSIDAD ROSARIO. Downloaded on February 24, 2009 at 08:41 from IEEE Xplore. Restrictions apply. SPECK: REUSABLE INDUSTRIAL CONTROL SYSTEMS 413 a component-based approach for frameworks design has been developed [13]. The architectural model is much more flexible than object-oriented frameworks since it covers a higher level of abstraction than patterns and frameworks do. The model has been evolved and subsequently applied to component-based control frameworks in our work. Automation technology applications in industrial automation have the advantage that the controlled hardware itself consists of different hardware components. Therefore, the component boundaries may be easily found by reflecting the hardware components (and their composition) in the software. II. STATE OF THE ART AND RELATED WORK A. Today’s Control Systems Today’s industrial control systems market is dominated by proprietary solutions. The control systems such as robot controls (RCs), PLCs, and numeric controls (NCs) are incompatible and have only limited communication interfaces [10], [17]. These traditional controllers consist of special hardware and vendor-specific control software (usually offering a more or less standardized application programming interface). The resulting problems are high development costs and long terms of innovation cycles, e.g., the Bosch robot control system rho3 has been sold for almost ten years without any significant modification. B. Alternative Approaches Different projects have been initiated in order to develop concepts and reference architectures for open, inter-operable control systems with respect to object orientation. The most important examples are Open System Architecture for Controls within Automation Systems (OSACA) [1], [2], and Open Modular Architecture Controllers (OMAC) [11]. Both provide high-level nonobject-oriented reference architectures and sample implementations. They focus on the modular arrangement of abstract blocks of control functionality from the perspective of electrical or mechanical engineering. Besides a very high level overview, they provide no more concrete descriptions of their concepts in any object-oriented notation—neither architectural nor design diagrams. Another project is the Open Control Architecture for Windows NT [12]. This concept is based on OLE and COM. However, this approach suffers from the limited real-time capabilities of Windows NT. All these approaches neither focus nor apply (object oriented) software engineering principles consistently. Now, there are successful first steps indicating that the application of software engineering means makes the reuse more effective in the domain of industrial control systems. One example is the application of object oriented concepts for the development and design of control programs which has been demonstrated in various projects, e.g., [30] or [29]. An object-oriented development process for control programs has been presented in [5]. This process is mainly based on Unified Modeling Language (UML). The application of design pattern as one means to express the reuse of design details has been presented in [4], [22], and [28]. Fig. 1. Integrated control systems. III. REQUIREMENTS In the beginning of our work, the requirements of the next generation’s control systems have been determined in cooperation with other control experts from different end-users like Daimler-Chrysler (formerly Mercedes-Benz AG) and control manufacturers like Robert Bosch AG, Siemens AG, and MOOG Ltd., as well as with research groups at the Universities of Karlsruhe and Munich, Germany. The most important requirements are as follows. • Integrated Control Functionality: The control system has to be universally applicable. Therefore, different traditionally separated control types have to be integrated in one universal control system. Such a control may include robot controls, numeric controls, transfer, and drive controls as well as PLCs (see Fig. 1). Additionally, virtual devices may be simulated by software modules. The integration of several control systems has the advantage that a single controller can control an entire production cell including a large number of devices. Today’s industrial production cells are usually controlled by more than one controller, e.g., a robot cell may contain a robot control, a PLC, and a transfer system control [17]. • Multitasking Control: In order to control many devices a universal control system has to provide multitasking. The individual devices or groups of devices are controlled by corresponding application tasks which may run in parallel. Communication between these application tasks is possible via the operating system’s interprocess communication mechanisms [7]. Some traditional control systems like the robot control systems Bosch rho3 or Kuka KR C1 already support a limited number of parallel application tasks (with a maximum of five tasks). However, such a small number of tasks is not enough to control an entire production cell. A system based on a POSIX-compliant operating system supports a considerably larger number of concurrent application tasks. Authorized licensed use limited to: UNIVERSIDAD ROSARIO. Downloaded on February 24, 2009 at 08:41 from IEEE Xplore. Restrictions apply. 414 IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 50, NO. 3, JUNE 2003 Fig. 2. Platforms of the universal control. • Platform Independence: The software architecture of a new control system has to support different platforms (see Fig. 2). The architecture must be independent from the control hardware. The control may be implemented on workstations as well as PCs or industrial standard hardware such as IPCs. Moreover, the universal control architecture must be operating system independent. The only demand is that the operating system should be POSIX compliant. The devices may be connected directly or by a fieldbus to the control hardware. Interface cards which are plugged in the control hardware or integrated interfaces which are provided by some industrial control systems realize the connection to the devices. IV. SOLUTIONS A. Universal Object-Oriented Robot Control This first system has been designed specifically for SPARC workstations and it was intended to control a limited number of robot arm types in conjunction with some peripheral devices which are currently in wide circulation [10]. The programming language is C++. 1) Architectural Overview: The architecture is structured in hierarchical layers (see Fig. 3) which is a typical approach in object-oriented systems [3], [19]. The boxes represent collections of classes or subsystems (class categories according to G. Booch 1994 [3]). Interfaces which represent the layer boundaries define the relationships between the subsystems and allow to exchange them. The main class categories are as follows. • Control Subsystems: These subsystems provide the control functionality, e.g., robot control procedures. The user-written Control Application Programs (e.g., robot programs which are executed on the control system) have access to the Control Subsystems via the Device Control Interface. Fig. 3. Static system—an overview. The Control Subsystems consist of two subsets: the complex Device Control and the simple Device Control subsystems. This reflects the reality: from the control system’s viewpoint automation devices like robot arms are an abstract and complex robot arm kinematic which is driven by several simple robot drives. • Communication and Coordination: This subsystem embraces the system communication and control of the dynamic behavior. Interprocess Communication contains mechanisms for the data exchange between the different tasks of the system and their synchronization. It provides a virtual Device Connection Interface for the Control Subsystems. Thus, all Control Subsystems seem to have individual access to the controlled devices. The Coordination controls the dynamic behavior of the system (see Section IV-A.2). Therefore, it initiates the internal data exchange and the communication with the devices. The concrete device communication is handled by the Device Connection which may be adapted to the specific hardware interface. • User Interface: The user interacts with the control system via this subsystem. Currently, two types of User Interfaces are implemented: a primitive ASCII menu and a Java GUI. 2) System Tasks and Their Dynamic Behavior: The control system contains three types of tasks: a single Coordination Task (which instantiates the Communication and Coordination), Application Tasks (embracing the Control Subsystems, the Control Authorized licensed use limited to: UNIVERSIDAD ROSARIO. Downloaded on February 24, 2009 at 08:41 from IEEE Xplore. Restrictions apply. SPECK: REUSABLE INDUSTRIAL CONTROL SYSTEMS 415 Fig. 4. System interactions. Application Programs and the Interprocess Communication), and finally the User Interface Tasks (with User Interface and Interprocess Communication). These User Interface Tasks may be regarded as special Application Tasks where the user manipulates the control system directly. The system performs the typical behavior of control systems: it runs in a cyclic loop reading the current state of the devices, executing the control application and transmitting the result to the devices [17]. The sequence chart in Fig. 4 depicts the major interactions between an Application Task (e.g., a robot control application) and the Coordination Task. B. Architectural Pattern The architectural pattern is derived from the object-oriented robot control described above. However, this pattern is not limited to robot controls but is also applicable for the development of other automation control systems such as PLCs, numerical controls, or special control systems (even on nonstandard platforms like industrial PCs with proprietary real-time operating systems where code reuse is difficult). The pattern-specific features are: layered design, multitasking support, a virtual device interface and a unique Communication and Coordination subsystem which controls the dynamic behavior. The architectural pattern embraces several design patterns described in [4], [6], and [8]: Proxy, Observer, Master Slave, Forwarder Receiver, Facade, and Singleton. Since these design pat- terns are integrated in an overall structure this architectural pattern may be also regarded as pattern language for the development of automation control systems. C. Control Framework In contrast to the pattern our framework provides premanufactured code fragments. Thus, its deployment is restricted to UNIX- and Windows NT-based platforms. Although this is a limitation the usage of the framework shortens the (design and) implementation phase and therefore justifies the existence of such a framework. The framework itself has been derived in an iterative process (according to [18]) from the universal robot control system introduced in Section IV-A. In this iterative process the flexible elements (called “hot spots” as opposed to the nonflexible “frozen spots”) have been identified and implemented. These “hot spots” are itemized in Fig. 5 (marked with gray ellipses). D. Architectural Model for Component-Based Frameworks The architectural model for component-based frameworks is a meta-model in the sense that it describes how a component-based framework is structured efficiently. This meta-model has been elaborated based on the experiences of framework designers in various domains [13] and captures the essential commonalities. The model provides guidelines for the flexible composition of component-based frameworks. It is a blueprint or pattern Authorized licensed use limited to: UNIVERSIDAD ROSARIO. Downloaded on February 24, 2009 at 08:41 from IEEE Xplore. Restrictions apply. 416 IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 50, NO. 3, JUNE 2003 Fig. 5. Control framework with “hot spots.” for the combination of the framework’s components and categorizes these components with their relations in-between. All these framework’s components may be developed by different companies or persons playing different roles in the development process [13]. The only requirement is that the interfaces correspond to a common standard or agreement and thus fit together. Like frameworks (see Section IV-C) the architectural model defines flexible “hot spots” expressed in the Customizes relationship (see customization in [14] and [18]). However, in contrast to a framework the composition of the framework’s subsystems may be adjusted, too (symbolized by the Plug-in relationship). Thus, the flexibility is not limited to a small number of predefined “hot spots” but is extended to the entire structure of a framework. We have identified the following types of components [13]: The Backbone Component (see Fig. 6, dark-gray box) controls the behavior of the system and the interactions between the components. This Backbone Component is surrounded by the Basic Components (light-gray boxes) which provide the basic services used by the Backbone Component. Together, both component types may be regarded as the core of the framework. The Additional Components (white boxes) refine and extend the system. Fig. 6 demonstrates how the architectural model may be applied in the domain of industrial control systems [22]. The central component is the Communication and Coordination. In con- junction with the Basic Components it provides the most important functionality of the framework as a base for the execution of the control algorithms. Some of these Basic Components (Drive Connection, Data Exchange Interface and POSIX Interface) are customized to the specific needs of a certain control application. Due to the fact that the control algorithms have to be adjusted to the user’s requirements the control functionality cannot be part of the Basic Components. Therefore, the components containing the control functionality are arranged as Additional Components. This model may be extended by the versioning approach proposed in [25]. The versioning approach may helpful when a larger number of components has to be considered. The industrial automation domain has a long tradition of “reusing” hardware components. Almost all electrical and mechanical devices and the processes performed by them are well defined and standardized. Standardized interfaces of the hardware may be reflected in the software controlling these hardware components. Thus, hardware standards are an ideal support for standard software components and vice versa. 1) Networking and Simulation Component: The component-based framework has been extended by simulation, networking, and monitoring components. In detail, the simulation component concept makes it possible to simulate a specific device on the control hardware in parallel to the control tasks. Authorized licensed use limited to: UNIVERSIDAD ROSARIO. Downloaded on February 24, 2009 at 08:41 from IEEE Xplore. Restrictions apply. SPECK: REUSABLE INDUSTRIAL CONTROL SYSTEMS 417 Fig. 6. Implementation of the component-based frameworks. As a concrete realization we implemented a SCARA robot simulation system which accepts similar commands send to a real robot arm. It simulates the responds to these commands and returns them to the control system. The simulation consists of an Additional Component realizing the simulation routines of the virtual device. Additionally, a new Device Connection component has to be build (Basic Component) which provided the connection between the simulation component and the Data Exchange interface component. The second component is the networking component providing a TCP/IP communication. One prerequisite is that the operating system of the control provides a TCP/IP communication interface (which operating systems like Solaris, Windows NT, Linux, and RMOS do). If the operating system supports a loopback communication the system could be connected with the monitoring component and, if the control system contains network interface hardware as well, the system could communicate with a Java monitoring component on a different system. The networking component is part of the Basic Components (it is possible to extend them by Additional Components). In contrast to the other components the graphical monitoring component is realized in Java instead of C++. Hence, it may be executed on a large number of platforms. There exist different monitoring components displaying a Bosch SR 60 SCARA robot arm. This robot may be directly manipulated by the user or robot control tasks (Application Programs) can be activated. Although due to the different programming language not being totally integrated in the component framework, the monitoring component may be considered as an Additional Component. These extra components may be used to complement the rest of the control system. We called the superordinate concept of this combination RoboSiM (robot simulation and monitoring). However, they may be arbitrary combined and used for specific services, e.g., simulation only without graphical monitoring or simulation with graphical monitoring. Further details may be found in [20], [21], and [24]. V. CONCLUSION AND FUTURE WORK In our work we have built an object-oriented industrial control system proving that the object-oriented paradigm is suitable in the domain of industrial automation (i.e., the constraints—e.g., real-time capabilities—are preserved). Moreover, it has been shown that object-oriented software engineering opens new opportunities and, thus, allows us to build the next generation’s control systems. On the basis of the object-oriented control system, we have introduced three further approaches with different levels of reuse. Each of these approaches has advantages in specific application scenarios. The architectural pattern which is derived from the object-oriented control system is particularly suitable where the developer has to deal with the challenge of strongly differing platforms. While differences may prohibit the reuse of code (or may allow the reuse of only some code fragments) the reuse of architecture and design details is possible. We have applied this pattern when porting the control system to a Siemens industrial PC (Sicomp IMC05) with the operating system RMOS. The object-oriented framework has its advantages when a product line of comparatively similar systems with only minor differences has to be developed. We have used the framework when porting the UNIX control system to Windows NT (both with and without GNU Win 32). An implementation on the latest Microsoft operating systems will follow in the future. The architectural model provides meta-level support for component-based frameworks. A framework which corresponds to such an architectural model combines both advantages, the flexibility of the architectural pattern and the reusability of code. From this architectural model we have derived a componentbased framework for industrial control systems. This framework has proven to be an efficient base in the development of new systems in this domain—both on alternative platforms (e.g., Linux) and with extended functionality. Such additional functionality, Authorized licensed use limited to: UNIVERSIDAD ROSARIO. Downloaded on February 24, 2009 at 08:41 from IEEE Xplore. Restrictions apply. 418 IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 50, NO. 3, JUNE 2003 for instance, has been realized by the robot simulation and monitoring system (RoboSiM) [24]. It uses a robot control system derived from the architectural model. The simulation and monitoring elements are realized as Basic Components and Additional Components. Besides the ongoing collaboration with Siemens AG (modular control systems on new platforms), we are currently working on new frameworks in other domains (e.g., monitoring and three-dimensional visualization in medical science). These frameworks will be derived from the architectural model. In the software engineering sector, in particular, the architectural model may be used as a blueprint for system generators as introduced in [16]. Such a generator will be focused on in our future work. New approaches in object orientation (e.g., the separation of concerns principle) will play an important role. Work has already been carried out to apply Aspect-Oriented Programming (AOP) [9] in the field of both control systems [26] and generators development [16]. These generators use AOP to combine the components. In this context, we will particularly consider highly customized software [27]. Software development processes with respect to the generative capabilities are a further issue. REFERENCES [1] “OSACA Open System Architecture for Controls Within Automation Systems,” EU, Brussels, Belgium, OSACA I & II Final Rep. Projects EP 6379 & EP 9115, Apr. 1996. [2] R. Bernhard, G. Schreck, and C. Willnow, “A cost efficient robot control system—CEROS,” in Proc. 27th Int. Symp. Industrial Robots, Robotics’96—Flexible Production Flexible Automation, Milan, Italy, 1996. [3] G. Booch, Object-Oriented Analysis and Design, 2nd ed. Redwood City, CA: Benjamin Cummings, 1994. [4] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, Pattern-Oriented Software Architecture. Chichester, U.K.: Wiley, 1996. [5] G. Chiozzi and J. Filgueira, “Real-time control systems: a one document object oriented development process,” in Proc. Int. Conf. Accelerator and Large Experimental Physiks Control Systems, Trieste, Italy, 1999, pp. 334–336. [6] B. Douglass, Real-Time UML. Reading, MA: Addison-Wesley, 1998. [7] B. Gallmeister, POSIX.4: Programming for the Real World. Sebastopol, CA: O’Reilly, 1995. [8] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Abstractions and Reuse of Object-Oriented Software. Reading, MA: Addison-Wesley, 1994. [9] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, “Aspect-oriented programming,” in Proc. European Conf. Object-Oriented Programming, ECOOP’97, 1997, pp. 220–242. [10] W. Küchlin, G. Gruhler, A. Speck, and T. Lumpp, “HIGHROBOT: a high-performance universal robot control on parallel workstations,” in Proc. Engineering of Computer Based Systems, ECBS’97, Monterey, CA, 1997, pp. 444–451. [11] “OMAC API SET, Version 0.18,” OMAC API Work Group, Working Doc., Feb. 1998. [12] “Open Control Interface, Version 1.4,” Open Control Foundation, Feb. 1998. [13] D. Parsons, A. Rashid, A. Speck, and A. Telea, “A “Framework” for object oriented frameworks design,” in Proc. TOOLS EUROPE’99, Objects, Components, Agents; Technology of Object-Oriented Languages and Systems, 29th Int. Conf. and Exhibition, Nancy, France, 1999, pp. 141–159. [14] W. Pree, Komponenten basierte Softwareentwicklung mit Frameworks. Heidelberg, Germany: dpunkt, 1997. [15] G. Pritschow, T. Tran, and J. Hohenadel, “Standalone PC-controller on an open platform,” in Proc. 30th Int. Symp. Automotive Technology & Automation, Florence, Italy, June 16–19, 1997. [16] E. Pulvermüller, A. Speck, and A. Rashid, “Implementing collaborationbased designs using aspect-oriented programming,” in Proc. TOOLS USA 2000, Objects, Components, Agents; Technology of Object-Oriented Languages and Systems, Santa Barbara, CA, 2000, pp. 95–104. [17] U. Rembold, B. Nnaji, and A. Storr, CIM: Computer Integrated Manufacturing and Engineering. Reading, MA: Addison-Wesley, 1993. [18] H. Schmid, “Systematic framework design by generalization,” Commun. ACM, vol. 40, no. 10, pp. 48–51, 1997. [19] B. Selic, G. Gullekson, and P. Ward, Real-Time Object-Oriented Modeling. Chichester, U.K.: Wiley, 1994. [20] A. Speck, “Robot Simulation and Monitoring on real controllers (RoboSiM),” in Proc. ESS’98, 10th European Simulation Symp. and Exhibition, Nottingham, U.K., 1998, pp. 482–489. , “RoboSiM—eine Java-basierte Robotervisualisierung,” in [21] Erfahrungen mit Java, S. Maffeis, F. Toenniessen, and C. Zeidler, Eds. Heidelberg, Germany: dpunkt, 1999, pp. 293–310. , “Component-based control system,” in Proc. ECBS’2000, Int. [22] IEEE Symp. and Workshop on Engineering of Computer Based Systems, ECBS, Edinburgh, U.K., 2000, pp. 176–184. [23] A. Speck, G. Gruhler, and W. Küchlin, “Object-oriented robot control framework,” in Proc. IEEE IECON’98. Aachen, Germany, 1998, pp. 1661–1666. [24] A. Speck and H. Klaeren, “RoboSiM: Java 3D robot visualization,” in Proc. IEEE IECON’99. San Jose, CA, 1999, pp. 821–826. [25] A. Speck and E. Pulvermüller, “Versioning in software engineering,” in Proc. IEEE IECON 2001, Denver, CO, Dec. 2001, pp. 1856–1861. [26] A. Speck, E. Pulvermüller, and M. Mezini. (2000, June) Reusability of concerns. [Online] Available: http://trese.cs.utwente.nl/Workshops/adc2000/papers/ [27] A. Speck, A. Rashid, E. Pulvermüller, and R. Chitchyan, “Individual software development in generative programming,” in Proc. GCSE Young Researchers Workshop 99, A. Speck and E. Pulvermüller, Eds., Erfurt, Germany, 1999, CD-ROM. [28] T. Tomura and K. Uehiro, “Object-oriented design pattern approach for modeling and simulating open distributed control system,” in Proc. 2001 IEEE Int. Conf. Robotics and Automation, Seoul, Korea, May 2001, pp. 211–216. [29] K. Young, R. Piggin, and P. Rachitrangsan, “An object-oriented approach to an agile manufacturing control system design,” Int. J. Adv. Manuf. Technol., vol. 17, pp. 850–859, 2001. [30] C. ZielinĚski, “Object-oriented robot programming,” Robotica, vol. 15, no. 1, pp. 41–48, Feb. 1997. Andreas Speck received the Doctoral degree in computer science from the University of Tübingen, Tübingen, Germany. In his thesis, he developed new object-oriented and component-based software engineering approaches for industrial control systems. Currently, he is heading the research division of Intershop, Jena, Germany, an eCommerce company building medium- to large-scale Internet marketplaces. The main tasks of Intershop Research are the development of new software engineering concepts in order to increase productivity and to improve the quality of software. Additionally, the integration of new systems such as factory automation devices in networks and virtual information systems is within the focus of his work. Authorized licensed use limited to: UNIVERSIDAD ROSARIO. Downloaded on February 24, 2009 at 08:41 from IEEE Xplore. Restrictions apply.