1 / 27

JMS Service renovation towards LS2

This presentation provides an overview of the JMS service renovation towards LS2, discussing the issues, technical study, roadmap for 2019, and conclusions. It also compares ActiveMQ and ActiveMQ Artemis as potential solutions.

louisef
Download Presentation

JMS Service renovation towards LS2

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. JMS Service renovationtowards LS2 BE-CO TM, 13th December 2018 Konrad Kaczkowski Wojtek Sliwinski CMW team

  2. Agenda • JMS Service overview & status • Why renovate now? What are the issues? • JMS technical study: scope & results • Roadmap for 2019 • Conclusions JMS Service renovation towards LS2

  3. What is JMS? • JMS – Java Message Service (Sun Microsystems, 1998) • Loosely coupled, message oriented communication • API for sending messages between two or more Java clients • Main concepts: topics and queues • Does not specify the wire-level protocol (interoperability issue …) subscriber publisher subscriber producer consumer JMS Service renovation towards LS2

  4. CTRL CTRL JMS in the Control System Presentation Layer ETHERNET NETWORK Python C++ Java OPERATOR CONSOLES FIXED DISPLAYS OPERATOR CONSOLES JMS Controls Middleware (RDA), RMI, JMS JMS Purpose: Reliable and scalabletransport of data between Java processes TCP/IP communication services FILE SERVERS APPLICATION SERVERS SCADA SERVERS Business Layer CERN GIGABIT ETHERNET TECHNICAL NETWORK C++ Java TCP/IP communication services TIMING GENERATION Controls Middleware (RDA) Communication RT Lynx/OS VME Front Ends WORLDFIP Front Ends T T T T PLC TCP/IP communication services Front-End Layer C++ C++ T WorldFIP SEGMENT T T OPTICAL FIBERS T PROFIBUS FIP/IO T BEAM POSITION MONITORS, BEAM LOSS MONITORS, BEAM INTERLOCKS, RF SYSTEMS, ETC… QUENCH PROTECTION AGENTS, POWER CONVERTERS FUNCTIONS GENERATORS, … ACTUATORS AND SENSORS CRYOGENICS, VACUUM, ETC… Hardware Layer JMS Service renovation towards LS2

  5. JMS in the CMW System High Level Applications Experiments / Tech. Infra. Sequencer ATLAS CMS SIS LSA/InCA LHCb CMW Services & APIs PMA CESAR ALICE COMPASS … … OASIS REMUS High Level Applications JMS Gateway RBAC DIP RDA/JMS RDA Proxy Directory Service RDA Accelerator Equipment Instruments Interlocks Magnets DIP – Data Inter-change Protocol JMS – Java Message Service RBAC – Role-Based Access Control RDA – Remote Device Access Kickers Cavities … Collimators JMS Service renovation towards LS2

  6. JMS Service in 2018 • Apache ActiveMQ 5.15.2 broker/client • Transport on OpenWire binary protocol • ActiveMQ specific, not portable • 2 HA clusters: 3 equal, load-balanced nodes • CO-PRO, CO-CERT • 6 master/slave clusters: 2 nodes, hot standby • BLM, DIAMON, LASER, SIS, TIM-* • 21 single brokers (per project) • CESAR, CMWLOG, InCA (x 10), Sequencer, OASIS JMS is a core, critical middleware service JMS is vital for accelerator operation • 2018 • Very stable JMS operation • No beam-dumps triggered by JMS issues (contrary to 2017) BE-CO JMS infrastructure (simplified view) JMS Service renovation towards LS2

  7. Why renovate it now? Problems with ActiveMQ: • ActiveMQ client does not implement JMS API 2.0 • Blocker for upgrade to Spring 5 • ActiveMQ development has stagnated • ActiveMQ community is shrinking CO Study: Review of the JMS Service (CS-222) • What are our requirements? • Is ActiveMQ still the right messaging solution? • Are there other valid options? JMS Service renovation towards LS2

  8. JMS technical study: scope & results JMS Service renovation towards LS2

  9. Requirements • Spring 5 support • JMS 2.0 compatibility • Clustering support • Broker bridge feature • Sufficient performance • Java 11 compatibility • Using Open Source software JMS Service renovation towards LS2

  10. What is known so far • ActiveMQ is currently deployed in production • ActiveMQ 5 is reliable • No JMS = No Beam • Renovation cannot decrease system quality • The client side has to be changed • Do we need to change the broker? JMS Service renovation towards LS2

  11. Market survey on brokers JMS Service renovation towards LS2

  12. Market survey on brokers https://softwaremill.com/mqperf/ JMS Service renovation towards LS2

  13. And the winner is… JMS Service renovation towards LS2

  14. ActiveMQ Artemis • Open source project • Potential successor of ActiveMQ 5 • AMQP, STOMP, MQTT, OpenWire, HornetQ • JMS 2.0 and 1.1 • Claims to have great performance • HA, clustering, bridges • Java 11 compatible JMS Service renovation towards LS2

  15. ActiveMQ Artemis - Architecture JMS Service renovation towards LS2

  16. Crash testing • 2 fast producers • Messages of 100 kB • Publishing every 100 ms • Publishing to 2000 topics • 2 slow consumers • Consuming every 10 sec • Running out of memory in short time JMS Service renovation towards LS2

  17. ActiveMQ 5 vs Artemis - OpenWire ActiveMQ 5.15.8 JAPC using OpenWire protocol –current production Artemis 2.6.3 JAPC using OpenWire protocol JMS Service renovation towards LS2

  18. Artemis: Issues JMS Service renovation towards LS2

  19. Artemis: Issues & Follow up • The performance issue has been reported to Artemis developers (https://issues.apache.org/jira/browse/ARTEMIS-2193) • Followed-up within 24h • Fix prepared within 3 days • Issue partially solved JMS Service renovation towards LS2

  20. ActiveMQ vs Artemis:jms-cmwlog-pro Heap usage CPU usage JMS Service renovation towards LS2

  21. Alternative approach: ActiveMQ 5 + Qpid JMS Service renovation towards LS2

  22. ActiveMQ 5:AMQP ActiveMQ AMQP protocol JMS Service renovation towards LS2

  23. JMS study conclusions • Artemiscan offer good performance • …with trade-off on reliability • Apache Qpid JMS client is broker agnostic • Recommendation: • Stay with ActiveMQ 5 broker • IntroduceApache Qpid JMS client JMS Service renovation towards LS2

  24. Roadmap for 2019 JMS Service renovation towards LS2

  25. Plans for LS2 baseline (January’19) Upgrade ActiveMQ brokers to v. 5.15.8 • The latest stable release • Brings several stability fixes • Low risk New JAPC version with Qpid JMS client • JMS 2.0 compliant • AMQP instead of OpenWire • Genericclient to any AMQP broker Work-in-progress • Old & New JAPC clients compatibility • OpenWire & AMQP on ActiveMQ JAPC client JAPC client OpenWire OpenWire AMQP Broker JMS Service renovation towards LS2

  26. Plans for Linac4 baseline (June’19) Validation of the new Artemis broker • Validate latest Artemis fixes • Perform even more stability tests • Validate broker clusters & bridges • Validate clients compatibility • Deploy several “guinea-pig” instances if (validation is successful) • Deploy Artemis brokers in production • No changes for client software Promote RDA3 instead of JMS (LS2) • For all device/property access (e.g. InCA) • Sync with UCAP evolution plans Old JAPC client New JAPC client OpenWire AMQP Broker JMS Service renovation towards LS2

  27. Conclusions • JMS Service has to follow changes in the Java ecosystem • … and it has to be operational & stable all time • ActiveMQ broker is stable but it does not evolve • Artemis broker looks promising but it still lacks maturity • Stay with ActiveMQ for LS2 baseline • Use new JMS client (Qpid) and standard protocol (AMQP) • Continue validation of Artemis and conclude it by Linac4 baseline • Possibly, deploy new Artemis brokers for Linac4 baseline Thank you for your attention! JMS Service renovation towards LS2

More Related