Transparenter Webservice
hotti
- perl
Im Vorab: Das Rad wurde nicht neu erfunden,
Abstrakt: Der hier vorgestellte Webservice verwendet sowohl für den Request, als auch für die Response eine Datenstruktur (Perl Hash) mit beliebigen Inhalten, wobei der Aufbau der Datenstrukturen allein vom Webservice-Client bestimmt wird. Infolge der Client-Server-Kommunikation über Binärsequenzen via HTTP ist die Übertragung transparent, d.h., der Webservice-Client (UA) benutzt programmiertechnisch dieselben Variablen (Perl Hash) wie der Webservice-Server.
Schönes Wochenende,
Horst
Hallo,
Im Vorab: Das Rad wurde nicht neu erfunden,
Doch. Du hast Remote Procedure Calls in binär und nicht-interoperabel neu erfunden und nennst es »Innovation«.
Infolge der Client-Server-Kommunikation über Binärsequenzen via HTTP ist die Übertragung transparent, d.h., der Webservice-Client (UA) benutzt programmiertechnisch dieselben Variablen (Perl Hash) wie der Webservice-Server.
REST-APIs verwenden die HTTP-Verben, um Ressourcen und den Zugriff darauf zu modellieren. Als Formate stehen Plaintext, HTML, JSON, XML usw. zur Verfügung. Gerade JSON hat sich wegen seiner Interoperabilität durchgesetzt. Für RPCs meist XML wie SOAP.
Bei deiner Methode schicken sich zwei Perl-Programme binär gemarshallte Hashes über HTTP: Das ist eher eine Einschränkung gegenüber der eben beschriebenen offenen Architektur.
Mathias
hi,
Bei deiner Methode schicken sich zwei Perl-Programme binär gemarshallte Hashes über HTTP: Das ist eher eine Einschränkung gegenüber der eben beschriebenen offenen Architektur.
Nun, Offen soll es gar nicht sein. Ich beschreibe ja nur, wie _ich_ mein Remote-Content-Management mache. Wenn andere glauben, sie hätten schon alles, dann bitte meinen Artikel nicht als Absicht deuten, ich wolle deren Glauben erschüttern.
Ich habe diesen Webservice vor 10 Jahren entwickelt. Mein serverseitiges CGI-Script macht mit knapp 120 Zeilen Perl-Code das, was mein Ziel der Sache ist. OK, es kommen ein paar Zeilen Code (Code-Pool) hinzu, nämlich die, welche dem Service mitgegeben werden. Aber das liegt ja auch in der Zeilsetzung: Serverseitig am CGI-Script nichts mehr ändern zu müssen, wenn sich neue Aufgaben mit andreren, beliebig geschachtelten Datenstrukturen ergeben. Wie diese Strukturen aussehen, das bestimmt allein der Client.
Beispielsweise beeinhaltet eine Datenstruktur eine komplette Unterseite (Artikel) für meine Perlbase. Komplett heißt, es sind, neben dem body auch alle andere Attribute drin, wie title, descr... und der Name des virtuellen Ordners im Web-Tree, wo der Artikel rein soll. Ich hatte heute mal wieder den Fall, dass neue Attribute hinzukommen, dafür musste eine neue Tabelle angelegt werden. Das alles war in wenigen Minuten aus meinem Texteditor heraus erledigt. Ziele für die es sich lohnt, mal darüber nachzudenken.
Schönen Abend ;)