PHPFlüsterer

Category: Open-Source Software (page 1 of 4)

jQuery-Plugin – jquery.WebSocket

Gerade eben habe ich jquery.WebSocket für euch bereitgestellt. Das Plugin hilft euch dabei auf die WebSocket-Schnittstelle des Browser zuzugreifen. Des weiteren hilft es euch dabei, im Falle älterer Browser auf eine Fallback Variante (AJAX Long Polling) zurückgreifen zu können – völlig automatisch – und dabei die gleiche Schnittstelle nutzen zu können, so wie die gleichen Events als arbeite man mit der nativen WebSocket-Implementierung.

Aktuell arbeite ich an der Multiplexing Unterstützung. Innerhalb einer physischen WebSocket-Connection können dann beliebig logische Verbindungen aufgemacht werden. So kann man innerhalb einer Verbindung eine Vielzahl von Endpunkten verbinden, solange diese auf dem selben Socket-Server liegen. So kann z. B. innerhalb der Verbindung zu Server “ws://Foo:1234″ eine aktualisierung für die Resourcen “/foo/bar”, “/foo/baz” und “/bar/foo” erfolgen. Es müssen dafür nicht 3 eigenständige Verbindung geöffnet werden (C10K). Es sei darauf hingwiesen, dass bei Nutzung dieses Features selbstverständlich das Datenvolumen pro Request ein wenig höher ist als zuvor und ein gesondertes Protokoll auf Applikationsebene implementiert werden muss.

Hinweis:
Ab demnächst und zukünftig wahrscheinlich bei allen Projekten gilt:
News gibt es nach wie vor über meinen Blog und bei Twitter, jedoch wird das Ziel in der Regel eine page bei github sein!

jQuery-Plugin – jquery.ezy

Gerade eben habe ich jquery.ezy für euch bereitgestellt. ezy hilft euch dabei eure Seite auf ein event driven UI umzustellen und das recht smart und simpel. Kein “Schi-Schi” – nur das nötigste, dass aber gut.

Hinweis:
Ab demnächst und zukünftig wahrscheinlich bei allen Projekten gilt:
News gibt es nach wie vor über meinen Blog und bei Twitter, jedoch wird das Ziel in der Regel eine page bei github sein!

 

 

CUPS – the Configurable-Update-Package-System

Zur Zeit arbeite ich in den freien Minuten die mir hier und da bleiben an CUPS, einer Software, die es ermöglicht Software-Updates (Releases) über große Rechenzentren hinweg zu verteilen. Um eine Vorstellung von der Größenordung zu vermitteln, ist es am leichtesten die Anzahl der Server zu nennen die über die Software aktualisiert werden sollen. Hier handelt es sich um mehrere tausend Server, wie sie z. B. bei Google, Facebook, oder auch Twitter eingesetzt werden. Twitter hat vor geraumer Zeit seine Lösung für das genannte Problem als Open-Source-Software unter der ” Apache 2″-Lizenz auf github zur Verfügung gestellt, noch während ich an meinem Konzept gearbeitet habe. Die Software von Twitter nennt sich Murder. Was Murder kann und wie es arbeitet kannst du am leichtesten dem folgenden Video entnehmen:

 

 

Murder hat durch den zentralen Tracker, auf dem das System aufsetzt allerdings wieder einen entscheidenen Nachteil – den Single Point of Failure. Durch den Einsatz eines zentralen Trackers und dem Fehlen der DHT Erweiterung des Bittorrent-Protokolls (Bittorrent Protokoll Erweiterung Nr. 5) kann, ähnlich der beschriebenen Szenarien im Video, das System zur Verteilung von Software ausfallen, weil die Peers die Information zum Bezug des .torrent ohne Tracker nicht mehr beziehen können.

Bei CUPS setze ich gerade deshalb auf eine korrekte Implementierung der DHT-Erweiterung in Kombinationn mit einem custom Protokoll welches zum aktuellen Zeitpunkt unter dem Namen Smoke (abgeleitet von Smokesignal/Rauchzeichen) läuft und über UDP implementiert ist. Smoke setzt zur Kommunikation mit nodes aus dem DHT auf IP-Broadcast messages. Jede Node kann jede Rolle einnehmen und somit initialer Seeder sein, oder aber lediglich einer der update peers.

CUPS wird von mir in Node(.js) entwickelt und zum aktuellen Zeitpunkt steht das Grundgerüst der Software, sowie eine erste Implementierung von Smoke und DHT. Den aktuellen Stand findet ihr wie gewohnt auf github im clickalicious/CUPS repository.

Olderposts

Copyright © 2014 PHPFlüsterer

Theme by Anders NorenUp ↑