Presentation on theme: "CMW CORBA-based Controls Middleware at CERN"— Presentation transcript:
1 CMW CORBA-based Controls Middleware at CERN CMW team, CERNKris Kostro, Nikolai Trofimov, Steen Jensen, Jens Andersson, Francesco Calderini, Vito Baggiolini, Francois Chevrier, Slawek Maludzinski
2 Layout CMW motivation Architecture Remote Device Access (RDA) CMW servers and clientsAdministration servicesNaming and configuration servicesCurrent statusExperience
3 Motivation for the new middleware Support for OO programming, in particular Java.Support for publish/subscribe paradigm and event-driven programmingSupport for industrial standards in controls (OPC, SCADA, Windows)New middleware for the LHC era
4 CMW Architecture Clients Servers CMW Infrastructure RDA, CORBA, JMS User writtenMiddlewareExisting or off-shelfJava ControlProgramsRAD programs(VB, Excel)C++ programsClientsMiddleware Client APIDevice/Property Model Topic ModelNamingServiceCMW InfrastructureRDA, CORBA, JMSConfigu-rationServiceServer Framework API (C++, Java)ServersVirtual Devices(Java, C++)NewServersSL-EquipServerPS-GMServerOPCGatewayPhysical Devices (RF, BT, BI, Powering)
5 Device ModelControl system consists of named devices (position monitor, beam line)Devices are composed of properties (position, current)Operations on properties set, get, subscribe, unsubscribeDevices are organized into device classes
6 RDA Remote Device Access RDA implements the device modelProperties are represented by name, the API is a narrow oneget() & set() operations implemented as blocking CORBA calls.Subscription updates implemented as CORBA callbacks in user code.Update operations implemented as one-way callsData objects similar to CDEV data
8 CMW serversCMW servers are normally written in C++ and run on LynxOS VME front-endsWindows servers for OPC, Linux for gatewaysServer framework to support polling and synchronize with timing systemThey are often generic servers configured from Oracle DB
17 System Administration (cont.) The CMW management console allows browsing the server namespace and displaying server stateThe general state of the server (OK, BAD, WARNING) is requested periodicallyMore details about server as well as server and client statistics can be obtained through separate methods.Servers can be shut-down or restarted remotely and log levels can be set.
19 Naming and configuration Device names are resolved to server names via CORBA directory server connected to Oracle databaseServer names are resolved to CORBA RDA DeviceServerBase objects via the OMG Naming Service (ORBacus Names)Servers register their names with Naming Service on startupServers can auto configure via a CORBA database server (no Oracle for LynxOS)
21 CMW current state All CERN equipment can be accessed via CMW Operational in PS since March 2002Naming and configuration services are operationalMain use is in Java, C++ client recently developedCurrently working on consolidation and improvements (version 2.0)
22 Supported platforms Java C++ Server framework supported on: Client and server API’sAdministration tools, CMW Explorer, directory and configuration servers are in JavaC++ Server framework supported on:PowerPC LynxOS 3.1.0Linux IntelWindows 2000C/C++ Client API on:Linux
23 Actual CORBA implementations In useORBacus OBE for C++LynxOS 3.1.0Linux (i686)ORBacus JOB 3.3.4, JOB 4.0.4Have also been usedOrbExpressOmniorb (not in CMW)
24 Experience with CORBA CORBA simplifies middleware development Fits well in OO developmentbut …Actual ORB implementations require several MB of memory. This restricts use of Middleware.Quality ORBs are rare birdsCan we stick with ORBacus?
25 Some hick-upsThe first “commercial” ORB which we acquired for LynxOS was unusableWe had to improve performance of subscription updates (batch update)Any is inefficient, we switched to use variants insteadStrategy to deal with “misbehaving” subscription clients: unreachable, slow etc.Mostly TCP, not CORBA phenomena
26 ReferencesThe Web page of the Controls Middleware project:K. Kostro, N Trofimov, V. Baggiolini, F. Calderini, F. Chevrier, S. Jensen, R. Swoboda “Controls Middleware - The New Generation”, EPAC 2002, Paris, 2-7 June 2002N. Trofimow, V. Baggiolini, S. Jensen, K. Kostro, F. Di Maio, A. Risso, “Remote Device Access in the New Accelerator Controls”, ICALEPCS ’01, San Jose, USA, Nov