Gedanken zu JSON-RPC

Gedanken zu JSON-RPC

Interprozesskommunikation war schon immer ein bisschen ein Mist, zumindest wenn man plattformunabhängiges C++ als Arbeitsgrundlage verwendet. Ich hab viel Ausprobiert und irgendwie war alles nicht zufriedenstellend. Entweder war die Performance nicht akzeptable oder die Benutzbarkeit oder Wartbarkeit waren es nicht. Ich hatte keine Methode gefunden auf der ich guten Gewissens aufbauen wöllte.

Ein de-facto Industriestandard sind ja wohl zweifelsohne Webservices. Aber aus meinem Blickpunkt, dem Blickpunkt eines Visualisierers und Computergraphikers, ist der Overhead, sowohl der Erzeugung als auch der Laufzeit, nicht wirklich akzeptabel. Ich rede nicht unbedingt von jeweils Datendurchsatz, Architektur oder Latenzzeiten. Nimmt man aber alles zusammen und versucht sie auf das Szenario der interaktiven Visualisierung anzuwenden so erhält man ein System was 90% der Probleme löst. Die restlichen 10% allerdings, sind so schmerzhaft schlecht, dass man immer gezwungen wird einen zweiten Datenkanal zu nutzen. Und schon macht man irgendwie wieder alles doppelt. Die Programmierung in der Computergraphik und der interaktiven Visualisierung ist so bedauernswert weit weg von sinnvollem Software Engineering. Aber ich habe es mir ja auch ausgesucht dieses Problem als eigenes Forschungsfeld anzugehen und entsprechende Lösungen zu erarbeiten. Es ist eine äußerst unfruchtbare Arbeit, aber es ist mir wichtig und ich bin überzeugt, dass es das wert ist.

Eine Idee die mir seit neuster Zeit im Kopf rum geht dreht sich hierbei um JSON-RPC. Das Protokoll ist simpel, klein, trivial, aber praktisch für alle technischen Probleme ausreichend; eine charmante Kombination. Im Besonderen, da der eigentliche Kommunikationskanal ja nicht feststehen muss. So können die entsprechenden Anfragen in den high-performance Datenstrom der restlichen Kommunikation mit eingeflochten werden, müssen es aber nicht. Als reine interpretierende und verwaltende Ebene halte ich das Ganze für eine ungemein gute Idee.

Und an der konkreten Umsetzung krankt es wieder. Ich will nicht behaupten, dass ich bisher eine erschöpfende Suche nach Bibliotheken durchgeführt hätte, aber die die ich bisher gesehen habe sind von ernüchternder Qualität. Während, als Grundlage, jsoncpp und jansson einen guten Eindruck hinterlassen haben, kann ich das über JsonRpc-Cpp und libjson-rpc-cpp nicht behaupten. Ich will die beiden Projekte nicht schlecht machen. Sie erfüllen nur einfach meine Anforderungen nicht, z.B. dass man sie als Dlls unter Windows bauen kann, ohne massive Änderungen am Quelltext durchführen zu müssen.

Ehrlich gesagt, weiß ich noch nicht wo das ganze mich hin führen wird. In nächster Zeit sicherlich nirgendwo hin, da ich noch genug andere und wichtigere Baustellen gerade offen habe. Aber die Idee bleibt gut und ich werde sie weiter verfolgen.

2 Kommentare zu „Gedanken zu JSON-RPC

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.