1 / 38

The PS/SL Middleware Project

The PS/SL Middleware Project. Outline. What is Middleware ? Project Overview Technical description Functionality Technology Architecture and APIs Milestones. The PS/SL Middleware Project. Mandate Launched in early 1999 to provide communication infrastructure for existing accelerators

Download Presentation

The PS/SL Middleware Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The PS/SL Middleware Project

  2. Outline • What is Middleware ? • Project Overview • Technical description • Functionality • Technology • Architecture and APIs • Milestones Alessandro RISSO The PS/SL Middleware Project

  3. 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 Alessandro RISSO The PS/SL Middleware Project

  4. 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 Alessandro RISSO The PS/SL Middleware Project

  5. 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 Alessandro RISSO The PS/SL Middleware Project

  6. Outline • What is Middleware ? • Project Overview • Technical description • Functionality • Technology • Architecture and APIs • Milestones Alessandro RISSO The PS/SL Middleware Project

  7. 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 Alessandro RISSO The PS/SL Middleware Project

  8. 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 Alessandro RISSO The PS/SL Middleware Project

  9. 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 Alessandro RISSO The PS/SL Middleware Project

  10. Outline • What is Middleware ? • Project Overview • Technical description • Functionality • Technology • Architecture and APIs • Milestones Alessandro RISSO The PS/SL Middleware Project

  11. 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” Chosen Technology MoM CORBA Technical Details on MW Whitepaper

  12. 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) Alessandro RISSO The PS/SL Middleware Project

  13. 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 Alessandro RISSO The PS/SL Middleware Project

  14. 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 Alessandro RISSO The PS/SL Middleware Project

  15. Outline • What is Middleware ? • Project Overview • Technical description • Functionality • Technology • Architecture and APIs • Milestones Alessandro RISSO The PS/SL Middleware Project

  16. CDEV API SL Beans API Other MW Integration Layer ORB Abstraction Layer MoM Subscriber Abstr. CORBA Communication MoM Communication ORB Abstraction Layer MoM Publisher Abstr. Device Server Framework PS GTW SL GTW OPC GTW Other GM Library SL-Equip OPC Client

  17. Client Program MoM Communication 2-Tier Architecture  Corba to MoM Gateway Publish for Lynx Corba Communication Corba Communication Device Server

  18. Client Program MoM Communication 2-Tier Architecture Corba to MoM Gateway Corba Communication Corba Communication Device Server

  19. GUI Program Corba Communication MoM Communication Application Server, Virtual Devices 3-Tier Architecture MoM Communication Corba to MoM Gateway Corba Communication Corba Communication Device Server

  20. INTEGRATION LAYER V.Baggiolini CDEV API SL Beans API Other MW Integration Layer CORBA N.Trofimov MOM F.Chevrier F.Calderini M.V.Eynden ORB Abstraction Layer MoM Subscriber Abstr. CORBA Communication MoM Communication SERVER FRAMEWORK A.Risso S.Jensen CONFIG.SERVICES K.Kostro ORB Abstraction Layer MoM Publisher Abstr. Device Server Framework PS GTW SL GTW OPC GTW Other GM Library SL-Equip OPC Client

  21. Outline • What is Middleware ? • Project Overview • Technical description • Functionality • Technology • Architecture and Client, Server & Config. APIs • Milestones Alessandro RISSO The PS/SL Middleware Project

  22. Client & Server APIfor 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 Alessandro RISSO The PS/SL Middleware Project

  23. 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); Alessandro RISSO The PS/SL Middleware Project

  24. Set/Get Methods(DRAFT) CLIENT API • 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); Alessandro RISSO The PS/SL Middleware Project

  25. MonitorOn/Off Methods(DRAFT) CLIENT API • 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); Alessandro RISSO The PS/SL Middleware Project

  26. 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 Alessandro RISSO The PS/SL Middleware Project

  27. Active & Passive Devices SERVER SIDE • 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 Alessandro RISSO The PS/SL Middleware Project

  28. GET SET MonitorON-OFF LISTENERS Device Server Subscription Manager Server Framework Subscriptions Polling Engine Forwarding Engine Get Set Poll Any Polling Mechanism MonitorOn Active Device Subscriber Active Device Listener Adapter

  29. IOPoint Definition • Device Class POWER • Device Instance pow.xyz-123 • Property ACQ • Cycle Selector /SEQUENCE/CYCLE/…/… Alessandro RISSO The PS/SL Middleware Project

  30. 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 Alessandro RISSO The PS/SL Middleware Project

  31. Get/Set Interfaces(DRAFT) SERVER API • 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 Alessandro RISSO The PS/SL Middleware Project

  32. Polling Engine & Interfaces(Passive Device Only - DRAFT) SERVER API • 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 Alessandro RISSO The PS/SL Middleware Project

  33. Server Framework Poll Method(Passive Device Only - DRAFT) SERVER API • 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 Alessandro RISSO The PS/SL Middleware Project

  34. MonitorOn / Off Interfaces & Push Method(Active Devices Only - DRAFT) SERVER API • 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) Alessandro RISSO The PS/SL Middleware Project

  35. 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 Alessandro RISSO The PS/SL Middleware Project

  36. Outline • What is Middleware ? • Project Overview • Technical description • Functionality • Technology • Architecture and APIs • Milestones Alessandro RISSO The PS/SL Middleware Project

  37. 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 Alessandro RISSO The PS/SL Middleware Project

  38. 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 Alessandro RISSO The PS/SL Middleware Project

More Related