WebServices

Seit Exchange 2007 gibt es noch eine neue API für den Zugriff auf die Exchange Informationen. Diesmal "soll" es aber eine moderne API für eine lange Zeit sein, die komplett losgelöst von MAPI, RPC etc. ist. Exchange 2007 bietet viele Dienste als "Webservice" an.

Exchange 2007 Webservices ersetzen WebDAV, CDO, ExOLEDB und OWA URL Commmands
Mittlerweile gibt es auch eine Managed-API mit ausgeliefert. Siehe EWS

Allerdings können Sie mit Exchange 2007 aktuell nur auf die Postfächer über Webservices zugreifen. Der Zugriff auf öffentliche Ordner ist zumindest in der SP0-Version noch nicht möglich. Es ist aber schon öffentlich, dass sich dies mit Exchange 2007 SP1 ändern dürfte, auch wenn die Funktion "Public Folder" nach Exchange 2007 eigentlich schon abgekündigt wurde.

Was ist ein "Webservice" ?

Ich bin sicher nicht der Vollblutentwickler, der ihnen die Details genau erklären kann. Aber für einen Exchange Administrator reicht vielleicht die folgende Erklärung aus.

Schon immer wurden Programme ihrerseits unterprozeduren und Funktionen auf, die entweder im Programm selbst mit hinterlegt sind, oder in zusätzlichen Dateien (das sind z.B. die DLLs unter Windows) vorliegen und vom Entwickler eingebunden werden. Bislang bewegen wir und immer auf dem gleichen Computer.

Der nächste Schritt ist die Verteilung der auszuführenden Funktionen auf andere Computer. Sie können Sicher den Begriff "Remote Procedure Call"  (RPC), den es nicht nur bei Windows gibt. Ein Webservice ist nun auch einfach nur das Angebot einer Funktionalität auf einem anderen System, welches meine Software einfach nutzen kann. Damit das aber nun richtig Spaß machen, gibt es einige wichtige Fakten:

  • HTTP/HTTPS
    Das Protokoll, über das aufrufende Programm mit dem "Server" spricht, ist HTTP bzw. HTTPS. Damit haben Sie alle Vorteile dieses Protokolls dabei, z.B. Verschlüsselung und Signierung (SSL), Authentifizierung, Proxytauglichkeit, Firewall-freundlich etc. etc.
  • Offene Definition (WSDL)
    Als Entwickler sagen sie ihrem Programm einfach nur die URL und die EntwicklungsUmgebung holst sich per HTTP die Beschreibung des Webservice. (Webservice Description Language), d.h. Ihre ProgrammierUmgebung "weiß", welche Parameter in welcher Form übergeben werden und welche Antworten zurück kommen.
  • Verzeichnisdienst (UDDI)
    Es gibt einen Standard, über den sich Webservices veröffentlichen können, so dass Programm diese auch finden.
  • Definierte Übergabe-Schnittstelle (SOAP)
    Die eigentliche Kommunikation erfolgt dann durch die Übermittlung von SOAP bzw. XML-RPC-Meldungen. Auch dies ist standardisiert.

Mit all dem Handwerkzeug sind Webservices eine ideale Plattform für den Zugriff auf Informationen. Und Exchange 2007 bietet eine entsprechende Schnittstelle an. Es gibt mittlerweile sehr viele Anbieter im Internet, die ihnen unentgeltlich oder nach Anmeldung einen Zugriff auf ihre Daten bereit stellen, z.B.

Webservices erlauben daher eine Kommunikation von Programmen über HTTP(s) untereinander und die Einsatzbereiche sind vielfältig, d.h. Kopplungen von Lieferanten und Abnehmern, Abruf von Daten, Aktuelle Wechselkurse und Aktienkurse von Banken und Börsen, Fußballergebnisse, Fernsehprogramme etc. etc.

Webservice und Azure

Interessant wird diese Funktion natürlich nicht nur, wenn Sie Webservices von anderen Anbietern nutzen. Es ist ziemlich langweilig, wenn sie über einen WebService z.B. öffentliche Quellen wie Wetterberichte, Wechselkurse oder Aktienkurse abrufen. Selbst personalisierte Daten wie der Paketstatus ihres Logistikers sind erst der Anfang.

Richtig interessant wird dies alles, wenn Sie den WebServer selbst programmieren und dann am besten noch bei einem Hosting-Unternehmen bereitstellen. Wenn Sie über den Weg dann z.B. komplexe langwierige Rechenaufgaben auf Systeme auslagern können, die nach CPU bezahlt werden, dann haben Sie dann Ergebnis viel schneller und sie müssen nicht selbst teure Hardware vorhalten, die nur zeitweise genutzt wird.

Das ist eine der Leistungen, die z.B. von Microsoft mit Azure bereit gestellt wird. Azure stellt die Server, Rechenleistung und Speicher bereit. Sie müssen nur noch ihr Problem "in Code fassen" und dort bereitstellen.

Weitere Links

Hier nur eine kleine Auswahl von Links. Die MSDN-Seite ist sicher die beste Quelle.