1 FESA architecture v.1.0 Framework Configuration & Data-entry Tool 5 th December 2003.

Slides:



Advertisements
Similar presentations
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Advertisements

Mobyle XML Vivek Gopalan Version history: First version for training Nick and Art – Vivek, 02/07/2011.
1 OS Structure, Processes & Process Management. 2 Recap OS functions  Coordinator  Protection  Communication  Resource management  Service provider.
Chapter 9 Chapter 9: Managing Groups, Folders, Files, and Object Security.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
Introduction to Kernel
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
Fall 2011 Nassau Community College ITE153 – Operating Systems Session 24 NTFS Permissions and Sharing Printers 1.
Chapter 6 - Implementing Processes, Threads and Resources Kris Hansen Shelby Davis Jeffery Brass 3/7/05 & 3/9/05 Kris Hansen Shelby Davis Jeffery Brass.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
May 14, 2001E. Gallas/Trigger Database1 Status of the Trigger Database Elizabeth Gallas, Rich Wellner, Vicky White Fermilab - Computing Division See my.
Project Source Code Structure and Build Process ● Remember consistency matters as source code structure, build process, and release processes are all intertwined.
® IBM Software Group © 2009 IBM Corporation Rational Publishing Engine RQM Multi Level Report Tutorial David Rennie, IBM Rational Services A/NZ
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
IOS110 Introduction to Operating Systems using Windows Session 8 1.
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
CSC 142 B 1 CSC 142 Java objects: a first view [Reading: chapters 1 & 2]
European Plant-to-Enterprise Conference October 27-28, 2009, Utrecht, The Netherlands Mdf MES Development Framework Massimiliano Papaleo.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Introduction of Geoprocessing Topic 7a 4/10/2007.
Firmware Storage : Technical Overview Copyright © Intel Corporation Intel Corporation Software and Services Group.
RMS Importer Status MACS Week March 2011 PP b-ABR_RMSImporterStatus Angela Brett RMS Importer Status 1.
Active-HDL Interfaces Building VHPI Applications C Compilation Course 9.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
ALICE, ATLAS, CMS & LHCb joint workshop on
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
10-Nov-15 Java Object Oriented Programming What is it?
Processes Introduction to Operating Systems: Module 3.
Chapter 10 Defining Classes. The Internal Structure of Classes and Objects Object – collection of data and operations, in which the data can be accessed.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad.
KEW Definitions Document Type The Document Type defines the routing definition and other properties for a set of documents. Each document is an instance.
Creating Google Sites Laura Assem, Director of Technology.
Design Patterns David Talby. This Lecture Re-routing method calls Chain of Responsibility Coding partial algorithms Template Method The Singleton Pattern.
CS-1030 Dr. Mark L. Hornick 1 Basic C++ State the difference between a function/class declaration and a function/class definition. Explain the purpose.
Linux File system Implementations
Constraints Lesson 8. Skills Matrix Constraints Domain Integrity: A domain refers to a column in a table. Domain integrity includes data types, rules,
Source Controller software Ianos Schmidt The University of Iowa.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
Introduction of Geoprocessing Lecture 9 3/24/2008.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
Level 1-2 Trigger Data Base development Current status and overview Myron Campbell, Alexei Varganov, Stephen Miller University of Michigan August 17, 2000.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
Building KFS using KNS Presented by James SmithJustin Beltran University of ArizonaUniversity of California, Irvine.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
UAB Requirements for 2016 Ivan Prieto Barreiro 18/04/2016 UAB Requirements for
Chapter 5 Introduction to Defining Classes Fundamentals of Java.
Event Sources and Realtime Actions
Progress Apama Fundamentals
Java FX: Scene Builder.
Muen Policy & Toolchain
Activities, Fragments, and Events
Use of Multiple Devices
FESA 3.0 für Klassenentwickler: Erfahrungen und Erkenntnisse; Allgemeine Diskussion der Gerätemodellentwicklung
Chapter 7 –Implementation Issues
Bethesda Cybersecurity Club
Chapter 9: Managing Groups, Folders, Files, and Object Security
Presentation transcript:

1 FESA architecture v.1.0 Framework Configuration & Data-entry Tool 5 th December 2003

2 Outline 1.Controlling and refining the framework 2.Code generation 3.Data-files and populating the shared memory 4.The configuration tool layout 5.Advanced uses of the tool and wizards 6.Starting the tool and demo

3 Terminology  Field  A description of a primitive data-type, including its name, type, min, max, default, etc…  Definition  A description of 1 or more related fields  Data partition  The realisation of a definition residing in shared memory  Data-file (data-store)  Configuration files, used to populate shared memory when a crate boots  XSL template  An XML document which when combined with the XML tree from the configuration tool, produces C,C++ or Java code

4 Refining the framework  Data partitions definition  The framework automatically handles all 8 (currently) available data partitions  Every partition must exist but can be empty (except for obligatory index keys such as cycleName and deviceName)  Developer can define 0..n fields in each of the data partitions  The developer decides where the field will reside  Is the field per-cycle or global?  Should the field be visible to a single device, or to all devices?  A field’s attributes consists of

5 Controlling the framework  Special framework definitions  Fields defined here don’t reside in shared memory  Nevertheless, they are applied to an XSL template to generate some part of the framework, or to create a placeholder in the framework  SOURCE – Lists private event sources your class will implement  HARDWARE – Lists hardware device types your class will use (see next Friday’s presentation)  RTTACTION – Lists the RT actions your class will implement  COMMACTION – Lists & describes ‘extra services’ your class will implement (implies definitions for filters/results composite types) Action List Filter (parameter in) Result (parameter out)

6 What then?  Once the developer has tailored the framework to the instrument’s needs  Call the ‘Generate Library’ wizard  This will apply the XSL templates to the data partition definitions to generate  C header files which define structures etc  C code files that will handle the manipulation of data in shared memory  C++ wrapper files to handle shared memory (via the device class)  Java stubs that will handle client access to the data structures  The XSL templates will also be applied to the special framework definitions to produce  A device C++ class  The real-time and communications (actions) schedulers  Makefiles  … etc

7 Per-class definitions XSL templates How code generation works XSLT Processor fesa_hpp_shm.xsl fesa_cpp_shm.xsl fesa_hpp_device.xsl fesa_cpp_device.xsl fesa_cpp_test.xsl fesa_c_superfunc.xsl fesa_h_superfunc.xsl fesa_makefile.xsl fesa_java_sstub.xsl fesa_js_docs.xsl REFIM1Shm.hpp REFIM1Shm.cpp REFIM1Device.hpp REFIM1Device.cpp REFIM1Test.cpp REFIM1.c REFIM1.h Makefile REFIM1.java REFIM1.js biconfig.dtd V1.xml Configuration tool Generated Files

8 The generated library  The library is deployed under /user/fesa/config  It is version dependant  V1 has different library to V2  The library will be automatically (re)compiled when the user ‘make’s their instrument  The.a will be ultimately linked with the final executables to complete the refinement of the framework

9 Populating the shared memory  The configuration tool makes a clear distinction between Data and Definition  Definitions are used to control and refine the framework  Data is used to configure the software once it has been deployed  Framework (FESA) data-files  Data-files which are loaded at runtime, to configure the framework  Event Dispatching  Alias Definitions  Global Device Declarations  Class’s declaration  Simulation Sequences  Partition (CLASS) data-files  Data-files that will be loaded into shared memory to populate the partitions’ fields you defined during framework refinement  If the partition is ordered by device, 1 file per-device  … otherwise one file for the entire partition (which could contain many cycles for example)

10 The config tool in action Selected panel area The content of this area is controlled by the panel selection above Panel selection Allows the selection of a definition file, or a data file Wizards and general application control Application separated into 3 areas Many panels can be opened/closed

11 Class ownership and user control  To allow FESA to scale, access to a class must be controlled  A class has 0 or more users and 1 or more owners  Users can access and modify data-files  Owners can access and modify data-files AND the definitions of the data partitions AND the special files that refine the framework  This means that you can allow only selected users to modify your class, while other users can modify the data-files.  Users and Owners are declared in the ‘class declaration’ when you create the class. It can be accessed later by a button in the tool.  Control is bypassed by FESA super-users!  A FESA super-user is an owner of the special FESA class  Super-users can do anything to everything!

12 Inheritance and interfaces FESARefMySubClassMyClassAnInterface1AnInterface2  A class can be ‘basedOn’ another class  No limit to hierarchy, but…  A class can only be ‘basedOn’ ONE class  The class FESAREF must be at the top of the hierarchy  A class can’t redefine any part of it’s ‘basedOn’ class  Classes can have ‘basedOnInterfaces’  Same as basedOn classes but…  More than one interface can be defined  Re-declaration of array-types’ sizes is possible  As with user control, this is defined in the class declaration basedOn basedOnInterface

13 Soft-keys and the wizards  In FESAREF, some fields are defined as Soft-Keys  The soft-keys in a partition, form a unique key  Eg. The partition DEVICE.USER.STORED has two soft-keys, cycleName and deviceName  When entering data, soft-keys cannot be modified  So you can’t enter or modify deviceName or cycleName for example  You can populate the data-files via the wizards however  Create a new device – device/cycleName are filled automatically depending on device’s timing domain  Update a device - cycleNames are updated to reflect the current events in device’s timing domain  Remove a device – All relevant entries in FESA files and ‘per-device’ files are removed

14 Starting the tool…  Can be started from Linux  /user/fesa/tools/FESAApps  Or via web-start from windows 

15 To the demo…