Prosta droga do usług Web

SOAP Toolkit 3.0 zawiera zestaw narzędzi programistycznych do tworzenia usług Web bazujących na komponentach COM.

SOAP Toolkit 3.0 zawiera zestaw narzędzi programistycznych do tworzenia usług Web bazujących na komponentach COM.

<b>Office XP Web Services Toolkit</b>, podobnie jak narzędzia zawarte w Visual Studio. NET, umożliwia odnalezienie w sieci usługi web, a następnie generuje odpowiednie obiekty, pozwalajace właczyć funkcjonalność usługi do aplikacji opartej na Microsoft Office

<b>Office XP Web Services Toolkit</b>, podobnie jak narzędzia zawarte w Visual Studio. NET, umożliwia odnalezienie w sieci usługi web, a następnie generuje odpowiednie obiekty, pozwalajace właczyć funkcjonalność usługi do aplikacji opartej na Microsoft Office

Przystosowanie istniejących aplikacji do obsługi Web Services wcale nie musi oznaczać pisania ich od podstaw. W wielu przypadkach wystarczy do istniejącego rozwiązania dodać kilka elementów, które spowodują, że "stary" program będzie komunikować się z innymi za pośrednictwem usług Web.

Opublikowany przez Microsoft (na razie jako beta 1) SOAP Toolkit 3.0 zawiera podstawowy zestaw obiektów i narzędzi niezbędnych do tworzenia usług Web, opartych na komponentach COM. Nowy SOAP Toolkit, podobnie jak poprzednie wersje, jest zgodny z językiem opisu usług WSDL 1.1, protokołem wywoływania usług SOAP 1.1, a także z XML Schema, czyli sposobem definiowania struktury dokumentów XML. Obsługa XML Schema została jednak znacznie rozbudowana w porównaniu z wcześniejszymi edycjami Toolkitu.

Odwzorowanie typów zmiennych

Podstawowym problemem związanym z tworzeniem usług Web na bazie COM jest prawidłowe odwzorowanie typów zmiennych wykorzystywanych w aplikacji. Platforma COM dysponuje wieloma wygodnymi w użyciu typami, pozwalającymi łatwo przekazywać referencje bez ściśle określonego typu - co trudno jest wyrazić w języku XML. Ponadto trudno jest sprawdzić poprawność przekazywanych parametrów.

SOAP 2.0 umożliwiał przekazywanie typów prostych tablic, a w ograniczonym zakresie również dobrze zdefiniowanych struktur. Można było także przesyłać tablice wielowymiarowe. Nowy SOAP 3.0 potrafi automatycznie definiować mapowanie między strukturami. Częścią pakietu jest generator plików WSDL tworzący na podstawie tzw. biblioteki typów obiektu COM pliki WSDL/WSML, które definiują m.in. używane typy złożone i proponują analogiczne struktury XML.

W SOAP 2.0 przekazywanie dużych, binarnych informacji, np. rysunku, wymagało kodowania olbrzymich tablic w formacie base64. Najnowsza wersja obsługuje Direct Internet Message Encapsulation (DIME). To uniwersalny sposób "opakowywania" dowolnych danych binarnych (DIME zostało poddane procedurze standaryzacyjnej). Pakiet SOAP może zawierać referencje do binarnego załącznika (podobnie jak w przypadku plików przesyłanych pocztą elektroniczną).

Realizacja w IIS

Przykład komunikacji ze strony serwera wykorzystującego Soap Toolkit

Przykład komunikacji ze strony serwera wykorzystującego Soap Toolkit

SOAP Toolkit można wykorzystywać w dowolnych aplikacjach klienckich opartych na COM. Zawiera on także niezbędną infrastrukturę do udostępniania usług Web.

Aby udostępnić usługi Web, niezbędny jest serwer IIS (nawet w wersji 4.0). SOAP Toolkit zawiera spec- jalny filtr (ISAPI), który można zarejestrować w serwerze WWW i który "przekierowuje" żądania SOAP do obiektu COM, realizującego właściwe operacje. Można także napisać stronę ASP, gdzie jawnie jest tworzony obiekt SoapServer, wstępnie przetwarzać pakiety SOAP. Jest to jednak metoda znacznie wolniejsza niż filtr.

Dostępne są dwa zestawy API SOAP. Pierwszy, niskopoziomowy, pozwala ręcznie zbudować komunikat SOAP, gdy nie jest możliwe skorzystanie z pliku WSDL opisującego usługę. Z kolei API wysokiego poziomu zakłada, że plik WSDL dokładnie definiuje sposób komunikacji i nie ma potrzeby ręcznej manipulacji.

Usługi w Office

Przykładem wykorzystania mechanizmów SOAP Toolkit jest pakiet XP Web Services Toolkit, dostępny na stronach serwisu MSDN. Dzięki niemu programista posługujący się narzędziami Visual Basic for Applications może wykorzystywać Web. Usługi można wyszukiwać za pośrednictwem katalogu UDDI albo też jawnie, podając adres pliku WSDL lub repozytorium Disco (analogicznie do pakietu Visual Studio .Net). Po odnalezieniu usługi, specjalne narzędzie dostarczone przez Microsoft automatycznie generuje klasę VBA, która "opakowuje" odwołania do biblioteki komunikującej się z usługą Web. W ten sposób programista VBA otrzymuje gotowy obiekt, który potrafi korzystać z usług Web, np. odczyta temperaturę powietrza w określonym mieście identyfikowanym przez system informatyczny na podstawie kodu pocztowego.