(Funktionales) Skalieren mittels Messaging - JAXenter

(Funktionales) Skalieren mittels Messaging

Synchron und Asynchrone

Nicht jedes System muss zwangläufig vollständig asynchron arbeiten. Es gibt Szenarien, in denen einige Aufrufe synchron erfolgen müssen, wie im Beispiel unseres Redaktionssystems (Listing 4). Hier wird der publisherService synchron aufgerufen. Dieser Service stellt den Artikel online unter einem bestimmten URL zur Verfügung. Anschließend kann dieser Service nun eine (JMS-)Nachricht versenden, um so anderen Interessenten mitzuteilen, dass ein Artikel unter einem bestimmten URL verfügbar ist. Die Benachrichtigung anderer Services, wie beispielsweise des TwitterService, kann ja nur dann erfolgen, wenn der Artikel wirklich online verfügbar ist.

Listing 4
@Named
@RequestScoped
public class PublishArticle{  @Inject PublisherService publisherService;

  @Inject Article article;
  ...
  public String publishArticle()  {
    publisherService.publishArticle(article);    return "published";  }
}
Fazit

Wie eingangs gezeigt, ermöglicht der Einsatz von Messaging, dank der damit verbundenen Möglichkeit zur Nutzung von Asynchronität, unter Umständen eine Reduktion der Latenzzeit. Zusätzlich bieten Messaging-Lösungen die Chance, den Code eines Softwaresystems modular aufzubauen und dabei gleichzeitig schlank zu halten. Aktionen werden durch das Senden von Nachrichten getriggert, auf die verschiedene Clients oder Backend-Systeme unterschiedlich reagieren können. Bei Prozessänderungen muss nicht der gesamte Code refactort werden, wie in unserem Beispiel der JSF Controller, sondern lediglich die Implementierung des entsprechenden MessageListeners. Grund genug, einmal über Messaging als alternativen Ansatz nachzudenken.

Lars Röwekamp ist Geschäftsführer der OpenKnowledge GmbH und berät seit mehr als zehn Jahren Kunden in internationalen Projekten rund um das Thema Enterprise Computing (Twitter: @mobileLarson).

Matthias Weßendorf arbeitet für die Firma Kaazing. Dort beschäftigt er sich mit WebSocket, HTML5 und weiteren Themen rund um das „Next Generation Web“. Matthias bloggt regelmäßig auf http://matthiaswessendorf.wordpress.com (Twitter: @mwessendorf).

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.