Studia Podyplomowe IT w Biznesie Systemy Rozproszone

Slides:



Advertisements
Podobne prezentacje
Migrating Desktop Podsumowanie projektu
Advertisements

20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
C++ wykład 2 ( ) Klasy i obiekty.
1. 2 W ostatnim okresie jesteśmy świadkami ogromnemu postępowi w technologiach rozproszonych systemów informatycznych a co za tym idzie rozproszenie danych.
Programowanie obiektowe
Bazy danych i inżynieria oprogramowania
© K.Subieta. Konstrukcja systemów obiektowych i rozproszonych 3, Folia 1 październik 2004 Konstrukcja systemów obiektowych i rozproszonych Wykładowca:
PROGRAMOWANIE STRUKTURALNE
WEB SERVICE Stefan Rutkowski.
Studia Podyplomowe IT w Biznesie Systemy Rozproszone Wykład 4 Wprowadzenie do OMG CORBA (2) Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa.
CORBA Łukasz Wnęk.
Projektowanie Aplikacji Komputerowych
© K.Subieta. Systemy rozproszone 6, Folia 1 styczeń 2005 Systemy rozproszone (SYR) Wykładowca: Kazimierz Subieta Polsko-Japońska Wyższa Szkoła Technik.
RMI I RMI-IIOP Wprowadzenie Co to jest RMI?
Internet Communication Engine
Standardy w zakresie systemów rozproszonych i baz danych
K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 9, Folia 1 Bazy danych i inżynieria oprogramowania Kazimierz Subieta Instytut Podstaw Informatyki.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 2, Folia 1 listopad 1999 Bazy danych i inżynieria oprogramowania Kazimierz Subieta Instytut.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Modele baz danych - spojrzenie na poziom fizyczny
Projektowanie - wprowadzenie
Wykład 4 Analiza i projektowanie obiektowe
Twoje narzędzie do pracy grupowej
Protokół Komunikacyjny
Podstawy programowania
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
Programowanie strukturalne i obiektowe
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Prezentacja i szkolenie
Programowanie obiektowe – zastosowanie języka Java SE
WPROWADZENIE W ŚWIAT OBIEKTÓW
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
Wybrane zagadnienia relacyjnych baz danych
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Programowanie w języku C++
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Modelowanie obiektowe - system zarządzania projektami.
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Zakres wykładu Pojęcia podstawowe Architektury i oprogramowanie Przykłady systemów rozproszonych.
Zakres wykładu Kierunki rozwoju oprogramowania systemów rozproszonych Własności wybranych architektur - problemy badawcze Przykładowe obszary zastosowań.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Obiekty COM Przemysław Buczkowski. Plan prezentacji 1.Wprowadzenie do COM 2.Historia standardu 3.Jak działa COM 4.Interface IUknown 5.Paradygmaty COM.
Platforma .Net.
Programowanie Zaawansowane
Wstęp do systemów informatycznych Diagramy klas. Odbiór świata  Myślenie o dziedzinie problemu powinno być możliwie zbliżone do myślenia o systemie 
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Temat: Tworzenie bazy danych
Programowanie Obiektowe – Wykład 6
Programowanie Obiektowe – Wykład 2
Aplikacje i usługi internetowe
JavaBeans by Paweł Wąsala
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Studia Podyplomowe IT w Biznesie Systemy Rozproszone Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa Studia Podyplomowe IT w Biznesie Systemy Rozproszone Wykład 3 Wprowadzenie do OMG CORBA (1) Wykładowca: dr hab. inż. Kazimierz Subieta profesor PJWSTK subieta@ipipan.waw.pl, http://www.ipipan.waw.pl/~subieta Niniejszy materiał jest dostępny pod: http://www.si.pjwstk.edu.pl

Co to jest OMG? Rezultat działalności: Object Management Group Konsorcjum programistyczne utworzone w 1989 r. Zajmuje się rozwojem, adaptacją i promowaniem standardów dla rozwijania i rozprzestrzeniania aplikacji w środowiskach heterogenicznych i rozproszonych. Skupia ok. 800 czołowych firm rozwojowych, producentów i dostawców oprogramowania oraz użytkowników. Technika działania: RFP (Request For Proposal): zapytania odnośnie konkretnych tematów wysyłane przez komitety OMG do wszystkich członków. Członkowie (aktywni w danej sprawie) nadsyłają swoje propozycje. Integracja propozycji następuje wewnątrz komitetów na zasadzie głosowania. Rezultat działalności: OMA (Object Management Architecture), której najważniejszym składnikiem jest CORBA (Common Object Request Broker Architecture)

Misja OMG Opracowanie jednorodnej architektury z użyciem technologii obiektowej, mającej na celu integrację rozproszonych aplikacji, która zapewniałaby: ponowne użycie komponentów oprogramowania i danych współdziałanie i przenaszalność podstawy rynku kompatybilnego oprogramowania OMG skupia się na szybkim rozwoju łatwych w użyciu (dostępnych “na półce”) standardowych komponentów.

Koncepcja OMG Jednorodna terminologia dla modelu obiektowego Jedna, zuniformizowana perspektywa danych dla całego rozproszonego, heterogenicznego systemu Zachowanie autonomii lokalnych systemów Wspólna abstrakcyjna rama koncepcyjna Wspólny model odwoływania się do danych i usług Wspólne interfejsy i protokóły Podstawą integracji modelu są kluczowe cechy obiektowości, takie jak obiekty, klasy (interfejsy), metody (operacje), hermetyzacja, polimorfizm i dziedziczenie

OMG: Czołowi partnerzy Andersen APM Apple ASCII AT&T Bell Nothern Borland Bull CA CI Labs Data Access Digital EDS Expertsoft Fujitsu Genesis HP HyperDesk ICL Informix Intel IntelliCorp IBM Micro Focus Microsoft MITRE NeXT Novell Object Design Object Tech.Int’l Oracle OSF ParcPlace POSC Siemens Nixdorf Software AG Sun Microsyst. Sybase Symantec Taligent Telefonica I+D Tivoli TRW Unisys Xerox Istnieje wiele produktów i aplikacji opartych o standard CORBA. Praktycznie każdy miesiąc przynosi informację o nowym produkcie.

OMA: ogólna architektura Wspólne udogodnienia (Udogodnienia CORBA) Wspólne udogodnienia pionowe (dziedzinowe) Rachunkowość Finanse Medycyna ..... Obiekty Aplikacyjne Wspólne udogodnienia poziome Rozproszone dokumenty Zarządzanie informacją Zarządzanie systemem Zarządzanie zadaniami ..... Object Request Broker (Pośrednik Zapotrzebowania na Obiekty) Nazwowa Trwałość Cykl życiowy Współbieżność Kolekcje Handlowa Dostęp zewnętrzny Transakcje Zapytania Związki Ochrona Czas Wspólne Usługi Obiektowe (Usługi CORBA) Własności Zdarzenia Startup Licencje

OMA: Architektura Zarządzania Obiektami Object Management Architecture OMA{ Model obiektów (opis obiektów rozproszonych w sieci komputerowej) Model interakcji pomiędzy obiektami) Model obiektów OMA: Obiekt jest hermetyzowanym bytem z unikalną niezmienialną tożsamością. Obsługa obiektów może odbywać się wyłącznie poprzez dobrze zdefiniowane interfejsy. Klienci wysyłają zlecenia do obiektów, które wykonują odpowiednie usługi. Implementacja i lokacja obiektów jest dla klienta ukryta.

OMA: usługi obiektowe Object Services Są to interfejsy niezależne od dziedziny, które mogą być używane przez wiele systemów rozproszonych obiektów. Np. usługa polegająca na rozpoznaniu wszystkich istniejących w systemie usług jest potrzebna niezależnie od dziedziny aplikacyjnej. Przykłady usług: Usługa w zakresie nazw (naming service) - pozwala klientom na odszukanie obiektów (ich referencji) na podstawie ich nazw. Usługa “handlowa” (trading service) - pozwala klientom na odszukanie obiektów na podstawie pożądanych własności obiektów. Pozostałe usługi mają różnorodne przeznaczenie. Nie wszystkie są zaimplementowane w dostepnych pakietach ORB.

ORB, Object Request Broker Użycie modelu OMA Koncepcja polega na zdefiniowaniu zrębów (frameworks), tj. grup obiektów specyficznych dla danej dziedziny, które ustalają w niej rozwiązanie jakiegoś problemu: np. w telekomunikacji, medycynie, finansach, wytwarzaniu. komponenty aplikacji komunikują się poprzez ORB IA, ID, WU, UO IA, WU, UO WU, UO ORB, Object Request Broker (Pośrednik Zapotrzebowania na Obiekty) UO UO Zrąb obiektowy IA - Interfejsy Aplikacyjne ID - Interfejsy Dziedzinowe WU - Wspólne Udogodnienia UO - Usługi Obiektowe

Przesyłanie zlecenia od klienta do obiektów Implementacja obiektów Klient dynamiczne statyczne Wołania dynamiczne (RPC) Pniak IDL (IDL stub) Interfejs do pośrednika ORB Dynamiczny Szkielet Interfejsu Szkielet obiektów (IDL skeleton) Adapter obiektów Rdzeń Pośrednika (ORB core)

CORBA: schemat komunikowania się klienta z serwerem Host klienta Host serwera Klient Obiekt Wywołanie operacji zlecenie Pośrednik (ORB, Object Request Broker) wynik, parametry wyj Definicja obiektów w IDL pozwala dla klienta widzieć je na abstrakcyjnym poziomie. Klient jest zwolniony z rozpatrywania jakichkolwiek środków komunikacji pomiędzy klientem i serwerem. Z jego punktu widzenia obiekty znajdują się bezpośrednio (wirtualnie) w jego przestrzeni adresowej.

CORBA: schemat wywołania statycznego Host klienta Host serwera Klient Obiekt Implementacja interfejsu do obiektu (szkielet + kod) Wywołanie operacji Pniak klienta zlecenie Pośrednik (ORB, Object Request Broker) wynik, parametry wyj Pniak klienta jest fragmentem aplikacji klienta generowanym automatycznie z wyrażenia IDL. Implementacja interfejsu do obiektu po stronie serwera powstaje ze szkieletu interfejsu do obiektu, automatycznie generowanego z wyrażenia IDL, który jest następnie wypełniany (ręcznie) kodem implementacji operacji zdefiniowanych w wyrażeniu IDL.

Pniaki i szkielety stubs, skeletons Pniak(stub) znajduje się po stronie klienta i zajmuje się tworzeniem i wysyłaniem jego zleceń. Szkielet (skeleton) znajduje się po stronie serwera. Szkielet wypełniony kodem implementacji operacji zajmuje się dostarczanie zleceń klienta do implementacji obiektów. Obydwa mechanizmy są tworzone bezpośrednio ze specyfikacji w IDL, są więc specyficzne dla danego interfejsu. Są one wbudowane bezpośrednio w w aplikację klienta i w implementację obiektów. Wiązanie jest statyczne, wołanie operacji jest odwzorowane w wołanie funkcji w odpowiednim języku programowania. Pniak zajmuje się uszeregowaniem (marshal) zlecenia, tj. zamienia je na formę odpowiednią dla transmisji. Serwer ORB i szkielet dokonują operacji odwrotnej (unmarshal), czyli konwersji z postaci transmitowanej do postaci wymaganej przez język programowania. Po wykonaniu zlecenia, odpowiedź jest wysyłana w odwrotną stronę, poprzez szkielet, serwer ORB i pniak, do aplikacji klienta.

CORBA: Rdzeń ORB: przezroczystość ORB Core, transparency Kluczowa własność ORB - przezroczystość, czyli ukrywanie nieistotnej informacji. ORB ukrywa: Lokalizację obiektu: klient nie potrzebuje wiedzieć, gdzie obiekt jest ulokowany. Implementację obiektu: klient nie potrzebuje wiedzieć, jak obiekt jest zaimplementowany. Stan działania obiektu: klient nie potrzebuje wiedzieć, czy obiekt jest aktywny, gotowy do akceptacji zapytania, czy nie uczestniczy aktualnie w innych procesach. Mechanizmy komunikowania się obiektów: klient nie potrzebuje wiedzieć, jaki mechanizm komunikacyjny jest używany (TCP/IP, wspólna pamięć, lokalne wołanie metod, itd.) Klient może skupić się na problemach związanych z dziedziną aplikacyjną, a nie na problemach realizacyjnych związanych ze środowiskiem komputerowym.

Rdzeń ORB: referencje do obiektów object references Aby przesłać zlecenie, klient specyfikuje docelowy obiekt poprzez podanie jego referencji. Referencja do obiektu jest tworzona wraz z utworzeniem obiektu i nigdy się nie zmienia, aż do jego skasowania. Referencje są nieczytelne, tj. tylko ORB wie, jak referencje są tworzone, jak również niemodyfikowalne: nie ma żadnej możliwości ich zmiany. Referencje mogą mieć postać standardową: Internet Inter-ORB Protocol (IIOP) Distributed Computing Environment Common Inter-ORB Protocol lub mogą mieć postać specyficzną dla danego ORB, danej aplikacji lub dziedziny. Metody uzyskiwania referencji do obiektów: Tworzenie obiektów: po utworzeniu obiektu klient otrzymuje jego referencję. (CORBA nie ma operacji tworzenia obiektów, należą one do aplikacji.) Usługi w zakresie katalogów: klient może wywołać usługę przeglądania obiektów, patrz wspomniane usługi w zakresie nazw (Name Service) i własności (Trader Service). Zamiana referencji na string i odwrotnie: aplikacja może zamienić referencję na string i zapamiętać w pliku lub bazie danych.

Model obiektowy OMG (1) object model Obiekt: identyfikowalny, hermetyzowany byt zapewniający jedną lub więcej usług, które mogą być zlecane przez klienta. Zlecenie (request) jest zdarzeniem, tj. czymś, co zachodzi w pewnym punkcie czasowym. Zlecenie może mieć parametry, które są używane do przesyłania danych do obiektu. Zlecenie jest kierowane do obiektu i powoduje wywołanie usługi na rzecz zlecającego. Usługa może zwrócić zlecającemu wynik. Wartość może być parametrem zlecenia; jest ona wystąpieniem typu danych OMG IDL. Wartość, która identyfikuje obiekt, nazywana jest nazwą obiektu. Referencja do obiektu jest wewnętrzną (nieczytelną) nazwą obiektu, która w sposób unikalny identyfikuje pojedynczy obiekt. Wyjątek pojawia się wtedy, gdy zlecenie nie zakończyło się w sposób normalny.

Model obiektowy OMG (2) Obiekty mogą być tworzone, modyfikowane i usuwane poprzez wykonanie odpowiednich zleceń. Typ jest nazwanym zbiorem wartości spełniających pewien warunek. Wartość spełniająca ten warunek jest nazywana członkiem typu. Zbiór wszystkich takich wartości jest nazywany ekstensją typu (type extension). Typ obiektu jest takim typem, którego członkami są obiekty. Dokładniej, typ obiektu jest określony przez typ przechowywanych w nim wartości. Interfejs jest opisem zestawu wszystkich operacji, które klient może zlecać dla obiektu. Interfejsy są definiowane w języku OMG IDL. Interfejs podlega dziedziczeniu (wielo-dziedziczeniu). Interfejs dowolnego obiektu zawiera oprócz własnych operacji wszystkie odziedziczone operacje.

Model obiektowy OMG (3) Operacja zapewnia wykonanie określonej usługi na obiekcie. Operacja posiada sygnaturę, która opisuje parametry zlecenia, zwracaną wartość, możliwość spowodowania wyjątku, dodatkowy kontekst, semantykę wykonania. Parametr operacji jest scharakteryzowany przez typ i tryb. Tryby parametrów: in (wejściowy), out (wyjściowy), inout (wejściowy i wyjściowy) Deklaracja atrybutu jest równoważna deklaracji dwóch operacji: pierwszej, która odczytuje wartość tego atrybutu, i drugiej, która tę wartość zmienia.

OMG IDL Interface Definition Language IDL jest kluczem do współdziałania systemów poprzez interfejsy oparte na OMG CORBA. Jest on językiem neutralnym, niezależnym od jakiegokolwiek języka programowania. IDL jest deklaracyjny; zajmuje się wyłącznie specyfikacją obiektów. Jest on potrzebny użytkownikom do dwóch celów: klientom, którzy mogą wywoływać operacje zdefiniowane w IDL, projektantom, którzy mogą rozszerzać istniejące funkcje systemu poprzez specjalizację istniejących interfejsów. IDL określa typy i interfejsy obiektów, podobnie do klas w C++ lub interfejsów w Java. IDL nic nie mówi o implementacji obiektów i operacji na obiektach. module Bank { interface Konto { ... }; interface Klient { ... }; .... };

Przykład opisu w IDL Specyfikacja wirtualnych zwierzątek: Ulubieniec module Moje_Zwierzątka { /* definicja interfejsu dla psa */ interface Pies: Ulubieniec, Zwierzę { readonly attribute integer wiek; exception NieReaguje{string dlaczego}; void Szczekaj( in short jak_długo) raises (NieReaguje); void Usiądź( in string gdzie ) void Warcz(in string na_kogo) }; /* definicja interfejsu dla kota */ interface Kot: Zwierzę { void Miaucz( in short ile_razy ) void Mrucz( in short jak_długo ) Ulubieniec właściciel Zwierzę Pies wiek Szczekaj() Usiądź() Warcz() Kot Miaucz() Mrucz()

OMG IDL - inny przykład Osoba Imię Nazwisko Data_Urodzenia wiek() interface Osoba { Osoba Imię Nazwisko Data_Urodzenia wiek() attribute string<20> Imię; attribute string<30> Nazwisko; attribute long Data_Urodzenia; short Wiek( void ); ... }; interface Kierowca : Osoba { attribute short Punkty_Karne; attribute long Numer_Prawa_Jazdy; exception Odebranie_Prawa_Jazdy { ... string<80> Przyczyna; ... }; void Wykroczenie(in short punkty ) raises( Odebranie_Prawa_Jazdy ); ... Kierowca Punkty_Karne Numer_Prawa_Jazdy Wykroczenie(..)

IDL: jeszcze inny przykład interface Konto{ readonly attribute float bilans; void zmień_bilans( in float wartość); }; interface SprawdzKonto : Konto attribute float LimitPrzekroczKonta; interface Bank{ Konto NoweKonto( in string nazwisko) ; SprawdzKonto SprawdzNowe( in string nazwisko ); void UsuńKonto( in Konto konto_klienta );

OMG IDL: pojęcia (1) Moduły (modules) są zbiorami interfejsów zgrupowanych pod jedną nazwą. Moduł wyznacza zakres nazw: nazwy wewnątrz modułu nie kolidują z nazwami z innych modułów. Nazwa z wnętrza modułu musi być kwalifikowana nazwą modułu, np. Bank :: Konto Interfejs definiuje zbiór operacji, które klient może wywoływać w stosunku do obiektu. Jest to specyfikacja obiektu, która opisuje metody, parametery metod, typy danych i wyjątki. Interfejs nie zawiera implementacji. Interfejs może mieć atrybuty i każdy z tych atrybutów posiada automatycznie dwie metody get (daj wartość) oraz set (podstaw wartość). Atrybut może być readonly (tylko do czytania). Interfejs może być definiowany z użyciem dziedziczenia (inheritance) lub wielo-dziedziczenia (multiple-inheritance).

OMG IDL: pojęcia (2) Wyjątki służą do obsługi błędów (mogą mieć także inne zastosowania). Możliwe są dwa typy wyjątków: wyjątki systemowe (standardowe dla CORBA) oraz wyjątki użytkownika (definiowane w specyfikacji IDL). Wyjątek jest strukturą danych zawierającą atrybuty informujące np. o przyczynach powstania wyjatku. Kontekst jest to obiekt zawierający listę własności specyficznych dla klienta. Jest to dodatkowy parametr operacji pozwalający np. ustalić, który klient żąda danej usługi. Operacja jest elementem proceduralnym, którą klient może zastosować w stosunku do obiektu. Sygnatura operacji specyfikuje jej nazwę, typ wyniku, nazwy i typy parametrów, tryb określający, czy parametr jest wejściowy czy wyjściowy, oraz nazwę wyjątku skojarzoną ew. z lokalnym kontekstem klienta. Domyślnie wykonywanie operacji jest synchroniczne, tj. po wywołaniu operacji aplikacja klienta czeka na jej zakończenie. Możliwe są inne tryby wykonywania operacji (oneway) . Typ danych używany do opisu wartości parametrów, atrybutów i zwracanych wartości.