The CERN Large Hadron Collider (LHC) requires constant monitoring and control of quantities of parameters to guarantee operational conditions. For this.

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Standard Interfaces for FPGA Components Joshua Noseworthy Mercury Computer Systems Inc.
Ch 3 System Development Environment
Information Systems Analysis and Design
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
CBSD – Component Based Software Development - Introduction -
DCS Architecture Bob Krzaczek. Key Design Requirement Distilled from the DCS Mission statement and the results of the Conceptual Design Review (June 1999):
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Copyright 2006 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Third Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
Lecture Nine Database Planning, Design, and Administration
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Chapter 1 The Systems Development Environment
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
TM Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Chapter 2 The process Process, Methods, and Tools
Chapter 1 The Systems Development Environment
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
ITEC224 Database Programming
Automatic Generation Tools UNICOS Application Builder Overview 11/02/2014 Ivan Prieto Barreiro - EN-ICE1.
1 Tools for Commercial Component Assembly Francis Bordeleau, Zeligsoft/Carleton University Mark Vigder, National Research Council Canada.
Profiling Metadata Specifications David Massart, EUN Budapest, Hungary – Nov. 2, 2009.
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
Introduction to MDA (Model Driven Architecture) CYT.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
ETICS2 All Hands Meeting VEGA GmbH INFSOM-RI Uwe Mueller-Wilm Palermo, Oct ETICS Service Management Framework Business Objectives and “Best.
Plug-in System for the Xylia Extensible XML Editor Student: Jonathan Milley Supervisor: Dr. T. S. Norvell.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
 Mathias Dutour / UAB Dev. team  UNICOS regular meeting  29 January 2009.
CSE 219 Computer Science III Program Design Principles.
1 Introduction to Software Engineering Lecture 1.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
June 15, 2009GITB Open Meeting, Brussels1 GITB Alternative Architectures and Business Models CEN/ISSS eBIF Global eBusiness Interoperability Test Bed Methodologies.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
The Software Development Process
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering Lecture # 1.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
Advanced Object-oriented Design Patterns Creational Design Patterns.
Jemerson Pedernal IT 2.1 FUNDAMENTALS OF DATABASE APPLICATIONS by PEDERNAL, JEMERSON G. [BS-Computer Science] Palawan State University Computer Network.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
European Organization for Nuclear Research LHC Gas Control System Applications Generation to Deployment phases Strategy/Principles.
Chapter – 8 Software Tools.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
CHESS Methodology and Tool Federico Ciccozzi MBEES Meeting Sälen, January 2011 January 2011.
Building Enterprise Applications Using Visual Studio®
UNICOS Application Builder Architecture
The Development Process of Web Applications
CMS High Level Trigger Configuration Management
Complexity Time: 2 Hours.
Distribution and components
Need for the subject.
Presentation transcript:

The CERN Large Hadron Collider (LHC) requires constant monitoring and control of quantities of parameters to guarantee operational conditions. For this purpose, a methodology called UNICOS (UNIfied Industrial COntrols Systems) has been implemented to standardize the design of process control applications. To further accelerate the development of these applications, we migrated our existing UNICOS tooling suite toward a software factory in charge of assembling project, domain and technical information seamlessly into deployable PLC (Programmable logic Controller) – SCADA (Supervisory Control And Data Acquisition) systems. This software factory delivers consistently high quality by reducing human errors and repetitive tasks, and adapts to user specifications in a cost-efficient way. Hence, this production tool is designed to encapsulate and hide the PLC and SCADA target platforms, enabling the experts to focus on the business model rather than specific syntaxes and grammars. Based on industry standard software, this production tool together with the UNICOS methodology provide a modular environment meant to support process control experts to develop their solutions quickly. REFERENCES: [1]Philippe Gayet and Renaud Barillere, “UNICOS A framework to build Industry like control systems: Principles and methodology”, CERN, Geneva, Switzerland. [2]Jack Greenfield and Keith Short, “Moving to Software Factories”, Microsoft© Corporation. [3]G. Thomas, “LHC GCS: A model-driven approach for automatic PLC and SCADA code generation”, CERN, Geneva, Switzerland. [4]The GlassFish community, [5]Joseph Fialli and Sekhar Vajjhala, Sun Microsystems© Inc. “The Java™ Architecture for XML Binding (JAXB)”, January 8th [6]The Jython Project, PLC/SCADA developer Domain expert System developer UAB Core Technical configuration Plug-in Technical configuration. Grammar check Project data Domain knowledge ‘A’ Platform– specific generated code UAB Core Plug - in ‘A’ ‘B’‘C’ Plug -in developer Just like the orchestra conductor, the Code generation rules don’t contain any data, but simply encapsulate the business knowledge of the output expected. Their primary goal is to drive the code generation through a set of abstract services offered by the code generation plug-ins. The Raw project data consists of a simple monolithic XML file validated by the Grammar check XML schemas. The information gathered here is to be used directly or interpreted by the Code generation rules and the UAB Plug-ins. One could identify 3 distinct categories of information described here: Documentation: This information is simply present to document other contained information, to help understanding the purpose of the information provided. Meta data: This information characterizes other pieces of data contained in the XML file for proper processing during the code generation process. Technical: Finally the low level technical information such as process control object characteristics. The Grammar check packet consists of one or several XML Schema files designed to be easy to extend and to maintain. These XML Schemas have the following responsibilities: They define the XML properties which describe every piece of information of the Raw project data XML file(s). They used to validate the XML input, to prevent errors in the typing of the Raw project data. They are target-platform and project independent, meaning they can be reused and shared. The chosen technology for every input data to the UAB Core and recommended for the code generation plug-ins is XML, validated by XML Schemas. Java is programming language for the UAB Core and the plug-ins development to rely on free, industry-standard and vendor – independent technologies to develop the UAB Tool. JAXB (the Java Architecture for XML Binding) is the chosen technology to access the XML information. JAXB is a SUN©-supported open initiative to provide both automatic XML-to-Java binding and XML mangling/de-mangling. It was selected by the UAB Tool mainly because it allows runtime XML Schema modification and adaptation. Finally the Jython scripting language (Python for Java) provides power and simplicity to the Code generation rules. SOFTWARE FACTORY TECHNIQUES APPLIED TO PROCESS CONTROL AT CERN Mathias Dutour CERN Information Technology / Controls, Geneva, Switzerland …ok, no problem. To meet the user needs, the UAB (UNICOS Application Builder) is implementing the following mechanisms: Platform-independent models and data structures More power to the users to drive the code generation process through domain knowledge scripting. Automatic adaptation to user inputs structural modifications. Automatic grammar and syntax checking + support for semantic consistency verification. Technical, domain and project specific knowledge are handled and defined separately. Target platform abstraction through high level PLC/SCADA code generation services. Assets reusability across teams and projects. Enhanced control over code generation. Robustness toward input structural changes. More user support for troubleshooting. Distinguish domain from technical knowledge. Support of multiple platforms at once. (1) Extract information (2) Call generation directives (3) Generates code Code generation rules Project data Generated PLC code SUMMARY The software factory approach, implemented here in the context of process control, allows focusing on the expected result rather than on the means to produce this result. Mixing static configuration, auto-adaptive software and abstract user directives, the UAB tool is a powerful and yet simple rule–driven code generation environment. The project technical data, business logic and tooling configuration are clearly de-correlated preventing the spaghetti plate effect: The long term maintenance of the process control applications is made safer and cheaper. The multi-level error checking mechanisms addressing grammar, syntax and semantic aspects filter-out many mistakes which could be difficult to detect before deployment and therefore very costly to track down and fix. Nonetheless, this approach is not self sufficient and does enforce on the forehand a rigorous design of the project constructions to be used, such as the Grammar check and Code generation rules packets. This is also to the direct benefit of the quality of the process control application produced. Finally the UAB tool is not limited to UNICOS or even code generation, and its architecture can adapt to many domains with a need for a flexible offline data processing solution. A concrete example (partial) of an XML Schema used for PLC/SCADA Objects code generation.. The UAB Core packet contains the central tool management mechanics. It has a pure technical role and has no interest or knowledge in Raw project data, Code generation rules and targeted platforms, it acts simply as a transparent information broker. One could summarize its responsibilities as follows: It discovers dynamically the various Plug-ins and assert their validity; It loads the Raw project data information as an internal representation (Multiple XML inputs is allowed per Plug-in); It provides the Plug-ins with their respective UNICOS Project data information and Code generation rules. It provides common services required by most of the plug-ins (E.g.: User report, file I/O,…). “Plug-ins act just as code weavers.” ‘A’‘B’‘C’ Each Plug-in is only in charge of the formatting of the generated output code and repetitive tasks. According their purpose and usage, they offer several platform- independent code generation services as illustrated below. A plug-in neither has the direct knowledge of Raw project data nor contains hard- coded information. Finally the information to tune their behavior is described in their respective Plug-in technical configuration. Automatic? Sure, but… The automatic code generation process aims indeed at more productivity, improved time to market and increased final product quality. However, the maintenance of the code generation process shall not become a nightmare due to changing user requirements and extensions to the process control application at end. Based on this observation, we identified the following needs to be addressed: