SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Avoid Network Issues
and Polling with
WebSockets!
Kai Donato
Jun 29, 2016 | Kscope16
2
Facts & Figures
Independent Technology House
with Cross-Industry Expertise
Headquarter
Ratingen
(North Rhine – Westphalia)
180
Employees
Founded
1994
Branches
Dortmund, Cologne,
Frankfurt
Top Company
for Trainees &
Students
Privately-
Owned
Corporation
Oracle
Platinum
Partner
24 Mio. Euro
Revenue
3
• Kai Donato
• Working for MT AG since JAN-2014
• Consultant for APEX Development
• DOAG – Responsible for Topics regarding
JavaScript and HTML5
• More than 10 years in Web Development
• IT-specialist for system integration
• UNIX-Server and Network-Administration
Twitter: https://twitter.com/_KaiDonato
LinkedIn: https://de.linkedin.com/in/KaiDonato
Über mich
• What are WebSockets?
• Why WebSockets?
• Where are WebSockets used already?
• Use Cases
• Conclusion
4
Agenda
What are
WebSockets?
• The best choice for Realtime Applications
• A persistent Connection between Server and Client
• Server-side and client-side implementation
• Node.js, Java, Ruby, Python, Erlang, C++, .NET
• Bidirectional data transfers – even initiated by the server!
6
Was sind WebSockets?
I‘ve got
something
for you!
Polling vs. WebSockets
7
© http://streamdata.io/wp-content/uploads/2015/09/Capture-d’écran-2015-09-09-à-14.10.25.png?0bd31a
Why
WebSockets?
• The developer is able to break out the “Request & Response“-Scheme
• It is possible integrate this technology as a microservice
• WebSockets can be a reliable alternative to Polling operations
• Now compatible with all* browsers
9
Why WebSockets?
• Many users used to be notified when something happens
• Push on mobile devices
• Notifications on their Desktop-PC („You‘ve got mail!“)
• In many cases a server-side initiated data transfers can reduce
unnecessary server load
10
Why WebSockets?
Where are WebSockets
used already?
• Social Networks
• Chat-Applications (Olark usw.)
• Newsticker
• Collaboration Tools
12
Where are WebSockets used already?
Use Cases
14
Where are WebSockets used already?
• Realtime Twitter Visualization on the
APEXconnect 2016 in Berlin
• Ablösung von Polling
15
Praktische Anwendungsfälle
APEX-Instanz Datenbank
HTTP(S)-Anfrage (Port 80/443) Lesen und Schreiben von Daten
(APEX-Standard-Port)
APEX-Instanz
NodeJS-instanz
Datenbank
HTTP(S)-Anfrage (Port 80/443)
Eintrag von Daten in die Datenbank
(APEX-Standard-Port)
Trigger um die Benachrichtigung vorzunehmen
(beliebiger interner Port)
WebSocket-Port mit ständiger Verbindung(bspw. Port 1337)
Benachrichtigungen vom Server ausgehend zum Client
• Ablösung von Polling
• Chat-Anwendungen
16
Praktische Anwendungsfälle
• Ablösung von Polling
• Chat-Anwendungen
• Collaboration
• Newsfeeds
17
Praktische Anwendungsfälle
Demo
19
Collaboration with
APEX and
WebSockets
21
WebSocket my APEX!
• Clients (WebSocket-Client):
• Registering on every Page Load
• Receiving information about every change of other clients
in realtime
• Server (Node.js – WebSocket-Provider)
• Collecting User-Information for distributing to all clients
• Examining if the current page is locked for the requesting
user
Dem
22
Collaboration in APEX
23
Collaboration in APEX
• Lightweight (minimal hardware requirements)
• Easily extendable (about 290000 Packages available on npmjs.org)
• Runs on all platforms
• Non-Blocking
• Just a few lines of code needed to create a webserver
24
NodeJS as WebSocket-Provider
• PM2 als Prozessmanagement
• Ca. 140 Zeilen Code für:
• Aufbau eines WebSocket-Servers (inkl. SSL)
• Verwaltung aktiver Clients (Connect und Disconnect)
• Entgegennehmen von Verarbeiten von Nachrichten
• Benachrichtigen aller oder gezielter Clients
25
NodeJS als WebSocket-Provider
26
APEX als Front-End
• APEX-Applikation mit Universal Theme
• Dynamic Action zum initialisieren des
WebSockets (on Page Load)
27
1. Benutzer KAI.DONATO@MT-AG.COM meldet
sich an und wechselt auf die
Datensatzbearbeitung (Seite 4)
2. Benutzer DEMOUSER2 meldet sich auf der
Home-Seite (Seite 1) an
3. Benutzer DEMOUSER2 wechselt auf die
Datensatzbearbeitung (Seite 4)
Vorsicht!
• WebSockets sind zwar weitestgehend unterstützt, jedoch muss immer eine
Fallback-Funktion mit eingeplant werden.
• Mobile Geräte müssen mit besonderer Vorsicht behandelt werden
(Zellenwechsel)
• SSL -> ganz oder gar nicht! „Mischkulturen“ werden von Browsern nicht
akzeptiert
• Für WebSocket-Verbindungen müssen zusätzliche Ports freigegeben werden
• Bei Verbindungen über Proxys müssen WebSockets berücksichtigt werden
29
Vorsicht!
👀👀
• Selektive Benachrichtigungen über Statusänderungen (weniger Overhead)
• Einbeziehen von mehr als einem Bearbeiter (Mit direktem Chat?)
• Direkte Übermittlung von Eingaben über die WebSocket-Verbindung
• Hervorheben einzelner Bereiche für Hinweise an den Kollegen
• Erkennung von „Idle“ - Status - Der Bearbeiter ist gerade nicht aktiv
• Anbindung des Node.js-Servers an die Datenbank für Logging und weitere
Funktionalitäten
• ...
30
Mögliche Erweiterungen
💪
• Echtzeitanwendungen profitieren von WebSockets
• Ein guter Ersatz für Polling
• Mittlerweile nicht mehr nur „experimentell“
31
Fazit
32
One Last Thing...
• WebSocket-Plugin für APEX 5
• Coming next month...
33
Vorträge der MT AG
Dienstag, 26. April Mittwoch, 27. April Donnerstag, 28. April
14.00 Uhr | Music Hall 1
Echtzeitvisualisierung von Twitter und Co.
| Kai Donato & Oliver Lemm
16.15 Uhr | Music Hall 2
12.00 Uhr | Soul
14.00 Uhr | Music Hall 3
14.00 Uhr | Jazz 1
16.15 Uhr | Music Hall 1
11.00 Uhr | Music Hall 1
11.00 Uhr | Music Hall 3
14.00 Uhr | Music Hall 2
Universal Theme vs. APEX mobile vs.
MAF
| Davide Groppuso & Steven Grzbielok
WebSocket my APEX!
| Kai Donato
Single Sign-On für alle!
| Niels de Bruijn
Workshop: Einstieg in die aktuelle Version
von Oracle Application Express
| Oliver Lemm
Wie versioniere ich in APEX?
| Oliver Lemm
Interactive Reports Downloads Reloaded
| Moritz Klein
Zeitreisen mit PL/SQL
| Daniel Dyla
APEX for mobile only. Gewusst wie!
| Alexej Schneider
34
Thank you!
@_KaiDonato
https://de.linkedin.com/in/KaiDonato

Weitere ähnliche Inhalte

Was ist angesagt?

Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Kai Donato
 
Heroku – Eine Cloud Application Platform
Heroku – Eine Cloud Application PlatformHeroku – Eine Cloud Application Platform
Heroku – Eine Cloud Application PlatformOnCommerce
 
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)NETWAYS
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...Marc Müller
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführungnodeio
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
Raspberry PI 4 Freifunk Offloader
Raspberry PI 4 Freifunk OffloaderRaspberry PI 4 Freifunk Offloader
Raspberry PI 4 Freifunk OffloaderAnnika Wickert
 
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAXDaniel Fisher
 
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen RechenzentrumCloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen RechenzentrumTEC Campus
 
TFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen GenerationTFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen GenerationNico Orschel
 
IBM Connections 6 und was ist Pink?
IBM Connections 6 und was ist Pink?IBM Connections 6 und was ist Pink?
IBM Connections 6 und was ist Pink?Belsoft
 
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Manfred Steyer
 
Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.Martin Kliehm
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Digicomp Academy AG
 
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)NETWAYS
 
Wer die (Client) Wahl hat, hat die Qual
Wer die (Client) Wahl hat, hat die QualWer die (Client) Wahl hat, hat die Qual
Wer die (Client) Wahl hat, hat die QualBelsoft
 
Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Lennart Passig
 

Was ist angesagt? (19)

Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.
 
Heroku – Eine Cloud Application Platform
Heroku – Eine Cloud Application PlatformHeroku – Eine Cloud Application Platform
Heroku – Eine Cloud Application Platform
 
node.js Einführung
node.js Einführungnode.js Einführung
node.js Einführung
 
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
Icinga 2: Grundaufbau einer Monitoring Umgebung (Webinar vom 01. August 2018)
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführung
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Raspberry PI 4 Freifunk Offloader
Raspberry PI 4 Freifunk OffloaderRaspberry PI 4 Freifunk Offloader
Raspberry PI 4 Freifunk Offloader
 
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
2010 - Basta!: REST mit WCF 4, Silverlight und AJAX
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
 
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen RechenzentrumCloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
 
TFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen GenerationTFS 2015: Build und Release der neuen Generation
TFS 2015: Build und Release der neuen Generation
 
IBM Connections 6 und was ist Pink?
IBM Connections 6 und was ist Pink?IBM Connections 6 und was ist Pink?
IBM Connections 6 und was ist Pink?
 
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
 
Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.Performance. Webmontag. Frankfurt.
Performance. Webmontag. Frankfurt.
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
 
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
 
Wer die (Client) Wahl hat, hat die Qual
Wer die (Client) Wahl hat, hat die QualWer die (Client) Wahl hat, hat die Qual
Wer die (Client) Wahl hat, hat die Qual
 
Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Azure Bootcamp Hamburg
Azure Bootcamp Hamburg
 

Ähnlich wie Avoid Network-Issues and Polling

Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
 
MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...
MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...
MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...Niels de Bruijn
 
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...OPEN KNOWLEDGE GmbH
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
 
Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)NETWAYS
 
WorNet Präsentation: Web 2.0, clevere IT-Tools
WorNet Präsentation: Web 2.0, clevere IT-ToolsWorNet Präsentation: Web 2.0, clevere IT-Tools
WorNet Präsentation: Web 2.0, clevere IT-ToolsDirk Steinkopf
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSRalf Ernst
 
SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365David Schneider
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBBATbern
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftDavid Schneider
 
Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...
Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...
Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...Michael Kirst-Neshva
 
Lasttest auf Zuruf CloudTest on Demand webinar presentation
Lasttest auf Zuruf CloudTest on Demand webinar presentationLasttest auf Zuruf CloudTest on Demand webinar presentation
Lasttest auf Zuruf CloudTest on Demand webinar presentationSOASTA
 
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText BasisAnwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basisnetmedianer GmbH
 
2006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.02006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.0Daniel Fisher
 
3. IPv6 im täglichen Geschäftsleben - Simon Leinen
3. IPv6 im täglichen Geschäftsleben - Simon Leinen3. IPv6 im täglichen Geschäftsleben - Simon Leinen
3. IPv6 im täglichen Geschäftsleben - Simon LeinenDigicomp Academy AG
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Niels de Bruijn
 

Ähnlich wie Avoid Network-Issues and Polling (20)

Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
 
MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...
MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...
MT AG Rapid Application Development mit APEX 5 (Important: latest version on ...
 
Chatbot Hackathon Slidedeck
Chatbot Hackathon SlidedeckChatbot Hackathon Slidedeck
Chatbot Hackathon Slidedeck
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
 
Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)
 
WorNet Präsentation: Web 2.0, clevere IT-Tools
WorNet Präsentation: Web 2.0, clevere IT-ToolsWorNet Präsentation: Web 2.0, clevere IT-Tools
WorNet Präsentation: Web 2.0, clevere IT-Tools
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OS
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365SharePoint Community Mittelland: Fit für Office 365
SharePoint Community Mittelland: Fit für Office 365
 
Public Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBBPublic Cloud Erfahrungsbericht SBB
Public Cloud Erfahrungsbericht SBB
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...
Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...
Hybrid cloud iaa-s_office-365-azure_sharepoint-konferenz-wien-2013_ankbs_mich...
 
Lasttest auf Zuruf CloudTest on Demand webinar presentation
Lasttest auf Zuruf CloudTest on Demand webinar presentationLasttest auf Zuruf CloudTest on Demand webinar presentation
Lasttest auf Zuruf CloudTest on Demand webinar presentation
 
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
 
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText BasisAnwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
 
2006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.02006 - Basta!: Web 2.0 mit asp.net 2.0
2006 - Basta!: Web 2.0 mit asp.net 2.0
 
3. IPv6 im täglichen Geschäftsleben - Simon Leinen
3. IPv6 im täglichen Geschäftsleben - Simon Leinen3. IPv6 im täglichen Geschäftsleben - Simon Leinen
3. IPv6 im täglichen Geschäftsleben - Simon Leinen
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
 

Mehr von Kai Donato

Testing APEX apps At A Glance
Testing APEX apps At A GlanceTesting APEX apps At A Glance
Testing APEX apps At A GlanceKai Donato
 
APEX Offline – The missing Link
APEX Offline – The missing LinkAPEX Offline – The missing Link
APEX Offline – The missing LinkKai Donato
 
>> How toTech-Forward >>
>> How toTech-Forward >>>> How toTech-Forward >>
>> How toTech-Forward >>Kai Donato
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenKai Donato
 
Click, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX ApplicationsClick, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX ApplicationsKai Donato
 
Full Stack Development mit JavaScript
Full Stack Development mit JavaScriptFull Stack Development mit JavaScript
Full Stack Development mit JavaScriptKai Donato
 
APEX and additional Templating Engines
APEX and additional Templating EnginesAPEX and additional Templating Engines
APEX and additional Templating EnginesKai Donato
 
Professional JavaScript Error-Logging
Professional JavaScript Error-LoggingProfessional JavaScript Error-Logging
Professional JavaScript Error-LoggingKai Donato
 
Managing Node.js Instances with Oracle APEX
Managing Node.js Instances with Oracle APEXManaging Node.js Instances with Oracle APEX
Managing Node.js Instances with Oracle APEXKai Donato
 

Mehr von Kai Donato (9)

Testing APEX apps At A Glance
Testing APEX apps At A GlanceTesting APEX apps At A Glance
Testing APEX apps At A Glance
 
APEX Offline – The missing Link
APEX Offline – The missing LinkAPEX Offline – The missing Link
APEX Offline – The missing Link
 
>> How toTech-Forward >>
>> How toTech-Forward >>>> How toTech-Forward >>
>> How toTech-Forward >>
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
 
Click, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX ApplicationsClick, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX Applications
 
Full Stack Development mit JavaScript
Full Stack Development mit JavaScriptFull Stack Development mit JavaScript
Full Stack Development mit JavaScript
 
APEX and additional Templating Engines
APEX and additional Templating EnginesAPEX and additional Templating Engines
APEX and additional Templating Engines
 
Professional JavaScript Error-Logging
Professional JavaScript Error-LoggingProfessional JavaScript Error-Logging
Professional JavaScript Error-Logging
 
Managing Node.js Instances with Oracle APEX
Managing Node.js Instances with Oracle APEXManaging Node.js Instances with Oracle APEX
Managing Node.js Instances with Oracle APEX
 

Avoid Network-Issues and Polling

  • 1. Avoid Network Issues and Polling with WebSockets! Kai Donato Jun 29, 2016 | Kscope16
  • 2. 2 Facts & Figures Independent Technology House with Cross-Industry Expertise Headquarter Ratingen (North Rhine – Westphalia) 180 Employees Founded 1994 Branches Dortmund, Cologne, Frankfurt Top Company for Trainees & Students Privately- Owned Corporation Oracle Platinum Partner 24 Mio. Euro Revenue
  • 3. 3 • Kai Donato • Working for MT AG since JAN-2014 • Consultant for APEX Development • DOAG – Responsible for Topics regarding JavaScript and HTML5 • More than 10 years in Web Development • IT-specialist for system integration • UNIX-Server and Network-Administration Twitter: https://twitter.com/_KaiDonato LinkedIn: https://de.linkedin.com/in/KaiDonato Über mich
  • 4. • What are WebSockets? • Why WebSockets? • Where are WebSockets used already? • Use Cases • Conclusion 4 Agenda
  • 6. • The best choice for Realtime Applications • A persistent Connection between Server and Client • Server-side and client-side implementation • Node.js, Java, Ruby, Python, Erlang, C++, .NET • Bidirectional data transfers – even initiated by the server! 6 Was sind WebSockets? I‘ve got something for you!
  • 7. Polling vs. WebSockets 7 © http://streamdata.io/wp-content/uploads/2015/09/Capture-d’écran-2015-09-09-à-14.10.25.png?0bd31a
  • 9. • The developer is able to break out the “Request & Response“-Scheme • It is possible integrate this technology as a microservice • WebSockets can be a reliable alternative to Polling operations • Now compatible with all* browsers 9 Why WebSockets?
  • 10. • Many users used to be notified when something happens • Push on mobile devices • Notifications on their Desktop-PC („You‘ve got mail!“) • In many cases a server-side initiated data transfers can reduce unnecessary server load 10 Why WebSockets?
  • 12. • Social Networks • Chat-Applications (Olark usw.) • Newsticker • Collaboration Tools 12 Where are WebSockets used already?
  • 14. 14 Where are WebSockets used already? • Realtime Twitter Visualization on the APEXconnect 2016 in Berlin
  • 15. • Ablösung von Polling 15 Praktische Anwendungsfälle APEX-Instanz Datenbank HTTP(S)-Anfrage (Port 80/443) Lesen und Schreiben von Daten (APEX-Standard-Port) APEX-Instanz NodeJS-instanz Datenbank HTTP(S)-Anfrage (Port 80/443) Eintrag von Daten in die Datenbank (APEX-Standard-Port) Trigger um die Benachrichtigung vorzunehmen (beliebiger interner Port) WebSocket-Port mit ständiger Verbindung(bspw. Port 1337) Benachrichtigungen vom Server ausgehend zum Client
  • 16. • Ablösung von Polling • Chat-Anwendungen 16 Praktische Anwendungsfälle
  • 17. • Ablösung von Polling • Chat-Anwendungen • Collaboration • Newsfeeds 17 Praktische Anwendungsfälle
  • 18. Demo
  • 19. 19
  • 21. 21 WebSocket my APEX! • Clients (WebSocket-Client): • Registering on every Page Load • Receiving information about every change of other clients in realtime • Server (Node.js – WebSocket-Provider) • Collecting User-Information for distributing to all clients • Examining if the current page is locked for the requesting user
  • 24. • Lightweight (minimal hardware requirements) • Easily extendable (about 290000 Packages available on npmjs.org) • Runs on all platforms • Non-Blocking • Just a few lines of code needed to create a webserver 24 NodeJS as WebSocket-Provider
  • 25. • PM2 als Prozessmanagement • Ca. 140 Zeilen Code für: • Aufbau eines WebSocket-Servers (inkl. SSL) • Verwaltung aktiver Clients (Connect und Disconnect) • Entgegennehmen von Verarbeiten von Nachrichten • Benachrichtigen aller oder gezielter Clients 25 NodeJS als WebSocket-Provider
  • 26. 26 APEX als Front-End • APEX-Applikation mit Universal Theme • Dynamic Action zum initialisieren des WebSockets (on Page Load)
  • 27. 27 1. Benutzer KAI.DONATO@MT-AG.COM meldet sich an und wechselt auf die Datensatzbearbeitung (Seite 4) 2. Benutzer DEMOUSER2 meldet sich auf der Home-Seite (Seite 1) an 3. Benutzer DEMOUSER2 wechselt auf die Datensatzbearbeitung (Seite 4)
  • 29. • WebSockets sind zwar weitestgehend unterstützt, jedoch muss immer eine Fallback-Funktion mit eingeplant werden. • Mobile Geräte müssen mit besonderer Vorsicht behandelt werden (Zellenwechsel) • SSL -> ganz oder gar nicht! „Mischkulturen“ werden von Browsern nicht akzeptiert • Für WebSocket-Verbindungen müssen zusätzliche Ports freigegeben werden • Bei Verbindungen über Proxys müssen WebSockets berücksichtigt werden 29 Vorsicht! 👀👀
  • 30. • Selektive Benachrichtigungen über Statusänderungen (weniger Overhead) • Einbeziehen von mehr als einem Bearbeiter (Mit direktem Chat?) • Direkte Übermittlung von Eingaben über die WebSocket-Verbindung • Hervorheben einzelner Bereiche für Hinweise an den Kollegen • Erkennung von „Idle“ - Status - Der Bearbeiter ist gerade nicht aktiv • Anbindung des Node.js-Servers an die Datenbank für Logging und weitere Funktionalitäten • ... 30 Mögliche Erweiterungen 💪
  • 31. • Echtzeitanwendungen profitieren von WebSockets • Ein guter Ersatz für Polling • Mittlerweile nicht mehr nur „experimentell“ 31 Fazit
  • 32. 32 One Last Thing... • WebSocket-Plugin für APEX 5 • Coming next month...
  • 33. 33 Vorträge der MT AG Dienstag, 26. April Mittwoch, 27. April Donnerstag, 28. April 14.00 Uhr | Music Hall 1 Echtzeitvisualisierung von Twitter und Co. | Kai Donato & Oliver Lemm 16.15 Uhr | Music Hall 2 12.00 Uhr | Soul 14.00 Uhr | Music Hall 3 14.00 Uhr | Jazz 1 16.15 Uhr | Music Hall 1 11.00 Uhr | Music Hall 1 11.00 Uhr | Music Hall 3 14.00 Uhr | Music Hall 2 Universal Theme vs. APEX mobile vs. MAF | Davide Groppuso & Steven Grzbielok WebSocket my APEX! | Kai Donato Single Sign-On für alle! | Niels de Bruijn Workshop: Einstieg in die aktuelle Version von Oracle Application Express | Oliver Lemm Wie versioniere ich in APEX? | Oliver Lemm Interactive Reports Downloads Reloaded | Moritz Klein Zeitreisen mit PL/SQL | Daniel Dyla APEX for mobile only. Gewusst wie! | Alexej Schneider