Enviar búsqueda
Cargar
Session Management for scalable web projects (Froscon 2011 talk in german)
•
1 recomendación
•
783 vistas
T
triagens
Seguir
Slides of the Froscon 2011 talk about session management for scalable web pro
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 23
Descargar ahora
Descargar para leer sin conexión
Recomendados
Apm best practices
Apm best practices
rschuppe
Birthday
Birthday
Taras Cherevko
Un peu de_chaleur
Un peu de_chaleur
filipj2000
corporate identity
corporate identity
Davide Giancristoforo
TUTORIAL DEL CURSO
TUTORIAL DEL CURSO
guestcaee79
Hitler photos 3e reich revue life1
Hitler photos 3e reich revue life1
luzia-r
Data visualization short v1.1
Data visualization short v1.1
Adam Winkler
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
Ulrich Krause
Recomendados
Apm best practices
Apm best practices
rschuppe
Birthday
Birthday
Taras Cherevko
Un peu de_chaleur
Un peu de_chaleur
filipj2000
corporate identity
corporate identity
Davide Giancristoforo
TUTORIAL DEL CURSO
TUTORIAL DEL CURSO
guestcaee79
Hitler photos 3e reich revue life1
Hitler photos 3e reich revue life1
luzia-r
Data visualization short v1.1
Data visualization short v1.1
Adam Winkler
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
Ulrich Krause
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Christoph Möller
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
AOE
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
Ulrich Schmidt
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Fabian Niesen
XPages - The Basics
XPages - The Basics
Ulrich Krause
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
adesso AG
Reactive Programming
Reactive Programming
Sebastian Springer
Übersetzungsproduktivität: Der nächste Schritt
Übersetzungsproduktivität: Der nächste Schritt
SDL Language Technologies
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
Kremer Consulting
GWAVACon - Secure and managed file transfer - deutsch
GWAVACon - Secure and managed file transfer - deutsch
GWAVA
DOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best Practice
Ulrich Gerkmann-Bartels
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
matfsw
TDD für Testmuffel
TDD für Testmuffel
Hendrik Lösch
Challenges in converting from Oracle Forms to Oracle ADF
Challenges in converting from Oracle Forms to Oracle ADF
Ulrich Gerkmann-Bartels
imatics FormEngine
imatics FormEngine
imatics Software GmbH
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
dominion
Client Technologien - Ein Überblick für Usability Professionals
Client Technologien - Ein Überblick für Usability Professionals
Thomas Memmel
Citrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die Neuerungen
netlogix
Cryption proflyer de
Cryption proflyer de
cynapspro GmbH
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Aarno Aukia
Más contenido relacionado
Similar a Session Management for scalable web projects (Froscon 2011 talk in german)
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Christoph Möller
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
AOE
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
Ulrich Schmidt
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Fabian Niesen
XPages - The Basics
XPages - The Basics
Ulrich Krause
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
adesso AG
Reactive Programming
Reactive Programming
Sebastian Springer
Übersetzungsproduktivität: Der nächste Schritt
Übersetzungsproduktivität: Der nächste Schritt
SDL Language Technologies
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
Kremer Consulting
GWAVACon - Secure and managed file transfer - deutsch
GWAVACon - Secure and managed file transfer - deutsch
GWAVA
DOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best Practice
Ulrich Gerkmann-Bartels
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
matfsw
TDD für Testmuffel
TDD für Testmuffel
Hendrik Lösch
Challenges in converting from Oracle Forms to Oracle ADF
Challenges in converting from Oracle Forms to Oracle ADF
Ulrich Gerkmann-Bartels
imatics FormEngine
imatics FormEngine
imatics Software GmbH
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
dominion
Client Technologien - Ein Überblick für Usability Professionals
Client Technologien - Ein Überblick für Usability Professionals
Thomas Memmel
Citrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die Neuerungen
netlogix
Cryption proflyer de
Cryption proflyer de
cynapspro GmbH
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Aarno Aukia
Similar a Session Management for scalable web projects (Froscon 2011 talk in german)
(20)
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
XPages - The Basics
XPages - The Basics
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Reactive Programming
Reactive Programming
Übersetzungsproduktivität: Der nächste Schritt
Übersetzungsproduktivität: Der nächste Schritt
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
GWAVACon - Secure and managed file transfer - deutsch
GWAVACon - Secure and managed file transfer - deutsch
DOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best Practice
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
TDD für Testmuffel
TDD für Testmuffel
Challenges in converting from Oracle Forms to Oracle ADF
Challenges in converting from Oracle Forms to Oracle ADF
imatics FormEngine
imatics FormEngine
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
Client Technologien - Ein Überblick für Usability Professionals
Client Technologien - Ein Überblick für Usability Professionals
Citrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die Neuerungen
Cryption proflyer de
Cryption proflyer de
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Session Management for scalable web projects (Froscon 2011 talk in german)
1.
Sessionmanagement für skalierbare
Web-Projekte Martin Schönert – Frank Celler
2.
About.us
Martin Schönert • Dipl.-Mathematiker • triAGENS, Köln • #nosql #C #shakespeare #running #architecture • m.schoenert@triagens.de Frank Celler • Dr. rer. nat. • triAGENS, Köln • #nosql #c #c++ #dylan #pathfinder • f.celler@triagens.de 2011 © triAGENS GmbH | 21.08.2011 1
3.
Agenda 1. Sessionmanagement –
Probleme und Lösungsansätze 2. Demo SessionVOC & Node.js 3. Q&A 2011 © triAGENS GmbH | 21.08.2011 2
4.
Zuerst ein paar
Buzzwords… 2011 © triAGENS GmbH | 21.08.2011 3
5.
Sessionmanagement - ein
Überblick Hat er sich eingeloggt? Was ist im Wer ist der Warenkorb? Benutzer? 2011 © triAGENS GmbH | 21.08.2011 4
6.
Wo speichern wir
die Sessiondaten? Cookies • Größe • Sicherheit Lokales Filesystem Zentraler •Stickyness Server ☺ 2011 © triAGENS GmbH | 21.08.2011 5
7.
Performanz
• Viele Requests/Durchsatz • Viele Webserver und Applicationserver • Latenz • hauptspeicherbasiert • non-blocking/event-basiert/multi-threaded • 100.000 req/s • < 1ms Response Time 2011 © triAGENS GmbH | 21.08.2011 6
8.
Zuverlässigkeit
• Ausfall des Servers Aus Business-Sicht beurteilen! • Ausfall des Racks oder des Rechenzentrums... • Master/Master Replikation • asynchrone Replikation • Funktioniert auch mit mehreren RZ 2011 © triAGENS GmbH | 21.08.2011 7
9.
Housekeeping
• Sessions enden häufig durch Timeout • Aktualisierung des Last-Access-Timestamps • Autom. Aktualisierung des Last-Access • Automatische on-the-fly Garbage Collection • Callbacks 2011 © triAGENS GmbH | 21.08.2011 8
10.
Cachen
• Wiederholter Zugriff auf dieselben Informationen • Z.B. Name des Benutzers, Benutzereinstellungen... • Caching von benutzerbezogenen Informationen • Autom. Laden in die Session • Zurückschreiben per Write Through oder Write Back 2011 © triAGENS GmbH | 21.08.2011 9
11.
Transiente Information
• Informationen in mehrschrittigen Prozessen managen • Hidden-Field-Ping-Pong • Formdata als Teilobjekt einer Session • muss nur einmal validiert werden • eigenes Timeout 2011 © triAGENS GmbH | 21.08.2011 10
12.
Wildwuchs
Kann ich das Ach, so ein löschen? Attribut gibt es schon? Organisatorisches Problem Organisatorische Lösung Wird das Attribut überall aktuell gehalten? Lösung: Sessions haben eine Struktur 2011 © triAGENS GmbH | 21.08.2011 11
13.
Heterogener Einsatz
• Webauftritt verwendet Mix - aus Programmiersprachen - aus Frameworks • Interoperabilitätsprobleme • Programmiersprachen-agnostischer Ansatz 2011 © triAGENS GmbH | 21.08.2011 12
14.
Authentifizierung
• Webserver als Einfallstor für globale Sicherheitslücken • Keine Möglichkeit, Sessions aufzulisten • Nur kontrollierte Änderungen von Sessions • Challenge Response Verfahren • Auch als Authorisierungsserver einsetzbar 2011 © triAGENS GmbH | 21.08.2011 13
15.
Noncen
• Ungewolltes mehrfaches Auslösen der gleichen Aktion Wie geht das? • Noncen (only once) in den URLs • Unbegrenzt viele Noncen in begrenztem Speicher (fragt mich ;-) 2011 © triAGENS GmbH | 21.08.2011 14
16.
Fragen so weit?
else { this.startDemo(); } 2011 © triAGENS GmbH | 21.08.2011 15
17.
NODE.JS
“influenced by systems like Ruby's Event Machine or Python's Twisted” “presents the event loop as a language construct instead of as a library” “HTTP is a first class protocol in Node” var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); 2011 © triAGENS GmbH | 21.08.2011 16
18.
Interoperabilität PHP und
NODE.JS NODE.JS ist noch recht volatil, aber z. B. Push leicht möglich Session-Management in Connect rudimentär Verwendung von PHP für Web-Seite Verwendung NODE.JS für Spezial-Aufgaben, z. B. Push Gemeinsame Sessionverwaltung mittels SessionVOC 2011 © triAGENS GmbH | 21.08.2011 17
19.
Connect
“App = structured like an onion” “Every request enters the onion at the outside and traverses layer by layer till it hits something that handles it and generates a response.” “In Connect: ‘filters and providers’” var Connect = require('connect'); module.exports = Connect.createServer( Connect.logger(), // Log responses to the terminal using Common Log Format. Connect.responseTime(), // Add a special header with timing information. Connect.conditionalGet(), // Add HTTP 304 responses to save even more bandwidth. Connect.cache(), // Add a short-term ram-cache to improve performance. Connect.gzip(), // Gzip the output stream when the browser wants it. Connect.staticProvider(__dirname) // Serve all static files in the current dir. ).listen(1338); 2011 © triAGENS GmbH | 21.08.2011 18
20.
Express Vergleichbar Ruby
Sinatra var express = require('express'); var app = express.createServer( express.logger() , express.bodyParser() ); app.put('/user/:id', function(req, res){ res.send('updating ' + req.user.name); }); app.get('*', function(req, res){ res.send('what???', 404); }); app.listen(3000); 2011 © triAGENS GmbH | 21.08.2011 19
21.
Installation
curl -L http://install.sessionvoc.org/ | sh curl http://npmjs.org/install.sh | sh npm install connect -g npm install connect-sessionvoc -g var connect = require('connect'), sessionvoc = require('connect-sessionvoc').sessionvoc; connect(connect.cookieParser(), sessionvoc(), function(req, res, next) { var sess = req.session res.setHeader('Content-Type', 'text/html'); res.write('<p>Name: '+(sess && sess.uid ? sess.name : "-")+'</p>'); res.end(); }).listen(3000); 2011 © triAGENS GmbH | 21.08.2011 20
22.
The End.
Danke für Eure Aufmerksamkeit! Fragen? Anmerkungen? Jetzt – oder später am Stand bei der Carrera-Bahn! Ansonsten: Download: http://www.sessionvoc.org 2011 © triAGENS GmbH | 21.08.2011 21
23.
About us The triAGENS
GmbH is a service company in the area of complex IT Systems and web based business solutions with high requirements on performance, scalability and security. triAGENS supplies high performance databases based on NoSQL database technology, which is utilized for example at the Deutsche Post. Created by: Dr. Frank Celler and Martin Schoenert triAGENS GmbH Brüsseler Straße 89-93 D-50672 Köln www.triagens.de 2011 © triAGENS GmbH | 21.08.2011 22
Descargar ahora