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 10-20 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