Download presentation
Presentation is loading. Please wait.
Published byGriffin Lee Modified over 9 years ago
1
The PS/SL Middleware Project
2
28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description Functionality Technology Architecture and APIs Milestones
3
28 July 2000Alessandro RISSO The PS/SL Middleware Project The PS/SL Middleware Project Mandate Launched in early 1999 to provide communication infrastructure for existing accelerators Members PS/CO: Steen Jensen, Alessandro Risso, Nikolai Trofimov SL/CO: Vito Baggiolini, Francois Chevrier, Francesco Calderini, Kris Kostro, Marc Vanden Eynden
4
28 July 2000Alessandro RISSO The PS/SL Middleware Project What is Middleware ? Middleware definition “communication glue between distributed software components” infrastructure to exchange data and commands between different parts of a distributed control system Based on a Device/Property model HW and SW entities are represented as “devices” Devices have “properties” that can be read or modified Functionality of Accelerator Middleware Set/Get of device properties Monitoring of device properties Diffusion of information
5
28 July 2000Alessandro RISSO The PS/SL Middleware Project Project Overview March 1999 Workshop on MW technologies August 1999 Requirements from PS/SL control & equipment groups published Autumn 1999 Selection of technology January 2000 Technical choices published in the “Whitepaper” Spring 2000 Elaboration of Architecture and APIs Summer 2000 A Prototype is under development
6
28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description Functionality Technology Architecture and APIs Milestones
7
28 July 2000Alessandro RISSO The PS/SL Middleware Project Functional Requirements Set/Get of device properties blocking & non-blocking; on cycle event Monitoring of device properties Publish/subscribe on value change; on cycle event Directory Service Lookup of device servers locations, configuration, etc. Security/Access Control & Reservation Facility Programming environment: Support for Object-Oriented software Java and C/C++ Application Programming Interfaces (API’s) Integration of industrial control components OPC-based devices
8
28 July 2000Alessandro RISSO The PS/SL Middleware Project Functionality Version 1.0 (December 2000) Set/Get of device properties blocking & nonblocking; on cycle event Monitoring of device properties Publish/subscribe on value change; on cycle event Directory Service Lookup of device servers locations, etc. Security/Access Control & Reservation Facility Programming environment: Support for Object-Oriented software Java and C/C++ Application Programming Interfaces (APIs) Integration of industrial control components OPC-based devices
9
28 July 2000Alessandro RISSO The PS/SL Middleware Project Further Requirements Reliability, scalability, performance Availability on Multi-Platform Support & tools for maintenance Approach Adopt open standards Minimize in-house development Use commercial middleware products Isolate commercial products from our applications => technology independent APIs
10
28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description Functionality Technology Architecture and APIs Milestones
11
Chosen Technology CORBA for Set/Get “Object-Oriented RPC” Available on multiple platforms & languages MoM for Publish/Subscribe Support for the Java Message Service (JMS) API Publication of data to a “topic” CORBA MoM Technical Details on MW Whitepaper
12
28 July 2000Alessandro RISSO The PS/SL Middleware Project Evaluated Products CORBA HARDPack (Lockheed Martin/USA) omniORB2 (AT&T/UK) ORBexpress (OIS/USA) ORBacus (OOC/USA) MoM IBUS (SoftWired/CH) SmartSockets (Talarian/USA) SonicMQ (Progress Software/USA)
13
28 July 2000Alessandro RISSO The PS/SL Middleware Project CORBA Evaluation Performance & Scalability Interoperability Java/C++ clients connected to Java/C++ servers Different products deployed on different platforms Java Client LINUX C++ Server LynxOS
14
28 July 2000Alessandro RISSO The PS/SL Middleware Project MoM Evaluation Four major test cases have been defined Latency by message size Latency with multiple subscribers Latency with message filtering Throughput Tested JMS API compatibility on different products Tests run under LINUX & NT Product fine tuning, license policy, pricing with MoM companies
15
28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description Functionality Technology Architecture and APIs Milestones
16
CDEV APISL Beans APIOther MW Integration Layer MoM Subscriber Abstr.ORB Abstraction Layer MoM Communication MoM Publisher Abstr. CORBA Communication ORB Abstraction Layer Device Server Framework Other GM Library PS GTW SL-Equip SL GTW OPC Client OPC GTW
17
Client Program Device Server Corba Communication MoM Communication Corba Communication Corba to MoM Gateway 2-Tier Architecture Publish for Lynx
18
2-Tier Architecture Client Program Device Server Corba Communication Corba to MoM Gateway Corba Communication MoM Communication
19
Application Server, Virtual Devices Device Server Corba Communication Corba to MoM Gateway Corba Communication GUI Program Corba Communication MoM Communication 3-Tier Architecture
20
CDEV APISL Beans APIOther MW Integration Layer MoM Subscriber Abstr.ORB Abstraction Layer MoM Communication MoM Publisher Abstr. CORBA Communication ORB Abstraction Layer Device Server Framework Other GM Library PS GTW SL-Equip SL GTW OPC Client OPC GTW CORBA N.Trofimov MOM F.Chevrier F.Calderini M.V.Eynden INTEGRATION LAYER V.Baggiolini SERVER FRAMEWORK A.Risso S.Jensen CONFIG.SERVICES K.Kostro
21
28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description Functionality Technology Architecture and Client, Server & Config. APIs Milestones
22
28 July 2000Alessandro RISSO The PS/SL Middleware Project Client & Server API for MW V.1 Java Client API Available on all platforms supporting a JVM 1.2.x C/C++ Server API Available on LynxOS only APIs Available in Future C/C++ Client API, Java Server API and “Windows” API Extended Pub/Sub functionality for non Device-Oriented systems
23
28 July 2000Alessandro RISSO The PS/SL Middleware Project Java Client API Classes (DRAFT) One generic RemoteDevice class (Proxy) one instance per device set/get, monitorOn/Off methods A few additional classes and interfaces CycleSelector, Filter, ReplyListener Exceptions RemoteDevice Constructors RemoteDevice(String DeviceName); RemoteDevice(String DeviceClassName, String DeviceName);
24
28 July 2000Alessandro RISSO The PS/SL Middleware Project Set/Get Methods (DRAFT) Synchronous (“blocking”) get/set int getInt(String propName); void setInt(String propName, int value); Asynchronous (“non-blocking”) get/set void getInt(String propName,ReplyListener rl) Cycle-dependent, asynchronous get/set void getInt(String propName, CycleSelector sel,ReplyListener rl); Filtered, cycle-dependent, asynchronous get/set void getInt(String propName, CycleSelector sel,Filter f, ReplyListener rl); CLIENT API
25
28 July 2000Alessandro RISSO The PS/SL Middleware Project MonitorOn/Off Methods (DRAFT) Monitor a property on-change: MonToken monitorOn(String propName, monListener l); void monitorOff(MonToken mt); Monitor a property with CycleSelector: MonToken monitorOn(String propName, CycleSelector cs, monListener l); CLIENT API
26
28 July 2000Alessandro RISSO The PS/SL Middleware Project Type-specific, overloaded methods (DRAFT) In RemoteDevice class: One group of methods per primitive type setInt() setLong() setFloat() setDouble() setByte() setChar() setBoolean() One group of methods for Object types setObject() can be used for anything, including Arrays and Data/DataEntry Complex data types are passed with setObject() they are extracted and packed into Data/Data-Entry using Reflection
27
28 July 2000Alessandro RISSO The PS/SL Middleware Project Active & Passive Devices Active Devices publish data spontaneously e.g. OPC Server publishes data to an OPC Client Passive Devices need to be polled e.g. EM Property values stored in a Data Table are polled via the GM library SERVER SIDE
28
Get Set PollActive Device Listener MonitorOn Active Device Subscriber Any Polling Mechanism GET SETMonitorON-OFFLISTENERS Polling Engine Forwarding Engine Subscriptions Device Server Subscription Manager Server Framework Adapter
29
28 July 2000Alessandro RISSO The PS/SL Middleware Project IOPoint Definition Device ClassPOWER Device Instancepow.xyz-123 PropertyACQ Cycle Selector /SEQUENCE/CYCLE/…/…
30
28 July 2000Alessandro RISSO The PS/SL Middleware Project C++ Server API Classes One generic DeviceServer class Singleton in V.1 (a single instance for all served devices) set/get, monitorOn/Off methods A few additional Classes & Helper Methods IOPoint, CycleSelector, Filter, Data,... getDeviceName, getDeviceClass etc. for IOPoint getInteger, setInteger, etc. for Data/DataEntry Exceptions Interfaces for devices control C++ API during the prototyping phase C API expected by the end of the year
31
28 July 2000Alessandro RISSO The PS/SL Middleware Project Get/Set Interfaces (DRAFT) set (IOPoint iop, Data value, CycleSelector sel) get (IOPoint iop, Data value, CycleSelector sel) get (IOPoint iop, Data value, CycleSelector sel, Filter f) One can implement only the interfaces supported by the device SERVER API
32
28 July 2000Alessandro RISSO The PS/SL Middleware Project Polling Engine & Interfaces (Passive Device Only - DRAFT) Polling Engine & Interfaces Poller getPoller (IOPoint iop) void run() void stop() Boolean isRunning() Polling Interface void poll(IOPoint iop, Data value, ValueQualifier vq) ValueQualifer signals that the value changed, unchanged, or ask to use the default comparison algorithm SERVER API
33
28 July 2000Alessandro RISSO The PS/SL Middleware Project Server Framework Poll Method (Passive Device Only - DRAFT) Server Framework Poll Method (Passive Device Only - DRAFT) poll() It is called by the Poller upon reception of an event It walks through the his subscription list and, for each entry, it executes the implementation of the poll(IOPoint iop, Data value,…) interface It then validates and pushes the operation results to the listeners We will provide some common polling engine implementations: e.g. Periodic poller, PLS poller SERVER API
34
28 July 2000Alessandro RISSO The PS/SL Middleware Project MonitorOn / Off Interfaces & Push Method (Active Devices Only - DRAFT) Device Adapter (Subscriber) monitorOn(IOPoint iop) It executes the device specific subscription & activates the listener monitorOff(IOPoint iop) It executes the device specific unsubscribe Active Device Listener (Publisher) push(IOPoint iop, Data value, ValueQualifier vq) SERVER API
35
28 July 2000Alessandro RISSO The PS/SL Middleware Project API for MW Configuration Main Functionality Resolve MW Server name based on Device name Server Configuration Framework (General) Device Adapter (Specific) Corba & MoM use their own address resolution and repository Naming Service for CORBA Topic management via JNDI (Java Naming & Directory Interface) for MoM
36
28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description Functionality Technology Architecture and APIs Milestones
37
28 July 2000Alessandro RISSO The PS/SL Middleware Project Important Milestones End of Summer 00: Running Prototype API’s and Architecture defined and implemented Most of Version 1.0 functionality Deployed in a testbed Simulated devices End of 2000: Middleware V1.0 Full Version 1.0 functionality Operational version Devices fully integrated
38
28 July 2000Alessandro RISSO The PS/SL Middleware Project Documentation http://proj-cmw.web.cern.ch/proj-cmw/ Workshop on existing MW technologies User Requirement Document The technology and techniques for the PS/SL Middleware – White Paper – This presentation
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.