Design Patterns for Process Automation Systems

Size: px
Start display at page:

Download "Design Patterns for Process Automation Systems"

Transcription

1 Design Patterns for Process Automation Systems A dissertation for the degree of Doctor of Technical Sciences presented by Dipl.-Ing. Wolfgang Narzt submitted to the Johannes Kepler University Linz accepted on the recommendations of o.univ.-prof. Dipl.-Ing. Dr. Hanspeter Mössenböck o.univ.-prof. Dipl.-Ing. Dr. Gustav Pomberger Linz, July 2000

2

3 Abstract By now, European companies are the market leaders in the development of process automation software. Current numbers indicate, however, that this market position is going to change in favor of US and Far East companies. This thesis can be regarded as a contribution to keep the leading market position because it presents an innovative software architecture for process automation systems which promises a high reuse factor up to 70% and therefore helps to save time and costs for the development of future process automation software. Until now, software in this domain has been developed with traditional programming languages like Fortran or C, which restrict the reuse of software to a rather low level (source code and procedure libraries), whereas object-oriented techniques even allow to reuse the whole logic of a system. Design Patterns are considered as a very popular architectural guideline in objectoriented systems because they briefly describe a common way of implementing frequently appearing problems. This thesis presents five design patterns for different kinds of communication mechanisms occurring in process automation systems. They deal with the difficulties in telegram-based communication when telegrams (data streams) are transferred between different operating systems. The telegrams need to be converted to the data format of the target system. In addition, the design patterns offer a general technique to distribute the contents of the (converted) telegrams; and they provide a flexible, event-based architecture for data requests and commands in a distributed environment. The design patterns in this thesis have been implemented on Windows NT 4.0 with Microsoft Visual C and the CORBA implementation Orbix 2.3c for inter-process communication. A special configuration mechanism, based on a selfdefined meta information concept, even increases the power of the design patterns. It enables the users to customize the software without touching the source code. The applicability of the design patterns has finally been validated by tests under real-time conditions at the hot rolling mill of VOEST-Alpine Stahl Linz AG. They all fulfill the requirements in terms of efficiency, flexibility, adaptability, reuse and portability and can henceforth be considered as a platform for the development of future process automation software.

4

5 Acknowledgements I would like to thank all those persons who have directly or indirectly contributed to the successful elaboration of this thesis. My advisor Prof. Hanspeter Mössenböck deserves special thanks for his personal encouragement and competent scientific support. Despite his comprehensive work at the university, he has always found time for my personal concerns. I also want to express my gratitude to Prof. Gustav Pomberger, who has promoted my work at the REFORM project and who has introduced me to many companies and universities in Austria and abroad. Finally, Prof. Peter Rechenberg has been my great teacher in concerns of didactic skills. I have learned many considerable things from him. Very special thanks is due to my friend any colleague Joe Pichler, who has offered up many hours of his valuable time for fertile discussions. It was a pleasure to have a competent expert and simultaneously a good mate in the project team. I also owe many thanks to Klaus Pirklbauer, who has enabled my participation in the project and from whom I have learned a lot in concerns of managing a project. Martin Zwinz (alias Zwax) has been a valuable addition both in terms of scientific work and in spending our spear time. Not to forget Charly Artmann, who has often made our hard work more relaxed by his unsurpassed sense of humor. Chris Ertl, Didi Birngruber and Thomas Stranzinger have also contributed their big part that the project could be worked out in a pleasant atmosphere. Thanks a lot for that! Furthermore, I would like to express my acknowledgements to Herbert Exner, a very sociable and also economically skilled person. I was always surprised by his eloquent way of selling his opinion to the audience and also by his experienced knowledge about good restaurants and ancient wine. His contributors Ned Blurock and Harald Wahl have not minor been great partners in the REFORM project. Special thanks also belongs to our friends at VOEST Rupert Langer, Andreas Ortner, Erich (Joe) Fenzl, Harry Schmolmüller and Andreas Gewessler, who have provided a pleasant working environment and competent domain knowledge. Christian Schuderer has done a great job as the project manager. Besides his technical knowledge, he has always been a good friend for all of us. Very special thanks for that! I also want to thank all of our other colleagues at Siemens, Thomas Heimke, Andreas Geisler and Peter Balzer for their competent help and cooperation. The next persons in my long list of acknowledgements are our partners from the University of Hamburg. Prof. Heinz Züllighoven deserves special thanks for his encouragement of the commercial exploitation of the project. Henning Wolf and Stefan Roock have once more provided a good working climate within the project. It was always a great pleasure for all of us when our Swedish project partners and friends visited us in Austria. Janne Lindh has learned to appreciate and love the Austrian culture, and we had always a lot of fun together with him. I can tell the same about Mattias Nylen; we enjoyed his company very much! Unfortunately, Bo Hagerf has left the team too early. Last, but not least, I would like to thank my colleagues and friends at our department. Prof. Günther Blaschek has always been a competent contact person in scientific questions. Christian Rutzinger (soon Kenngott) was both professional aid and moral support during my work for this thesis. And finally, Rainer Lischka and Monika Scholl have always provided a good working atmosphere for all of us. Thank you all!

6

7 Contents 1 Introduction and Overview Motivation Results Outline Process Automation Systems OverallStructure Tasks Conventional Implementations Design Patterns Telegram Pattern Motivation Parsing the Telegram Extracting the Telegram Id Converting the Telegram Summary Dispatcher Pattern Motivation The Receiver Objects Dispatching Information Dispatcher Summary Condition Pattern Motivation Object Observation The Condition Class Summary I

8 3.4 Request Pattern Motivation The Value Dictionary The Request Class The Plant Configuring the Request Returning the Request Summary Instruction Pattern Motivation The Instruction Class Summary Conclusion Meta Information and Pattern Configuration Meta Information A Configuration Mechanism Configuring the Design Patterns The Design Patterns in Process Automation Software The Hot Rolling Mill Domain SoftwareArchitecture Modifications of the Design Patterns Run-Time Behavior and Memory Allocation Comparable Patterns Pipes and Filters Notification Repository Architecture Broker Client-Dispatcher-Server Summary Conclusion Critical Assessment FutureWork Bibliography 101 II

9 List of Figures 2.1 Automation Levels Tasks within Process Automation Systems Excerpt of the current VASL Automation Telegram Description Telegram Class Hierarchy Strategy Pattern for Reading Telegrams Attempt of a TelegramHandler Class TelegramId Class Hierarchy Pattern for Extracting the Telegram Id Extended Telegram Description TelegramConversion Generic Parsing Implementation Automatic Value Conversion Telegram Conversion Summary Telegram Pattern, Class Diagram Telegram Pattern, Object Diagram Dispatching Mechanism Arrays and Structures within a Telegram Receiver Class Hierarchy Dispatching Information Hierarchy Dispatching Information for the Telegram Structured Dispatching Information for Transient Objects Dispatching Information for Transient Objects Dispatcher Dispatcher Pattern, Class Diagram Dispatcher Pattern, Object Diagram Event-Driven Communication III

10 3.25 Observer Mechanism for all Classes Condition Object Condition Base Class Composite Conditions Condition Pattern, Class Diagram Condition Pattern, Object Diagram for a single Condition Condition Pattern, Object Diagram for compound Conditions Data Requests from remote Processes Value Dictionary Sending a Data Request Request Class Interface for the Mapping of Value Names to Holders Cloning a Request Properties of the Plant Value Descriptor Generic Template Interfaces for Data Retrieval Trigger Condition for Requests Request for Current Values Request for a Value Sequence Restoring the Semantics of a Request Requester Interface Request Pattern, Class Diagram Request Pattern, Object Diagram Wrapping an incompatible Model Interactive Operations from Remote Processes Instruction Class Instruction for Storing Values at Aggregates Instruction for Transient Objects Instruction Pattern, Class Diagram Instruction Pattern, Object Diagram Hooks for the Design Patterns in Process Automation Systems Meta Information Concept Meta Class ConfigurableObject Configuring Object References IV

11 4.5 Configuration Routine for the Telegram Handler Configuration Routine for the Telegram Configuration Routine for the Descriptor Hot Rolling Mill TasksfortheRoughingMillatVASL Separation of Telegram Pattern and Dispatcher Pattern Telegram Database Network Configuration CPU Usage for the Telegram Pattern CPU Usage for the Dispatcher Pattern Memory Usage for the Dispatcher Pattern Correlation between Strips and Value Objects in the Plant CPU Usage for the Request Pattern (MMI connected) CPU Usage for the Request Pattern (all components connected) Memory Usage for the Request Pattern Pipes and Filters Notification Repository Architecture Broker V

12

13 1 Chapter 1 Introduction and Overview It seems as if the techniques of modern software engineering [PB1996] already provide a common solution for any kind of problem occurring in the programmer s world. Today, nobody questions the advantages of object- and component-oriented programming [Str1997], [Sam1997], offering a generally agreed larger amount of flexibility, reuse and adaptability compared to conventional software development. In fact, these techniques are nowadays considered as state of the art. Nevertheless, they cannot be regarded as a guarantee for successful software development unless they are used properly. But how should a class or a component be designed so that it can be accepted as properly built? Many popular books try to guide the software developer through the design process by providing design patterns [GHJV1995], [Pre1994] for common problems. Design patterns make it easier to reuse successful design and architecture. Current design patterns address domain-independent problems such as creating, composing or decorating objects. There are hardly any design patterns for specific domains, though, such as manufacturing or process automation. This thesis introduces new design patterns primarily developed for the communication flow in process automation systems. They deal with various communication mechanisms and provide a flexible way to overcome the difficulties between different operating systems. The design patterns in this thesis cover a large area of problems occurring in nearly every automation system and can therefore be taken as a guide for the development of process automation software. 1.1 Motivation Every software developer has certainly had the feeling that a problem he is currently working on is familiar to him and he has worked out a solution for a similar problem in the past. A déjàvu like this is nothing unusual, as many problems appear similar in structure and logic in everyday life. For example, think of an editor for modifying HTML documents in various ways: A pure textual view lets the user conventionally edit a document, whereas a WYSI- WYG view gives a more convenient representation. Of course, both views should be displayed in parallel on the same document and it goes without saying that changes to one view should be reflected in all other views. This problem reappears in every editing tool and therefore demands a general strategy for its solution. Experienced

14 2 Chapter 1. Introduction and Overview software developers immediately recognize the MVC (model view controller) concept [KP1988] behind this problem and know that the observer design pattern [GHJV1995] provides a solution to it. Problems like this have led to the development of many efficient design patterns. Nevertheless, there is still a wide area of tasks without design patterns providing a satisfying solution. As an example, the domain of the process automation industry brings out problems whose solutions show a common pattern, but which are solved from scratch every time they appear. Even without a detailed knowledge of process automation software it is reasonable that the following examples in this domain long for an architectural guide: In most automation systems there is a clear separation between the involved tasks: Low-level tasks, controlling the underlying hardware, and high-level tasks, responsible for optimal throughput, quality etc., are executed separately on different computers and quite often even on different operating systems. Hence, communication within such a network is only possible by exchanging data telegrams (byte streams of predefined format). It is always hard work for the programmer to correctly build and split up these telegrams byte by byte. Sometimes, values within the telegrams have to be scaled because the sender process uses other units than the receiver process. And sometimes, different platforms and therefore possibly different byte ordering within the telegrams force the programmer to insert byte switching routines. But basically, there is no mental challenge in this task, it s just monotonous and highly error-prone. Consequently, the programmer would be released from a heavy burden if he had a design pattern for the telegram traffic problem enabling him to quickly perform the exhaustive telegram conversions and to decrease the probability of making mistakes. Sending telegrams is just one way of communication and used only when different operating systems prevent the use of more convenient techniques like remote method invocation through CORBA [Mow1995]. It should be obvious even to non-experts that process automation systems consist of several processes communicating with each other: A visualization process has to be supplied with data in the same way as a logging process, to name just two of them. Every process needs different data and is consequently designed with a unique interface to access the data. As in the previous example, it is hard work to collect the corresponding data floating around in the system. Scenarios like, I want to display the fifth data element from the second telegram in the visualization or, I need the average value computed between two specific time stamps are quite common and often lead to unsystematic implementations because it seems that there is no general implementation strategy behind them. It is just an accidental collection of data, tailored for a particular configuration, which appears to prevent a general solution. The scenario gets even worse when the software should be adapted to another automation system with a different telegram structure and different sets of data. Thus, it would be a great improvement if a design pattern for data requests could be taken as a guideline for the implementation, enabling all processes to request their data with one common mechanism. Summarizing the glimpse at the problems mentioned in this section unconditionally leads to the realization that the process automation industry is up to now confronted with tasks having no general architecture for their efficient solution. Although a couple of tools already support the software developer in particular tasks, most of them cannot satisfy the requirements of modern software development. As an example, WinCC is capable of visualizing a production process and keeping track of the produced material, but it does not offer an object-oriented implementation.

15 1.2. Results 3 Whereas the general software market provides dozens of design patterns for very common software problems, the domain-specific software market lamely walks behind. One reason for this is maybe the fact that most industrial software is confidential and never reaches the public market. There is no commonly valid statement about that. But it can be taken for granted, that process automation software is not mass software and doesn t bring out particular design strategies because every developer uses its own implementations. So, process automation software has been individually developed and adapted for every automation plant despite the fact that up to 70 percent of the software could be reused [Ref1999a]. Recent research projects have confirmed these figures and have set up a tendency supporting the development of flexible design strategies to overcome the lack of architectural guidelines in the domain-specific software market. 1.2 Results This thesis can be regarded as a first approach towards software development for process automation systems with well structured design patterns for domain-specific tasks. Basically, the design patterns refer to communication problems between processes and different operating platforms. They show several innovative ways of resolving the difficulties coming along with data exchange in process automation systems and simultaneously offer a satisfying solution for non-functional requirements like efficiency, flexibility, adaptability, reuse and portability. The design patterns in this thesis have successfully passed all examinations in a prototype implementation for the process automation system of the hot rolling mill [Sie1988] at VOEST-Alpine Stahl Linz AG in the course of the Esprit project REFORM [Ref1999a] (A Reusable Framework for Rolling Mills) and can therefore be considered as proven. Process automation systems always demand efficient implementations in order to fulfill near real-time requirements [ZA1995]. An incoming high frequency cyclic data stream, containing information about the current state of an automation plant, has to be processed in a predefined interval of time. Hence, the challenge for the development of all patterns in general was to design an architecture guaranteeing the required near real-time demand. Inter-process collaborations were identified as the bottleneck for the efficient implementation of process automation software which resulted in the design of a compact pattern interface. Keeping the interprocess traffic low and optimizing the data stream to be sent has turned out to be a good solution to resolve the bottleneck. The design patterns, specially developed for process automation systems, also stand in for a large amount of flexibility. Automation plants cannot be seen as static entities, always performing the same tasks and processing the same data. Rather, they have to be considered as dynamic structures, changing their environment in irregular time intervals. Moved sensors, additional measuring devices etc. always affect the corresponding software. So, it is essential to build upon a flexible software design enabling the programmer to easily and quickly react on changes in the system. In many cases, the design patterns presented here automatically can be adapted to distinct environments without modifying the code. The prototype implementation, mentioned above, has shown that minor changes in the plant could be adapted in just a few minutes even by the customer, whereas the same solution in the conventional implementation lasted significantly longer and had to be done by an expert.

16 4 Chapter 1. Introduction and Overview The prototype implementation has also proven the adaptability of the design patterns. Kept general in architecture and collaboration, the design patterns offer several hooks for the adaptation of concrete implementations. These hooks may be found in the derivation of new classes, as usual, or in simple configuration files enabling the user to initialize the software components without touching the implementation. Beyond the main design patterns for process automation software, this thesis additionally presents a selective configuration mechanism which enables the user to adaptively configure the design patterns to different needs of the customers. As a consequence, the combination of the presented design patterns and the configuration mechanism distinctly reduces the effort of writing new code for the adaptation of the software to new automation plants and therefore helps to save development time and costs. In certain respects, a high degree of reuse comes together with adaptability, for a design pattern can also be considered as reusable when it is easily adaptable for customer-specific requirements. Besides, it was one of the major goals to design a reusable architecture for process automation systems. The design patterns have been implemented with Microsoft Visual C++ on Windows NT in order to validate the functionality. Nevertheless, the architecture is platform-independent with a maximum amount of portability. The requirements for the implementation languages are quite common and can be fulfilled by almost every object-oriented language. It is the author s conviction, though, that Java in connection with the current libraries is still unqualified for the implementation because it is too slow for the run-time demands of process automation systems. Summarizing this section, the design patterns presented here offer a comprehensive guideline for the development of communication strategies in process automation software. Nevertheless, they only deal with a part of the functions and tasks appearing in process automation systems, so the overall topic is not fully covered in this thesis. The reader will get an insight into the general structure of process automation systems and will experience the collaborations among the involved processes. He will learn about automatic methods for object instantiation enabling the user to quickly build complex and fully functional object hierarchies without recompiling the code. In general, the design patterns in this thesis support the software developer in the construction of process automation software and represent a new approach in reducing development time and costs. 1.3 Outline The following chapters give a detailed view on the methods and techniques enabling the construction of a flexible software architecture for process automation systems. Chapter 2 gives a common introduction on automation systems. It presents the typical three layer architecture of automation systems and shows the major tasks, processes and collaborations within these layers. Furthermore, the chapter examines the structure of conventional software systems in this domain and brings out their difficulties and disadvantages. Chapter 3 represents the main part in this thesis introducing five innovative complex design patterns providing solutions for various communication problems occurring within process automation systems. The design patterns are actually made for the domain of process automation systems, but are kept general enough to be used in similar areas.

17 1.3. Outline 5 Chapter 4 enhances the flexibility of the design patterns by describing a highly sophisticated configuration mechanism allowing the users to adapt the design patterns to specific requirements without modifying the code. This goal is reached by the introduction of additional meta-information, which also leads to the ability to dynamically create objects from a class name given in a configuration file. Chapter 5 presents a concrete implementation of all listed design patterns for the hot rolling mill at VOEST-Alpine Stahl Linz AG. The feasibility of the (slightly modified) design patterns is shown here. Chapter 6 compares the approach of the design patterns in this thesis with other techniques for communication and tries to justify the development of the new design patterns. And finally, chapter 7 critically summarizes the design patterns and gives a glimpse on the future development in the domain of process automation software.

18

19 7 Chapter 2 Process Automation Systems The design patterns in this thesis have been developed for the domain of process automation systems. Thus, it is indispensable in the beginning to give a precise definition of the term process automation system, to show how it is embedded into the huge area of automation systems and which tasks are involved. The term process automation system is used for a variety of distinct components in industrial systems. Single computer-controlled machines are referred to as process automation systems as well as whole factory automation systems. [PPW1994] Basically, process automation systems control the manufacturing of industrial products. Their major task is to optimize both the quality and the throughput of the produced goods. In order to achieve these goals, the requirements to the software for such systems are high and have to cover near real-time demands. The following sections will give a deeper insight into the functions and the structure of process automation systems. 2.1 Overall Structure A process automation system is a self-contained part within an overall automation system, which is generally divided into three levels of inter-operating software systems [Sie1988] (see Figure 2.1). Figure 2.1: Automation Levels The top level is the production planning and control system responsible for planning and coordinating work tasks in advance. It determines a production schedule which has to be accomplished, controlled and pushed to an optimum by the underlying level 2 representing the process automation system. Finally, the fundamental base at level 1 is the basic automation system directly controlling the involved hardware.

20 8 Chapter 2. Process Automation Systems The reason for the pyramid-shaped structure of the three automation levels lies within the fact that the basic automation system causes the majority of the costs compared to the other automation levels. The costs for the remaining systems continually go down with increasing levels, explaining the pyramid-shaped format. Within the software of the different automation layers, we can identify a cyclic data flow (see Figure 2.1) starting at level 1, which passes all data accumulated at the production process (i.e. signals and measured values) to the process automation system at level 2. Here, the data is used to calculate setpoint values (e.g. a new production velocity) for the machines of the basic automation system in order to influence the production process. This step closes the cycle. The production planning and control system is regularly notified about the progress and if required modifies the schedule in order to optimize the production process. [NPPZ1998] 2.2 Tasks As already indicated, one of the major tasks of process automation software is to calculate setpoint values for the basic automation layer. However, process automation software consists of several event-driven tasks working in parallel and communicating mutually [Pir1994]. Figure 2.2 gives an overview on the major tasks appearing in the software of process automation systems. Figure 2.2: Tasks within Process Automation Systems Typically, process automation systems supervise a production line where the produced objects sequentially follow a predefined route. In order to keep track of the movements, material tracking (MT) represents an elementary task in process automation software. The purpose of material tracking is to logically follow the produced objects through the production line, but it is not always necessary to exactly know where the objects are. It is sufficient to know the current production location. It depends on the type of the production process, though, how precise

21 2.2. Tasks 9 this task has to be. Apart from the exactness of material tracking, recent design reviews on automation software show a trend towards increasing the intelligence of level 1 and shifting the responsibility of material tracking to the basic automation system [Ref1999a]. But the fact if material tracking is assigned to level 2 or rather to level 1 has no impact on the results of this thesis. The second core task besides material tracking is measured value processing (MVP) [LA1994], [Lan1996]. The purpose of measured value processing is to collect and store the incoming measured values (e.g. sensor states, temperature, speed, dimensions of the produced material, etc.) and to selectively prepare them for statistical calculations. This task strongly differs from one plant to another, for the group of data to be stored depends on the type of the production process which is controlled. But generally, every process automation system consists of a measured value processing part, providing methods to store and access values attained at the production process. These values are submitted as the input for various mathematical models calculating setpoint values for the basic automation system in order to control and optimize the production process. Usually, the mathematical models have continually evolved and contain the experience of the automation engineers. Modern techniques such as fuzzy logic [Kle1993], neuronal networks [Roj1996] or machine learning approaches [Blu1999] are on the advance, though. One example of a mathematical model is the pacing model [Sie1988] (also known as sequencing model), responsible for finding a strategy to optimize the throughput of the production process. It calculates a new production velocity. Another example is the wear model, supervising the conditions of the machines and ordering possible repairs. This model determines when a (part of a) machine is worn out. Any number of mathematical models may be connected to the core it just depends on the automation plant. Furthermore, process automation systems commonly offer a man machine interface (MMI) to let the operator interact with the system. It visualizes the production process and notifies the operator on important events and errors. It also offers the opportunity to actively intervene into the production course and control the system manually. Another significant task within a process automation system is the reporting and logging mechanism. All measured values, calculated values or exceptional conditions have to be reported for quality assurance and as a kind of feedback for the customer. Several types of data storage are possible: Whereas in former times a direct printout caused loads of paper, the possibilities nowadays range from simple ASCII files over HTML documents to object-oriented databases. There are no restrictions in the type of storage. All tasks presented so far concern internal functions within a process automation system. It is essential, though, to communicate with the outer world at level 1 and level 3, thus special connectivity tasks are responsible for establishing connections to the surrounding automation layers: The connection to the basic automation system at level 1 is generally based on exchanging data telegrams. A telegram is a compact byte stream which sequentially contains e.g. sensor states, the temperature measured by a particular device, the dimensions of the produced goods, etc. It comes quite frequently that there are different operating systems in the two automation levels or that the software was implemented by different vendors, so it has been proved as an appropriate technique to use telegrams for inter-process communication between level 1 and level 2. As a consequence, a telegram handler converts and interprets the incoming telegrams and distributes their contents within the core.

22 10 Chapter 2. Process Automation Systems In order to communicate with the production planning and control system, an additional communication channel has to be established, which turns out to be the connection to the level 3 above. Whether this connection is again telegram-based (like the connection to level 1) or if other techniques are involved, strongly depends on the automation plant and the corresponding hardware. However, some process automation systems miss this connection, because the communication to level 3 is not automated, yet. It is definitely possible that a large production line (e.g. in the steel industry) is divided into smaller autonomous parts in order to control them separately. Several process automation systems (as well as their underlying basic automation systems) are then put sequentially one behind the other. The production planning and control system may supervise the whole automation line. The primary task in such a system is to enable the information flow between the coupled layers. Again, it depends on the hardware and the software vendors of the autonomous parts what type of communication is used between the linked parts. The tasks presented here do not claim to be complete. Optionally, it is possible that a process automation system also includes other tasks or even runs with fewer tasks than listed above, but Figure 2.2 shows the most important tasks appearing in a process automation system as well as their general structure and collaborations. For a more detailed insight into process automation systems, the author refers to [LG1999], [Wei1994], [Sie1989] and [NPPPZ1999]. 2.3 Conventional Implementations Up to now, there are still many automation plants which are controlled by 20- or 30-year old software systems. As an example, a particular automation sector in the hot rolling mill at VOEST-Alpine Stahl Linz AG (VASL) is one of them, with a software system for the level 1 and level 2 automation which is in use since the 1970s. The following statements reflect the author s personal experience, gained from a software project at VASL [Ref1999a] and from discussions with automation experts at Siemens. Former automation software has generally been implemented in low level programming languages like Fortran, C or even assembler. Because of the lack of generic features of those languages, the software for process automation systems has been re-implemented from scratch for every automation plant. The only possibility of reuse was restricted to basic libraries or to cut and paste from existing programs, which negatively affected the development time and the cost for the automation software. Furthermore, conventional software implementations exhibited major deficiencies in terms of flexibility and maintenance. It was e.g. not possible to install a new sensor in the plant without stopping and modifying the software. Modern software systems should almost naturally be up to such demands. It was also a large problem to connect new components to the core system. When e.g. a new mathematical model calculated special setpoints, which had not been considered before in the automation, the programmer team was faced with a lot of work to adapt the software to the new circumstances. Generally, the production line of an automation plant is steadily confronted with a changing environment, where e.g. sensors and measuring devices are added or placed to different locations, working tools have to be exchanged, when they are worn

23 2.3. Conventional Implementations 11 out, etc. All these changes in connection with conventional automation software required a program stop and a modification of the code because most parts within these systems were hard-coded, without any chance of dynamic configuration. The following assembler code is an excerpt of the currently used automation software of the hot rolling mill at VASL. In total, the software consists of approximately 15 MB assembler source code. Figure 2.3: Excerpt of the current VASL Automation The snapshot in Figure 2.3 shows a connection routine, which is responsible for attaching a communication channel to a remote process. As it is clearly recognizable, the code is not prepared for comfortable reading. Without a detailed documentation, it is nearly impossible to maintain or extend the code. Consequently, the needs for a new and flexible automation software, which conquers all the problems mentioned before, is more than urgent. The succeeding chapters introduce an innovative software architecture for process automation systems which allows software reuse on a high level and therefore helps to save development time and money.

24

25 13 Chapter 3 Design Patterns Chapter 2 has provided an insight into the domain of process automation systems, their involved tasks and their various types of communication techniques both within the process automation system as well as to the outside. The communication network ranges from a telegram exchange mechanism over inter process data requests to setpoint transmissions for the underlying hardware. Different operating systems, protocols, data formats and requirements of the involved tasks are common problems in this area, and it has always been tedious and error-prone work in conventional systems to establish communication channels, but it was no intellectual challenge. Thus, it turned out that the different communication problems raise the desire for a general strategy to overcome the lack of implementation guidelines in this domain. This thesis introduces innovative design patterns providing a common solution for the communication problem in process automation systems facing all the variants of communication mentioned above. Because of the extent of the problems, the corresponding design patterns are not just collaborations of a few classes, as the reader might assume knowing the classical design patterns from Gamma, Helm, Johnson and Vlissides [GHJV1995]. Rather, they consist of or they use several already existing design patterns and link them together to new complex design patterns enabling the programmer to solve many architectural problems. Nevertheless, the original definition of design patterns is still valid: A design pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem in such a way that you can use this solution a million times over, without ever doing it the same way twice. It names, abstracts and identifies the key aspects of a common design structure that make it useful for creating a reusable object-oriented design. [GHJV1995] Upon closer consideration, the term architectural pattern would also be acceptable for this area of responsibility. Architectural patterns express fundamental structural organization schemas for software systems. They provide a set of predefined subsystems, specify their responsibilities, and include rules and guidelines for organizing the relationships between them. [BMRSS1996] Although both terms apply to the following implementation strategies, there is a slight difference between them: Whereas architectural patterns examine the problems and their collaborations at a course level of abstraction, design patterns con-

26 14 Chapter 3. Design Patterns centrate on a more detailed view, and this is exactly what the patterns in this thesis are about. So, the author prefers the term design patterns and uses it consistently throughout the document. The following chapter describes five new powerful design patterns especially developed for the communication flow in process automation systems. In a sense, they build up a core structure and a new architecture for future process automation systems, gradually coming into existence during the description of the individual design patterns. They are all closely related to each other, because they share a common base, forced upon by the domain. Hence, it is essential to read sequentially through this chapter in order to understand the collaborations among the design patterns. The succeeding sections also include sample C++ code [Str1998] and UML diagrams [BRJ1999] to illustrate the patterns. 3.1 Telegram Pattern The Telegram Pattern provides a flexible solution guideline for telegram-based communication between processes on miscellaneous platforms. It parses and converts the transmitted data by abstracting from the underlying operating system Motivation Consider two distinct processes with the needs of mutual data exchange, but implemented in different programming languages and running on different systems. This scenario often appears between the basic automation system on level 1 and the process automation system on level 2 (see Chapter 2). In order to solve the communication problems, most systems use telegrams, i.e. byte streams of predefined format. A written document containing detailed information about the contents of the telegrams can be regarded as the interface description between the two processes. Figure 3.1: Telegram Description The left part of Figure 3.1 shows a typical telegram description exactly defining the names, the number of bytes and the types of the data sequentially contained in the telegram. Knowing this information, the byte stream sent from process 1 can be interpreted by the receiver process (see right part of Figure 3.1). On the first glance, the problem seems quite trivial with a simple telegram description as the key to the solution. The problem is harder, though, when we take a closer look at it: First of all, it is necessary to distinguish between ASCII and binary telegrams. Whereas ASCII telegrams are quite easy to handle, binary telegrams are

27 3.1. Telegram Pattern 15 typically shorter, but they depend on the different representation of the data types caused by different operating systems. One operating system might store integer types in two bytes, whereas the other expects four bytes for them. Furthermore, the byte representations for numbers differ between little endian and big endian machines [RP1999]. It is also possible that types and units do not match. The sender process transmits a certain value in millimeters as integer, and the receiver process needs it as float in meters or as a fraction of inches. There are many further examples of communication barriers between telegram sender and receiver longing for a general implementation guide. The Telegram Pattern provides such a guide and acts as a bridge between level 1 and level 2. In the following sections, the Telegram Pattern is introduced step by step, continually increasing its capability to solve the problems mentioned above Parsing the Telegram The first task of the receiver process is to read the incoming telegram byte by byte and to restore the information contained in it. The experienced object-oriented programmer probably thinks of an architecture where Telegram objects parse their corresponding byte streams themselves. So, there should be a Telegram base class providing the interface for parsing a byte stream. Every kind of telegram is then represented by a subclass, which implements the interface due to the structure of the telegram. We additionally create a member variable for every value contained in the telegram and try to assign the correct value during the parsing process. Thus, the goal within this section should be to read a structured byte stream and store the retrieved results in a corresponding Telegram object with member variables for every value. Figure 3.2: Telegram Class Hierarchy Figure 3.2 shows an idealistic view of the problem with a simplified implementation of the parsing method. Actually, the implementation must be more powerful to solve the problems mentioned in section The parsing method must distinguish between ASCII or binary byte streams, decide if the byte order needs to be swapped etc. Nevertheless, the implementation as shown in Figure 3.2 is quite comfortable and should not be overloaded with parsing details. It should remain as simple as it is, and the actual process of reading the byte stream should be shifted to an external class.

28 16 Chapter 3. Design Patterns There is already a design pattern for this kind of problem the Strategy Pattern. It defines a family of algorithms, encapsulates each one, and makes them interchangeable [GHJV1995]. This is exactly what we need here: We define a family of algorithms for the different ways of reading a byte stream, encapsulate each family in a corresponding class, and make them interchangeable for the already defined Telegram classes. Figure 3.3: Strategy Pattern for Reading Telegrams An abstract base class Reader provides the interface for all kinds of reading operations, which are implemented as separate methods in the derived classes. Reading an integer from an ASCII stream is different from reading it from a binary stream, and again different when the byte order is swapped. The detailed implementation of these algorithms is irrelevant, though, and not shown here. Furthermore, it is also of minor importance whether the reading methods receive the byte stream through their interface or if the byte stream is assigned to the Reader just once in the beginning of the parsing method (like in Figure 3.3). But, what is important, however, is the extensible class hierarchy consisting of various Reader classes, which enable a further simple implementation of the parsing method (see right bottom of Figure 3.3). The architecture shown in Figure 3.3 appears as a flexible solution for the first step in telegram traffics for parsing the incoming byte stream. A new telegram can be handled by deriving a new Telegram class and implementing the parsing method without considering the type of the byte stream. This task is delegated to the various Readers, which can be individually assigned or exchanged even at run-time.

29 3.1. Telegram Pattern Extracting the Telegram Id Although the strategy introduced in the previous section provides a very adaptable approach of software design for the telegram communication mechanism, it still neglects one important aspect: When the sender process transmits several telegrams of different structure, the very first task of the receiver process is to identify which telegram has just arrived. This task should be done at a central point within the receiver, let us call it TelegramHandler. A TelegramHandler sequentially receives different kinds of telegrams and has to find out which Telegram classes can handle them. In order to distinguish between the byte streams, every telegram carries a unique identification (the telegram id) in the first bytes of the stream. But this fact raises the next problem: Different software vendors use different telegram types, which makes it impossible to find out how many bytes should be read and how they should be interpreted in order to extract the correct id out of the byte stream. It could be an ASCII telegram with a four-byte string id or it could be a binary telegram with a two-byte integer id. Even if there are telegrams of the same type (e.g. ASCII telegrams), the id might be different with a two byte string in one telegram and a four byte string in the other, when the telegrams come from miscellaneous software vendors. Consequently, the area of responsibility for a TelegramHandler has to be restricted in a way that one TelegramHandler can only handle telegrams of the same kind, and the same type and size for the id. So, if a process e.g. receives ASCII and binary telegrams, it has to provide two TelegramHandlers in order to interpret the telegrams correctly. The connection to the TelegramHandlers has to be established once in the beginning, to ensure that one TelegramHandler only receives one type of telegrams. Figure 3.4 shows a first attempt of a design for a corresponding class. Figure 3.4: Attempt of a TelegramHandler Class Due to the fact that every TelegramHandler is now restricted to one type of telegram, it correspondingly references only one Reader object. It can have several differently-structured Telegrams, though, with a prototype object of each Telegram stored in the telegramlist. In order to ensure the same type also in the implementation, every Telegram object added to the TelegramHandler is immediately initialized with the same Reader object (see top right implementation in Figure 3.4). The TelegramHandler does not create Telegram objects. It uses the prototype objects for parsing; and they must be processed before the next byte stream arrives. A TelegramHandler must at least have a method for receiving a byte stream. The first action within this method is to extract the telegram id from the stream, in

A Reusability Concept for Process Automation Software

A Reusability Concept for Process Automation Software A Reusability Concept for Process Automation Software Wolfgang Narzt, Josef Pichler, Klaus Pirklbauer, Martin Zwinz Business Information Systems C. Doppler Laboratory for Software Engineering University

More information

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying

More information

Framework Development for Large Systems

Framework Development for Large Systems Framework Development for Large Systems Dirk Bäumer 1, Guido Gryczan 2, Rolf Knoll 3, Carola Lilienthal 2, Dirk Riehle 4, and Heinz Züllighoven 2 Abstract Frameworks are a key asset in large-scale object-oriented

More information

Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication

Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication 01PC-422 Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication Pascal Jost IAS, University of Stuttgart, Germany Stephan Hoffmann Vector CANtech Inc., USA Copyright

More information

Framework Development for Large Systems

Framework Development for Large Systems Framework Development for Large Systems Dirk Bäumer RWG Stuttgart Guido Gryczan University of Hamburg Vogt-Kölln-Str. 30 22527 Hamburg Germany Phone: +49-40-54 94-2302 Fax: +49-40-54 94-2303 Email:gryczan@informatik.uni-hamburg.de

More information

1-04-10 Configuration Management: An Object-Based Method Barbara Dumas

1-04-10 Configuration Management: An Object-Based Method Barbara Dumas 1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,

More information

Intelligent Log Analyzer. André Restivo <andre.restivo@portugalmail.pt>

Intelligent Log Analyzer. André Restivo <andre.restivo@portugalmail.pt> Intelligent Log Analyzer André Restivo 9th January 2003 Abstract Server Administrators often have to analyze server logs to find if something is wrong with their machines.

More information

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto lft@inescporto.pt Luís Teixeira INESC Porto, Universidade Católica Portuguesa lmt@inescporto.pt Luís Corte-Real

More information

A Componentware Methodology based on Process Patterns Klaus Bergner, Andreas Rausch Marc Sihling, Alexander Vilbig Institut fur Informatik Technische Universitat Munchen D-80290 Munchen http://www4.informatik.tu-muenchen.de

More information

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming

More information

SAN Conceptual and Design Basics

SAN Conceptual and Design Basics TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer

More information

Communications Management. 3ICT12 (with thanks to Prof. George Pavlou, University of Surrey)

Communications Management. 3ICT12 (with thanks to Prof. George Pavlou, University of Surrey) Communications Management 3ICT12 (with thanks to Prof. George Pavlou, University of Surrey) 1 Communications Management Network Management Overview What is Network Management? Manager Agent Model OSI Management:

More information

Lightweight Service-Based Software Architecture

Lightweight Service-Based Software Architecture Lightweight Service-Based Software Architecture Mikko Polojärvi and Jukka Riekki Intelligent Systems Group and Infotech Oulu University of Oulu, Oulu, Finland {mikko.polojarvi,jukka.riekki}@ee.oulu.fi

More information

Rotorcraft Health Management System (RHMS)

Rotorcraft Health Management System (RHMS) AIAC-11 Eleventh Australian International Aerospace Congress Rotorcraft Health Management System (RHMS) Robab Safa-Bakhsh 1, Dmitry Cherkassky 2 1 The Boeing Company, Phantom Works Philadelphia Center

More information

A Management Tool for Component-Based Real-Time Supervision and Control Systems

A Management Tool for Component-Based Real-Time Supervision and Control Systems A Management Tool for Component-Based Real-Time Supervision and Control Systems Sandro Santos Andrade, Raimundo José de Araújo Macêdo Distributed Systems Laboratory (LaSiD) Post-Graduation Program on Mechatronics

More information

Windows Server Performance Monitoring

Windows Server Performance Monitoring Spot server problems before they are noticed The system s really slow today! How often have you heard that? Finding the solution isn t so easy. The obvious questions to ask are why is it running slowly

More information

Adversary Modelling 1

Adversary Modelling 1 Adversary Modelling 1 Evaluating the Feasibility of a Symbolic Adversary Model on Smart Transport Ticketing Systems Authors Arthur Sheung Chi Chan, MSc (Royal Holloway, 2014) Keith Mayes, ISG, Royal Holloway

More information

Efficient database auditing

Efficient database auditing Topicus Fincare Efficient database auditing And entity reversion Dennis Windhouwer Supervised by: Pim van den Broek, Jasper Laagland and Johan te Winkel 9 April 2014 SUMMARY Topicus wants their current

More information

Structural Design Patterns Used in Data Structures Implementation

Structural Design Patterns Used in Data Structures Implementation Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Generating Web Applications from Process Models

Generating Web Applications from Process Models Generating Web Applications from Process Models Jan Schulz-Hofen, Silvan Golega Hasso-Plattner-Institute for Software Systems Engineering Prof.-Dr.-Helmert-Str. 2-3 D-14482 Potsdam, Germany {jan.schulz-hofen,

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Automated Virtual Cloud Management: The need of future

Automated Virtual Cloud Management: The need of future Automated Virtual Cloud Management: The need of future Prof. (Ms) Manisha Shinde-Pawar Faculty of Management (Information Technology), Bharati Vidyapeeth Univerisity, Pune, IMRDA, SANGLI Abstract: With

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

Visual Programming of Logic, Motion, and Robotics

Visual Programming of Logic, Motion, and Robotics ADVANCED Motion Controls October 2014 Visual Programming of Logic, Motion, and Robotics Sándor Barta Overview The art of programming consists of mentally translating a workflow into a sequential programming

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

Teaching Object-Oriented Software Design within the Context of Software Frameworks

Teaching Object-Oriented Software Design within the Context of Software Frameworks Teaching Object-Oriented Software Design within the Context of Software Frameworks Zoya Ali, Joseph Bolinger, Michael Herold, Thomas Lynch, Jay Ramanathan, Rajiv Ramnath The Ohio State University, aliz@cse.ohio-state.edu,

More information

An Analysis of the B2B E-Contracting Domain - Paradigms and Required Technology 1

An Analysis of the B2B E-Contracting Domain - Paradigms and Required Technology 1 An Analysis of the B2B E-Contracting Domain - Paradigms and Required Technology 1 Samuil Angelov and Paul Grefen Department of Technology Management, Eindhoven University of Technology, P.O. Box 513, 5600

More information

A Business Process Services Portal

A Business Process Services Portal A Business Process Services Portal IBM Research Report RZ 3782 Cédric Favre 1, Zohar Feldman 3, Beat Gfeller 1, Thomas Gschwind 1, Jana Koehler 1, Jochen M. Küster 1, Oleksandr Maistrenko 1, Alexandru

More information

Event-based middleware services

Event-based middleware services 3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 7 GoV Patterns Architectural Part 1 1 GoV Patterns for Software Architecture According to Buschmann et al.: A pattern for software architecture

More information

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development Ahmet Demir Technische Universität München Department of Informatics Munich, Germany AhmetDemir@gmx.de

More information

Run-time Variability Issues in Software Product Lines

Run-time Variability Issues in Software Product Lines Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, alexandre.braganca@i2s.pt 2 Dep.

More information

Software Life-Cycle Management

Software Life-Cycle Management Ingo Arnold Department Computer Science University of Basel Theory Software Life-Cycle Management Architecture Styles Overview An Architecture Style expresses a fundamental structural organization schema

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

A very short history of networking

A very short history of networking A New vision for network architecture David Clark M.I.T. Laboratory for Computer Science September, 2002 V3.0 Abstract This is a proposal for a long-term program in network research, consistent with the

More information

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS Lech MADEYSKI *, Michał STOCHMIAŁEK Abstract. Architectural design is about decisions which influence characteristics of arising system e.g. maintainability

More information

Engineering Process Software Qualities Software Architectural Design

Engineering Process Software Qualities Software Architectural Design Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

More information

METER DATA MANAGEMENT FOR THE SMARTER GRID AND FUTURE ELECTRONIC ENERGY MARKETPLACES

METER DATA MANAGEMENT FOR THE SMARTER GRID AND FUTURE ELECTRONIC ENERGY MARKETPLACES METER DATA MANAGEMENT FOR THE SMARTER GRID AND FUTURE ELECTRONIC ENERGY MARKETPLACES Sebnem RUSITSCHKA 1(1), Stephan MERK (1), Dr. Heinrich KIRCHAUER (2), Dr. Monika STURM (2) (1) Siemens AG Germany Corporate

More information

Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall.

Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall. Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall. 5401 Butler Street, Suite 200 Pittsburgh, PA 15201 +1 (412) 408 3167 www.metronomelabs.com

More information

Enterprise Application Designs In Relation to ERP and SOA

Enterprise Application Designs In Relation to ERP and SOA Enterprise Application Designs In Relation to ERP and SOA DESIGNING ENTERPRICE APPLICATIONS HASITH D. YAGGAHAVITA 20 th MAY 2009 Table of Content 1 Introduction... 3 2 Patterns for Service Integration...

More information

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software

More information

A Real Time, Object Oriented Fieldbus Management System

A Real Time, Object Oriented Fieldbus Management System A Real Time, Object Oriented Fieldbus Management System Mr. Ole Cramer Nielsen Managing Director PROCES-DATA Supervisor International P-NET User Organisation Navervej 8 8600 Silkeborg Denmark pd@post4.tele.dk

More information

theguard! ApplicationManager System Windows Data Collector

theguard! ApplicationManager System Windows Data Collector theguard! ApplicationManager System Windows Data Collector Status: 10/9/2008 Introduction... 3 The Performance Features of the ApplicationManager Data Collector for Microsoft Windows Server... 3 Overview

More information

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering. Service Oriented Architecture Definition (1) Definitions Services Organizational Impact SOA principles Web services A service-oriented architecture is essentially a collection of services. These services

More information

SiteCelerate white paper

SiteCelerate white paper SiteCelerate white paper Arahe Solutions SITECELERATE OVERVIEW As enterprises increases their investment in Web applications, Portal and websites and as usage of these applications increase, performance

More information

PATROL From a Database Administrator s Perspective

PATROL From a Database Administrator s Perspective PATROL From a Database Administrator s Perspective September 28, 2001 Author: Cindy Bean Senior Software Consultant BMC Software, Inc. 3/4/02 2 Table of Contents Introduction 5 Database Administrator Tasks

More information

Introduction to Software Paradigms & Procedural Programming Paradigm

Introduction to Software Paradigms & Procedural Programming Paradigm Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,

More information

8. KNOWLEDGE BASED SYSTEMS IN MANUFACTURING SIMULATION

8. KNOWLEDGE BASED SYSTEMS IN MANUFACTURING SIMULATION - 1-8. KNOWLEDGE BASED SYSTEMS IN MANUFACTURING SIMULATION 8.1 Introduction 8.1.1 Summary introduction The first part of this section gives a brief overview of some of the different uses of expert systems

More information

How To Build A Financial Messaging And Enterprise Service Bus (Esb)

How To Build A Financial Messaging And Enterprise Service Bus (Esb) Simplifying SWIFT Connectivity Introduction to Financial Messaging Services Bus A White Paper by Microsoft and SAGA Version 1.0 August 2009 Applies to: Financial Services Architecture BizTalk Server BizTalk

More information

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General

More information

PIE. Internal Structure

PIE. Internal Structure PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution

More information

Software design (Cont.)

Software design (Cont.) Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java

More information

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns rel. 1.7 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software Pattern seconda parte Renato Conte - Pattern II- 1/48 - Types of software patterns

More information

Surveying and evaluating tools for managing processes for software intensive systems

Surveying and evaluating tools for managing processes for software intensive systems Master Thesis in Software Engineering 30 Credits, Advanced Level Surveying and evaluating tools for managing processes for software intensive systems Anuradha Suryadevara IDT Mälardalen University, ABB

More information

Business Intelligence and Big Data Analytics: Speeding the Cycle from Insights to Action Four Steps to More Profitable Customer Engagement

Business Intelligence and Big Data Analytics: Speeding the Cycle from Insights to Action Four Steps to More Profitable Customer Engagement white paper Business Intelligence and Big Data Analytics: Speeding the Cycle from Insights to Action Four Steps to More Profitable Customer Engagement»» Summary For business intelligence analysts the era

More information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.

More information

A Next-Generation Analytics Ecosystem for Big Data. Colin White, BI Research September 2012 Sponsored by ParAccel

A Next-Generation Analytics Ecosystem for Big Data. Colin White, BI Research September 2012 Sponsored by ParAccel A Next-Generation Analytics Ecosystem for Big Data Colin White, BI Research September 2012 Sponsored by ParAccel BIG DATA IS BIG NEWS The value of big data lies in the business analytics that can be generated

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

Generating Aspect Code from UML Models

Generating Aspect Code from UML Models Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Electronic Communications of the EASST Volume 34 (2010) Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Position Paper: m2n A Tool for Translating

More information

Lightweight Data Integration using the WebComposition Data Grid Service

Lightweight Data Integration using the WebComposition Data Grid Service Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed

More information

SERVICE ORIENTED APPLICATION MANAGEMENT DO CURRENT TECHNIQUES MEET THE REQUIREMENTS?

SERVICE ORIENTED APPLICATION MANAGEMENT DO CURRENT TECHNIQUES MEET THE REQUIREMENTS? In: New Developments in Distributed Applications and Interoperable Systems: 3rd IFIP International Working Conference (DAIS 2001), Cracow, Poland Kluwer Academic Publishers, September 2001 SERVICE ORIENTED

More information

A Meeting Room Scheduling Problem

A Meeting Room Scheduling Problem A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 ooinfo@oeng.com http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,

More information

MODEL OF SOFTWARE AGENT FOR NETWORK SECURITY ANALYSIS

MODEL OF SOFTWARE AGENT FOR NETWORK SECURITY ANALYSIS MODEL OF SOFTWARE AGENT FOR NETWORK SECURITY ANALYSIS Hristo Emilov Froloshki Department of telecommunications, Technical University of Sofia, 8 Kliment Ohridski st., 000, phone: +359 2 965 234, e-mail:

More information

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. 2 Contents: Abstract 3 What does DDS do 3 The Strengths of DDS 4

More information

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:

More information

Towards Collaborative Requirements Engineering Tool for ERP product customization

Towards Collaborative Requirements Engineering Tool for ERP product customization Towards Collaborative Requirements Engineering Tool for ERP product customization Boban Celebic, Ruth Breu, Michael Felderer, Florian Häser Institute of Computer Science, University of Innsbruck 6020 Innsbruck,

More information

New Generation of Software Development

New Generation of Software Development New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 tyehon@cs.ubc.ca ABSTRACT In this paper, I present a picture of what software development

More information

Component Based Rapid OPC Application Development Platform

Component Based Rapid OPC Application Development Platform Component Based Rapid OPC Application Development Platform Jouni Aro Prosys PMS Ltd, Tekniikantie 21 C, FIN-02150 Espoo, Finland Tel: +358 (0)9 2517 5401, Fax: +358 (0) 9 2517 5402, E-mail: jouni.aro@prosys.fi,

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Base One's Rich Client Architecture

Base One's Rich Client Architecture Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.

More information

A Software and Hardware Architecture for a Modular, Portable, Extensible Reliability. Availability and Serviceability System

A Software and Hardware Architecture for a Modular, Portable, Extensible Reliability. Availability and Serviceability System 1 A Software and Hardware Architecture for a Modular, Portable, Extensible Reliability Availability and Serviceability System James H. Laros III, Sandia National Laboratories (USA) [1] Abstract This paper

More information

BUSINESS RULES AND GAP ANALYSIS

BUSINESS RULES AND GAP ANALYSIS Leading the Evolution WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Discovery and management of business rules avoids business disruptions WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Business Situation More

More information

SIPAC. Signals and Data Identification, Processing, Analysis, and Classification

SIPAC. Signals and Data Identification, Processing, Analysis, and Classification SIPAC Signals and Data Identification, Processing, Analysis, and Classification Framework for Mass Data Processing with Modules for Data Storage, Production and Configuration SIPAC key features SIPAC is

More information

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs

More information

Methods and tools for data and software integration Enterprise Service Bus

Methods and tools for data and software integration Enterprise Service Bus Methods and tools for data and software integration Enterprise Service Bus Roman Hauptvogl Cleverlance Enterprise Solutions a.s Czech Republic hauptvogl@gmail.com Abstract Enterprise Service Bus (ESB)

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

Distributed Objects and Components

Distributed Objects and Components Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java

More information

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers Technology White Paper JStatCom Engineering, www.jstatcom.com by Markus Krätzig, June 4, 2007 Abstract JStatCom is a software framework

More information

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS Tao Yu Department of Computer Science, University of California at Irvine, USA Email: tyu1@uci.edu Jun-Jang Jeng IBM T.J. Watson

More information

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE TIGRAN HAKOBYAN SUJAL PATEL VANDANA MURALI INTRODUCTION Common Object Request

More information

ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION

ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION Vijay K Kerji Department of Computer Science and Engineering, PDA College of Engineering,Gulbarga,

More information

Satisfying business needs while maintaining the

Satisfying business needs while maintaining the Component-Based Development With MQSeries Workflow By Michael S. Pallos Client Application Satisfying business needs while maintaining the flexibility to incorporate new requirements in a timely fashion

More information

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers

More information

Increasing Development Knowledge with EPFC

Increasing Development Knowledge with EPFC The Eclipse Process Framework Composer Increasing Development Knowledge with EPFC Are all your developers on the same page? Are they all using the best practices and the same best practices for agile,

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

An Overview of Embedded Computing

An Overview of Embedded Computing Embedded Computing Introduction to Embedded Computing......................................-2 Software Tools for Embedded Computing An Overview of Embedded Computing Moxa Protocol Converter.................................................-6

More information

An Easier Way for Cross-Platform Data Acquisition Application Development

An Easier Way for Cross-Platform Data Acquisition Application Development An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers

More information

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada ken@unb.ca Micaela Serra

More information

A DNP3 Protocol Primer

A DNP3 Protocol Primer A Protocol Primer Introduction This is a primer for people who want a quick understanding of without having to comb through the tedious details of a complex specification. The writing style is meant to

More information

Component Based Development in Software Engineering

Component Based Development in Software Engineering Component Based Development in Software Engineering Amandeep Bakshi, Rupinder Singh Abstract--In today s world, Component Based development is an active research area for more than a decade in software

More information

A generic framework for game development

A generic framework for game development A generic framework for game development Michael Haller FH Hagenberg (MTD) AUSTRIA haller@hagenberg.at Werner Hartmann FAW, University of Linz AUSTRIA werner.hartmann@faw.unilinz.ac.at Jürgen Zauner FH

More information

A Framework for Software Product Line Engineering

A Framework for Software Product Line Engineering Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product

More information

C-Bus Application Messages & Behaviour Chapter 25 Air Conditioning

C-Bus Application Messages & Behaviour Chapter 25 Air Conditioning C-Bus Application Messages & Behaviour Chapter 25 Air Conditioning Document Number: CBUS-APP/25 Comments on this document should be addressed to: Engineering Manager Clipsal Integrated Systems PO Box 103

More information

Patterns of Information Management

Patterns of Information Management PATTERNS OF MANAGEMENT Patterns of Information Management Making the right choices for your organization s information Summary of Patterns Mandy Chessell and Harald Smith Copyright 2011, 2012 by Mandy

More information