Programowanie współbieżne i rozproszone

Podobne dokumenty
Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

76.Struktura oprogramowania rozproszonego.

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

Tworzenie aplikacji rozproszonej w Sun RPC

Programowanie obiektowe

Ustawienia Zabezpieczeń

Wywoływanie metod zdalnych

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

Wywoływanie metod zdalnych

Wprowadzenie CORBA ORB

Programowanie Komponentowe WebAPI

Zaawansowane narzędzia programowania rozproszonego

Aplikacje RMI

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie. Dariusz Wawrzyniak 1

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Systemy Rozproszone Technologia ICE

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

1 Wprowadzenie do J2EE

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Zaawansowane aplikacje internetowe CORBA. wykład prowadzi Mikołaj Morzy CORBA

Podstawy programowania. Wprowadzenie

Systemy rozproszone. oparte na obiektach

Remote Method Invocation 17 listopada 2010

Common Object Request Broker Architecture (CORBA)

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Interfejsy w Javie. Przykład zastosowania interfejsów:

Bazy danych 2. Wykład 1

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Standard CORBA. Oprogramowanie systemów równoległych i rozproszonych Wykład 8. Zalety (I) Model komunikacji. Dr inż. Tomasz Olas

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Systemy rozproszone. oparte na obiektach

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

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

Middleware wprowadzenie października 2010

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Programowanie współbieżne i rozproszone

Technologie COM i ActiveX COM - Component Object Model

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Tworzenie aplikacji w języku Java

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

XML-RPC: Zdalne wykonywanie procedur

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Szablony funkcji i szablony klas

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

UML w Visual Studio. Michał Ciećwierz

BAZY DANYCH model obiektowy. Opracował: dr inż. Piotr Suchomski

Programowanie obiektowe - 1.

Podstawy Programowania Obiektowego

Wprowadzenie do szablonów szablony funkcji

Wprowadzenie do szablonów szablony funkcji

Systemy rozproszone. Dr inż. L. Miękina. Department of Robotics and Mechatronics AGH University of Science and Technology 1/1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Wykład 1 Inżynieria Oprogramowania

Algorytmy i struktury danych. wykład 1

Efektywność mechanizmów wywoływania procedur zdalnych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

SZKOLENIE TWORZENIE SYSTEMÓW

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Microsoft IT Academy kurs programowania

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Obiekty w plikach wykonywalnych, marshaling

Wzorce projektowe. dr inż. Marcin Pietroo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Aplikacje RMI Lab4

Komunikacja i wymiana danych

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

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Wstęp do programowania

Wprowadzenie do systemów rozproszonych

Szablony. Szablony funkcji

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Aplikacja 3 warstwowa

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie C# mgr in. Dariusz Ku. p. 119A

Modelowanie i Programowanie Obiektowe

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Programowanie w Internecie. Java

Diagramy UML, przykład problemu kolizji

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Programowanie obiektowe

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6

Wprowadzenie do UML, przykład użycia kolizja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Transkrypt:

Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż.

CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group) w 1991 roku. http://www.corba.org/ CORBA specyfikuje technologię, niezależną od platformy systemowej i języka, integracji składników programów rozproszonych.

CORBA CORBA pozwala tworzyć programy rozproszone działające na różnych platformach systemowych. CORBA określa standardowe metody dostępu do zdalnych obiektów i komunikacji pomiędzy nimi. CORBA oparta jest o zestaw obiektów oddzielających serwery (dostawców usług) od klientów (odbiorców korzystających z usług) poprzez zdefiniowany interfejs programistyczny.

CORBA CORBA definiuje m.in.: lokalizowanie obiektów serwerów po nazwie, przekazywanie argumentów i rezultatów metod. Specjalny program-sewer dostarczany wraz z implementacją środowiska CORBA uruchamiany jest przed rozpoczęciem działania pozostałych składników programu rozproszonego.

CORBA Oprogramowanie obiektów serwerów i klientów może zostać stworzone w różnych językach programowania. Do tworzenia specyfikacji obiektów służy specjalny język. Ze specyfikacji obiektów generowana jest implementacja programu rozproszonego w danym języku programowania.

CORBA SDK języka Java (od wersji 1.3) dostarcza swoją implementację standardu CORBA.

OMA OMA (Object Management Architecture) architektura zarządzania obiektami zaproponowana przez OMG.

OMA OMA wyróżnia pięć zasadniczych elementów: Pośrednik zleceń obiektowych ORB (Object Request Broker) Repozytorium interfejsów IR (Interface Repository) Interfejs wywołań dynamicznych DII (Dynamic Invocation Interface) Język definicji interfejsu IDL (Interface Definition Language) Adaptery obiektów OA (Object Adapters)

ORB ORB (Object Request Broker) - pośrednik zleceń obiektowych: zapewnia komunikację pomiędzy obiektami w sieci pozwala na lokalizowanie zdalnego obiektu i uzyskanie referencji do niego w programie odpowiada za przesyłanie argumentów i rezultatów metod kieruje żądania do innych pośredników w sieciach opartych na TCP/IP wykorzystuje w warstwie transportowej protokół IIOP (Internet Inter-OOB Protocol)

IDL IDL (Interface Definition Language) - język definicji interfejsu: jako język pośredni służy do specyfikacji interfejsów na jego podstawie generowany jest przez specjalny kompilator kod w konkretnym języku programowania

IDL OMG zdefiniowało odwzorowania IDL m.in. na języki programowania: Ada C C++ COBOL Lisp Java Smalltalk Python

IDL Definicja modułu: module NazwaModulu { // interfejsy i typy danych };

IDL Definicja interfejsu: interfejs NazwaInterfejsu { // deklaracja operacji };

Deklaracja operacji: IDL typ NazwaOperacji(listaParametrow); typ NazwaOperacji(listaParametrow) raises NazwaWyjatku;

IDL Modyfikatory parametrów: in out inout parametr przekazywany od klienta do serwera parametr przekazywany od serwera do klienta parametr przekazywany w obu kierunkach

Deklaracja wyjątku: IDL exception NazwaWyjatku {};

IDL Deklaracja typu złożonego: typedef typ nazwa;

IDL Definicja struktury: structure NazwaStruktury { // deklaracja atrybutów };

Pierwotne typy danych short, unsigned short long, unsigned long long long, unsigned long long IDL 16 bitowa liczba całkowita (ze znakiem, bez znaku) 32 bitowa liczba całkowita (ze znakiem, bez znaku) 64 bitowa liczba całkowita (ze znakiem, bez znaku) float, double liczba zmiennoprzecinkowa (32 bitowa, 64 bitowa) char, wchar znak (8 bitowy, 16 bitowy) boolean wartość logiczna octet znak (niepodlegający konwersjom przy przekazywaniu pomiędzy różnymi systemami) any dowolna wartość

IDL Szablonowe typy danych sequence<typ> sequence<typ,n> wektor o nieokreślonej długości elementów typu typ wektor o długości n elementów typu typ

Kompilacja specyfikacji IDL Do kompilacji specyfikacji IDL do kodu Java może zostać użyty program idlj dostępny w Java SDK w folderze bin. idlj -fall plik.idl; Parametr fall sprawia, że generowana jest zarówno strona klienta jak i serwera.

IDL a Java Odpowiedniość konstrukcji IDL i Java IDL Java moduł pakiet sekwencja tablica operacja metoda...... http://docs.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlmapping.html

DII DII (Dynamic Invocation Interface) - interfejs wywołań dynamicznych: pozwala klientom używać obiektów CORBA, których typy nie były znane w czasie kompilacji

IR (Interface Repository) repozytorium interfejsów: IR przechowuje i udostępnia interfejsy dynamiczne

OA OA (Object Adapters) adaptery obiektów: pośredniczą pomiędzy ORB a implementacjami obiektów w dostępie do usług POA (Portable Object Adapter) przenośny adapter obiektów dostępny m.in. w Java SDK od wersji 1.4. Klient Serwer Obiekt_1 ORB POA Obiekt_N

Tworzenie programu współbieżnego w oparciu o CORBA

Implementacja serwera w architekturze CORBA

Implementacja klienta w architekturze CORBA

Architektura aplikacji opartej o CORBA Aplikacja klienta Referencja do obiektu zdalnego Stub Kod twórcy aplikacji rozproszonej Kod generowany ze specyfikacji IDL Aplikacja serwera Implementacja obiektu zdalnego Skeleton (szkielet) OBR IIOP OBR Oprogramowanie

Architektura aplikacji opartej o CORBA Stub część aplikacji po stronie klienta w architekturze CORBA odpowiedzialna za konwersję parametrów i wyników wywołań. Skeleton - część aplikacji po stronie serwera w architekturze CORBA odpowiedzialna za konwersję parametrów i wyników wywołań.