Presentation is loading. Please wait.

Presentation is loading. Please wait.

The PS/SL Middleware Project. 28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description.

Similar presentations


Presentation on theme: "The PS/SL Middleware Project. 28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description."— Presentation transcript:

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


Download ppt "The PS/SL Middleware Project. 28 July 2000Alessandro RISSO The PS/SL Middleware Project Outline What is Middleware ? Project Overview Technical description."

Similar presentations


Ads by Google