In: Programmieren Von: spocket
28 Feb 2006Web2.0 ist ja weniger eine konkrete Technik sondern eher ein Konzept, eine Art Brei von Begriffen. Ein Thema, das dabei immer wieder vorkommt ist, dass Webanwendungen Programmierschnittstellen (APIs) anbieten. Diese kann man jetzt nutzen, um Desktop-Programme für flickr zu schreiben oder auf die Datenbestände von amazon zuzugreifen oder die von ebay oder gar google . Ne tolle Sache diese Offenheit der Webseitenanbieter.
Aber irgendwie muss das Javaprogramm auf Klausis Computer es schaffen die Funktion z.b. bei flickr aufzurufen. Ansätze für dieses Problem gibt es viele und man kann sie unter dem Begriff RPC zusammenfassen.
Java RMI, CORBA und .Net Remoting trifft man eher in der klassischen Anwedungsentwicklung an. In der Webentwicklung haben sich drei Protokolle herauskristallisiert: REST, SOAP und mein heutiges Thema XML-RPC. Die Theorie ist nicht so schwer. Es werden über HTTP Anfragen und Antworten in XML-codiert hin- und hergeschickt. Aber nun auf in die Praxis (mit PHP).
PHP bietet einige Funktionen zu XML-RPC, aber die XML-RPC Library for PHP macht es wesentlich komfortabler. Außerdem gab es dazu diese schöne (englische) Anleitung, in der beispielhaft ein Client und ein Server entwickelt werden.
Als kleinen Test hab ich einen XML-RPC-Server geschrieben, der über die Methode demo.sayHello die Welt begrüßt – sorry, muss einfach sein
Die zweite Methode (gallery.random) liefert den HTML-Code für ein zufälliges Bild aus meiner Gallery. Den passenden Client, der die Verwendung zeigt, habe ich ebenfalls im implementiert.
Den Server erreicht man unter: http://spocket.sp.funpic.de/4images/xmlrpc.php. Der Client liegt auf Sebi‘s Heimserver, weil er zum Einen bei funpic nicht funktioniert und es zum Anderen somit auch richtig remote wird (Client aufrufen).
Wen der Quellcode interessiert, kann ihn jetzt herunterladen. Beim direkten Einbinden des Codes in den Beitrag gab es Probleme.
Download aller drei Dateien
Ich bin Sebastian (30) und das ist mein Blog. Ein spezielles Thema gibt es nicht, aber ich kann wohl behaupten, dass es oft um Bilder geht. Dazu empfehle ich auch meine Gallery zu besuchen.