Weekly Snap: Qcow2, SNMP & MAX!

weekly snap30 September – 4 October started a new month with tips for VM mounting and printer monitoring alongside ideas for communication in web applications and centralized office heating.
Starting the week, Eva counted 23 days to the OSMC 2013 with Ralf Döring’s presentation on “Monitoring at DB Systel” before sharing her memories and photos from the recent OpenNebula Conf 2013.
Following with sys admin tips, Achim mounted qcow2 using libguestfs tools and Markus W showed how to monitor printers via SNMP while Michael forwarded news of the latest Nagios Plugins 1.5 release.
Finally, Jannis considered the various approaches to asynchronous communication in web programs as Georg introduced a new centralized heating regulator to the office.

Asynchrone Kommunikation im Web: Eine kleine Übersicht

Während das Web in den meisten Fällen mit dem klassischen Request-Response Modell funktioniert, benötigen heutzutage immer mehr Applikationen (spätestens wenn es um Kollaboration geht) die Möglichkeit, vom Server unaufgefordert Informationen zu bekommen. Mittlerweile gibt es dafür einen Wulst voller Bibliotheken und Schnittstellen.
Mein heutiger Blogpost soll gar nicht genau auf eine (oder alle) der Technologien vorstellen, sondern nur eine kurze Übersicht und Anregung geben, wenn man mal auf der Suche ist:

  • HTTP Polling oder lange blockierende HTTP Requests (Comet): Diese gehen immer und brauchen auch keine spezielle Bibliothek. Man stellt entweder sehr oft Anfragen und der Server sagt dann schon wenn etwas passiert, ansonsten nichts (Polling eben) oder der Server blockiert bis etwas passiert und sendet in diesem Falle die Antwort für den Request. Blockiert allerdings in älteren Browsern immer eine der häufig benötigten Verbindungen und ist (egal in welcher Variant) nur noch als Fallback für ältere Browser geeignet (Comet). Davon gibt es viele Varianten, im IFrame oder um Streaming zu ermöglichen, letzten Endes ists aber immer eine Krücke. Da das keine ‘offizielle Technik’, sondern eher ein Hack ist gibts als weiterführende Literatur nur die Wikipedia Seite.
  • Websockets: Ein eigenes Protokol das eigens für persistente bidirectionale Kommunikation mit dem Server gedacht ist. Läuft auch auf vielen Mobilgeräten und kann für ältere Browser (wenn man den Technologiebruch verkraften kann) über ein Flash Fallback wie websocket-as nachgerüstet werden. Bei Websockets läuft die Kommunikation über einen anderen Port als 80, daher kann eine restriktive Firewall hier den Spaß verderben. Die exzellente Mozilla Developer Network Seite weist den Weg, ein Blick in den Standard kann aber auch nicht schaden. Größter Nachteil: Der mangelnde Browsersupport und die z.T. auf Drafts aufbauende Implementierung in älteren Browsern.
  • Server-Sent Events: Eine W3C Recommendation, die es einem Server erlaubt, Events über einen offenen Kanal an Clients (!= Internet Explorer) zu senden. Das Protokoll ist extrem einfach und kommt mit HTTP Bordmitteln aus, im Gegensatz zu Websockets kann der Server aber über den gleichen Kanal keine Events empfangen (dafür muss man dann wieder neue Requests senden). Einen Vorteil gegenüber Websockets sehe ich darin, dass die Kommunikation über den HTTP Port geschieht, ich würde im Zweifel jedoch eher auf Websockets setzen. Die sind mittlerweile ein Standard und haben heute schon besseren Browsersupport. Die W3C Recommendation fängt mit guten Beispielen an, und Mozilla hat ein Beispiel in PHP.

Es gibt hiervon noch einige Varianten, bei der Auswahl einer Technologie muss man sich aber für Performance vs. Kompatibilität entscheiden. Meine klare Empfehlung ist daher, eine Bibliothek wie SockJS zu verwenden. Diese wählt für die aktuelle Platform das effizienteste Protokoll heraus und abstrahiert dessen Verwendung für den Nutzer. Durch die große Auswahl an Adaptern für verschiedene serverseitige Technologien ist es damit kinderleicht, asynchrone Nachrichten zwischen Browser und Server auszutauschen.
Ich hoffe zwar in Zukunft direkt mit Websockets arbeiten zu können, allerdings wird es wohl noch eine Weile dauern bis der Internet Explorer 10 in jeder Firma angekommen ist.

Jetzt geht's los.. jetzt geht's los – Webmontag!

Die letzten Vorbereitungen haben wir eben abgeschlossen – der Beamer ist positioniert, die Getränke kühl gehalten und genügend Raum geschaffen für ein angenehmes Socialising drum herum haben wir auch. Somit erwarten wir nun mit Spannung um 19 Uhr das bunt gemischte Publikum des diesigen Webmontags. Alle Teilnehmer erwartet heute folgende Präsentationen:
1. Application Scale Out – Best Practise – Bernd Erk
2. “Magento als eCommerce-Lösung – Lessons learned” – Michael Rohrmüller ( PIXELMECHANICS – Webproduktion, Twitter, Xing, Blog)
3. “UKIJS – Simple UI Kit for complex web apps” – Sven Winkler Nix-wie-weg.de, Xing Profile
4. Jürgen Enninger, Regionaler Ansprechpartner Kultur- und Kreativwirtschaft für Bayern im Kompetenzzentrum des Bundes, Nürnberg und München
Thema: Vorstellung des Regionalbüros Bayern im Kompetenzzentrum Kultur- und Kreativwirtschaft der Bundesregierung
5. Aktuelle Projekte:
– Pecha Kucha Nürnberg – Halil Kavasoglu und Markus Teschner
– Coworking Space – Michael Niqué
– Twist Projekt – Markus Teschner
Nach der Veranstaltung stellen wir die Vortragsfolien gerne hier in unseren Blog zum download. Wir wünschen allen Teilnehmenden viel Spaß!

WEBMONTAG: diesmal bei uns im Deutschherrnkaree am 07.06.2010

Web 2.0 und damit zusammenhängende Themen findest du spannend?  Dich interessiert es Wissen zu teilen, sich miteinander auszutauschen und zu vernetzen? Dann ist der Webmontag genau das richtige für dich!
Der Webmontag ist als ein informelles, nicht-kommerzielles, dezentral organisiertes Treffen zu verstehen, das zum Ziel hat, all diejenigen miteinander zu verbinden, die die Zukunft des Internet gestalten.
Der nächste Webmontag findet am 07.06.2010 bei uns, bei NETWAYS, im Deutschherrnkarree in der Deutschherrnstraße 15-19 / 2. Stock statt!
Ob Erfinder, Ingenieur, Designer, Gründer oder Finanzier seid herzlich willkommen denn der Webmontag ist die Gelegenheit, ein neues Produkt, Service, Startup, oder die nächste große Idee einem stetig wachsenden Publikum von Webbegeisterten vorzustellen! Kommt einfach vorbei, wir starten um 19.00 Uhr! See you on monday!