Habari: Message Queue Clients für Delphi & Free Pascal

Zur Vorstellung von Komponenten und Units für Lazarus
Antworten
mjustin
Beiträge: 7
Registriert: Mi 15. Apr 2009, 07:18

Habari: Message Queue Clients für Delphi & Free Pascal

Beitrag von mjustin »

Hallo,

für Delphi (6 bis 2009) und Free Pascal erhältlich sind seit 2008 bzw. 2009 kommerzielle Client Libraries für Open Source Message Broker, mit denen sich plattform- und programmiersprachenübergreifend Anwendungen über asynchronen Austausch von Nachrichten und Objekten verbinden lassen:

Habari ActiveMQ Client - für den Apache ActiveMQ Message Broker
Habari OpenMQ Client - für den Open Message Queue Broker

Beide verwenden eine einfache TCP/IP Schnittstelle, basierend auf dem Stomp Protokoll. Nachrichten können Texte und Binärdaten enthalten, bei ActiveMQ können auch Objekte zum Beispiel aus Java (aber auch C# und anderen Sprachen) serialisiert an Delphi Anwendungen übertragen werden (und umgekehrt), dazu können JSON und XML als Serialisierungsverfahren genutzt werden. Als TCP/IP Bibliotheken können Synapse und Internet Direct 10 (Indy) verwendet werden.

Was kann man damit machen?
Neben der Möglichkeit, im Enterprisebereich unterschiedliche Anwendungen miteinander zu verbinden (z.B. eine PHP Webanwendung, einen Java Applicationserver und GUI Module die in C# oder Delphi geschrieben sind), lassen sich auch kleinere Aufgabenstellungen damit realisieren: Nachrichtenaustausch im 'Broadcast'-Modus zwischen verschiedenen Rechnern (Sender und Empfänger müssen sich nicht kennen und nicht gleichzeitig online sein) und Lastverteilung über mehrere Rechner, die aus einer Jobqueue jeweils eine Auftragsnachricht erhalten, Chatsysteme, Logging, zentrale persistente Speicherung von Nachrichten und Objekten. Message Broker Lösungen sind mit sehr hoher Ausfallsicherheit und Zuverlässigkeit möglich, auch Transaktionen werden vom JMS Standard und den Habari Client Libraries unterstützt.

Wie steil ist die Lernkurve?
Die bestehende Java API für Message Service Provider (JMS) wird in den Libraries weitgehend abgebildet, durch diese sehr gut dokumentierte und logisch aufgebaute Abstraktionsschicht arbeitet man mit einfachen Interfaces. Um zum Beispiel eine Connection auf einen lokalen Server zu erzeugen, und über eine Session eine Queue anzusprechen, genügen wenige Zeilen Code:

Code: Alles auswählen

Connection := TBTJMSConnection.MakeConnection;
Session := Connection.CreateSession(False, amAutoAcknowledge);
Queue := Session.CreateQueue('TOOL.DEFAULT');
Connection.Start;


Gibt es Einschränkungen in der Free Pascal Version?
Nein, sofern der FPC Compiler mit Delphi-Kompatibilitätsflag gestartet wird. Habari Demo Versionen (Kommandozeilen- und GUI Anwendungen) sind auch für FPC und Lazarus vorhanden. Die Kompatibilität von FPC und die Unterstützung von FPC durch Drittanbieter (Indy, Synapse) macht damit den plattformunabhängigen Einsatz dieser Libraries möglich.

Was bedeutet Habari?
Habari stammt aus der Suaheli Sprache und bedeutet 'Nachricht'.

Weitere Informationen
Apache ActiveMQ: http://activemq.apache.org/
Open Message Queue: https://mq.dev.java.net/
Java Message Service (JMS): http://de.wikipedia.org/wiki/Java_Message_Service_Provider
Habari Client Libraries: http://www.mikejustin.com/habari.html

Feedback?
Über Feedback, Fragen und Vorschläge (z.B. wie Habari zugunsten der Open Source Idee eingesetzt werden könnte) freue ich mich natürlich. Adresse siehe http://www.mikejustin.com/#impressum

Cheers,
Michael Justin
http://www.habarisoft.com

mjustin
Beiträge: 7
Registriert: Mi 15. Apr 2009, 07:18

Re: Habari: Message Queue Clients für Delphi & Free Pascal

Beitrag von mjustin »

Update: die Familie der Habari JMS Client Bibliotheken wurden mittlerweile größer, neu unterstützt werden jetzt auch die Open Source Messagebroker HornetQ und VMWare/SpringSource RabbitMQ.

HornetQ ist ein hochperformanter JMS Message Broker, der standalone oder embedded betrieben werden kann. Mit einfacher Installation und Konfiguration ist er für einfache Integrationsaufgaben geeignet. HornetQ ist auch der Default JMS Messagebroker im JBoss 6 Applicationserver. Somit können Delphi- und Free Pascal Entwickler Daten und Objekte mit Webanwendungen (z.B. auf JavaServer Faces basierend) oder anderen Java EE Anwendungen (z.B. Message Driven Beans) austauschen, die auf einem JBoss 6 deployt sind. HornetQ kann darüber hinaus auch in einem JBoss 5 Application Server integriert werden.

Home Page:
http://www.habarisoft.com/habari_hornetq.html

RabbitMQ ist ein in Erlang geschriebener Open Source Message Broker.

Home Page:
http://www.habarisoft.com/habari_rabbitmq.html

Viele Grüße,
http://www.habarisoft.com

Antworten