Nie wiem, jak wiadomości SOAP i WSDL pasują do siebie? Zacząłem przeglądać wiadomości SOAP, takie jak:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Czy wszystkie komunikaty SOAP są WSDL? Czy SOAP jest protokołem, który akceptuje własne „komunikaty SOAP” lub „WSDL”? Jeśli są różne, to kiedy powinienem używać komunikatów SOAP, a kiedy WSDL?
Pewne wyjaśnienie na ten temat byłoby niesamowite.
java
web-services
soap
wsdl
James
źródło
źródło
Odpowiedzi:
Dokument SOAP jest wysyłany na żądanie. Powiedzmy, że jesteśmy księgarnią i mieliśmy zdalny serwer, do którego zapytaliśmy, aby poznać aktualną cenę konkretnej książki. Powiedzmy, że musimy przekazać serwerowi tytuł książki, liczbę stron i numer ISBN.
Ilekroć chcieliśmy poznać cenę, wysyłaliśmy unikalną wiadomość SOAP. Wyglądałoby to mniej więcej tak;
Oczekujemy, że otrzymamy z powrotem komunikat odpowiedzi SOAP w stylu;
Następnie WSDL opisuje, jak obsłużyć / przetworzyć ten komunikat, gdy serwer go otrzyma. W naszym przypadku opisuje, jakie byłyby typy Title, NumPages i ISBN, czy powinniśmy spodziewać się odpowiedzi z wiadomości GetBookPrice i jak powinna wyglądać ta odpowiedź.
Typy wyglądałyby tak;
Ale WSDL zawiera również więcej informacji o tym, które funkcje łączą się ze sobą w celu wykonywania operacji, jakie operacje są dostępne w usłudze oraz gdzie w sieci można uzyskać dostęp do usługi / operacji.
Zobacz także przykłady WSDL z adnotacjami W3
źródło
Komunikat SOAP to dokument XML, który służy do przesyłania danych. WSDL to dokument XML, który opisuje, jak łączyć się i wysyłać żądania do usługi sieciowej.
Zasadniczo wiadomości SOAP to dane, które przesyłasz, WSDL mówi ci, co możesz zrobić i jak wykonywać połączenia.
Szybkie wyszukiwanie w Google przyniesie wiele źródeł do dodatkowego czytania (link do poprzedniej książki jest teraz martwy, aby temu zaradzić, pojawią się nowe rekomendacje w komentarzach)
Zwracając uwagę na konkretne pytania:
Czy wszystkie komunikaty SOAP są WSDL? Nie, wcale nie są tym samym.
Czy SOAP jest protokołem, który akceptuje własne „komunikaty SOAP” lub „WSDL”? Nie - wymagane czytanie, ponieważ jest to daleko.
Jeśli są różne, to kiedy powinienem używać komunikatów SOAP, a kiedy WSDL? Mydło to struktura, którą stosujesz do przesłania wiadomości / danych. Pliki WSDL są używane tylko do określenia, jak w pierwszej kolejności wywoływać usługę. Często zdarza się to jednorazowo, gdy po raz pierwszy dodajesz kod, aby wykonać wywołanie określonej usługi sieciowej.
źródło
WSDL (język definicji usługi sieci Web) to plik metadanych opisujący usługę sieci Web.
Rzeczy takie jak nazwa operacji, parametry itp.
Wiadomości mydlane są rzeczywistymi ładunkami
źródło
Musimy zdefiniować, czym jest usługa sieciowa, zanim powiemy, jaka jest różnica między SOAP i WSDL, gdzie te dwa (SOAP i WSDL) są składnikami usługi internetowej
Większość aplikacji jest tworzona w celu interakcji z użytkownikami, użytkownik wprowadza lub wyszukuje dane za pośrednictwem interfejsu, a aplikacja odpowiada następnie na dane wejściowe użytkownika.
Usługa sieciowa robi mniej więcej to samo, z wyjątkiem tego, że aplikacja usługi sieci Web komunikuje się tylko z komputera na komputer lub z aplikacji do aplikacji. Często nie ma bezpośredniej interakcji użytkownika.
Zasadniczo usługa sieci Web to zbiór otwartych protokołów używanych do wymiany danych między aplikacjami. Zastosowanie otwartych protokołów umożliwia niezależność usług internetowych od platformy. Oprogramowanie napisane w różnych językach programowania i działające na różnych platformach może wykorzystywać usługi internetowe do wymiany danych przez sieci komputerowe, takie jak Internet. Innymi słowy, aplikacje Windows mogą komunikować się z aplikacjami PHP, Java i Perl oraz wieloma innymi, co w normalnych okolicznościach nie byłoby możliwe.
Ponieważ różne aplikacje są napisane w różnych językach programowania, często nie mogą się ze sobą komunikować. Usługa sieciowa umożliwia taką komunikację przy użyciu kombinacji otwartych protokołów i standardów, głównie XML, SOAP i WSDL. Usługa sieci Web używa XML do oznaczania danych, SOAP do przesyłania wiadomości i wreszcie WSDL do opisywania dostępności usług. Przyjrzyjmy się tym trzem głównym składnikom aplikacji usługi sieci Web.
Prosty protokół dostępu do obiektów (SOAP)
Simple Object Access Protocol lub SOAP to protokół do wysyłania i odbierania komunikatów między aplikacjami bez konfrontacji z problemami ze współdziałaniem (interoperacyjność oznacza, że platforma, na której działa usługa sieci Web, staje się nieistotna). Innym protokołem, który ma podobną funkcję, jest HTTP. Służy do uzyskiwania dostępu do stron internetowych lub surfowania po sieci. Protokół HTTP zapewnia, że nie musisz martwić się o to, jaki rodzaj serwera sieci Web - czy to Apache, IIS czy jakikolwiek inny - obsługuje przeglądane strony lub czy strony, które przeglądasz, zostały utworzone w ASP.NET lub HTML.
Ponieważ protokół SOAP jest używany zarówno do wysyłania żądań, jak i odpowiadania, jego zawartość różni się nieznacznie w zależności od celu.
Poniżej znajduje się przykład komunikatu żądania i odpowiedzi SOAP
Żądanie SOAP:
Odpowiedź SOAP:
Chociaż obie wiadomości wyglądają tak samo, wykorzystują różne metody. Na przykład patrząc na powyższe przykłady można zauważyć, że w żądającej wiadomości zastosowano
GetBookPrice
metodę, aby uzyskać cenę książki. Odpowiedź jest przeprowadzanaGetBookPriceResponse
metodą, która będzie wiadomością, którą zobaczysz jako „żądający”. Możesz również zobaczyć, że wiadomości są tworzone za pomocą XML.Język opisu usług sieci Web lub WSDL
WSDL to dokument opisujący usługę sieci Web, a także informujący, jak uzyskać dostęp do jej metod i jak z nich korzystać.
WSDL dba o to, skąd wiesz, jakie metody są dostępne w usłudze sieci Web, na którą natrafisz w Internecie.
Spójrz na przykładowy plik WSDL:
Najważniejsze rzeczy, o których należy pamiętać o pliku WSDL, to fakt, że zapewnia on:
źródło
Lepsza analogia niż rozmowa telefoniczna: zamawianie produktów pocztą w serwisie wysyłkowym. Dokument WSDL przypomina instrukcje, które wyjaśniają, w jaki sposób tworzyć rodzaje formularzy zamówień, które dostawca usług będzie akceptować. Wiadomość SOAP jest jak koperta o standardowym projekcie (rozmiar, kształt, konstrukcja), z którą każdy urząd pocztowy na świecie wie, jak sobie z nią radzić. Formularz zamówienia wkładasz do takiej koperty. Sieć (np. Internet) to usługa pocztowa. Włożyłeś kopertę do poczty. Pracownicy poczty nie zaglądają do koperty. Plik XML ładunku to formularz zamówienia, który został dołączony do koperty. Po dostarczeniu koperty przez pocztę dostawca usług internetowych otwiera ją i przetwarza formularz zamówienia. Jeśli poprawnie utworzyłeś i wypełniłeś formularz,
źródło
Mówiąc najprościej, jeśli masz serwis internetowy kalkulatora. WSDL zawiera informacje o funkcjach, które można zaimplementować lub udostępnić klientowi. Na przykład: dodawanie, usuwanie, odejmowanie i tak dalej. Gdzie, tak jak w przypadku SOAP, faktycznie wykonujesz akcje takie jak doDelete (), doSubtract (), doAdd (). Więc SOAP i WSDL to jabłka i pomarańcze. Nie powinniśmy ich porównywać. Oba mają różne funkcje.
źródło
SOAP: Jest to protokół komunikacyjny oparty na otwartym standardzie XML, który jest używany do wymiany informacji od użytkownika do usługi sieciowej lub odwrotnie. Mydło to tylko dokument, w którym dane są w jakiś sposób zorganizowane. Na każde żądanie i odpowiedź może być dostarczone oddzielne mydło.
WSDL: W mydle dane są zorganizowane w jakiś sposób i ta organizacja jest określona w WSDL. W tym miejscu określono również typ danych, który ma być używany. Dla żądania i odpowiedzi będzie obecny pojedynczy WSDL
źródło
WSDL to rodzaj umowy między dostawcą API a klientem, który opisuje usługę internetową: funkcja publiczna, pole opcjonalne / wymagane ...
Ale wiadomość mydlana to dane przesyłane między klientem a dostawcą (ładunek)
źródło
WSDL działa jako interfejs między nadawcą a odbiorcą.
Wiadomość SOAP to żądanie i odpowiedź w formacie xml.
w porównaniu z java RMI
WSDL to klasa interfejsu.
Komunikat SOAP jest zorganizowanym żądaniem i komunikatem odpowiedzi.
źródło
Można rozważyć rozmowę telefoniczną w tym numerze wsdl, a wymiana informacji to mydło.
WSDL to opis jak połączyć się z serwerem komunikacyjnym. SOAP to ma komunikaty komunikacyjne.
źródło