interessiert ist interessant
Freitag, 16. Januar 2004
--- implematation eines webservice ---
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 7699 days
Last update: 2004.01.19, 07:32
status
You're not logged in ... login
menu
... home
... topics
... galleries

... ::collabor:: home
search
 
calendar
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
 
 
 
recent updates
--- 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)

xml version of this page

made with antville