Neues Spring-Projekt gelandet: Was kann Spring Sync?

Hartmut Schlosser

Ein neues Spring-Projekt hat das Licht der Welt erblickt: Spring Sync tritt an, um die Kommunikation zwischen Client-Anwendungen und Spring-Backends zu erleichtern. Wie genau soll das vonstattengehen?

Wie funktioniert Spring Sync?

Über Patches. Wie Craig Walls auf dem Pivotal-Blog erklärt, stellt Spring Sync eine Library zur Verfügung, mit der Patches produziert und auf Java-Objekte angewandt werden können. Dabei fungiert eine Patch-Klasse als zentrales Element, in dem die Veränderungen eines Objekts getrackt und mit anderen Objekten synchronisiert werden können.

Angelehnt ist das Projekt an JSON Patch, dem Format zur Beschreibung von Änderungen an einem JSON-Dokument, durch das etwa in Kombination mit der HTTP PATCH-Methode gezielte HTTP APIs upgedatet werden können. Dem entsprechend unterstützt Spring Sync die Erzeugung und Serialisierung von Patch-Instanzen als JSON Patch. Zukünftige Spring-Sync-Versionen sollen aber auch um alternative Patch-Repräsentationen erweitert werden. 

Das ist aber noch nicht alles: Auf einer höheren Abstraktionsebene sorgt Spring Sync für die Synchronisierung von Patches im Sinne des Differential Synchronization-Algorithmus von Neil Fraser. Geboten wird also ein Kontroll-Mechanismus zur Erzeugung und Anwendung von Patches zwischen mehreren Netzwerk-Knoten, die beispielsweise aus Client und Server bestehen können, aber auch aus komplexeren Szenarien.

Spring Sync 1.0.0 Milestone 1

Spring Sync ist neu, kann aber in Form des Spring Sync 1.0.0 Milestone 1 bereits sein erstes Release aufweisen. Umgesetzt findet man dort die Patch-Abstraktion für die Erzeugung und Anwendung von Patches auf Java-Objekte, Support für die Repräsentierung von Patches als JSON Patches und eine Implementierung der Differential-Synchronisierung. Über den Spring MVC Controller DiffSyncController können zudem Http Requests des Typs application/patch-json+patch sowie die Anwendung der Differential-Synchronisierung auf eine Ressource gesteuert werden.

Geplant ist die Erweiterung der Http-basierten Differential-Synchronisierung durch WebSocket/STOMP-Support. Außerdem will man an der Ressourcen-Versionierung feilen, um Patch-Konflikte besser zu vermeiden. Craig Walls stellt außerdem in Aussicht, Unterstützung für die Nutzung von Spring Sync in Android-Anwendungen bereit zu stellen.

Spring Sync wird unter der Apache-2.0-Lizenz Open Source entwickelt; das Projekt steht unter http://repo.spring.io/libs-milestone-local/ (Dependency-Koordinaten org.springframework.sync:spring-sync:1.0.0.M1) und auf GitHub zur Verfügung. Zur Einführung empfiehlt sich der Artikel „Introducing Spring Sync“ sowie die Release-Ankündigung zu Spring Sync 1.0.0 Milestone 1

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: