Скачать презентацию The PS SL Middleware Project Outline l What Скачать презентацию The PS SL Middleware Project Outline l What

cd81d8943c253e609a832f35be19937d.ppt

  • Количество слайдов: 38

The PS/SL Middleware Project The PS/SL Middleware Project

Outline l What is Middleware ? l Project Overview l Technical description • Functionality Outline l What is Middleware ? l Project Overview l Technical description • Functionality • Technology • Architecture and APIs l Milestones 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

The PS/SL Middleware Project l l Mandate • Launched in early 1999 to provide The PS/SL Middleware Project l l Mandate • Launched in early 1999 to provide communication infrastructure for existing accelerators Members • PS/CO: Steen Jensen, Alessandro Risso, Trofimov • SL/CO: Vito Baggiolini, Francois Chevrier, Francesco Calderini, Kris Kostro, Marc Vanden Eynden 28 July 2000 Alessandro RISSO Nikolai The PS/SL Middleware Project

What is Middleware ? l Middleware definition • • l l “communication glue between What is Middleware ? l Middleware definition • • l l “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 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Project Overview l l l March 1999 • Workshop on MW technologies August 1999 Project Overview l l l 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 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Outline l What is Middleware ? l Project Overview l Technical description • Functionality Outline l What is Middleware ? l Project Overview l Technical description • Functionality • Technology • Architecture and APIs l Milestones 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Functional Requirements l Set/Get of device properties • blocking & non-blocking; on cycle event Functional Requirements l Set/Get of device properties • blocking & non-blocking; on cycle event l Monitoring of device properties • Publish/subscribe on value change; on cycle event l Directory Service • Lookup of device servers locations, configuration, etc. Security/Access Control & Reservation Facility l Programming environment: l • Support for Object-Oriented software • Java and C/C++ Application Programming Interfaces (API’s) l Integration of industrial control components • OPC-based devices 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Functionality Version 1. 0 (December 2000) l Set/Get of device properties • blocking & Functionality Version 1. 0 (December 2000) l Set/Get of device properties • blocking & nonblocking; on cycle event l Monitoring of device properties • Publish/subscribe on value change; on cycle event l Directory Service • Lookup of device servers locations, etc. Security/Access Control & Reservation Facility l Programming environment: l • Support for Object-Oriented software • Java and C/C++ Application Programming Interfaces (APIs) l Integration of industrial control components • OPC-based devices 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Further Requirements Reliability, scalability, performance l Availability on Multi-Platform l Support & tools for Further Requirements Reliability, scalability, performance l Availability on Multi-Platform l Support & tools for maintenance l l Approach • • 28 July 2000 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

Outline l What is Middleware ? l Project Overview l Technical description • Functionality Outline l What is Middleware ? l Project Overview l Technical description • Functionality • Technology • Architecture and APIs l Milestones 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Chosen Technology l CORBA for Set/Get • • “Object-Oriented RPC” Available on multiple platforms Chosen Technology l CORBA for Set/Get • • “Object-Oriented RPC” Available on multiple platforms & languages CORBA l Mo. M for Publish/Subscribe • • Support for the Java Message Service (JMS) API Publication of data to a “topic” Mo. M Technical Details on MW Whitepaper

Evaluated Products l l CORBA • • HARDPack omni. ORB 2 ORBexpress ORBacus (Lockheed Evaluated Products l l CORBA • • HARDPack omni. ORB 2 ORBexpress ORBacus (Lockheed Martin/USA) (AT&T/UK) (OIS/USA) (OOC/USA) Mo. M • • • 28 July 2000 IBUS Smart. Sockets Sonic. MQ (Soft. Wired/CH) (Talarian/USA) (Progress Software/USA) Alessandro RISSO The PS/SL Middleware Project

CORBA Evaluation l Performance & Scalability l Interoperability • Java/C++ clients connected to Java/C++ CORBA Evaluation l Performance & Scalability l Interoperability • Java/C++ clients connected to Java/C++ servers • Different products deployed on different platforms Java Client LINUX 28 July 2000 C++ Server Lynx. OS Alessandro RISSO The PS/SL Middleware Project

Mo. M Evaluation l Four major test cases have been defined • • Latency Mo. M Evaluation l 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 l Tests run under LINUX & NT l l Product fine tuning, license policy, pricing with Mo. M companies 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Outline l What is Middleware ? l Project Overview l Technical description • Functionality Outline l What is Middleware ? l Project Overview l Technical description • Functionality • Technology • Architecture and APIs l Milestones 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

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

2 -Tier Architecture Client Program Mo. M Communication Corba to Mo. M Gateway Corba 2 -Tier Architecture Client Program Mo. M Communication Corba to Mo. M Gateway Corba Communication Device Server Publish for Lynx

2 -Tier Architecture Client Program Mo. M Communication Corba to Mo. M Gateway Corba 2 -Tier Architecture Client Program Mo. M Communication Corba to Mo. M Gateway Corba Communication Device Server

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

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

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

Client & Server API for MW V. 1 l l l Java Client API Client & Server API for MW V. 1 l l l Java Client API • Available on all platforms supporting a JVM 1. 2. x C/C++ Server API • Available on Lynx. OS only APIs Available in Future • • C/C++ Client API, Java Server API and “Windows” API Extended Pub/Sub functionality for non Device-Oriented systems 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Java Client API Classes (DRAFT) l l l One generic Remote. Device class (Proxy) Java Client API Classes (DRAFT) l l l One generic Remote. Device class (Proxy) • • one instance per device set/get, monitor. On/Off methods A few additional classes and interfaces • Cycle. Selector, • Exceptions Filter, Reply. Listener Remote. Device Constructors • Remote. Device(String Device. Name); Device. Class. Name, String Device. Name); 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

(DRAFT) l l Synchronous (“blocking”) get/set • int • void get. Int(String prop. Name); (DRAFT) l l Synchronous (“blocking”) get/set • int • void get. Int(String prop. Name); set. Int(String prop. Name, int value); CLIENT API Set/Get Methods Asynchronous (“non-blocking”) get/set • void get. Int(String prop. Name, Reply. Listener rl) Cycle-dependent, asynchronous get/set • void get. Int(String prop. Name, Cycle. Selector sel, Reply. Listener rl); Filtered, cycle-dependent, asynchronous get/set • void get. Int(String prop. Name, Cycle. Selector sel, Filter f, Reply. Listener rl); 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

(DRAFT) l Monitor a property on-change: • Mon. Token monitor. On(String prop. Name, mon. (DRAFT) l Monitor a property on-change: • Mon. Token monitor. On(String prop. Name, mon. Listener l); • void monitor. Off(Mon. Token mt); l Monitor a property with Cycle. Selector: • Mon. Token 28 July 2000 monitor. On(String prop. Name, Cycle. Selector cs, mon. Listener l); Alessandro RISSO The PS/SL Middleware Project CLIENT API Monitor. On/Off Methods

Type-specific, overloaded methods (DRAFT) In Remote. Device class: l One group of methods per Type-specific, overloaded methods (DRAFT) In Remote. Device class: l One group of methods per primitive type • set. Int() set. Long() set. Float() set. Double() set. Byte() set. Char() set. Boolean() l One group of methods for Object types • set. Object() can be used for anything, including Arrays and Data/Data. Entry l Complex data types are passed with set. Object() • they are extracted and packed into Data/Data-Entry using Reflection 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

l Active • Devices publish data spontaneously e. g. OPC Server publishes data to l Active • Devices publish data spontaneously e. g. OPC Server publishes data to an OPC Client l Passive • Devices need to be polled e. g. EM Property values stored in a Data Table are polled via the GM library 28 July 2000 Alessandro RISSO The PS/SL Middleware Project SERVER SIDE Active & Passive Devices

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

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

C++ Server API Classes l l One generic Device. Server class • • A C++ Server API Classes l l One generic Device. Server class • • A few additional Classes & Helper Methods • IOPoint, • l Singleton in V. 1 (a single instance for all served devices) set/get, monitor. On/Off methods Cycle. Selector, Filter, Data, . . . • get. Device. Name, get. Device. Class etc. for IOPoint • get. Integer, set. Integer, etc. for Data/Data. Entry Exceptions Interfaces for devices control • • C++ API during the prototyping phase C API expected by the end of the year 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

(DRAFT) set (IOPoint iop, Data value, Cycle. Selector sel) l get (IOPoint iop, Data (DRAFT) set (IOPoint iop, Data value, Cycle. Selector sel) l get (IOPoint iop, Data value, Cycle. Selector sel, Filter f) l l One can implement only the interfaces supported by the device 28 July 2000 Alessandro RISSO The PS/SL Middleware Project SERVER API Get/Set Interfaces

(Passive Device Only - DRAFT) l l Polling Engine & Interfaces • Poller get. (Passive Device Only - DRAFT) l l Polling Engine & Interfaces • Poller get. Poller (IOPoint • void run() • void stop() • Boolean is. Running() iop) Polling Interface • void poll(IOPoint iop, Data value, Value. Qualifier vq) • Value. Qualifer signals that the value changed, unchanged, or ask to use the default comparison algorithm 28 July 2000 Alessandro RISSO The PS/SL Middleware Project SERVER API Polling Engine & Interfaces

(Passive Device Only - DRAFT) l poll() • • • l It is called (Passive Device Only - DRAFT) l poll() • • • l 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 28 July 2000 Alessandro RISSO The PS/SL Middleware Project SERVER API Server Framework Poll Method

(Active Devices Only - DRAFT) l Device Adapter (Subscriber) • monitor. On(IOPoint iop) • (Active Devices Only - DRAFT) l Device Adapter (Subscriber) • monitor. On(IOPoint iop) • It executes the device specific subscription & activates the listener • monitor. Off(IOPoint iop) • It executes the device specific unsubscribe l Active Device Listener (Publisher) • push(IOPoint iop, Data value, Value. Qualifier vq) 28 July 2000 Alessandro RISSO The PS/SL Middleware Project SERVER API Monitor. On / Off Interfaces & Push Method

API for MW Configuration l Main Functionality • • Resolve MW Server name based API for MW Configuration l Main Functionality • • Resolve MW Server name based on Device name Server Configuration • Framework (General) • Device Adapter (Specific) l Corba & Mo. M use their own resolution and repository • • 28 July 2000 address Naming Service for CORBA Topic management via JNDI (Java Naming & Directory Interface) for Mo. M Alessandro RISSO The PS/SL Middleware Project

Outline l What is Middleware ? l Project Overview l Technical description • Functionality Outline l What is Middleware ? l Project Overview l Technical description • Functionality • Technology • Architecture and APIs l Milestones 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Important Milestones • End of Summer 00: Running Prototype • API’s and Architecture defined 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 V 1. 0 • Full Version 1. 0 functionality • Operational version • Devices fully integrated 28 July 2000 Alessandro RISSO The PS/SL Middleware Project

Documentation l http: //proj-cmw. web. cern. ch/proj-cmw/ • Workshop on existing MW technologies • Documentation l 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 28 July 2000 Alessandro RISSO The PS/SL Middleware Project