SlideShare a Scribd company logo
1 of 49
Download to read offline
Real-time user interfaces Soms gewoon makkelijker 
Allard Buijze – allard.buijze@trifork.nl 
JFall 2014
Real-time user interfaces Gewoon, omdat het kan 
Allard Buijze – allard.buijze@trifork.nl 
JFall 2014
Real-time user interfaces Gewoon, omdat het gaaf is 
Allard Buijze – allard.buijze@trifork.nl 
JFall 2014
Real-time user interfaces Omdat het dingen makkelijker bleek te maken 
Allard Buijze – allard.buijze@trifork.nl 
JFall 2014
Allard Buijze CTO van Trifork Amsterdam Organsatoren van GOTO & QCON Gelooft sterk in DDD en CQRS Ontwikkelaar en initiatiefnemer van Axon Framework Java Framework voor schaalbaarheid en performance www.axonframework.org
http://www.anwb.nl/bestanden/content/gallery/anwb/etalages-en- productheaders/wegenwacht/wegenwacht.jpg
http://www.avex.nl/sites/avex.be/files/img_2774_0.jpg
Voertuiggegevens 
Ledenbestand 
Geo data 
Contractgegevens 
Rechthebbendheid 
Inkoopsysteem 
Facturering
Real-time?
WebSockets 
?
WebSockets 
Stomp 
Headers 
Payload
SockJS
!
! 
Stuur Events naar UI 
Initiële state duurt te lang
! 
! 
Stuur Events naar UI 
Kopie van model op server 
Dubbele logica, in twee talen  onderhoud
! 
Kopie van model op server 
Stuur model naar UI na wijziging 
Groot model. Zonde van dataverkeer.
! 
Δ 
Kopie van model op server 
Stuur delta naar client
{ 
"op": "add", 
"path": "/biscuits/1", 
"value": {"name": "Ginger Nut"} 
} 
{ 
"op": "remove", 
"path": "/biscuits“ 
} 
Json Patch 
(RFC 6902)
+ 
= 
add 
remove 
Json Patch
Δ 
= 
add 
remove 
Json Patch
>>> SUBSCRIBE 
id:sub-4 
destination:/query/cases/26b3013d-e847-4ac9-894f-85e6c51969a1
<<< MESSAGE 
destination:/query/cases/26b3013d-e847-4ac9-894f-action:patch 
message-id:1-148 
content-type:application/json;charset=UTF-8 
query-result-type:update 
subscription:sub-4 
type:value 
content-length:65 
[{"op":"replace","path":"/voertuig/kmstandMelding","
S1 
Verzenden initiële data
Hulpverleningsplan 
MetaData 
Melder 
Voertuig
>>> SUBSCRIBE 
id:sub-4 
destination:/query/cases/26b3013d-e847-4ac9-894f-85e6c51969a1
<<< MESSAGE 
destination:/query/cases/26b3013d-e847-4ac9-894f-85e6c51969a1 
action:extend 
message-id:1-145 
content-type:application/json;charset=UTF-8 
query-result-type:initial 
subscription:sub-4 
type:value 
send-only-to:1 
content-length:737 
{"samenvatting":{"label":{"labelId":"Opel Assistance"}, "caseNummer":"
! 
√
>>> SEND 
command-id:commandc31819f2-aafc-444c-ec37-771322ce7970 
reply-to:/query/command-reply/cliente9687c33-7143-4d09-destination:/command/intake.voertuig.UpdateVoertuigGegevens 
content-length:553 
{"caseId":"26b3013d-e847-4ac9-894f-85e6c51969a1","voertuig":{"
<<< MESSAGE 
command-id:commandc31819f2-aafc-444c-ec37-771322ce7970 
destination:/query/command-reply/cliente9687c33-7143-message-id:1-153 
content-type:application/json;charset=UTF-8 
subscription:sub-2 
type:success 
send-only-to:1 
content-length:0
topic
topic
topic
http://www.staples.com/Staples-Easy-Button/product_606396
Vragen? 
allard.buijze@trifork.nl
Ook werken aan real-time systemen? 
Trifork zoekt enthousiaste ontwikkelaars en architecten 
Stuur een mailtje naar jobs@trifork.nl 
of spreek Allard aan tijdens JFall

More Related Content

Similar to Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze

PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
Richard Tuin
 
Inter-enterprise-buziness-hub-slideshare-presentation
Inter-enterprise-buziness-hub-slideshare-presentationInter-enterprise-buziness-hub-slideshare-presentation
Inter-enterprise-buziness-hub-slideshare-presentation
Danny Gaethofs
 
CV_Spronk Ingrid_SMART Analyses_NL
CV_Spronk Ingrid_SMART Analyses_NLCV_Spronk Ingrid_SMART Analyses_NL
CV_Spronk Ingrid_SMART Analyses_NL
Ingrid Spronk
 
Presentatie Siptique
Presentatie SiptiquePresentatie Siptique
Presentatie Siptique
Siptique
 

Similar to Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze (20)

2tCloud update - Copaco Cloud Event 2015 (break-out 3)
2tCloud update - Copaco Cloud Event 2015 (break-out 3)2tCloud update - Copaco Cloud Event 2015 (break-out 3)
2tCloud update - Copaco Cloud Event 2015 (break-out 3)
 
Smart Building Proposition Assignment Vodafone Business.pdf
Smart Building Proposition Assignment Vodafone Business.pdfSmart Building Proposition Assignment Vodafone Business.pdf
Smart Building Proposition Assignment Vodafone Business.pdf
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
 
The DOC - Oracle APEX features
The DOC - Oracle APEX featuresThe DOC - Oracle APEX features
The DOC - Oracle APEX features
 
AVEVE Service delivery van de toekomst, TOPdesk on Tour 2016, Antwerpen
AVEVE Service delivery van de toekomst, TOPdesk on Tour 2016, AntwerpenAVEVE Service delivery van de toekomst, TOPdesk on Tour 2016, Antwerpen
AVEVE Service delivery van de toekomst, TOPdesk on Tour 2016, Antwerpen
 
Inter-enterprise-buziness-hub-slideshare-presentation
Inter-enterprise-buziness-hub-slideshare-presentationInter-enterprise-buziness-hub-slideshare-presentation
Inter-enterprise-buziness-hub-slideshare-presentation
 
Rollbase via de REST adapter koppelen met OpenEdge
Rollbase via de REST adapter koppelen met OpenEdgeRollbase via de REST adapter koppelen met OpenEdge
Rollbase via de REST adapter koppelen met OpenEdge
 
Abi Mahulete.pdf
Abi Mahulete.pdfAbi Mahulete.pdf
Abi Mahulete.pdf
 
Topdesk - Azure Devops koppeling
Topdesk - Azure Devops koppelingTopdesk - Azure Devops koppeling
Topdesk - Azure Devops koppeling
 
Social, Global and Mobile
Social, Global and MobileSocial, Global and Mobile
Social, Global and Mobile
 
Presentatie Wildcard
Presentatie WildcardPresentatie Wildcard
Presentatie Wildcard
 
CV_Spronk Ingrid_SMART Analyses_NL
CV_Spronk Ingrid_SMART Analyses_NLCV_Spronk Ingrid_SMART Analyses_NL
CV_Spronk Ingrid_SMART Analyses_NL
 
Applicatie Architectuur, Java Frameworks en ADF
Applicatie Architectuur, Java Frameworks en ADFApplicatie Architectuur, Java Frameworks en ADF
Applicatie Architectuur, Java Frameworks en ADF
 
20173103 Dso knooppunt leveranciersdag king
20173103 Dso knooppunt leveranciersdag king 20173103 Dso knooppunt leveranciersdag king
20173103 Dso knooppunt leveranciersdag king
 
SPSNL17 - Integratie van Microsoft Teams met het Bot Framework - Michael Homp...
SPSNL17 - Integratie van Microsoft Teams met het Bot Framework - Michael Homp...SPSNL17 - Integratie van Microsoft Teams met het Bot Framework - Michael Homp...
SPSNL17 - Integratie van Microsoft Teams met het Bot Framework - Michael Homp...
 
HORA toegpast op HU-dienstenportfolio - Joost Veerman (Hogeschool Utrecht) - ...
HORA toegpast op HU-dienstenportfolio - Joost Veerman (Hogeschool Utrecht) - ...HORA toegpast op HU-dienstenportfolio - Joost Veerman (Hogeschool Utrecht) - ...
HORA toegpast op HU-dienstenportfolio - Joost Veerman (Hogeschool Utrecht) - ...
 
Webinar product backlog management.pdf
Webinar product backlog management.pdfWebinar product backlog management.pdf
Webinar product backlog management.pdf
 
Sap leonardo vnsg developerdag 2017 - experis ciber
Sap leonardo  vnsg developerdag 2017 - experis ciberSap leonardo  vnsg developerdag 2017 - experis ciber
Sap leonardo vnsg developerdag 2017 - experis ciber
 
Presentatie Siptique
Presentatie SiptiquePresentatie Siptique
Presentatie Siptique
 
Starten met Azure 20 mei 2022.pptx
Starten met Azure 20 mei 2022.pptxStarten met Azure 20 mei 2022.pptx
Starten met Azure 20 mei 2022.pptx
 

More from NLJUG

Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
NLJUG
 

More from NLJUG (20)

The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachThe future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
 
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
 
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan SchrijverDecoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
 
Kill the mutants and test your tests - Roy van Rijn
Kill the mutants and test your tests - Roy van RijnKill the mutants and test your tests - Roy van Rijn
Kill the mutants and test your tests - Roy van Rijn
 
The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...
 
Performance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersPerformance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen Borgers
 
Introduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus JuraIntroduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus Jura
 
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
 
Workshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosWorkshop angular dart presentatie - Atos
Workshop angular dart presentatie - Atos
 
Workshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosWorkshop spring boot presentatie - Atos
Workshop spring boot presentatie - Atos
 
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van DisselCultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten Deinum
 
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopperEvolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
 
Apache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn DashorstApache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn Dashorst
 
Opening - Bert Ertman
Opening - Bert ErtmanOpening - Bert Ertman
Opening - Bert Ertman
 
Returning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieReturning the right results - Jettro Coenradie
Returning the right results - Jettro Coenradie
 
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn BlankestijnReactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
 
Event-sourced architectures with Akka - Sander Mak
Event-sourced architectures with Akka - Sander MakEvent-sourced architectures with Akka - Sander Mak
Event-sourced architectures with Akka - Sander Mak
 

Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze