Mailinglisten-Archive |
morgen ringo, ich würde eine requestbasierte schnittstelle entwerfen (wsdl soap). wsdl (web service description language) in einem webservice werden immer zwei messages zu den funktionen definiert: eine request message und eine response message: in deinem beispiel: Am 11 Aug 2006 um 0:06 hat Ringo Großer geschrieben: > Beispiel einer Benutzerregistrierung über die Applikation auf > dem fremden Server. Dabei sollen die Methoden der Klasse > auf meinem Server zur Anwendung kommen und der Account > schließlich in der Datenbank auf meinem Server abgelegt > werden. Das würde bislang etwa so aussehen: > > $reg = new Registration; > if ( !$reg->validate($account) ) { > $errors = $reg->getErrors(); > print_r($errors); > } > else { > $reg->saveAccount($account); > } dazu müsstest du im wsdl file ein funtion definieren zbsp.: NewRegistration die erhält als request parameter all die Account Informationen die du benötigst. dein Webservice-Server (zbsp: server.php) erhält all diese daten, du mußt die funktion oder klasse Registration ausprogrammieren und dem client ein ok (Response-Message) oder error (SOAP Fault ) zurück senden. am besten und liest mal das manuel zur soap-extension genau durch. darin findest du alle benötigen informationen. ein webservice beschreibt dir funktionen und datentypen die von einem client aufgerufen werden können. dabei übernimmt die soap extension den datentransfer vom client zum server und zurück als soap- messages. der server wird so programmiert das eine klasse (die an den server gebunden ist) all die benötigen funktionen beinhaltet die das webservice anbietet und naturlich auch noch weitere. natürlich kann man auch methoden von fremdklassen in der eigentlichen serverklasse benutzen (fremdklasse::methode();). bezüglich security: du kannst wahlweise über client certs gehen oder eine proxy - authorisierung ausprogrammieren. performanz: das stimmt natürlich das webservices eine menge daten übertragen, abzuwegen welche und vieviele daten zu übertragen sind (performanz test durchführen socket vs. soap), zusätzlich würde ich den gesichtpunkt der erweiterbarkeit eines webservcie nicht ausser acht lassen: eine neue funktion definiert die der server klasse hinzugefügt und fertig. sockets: sind natürlich auch eine möglichkeit, nur frage ich mich in wie weit du die daten schickst (per POST logisch) wenn du diese in ein xml- file einbindest kannst du gleich ein webservice schreiben. hab auch erst vor 1 monat mit einem umfangreichen webservice begonnen. (client authentifizierung mittels client cert) benutzerverwaltung, logs,.... bin von die einfachheit und erweiterbarkeit von webservices begeistert. ich mach das alles mit php5 und das ding läuft einwandfrei und schnell. hab auch schon viel mit socket verbindungen gearbeitet dort ist jedoch der aufwand ein vielfaches. so long, peter
php::bar PHP Wiki - Listenarchive