63
Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP Paweł Kozioł [email protected]

Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Protokoly w technologii obiektow rozproszonych -

CORBA, RMI/IIOP, COM, SOAP

Paweł Kozioł[email protected]

Page 2: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Na początek - moja praca magisterska

● “Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE”

● Prowdzący: dr Janusz Jabłonowski

Page 3: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

● Narzędzie do tworzenia IDE● Mechanizm wtyczek (plug-ins)● Otwarty kod źródłowy (GPL), otwarta

architektura● Wsparcie dla tworzenia nowych wtyczek –

Plug-in Development Environment (PDE)● Java Development Tooling (JDT)

Page 4: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –
Page 5: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Wzorce projektowe

● Wzór dobrego i sprawdzonego rozwiązania pewnego problemu w pewnym kontekście

● Opisują często stosowane techniki projektowania aplikacji

● Oprócz projektowych istnieją wzorce dla analizy, kodownia i testowania

● Również wiele specyficznych wzorców np. dla systemów współbieżnych, sztucznej inteligencji, projektowania interfejsu użytkownika

Page 6: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Przykład wzorca:

Compose Method

Page 7: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Przykład 2:

Encapsulate Classes with Factory

Page 8: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Przykład 2:

Encapsulate Classes with Factory

Przed:klient ma dostęp do wielu klas z pakietu, Wszystkie mają wspólny interfejs

Page 9: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Przykład 2:

Encapsulate Classes with Factory

Przed:klient ma dostęp do wielu klas z pakietu, Wszystkie mają wspólny interfejs

Po:Klienttworzy instancjeprzezfabrykę

Page 10: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Wzorce znane z Javy

● Przykładowe wzorce:Singleton, Iterator, Observer, Proxy, Facade,

Adapter, Factory

Page 11: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Wzorce a refaktoryzacja

● Refaktoryzacja – zmiana stuktury kodu bez zmiany zachowania● Przykład:

● zmiana nazwy zmiennej, ● wyodrębnienie kodu do metody

● Niektóre proste refaktoryzacje są już zaimplementowane w Eclipse● Popularne podejście to refaktoryzacja do wzorców projektowych

Page 12: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Przykład 2:

Encapsulate Classes with Factory

Przed:klient ma dostęp do wielu klas z pakietu, Wszystkie mają wspólny interfejs

Po:Klienttworzy instancjeprzezfabrykę

Page 13: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Java 2 Enterprise Edition (J2EE)

● Część technologii Java● Platforma do tworzenia wielowarstwowych,

rozproszonych aplikacji dla przedsiębiorstw● Standard przemysłowy● Zawiera wiele technologii

– Enterprise Java Beans– Java DataBase Connectivity– Java Message Service– Java Servlet Pages– i wiele innych

Page 14: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Moja praca

● Wsparcie dla programisty J2EE piszącego w Eclipse

● Dwa podejścia– automatyczna generacja kodu dla wybranego

wzorca projektowego– refaktoryzacja istniejącego kodu do wzorca

projektowego

Page 15: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Dalsza część referatu

Protokoly w technologii obiektow rozproszonych: CORBA, RMI/IIOP, DCOM, SOAP

Page 16: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Rozproszone obiekty

"Dawno, dawno temu... był sobie samotny, nieszczęśliwy obiekt, który bardzo się nudził. Chciał połączyć się z innymi sprytniejszymi i bardziej skomplikowanymi obiektami, które

pomogłyby mu wyrwać się z izolacji i nudnego życia na przeciążonej maszynie klienckiej”

źródło: www.microsoft.com :)

Page 17: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Rozproszone obiekty

Page 18: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA - Common Object Request Broker Architecture

CORBA - Standard zarządzany przez Object Management Group (OMG)

Page 19: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA - Architektura

● Podstawowy paradygmat:– żądanie usługi od zdalnego obiektu

● Usługi zdalnego obiektu definiowane przez interfejsy

Page 20: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – IDL

● Interfejsy zdefiniowane w IDL – Interface Definition Language

● Interfejs jest niezależny od języka programowania

● Stanowi tylko opis danych● IDL umożliwia dziedziczenie interfejsów● Obiekty zdalne są identyfikowane przez

referencje, które mają typ interfejsu

Page 21: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – ORB

● ORB – usługa sieciowa, która– lokalizuje zdalny obiekt– przekazuje mu żądanie– czeka na odpowiedź– przekazuje odpowiedź klientowi

● ORB zapewnia– przeźroczystość położenia zdalnego obiektu– niezależność od języka programowania

Page 22: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA - Usługi

● Zarządzanie:– cyklem życia obiektu– nazwami obiektów– zdarzeniami – transakcjami– wyszukiwaniem obiektów– powiązaniami między obiektami

Page 23: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – IDL

module StockObjects {

struct Quote { string symbol; double price; };

exception Unknown{};

interface Stock { // Returns the current stock quote. Quote get_quote() raises(Unknown);

// Sets the current stock quote. void set_quote(in Quote stock_quote);

readonly attribute string description; };};

Page 24: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – IDL

module StockObjects {

struct Quote { string symbol; double price; };

exception Unknown{};

interface Stock { // Returns the current stock quote. Quote get_quote() raises(Unknown);

// Sets the current stock quote. void set_quote(in Quote stock_quote);

readonly attribute string description; };};

Page 25: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – IDL

module StockObjects {

struct Quote { string symbol; double price; };

exception Unknown{};

interface Stock { // Returns the current stock quote. Quote get_quote() raises(Unknown);

// Sets the current stock quote. void set_quote(in Quote stock_quote);

readonly attribute string description; };};

Page 26: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – IDL

module StockObjects {

struct Quote { string symbol; double price; };

exception Unknown{};

interface Stock { // Returns the current stock quote. Quote get_quote() raises(Unknown);

// Sets the current stock quote. void set_quote(in Quote stock_quote);

readonly attribute string description; };};

Page 27: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – IDL

module StockObjects {

struct Quote { string symbol; double price; };

exception Unknown{};

interface Stock { // Returns the current stock quote. Quote get_quote() raises(Unknown);

// Sets the current stock quote. void set_quote(in Quote stock_quote);

readonly attribute string description; };};

Page 28: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura – IDL

module StockObjects {

struct Quote { string symbol; double price; };

exception Unknown{};

interface Stock { // Returns the current stock quote. Quote get_quote() raises(Unknown);

// Sets the current stock quote. void set_quote(in Quote stock_quote);

readonly attribute string description; };};

Page 29: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura IDL – mapowanie na język programowania

IDL Java C++

module package namespaceinterface interface abstract classoperation method member functionattribute pair of methods pair of functions

exception exception exception

Page 30: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

● Kompilator IDL generuje dla danego języka programowania– stub

● reprezentuje lokalnie obiekt zdalny– skeleton

● punkt wejścia do systemu rozproszonego● konwertuje napływające dane, wywołuje metody i

zwraca ponownie skonwertowane wyniki● Implementacja obiektu zdalnego to zwykle

obiekt dziedziczący po szkielecie zawierający implementacje metod z interfejsu IDL

CORBA – Architektura pośrednik i szkielet (stub and skeleton)

Page 31: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura pośrednik i szkielet (stub and skeleton)

Page 32: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – Architektura pośrednik i szkielet (stub and skeleton)

Page 33: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA – tworzenie aplikacji

1.Specyfikacja interfejsu w IDL2.Generacja pośrednika i szkieletu przez

kompilator IDL3.Implementacja klas obiektu zdalnego4.Implementacja serwera do obsługi obiektu

zdalnego5.Kompilacja serwera i rejestracja go w ORB6.Implementacja klienta7.Kompilacja klienta i uruchomienie go

Page 34: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA i IIOP

Page 35: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

CORBA i IIOP

Page 36: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Internet Inter-ORB Protocol

● Założeniem CORBY jest współpraca aplikacji niezależne od ich położena w środowisku sieciowym

● W pierwszych wersjach CORBY były problemy ze współpracą między ORB'ami różnych producentów w różnych środowiskach

● Specyfikacja 2.0 CORBY w 1994, wprowadziła IIOP - Internet Inter-ORB Protocol

Page 37: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

GIOP + TCP/IP = IIOP

● IIOP składa się z GIOP i warstwy transportowej

● GIOP - General Inter-ORB Protocol– specyfikuje Common Data Representation (CDR)– zawiera zbiór komunikatów dla wywołań CORBA– zawiera generalne założenia na temat warstwy

transportowej● GIOP może działać z dowolnym protokołem

warstwy transportowej np. TCP/IP, Novell SPX, SNA

● Aby zapewnić współpracę, IIOP korzysta z TCP/IP

Page 38: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

IOR

● CORBA 2.0 Interoperable Object Reference (IOR) – wspólny format referencji do obiektów wymienianych przez IIOP

● Format ten obejmuje adres internetowy serwera obsługującego obiekt i klucz służący od odnalezienia obiektu na tym serwerze

Page 39: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

RMI/IIOP

Page 40: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

RMI

● Remote Method Invocation– rozszerza model obiektów żyjących w jednej

maszynie wirtualnej do modelu rozproszonego– programista może posługiwać się zdalnymi

obiektami w taki sam sposób jak lokalnymi– architektura RMI definiuje zachowanie obiektów,

zarządzanie wyjątkami, pamięcią, przekazywaniem parametrów i wyników metod

Page 41: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

RMI

● Lokalny interfejs i zdalna implementacja

Page 42: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

RMI

● Mechanizm zdalnych wywołań

Page 43: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

RMI

● Mechanizm zdalnych wywołań

Page 44: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Programowanie RMIObiekt lokalny Obiekt zdalnyZdefiniowany przez klasę Javy

Jest implementowany przez swoją klasę

Dostępny bezpośrednio przez referencję

Definiuje swoje zachowanie przez interfejs, który roszerza interfejs Remote

Jego metody są wykonywane przez klasę Javy, która rozszerza zdalny interfejs

Nowa instancja jest tworzona operatorem new Nowa instancja jest tworzona na serwerze operatorem new. Klient nie może bezpośrednio stworzyć nowego zdalnego obiektu, chyba że używa Java 2 Remote Object Activation Dostępny przez referencję, która wskazuje na pośrednika (stub), który implementuje zdalny interfejs

W lokalnej maszynie wirtualnej referencja wskazuje bezpośrednio na obiekt na stercie

Referencja wskazuje na pośrednika (stub) na lokalnej stercie. Pośrednik umie połączyć się ze zdalnym obiektem, który zawiera implementację zdalnych metod

Występują wyjątki wykonania (Runtime Exceptions) i wyjątki programu (Exceptions). Kompilator wymusza obsługę wyjątków programu

RMI wymusza obsługę zdalnych wyjątków (Remote Exceptions)

Page 45: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Protokoły w RMI

● Java Remote Method Protocol (JRMP)– oparty na strumieniach bajtów– korzysta z Java Object Serialization

● HTTP– żądania POST– przechodzi przez firewalle

Page 46: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

RMI/IIOP

● CORBA:

● RMI:

Page 47: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

RMI/IIOP

● RMI zamiast JRMP wykorzystuje IIOP● W ten sposób można uzyskać dostęp do

serwerów CORBA za pomocą API RMI● Ciekawym zastosowaniem są Enterprise

Java Beans (EJB), w których model zdalnego obiektu wykorzystuje RMI

● EJB można więc łatwo połączyć z innymi systemami przez CORBĘ, co daje ogromne możliwości integracji

Page 48: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Distributed Common Object Modeltechnologia Microsoftu

Page 49: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

COM

● COM - Common Object Model – niezależny od platformy– rozproszony– system obiektowy

● Podstawa dla– OLE (Object Linking and Embedding) – ActiveX® (Internet-enabled components)

● Przeznaczony dla języków– Visual Basic– C++

Page 50: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

COM

Page 51: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

DCOM

Page 52: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

DCOM - Architektura

Page 53: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

DCOM - Architektura

● Identyczna jak RMI● Pośredniki (proxy i stub)● Opakowywanie danych przesyłanych przez

sieć (marshalling)● Wywołanie metody = wywołanie RPC między

proxy i stub● Rozszerzenie MS-RPC o Object RPC

(ORPC)

Page 54: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – Simple Object Access Protocol

Page 55: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP Simple Object Access Protocol● Definiuje format wysyłania wiadomości

oparty na XML● Niezależny od platformy i języka● Prosty i rozszerzalny● Komunikaty przechodzą przez firewalle● Standard W3C● Kluczowy element platformy .NET

Page 56: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – przykładowa wiadomość<?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>

Page 57: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – przykładowa wiadomość<?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>

Page 58: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – przykładowa wiadomość<?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>

Page 59: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – przykładowa wiadomość<?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>

Page 60: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – przykładowe żądanie

<?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>

Page 61: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – przykładowa odpowiedź

<?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>

Page 62: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

SOAP – stosowane protokoły

● SOAP używa HTTP na TCP/IP● Korzysta z żądań GET lub POST do

przesyłania wiadomości

Page 63: Protokoly w technologii obiektow rozproszonych - CORBA, …sl/teaching/SEMPROT/SLAJDY... · 2012-09-14 · CORBA – Architektura pośrednik i szkielet (stub and skeleton) CORBA –

Literatura

● Specyfikacja CORBA– http://www.omg.org/

● RMI/IIOP– http://java.sun.com/j2se/1.4.2/docs/guide/rmi-iiop/

● EJB/CORBA– www.iona.com/whitepapers/CORBA-EJBInteropWPV02-00.pdf

● DCOM– http://www.microsoft.com/com/

● SOAP– http://www.w3.org/TR/soap/