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.
- What's New in AD DS: Active Directory Web Services
http://technet.microsoft.com/en-us/library/dd391908%28WS.10%29.aspx - Google
http://www.google.com/apis/ - Yahoo
http://developer.yahoo.net/ - Amazon
http://aws.amazon.com/connect - MSN Search
http://msdn.Microsoft.com/live/gettingstarted/searchstart/default.aspx - MSN - Virtual Earth
http://www.virtualearth.net/ - FedEx Tracking Informationen
http://www.fedex.com/de/ebusiness/webintegration.html?link=4#one - eBay Versteigerungsdaten
http://entwickler.ebay.de/ - Daten über Musikstücke, Autoren, Sänger, Gruppen
http://musicbrainz.org/products/client/index.html - Lotus Notes/Domino 7 Web Services
http://www.ibm.com/developerworks/lotus/library/nd7-webservices/ - Using TCP/UDP Port Checker Web Service
http://masteringlync.com/2014/07/15/using-tcpudp-port-checker-web-service/
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.
- EWS
-
EWSEditor
Zugriff auf Postfachinhalte per Exchange Web Services - What's New in AD DS: Active Directory Web Services
http://technet.microsoft.com/en-us/library/dd391908%28WS.10%29.aspx - Wikipedia Beschreibung
http://de.wikipedia.org/wiki/Webservice
http://en.wikipedia.org/wiki/Web_service - Web Services Activity
http://www.w3.org/2002/ws/ - WebDAV
WebDAV ist nicht WebSerivces, auch wenn bei de HTTP und XML nutzen - Exchange 2007 3/4: Client Zugriff und Webservices
http://techfiles.de/dmelanchthon/webcasts/1032296864.wmv - Exchange Server 2007 - Exchange Web Services
http://msdn2.microsoft.com/en-us/library/aa579187.aspx - Exchange Server 2007 SP1 Creating Contacts (Exchange Web Services)
http://msdn.microsoft.com/en-us/library/aa563318(EXCHG.80).aspx - Exchange Server 2007 Web Service API für Developers!
http://blogs.msdn.com/ericlee/archive/2006/10/22/exchange-server-2007-for-developers.aspx - Exchange Web Services Windows Vista Gadget Sample Application
http://www.microsoft.com/downloads/details.aspx?familyid=F9A0D33C-C894-4EA1-AD20-4E418C715175&displaylang=en - Exchange Web Services OSX Widget
http://www.codeplex.com/EWSMacWidget -
Wrapper (OpenSource), der viel von der Arbeit abnimmt, die man beim
Implementieren von Push Notifications hat.
http://www.codeplex.com/exchangenotification -
Blog-Eintrag zu Push Benachrichtigung
http://www.infinitec.de/?tag=/push+notifications -
Outlook Communicator Phone Edition interactions with Exchange Web Services
http://communicatorteam.com/archive/2008/03/18/130.aspx