Habari ActiveMQ Client
All betasoft components include the full source code and a 30 days money back guarantee. All betasoft components are royalty-free which means re-distribution with your application does not require any additional fees, with the exception of server side applications built with ScroogeXHTML.
1000+ downloads in 2008
Habari ActiveMQ Client is a library for Delphi(tm) and Free Pascal which provides easy access to Apache ActiveMQ, the most popular and powerful open source Message Broker and Enterprise Integration Patterns provider.
With Habari ActiveMQ Client, applications can connect to Apache ActiveMQ servers, subscribe to queues and topics, send and receive messages and objects, and work with transactions.
How can I use it?
Here are some examples for software solutions built on top of a Message Broker like Apache ActiveMQ:
- Intranet News Ticker Application: using the publish and subscribe communication model, news can be delivered to all registered client applications. The message sender works like a broadcast station, and does not care if clients don't listen.
- Load Balancing: using the point-to-point or queuing model, many 'worker' applications can be installed on different computers. Every new message sent to the queue will be delivered only to one client. The server will keep messages until they are expired or delivered to a client.
- Persistent Storage: messages and objects can be stored in the Object Broker and retrieved even after a restart.
- Interprocess Communication: applications can use point-to-point messages to exchange information between each other even if the receiver currently is not running.
Performance
Habari ActiveMQ tests have shown that on a 2.6 GHz Celeron system, sending and receiving of 1000 messages takes less than 5 seconds. This means that the average round-trip (send and receive) for one message takes less than 5 milliseconds.
About JMS (Java Message Service) and the JMS API
The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients.
The JMS API supports two models:
- point-to-point or queuing model
- publish and subscribe model
In the point-to-point or queuing model, a producer posts messages to a particular queue and a consumer reads messages from the queue. Here, the producer knows the destination of the message and posts the message directly to the consumer's queue. It is characterized by following:
- Only one consumer will get the message
- The producer does not have to be running at the time the receiver consumes the message, nor does the receiver need to be running at the time the message is sent
- Every message successfully processed is acknowledged by the receiver
The publish/subscribe model supports publishing messages to a particular message topic. Zero or more subscribers may register interest in receiving messages on a particular message topic. In this model, neither the publisher nor the subscriber know about each other. A good metaphor for it is anonymous bulletin board. The following are characteristics of this model:
- Multiple consumers can get the message
- There is a timing dependency between publishers and subscribers. The publisher has to create a subscription in order for clients to be able to subscribe. The subscriber has to remain continuously active to receive messages, unless it has established a durable subscription. In that case, messages published while the subscriber is not connected will be redistributed whenever it reconnects.
Java Message Service. (2007, November 21). In Wikipedia, The Free Encyclopedia. Retrieved 18:57, December 2, 2007, from http://en.wikipedia.org/wiki/Java_Message_Service
Online Documentation
The API documentation is included in the demo download. It is also available online at http://www.mikejustin.com/habari/docs/html/index.html
HabariExpress Component included with full source code
The HabariExpress component uses the Habari ActiveMQ Client library to provide simplified methods to exchange messages using an Apache ActiveMQ Message Broker. The full source code for HabariExpress is included in the registered version.
Habari Chat Demo
The Habari Chat Demo is a simple chat application built using Habari ActiveMQ Client. The executable and the full source code is included in the Habari demo download file. The chat example application uses a retroactive subscription of the chat room topic, which causes old chat messages to be displayed for new users. This only requires setting one property in the included HabariExpress component. A retroactive consumer is just a regular JMS consumer who indicates that at the start of a subscription every attempt should be used to go back in time and send any old messages (or the last message sent on that topic) that the consumer may have missed.
Habari GUI Admin Console
The GUI Admin Console shows how easy Habari ActiveMQ Client can be used to monitor and control an Apache ActiveMQ broker with Delphi.
The executable and the full source code is included in the Habari demo download file.
GUI Demo (Delphi and Free Pascal)
The included GUI Demo shows how Habari ActiveMQ Client library can be used to send and receive messages.
Highlights
- easy to use interface
- send and receive JMS messages
- send and receive Delphi objects
- exchange objects between Java and Delphi
- supports many operating systems (compiles with Free Pascal)
- includes full source code
Minimum Requirements
- Apache ActiveMQ version 4
- Borland/CodeGear Delphi 6
Supported Communication Libraries
- Internet Direct (Indy) 10.2.3
- Synapse
- OverByte ICS V6, TClientSocket (limited feature set)
Special requirements
- sending and receiving of objects requires Delphi 7 or higher
- object exchange between Delphi and Java requires ActiveMQ 5.1 or higher
Demo Version
The Demo download includes:
- GUI Demo Applications (Delphi and Free Pascal versions) which can be used to send and receive messages. The Delphi GUI demo includes object transfer using SOAP serialization. The communication library can be changed at runtime.
- Console Publisher Demo (Delphi and Free Pascal versions) which sends 2000 messages
- Console Subscriber Demo (Delphi and Free Pascal versions) which receives 2000 messages
- Component API Documentation (CHM) and Getting Started (documentation in PDF format)
The source code for all demo applications is included.
About Apache ActiveMQ
Apache ActiveMQ is the most popular and powerful open source Message Broker and Enterprise Integration Patterns provider. Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License. Read more about Apache ActiveMQ here: http://activemq.apache.org/
About Free Pascal
Free Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal compiler. It is available for different processors: Intel x86, Amd64/x86_64, PowerPC, Sparc. The following operating systems are supported: Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, Win64, WinCE, OS/2, Netware (libc and classic) and MorphOS. Read more about Free Pascal here: http://www.freepascal.org/
About the word Habari
Habari is a word in the Swahili language and means 'message' or 'news'.
Habari XB Client
All betasoft components include the full source code and a 30 days money back guarantee. All betasoft components are royalty-free which means re-distribution with your application does not require any additional fees, with the exception of server side applications built with ScroogeXHTML.
Habari XB Client is a client component for the xmlBlaster Open Source MOM (message-oriented middleware). With this component and xmlBlaster, it is possible to exchange data between clients written in Delphi, PHP, Perl, Python, C, C++, C#, Visual Basic.net, Flash, J2ME, Java (applications, servlets, applets).
Features
- Publish and subscribe messages
- Messages are asynchronous accessed with the subscribe() method
- Clients receive asynchronous messages with the update() method
- Synchronous message access with the get() method
- Subscribers can use XPath expressions to filter the messages they wish to receive
Important Changes
- xbAdmin demo application (included with full source code)
- includes the PublishOneway method for maximum outgoing message flow performance
- uses the xmlBlaster socket protocol (no dependencies on 3rd party XMLRPC libraries)
- XDOM-based XML parser replaced by TXMLDocument (no dependencies on 3d party DOM library)
HabariXBExpress and HabariXBExpressBase component
xbAdmin Demo Application
About xmlBlaster
xmlBlaster is a publish/subscribe and point to point 100% Java based MOM server (message-oriented middleware) which exchanges messages between publishers and subscribers. The message is described with XML-encoded meta information. Messages may contain everything, GIF images, Java objects, Python scripts, XML data, a word document, plain text - just anything. Communication with the server is based on socket, CORBA (using JacORB), RMI, XmlRpc, HTTP or email, clients are free to choose their preferred protocol. Other protocols like SOAP may be plugged in. The xmlBlaster server is pure Java and under LGPL. Read more: http://www.xmlblaster.org/whatis.html
Message structure
- The header is XML based, so you are able to place your meta data of the message content here. You are able to query this meta data with XPath, the XML query language.
- The message content is a BLOB (binary data). So you may send JPEG, ASCII, XML, serialized code or whatever with your messages
- The Quality of Service are XML based information to control the xmlBlaster. For example you may specify some expiration date or transaction context or whatever the xmlBlaster is supporting
Requirements
- CodeGear(tm) Delphi(tm)
- Internet Direct (Indy) 10
- xmlBlaster 1.5 or higher
Demo application
The download includes a demo application which can be used to publish and subscribe messages using the xmlBlaster default installation. The installation of the xmlBlaster message broker takes just one minute.