Eric Fischer erklärt, wie ein Quasi-Hack die Entwicklung von Usekit massgeblich voranbrachte.

Von Eric Fischer, Usekit

Jungunternehmer schreiben über ihren Alltag.

In der Rubrik Startup-Diary schildern Jungunternehmer, mit welchen praktischen Problemen sie in ihrem Gründeralltag konfrontiert werden und welche Lösungsansätze sie gefunden haben.
 Inzwischen haben wir Usekit.com quasi zwei mal entwickelt: den ersten Prototypen hat Sven im Rahmen seiner Doktorarbeit entwickelt, die derzeitig Plattform ist das Ergebnis unserer gemeinsamen Anstrengungen. Der Prototyp konnte schon vieles von dem, was man heute sieht und sogar manche Dinge die noch nicht neu implementiert sind. Allerdings mussten wir im Verlaufe derEntwicklung feststellen, dass die Basis des Prototyps nicht als Grundlage für unser Produktivsystem herhalten kann.

Wenig Entwicklungspotanzial

Zwar konnte der Prototyp viel leisten, doch auf seiner Grundlage schien uns weder eine standardisierte Weiterentwicklung möglich, noch die Skalierung, durch die eine öffentliche Plattform erst möglich wird.

Ein Problem, das wir lösen mussten, hing direkt mit der Kerntechnologie von Usekit zusammen: die Kommunikation zwischen dem Client (Usekit bar) und dem Server. Die Clientseite basiert auf Javascript (JS) was die Funktionalität insofern limitiert, als JS-Daten eigentlich nur innerhalb einer Domain verschickt werden können (JSON).

Domaingrenzen sprengen

Mit dem Quasi-Hack JSONP, der es erlaubt, Daten über Domaingrenzen hinweg zu verschicken, haben wir das Problem lösen und die Funktionalität der Usekit-Missions realisieren können. JSONP ist im Prinzip nichts Neues und beispielsweise auch in der Bibliothek jQuery implementiert. Es wird aber wohl selten so konsequent genutzt wie wir das für unsere Zwecke tun.

Die von uns genutzte jQuery Implementierung funktioniert wie folgt: Anstelle eines „XML HTTP Request“ an den Usekit Server (der geblockt würde), wird auf Clientseite eine weitere javascript Datei eingebunden, mit der URL zum Usekit Server. Der Client liest die GET Parameter und wandelt sie mit einer callback-methode wieder in Daten um.

Bewährte Lösung neu angewendet

Im Grunde wird nur eine externe JS Datei eingebunden, welche dann die Daten enthält. jQuery lässt es aber so aussehen, als ob es ein json request wäre. Um das ganze sicherer zu machen, wir immer ein „random“ callback function name erzeugt, welcher anschliessend aufgerufen wird um die Daten lokal im javascript zu laden. Der Server hat die Aufgabe, diesen Funktionsnamen auszulesen und die Daten dann innerhalb dieser Funktion zu verpacken.

Wir haben daraus gelernt, dass man Dinge nicht immer neu erfinden muss aber manchmal bekannte Dinge zu Ende denken – so konnten wir das Problem der geschlossenen Domaingrenze umgehen…