Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar.

Slides:



Advertisements
Verwante presentaties
Defining a standard JSON-based exchange format for learning metadata Manon Haartsen.
Advertisements

Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Alfalab Microtoponiemenproject Expertmeeting (annotaties) Meertens Instituut 8 April 2010 Charles van den Heuvel Virtual Knowledge Studio for the Humanities.
Internet College 2 Architecturen. Architectuur van netwerktoepassingen •Peer to peer –Windows werkgroep •File- en printer sharing •Internet connection.
Mashups for the masses Maarten Brugman & Sven Vintges.
Mashups for the masses Maarten Brugman & Sven Vintges Atos Origin SI Center of Excellence RIA.
Maandag 18 april GSM : Global System for Mobile Communication Group Spécial Mobile (1982)
JQuery en ASP.NET Bart De Meyer.
Service Coordination Protocols ● Noodzaak (Eddy) ● Coordination protocols (Eddy) ● Infra-structuur (Eddy) ● WS-Coordination (Eddy) ● WS-Transaction (Pepijn)
Lucene/SOLR 1: inleiding + indexering
Biml en Data Vault.
Internet Internet Diensten Informatie Maatschappij
Woensdag 24 juni 2009 Web 2.0 en Technologie Bram de Kruijff.
© 2004 IBM Corporation Guts Wissema, OpenSource & Linux Sales, IBM Open Document Format.
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
(Gast)gebruik van (W)LAN op basis van 802.1X
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar.
Server side scripting 1 Webtechnologie Lennart Herlaar.
Introductie Webtechnologie Lennart Herlaar Lennart Herlaar - UU.
Client side scripting 1 Webtechnologie Lennart Herlaar.
Network Address Translation
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
Enterprise Application Integration Walter Moerkerken Ilona Wilmont Integratie Software Systemen 8 mei 2006.
Integratie Software Systemen Alonso, Casati, Kunu & Machiraju Web Services - Concepts, Architectures and Applications Hoofdstuk 5 – Webservices Danny Romme.
Lezingenreeks : weefsels Introductie wiki. Wat is een wiki? Wiki From Wikipedia, the free encyclopedia A wiki is computer software that allows users to.
WinFX Overview Martin Tirion Senior Consultant Microsoft Services.
27 januari 2011 Sessie: Cloud scenario’s. Hoe te starten met cloud bij uw organsiatie? Irwin Hunter Solution Specialist UC en Cloud Computing
27 januari Werkplek Strategie Van Dromen naar Werkelijkheid Rob Elsinga Enterprise Strategy Business Microsoft Nederland.
Applicatieplatform congres 12 & 13 maart
3.6 Architecture of HIS. 3.7 Integrity & Integration within HIS Suraja Padarath /10/2007.
Real-Time Systems (RTSYST) Week IPC inter process communication Shared variabele based (H5) Message based (H6) Kan ook gebruikt worden in systemen.
Opgave 1a: afronden int n=5; double a, b, c, d; a = n * 1.5; b = n * 3 / 2; c = n / 2 * 3; d = 3 / 2 * n; a b c d
Client side representation 1 Webtechnologie Lennart Herlaar.
Mashups for the masses Maarten Brugman & Sven Vintges.
Programmeren met Algebra André van Delft 6 februari 2012 Presentatie op Grotius College Delft.
JAVA -- H111 Socket (of communicatiekanaal): UNIX-term voor de communicatie tussen processen -> uitwisseling van gegevens -> meerdere machines bv. client.
#3Software planning. refactor  Vermijdt dubbele code Welke code lijkt veel op elkaar?
 Siemens Nederland N.V Get a bit more. Siemens. 1 datum naam presentatie SMS & WAP Eerste stappen naar mobiel data verkeer.
Computernetwerken Academiejaar de Bachelor INF/ICT – Schakelprogramma INF Wim Lamotte.
Wolter Kaper - AJAX en Javascript via Rails Deel 1 en 2.
JProject02 Bert Jacobs Ignace Van Tricht 4 juni 2009.
Visual Basic.Net - Overzicht
AJAX een korte introductie Koen Willems & Edwin Vlieg PHPFreakz,
Geheugen, distributie en netwerken Netwerken: de basis voor distributie van gegevens en taken (processen) –bestaan zo’n 40 jaar, zeer snelle ontwikkeling.
802.1X in SURFnet Intern seminar over 802.1X 24 Mei 2004 Utrecht.
De PROFIBUS, PROFINET & IO-Link dag 2011 Share our Vision for Automation.
Introductie tot de SEESCOA methodologie en de Draco Runtime omgeving Yves Vandewoude Peter Rigole.
<HTML> <HEAD> <TITLE>Eerste script </TITLE>
XForms TU Delft Library Digitale Productontwikkeling Egbert Gramsbergen.
Microsoft Operations Manager & Scripting
Web Applicaties Bouwen met Visual Studio .NET
© Copyright VIMC 2009 Telecom Expense Management A Discussion Ed Vonk
1 december KC Development Tools Oracle HTML DB 2.0.
We zijn toch allemaal zoekende?
De evolutie van JavaScript
In samenwerking met HowITsDone JSF versus AngularJS client-server 2.0.
Dick Dijkstra Azure Technical Specialist Microsoft
In samenwerking met HowITsDone Spring as legacy Hoe innovatie legacy kan worden.
Het geheim van Linked Data Marcel ReuversGeonovum CB-NL 20 november 2014.
Socket Programming Berkeley Sockets & WinSock 2
MVC in de praktijk Jeroen Swart.NET architect, Quintor
Webapplicaties: de clientkant Herman Koppelman Sylvia Stuurman 13 november 2010.
Node.js en NPM. Node.js Open source, crossplatform runtime omgeving voor server-side javascript applicaties, primair bedoel snelle, schaalbare netwerk.
Javascript.
Team 5 Jeffrey.
draft-geng-detnet-requirements-bounded-latency- 01
Transport Services (TAPS) Working Group
Transcript van de presentatie:

Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar

Inhoud •Stateful web •AJAX, JSON •(HTML5) developments •Trends

Websockets •(HTML5) Standaard voor meerdere full-duplex communicatiekanalen via één TCP poort (80) •Omzeilen van blokkades van andere poorten •En voor webapps met persistent tweeweg behoefte! •HTTP-compatible handshake •Upgrade mechanisme naar Websocket protocol •Websocket frames over dezelfde TCP connectie •Feitelijk een ander application layer protocol •JavaScript API; event driven •Protocol: IETF RFC6455; API: W3C

Websockets •Geïnitieerd door de client; long-polling alternatief •Same Origin Policy niet persé afgedwongen •Vergelijkbaar met CORS •ws:// en wss:// URI schemes •Vergt uiteraard wel een Websocket aware server GET /ws HTTP/1.1 Host: ws.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Origin: Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== HTTP/ Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= var myWebSocket = new WebSocket("ws://ws.example.com/ws"); myWebSocket.send("Hello World!"); myWebSocket.close(); myWebSocket.addEventListener("message", function(e) { alert("Received Message: " + e.data);}, false); function sendText() { var msg = { type: "message", text: document.getElementById("text").value, id: clientID, date: Date.now() }; mySocket.send(JSON.stringify(msg)); }

Web workers •(HTML5) Standaard voor langlopende JavaScripts die draaien in de achtergrond •Heavy-weight, batch processing •Losstaand van JavaScript voor UI afhandeling •Geen DOM access, maar communicatie via messages •Twee types: dedicated en shared workers •Werking van cross-document messaging, SSE, websockets en web workers lijkt op elkaar •Event driven, non-blocking var worker = new Worker("worker.js"); worker.addEventListener("message", function(e) { document.getElementById("result").textContent = e.data; } worker.postmessage("Your workday has begun!"); worker.terminate(); var n = 1; search: while (true) { n += 2; for (var i = 2; i <= Math.sqrt(n); i += 1) if (n % i == 0) continue search; // found a prime! postMessage(n); }

Application cache •HTML5 standaard voor offline application cache •Downloaden van een versie die offline draait •Op basis van een cache manifest file •Offline browsing, snelheid, server resources •CACHE MANIFEST, NETWORK, FALLBACK •Let op: caching is permanent •Tot het expliciet opschonen van de cache •Tot het wijzigen van de cache manifest file •Tweemaal laden voor een actuele versie... Hello World... CACHE MANIFEST # v1.0.0 /theme.css /logo.png /main.js NETWORK: login.asp FALLBACK: /video/ /offline.html

Stateful web, developments, trends 7 Webtechnologie Lennart Herlaar

Gartner Hype Cycle

Node.js •JavaScript "framework" voor internet applicaties •Met name webservers (server side JavaScript!) •Minimale overhead, maximale scalability •Event driven, non-blocking; real-time applicaties •JavaScript engine en diverse ingebouwde libraries •Socket.IO •Module voor Node.js voor Websockets, inclusief cross-browser fallbacks (flash, long-polling, iframe) •Heeft ook een client component •"jQuery voor Websockets" http.createServer( function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); } ).listen(8000); console.log('Server running at var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); var socket = io.connect(' socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); });

NoSQL •Verzamelterm voor DBMSen die bepaalde relationele aspecten loslaten •NoREL is een betere naam •Geen SQL, geen schema, geen joins, geen ACID •Horizontale schaalbaarheid •Key-value stores, document stores,... •Past soms beter bij 't soort data en 't real-time aspect •CouchDB •Opslag van JSON documenten •Views als JavaScript functies •HTTP API

HTML5 Canvas, SVG, WebGL •Canvas is een HTML5 element voor het dynamisch renderen van 2D-vormen en bitmaps •Scriptable vanuit JavaScript •Flash killer? •Canvas versus Scalable Vector Graphics (SVG) •SVG betreft vector graphics •Een SVG afbeelding is een XML document •SVG is "higher level": scene graph, event handlers •WebGL: JavaScript API voor native 3D graphics •Maakt gebruik van het canvas element (maar...) This text is displayed if your browser does not support HTML5 Canvas. var example = document.getElementById('example'); var context = example.getContext('2d'); context.fillStyle = 'red'; context.fillRect(30, 30, 50, 50); <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/>

Mobile web •"Het web voor mobieltjes loopt 5 jaar achter" •Matige ondersteuning standaarden, geen JavaScript •Nu: full browser, 4-core processor, retina display •Van native apps naar HTML5? •Fundamentele verschillen •Touch; moeizame keyboard input •Screen real-estate; ontbreken meerdere windows •Bandbreedte, en vooral: datalimieten! •Location awareness •Steeds minder technologie gerelateerd; usability