WLCG Messaging System for Grids (MSG)


This page contains an overview of the WLCG MSG - Messaging System from Grids. This is a solution based around Apache ActiveMQ which aims to help the integration and consolidation of the various grid monitoring systems used in WLCG. It arose out of work done within the context of the WLCG Monitoring Working Groups

Background Presentations

We have presented a series of different presentations at the WLCG GDB on different aspects of WLCG monitoring in general, and the messaging layer, MSG, in particular:


MSG uses Apache ActiveMQ as the message bus. This is a fully featured JMS implementation that also offers non-Java solutions for publishing and consuming messages. It also integrates Apache Camel, which implements the enterprise integration patterns from the book by Gregor Hohpe and Bobby Woolf. We use much of the terminology of these patterns, such as Message Store, Control Bus, Message Broker, ...

The aim is to use MSG as an integration bus for all the grid monitoring systems we currently have within WLCG, and allow new systems to be easily built using a scalable infrastructure. It is currently a non-goal to provide a general messaging system for general usage by grid middleware, but we hope our experience could be useful if such a system is ever deployed!


We have carried out (ands are in the process of completing) a series of evaluations of various aspects of ActiveMQ as a message broker:

Message Protocols

As a standard message format, we use the message format defined in the GridMonitoringProbeSpecification. Of course, depending on the actual usage (see below) the required and optional fields may change - but what says constant is the basic syntactic format.

  • TODO - Split out underlying message format from description of probe interactions.

We believe over time other formats will also become standard for interchange, probably some form of JSON notation and a simple XML format (Atom ?)

Tools provided

Latest releases available at http://www.sysadmin.hep.ac.uk/rpms/egee-SA1/sl4/x86_64/RPMS.release


Current Status

Using publish simple

Publish-simple is a lightweight python script which allows publishing into MSG. It accepts a file as input, whose contents should be records separated by EOT (read [GridPublisherSpecificationGridView] for examples). The configuration is done on the side, defining the message class keys, headers and destinations, list of brokers to contact, and logging configuration.

By steps:

  1. install the rpm (rpm -ivh http://www.sysadmin.hep.ac.uk/rpms/grid-services/RPMS.monitoring/msg-publish-simple-x.y.z-r.noarch.rpm);
  2. vim /opt/lcg/etc/msg/msg-publish.conf
  3. From your application, call: python /opt/lcg/bin/msg-publish. You'll get:
Usage: msg-publish [options] MESSAGE_CLASS [FILE1] [FILE2...]

Where MESSAGE_CLASS must be one of the followings: org.wlcg.usage.jobStatus
and FILE is a file containing the tuples of test results

         -h, --help
                 Print this help text and exit.
         -b, --bulk
                 Bulk publishing
         -v, --verbose
                 Be more verbose
         -c, --conf
                 Alternative configuration file
         -a, --attributes
                 List of header attributes
         -d, --destination
                 Alternative message destination
         -g, --generic
                 Generic message class (do not validate class name and records)
         -s, --sign
                 Sign with my proxy certificate (NOT IMPLEMENTED)
         -e, --encrypt
                 Encrypt with given public key (NOT IMPLEMENTED)
                 Do not attach certificate to any signed message (NOT IMPLEMENTED)

1. At this point, your messages are being sent to the defined broker!


Current Status

Specific Channel definitions

Proposed usage

-- DanielRodrigues - 10 Jul 2008

Topic attachments
I Attachment History Action Size Date Who Comment
PowerPointpps WhiteAreasPresentation_Final2.pps r1 manage 2170.0 K 2008-05-23 - 16:24 DanielRodrigues White Areas Presentation 23 May 2008
Edit | Attach | Watch | Print version | History: r8 < r7 < r6 < r5 < r4 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r8 - 2009-11-05 - MassimoPaladin
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LCG All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback