The SEAL Component Model Radovan Chytracek CERN IT/DB, LCG AA On behalf of LCG/SEAL team This work received support from Particle Physics and Astronomy.

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

1 Generic logging layer for the distributed computing by Gene Van Buren Valeri Fine Jerome Lauret.
D. Düllmann - IT/DB LCG - POOL Project1 POOL Release Plan for 2003 Dirk Düllmann LCG Application Area Meeting, 5 th March 2003.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Technical Architectures
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Reuse Activities Selecting Design Patterns and Components
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Bacon A Penetration and Auditing Framework Hernan Gips
An Introduction to Software Architecture
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Codeigniter is an open source web application. It occupies a very small amount of space in the memory and is most useful for developers who aim to develop.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Flexibility and user-friendliness of grid portals: the PROGRESS approach Michal Kosiedowski
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Component Basics CS6961 – Lecture 6 Nathan Dykman.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
NOVA Networked Object-based EnVironment for Analysis P. Nevski, A. Vaniachine, T. Wenaus NOVA is a project to develop distributed object oriented physics.
ALICE, ATLAS, CMS & LHCb joint workshop on
CERN-PH-SFT-SPI August Ernesto Rivera Contents Context Automation Results To Do…
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
SEAL Project Overview Lorenzo Moneta/ CERN-EP on behalf of the SEAL team ACAT03 IX International Workshop on Advanced Computing and Analysis Techniques.
SEAL: Common Core Libraries and Services for LHC Applications CHEP’03, March 24-28, 2003 La Jolla, California J. Generowicz/CERN, M. Marino/LBNL, P. Mato/CERN,
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
SEAL Project Core Libraries and Services 18 December 2002 P. Mato / CERN Shared Environment for Applications at LHC.
The POOL Persistency Framework POOL Project Review Introduction & Overview Dirk Düllmann, IT-DB & LCG-POOL LCG Application Area Internal Review October.
NOVA A Networked Object-Based EnVironment for Analysis “Framework Components for Distributed Computing” Pavel Nevski, Sasha Vanyashin, Torre Wenaus US.
SEAL Framework & Services LCG AA Internal Review 20 October, 2003 Radovan Chytracek / CERN on behalf of SEAL team.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Feedback from LHC Experiments on using CLHEP Lorenzo Moneta CLHEP workshop 28 January 2003.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
SEAL Project Overview LCG-AA Internal Review October 2003 P. Mato / CERN.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Pool Project and ROOT I/O Dirk Duellmann What is Pool? Component Breakdown Status and Plans.
Lecture 21: Component-Based Software Engineering
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
D4Science and ETICS Building and Testing gCube and gCore Pedro Andrade CERN EGEE’08 Conference 25 September 2008 Istanbul (Turkey)
Status of tests in the LCG 3D database testbed Eva Dafonte Pérez LCG Database Deployment and Persistency Workshop.
CPT Week, November , 2002 Lassi A. Tuura, Northeastern University Core Framework Infrastructure Lassi A. Tuura Northeastern.
Project Work Plan SEAL: Core Libraries and Services 7 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Modularization of Geant4 Dynamic loading of modules Configurable build using CMake Pere Mato Witek Pokorski
J2EE Platform Overview (Application Architecture)
Self-Contained Systems
SEAL: Common Core Libraries and Services for LHC Applications
SEAL Project Overview Lorenzo Moneta/ CERN-EP ACAT03
(on behalf of the POOL team)
POOL persistency framework for LHC
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
GSAF Grid Storage Access Framework
Advanced Integration and Deployment Techniques
An Introduction to Software Architecture
SEAL Project Core Libraries and Services
Plug-In Architecture Pattern
Presentation transcript:

The SEAL Component Model Radovan Chytracek CERN IT/DB, LCG AA On behalf of LCG/SEAL team This work received support from Particle Physics and Astronomy Research Council, Swindon, UK

September 27, 2004 R. Chytracek/CERN2 SEAL Overview  SEAL aims to –Provide the software infrastructure, basic frameworks, libraries and tools that are common among the LHC experiments –Select, integrate, develop and support foundation and utility class libraries –Develop a coherent set of basic framework services to facilitate the integration of LCG and non - LCG software  Scope –Foundation Class Libraries »Basic types (STL, Boost, CLHEP, …), utility libraries, system isolation libraries, domain specific foundation libraries –Math Libs –Basic Framework Services »Component model, reflection, plug-in management, incident (event) management, distributed computing, grid services, scripting

September 27, 2004 R. Chytracek/CERN3 Component Model Overview  A way of resolving software complexity  A generic set of software building blocks –components, services  Exposing well defined interface(s) –contract, protocol  Easily configurable –properties  Assembled via generic infrastructure –contexts, scopes  Compile-time and/or run-time –static and/or dynamic binding  Easy deployment based on plug-n-play architecture –plug-ins

September 27, 2004 R. Chytracek/CERN4 Component Model: Re-usability  The components should be ideally operating in various hosting environments independently of the one they were created in  Without a need to rebuild them  Re-configured for the target environment as/if needed –Customized or specialized as/if required »Components derived by target user  Software Hot-Swap –Replacement by compatible component during run-time –Compatible == Providing the same interface(s)

September 27, 2004 R. Chytracek/CERN5 Components à la SEAL  Set of “base classes” and interfaces needed to build more complex components  Provide standard functionality –Loading, instantiation, configuration, lifetime management,…  Two kinds provided –Component »A “simple” gadget providing well defined function (HistogramPlotter) »Usually exposes a single interface –Service »A sub-system grouping multiple sub-components or other services in its own scope (StorageService) »May expose multiple interfaces

September 27, 2004 R. Chytracek/CERN6 Contextual Composition  Components can’t live in a void space, they need: –Their working environment –Capabilities to locate other components –Life-time management –Run-time configuration scope  SEAL answer is the Context object –Context based approach is used by many modern component frameworks like J2EE, COM(+),.NET, CORBA CM –SEAL implementation is inspired by Iguana (CMS) and Gaudi (LHCb, ATLAS)  Context allows –Component instantiations organized in hierarchical tree-like structure –Manage instantiated components’ life-time –Searching for other components in the same or other contexts

September 27, 2004 R. Chytracek/CERN7 Components vs. Contexts Application AppContext Component1 Svc1 Svc1Context 1 … 1213 Svc3 Svc3Context 1 Svc2 Svc2Context 1 …… 4243 Component2 Component4 Component1 Component7 Component8

September 27, 2004 R. Chytracek/CERN8 Component Configuration  A Component may declare its own properties –Templated Property instances (any type with a stream operator<<) –References to data members (any type with a stream operator<<)  Possibility to associate “callback” update function –Ensures component consistent state when a property is updated  Properties have a “name” (scoped) and a “description”  The PropertyCatalogue is the repository of all properties of the application  Properties can be set or updated from outside of the component which has declared them to the system Application AppContext Component1 Svc1 Svc1Context 1 … 1213 /seal/Application.outputLevel = Verbose /seal/Application.outFile = “Com1.log” /seal/Svc1.outputLevel = Debug /seal/Svc1.outFile = “Com1_2.log”

September 27, 2004 R. Chytracek/CERN9 Component Look-up  Knowing a context or a component other components can be located –Search by type or key is supported  Search goes always from current to the top context –Search stops when a component is found or top-level context is reached Application AppContext Component7 Svc2 Svc2Context 1 …… 4243 Component1 “/seal/Com1_1” #include “SealKernel/ComponentLoader.h” #include “Component1.h” Handle handle = component (); handle->callComponent1(); Look-up by type Component7.cpp #include “SealKernel/ComponentLoader.h” #include “Component1.h” Handle handle = component (“/seal/Com1_2”); handle->callComponent1(); Look-up by key Component7.cpp 1 Component1 “/seal/Com1_2” 2

September 27, 2004 R. Chytracek/CERN10 Component Customization  User can perform full component customization via extending or specializing of an existing one by:  Inheritance –Overriding existing component’s behavior  Alternative implementation of an interface –Provide compatible new component implementation  Wrapping a non-SEAL class using SEAL ComponentWrapper template class –Injecting a foreign class into component hierarchy –E.g. a class which does not inherit from SEAL Component class

September 27, 2004 R. Chytracek/CERN11 SEAL Components Plug-n-play  Plug-n-play is enabled by using SEAL PluginManager –Writing component plug-in factories is simplified by providing generic seal::ComponentFactory class  SEAL components can become plug-ins very easy –Single line of code  Component plug-ins shipped as SEAL modules –Modules are dynamically loadable shared libraries –Multiple component plug-ins can exist inside a single module  SEAL provides generic component loader tool –seal::ComponentLoader class –Loads either single component or can load a whole bunch of components at once –Components can be loaded into specific context

September 27, 2004 R. Chytracek/CERN12 The Existing SEAL Services  Application –Defines the top level Context –Possibility to set the initial set of Components to be loaded in the application  Message Service –Message composition, filtering and reporting –Closely related to MessageStream  Configuration Service –Management of Component properties and loading configurations –Multiple backends foreseen: »Gaudi style options(current),.INI style,CMS style,XML,…  Dictionary Service –Enables automatic loading of SEAL C++ reflection dictionaries simply by specifying a C++ type name

September 27, 2004 R. Chytracek/CERN13 SEAL Components in POOL  Component model not (yet) used in full extent –Its use is constrained by the POOL clients »Experiments still use the component infrastructure provided by their frameworks  The new developments in POOL are exploiting the use of SEAL component model to implement true SEAL components and services together with the SEAL component loader.  POOL RelationalService is pure generic service which loads database back-end specific plug-ins to enable access to relational databases using their native APIs  POOL Relational Abstraction Layer (RAL) required more modular approach for its implementation with strong support for run-time (re-)configuration

September 27, 2004 R. Chytracek/CERN14 MySQL ODBC Access Domain MySQL ODBC Context SEAL Components in POOL RelationalService & ODBC POOL Application POOLContext Relational Service RAL Context Component Loader XML Authetication Service Message Service MySQL ODBC Table Data Editor MySQL ODBC Schema Editor MySQL ODBC Driver Configurator MySQL ODBC Type Configurator ODBC Configurator ODBC Driver Selector mysql://dbserver/PoolSchema ODBC Session

September 27, 2004 R. Chytracek/CERN15 Conclusions  SEAL component model implementation is complete enough to be used in client frameworks  First larger adoption is happening in POOL project –POOL Relational Abstraction Layer set of components  Further integration is foreseen in LHCb and ATLAS experiments when these adopt SEAL component model in Gaudi framework  No new major developments are planned –Unless there is a demand for a new functionality from the LCG clients –Bug fixes and maintenance –Component configuration needs to be extended »More back-ends for Configuration Service options file formats

September 27, 2004 R. Chytracek/CERN16 Information pointers  SEAL web page:  SEAL development portal:  SEAL Workbook: