English
 
Privacy Policy Disclaimer
  Advanced SearchBrowse

Item

ITEM ACTIONSEXPORT

Released

Software

The httpmsgbus general-purpose HTTP-based message bus

Authors
/persons/resource/andres

Heinloo,  Andres
2.4 Seismology, 2.0 Geophysics, Departments, GFZ Publication Database, Deutsches GeoForschungsZentrum;
GEOFON, Deutsches GeoForschungsZentrum;

External Ressource
No external resources are shared
Fulltext (public)
There are no public fulltexts stored in GFZpublic
Supplementary Material (public)
There is no public supplementary material available
Citation

Heinloo, A.(2016): The httpmsgbus general-purpose HTTP-based message bus, Potsdam : GFZ Data Services.
https://doi.org/10.5880/GFZ.2.4.2016.001


Cite as: https://gfzpublic.gfz-potsdam.de/pubman/item/item_2580888
Abstract
Abstract data objects are frequently transferred between a central computer (server) and one or more other computers (clients). The httpmsgbus (HMB) facilitates the transfer of these objects, functioning as a messaging service which runs over HTTP. These may be SeisComP data model items, or any other content. Messages sent by one client can be received by multiple clients connected to the same bus, using JSON and BSON formats for communication. Clients may limit what objects they wish to receive as part of the connection process. A bus may have multiple queues. Order of messages within a queue is preserved. A queue may have multiple topics; topic name is simply an attribute of a message. A receiving client subscribes to one or more queues and tells which topics it is interested in. Each message within a queue has a sequence number, so it is possible to resume connection without data loss, provided that the needed messages are still in the queue. A client can also select messages based on start- and end-time, and filter messages using a subset of MongoDB query language. HMB supports out-of-order messages by letting a sending client specify the sequence number when sending messages. Messages are received in order; a receiving client may ignore out-of-order messages or wait for missing messages until a timeout. httpmsgbus can be used as a standalone program or as an add-on to SeisComP 3 [1]; the code can be copied to SC3 source tree and compiled together with the rest of the SC3 using CMake or installed separately using the install.sh script. Go compiler [2] is required to compile the code; other requirements include Libpcre (pcre-devel, libpcre3-dev or similar Linux package), and Mongo DB for persistent storage. Source code is freely available for download; its use is governed by the GNU General Public License, version 3.