Download presentation
Presentation is loading. Please wait.
1
Wojciech Sliwinski Wojciech.Sliwinski@cern.ch Beams Department, Controls Group CERN
2
Outline Defining Middleware Types of Middleware CERN Acc. Controls Messaging Infrastructure Middleware Review for CERN Acc. Controls Conclusions 2Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
3
Outline Defining Middleware Types of Middleware CERN Acc. Controls Messaging Infrastructure Middleware Review for CERN Acc. Controls Conclusions 3Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
4
Why Middleware? How do we build/connect applications over a network? How do we facilitate Distributed Computing (2-tier, …, n-tier)? How to support the heterogeneous environments? 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...4
5
What is Middleware? Software, which allows an application to interoperate with other software, without requiring the user to understand and to code the low-level operations required to achieve interoperability Software layer between OS and the applications Hides complexity & heterogenity of distributed system Handles issues related to OS, Network Protocols & hardware platforms 5 Application Operating System1 Communication system MW Application Operating System2 MW Application Operating SystemN MW Standard API Specific API Standard API Specific API 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
6
Introduction to Middleware Middleware provides support for: Naming, Location, Service discovery, Replication Protocol handling, Communication faults, QoS Synchronisation, Concurrency, Failover, Scalability Access control, Authentication Middleware dimensions: Request-Reply vs.Asynchronous Messaging Language-specific vs. Language-independent Proprietary vs. Standards-based Small-scale vs. Large-scale Tightly-coupled vs. Loosely-coupled components Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...6 Middleware is everywhere. You might think you can leave it but it just finds you again :-) 26th October 2011
7
Outline Defining Middleware Types of Middleware CERN Acc. Controls Messaging Infrastructure Middleware Review for CERN Acc. Controls Conclusions 7Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
8
Middleware – large domain … which to choose? 8Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 direct p2p broker req/reppub/sub rpc/orbmessage LAN WAN/ Internet NetworkEmbedded
9
Types of Middleware Remote Procedure Call (RPC) Object-Oriented Middleware (OOM) Message-Oriented Middleware (MOM) Event-Based Middleware a.k.a Publish-Subscribe 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...9
10
Remote Procedure Call - RPC Masks remote function calls as being local Client-Server model with Request-Reply paradigm Synchronous communication Marshalling of function parameters and return value Provides Location & Platform transparency Technologies: DCE-RPC XML-RPC 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...10 Client App. IDL Stub Network Server App. IDL Skeleton Network Req/Reply
11
RPC - Disadvantages Synchronous Request-Reply interaction Tight coupling between client and server Client may block for a long time if server loaded ○ Multi-threaded programming at client Slow/failed clients may delay servers when replying ○ Multi-threaded programming at servers RPC paradigm is not object-oriented Invoke functions on servers as opposed to methods on objects 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...11
12
Object-Oriented Middleware - OOM Client-Server model with Request-Reply paradigm Synchronous communication Marshalling of function parameters and return value Provides Location & Platform transparency Objects can be local or remote Remote objects accesible via proxy objects Technologies: OMG CORBA MS DCOM Java RMI SOAP 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...12 Client App. IDL Stub IIOP Client ORB Server App. IDL Skeleton IIOP Server ORB POA Adapter Req/Reply
13
Object-Oriented MW - Disadvantages Synchronous Request-Reply interaction Tight coupling between client and server Client may block for a long time if server loaded ○ Multi-threaded programming at client Slow/failed clients may delay servers when replying ○ Multi-threaded programming at servers Distributed garbage collection Releasing memory for unused remote objects Error-prone and difficult to debug Static mappings and heavy-weight development Difficult to extend an operational system 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...13
14
Message-Oriented Middleware - MOM Data exchange via Messages & Message Queues Asynchronous communication (Point-to-point One-to-One) Client and Server are loosely coupled Message Servers may do filtering, transforming, logging… Technologies: IBM WebSphereMQ, TIBCO Rendez-vous, JMS, SOAP 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...14 Client App. local message queues Server App. local message queues message queues Network Message Servers
15
Message-Oriented MW - Disadvantages Poor programming abstraction (but has evolved) Rather low-level Request-Reply more difficult to achieve, but can be done Message formats originally unknown to middleware No type checking (solved in JMS) Queue abstraction only gives One-to-One communication Limits scalability (solved in JMS with Publish-Subscribe) 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...15
16
What we lack, so far General interaction patterns We have Request-Reply and One-to-One Publish-Subscribe? One-to-Many? Many-to-Many? Dynamic joining and leaving? Location transparency Anonymity of communicating entities 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...16
17
Event-Based Middleware a.k.a Publish-Subscribe Publishers (advertise and) publish Events (Messages) Subscribers express interest in Events with Subscriptions Event Service notifies interested Subscribers of published Events Events can have arbitrary content (typed) Technologies (Brokers): JMS (ActiveMQ, RabbitMQ), AMQP (…) 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...17 Publisher1 Event Service (Broker) PublisherN … Publisher2 topics publish Subscriber1 SubscriberN … Subscriber2 subscribe notify subscribe notify subscribe notify
18
Properties of Publish-Subscribe Asynchronous communication Publishers and Subscribers are loosely coupled Many-to-Many interaction between Pubs and Subs Scalable scheme for large-scale systems Publishers do not need to know Subscribers, and vice-versa Dynamic join and leave of Pubs & Subs (thanks to Brokers) Topic based Publish-Subscribe very expressive Filtered information delivered only to interested parties 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...18
19
Outline Defining Middleware Types of Middleware CERN Acc. Controls Messaging Infrastructure CERN Acc. Controls Middleware Review Conclusions 19Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
20
CERN Controls Middleware – in all SW tiers… 20 CMW client (C++/Java) GUIs, LabView, RADE CMW client (Java servers) Logging, LSA, InCA, SIS CMW server (C++/Java) Proxy, DIP, AlarmMon, AQ CMW server (C++) FESA, FGC, GM CMW server (C++) PVSS (Cryo, Vacuum) JMS client (Java) GUIs JMS client (Java) Servers: Logging, InCA, SIS Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
21
JMS for Accelerator Controls Java Messaging Service Purpose Reliable transport of data between Java Processes Controls ○ Alarm System ○ Data Rendering Services ○ (Control) GUIs ○ Logging Services ○ Beam Security System(s) No JMS - No Beam ! 26th October 201121Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
22
JMS for Accelerator Controls Devices / Hardware JMS C/C++ Process JAVA Process JAPC CMW JMS Front End GUI Process JAPC CMW JMS CMW ~50 Processes~100 Processes ~46K Subscriptions 280 Connections 4000 servers @ 1700 machines 26th October 201122Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
23
Examples of JMS ”aware” systems 26th October 201123Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
24
History of JMS in Accelerator Controls Usage of SonicMQ JMS for LHC Alarm System since 2001 ActiveMQ introduced in 2005 Other project started to use JMS service Today vital part of Beam Operations 26th October 201124Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
25
Technical Aspects Broker Configuration Non-persistent messages on topics No subscription recovery policy No durable subscribers No exclusive consumers No replyTo mechanism Broker is persistent Clients Pure JAVA - Wireformat Protocol 26th October 201125Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
26
General JMS Deployment Situation SonicMQ : 12 Brokers TIM, LASER, DIAMON Always as two node cluster ActiveMQ : 16 Brokers One main default Broker Service Otherwise project dedicated Brokers All Brokers on Technical Network 26th October 201126Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
27
Overall Broker Service Jan 2011 26th October 201127Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
28
JMS Service Data Handling Central JMS Service (276 days in 2010) 58 Million msg / day 120 TB IN 650 TB OUT Additional handling of Heavy Connection and Subscription handling Bursts loads Connected subscribers grew from 2K to 12K in 6 months => 440 GB /day => 2.5 TB /day YES, ActiveMQ can! 26th October 201128Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
29
Data Handling during LHC startup 2010 Total Data Out Increase in data demand 2.57 TB/day 1TB/day LHC startup 26th October 201129Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
30
JMS Service Availability 2010* * November 2010 26th October 201130Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
31
Monitoring and Troubleshooting Tools DIAMON & Lemon JConsole / JVisualVM Dump of broker information to SQLite DB Traffic Monitoring Tool Various Message Listeners 26th October 201131Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
32
Easy Identification of Bad Producers Fixed Problematic Producer 26th October 201132Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
33
JMS Service – Lessons Learnt ActiveMQ was a good choice Running reliably Performs well Provides many metrics for diagnostic and monitoring Good integration in BE-CO monitoring tools via JMX Projects are not always aware of sending so much data Service Level Agreements with projects required More analyzing tools for end users required 26th October 201133Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
34
JMS Service – Lessons Learnt Monitoring is a vital part of operations Message reception speed test Memory Percent usage JMX attributes (#topics, #consumers, #subscriptions) Broker Configuration is not always obvious 26th October 201134Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
35
JMS Service – Lessons Learnt Clustering Good for failover and load balancing Additional complexity Updating clients for new cluster members ○ Automatic rebalancing of clients Memory is important Tuning of Java GC options 26th October 201135Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...
36
Outline Defining Middleware Types of Middleware CERN Acc. Controls Messaging Infrastructure CERN Acc. Controls Middleware Review Conclusions 36Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
37
Hardware Devices GUI operator consoles Front ends “virtual devices” CERN Controls Middleware – CMW 37Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Controls Middleware Embedded Middleware
38
CMW Mandate & Scope Standard set of MW solutions & libraries Centrally managed services Track & optimize runtime parameters Scope: CERN Accelerator Complex Operational 24*7*365 Must be Reliable & High Quality ~80’000 HW devices, ~4’000 servers ~1700 machines, ~2’000’000 IO points Huge infrastructure! 38Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
39
CMW Data Flow 39Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
40
Linux/Windows CERN Controls Middleware 40Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 C++/Java process Controls Middleware API TCP/IP CORBA Controls Middleware RT Linux/LynxOS C++ process Controls Middleware API CORBA Problems: - C++ and Java implementations differ - Heavy in memory usage - Complex error prone API - No direct support for pub/sub - Blocking issues (JacORB) - Shrinking community - Lack of new releases and bug fixes Long LHC shutdown at the end of 2012 A unique possibility! Instead of patching let’s provide a new one!
41
CERN Middleware Requirements 41Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Desirable Mandatory Fundamental Lightweight Active community Friendly API, documentation Request/reply & pub/sub patterns Open source, redistributable license QoS Stability, Maturity & Longevity Performance & Scalability Asynchronous C++/Java Linux/Windows Over TCP/IP LAN
42
How did we evaluate –> our criteria 42Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 CRITERIA QoS resources, binary size, memory performance Communications patterns API, look & feel, documentation Community, maturity Appearance Creators specification documentation Users forums bug reports Internet Simple usage Download licensing Compile Linux LynxOS Run examples Testing Communication patterns Performance QoS Exceptional situations
43
Surprising how many great new products! 43Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 BSD sockets RPC CORBA ??? 20111969 ARPANET TODAY 1974 TCP 1998 IP v6 1980 UDP 1981 IP v4 1983 1991 2011
44
Evaluated middleware products 44Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Ice Thrift omniORB YAMI OpenSpliceDDS OpenAMQ CoreDX RTI DDS ZeroMQ QPid MQtt RSMB JacORB Mosquito All opinions are based only on our knowledge and evaluation. Each of the products, depending on the requirements, may constitute a good solution. RabbitMQ
45
CORBA (omniORB, JacORB) 45Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Object-oriented communication platform standardized by OMG. It is over 20 years old, and the standard is well established but... Complex, hard to learn and use Differences between implementations Big memory footprint Shrinking community Seldom updates and bug fixes Complex Heavy Shrinking community Dying out
46
Object-oriented middleware by ZeroC, people who left CORBA to fix its problems. Conceptually similar to CORBA but... Better design and implementation Modern easier to use API and IDL mapping Concise C++ and Java implementation Support for versioning Active community Ice 46Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Well designed Active community
47
Thrift 47Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Middleware by Facebook (moved to Apache) Lightweight, free of unnecessary dependencies Modern, clean API Active community Ongoing development, still incomplete No documentation, empty tutorial Poor documentation Work still in progress
48
Message-oriented middleware developed by one of our former colleagues. Used by some CERN Controls services. Lightweight, free of unnecessary dependencies Well designed, modern API Asynchronous req/rep and pub/sub patterns Dynamic type specification (paid in performance) Small community YAMI4 48Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Lightweight Well designed Small community
49
Middleware where messages are distributed by a broker. A few independent implementations of the broker and clients. Big community Designed to support pub/sub Protocol standard issues Broker – single point of failure Broker – additional hop, slower communication Broker – additional, non compliant monitoring tools AMQP – OpenAMQ, Qpid, RabbitMQ 49Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Slower for req/rep Broker issues Active community
50
Data-oriented middleware with p2p communication. Standard defined by OMG, with a few compatible implementations. Big industrial and military community Possible compatibility with CORBA Designed to support pub/sub Req/rep possible but needs 2 channels Steep learning curve Complex API DDS – RTI, CoreDX, OpenSplice 50Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Heavy Complex Big industry presence
51
Message-oriented middleware by iMatix (they dropped OpenAMQ.) API resembles BSD sockets but it is so much more. Simple yet powerful API Support for in-proc, inter-proc, TCP, PGM Lightweight, free of unnecessary dependencies Many communication patterns May be used as a concurrency framework Active community ZeroMQ 51Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Lightweight Well designed Active community
52
Performance requirements reviewed 52Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Instead of estimating We asked our users what they will need Gathered statistics from the current system Most demanding users identified Definition of a few performance tests
53
C++ server with client in: Performance tests, reliable Request-Reply 53Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 4000 msg/sec Payload = 4B 5 msg/sec Payload = 10MB Many small messages A few big messages
54
Performance/Scalability tests, reliable Pub-Sub 54Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 400 msg x 8 B 10 clients, <50ms 30 msg x 8 B 10 clients, <20ms ThroughputLatency
55
Products comparison (according to the criteria) 55Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011 Sync, async & msg patterns QoS Dependencies & memory f-p Performance Look & feel, API, docs Community & maturity Score ZeroMQ 6 Ice 5 YAMI4 4 RTI 3 Qpid 3 CORBA 2 Thrift 2
56
Middleware Review Summary Several good middleware solutions available. The choice is dictated by the most critical requirements for any given application. Not easy QoS policies and performance matter, but also ease of use, community, … 56 Concerning CERN Controls Middleware… Prototype with the most promising candidates: Deploy the new middleware before the long accelerator shutdown at the end of 2012 ZeroMQ Ice YAMI Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...26th October 2011
57
Conclusions Middleware is an important abstraction for building the distributed systems Synchronous vs. asynchronous communication One-to-one vs. many-to-many communication Better performance with direct communication Better scalability and less coupling with Brokers System requirements Messaging patterns to apply 26th October 2011Wojciech Sliwinski: The Role of Messaging Solutions in Complex Systems...57
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.