Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
104 Umsetzung des Prototyps<br />
lage und ist als eine open-source Alternative zu kommerziellen MQ Implementierungen wie IBM<br />
WebSphere MQ oder Amazon Simple Queue Service gegeben.<br />
Erlang ist eine relativ kompakte Programmiersprache, die zugleich ein Laufzeitsystem und eine<br />
umfassende Bibliothek für die Entwicklung verteilter, hochverfügbarer Systeme zur Verfügung stellt.<br />
Eine alternative Bezeichnug für Erlang ist Erlang/OTP, bei der das Akronym OTP für The Open<br />
Telecom Platform steht.<br />
Die Auswahl von RabbitMQ kann folgenderweise begründet werden: aus verfügbaren open-source<br />
Message-Oriented Middleware Softwarelösungen wie ActiveMQ, ZeroMQ oder Apache Qpid setzt<br />
nur Apache Qpid den AMQP-Standard um [VW12]. Darüber hinaus verfügt RabbitMQ über eine<br />
umfangreiche Dokumentation inklusive Fachbücher.<br />
Ein weiteres Argument für RabbitMQ sind die praktischen, mitgelieferten Erweiterungen des AMQP-<br />
Protokolls. Beispielsweise können unzustellbare Mitteilungen persistiert werden; weiter lässt sich der<br />
Empfang einer Mitteilung von einem Verbraucher zu dem aufrufenden Erzeuger bestätigen. Eine<br />
ausführliche Beschreibung des Funktionsumfangs von RabbitMQ sowie weitere Erklärungen zum<br />
AMQP-Protokoll sind in [VW12] vorhanden.<br />
Queuing-Strategie für die Umsetzung des Kommunikationskanals<br />
Die generelle Strategie, die verwendet wurde, um die Funktionalität des Kommunikationskanals<br />
bereitzustellen ist in der folgenden Auflistung wiedergegeben:<br />
(a) Dauerhafte Queues: Es wird jeweils eine dauerhafte Queue für jede teilnehmende Rolle (Wohnungseigentümer<br />
und -Mieter) definiert. Die Queues können die im Sinne dieser Herangehensweise<br />
auch als “Inboxes” oder als “Foren” für jeden Teilnehmer angesehen werden. Hierbei werden<br />
dauerhafte Mitteilungen persistiert, indem aktuelle sowie vorherige Mitteilungen abgerufen<br />
werden können. Hier können auch Mitteilungen gespeichert werden, die zu dem Sendezeitpunkt<br />
nicht empfangen werden konnten (die “Offline” Art von Mitteilungen). Eine dauerhafte Queue<br />
kann nur auf Anfrage gelöscht werden.<br />
(b) Kurzlebige Queues: Darüber hinaus lassen sich nicht dauerhafte Queues erstellen, die für die<br />
Lebensdauer einer Instant Messaging Sitzung behalten werden. Eine Sitzung entsteht zwischen<br />
einem oder mehreren Wohnungsmietern und dem entsprechenden Wohnungseigentümer oder umgekehrt.<br />
Die Entfernung der nicht dauerhaften Queues wird normalerweise dann ausgeführt, wenn<br />
keine “Abonnenten” mehr (d.h. Erzeuger und Verbraucher) auf dem entstehenden “Kanal” lauschen.<br />
In diesem Fall könnte auch ein Mechanismus definiert werden, der die “ausgelaufenen”<br />
Queues in eine dauerhafte Form von Queues umwandelt, jeweils mit eindeutigen Namen (z.B.<br />
anhand des Zeitstempels).<br />
Für die erste aufgelistete Art von Queues kann die genannte erneute Zusendung der Mitteilung anhand<br />
einer RabbitMQ-spezifischen Erweiterung 12 zum AMQP-Standard erfolgen: Message Receipt<br />
Confirmation (auch als Publisher Acknowledgements bekannt). Weiterhin könnten die nicht zustellbaren<br />
Mitteilungen in der Benutzeroberfläche beispielsweise hervorgehoben werden, um zu zeigen<br />
dass sie während einer Zeitspanne von Inaktivität angekommen sind.<br />
12<br />
http://www.rabbitmq.com/extensions.html