Im Rahmen des Projektseminars „Personalized Online Services for Ambient Assisted Living“ war ein Teil meiner Aufgabe bei der praktischen Umsetzung die Entwicklung eines Web Services sowie des dazugehörigen Client.
Unser Portal wurde in PHP entwickelt, weshalb ich auch den Web Service damit entwickeln wollte. Um die Arbeit etwas zu erleichtern, machte ich mich auf die Suche nach einem bestehenden Framework für die Entwicklung von Web Services. Fündig wurde ich im PEAR (PHP Extension and Application Repository), nämlich mit dem Paket Services_Webservice. Damit läßt sich tatsächlich relativ leicht und bequem ein Web Service mit allem Drumherum (u.a. WSDL, DISCO) automatisch erzeugen. Hilfreich waren hierzu auch die Informationen aus „Manfred’s Diary„.
Die Probleme traten erst bei der Umsetzung des Clients in Microsoft .NET auf. Als Endgerät diente mir mein T-Mobile MDA compact, der mit Microsoft Windows Mobile 2003 Second Edition läuft. Schnell musste ich die Erfahrung machen, dass Debugging eines (PHP-)Web Service äußerst mühsam ist und immer wieder unerwartete Probleme auftreten. Fast in den Wahnsinn getrieben hat mich die Tatsache, dass eine per Web Service aufgerufene Funktion nur maximal acht (8) Parameter akzeptierte und den neunten einfach ignorierte. Wieso das so ist hab ich noch nicht herausgefunden – werde mich aber bei entsprechender Gelegenheit (d. h. nach den Klausuren) nochmals damit beschäftigen.
Update (20:30): Ich glaub, ich hab den Fehler gefunden :-) Wenn man in .NET einen Parameter mit Wert „Nothing“ übergibt, ignoriert PHP diesen anscheinend. Wenn man stattdessen einen leeren String („“) übergibt, funktioniert es! Es lebe die Plattformunabhängigkeit…