3.4 Das Orbix CORBA-System

Podobne dokumenty
6HUYLFH'LVFRYHU\LQ &25%$ Markus Aleksy

Kostenloses Internet in Posen und Umgebung

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

Common Object Request Broker Architecture (CORBA)

Programowanie współbieżne i rozproszone

Steuerberaterin Ria Franke

Cena franco szt. Dźwig/netto / 1.000szt. (obszar zastosowania: domki jednorodzinne, bliźniaki, domki szeregowe, wielorodzinne) 0,70 kg/dm³ 8

Centrala Bank PKO BP o/ Choszczno Sąd Rejonowy Szczecin

Ustawienia Zabezpieczeń

PRZYKŁADOWY ARKUSZ CZĘŚCI USTNEJ EGZAMINU MATURALNEGO 2013 JĘZYK NIEMIECKI

1. Noch ist nicht verloren, Solange wir. Das, was fremde Übermacht uns raubte, Werden wir mit dem Schwert wiedergewinnen. Marsch, marsch, Dąbrowski...

Wywoływanie metod zdalnych

Odc. 3. Oddział ratunkowy po wypadku w pracy

PRZYKŁADOWY ARKUSZ CZĘŚCI USTNEJ EGZAMINU MATURALNEGO 2013 JĘZYK NIEMIECKI

Czy mogę podjąć gotówkę w [nazwa kraju] bez dodatkowych opłat? Fragen, ob Gebühren anfallen, wenn man in einem bestimmten Land Geld abhebt

KRYTERIA OCENIANIA ODPOWIEDZI POZIOM PODSTAWOWY

Czy mogę podjąć gotówkę w [nazwa kraju] bez dodatkowych opłat? Fragen, ob Gebühren anfallen, wenn man in einem bestimmten Land Geld abhebt

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

Zadanie pierwsze Połącz rzeczowniki z odpowiednimi elementami na ilustracji. Z pozostałych rzeczowników sporządź listę spraw niezałatwionych.

Pobranie makr firmy Rittal oraz wstawianie do projektu systemu EPLAN electric P8

Seite 1 DEUTSCH HAT KLASSE NIEMIECKI MA KLASĘ W SZKOLE PODSTAWOWEJ

Tłumaczenie pisma Stowarzyszenia Castillo Morales e.v. z dnia

Wywoływanie metod zdalnych

PRACTPLANT WIZYTA STUDYJNA WE FRANKFURCIE N. ODRĄ / SŁUBICACH STUDIENBESUCH IN FRANKFURT (O) / SLUBICE LUTY / FEBRUAR 2014


Egzamin gimnazjalny. Język niemiecki. poziom podstawowy i rozszerzony. Także w wersji online TRENING PRZED EGZAMINEM. Sprawdź, czy zdasz!

UZUPEŁNIA ZESPÓŁ NADZORUJĄCY EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM Z JĘZYKA NIEMIECKIEGO POZIOM PODSTAWOWY KWIECIEŃ miejsce na naklejkę z kodem

EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 JĘZYK NIEMIECKI POZIOM PODSTAWOWY ROZWIĄZANIA ZADAŃ I SCHEMATY PUNKTOWANIA (A1)

5.4 Relationale Normalformen

EGZAMIN MATURALNY Z JĘZYKA NIEMIECKIEGO część ustna

Anfrage. 95 Jahre 95 lat

UZUPEŁNIA ZDAJĄCY miejsce na naklejkę

dodatkowych opłat? Fragen, ob Gebühren anfallen, wenn man in einem bestimmten Land Geld abhebt

MATERIAŁ DIAGNOSTYCZNY Z JĘZYKA NIEMIECKIEGO

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

Szkoła płynnego mówienia B1/B2 edycja I

Informacja i promocja w projekcie, realizacja zasady dostępności/ Kommunikationsmaßnahmen und Projektzugänglichkeit

Server-Side C++ Mapping

PRÓBNY EGZAMIN MATURALNY Z JĘZYKA NIEMIECKIEGO

UZUPEŁNIA ZDAJĄCY miejsce na naklejkę

UZUPEŁNIA ZDAJĄCY miejsce na naklejkę

Digitalizacja szlaku konnego w Borach Dolnośląskich i jego promocja. Digitalisierung Reitwege in Bory Dolnośląskie und deren Werbung

PRÓBNY EGZAMIN MATURALNY Z JĘZYKA NIEMIECKIEGO

Die heutige Veranstaltung versteht sich aber auch

Einbau von Rauchwarnmeldern nach DIN 14676

Bielany Wrocławskie,

EGZAMIN MATURALNY 2012 JĘZYK NIEMIECKI

Futuro. design by Przemysław Mac Stopa

EGZAMIN W KLASIE TRZECIEJ GIMNAZJUM CZĘŚĆ 3. JĘZYK NIEMIECKI POZIOM PODSTAWOWY

Zadanie 1 Zadanie 3. Zadanie 3. Rozdział 3. Przed obejrzeniem filmu: Schritt 1. Film ohne Ton. Schritt 2. Film mit Ton

KLUCZ PUNKTOWANIA ODPOWIEDZI

Aplikacja 3 warstwowa

ŚRODKI OCHRONY INDYWIDUALNEJ BHP CRL

- %& #! &.& & ( # + % '/

Przyimki. Präpositionen

Herzliche Einladung an alle Schüler der Klasse Serdecznie zapraszamy wszystkich uczniów klas 1-7

TC1 Grundlagen der Theoretischen Chemie

Firmenname / Nazwa firmy: Rechnungsadresse / Adres do wystawienia rachunku: Straße / Ulica: PLZ / Kod pocztowy: Ort / Miejscowość:

A500Flash. Skrócona instrukcja instalacji... 2 Quick Guide... 5 A500Flash Kurzanleitung... 8

Czy mogę podjąć gotówkę w [nazwa kraju] bez dodatkowych opłat? Fragen, ob Gebühren anfallen, wenn man in einem bestimmten Land Geld abhebt

Czy mogę podjąć gotówkę w [nazwa kraju] bez dodatkowych opłat? Fragen, ob Gebühren anfallen, wenn man in einem bestimmten Land Geld abhebt

Czasowniki wymagające dopełnienia w odpowiednim przypadku. Mianownik (Nominativ): sein, werden, bleiben

Themen: -Neujahr. - Großmutter Tages. - Großvater Tages. und vieles mehr

ZŁĄCZA BUDOWLANE G e r ü s t k u p p l u g e n

Bardzo formalny, odbiorca posiada specjalny tytuł, który jest używany zamiast nazwiska

Z L E C E N I E Nazwa firmy (spółki)..

EGZAMIN MATURALNY Z JĘZYKA NIEMIECKIEGO

Życie za granicą Studia

Życie za granicą Studia

Kościół okazuje się miejscem olśnienia. Pastor wyjaśnia, że melodia stanowi klucz do wehikułu czasu. Ale o jakiej maszynie mówi pastor?

PEWNEGO RAZU NA ZACHODZIE O JEZIORZE, KTÓREGO NIE BYŁO

Informacja i promocja w projekcie, realizacja zasady dostępności/ Kommunikationsmaßnahmen und Projektzugänglichkeit

Przykładowy egzamin maturalny z języka niemieckiego część ustna. Przykładowy egzamin maturalny z języka niemieckiego (wersja dla egzaminującego)

HORN IMMOBILIEN ++ Neubrandenburg- mieszkanie 4-pokojowe++

1-1 Hilfe schütze mich! In Europa und auf der ganzen Welt sterben Tier- und Pflanzenarten aus. Welche möchtet Ihr beschützen?

Publikacje nauczycieli Hänsel und Gretel propozycja pracy z tekstem baśni braci Grimm Jaś i Małgosia

Artikel 188 Artikel 191 Artikel 79

Geburtseintrag aus dem Jahr 1849 aus Kalisch

EGZAMIN MATURALNY Z JĘZYKA NIEMIECKIEGO

Zehnder ComfoCool. Karta katalogowa - informacje techniczne. Ogrzewanie Chłodzenie Świeże powietrze Czyste powietrze

PRÓBNY EGZAMIN MATURALNY Z JĘZYKA NIEMIECKIEGO

Alex bei der Schneekönigin

A. Uzupełnij dialog wyrazami z ramki. / 4. B. Połącz ze sobą części zdania. Rozwiązanie wpisz do tabeli. / 5

ARKUSZ PRÓBNEJ MATURY Z OPERONEM

Od pogranicza do spotkania Vom Grenzraum zum Begegnungsraum

Wprowadzenie CORBA ORB

Radio D Teil 1. Deutsch lernen und unterrichten Arbeitsmaterialien. Lekcja 19 - Oszustwo zostaje zdemaskowane

WSKAZANIA BEZPIECZEŃSTWA

GEFÖRDERTE DEUTSCHKURSE AM ÖSTERREICH INSTITUT:

JĘZYK NIEMIECKI KARTA ROZWIĄZAŃ ZADAŃ 6., 7. i 8.

ARKUSZ PRÓBNEJ MATURY Z OPERONEM

WOJEWÓDZKI KONKURS JĘZYKA NIEMIECKIEGO

Język niemiecki. Poziom podstawowy Próbna Matura z OPERONEM i Gazetą Wyborczą KRYTERIA OCENIANIA ODPOWIEDZI POZIOM PODSTAWOWY

Zapytanie ofertowe. Anfrage. Volkswagen Motor Polska Sp. z o.o. w Polkowicach Volkswagen Motor Polska Sp. z o.o. in Polkowice

Scenariusz lekcji języka niemieckiego

Einkommensteuergesetz Körperschaftsteuergesetz Ustawa o podatku dochodowym od osób fizycznych Ustawa o podatku dochodowym od osób prawnych

Stand Up. design by Mikomax Team

Auswandern Dokumente. Dokumente - Allgemeines. Dokumente - Persönliche Informationen. Gdzie mogę znaleźć formularz? Fragen wo man ein Formular findet

Transkrypt:

Kapitel 3: Workshop Orbix 1 3.4 Das Orbix CORBA-System Kurzer Überblick zu der CORBA-Implementierung Orbix Unser Fahrplan: IDL Verwendungsbeispiel Zoom-In: CORBA Kommunikationsmechanismus Orbix Systemübersicht Naming Service, IORs VBS-Szenario mit Transaktionsservice, persistenten Objekten...

Kapitel 3: Workshop Orbix 2 IDL Beispiel // naming service constants const string OHOContextName = "OhO_ss2003"; module Bank typedef long AccountID; typedef float Money; Interfaces - Attribute - Operationen - Exceptions TypeDefs, Konstanten... interface Account readonly attribute AccountID number; // account id readonly attribute Money balance; // amount of money in account // thrown if not enough money on account to withdraw exception InsufficientBalance }; }; // public methods to modify an account void Credit ( in Money amount ); void Debit ( in Money amount ) raises (InsufficientBalance); };

Kapitel 3: Workshop Orbix 3 Verwendung des Orbix IDL Compilers ESQL/C++ C++ Source IDL C++ Source Client.cpp Bank.idl AccountImpl.cxx AccountImpl.cpp idl -B Bank.idl Oracle proc80 C++ Stubs BankC.cpp C++ Header Bank.hh C++ Skeletons BankS.cpp C++ Compiler FinanceClient Orbix DLL C++ Compiler AccountServer

Kapitel 3: Workshop Orbix 4 CORBA Kommunikationsmechanismus (1) Client account->balance() Proxy-Objekt Object Request Broker

Kapitel 3: Workshop Orbix 5 Auszug aus den Account-Stubs CORBA::Float Account::balance ( ) CORBA::Environment IT_env; Methode kodieren CORBA::Request IT_r (this, _get_balance",it_env,1,0); IT_r.invoke (CORBA::Flags(0),IT_env); Methodenaufruf } if (!IT_r.isException (IT_env) ) CORBA::Float IT_result; IT_r >> IT_result; IT_r.checkEnv (IT_env); return IT_result; } else

Kapitel 3: Workshop Orbix 6 CORBA Kommunikationsmechanismus (2) Client account->balance() Server AccountImpl Proxy-Objekt Object Request Broker Request Objekt-Adapter Implementation Repository

Kapitel 3: Workshop Orbix 7 Auszug aus den Account-Skeletons Account_dispatch::dispatch ( CORBA::Request & IT_r, void * IT_pp ) const char *IT_s = IT_r.getOperation (); if (!strcmp(it_s, _get_balance") ) Dispatching CORBA::Float IT_result; CORBA::Environment IT_env (IT_r); }... IT_result = ((Bank::Account *)IT_pp) -> balance ( IT_env ); IT_r << IT_result; Methodenaufruf

Kapitel 3: Workshop Orbix 8 CORBA Kommunikationsmechanismus (3) Client account->balance() Server AccountImpl Account Proxy-Objekt Object Request Broker Request Objekt-Adapter

Kapitel 3: Workshop Orbix 9 Account-Server Implementierung CORBA::Float AccountImpl::balance ( CORBA::Environment & ) cout << AccountImpl::balance() called" << endl; return this->my_balance; }

Kapitel 3: Workshop Orbix 10 CORBA Kommunikationsmechanismus (4) Client account->balance() Server CORBA::Float balance( )... } Account Proxy-Objekt Object Request Broker Request Answer Objekt-Adapter

Kapitel 3: Workshop Orbix 11 Komplett-Anatomie eines ORBs Client IDL Stubs: statisch, d.h. alle Operationen sind zur Compilezeit bekannt. Dynamic Invocation Interface (DII) findet Objekte und Schnittstellen zur Laufzeit und konstruiert den Aufruf dynamisch, unter Verwendung des Interface Repository (für interpretierende Werkzeuge, wie Query Browser) Server Object Adapter interpretiert Objektreferenzen, bildet diese auf Objektimplementierungen ab und ruft Methodenimplementierungen auf, statisch via IDL Skeletons oder dynamisch über Dynamic IDL Skeletons als Grundlage für die Implementierung der Anwendungslogik Client Objekt-Implementation Dynamic Invocation IDL Stubs ORB Interface IDL Skeleton Dynamic Skeleton Object Adapter Interface Repository Object Request Broker Implementation Repository

Kapitel 3: Workshop Orbix 12 Was ist nun in Orbix der ORB? Der ORB in Orbix besteht aus mehreren Komponenten: Orbix Link-Library Wird sowohl dem Client-, als auch Server hinzugelinkt. Basisfähigkeit zum Austausch von CORBA::Requests, enthält ORB-Interface und Objekt-Adapter der vorherigen Folie. Orbix Daemon orbixd Orbix-Vermittlung : Lokalisiert CORBA-Objekte, leitet Requests entweder zu anderen Rechnern weiter oder startet lokal eine Implementierung, dann LOCATION_FORWARD Mechanismus. Client kommuniziert danach direkt mit CORBA-Server. Konfigurationsdateien Wo liegen die Repositories? Welches ist der Default-orbixd?... Weitere Link-Libraries für IFR und DII Weitere Bestandteile des Orbix-Systems: Verwaltungsprogramme für die Repositories, Includes, Doku

Kapitel 3: Workshop Orbix 13 VBS-Szenario - Übersicht CORBA-Objekt Common Object Services Naming Service Client Finance Zürich Transaction Service CORBA-Objekt mit explizitem persistenten Zustand CORBA-Objekt mit explizitem persistenten Zustand Account Account Bern Zürich STUD2 STUD3

Kapitel 3: Workshop Orbix 14 VBS Szenario: Datenzugriff auf Kundendaten 1. VBS = NamingService->resolve(...) Naming Service Client 2. VBS->Transfer( ) Finance Zürich Bern Zürich STUD2 STUD3

Aktivierung von CORBA Objekten Das Münchhausen Problem von CORBA: Wie ziehe ich mich selbst an den Haaren aus dem Sumpf? Bei CORBA: Woher bekommt man die erste Objektreferenz? Möglichkeiten: ORB::resolve_initial_reference() Standardisiert für wenige zentrale Dienste wie NamingService. ORB::string_to_object() Wandelt stringified IOR in ein Objektreferenz zurück. Problem: Wer nennt uns vorher den String? NamingService::resolve() NamingService bietet Mapping von Strings auf OIDs. Again: Eintrag muss bereits vorhanden sein <T>::_bind() Orbix-proprietärer Weg über Orb-Konfiguration, siehe Übung. Kapitel 3: Workshop Orbix 15

Kapitel 3: Workshop Orbix 16 CORBA IORs (Inter-ORB-References) roehm@dblab6:7 > catns OhO_ss2002.OTS IOR:000100000000002b49444c3a436f735472616e73616374696f6e732f5472616e7361637 4696f6e466163746f72793a312e30007300000001000000000000007d000100000000000f64 626c6162362e6574687a2e63680000062200000000005d3a5c64626c6162362e6574687a2e6 3683a436f735472616e73616374696f6e735f5472616e73616374696f6e466163746f72793a 303a3a49523a436f735472616e73616374696f6e735f5472616e73616374696f6e466163746 f727900 IOR V 1.74 type_id : IDL:CosTransactions/TransactionFactory:1.0 profiles : tag : TAG_INTERNET_IIOP data : ProfileBody of length 125 iiop_version: 1.0 host : dblab6.ethz.ch port : 1570 object_key : :\dblab6.ethz.ch:costransactions_transactionfactory:0 ::IR:CosTransactions_TransactionFactory } } }

Kapitel 3: Workshop Orbix 17 Code-Beispiel Bank::Finance::Transfer() void FinanceImpl::Transfer(Bank::AccountID a1,bank::accountid a2, Bank::Money amount,corba::environment &env) try Current.begin(); source = Bank::Account::_bind( MapAccountToDBS(a1) ); destin = Bank::Account::_bind( MapAccountToDBS(a2) ); } source->debit(amount, env); destin->credit(amount, env); Current.end(); } catch (...) Current.rollback(); throw Bank::Finance::TransferFailed(); }

VBS Szenario: Finance-Dienst in voller Aktion VBS->Transfer(1001,3004, 4711) Naming Service Client Finance 1. begin() Transaction Service 4. register() 7. 2. a1 = Account::_bind( ) 3. a1->debit(4711) 5. A2 = Account::_bind(...) 6. a2->credit(4711) TransactionalObject Account Resource TransactionalObject Account Resource STUD2 STUD3 Kapitel 3: Workshop Orbix 18

CORBA Objekte & explizit persistenter Zustand Problem: Aktivierung eines Objektes mit persistentem Zustand? Object-Oriented Database Adapter zum direkten Einblenden von Objekten aus Objektbanken in die CORBA Welt, nur wir haben noch keinen gesehen... Orbix-spezifisch: spezialisierte ObjectLoader Klasse ein Hook im ORB, um Einfluss darauf nehmen zu können, wie ein zu aktivierendes Objekt initialisiert werden soll. Siehe Übung: Aus der Objektreferenz wird die gewünschte Kontonummer extrahiert und mit den aus der DB gelesenen Werten ein neues Account Objekt erzeugt. CORBA: Persistent Object Service Standardisierter Dienst, um Objekte mit persistenten Zuständen zu initialisieren. Nachteil: zusätzliche Kommunikation und erneut vorherige Verknüpfung notwendig. Portable Object Adapter (POA) neuer, aber noch nicht weit verbreitet Vergleiche auch Lösungsansätze von OTM/EJB Kapitel 3: Workshop Orbix 19

VBS Szenario: Festschreiben der Datenänderungen Client 5. DONE Finance 1. commit() Koordiniert 2PC der beteiligten Resourcen Transaction Service 2. prepare() 4. commit() if all OK TransactionalObject TransactionalObject Account Resource Account Resource 4. COMMIT 3. UPDATE... 3. UPDATE... 4. COMMIT STUD2 STUD3 Kapitel 3: Workshop Orbix 20