--- implematation eines webservice ---
andre_neubauer_berlin, 05:28h
an dieser stelle soll auf eine einfache rudimentäre umsetzung eines webservice-angebotes eingegangen werden. php als skriptsprache bietet mehrere (noch nicht standardisierte) implementationen für die webservice-entwicklung. da automatisch generierte WSDL-dateien oft probleme wegen interoperabilität haben, erfolgt diese lösung ohne WSDL-verwendung.
die erweiterungen PEAR::SOAP und NuSOAP sind die bekanntesten.
NuSOAP
- das skript "nusoap.php" beinhaltet alle notwendigen funktionen und muß nur in das php-skript integriert werden
- folgende schritte sind zu absolvieren:
SERVER-seitig ("meinServer.php")
01 // einbinden des "nusoap.php" skripts
02 include_once("nusoap.php");
03 // einen nusoap-server erstellen
04 $newServer = new soap_server();
05 // eine methode am nusoap-server registrieren
06 $server->register("meineMethode");
07 // methode ("meineMethode") wird definiert
08 function meineMethode() {
09 return "ergebnis meines webservice";
10 }
11 // webservice-server starten
12 $newServer->service($HTTP_RAW_POST_DATA);
13 // wenn alles gesendet wurde, übertragung beenden
14 exit();
CLIENT-seitig ("meinClient.php")
01 // einbinden des "nusoap.php" skripts
02 include_once("nusoap.php");
03 // einen nusoap-client erstellen, parameter: php-datei mit soap_server
04 $newClient = new soapclient("http://www.meineDomain.de/webservice/nusoap/meinServer.php");
05 // webservice (definierte methode) abrufen und in variable speichern
06 $ergebnis = $newClient->call("meineMethode");
07 // ergebnis ausgeben, hier: "ergebnis meines webservice";
08 echo $ergebnis;
dieses codebeispiel kann beliebig erweitert werden (z.b durch eine db-abfrage), die listings zeigen nur den grundrahmen
PEAR::SOAP
- um diese lösung zu verwenden, müssen vorher PEAR::SOAP und einige andere dienste mit hilfe des PEAR::Framework installiert werden
- implemtierung:
SERVER-seitig ("meinServer.php")
01 // einbinden des PEAR::SOAP "server.php" skripts
02 include_once("SOAP/server.php");
03 // klasse erstellen, die methoden für webservice enthalten
04 class meineServiceKlasse {
05 function meineAbfrage() {
06 return "ergebnis meines webserivce";
07 }
08 }
09 // einen neuen PEAR::SOAP-server erstellen
10 $newServer = new SOAP_Server();
11 // instanz der webservice-klasse ("meineServiceKlasse") erstellen
12 $server_instanz = new meineServiceKlasse();
13 // instanz dem server bekanntmachen
14 $newServer->addObjectMap($server_instanz,'urn:abfragetest');
15 // webservice-server starten
16 $newServer->service($HTTP_RAW_POST_DATA);
17 // wenn alles gesendet wurde, übertragung beenden
18 exit();
CLIENT-seitig ("meinClient.php")
01 // einbinden des PEAR::SOAP "client.php" skripts
02 include_once("SOAP/client.php");
03 // einen PEAR::soap-client erstellen, parameter: php-datei mit PEAR::soap_server
04 $newClient = new SOAP_Client("http://www.meineDomain.de/webservice/pearsoap/meinServer.php");
05 // webservice (definierte methode) abrufen und in variable speichern
06 $ergebnis = $newClient->call("meineMethode",//parameter falls vorhanden,'urn:abfragetest');
07 // ergebnis ausgeben, hier: "ergebnis meines webservice";
08 echo $ergebnis;
ähnlich ist eine umsetzung in java bzw. .NET möglich. einzigster unterschied ist die art der kodierung (XML-RPC bzw. document/literal).
eine interoperabilität zwischen verschiedenen webservice-implementierungen sollte wegen des genormten standards möglich sein. so ist es z.b. möglich PEAR::SOAP webservice-server mit einem nusoap-client anzusprechen, aber auch ein .NET webservice-angebot mit WSDL-unterstützung ist mittels einem PEAR::SOAP client erreichbar.
... comment
|
Online for 7735 days
Last update: 2004.01.19, 07:32
You're not logged in ... login
Januar 2004 |
Mo |
Di |
Mi |
Do |
Fr |
Sa |
So |
|
|
|
1 |
2 |
3 |
4 |
5 |
|
7 |
8 |
9 |
10 |
11 |
|
13 |
14 |
15 |
16 |
17 |
18 |
|
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
--- weblogs und webservices...
nachdem eine menge zu den grundlagen gesagt wurde,...
by andre_neubauer_berlin (2004.01.19, 07:32)
--- implematation eines...
an dieser stelle soll auf eine einfache rudimentäre...
by andre_neubauer_berlin (2004.01.19, 07:28)
vielen dank ...
... für die kritik. ich habe sie versucht bei...
by andre_neubauer_berlin (2004.01.19, 07:27)
etwas praxis kann dein...
ja mal gebrauchen : ich braeuchte unterstuetzung hierbei....
by martin_schaeffler_berlin (2004.01.18, 23:52)
wenn Sie wirklich Kommentare...
.. erwarten, dann sollten Sie in Ihrer Beschreibung...
by Hans.Mittendorfer.Uni-Linz (2004.01.16, 14:01)
|