SlideShare a Scribd company logo
XMPP Realtime Sync
The Problem
● I want to synchronize different datastores
CAP Theorem
● A distributed storage can only have 2 of the
following three properties:
– Consistency – a read will always respond with the
most current data
– Availability – a node will give a reasonable
response within a reasonable amount of time
– Partition tolerant – the system will still work when
nodes are not reachable
Proposed solution
● The proposed solution is AP and eventual
consitent
● This means:
– All nodes are always available and can work
without speaking to any other node
– When back connected to the network all nodes will
converge to have the same data
https://github.com/ManuelB/XMPPJSONPatchSyncModel
CRDT
● Conflict free replicated data type
● Data structures that don‘t produce conflicts
when merged
● e.g.
– State-based PN-Counter
– State based grow-only set
– last write wins element sets with vector clocks
– ...
XMPP PubSub XEP-0060
● Specification for distributing messages
● Publish-Subscribe paradigm
https://xmpp.org/extensions/xep-0060.html
<iq type='set'
from='hamlet@denmark.lit/blogbot'
to='pubsub.shakespeare.lit'
id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='princely_musings'>
<item id='bnd81g37d61f49fgn581'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<title>Soliloquy</title>
<summary>
To be, or not to be: that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
</summary>
<link rel='alternate' type='text/html'
href='http://denmark.lit/2003/12/13/atom03'/>
<id>tag:denmark.lit,2003:entry-32397</id>
<published>2003-12-13T18:30:02Z</published>
<updated>2003-12-13T18:30:02Z</updated>
</entry>
</item>
</publish>
</pubsub>
</iq>
Strophe
● XMPP Web Socket Library
● JavaScript
● Verschiedene Authorisierungen
● Callbacks um auf XMPP Nachrichten zu
antworten
● Logging
JSON Patch
● Specification for describing differences between
to JSON objects
● Used for describing the addition to the set
{
"op": add",
"path":"/inserts/62afb01a",
"value": {
"created":"2017-03-19T10:41:48.823Z",
"title":"Hello World"
}
}
xxHash
● Non cryptographic fast hashing algorithm
● Can be used for duplication detection
● Advantage:
– Data with same content won‘t duplicate in case of
data entry of different offline nodes
● Disadvantage
– Data without changing fields like timestamps or
UUIDs can be reentered once deleted
OpenUI5
● MVC JavaScript framework
● Basis for SAP Fiori
● Rich widget library
● Responsive
● Well integrated with server based on Models e.g.
– JSON
– OData
Demo
Questions?

More Related Content

Similar to Using XMPP JSONPatch for synchronizing an OpenUI5 Model (20)

PDF
Introduction to apache kafka
Samuel Kerrien
 
PDF
Oracle to Postgres Migration - part 2
PgTraining
 
PDF
Hatohol technical-brief-20130830-hbstudy
koedoyoshida
 
PDF
Percona XtraDB 集群文档
YUCHENG HU
 
PPT
Galera Cluster Best Practices for DBA's and DevOps Part 1
Codership Oy - Creators of Galera Cluster
 
PDF
Clug 2012 March web server optimisation
grooverdan
 
PDF
Speedrunning the Open Street Map osm2pgsql Loader
GregSmith458515
 
PPTX
Sge
Chris Roeder
 
ODP
Using Galera Cluster to Power Geo-distributed Applications on the WAN
philip_stoev
 
ODP
Introduciton to Apache Cassandra for Java Developers (JavaOne)
zznate
 
PPTX
Migrating to XtraDB Cluster
percona2013
 
PDF
Cassandra 2012
beobal
 
PPTX
Introduction to SDshare
Lars Marius Garshol
 
PDF
D itg-manual
Veggax
 
PDF
Challenges with Gluster and Persistent Memory with Dan Lambright
Gluster.org
 
PDF
Scaling Cassandra for Big Data
DataStax Academy
 
PDF
MongoDB Operational Best Practices (mongosf2012)
Scott Hernandez
 
PPT
11g R2
afa reg
 
PPTX
Build an affordable Cloud Stroage
Alex Lau
 
PPTX
Ot performance webinar
Suite Solutions
 
Introduction to apache kafka
Samuel Kerrien
 
Oracle to Postgres Migration - part 2
PgTraining
 
Hatohol technical-brief-20130830-hbstudy
koedoyoshida
 
Percona XtraDB 集群文档
YUCHENG HU
 
Galera Cluster Best Practices for DBA's and DevOps Part 1
Codership Oy - Creators of Galera Cluster
 
Clug 2012 March web server optimisation
grooverdan
 
Speedrunning the Open Street Map osm2pgsql Loader
GregSmith458515
 
Using Galera Cluster to Power Geo-distributed Applications on the WAN
philip_stoev
 
Introduciton to Apache Cassandra for Java Developers (JavaOne)
zznate
 
Migrating to XtraDB Cluster
percona2013
 
Cassandra 2012
beobal
 
Introduction to SDshare
Lars Marius Garshol
 
D itg-manual
Veggax
 
Challenges with Gluster and Persistent Memory with Dan Lambright
Gluster.org
 
Scaling Cassandra for Big Data
DataStax Academy
 
MongoDB Operational Best Practices (mongosf2012)
Scott Hernandez
 
11g R2
afa reg
 
Build an affordable Cloud Stroage
Alex Lau
 
Ot performance webinar
Suite Solutions
 

More from Manuel Blechschmidt (16)

PDF
Optimizing an SAP Fiori Application Based on a Real World Example
Manuel Blechschmidt
 
PDF
Was macht ein Start Up erfolgreich?
Manuel Blechschmidt
 
PDF
Pick up women bigdata - CdE Pfingstakademie 2014
Manuel Blechschmidt
 
PDF
Obtaining Natural Language Descriptions of Process Specifications
Manuel Blechschmidt
 
PDF
Building a multi touch input device for NASA world wind
Manuel Blechschmidt
 
PDF
An architecture for evaluating recommender systems in real world scenarios
Manuel Blechschmidt
 
PDF
Studienberatung für IT Systems Engineering JGW Papenburg 2008
Manuel Blechschmidt
 
PDF
Qualitätsmanagement für Web- und PHP Applikationen
Manuel Blechschmidt
 
PDF
Collaboratives entwickeln in Bachelorprojekten
Manuel Blechschmidt
 
PDF
Using BPMN-Q to show violation of execution ordering compliance rules
Manuel Blechschmidt
 
PDF
Information Technology for Development Countries
Manuel Blechschmidt
 
PDF
Sub conf 2010
Manuel Blechschmidt
 
PDF
See through Augmented Reality
Manuel Blechschmidt
 
PDF
Zeitmanagement mit Zielen MHN Akademie 2008
Manuel Blechschmidt
 
PDF
Zeit- und Aufgabenmanagement im Leben Pfingstakademie 2008
Manuel Blechschmidt
 
PDF
BPEL Vortrag POIS 2007
Manuel Blechschmidt
 
Optimizing an SAP Fiori Application Based on a Real World Example
Manuel Blechschmidt
 
Was macht ein Start Up erfolgreich?
Manuel Blechschmidt
 
Pick up women bigdata - CdE Pfingstakademie 2014
Manuel Blechschmidt
 
Obtaining Natural Language Descriptions of Process Specifications
Manuel Blechschmidt
 
Building a multi touch input device for NASA world wind
Manuel Blechschmidt
 
An architecture for evaluating recommender systems in real world scenarios
Manuel Blechschmidt
 
Studienberatung für IT Systems Engineering JGW Papenburg 2008
Manuel Blechschmidt
 
Qualitätsmanagement für Web- und PHP Applikationen
Manuel Blechschmidt
 
Collaboratives entwickeln in Bachelorprojekten
Manuel Blechschmidt
 
Using BPMN-Q to show violation of execution ordering compliance rules
Manuel Blechschmidt
 
Information Technology for Development Countries
Manuel Blechschmidt
 
Sub conf 2010
Manuel Blechschmidt
 
See through Augmented Reality
Manuel Blechschmidt
 
Zeitmanagement mit Zielen MHN Akademie 2008
Manuel Blechschmidt
 
Zeit- und Aufgabenmanagement im Leben Pfingstakademie 2008
Manuel Blechschmidt
 
BPEL Vortrag POIS 2007
Manuel Blechschmidt
 
Ad

Recently uploaded (20)

PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Ad

Using XMPP JSONPatch for synchronizing an OpenUI5 Model

  • 2. The Problem ● I want to synchronize different datastores
  • 3. CAP Theorem ● A distributed storage can only have 2 of the following three properties: – Consistency – a read will always respond with the most current data – Availability – a node will give a reasonable response within a reasonable amount of time – Partition tolerant – the system will still work when nodes are not reachable
  • 4. Proposed solution ● The proposed solution is AP and eventual consitent ● This means: – All nodes are always available and can work without speaking to any other node – When back connected to the network all nodes will converge to have the same data
  • 6. CRDT ● Conflict free replicated data type ● Data structures that don‘t produce conflicts when merged ● e.g. – State-based PN-Counter – State based grow-only set – last write wins element sets with vector clocks – ...
  • 7. XMPP PubSub XEP-0060 ● Specification for distributing messages ● Publish-Subscribe paradigm https://xmpp.org/extensions/xep-0060.html <iq type='set' from='[email protected]/blogbot' to='pubsub.shakespeare.lit' id='publish1'> <pubsub xmlns='http://jabber.org/protocol/pubsub'> <publish node='princely_musings'> <item id='bnd81g37d61f49fgn581'> <entry xmlns='http://www.w3.org/2005/Atom'> <title>Soliloquy</title> <summary> To be, or not to be: that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? </summary> <link rel='alternate' type='text/html' href='http://denmark.lit/2003/12/13/atom03'/> <id>tag:denmark.lit,2003:entry-32397</id> <published>2003-12-13T18:30:02Z</published> <updated>2003-12-13T18:30:02Z</updated> </entry> </item> </publish> </pubsub> </iq>
  • 8. Strophe ● XMPP Web Socket Library ● JavaScript ● Verschiedene Authorisierungen ● Callbacks um auf XMPP Nachrichten zu antworten ● Logging
  • 9. JSON Patch ● Specification for describing differences between to JSON objects ● Used for describing the addition to the set { "op": add", "path":"/inserts/62afb01a", "value": { "created":"2017-03-19T10:41:48.823Z", "title":"Hello World" } }
  • 10. xxHash ● Non cryptographic fast hashing algorithm ● Can be used for duplication detection ● Advantage: – Data with same content won‘t duplicate in case of data entry of different offline nodes ● Disadvantage – Data without changing fields like timestamps or UUIDs can be reentered once deleted
  • 11. OpenUI5 ● MVC JavaScript framework ● Basis for SAP Fiori ● Rich widget library ● Responsive ● Well integrated with server based on Models e.g. – JSON – OData
  • 12. Demo