interessiert ist interessant
Freitag, 16. Januar 2004
--- webservice & weblogs ---
webservices und weblogs sind zur zeit in aller munde. dennoch sind beide entwicklungen nicht unbedingt miteinander verwandt, verfolgen sie doch unterschiedliche ziele.
während ein weblog eigene daten verwaltet, bieten werservices diese daten an oder ermöglichen das einbinden von fremden daten.
dieser artikel soll zeigen, dass beide ansätze auch zusammenarbeiten können und einen leitfaden zur entwicklung einer entsprechenden anwendung darstellen.

... link (3 comments)   ... comment


--- grundlagen ---
mit webservices ist es möglich informationen von fremden anbietern in seinem eigenen protfolio anzubieten. im zusammenhang mit weblogs wäre zum beispiel eine lösung denkbar, die auf der privaten homepage eines weblogs-nutzers dessen letzten eintrag in der community anzeigt.um eine barrierefreie möglichkeit zu schaffen sind verschiedene technische grundlagen notwendig.

- SOAP (simple object access protocoll)

  • dient als protokoll für die XML-daten, die zwischen webservice-anbieter und client ausgetauscht werden
  • version 1.1 besteht aus 4 bestandteilen
    • SOAP Envelope (identifiziert inhalt)
    • SOAP transport binding framework (austauschprotokoll (HTTP, SMTP, JMS))
    • SOAP encoding rules (typsystem)
    • SOAP RPC representation (request-, response beschreibung / paramter / aufruf)
  • vorschlag von Microsoft und IBM, wird aber von der unabhängigen organisation W3C verwaltet
  • 2 möglichkeiten zur kodierung der SOAP-nachrichten
    • RPC (remote procedure call)
    • document/literal

    • PRC-kodiertes SOAP enthält methodenauf und definitionen von z.b. datentypen, document/literal enthält nur die nachricht

- WSDL (web services description language)

  • spezifizert und beschreibt den inhalt des webservice
  • definiert die art der kommunikation
  • bestimmt zugriff
  • von Microsoft und IBM entwickelt, verwaltet vom W3C
  • WSDL-dokument
    • types-element beschreibt datentypen in XML-form
    • message-element beschreibt format der nachricht
    • portType-element definiert die menge der operationen
    • binding-element abbildung des portType-element auf ein protokoll
    • ordnet dem binding-element einer instanz des webservice angebotes zu

- UDDI (univeral description, discovery and integration)

  • verzeichnisdienst für einen webservice
  • mechanismus zum registrieren und lokalisieren eines webservices
  • UDDI stellt selbst einen webservice dar

hinweis:
das zusammenarbeiten von webservices nennt man orchestering.

... link (0 comments)   ... comment


--- ablauf: aufruf eines webservice ---
die architektur eines webservices läßt sich durch 3 funktionalitäten beschreiben.
  • auftausch von XML-nachrichten
  • beschreibung des webservice
  • veröffentlichen und auffinden des webservice
beschreibung der architektur
  • client findet webservice in der UDDI registry
  • UDDI verzeichnisdienst zeigt auf WSDL-beschreibung und webservice
  • WSDL beschreibt webservice
  • webservice kommuniziert über SOAP mit Client

... link (0 comments)   ... comment


--- 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.

... link (0 comments)   ... 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
November 2024
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
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