Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Konzeptfrage: Datenobjekte syncronisieren

  Alt 16. Jun 2011, 17:58
Object Caches wie memcached und Message Broker (Microsoft Message Queue, ActiveMQ, HornetQ, RabbitMQ, ...) könnten die zentrale Datenhaltung und sofortige Benachrichtigung aller Clients im Netzwerk über Änderungen vereinfachen, und auch die Objekte selber (JSON oder XML serialisiert) übertragen.

Ein Vorteil wäre, dass nicht die Clients regelmäßig den zentralen Server abfragen müssen, sondern der Server den Clients (allen oder nur denjenigen, die an bestimmten Objekten oder Objektgruppen, oder sonstigen Ereignissen) gezielt aktiv die gewünschten Informationen sendet.

Message Broker können Objekte die noch im Transit (noch nicht zugestellt) sind persistieren, so dass sie auch noch zugestellt werden nachdem der Broker heruntergefahren wird, und bieten transaktionalen Nachrichtenaustausch.

Viele Message Broker sind Open Source Lösungen die schon viele Jahre Praxiserfahrungen hinter sich haben, wie Apache ActiveMQ, oder in großen Serversystemen eingesetzt werden (Oracle OpenMQ).

Sie sind meist sehr schnell installiert (downloaden, start.bat ausführen).

Für Chat-ähnliche Anwendungen sind sie ideal, ein Client kann zum Beispiel auch Nachrichten abrufen die andere Teilnehmer an den Chatroom gesendet haben während er offline war (mit sogenannten 'Durable Subscriptions'), der Broker versucht dann so viele noch nicht zugestellte Nachrichten auszuliefern wie möglich.

Datenbanken sind nicht immer die ideale Lösung, vor allem wenn es um aktive und flexible Benachrichtigung vieler Clients geht, die müssten sonst immer wieder aufwendig Tabellen pollen. Auch DB-Events sind eingeschränkt und von System zu System unterschiedlich.


Cheers,
Michael
Michael Justin
habarisoft.com

Geändert von mjustin (17. Jun 2011 um 07:27 Uhr)
  Mit Zitat antworten Zitat