Simple Object Access Protocol



Podobne dokumenty
Rozproszone technologie Web Services

Rozproszone systemy Internetowe

SOAP. Autor: Piotr Sobczak

XML-RPC: Zdalne wykonywanie procedur

Dostęp do komponentów EJB przez usługi Web Services

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Komunikacja międzysystemowa

XML w elektronicznej wymianie danych i integracji aplikacji

Programowanie komponentowe

XML w elektronicznej wymianie danych i integracji aplikacji

Mydło i spółka. Aplikacje rozproszone. Serwisy sieciowe Broker usług. Serwisy sieciowe. Serwisy sieciowe, WWW (Web Services) Internet

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl

Komunikacja i wymiana danych

Programowanie współbieżne i rozproszone

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

XML - wprowadzenie. <message> <text> Dobrze </text> </message> <message> <text> Źle </message> </text> <message> <message> <text> Źle.

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Nowoczesne zastosowania XML

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

Web Services wykład 9

Nowoczesne zastosowania XML

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Geovertical Map Server API 1.2

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Programowanie Komponentowe WebAPI

Web Service y w Javie

Zaawansowane aplikacje internetowe. Wykład 6. Wprowadzenie do Web Services. wykład prowadzi: Maciej Zakrzewicz. Web Services

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Ministerstwo Finansów

Programowanie obiektowe

Platforma.NET Wykład 13 Tworzenie usług sieciowych SOAP i WCF. Spis treści. Marek Sawerwain. 7 czerwca Notatki. Notatki

Referat z programowania systemowego. Przegląd protokołów do realizacji usług sieciowych SOAP, WSDL, UDDI

Wprowadzenie do technologii XML

Wybrane problemy modelu usługowego

1 Wprowadzenie do J2EE

76.Struktura oprogramowania rozproszonego.

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

Specyfikacja techniczna interfejsu do obsługi Profilu Kandydata na Kierowcę.

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Zastosowanie informatyki w gospodarce Wykład 4

29. Poprawność składniowa i strukturalna dokumentu XML

Programowanie współbieżne i rozproszone

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

rk HTML 4 a 5 różnice

Mechanizmy pracy równoległej. Jarosław Kuchta

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

4. Usługi Web. Maciej Piechówka Serwis turystyczny ABC: Gdańsk PLN 3,27. Możesz tam lecieć za jedyne: PLN 1999

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

ABC WCF.

Sieciowe programowanie rozproszone SOA, WebServices i systemy gridowe. Krzysztof Banaś Systemy rozproszone 1

Wprowadzenie. Dariusz Wawrzyniak 1

Zaawansowany kurs języka Python

Tworzenie i wykorzystanie usług sieciowych

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Specyfikacja HTTP API. Wersja 1.6

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Web Services / Gridy

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Gatesms.eu Mobilne Rozwiązania dla biznesu

Rozproszone systemy internetowe

Middleware wprowadzenie października 2010

Wywoływanie procedur zdalnych

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Wywoływanie metod zdalnych

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

DOKUMENTACJA PROTOKOŁU SMESX. Platforma SMeSKom - instrukcja korzystania z interfejsu HTTPS Protokół w wersji 2.2

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1

Rozdział ten przedstawia jeden ze sposobów implementacji usług sieciowych XML i aplikacji klienckich w PHP. Oprogramowanie

Zdalne wywoływanie procedur RPC 27. października 2010

Wywoływanie procedur zdalnych

Dokumentacja smsapi wersja 1.4

mgr inż. Michał Paluch

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Model sieci OSI, protokoły sieciowe, adresy IP

Specyfikacja techniczna. mprofi Interfejs API

DOKUMENTACJA PROTOKOŁU SMESX. Platforma SMeSKom - instrukcja korzystania z interfejsu HTTPS. Autor smeskom@smeskom.pl Data Wersja 1.

Dlaczego GML? Gdańsk r. Karol Stachura

Web Services Praktyczny przewodnik. Robert Nowak Vercom Sp z o. o.

DOTACJE NA INNOWACJE

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

INSTRUKCJA DLA INTEGRATORA SYSTEMU DOSTAWCA TOŻSAMOŚCI

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Wywoływanie metod zdalnych

Programowanie internetowe

Usługi sieciowe REST. Instytut Informatyki Politechnika Poznańska

Programowanie w Internecie

Systemy rozproszone System rozproszony

Transkrypt:

Simple Object Access Protocol Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 11 grudnia 2005 roku

Czym jest SOAP? Akronim SOAP oznacza Simple Object Access Protocol. SOAP jest protokołem komunikacyjnym służącym do wymiany wiadomości pomiędzy aplikacjami. SOAP przeznaczony jest do wymiany danych w sieci internet. SOAP jest niezależny od platformy sprzętowej oraz języka programowania. Wiadomości SOAP są opisane za pomocą XML. SOAP jest standardem W3C: http://www.w3.org/tr/soap/

Dlaczego SOAP? Komunikacja Systemy wykorzystujące komunikację rozproszoną w postaci Remote Procedure Call jak CORBA lub DCOM napotykają na problemy bezpieczeństwa i dostępności serwisów w sieci internet. Przeszkodą są licznie wykorzystywane w sieci Internet systemy firewall i proxy. Powszechność SOAP jest wykorzystywany przez wiele firm i aplikacji komercyjnych. Jest podstawowym elementem architektury Microsoft.NET dla aplikacji internetowych.

Założenia projektowe SOAP Podstawowym założeniem projektu SOAP była prostota i rozszerzalność projektowanego protokołu. Oznacza to, że wiele elementów występujących w innych protokołach RPC nie pojawia sięwsoapnp: Rozproszony odśmiecacz pamięci(distributed garbage collection). Przekazywanie obiektów przez referencję (Objects-by-reference).

Podział SOAP Protokół SOAP logicznie dzieli się na trzy części: Kopertę(SOAP envelope)- jest to definicja opisująca co znajduje się w wiadomości, dla kogo jest przeznaczona i czy wiadomość jest obowiązkowa lub opcjonalna. Zasady kodowania(soap encoding rules)- możliwość definiowania typów wykorzystywanych przez aplikację. Reprezentacja RPC(SOAP RPC representation)- określa reguły opisu zdalnych procedur i ich odpowiedzi.

Wiadomość SOAP Wiadomość jest podstawową komunikacją jednokierunkową pomiędzy nadawcą, a odbiorcą. Wiadomość SOAP może wykorzystać różne protokoły jako medium transportowe(np. HTTP). Aplikacja SOAP, która odebrała wiadomość SOAP musi ją przetworzyć zgodnie z zasadami: Rozpoznać wszystkie części wiadomości. Zdecydować, czy wszystkie części wiadomości są wspierane przez aplikację. Jeżeli aplikacja nie jest adresatem wiadomości to musi ją przekazać do adresata.

Przykładowa wiadomość SOAP Wiadomość SOAP osadzona w HTTP- rządanie POST/StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Przykładowa wiadomość SOAP Wiadomość SOAP osadzona w HTTP- odpowiedź HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m="some-uri"> <Price>34.5</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Budowa wiadomości SOAP Wiadomość SOAP jest dokumentem XML zawierającym elementy: Wymagane elementy koperty, które identyfikują dokument XML jako wiadomość SOAP. Opcjonalny nagłówek. Wymagany element Body, który zawiera informacje żądającego lub odpowiadającego na wiadomość. Opcjonalny element Fault opisujący błędy mogące pojawić się podczas przetwarzania wiadomości.

Składnia wiadomości SOAP Wiadomość SOAP musi być zapisana przy użyciu XML. Wiadomość SOAP musi zawierać przestrzeń nazw SOAP Envelope. Wiadomość SOAP musi zawierać przestrzeń nazw SOAP Encoding. Wiadomość SOAP nie może zawierać definicji DTD. Wiadomość SOAP nie może zawierać instrukcji przetwarzania XML.

Szkielet wiadomości SOAP <?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:header>. </soap:header> <soap:body>. <soap:fault>. </soap:fault> </soap:body> </soap:envelope>

Koperta wiadomości SOAP Koperta wiadomości SOAP jest jednocześnie głównym(root) elementem dokumentu XML. Definiuje dokument XML jako wiadomość SOAP. Struktura koperty <?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">... Miejscenawiadomość. </soap:envelope> Koperta zawsze musi być skojarzona z przestrzenią nazw http://www.w3.org/2001/12/soap-envelope.

Atrybut encodingstyle Atrybut encodingstyle jest używany do zdefiniowania typów używanych w wiadomości. Wiadomość SOAP nie ma domyślnego kodowania.

Element Header Opcjonalny element Header zawiera informacje specyficzne dla aplikacji(autoryzacja, transakcje itd.). Jeżeli element Header jest obecny w wiadomości to musi być pierwszym potomkiem elementu Envelope.

Element Body Element Body jest wymagany w każdej wiadomości SOAP. Elementy potomne elementu Body mogą być umieszczone w innej przestrzeni nazw. Specyfikacja SOAP definiuje tylko jeden element potomny umieszczony w domyślnej przestrzeni nazw. Jest to element Fault.

Element Body Przykład zapytania <?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> <m:getprice xmlns:m="http://www.w3schools.com/prices"> <m: Item>Apples</ m: Item> </m:getprice> </ soap: Body> </soap:envelope>

Element Body Przykład odpowiedzi <?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> <m:getpriceresponse xmlns:m="http://www.w3schools.com/prices"> <m:price>1.90</m:price> </m:getpriceresponse> </ soap: Body> </soap:envelope>

Element Fault Informacja o błędzie dotyczącym wiadomości SOAP przekazywana jest wewnątrz elementu Fault. Element Fault musi być potomkiem elementu Body i może wystąpić tylko raz w dokumencie. Przykład: <SOAP ENV: Envelope xmlns:soap ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP ENV:Body> <SOAP ENV: Fault> <faultcode> SOAP ENV:MustUnderstand </faultcode> <faultstring> SOAP Must Understand Error </faultstring> </SOAP ENV: Fault> </SOAP ENV:Body> </SOAP ENV: Envelope>

Element Fault Informacja o błędzie dotyczącym wiadomości SOAP przekazywana jest wewnątrz elementu Fault. Element Fault musi być potomkiem elementu Body i może wystąpić tylko raz w dokumencie. Przykład: <SOAP ENV: Envelope xmlns:soap ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP ENV:Body> <SOAP ENV: Fault> <faultcode> SOAP ENV:MustUnderstand </faultcode> <faultstring> SOAP Must Understand Error </faultstring> </SOAP ENV: Fault> </SOAP ENV:Body> </SOAP ENV: Envelope>

Elementy potomne elementu Fault Element Fault może mieć zagnieżdżone elementy: Element: Opis: <faultcode> Kod identyfikujący błąd. <faultstring> Czytelny opis kodu. <faultactor> Informacja o tym co wywołało błąd. <detail> Dodatkowe informacje o błędzie.

Kody błędów Kod: Opis: VersionMismatch Nieprawidłowa przestrzeń nazw dla elementu Envelope. MustUnderstand Odbiorca wiadomości nie zrozumiał elementu, który miał ustawiony atrybut mustunderstand. Client Wiadomość została nieprawidłowo zbudowana lub zawiera niepoprawne dane. Server Wystąpił błąd podczas pracy serwera.