Presentation is loading. Please wait.

Presentation is loading. Please wait.

Wojciech Buczak, Wojciech Sliwinski BE-CO-IN for the Middleware team Vito Baggiolini, Roman Gorbonosov BE-CO-DA.

Similar presentations


Presentation on theme: "Wojciech Buczak, Wojciech Sliwinski BE-CO-IN for the Middleware team Vito Baggiolini, Roman Gorbonosov BE-CO-DA."— Presentation transcript:

1 Wojciech Buczak, Wojciech Sliwinski BE-CO-IN for the Middleware team Vito Baggiolini, Roman Gorbonosov BE-CO-DA

2 Agenda  What is JAPC ?  Overal achitecture  Core functionality  Implementation of Diverse Parameters  Interface – basic abstractions  JAPC extensions  ParameterMetafactory  Summary 2JAPC im a Nutshell24th April 2013

3 What is JAPC ? 24th April 2013JAPC im a Nutshell3 JAPC is a unified API for all different kinds of parameters present in CERN control system JAPC = CORE + extensions + services

4 JAPC: overal architecture 4JAPC im a Nutshell24th April 2013 JAPC API JAPC CORE japc-ext-cmwrda2japc-ext-remote japc-ext-snmp Java Control Programs GUI Components Diagnostic Tools General Purpose Services japc-ext-simjapc-ext-tgm japc-ext-referencejapc-ext-sim japc-ext-mockito RDA devices SNMP devices JMS Databases japc-ext-cmwrda3 CMW directory service ConfigurationDatabaseCCDB

5 JAPC: core functionality 24th April 2013JAPC im a Nutshell5  JAPC: “Java API for Parameter Control” Parameter a value you need to supervise and/or control (aka control value, I/O point, I/O channel, signal, device property) Hardware, timing, remote server, db, alarms, simulation, ??..  Core functionality provided by JAPC: SET/GET and MONITOR > Synchronous and asynchronous operations > Timing-dependent and periodic actions Obtain meta-information about the parameter  Processing and changing a parameter value on-the-fly  Grouping information from several parameters into a single value

6 JAPC: Implementation of Diverse Parameters 24th April 2013JAPC im a Nutshell6 6 HW Devices (Front-ends) Database or Files Virtual Devices (J2EE Server) Simulated parameters Timing System JAPC CORE Specfic applications GUI components Diagnostic Tools General Purpose Services JAPC Interface CMW Parameter set() get() subscribe() CMW Parameter set() get() subscribe() DB Parameter set() get() subscribe() DB Parameter set() get() subscribe() TIMING Parameter set() get() subscribe() TIMING Parameter set() get() subscribe() Parameter set() get() subscribe() Parameter set() get() subscribe()

7 JAPC Interface – basic abstractions  Parameter = the “handle” provides set/get and subscribe functionality  ParameterValue = Data container Transports all data types supported by our front-ends Simple types (byte, int, double, String, etc) arrays, enums Composite types (contain several simple types)  CycleSelector specifies when data shall be accessed Cycle-Event: timing system event at which the data shall be acquired  Descriptor provides meta information on the parameter for self-configuring GUI components getDescription() isWritable(), isReadable(), isSubscribable() Information retrieved from CERN directory service  ParameterFactory a class that knows how to create parameters 24th April 2013JAPC im a Nutshell7

8 JAPC: extensions  Many extensions (plugins) available, with the most commonly used:  JAPC remoting extension (japc-ext-remote) Used to represent middle-tier servers as virtual devices and/or parameters provides set/get and subscribe functionality Supports GET/SET/MONITOR operations using serveral remoting technologies (RMI/HTTP/JMS) Parameter configuration storred in a JAPC registry  JAPC device access extension (japc-ext-cmwrda) Used to access hardware devices and represent them as a collection of parameters. Access done through Common Middleware (CMW) All basic operations supported (GET/SET/MONITOR) Optimization: support of array-calls  New extensions can eaisily be written on demand 24th April 2013JAPC im a Nutshell8

9 JAPC: Metafactory  Part of JAPC core  Client programs use a Factory to create parameters Before: only one type of devices in a JVM Now: combination of all devices  Metafactory knows what type of parameter to create Naming prefixes: protocol://service/device/property#field e.g. ○ jms://cngs/CNGS.TBID/Acquisition#counts Name-to-service resolvers ○ One resolver per known type of parameter ○ Factory asks each resolver if it knows the parameter name ○ No protocol://service prefix needed ○ Example: directory service for RDA 9JAPC im a Nutshell24th April 2013

10 JAPC: summary  Clients at CERN Many projects: LSA, INCA, CNGS, CESAR, Oasis, DIAMON, TIM WorkingSets/Knobs Is there a project at CERN that does not use JAPC ??  Easily extendable – plugin architecture  Dependencies JAPC CORE: NONE extensions have various dependencies  Some numbers JAPC core: 350 Classes, 60’000 Lines of Code; 12 extensions: each Classes, 1’000-3’000 Lines of Code 10JAPC im a Nutshell24th April 2013


Download ppt "Wojciech Buczak, Wojciech Sliwinski BE-CO-IN for the Middleware team Vito Baggiolini, Roman Gorbonosov BE-CO-DA."

Similar presentations


Ads by Google