Spotlight Rapid Response UI mit WebSockets Enno Schulte Consultant OPITZ CONSULTING Deutschland GmbH E- Mail: enno.schulte@opitz- consuljng.com +++ BiNe wählen Sie sich in die Telefonkonferenz entweder mit 0800/6648515 oder aus dem Mobilfunknetz mit 069/222216106 ein. Anschließend geben Sie die Konferenz- ID: 6528260 mit dem Sicherheitscode: 121212 ein!!! +++
Rapid Response UI mit Websockets und ADF Enno Schulte Consultant OPITZ CONSULTING GmbH ADF Spotlight, 06.12.2013 OPITZ CONSULTING GmbH 2013 Seite 2
Agenda 1. Problemstellung HTTP 2. Was ist WebSocket 3. Unterschied zu Active Data Service 4. Beispiel OPITZ CONSULTING GmbH 2013 Seite 3
1 Problemstellung HTTP OPITZ CONSULTING GmbH 2013 Seite 4
Request - Response n Keine Möglichkeit serverseitig eine Nachricht an den Client zu initiieren n Deshalb häufig Probleme die UI zu aktualisieren 1 Registrierung Zeit Server Nutzername joe Passwort Senden Click Client Request 1 Wait 2 3 5 Refresh Registrierung Nutzername bereits verwendet Nutzername joe_black 4 Response 1 Serverarbeitung xxxx Passwortbestätigung xxxx Passwort xxxx Passwortbestätigung xxxx Senden Click Request 2 Wait Serververarbeitung Registrierung Nutzer erfolgreich registriert Weiter Refresh Click Quelle: A. Schill und T. Springer. Verteilte Systeme: Grundlagen und Basistechnologien. 6 7 9 8 Response 2 OPITZ CONSULTING GmbH 2013 Seite 5
Bisherige Lösung n Im Web haben sich diverse Konzepte aus XmlHttpRequests und JavaScript (AJAX) entwickelt n Dabei werden im Hintergrund Requests an den Server gesendet (Polling) n Dazu mehr bei Active Data Services OPITZ CONSULTING GmbH 2013 Seite 6
2 Was ist WebSocket OPITZ CONSULTING GmbH 2013 Seite 7
Fakten zu WebSocket n Entworfen für bidirektionale Verbindungen (HTML5) n Server muss nicht auf die Anfrage eines Clients warten n Verschlüsselt oder unverschlüsselt (ws/wss) n HTTP Anfrage an Server! Upgrade auf Websocket GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dghlihnhbxbszsbub25jzq== Origin: http://example.com Sec-WebSocket-Protocol: chat, superchat Sec-WebSocket-Version: 13 OPITZ CONSULTING GmbH 2013 Seite 8
WebSocket Nachteil n Neues Protokoll! evtl. Sicherheitslücken n Wird noch nicht überall unterstützt OPITZ CONSULTING GmbH 2013 Seite 9
3 Unterschied zu Active Data Service OPITZ CONSULTING GmbH 2013 Seite 10
Active Data Service <?xml version="1.0" encoding="utf-8"?> <adf-config xmlns="http://xmlns.oracle.com/adf/config" xmlns:ads="http://xmlns.oracle.com/adf/activedata/config"> <ads:adf-activedata-config xmlns= "http://xmlns.oracle.com/adf/activedata/config"> <transport>streaming</transport> <latency-threshold>5000</latency-threshold> <keep-alive-interval>10000</keep-alive-interval> <max-reconnect-attempt-time>90000</max-reconnect-attempt-time> <reconnect-wait-time>8000</reconnect-wait-time> </ads:adf-activedata-config> </adf-config> n Polling / Long Polling / Streaming n Keep-Alive-Interval OPITZ CONSULTING GmbH 2013 Seite 11
Long Polling n Client öffnet XmlHttpRequest n Server wartet mit Response bis zu einem Event oder bis zum Timeout n Verbindung wird geschlossen n Client öffnet sofort erneut einen Request OPITZ CONSULTING GmbH 2013 Seite 12
Long Polling http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.ajax.devguide.help/docs/ PureAjax_pubsub_clients.html OPITZ CONSULTING GmbH 2013 Seite 13
Streaming n Wirklich Asynchron n iframe für die Kommunikation n Probleme mit Proxys und Firewalls OPITZ CONSULTING GmbH 2013 Seite 14
Streaming http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.ajax.devguide.help/docs/ PureAjax_pubsub_clients.html OPITZ CONSULTING GmbH 2013 Seite 15
4 Beispiel mit WebSockets OPITZ CONSULTING GmbH 2013 Seite 16
Websockets in ADF Projekt verwenden n Erfordert Glassfish 4 oder Weblogic 12 n Weblogic 12.1 API in Library des ViewController-Projektes hinzufügen OPITZ CONSULTING GmbH 2013 Seite 17
Aufbau des Beispiels Java Script connection Message Websocket Page Anwendung Komponente ppr Bean OPITZ CONSULTING GmbH 2013 Seite 18
Fragen und Antworten OPITZ CONSULTING GmbH 2013 Seite 19
Kontakt Enno Schulte Consultant Enno.schulte@opitz-consulting.com OPITZ CONSULTING GmbH Kirchstr. 6 51647 Gummersbach Tel. +49 (2261) 60 01-0 tom.gansor@opitz-consulting.com youtube.com/opitzconsulting @OC_WIRE slideshare.net/opitzconsulting xing.com/net/opitzconsulting OPITZ CONSULTING GmbH 2013 Seite 20
10.11.2014 Spotlight - Projekte & Referenzen - ADF, Forms und.net in einer Mobile Scanner App bei Volkswagen von M. Serban (Pitss) +++ BiNe wählen Sie sich in die Telefonkonferenz entweder mit 0800/6648515 oder aus dem Mobilfunknetz mit 069/222216106 ein. Anschließend geben Sie die Konferenz- ID: 6528260 mit dem Sicherheitscode: 121212 ein!!! +++