CORBA Common Object RequestBroker Architecture Distribuované systémy 2006.

Slides:



Advertisements
Podobné prezentace
(instance konkrétní třídy)
Advertisements

SÍŤOVÉ PROTOKOLY.
Úvod do počítačových sítí Úvod. Úvod do počítačových sítí •Úvod, síťové protokoly, architektury,standardy •Fyzická úroveň •Linková úroveň •Lokální počítačové.
CORBA Common Object RequestBroker Architecture Distribuované systémy 2006.
Rozšíření systému pro zátěžové testy o SOAP a agenty Zbyněk Pyšný.
Základy databázových systémů
Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Přednáška č. 5 Proces návrhu databáze
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Programování v C++ Cvičení.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
O protokolech sady a mé implementaci variace 104
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Počítačové sítě Architektura a protokoly
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Protokol TCP/IP a OSI model
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
CZ.1.07/1.4.00/ VY_32_INOVACE_169_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
TCP a firevall Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
B. Miniberger, BIVŠ Praha 2009
Výpočetní modely - /zdroj Peterka/
Dokumentace objektů a zveřejnění funkcí
Představujeme Ensemble Michal Tomek. Na tomto obrázku vidíte, co systému Ensemble chybí:
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
CZ.1.07/1.4.00/ VY_32_INOVACE_168_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Databázové modelování
Seznam.cz, a.s. I Radlická 2 I Praha 5 I Tel.: I Fax: FastRPC meziserverová.
PJV031 Přetypování (casting) Objekty, atributy, lokální proměnné, parametry a návratové hodnoty metod mají definovaný, neměnný typ. Jsou dva druhy typů:
Internet.
Klomfar Petr.  Adresářová služba  specializovaná databáze optimalizovaná pro čtení a vyhledávání.  popisující objekt pomocí atributů. Na rozdíl od.
Internet.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
CORBA Common Object RequestBroker Architecture Distribuované systémy 2006.
Protokoly úrovně 3 nad ATM Projektování distribuovaných systémů Lekce 2 Ing. Jiří ledvina, CSc.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Web services. Co jsou webservices Součinná spolupráce počítačů v síti Technologie pro vzdálené volání procedur (RPC) Nezávislá na platformě Data v XML.
IEC 61850: Soubor norem pro komunikaci v energetice
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
MASSIV Middleware pro tvorbu online her. Obsah prezentace Úvod Prostřeky poskytované Massivem Využití jádra Massivu v Demu Zhodnocení projektu Prezentace.
Vrstvy ISO/OSI  Dvě skupiny vrstev  orientované na přenos  fyzická vrstva  linková vrstva  síťová  orientované na aplikace  relační vrstva  prezentační.
E- MAIL Ing. Jiří Šilhán. E LEKTRONICKÁ POŠTA NEBOLI vývoj od počátku sítí – původní návrh pouze pro přenos krátkých textových zpráv (ASCII) základní.
TCP, CORBA, RMI Jan Růžička Institute of geoinformatics VSB-TU Ostrava 17.listopadu 15, Ostrava-Poruba,
Virtualizace ● IP forwarding ● IP tunneling ● Virtuální síť.
B2B Systémová integrace Jiří Macháček. Osnova ► Úvod ► Terminologie ► Parametry – požadavky ► Způsoby integrace ► Web-Services ► Příklady.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
 = jedná se o vzájemné propojení lokálních počítačových sítí pomocí vysokorychlostních datových spojů  vznikl spojením mnoha menších sítí  v každé.
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
AS/400 (IBM iSeries) Úvod. Co vlastně je AS/400 (IBM i)? Aplikační systém 400 (AS/400) byl navržen jako počítač obecně použitelný v obchodním prostředí.
Web services – když si Java sedne s M$ na kus řeči Ing. Petr Přibyl CCA Group a.s.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
Bezpečnostní technologie I
Moduly.
Seminář 11 DHCP + HTTP + IPTABLES
Návrhový vzor Flyweight
Operační systémy 9. Spolupráce mezi procesy
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Bridge.
CORBA Študent: Bc. Juraj Kráľ.
Počítačové sítě IP vrstva
Přednášky z distribuovaných systémů
C# přehled vlastností.
CORBA Common Object RequestBroker Architecture
Přednášky z Distribuovaných systémů
Transkript prezentace:

CORBA Common Object RequestBroker Architecture Distribuované systémy 2006

Distribuované systémy - CORBA2 Úvod CORBA - Common Object Request Broker Architecture standard pro vytváření požadavků na objektové volání metod v síti OMG – Object Management Group – vývoj specifikace CORBA vytvářena s cílem podporovat různé sítě, operační systémy a jazyky na rozdíl od RMI není limitována programovacím jazykem (Java) CORBA není jazyk, ale specifikace jak mají objekty vzájemně působit

Distribuované systémy - CORBA3 Historie 1990OGM vydalo Object Management Architecture Guide (OMA Guide), obsahující základní specifikace, ale bylo to ještě nedostatečné. 1991Vzniká Common Object Request Broker Architecture (CORBA) – verze 1.0, zmiňuje bezpečnost, přibyly Services (služby) a Facilities (vybavení). 1994CORBA verze 2.0 – Implementation repository (uložení implementací objektů), rozšíření Services a Facilities. 2000CORBA 3 - obsahuje Internet Integration (Firewall Specification, Interoperable Name Service), Quality of Service Controls (Minimum, Fault-Tolerant, and Real-Time CORBA), a CORBA components and CORBA scripting (CORBA components bude něco jako Enterprise JavaBeans, akorát ve více jazycích)

Distribuované systémy - CORBA4 Úvod

Distribuované systémy - CORBA5 Úvod

Distribuované systémy - CORBA6 IDL IDL – Interface Definition Language – vyjádření schématu pro popis služeb. jazyk podporující CORBA musí umět implementovat IDL schéma IDL se použije pro automatické generování modulů daného jazyka, které umožní volat objekty. IDL je podporováno následujícími jazyky C, C++, Smalltalk, COBOL, Ada, Java

Distribuované systémy - CORBA7 ORB Object request Broker ORB – Object Request Broker – realizuje rozhraní mezi vzdáleným objektem a programovým klientem ORB zpracovává požadavky na objektové služby a přenáší odezvy. servant – implementace služby

Distribuované systémy - CORBA8 IIOP Internet Inter-ORB Protocol Objekty jsou chápány tak, že metody jsou volány jako by to byly normální lokální metody ORB zajišťuje komunikaci mezi klientem a servantem pomocí IIOP – Internet Inter-ORB Protocol.

Distribuované systémy - CORBA9 Referenční architektura

Distribuované systémy - CORBA10 Referenční architektura

Distribuované systémy - CORBA11 CORBA architektura Objekt – programová entita, obsahující identitu, interface a implementaci známou jako servant Servant – implementace entity, která definuje operace pro podporu CORBA IDL rozhraní Object Request Broker (ORB) – mechanizmus pro transparentní komunikaci mezi klientem a implementací cílového objektu. Skrývá implementační detaily volání metod před klientem. ORB je schopen nalézt implementaci objektu, transparentně jej aktivovat, doručit požadavek i odpověď.

Distribuované systémy - CORBA12 CORBA architektura ORB interface – ORB je logická entita, která může být implementována různým způsobem (jedním nebo více procesy, souborem knihoven). CORBA definuje abstraktní interface pro ORB. tento interface provádí různé pomocné funkce, umožňující transparentní volání objektů. CORBA IDL spojky a skeletony – slouží k propojení aplikací serveru a klienta s ORB. Transformace mezi CORBA IDL definicemi a cílovým programovacím jazykem je automatizována CORBA IDL překladačem.

Distribuované systémy - CORBA13 CORBA architektura Dynamic Invocation Interface (DII) – rozhraní dovoluje klientovi přímo přistupovat k rozhraní ORB. DII používají aplikace, které volají objekty dynamicky bez požadavku využití specifických spojek IDL rozhraní. To dovoluje provádět nejen standardní blokované operace, ale i neblokované synchronní (oddělení send a receive) a oneway (send-only) volání. Dynamic skeleton Interface (DSI) – je to analogie DII na straně serveru. Dovoluje ORB doručit požadavky na implementaci objektu, kdy se při překladu neví, jakého typu objekt je. Klient vytvářející požadavek neví, používá-li implementace IDL skeleton nebo dynamický skeleton.

Distribuované systémy - CORBA14 CORBA architektura Object Adapter – asistuje ORBu při doručování požadavků na objekt a s aktivací objektu. Spojuje implementaci objektu s ORBem.

Distribuované systémy - CORBA15 CORBA základ komunikace Schopný zpracovat základní komunikaci mezi klientem a objektem Základní komunikace spočívá v tom, že je schopen poslat výzvu serveru a odpověď zpět klientovi ORB nabízí pouze několik služeb, jednou ze služeb je manipulace s referencí na objekt ORB dále nabízí operace marshal a unmarshal reference objektu ORB nabízí hledání služeb dostupných objektu (získání počátečního odkazu na implementaci objektu) Rozhraní mezi ORB a klientem je popsáno IDL – kód potřebný pro zpracování komunikace mezi klientem, serverem a ORB je generováno IDL překladačem

Distribuované systémy - CORBA16 Dynamic Invocation Interface Používá se v případech, kdy nejsou dostupná klientovi staticky definovaná rozhraní Za běhu se musí zjistit, jak vypadá rozhraní k objektu a pak se vytvoří požadavek na volání objektu Základní operace je INVOKE, která podle reference na objekt, identifikátoru metody, seznamu vstupních hodnot vytvoří seznam výstupních proměnných vytvořených voláním

Distribuované systémy - CORBA17 Implementation respository uložení všech definic volání – umožňuje volat metody dynamicky IDL překladač přiřazuje při překladu respozitory identifier – jednoznačný identifikátor nemusí být unikátní, odvozen od jména rozhraní a metod obsahuje vše potřebné k realizaci a aktivaci objektů závislé na ORB a OS – obtížné zajistit standardní implementaci

Distribuované systémy - CORBA18 Služby softwareové služby jsou popisovány schématem a realizovány servantem servant je program, který se registruje u „lookup“ služeb, takže ostatní programy pod CORBA mohou získat přístup k jeho službám. Typicky CORBA server vytváří CORBA servant pak je schopný vytvořit ORB pro servant a registrovat služby pro přístup ostatních klientů.

Distribuované systémy - CORBA19 Služby

Distribuované systémy - CORBA20 Typy služeb collection service – prostředky pro seskupování objektů do seznamů (fronty, zásobníky, množiny) query service – vytváření kolekcí objektů, které mohou být řazeny do front, seznamů, dotaz může vrátit odkaz na objekt nebo množinu objektů concurency control service – nabízí prostředky pro konkurentní přístup ke sdíleným objektům transaction service – dovoluje vytvářet transakce, volání více metod v transakci, plošné transakce, vnořené transakce

Distribuované systémy - CORBA21 Typy služeb event service – podporuje asynchronní komunikaci, umožňuje přerušit činnost klientů i serverů při výskytu specifické události notification service – prostředky pro asynchronní komunikaci externalizace – marshalling objektů tak, že mohou být uloženy na disk nebo posílány sítí (serializace objektů v Javě) – převod objektu na posloupnost slabik life cycle service – služby spojené s vytvořením, rušením, kopírováním a přesunem objektů licencing service – zajištění specifické licenční politiky, licence vyjadřuje práva klienta vzhledem k objektu

Distribuované systémy - CORBA22 Typy služeb naming service – označování objektů jmény, mapování na ID objektu property service – základní prostředky pro popis objektů, popisováno párem (atribut, hodnota), popisuje objekt, není stavem objektu trading service – dovoluje objektu nabízet co umí (prostřednictvím definice rozhraní), dovoluje klientům vyhledávat služby persistence service – prostředky pro uložení informace na disk ve formě paměťových objektů

Distribuované systémy - CORBA23 Typy služeb relation service – prostředky pro vytvoření vztahu mezi dvěma a více objekty, podpora pro organizaci objektů security service – autentikace, autorizace, audit, bezpečná komunikace, administrace, nepopiratelnost time service – běžný čas se specifikovaným intervalem nepřesnosti Všechny služby jsou specifikovány pomocí IDL, dovoluje oddělit specifikaci a implementaci

Distribuované systémy - CORBA24 Klienti klienti využívají lookup služeb pro vyhledání služeb servantů služby se mohou v systému přesunovat, transparentnost přesunu zajišťují lookup služby

Distribuované systémy - CORBA25 Jmenné služby

Distribuované systémy - CORBA26 CORBA komunikace původně synchronní, postupně předělána na asynchronní Modely volání objektu synchronní – klient je blokován dokud nepřijme odpověď sémantika at-most-once vhodná pokud volající čeká odpověď, dostane-li odpověď, bylo volání úspěšné nečeká-li volající na výsledek, je vhodné co nejdříve pokračovat (obdoba asynchronního RPC) one way request – metoda volání v CORBA, není zaručeno vyvolání objektu (best effort) deffered synchronous request – po odeslání požadavku klient pokračuje na odpověď čeká později sémantika at-most-once

Distribuované systémy - CORBA27 CORBA události kromě komunikačních služeb je třeba mít k dispozici mechanizmus, který by oznamoval události (výskyt událostí) event service – každá událost je spojena s datovou položkou (odkaz na objekt, hodnota specifická pro aplikaci) událost je produkována modulem supplier, přijímána modulem consumer události jsou doručovány kanálem událostí

Distribuované systémy - CORBA28 CORBA události je používán push model nebo poll model push – consumer čeká pasivně na událost pool – dotazování na výskyt události nevýhody – consumer i suppier musí být připojení ke kanálu událostí – události se mohou ztratit problém filtrování – kanál je společný, consumer musí filtrovat data nebo se musí vytvořit pro každý typ události oddělený kanál

Distribuované systémy - CORBA29 Notification service schopnost filtrování událostí prevence propagace událostí, o které nemají příjemci zájem propagace událostí je nespolehlivá

Distribuované systémy - CORBA30 Přenos zpráv transient (přechodná) komunikace – zpráva je v komunikačním kanálu pouze tehdy, pokud běží klient i server persistentní (přetrvávající) komunikace – zpráva je v komunikačním kanálu dokud nemůže být doručena (message queueing model)

Distribuované systémy - CORBA31 Přenos zpráv podporuje message queueing model callback model pooling model callback model – klient zpracovává objekt, který implementuje interface obsahující callback metody metody jsou volány z nižší vrstvy při asynchronní komunikaci nemají vliv na původní implementaci objektu server realizuje synchronní požadavky

Distribuované systémy - CORBA32 Přenos zpráv konstrukce asynchronního volání náhrada původního rozhraní novým, realizovaným na straně klienta specifikace metod, které může klient volat callback interface rozdělení metody na část vstupní a výstupní (dvě metody) send(in) – voláno klientem reply(out) – voláno ORBem

Distribuované systémy - CORBA33 Přenos zpráv pooling model – transformace původní synchronní metody na asynchronní rozdělení původního rozhraní na send_pool(in) – voláno klientem reply_pool(out) – voláno kolientem

Distribuované systémy - CORBA34 Interoperability problémy se spoluprací ORB od různých výrobců řeší zavedení inter-ORB protokolu General Inter-ORB Protocol – GIOP předpokládá, že vlastní přenosy zajistí existující protokol (TCP) – spolehlivý, spojově orientovaný, tok slabik realizace GIOP nad TCP se označuje Internet Inter-ORB Protocol (IIOP)

Distribuované systémy - CORBA35 General Inter ORB protocol GIOP GIOP definuje 8 typů zpráv Request – úplná požadavek (odkaz na objekt, jméno metody, vstupní parametry, identifikátor (párování s reply) Reply – identifikátor, návratové hodnoty, výstupní parametry LocateRequest – dotaz na umístění objektu – objekty jsou v implementation respository LocateReply – obsahuje server kde je objekt CancelRequest – rušení Request nebo LocateRequest CloseConnection – požadavek na ukončení spojení MessageError – obsahuje záhlaví zprávy, která způsobila chybu (ICMP) Fragment – část dlouhé zprávy – identifikuje originální zprávu obsahuje údaje o fragmentaci

Distribuované systémy - CORBA36 Procesy server klient proxy – propojení aplikace klienta s ORB – DII (Dynamic Invocation Interface) Interceptor – změna volání request level interceptor message level interceptor interceptory jsou viděny pouze ORBem

Distribuované systémy - CORBA37 Interface Definition Language IDL primitivní datové typy – (void (Void), boolean (Boolean), wchar (Char), octet (Byte), short (Short), long (Int), long long (Long), float (Float), double (Double), string (String), wstring (String)) konstruované datové typy – (pole, sekvence, datové struktury)

Distribuované systémy - CORBA38 Moduly slouží ke sdružování logicky vázaných rozhraní (obdoba package) module fce { interface fce_XX { }; interface fce_YY { }

Distribuované systémy - CORBA39 Rozhraní popisuje vzdálený objekt, nabízené metody, členské proměnné, konstanty interface fce_XX { void set_XX( in float x ); float get_XX( ); };

Distribuované systémy - CORBA40 Atributy rozhraní mohou mít definovány proměnné – členské proměnné mohou být modifikovatelné nebo nemodifikovatelné (mutable, immutable) interface fce_XX { attribute short result; readonly attribute short id; }

Distribuované systémy - CORBA41 Operace operace jsou funkce in – neměnný, vstupní out – modifikovatelný, výstupní inout – kombinace předchozích

Distribuované systémy - CORBA42 Zpracování výjimek při výskytu chyby se hlásí výjimka – volání třídy (ne jen příznak chyby a její typ) module X { exception A { }; exception B { }; interface R { void M(in short p, out short q) raises (A, B); }; }

Distribuované systémy - CORBA43 Příklad module HelloApp { interface Hello { string sayHello(); oneway void shutdown(); };

Distribuované systémy - CORBA44 Příklad - překlad idlj –f server Hello.idl idlj –f client Hello.idl idlj –f all Hello.idl HelloOperations.java – operace, které musí COBRA servant realizovat _HelloStub.java – musí být děděn v modulu, který implementuje metody dle HelloOperations Hello.java HelloHelper.java HelloHolder.java HelloPOA.java HelloException.java HelloExceptionHelper.java HelloExceptionHolder.java

Distribuované systémy - CORBA45 HelloOperations.java

Distribuované systémy - CORBA46 Hello.java

Distribuované systémy - CORBA47 HelloServant.java

Distribuované systémy - CORBA48 HelloServer.java

Distribuované systémy - CORBA49 HelloServer.java

Distribuované systémy - CORBA50 HelloClient.java

Distribuované systémy - CORBA51 Program servant HelloServant Vytvoření ORB ORB orb = ORB.init(args, null); Vytvoření servantu HelloServant servant = new HelloServant(); Připojení k ORBu orb.connect(servant); Vytvoření odkazu na službu (Name service) org.omg.CORBA.Object object = orb.resolve_initial_references("NameService“)

Distribuované systémy - CORBA52 Program servant - HelloServant Zúžení obecné služby na namingContext NamingContext namingContext = NamingContextHelper.narrow(object); Vytvoření pojmenované komponenty pro náš servant NameComponent component = new NameComponent („Hello", ""); Vytvoření prostoru pro pole deskriptorů kontextu NameComponent componentList[] = { component } ; Seznámení jmenných služeb s naším novým rozhraním namingContext.rebind(componentList, servant);

Distribuované systémy - CORBA53 Program klient HelloClient Vytvoření komponenty pro servant NameComponent component = new NameComponent („Hello", ""); Vytvoření prostoru pro pole deskriptorů kontextu NameComponent componentList[] = { component } ; Vyhledání komponenty podle jména org.omg.CORBA.Object remoteRef = namingContext.resolve(componentList); Vyhledání konkrétního odkazu na instanci servantu. Modul Helper mapuje elementy IDL na Java kód. Hello s = HelloHelper.narrow (remoteRef);

Distribuované systémy - CORBA54 Zpracování příkladu idlj –fall Hello.idl javac *.java orbd -ORBInitialPort ORBInitialHost localhost tnameserv -ORBinitialPort 1050 java HelloServer -ORBInitialHost localhost -ORBInitialPort 1050 java HelloClient - ORBInitialHost localhost -ORBInitialPort 1050