Home : Topics : hand in hand weblog und webservices
--- webservice & weblogs ---
andre_neubauer_berlin, 05:33h
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 ---
andre_neubauer_berlin, 05:33h
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 ---
andre_neubauer_berlin, 05:32h
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 ---
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.
... link
(0 comments)
... comment
|
Online for 7699 days
Last update: 2004.01.19, 07:32
You're not logged in ... login
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 |
|
|
|
|
--- 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)
|