ALMA Common Software Basic Track Introduction to the ACS Framework.

Slides:



Advertisements
Similar presentations
Distributed Data Processing
Advertisements

COM vs. CORBA.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
7 th ACS Workshop 2010 Antofagasta, Chile ACS Project Lifecycle Matias Mora (based on presentation by G. Chiozzi and J. Ibsen)
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
December 2007Chile Observatories Earthquake Preparedness Workshop1 Atacama Large Millimeter/submillimeter Array ALMA Eduardo Donoso.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
ADASS XI Sept30-Oct3, 2001 The ALMA Common Software (ACS) as a basis for a distributed software development G.Raffi, G.Chiozzi (ESO), B.Glendenning (NRAO)
Descripción y Areas del Dpto. de Computación de ALMA (ADC) Tzu-Chiang Shen Gerente del Grupo de Software Departamento de Computación ALMA Joint ALMA Observatory.
The ALMA Common Software: a developer friendly CORBA-based framework G.Chiozzi d, B.Jeram a, H.Sommer a, A.Caproni e, M.Pesko bc, M.Sekoranja b, K.Zagar.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
An Introduction to Software Architecture
6st ACS Workshop UTFSM ACS Course Component, Container, Lifecycle Management 6st ACS Workshop UTFSM, Valparaiso, Chile H. Sommer, G. Chiozzi.
ALMA Common Software Basic Track Software Engineering Basics.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Workshop in ALMA Logs Prepared by Juan Pablo Gil – Arturo Hoffstadt
50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching.
Integrating the CERN laser alarm system with the ALMA common Software SPIE, Orlando, May 2006 Integrating the CERN LASER Alarm System with the ALMA Common.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
ICT Coordination and Planning Meeting #1 (17-19 April 2013) ALMA Dashboard 1.0 Giorgio Filippi The Atacama Large Millimeter/submillimeter Array.
EA ARC Ken Tatematsu East-Asian ARC Manager. ARC organization Difference between ARCS: NA: concentrated in Charlottesville Europe: distributed in different.
A Search for Hydroxlyamine (NH 2 OH) Towards IRC+10216, Orion-S, Orion(KL), SgrB2(N), SgrB2(OH), W512M, W3(IRS5) R. L. Pulliam NRAO / North American ALMA.
The ALMA Software and Release Management Ruben Soto Software Operations Group & Release Manager Joint ALMA Observatory.
ALMA Common Software Basic Track Component implementation guidelines.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
ALMA Common Software Basic Track Test Driven Development Unit testing and TAT.
ALMA Common Software Basic Track Logging and Error Systems.
Control in ATLAS TDAQ Dietrich Liko on behalf of the ATLAS TDAQ Group.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
ALMA Common Software Basic Track A walk through ACS functionality.
1 Computing Challenges for the Square Kilometre Array Mathai Joseph & Harrick Vin Tata Research Development & Design Centre Pune, India CHEP Mumbai 16.
ICALEPCS’ GenevaACS in ALMA1 Allen Farris National Radio Astronomy Observatory Lead, ALMA Control System.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
ALMA Polarization Commissioning and Verification Status Kouichiro Nakanishi (Joint ALMA Observatory/NAOJ) on behalf of ALMA Polarization Commissioning.
ICALEPCS WE2.4-6I ALMA Common Software Status and Development G.Chiozzi a, A.Caproni a e, R.Cirami e,P.Di Marcantonio e,D.W.Fugate d, S.Harrington.
CSC480 Software Engineering Lecture 10 September 25, 2002.
5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)
ALMA and the Call for Early Science The Atacama Large (Sub)Millimeter Array (ALMA) is now under construction on the Chajnantor plain of the Chilean Andes.
ICALEPCS 2005 Geneva, Oct. 12 The ALMA Telescope Control SystemA. Farris The ALMA Telescope Control System Allen Farris Ralph Marson Jeff Kern National.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Garching - 15th - 19th January, 2007 ACS: status and latest development The ACS Team.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Atacama Large Millimeter/ submillimeter Array - ALMA ASAC Charges For Oct 31 ASAC Report to ALMA Board Al Wootten JAO Interim Project Scientist.
1st ACS Workshop UTFSM, Valparaiso, Chile ACS Course The Big Picture of ACS H. Sommer, G.Chiozzi.
ALMA Common Software Basic Track Project Lifecycle.
ESO - Garching 08 – 09 March, st ALMA Common Software Workshop ACS Container/Component Model.
ESO - G.Chiozzi ESO Instrumentation Software Workshop VLT Control Software …and beyond.
ALMA Common Software Basic Track Configuration Database.
ALMA Common Software Basic Track Component/Container Model and Lifecycle Management.
Dashboard upcoming features A Hales, ALMA and M Chavan, ESO
ACA TP Spectrometer Manabu Watanabe (NAOJ)
ALMA Common Software Basic Track
ALMA Software Scheduling subsystem Planning for cycle5 onwards
PRTS & KPI Nick Whyborn – Vasco Cortez
Shift Log Tool Refactoring
Obsprep Planning, 2017 Alan Bridger
Upgrade to Oracle12c in February 2017 José Parra
Ch > 28.4.
ACS ALMA Common software Demo Setup
Presentation transcript:

ALMA Common Software Basic Track Introduction to the ACS Framework

The Modern Observatory  Integrated and distributed architecture (end to end data flow)  Archive and virtual observatory integration.  Feedback systems and distributed control loops.  Big projects and small projects: what are the differences?

Example: ALMA Software and Physical Architecture

Example: ALMA Data Flow

Distributed System Requirement: the observatory is a distributed system. Servers and clients are distributed on different machines:  Possibly in different locations  With different purpose and functionality  With different requirements on performance and reliability This leads to a…

Heterogeneous Distributed System Requirement: the observatory shall be a heterogeneous distributed system. Servers and clients may use different:  Hardware  System software  Programming languages

Transparent Heterogeneous Distribution  Developers of clients should be unaware of the underlying server architecture & vice-versa  It should be possible to change the architecture of a server transparently to the client  Client developers should not even need to know whether a server is local or remote.

Functional and Technical Architecture The separation of functional from technical concerns is a strategy for enabling the application developer to concentrate on the specific aspects of the observatory  Expressing the complexity in software of an observatory is difficult  Having to know the subfields of computer science associated with distributed object architecture is also very challenging Conclusion Let system developers take care of the computer science-related tasks

Functional Architecture A Functional Software Architecture (FSA) is a model that identifies enterprise functions, interactions and corresponding information technology needs.  Software components/subsystems  Responsibilities  Interfaces  Primary relationships and interactions  Physics and algorithms  Hardware deployment and distribution It is developed by architect and subsystem leaders

Technical Architecture The functional architecture must be supported by a technical architecture that describes (and implements) the technical aspects of the software  Access remote resources  Store and retrieve data (Database technology)  Manage security needs  Communication mechanisms and networking  Software deployment and activation  Programming model It is provided by the technical team

Separation of concerns  Functional and technical architecture: two views  Subsystem teams should concentrate on function  Technical architecture provides them with simple and standard ways to, for example:  Access remote resources  Store and retrieve data  Manage security needs  Keep the two concerns separate!

Infrastructure Framework The key to the separation between Functional and Technical Architecture Purpose of a framework is to:  provide a programming model  Ensure that the same thing is done in the same way in all the development locations  provide common paradigm abstractions  mask heterogeneity  satisfy performance, reliability and security requirements

The ALMA Common Software (ACS) Framework  ACS provides the basic services needed for object oriented distributed computing. Among these:  Transparent remote object invocation  Object deployment and location based on a container/component model  Distributed error and alarm handling  Distributed logging  Distributed events  The ACS framework is based on CORBA and built on top of free CORBA implementations.  Model driven development with code generation

Supported Platforms  Operating system: RHEL 5.5 and 6.5 (32 and 64 bits)  CentOS/SL 5 and 6 binary compatible  Other linux versions supported by external projects  Windows added also by external initiatives  Real-time: RTAI  VxWorks supported by and for APEX  Languages: C++, Java, Python  CORBA middleware: TAO (C++), JacORB (Java), Omniorb (Python), CORBA services.  Embedded ACS Container: PC104, Debian, 300Mhz Geode, 256MB RAM, 256 MB flash (CosyLAB microIOC), …

LGPL and open source software The strategy to provide common features to users is:  Use as much as possible open-source tools, instead of implementing things.  Do not reinvent the wheel  Reuse experience of other projects  Do not pay for licenses  Support from user community  Identify the best way to perform a task among the possibilities  Wrap with convenience and unifying APIs ACS is distributed under the LGPL license Open source software may have drawbacks:  Fast lifecycle and support only of the newest  Free/commercial support  Documentation not as good as commercial products

Separation of roles ACS keeps separate 3 roles/phases:  Development by software developers  Deployment by deployment engineers  Runtime by system operators

Development  Developers write components and graphical user interfaces clients in C++, Java, or Python.  ACS provides an integrated build environment based on application code modules.  Communication from an application to a component, and among components, uses ACS as middleware.  No thinking about starting and stopping components, or on which machine they should run later.

Development

Deployment  One or more containers get assigned to each computer.  Components get assigned to containers.  This location information is stored centrally in the Configuration Database (CDB).  Other configuration data for containers and components are also stored in the CDB.  There can be different deployments for unit tests, system tests, and various stages of the production system.

Deployment

Runtime  ACS containers start and stop components (lifecycle management) as needed.  Containers provide components and clients with references to other components.  The Manager is the central intelligence point that keeps the system together. Components never see it directly.  Manager, CDB, and other services, are started with the “acsStart” command or with the ACS command center GUI.

Runtime

Interfaces versus Implementations  First step: Identify objects  Mount  Camera  Telescope  Observation  Exposure  Second step: Define interfaces  Implementation comes later and is independent of interface  Deployment is also independent of interface definitions  Interfaces shall be kept as stable as possible, but it must be possible to have them evolve when needed.  A formal interface definition language is needed

One Interface, many implementations

Interface Definition Language (IDL)  CORBA and DDS both use the same formal interface definition language: IDL IDL forms a ‘contract’ between client and servant or publisher and subscriber  IDL reconciles diverse object models and programming languages  Imposes the same object model on all supported languages  Programming language independent means of describing data types and object interfaces  purely descriptive - no procedural components  provides abstraction from implementation  allows multiple language bindings to be defined  A way to integrate and share objects from different object models and languages

Development Process

Questions? Acknowledgements ACS presentations were originally developed by the ALMA Common Software development team and has been used in many instances of training courses since Main contributors are (listed in alphabetical order): Jorge Avarias, Alessandro Caproni, Gianluca Chiozzi, Jorge Ibsen, Thomas Jürgens, Matias Mora, Joseph Schwarz, Heiko Sommer. The Atacama Large Millimeter/submillimeter Array (ALMA), an international astronomy facility, is a partnership of Europe, North America and East Asia in cooperation with the Republic of Chile. ALMA is funded in Europe by the European Organization for Astronomical Research in the Southern Hemisphere (ESO), in North America by the U.S. National Science Foundation (NSF) in cooperation with the National Research Council of Canada (NRC) and the National Science Council of Taiwan (NSC) and in East Asia by the National Institutes of Natural Sciences (NINS) of Japan in cooperation with the Academia Sinica (AS) in Taiwan. ALMA construction and operations are led on behalf of Europe by ESO, on behalf of North America by the National Radio Astronomy Observatory (NRAO), which is managed by Associated Universities, Inc. (AUI) and on behalf of East Asia by the National Astronomical Observatory of Japan (NAOJ). The Joint ALMA Observatory (JAO) provides the unified leadership and management of the construction, commissioning and operation of ALMA.