Common Object Request Broker Architecture

Podobné dokumenty
Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

java remote method invocation Kateřina Fricková, Matouš Jandek

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Softwarové komponenty a Internet

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

TÉMATICKÝ OKRUH Softwarové inženýrství

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

RMI - Distribuované objekty v Javě

Úvod do Web Services

Komponentový návrh SW

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Analýza a Návrh. Analýza

Architektury informačních systémů

Architektury informačních systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

Základy počítačových sítí Model počítačové sítě, protokoly

TÉMATICKÝ OKRUH Softwarové inženýrství

Tvorba informačních systémů

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Tvorba informačních systémů

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Vzdálený přístup k počítačům

Unifikovaný modelovací jazyk UML

Distribuované systémy a výpočty

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Úvod do CORBY. Svetlozara Arabadzhieva

Business Intelligence

Michal Krátký, Miroslav Beneš

Identifikátor materiálu: ICT-3-03

Přijímací zkouška - informatika

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Základy objektové orientace I. Únor 2010

Návrh softwarových systémů - architektura softwarových systémů

Příklad použití distribuovaných objektů

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

TÉMATICKÝ OKRUH Softwarové inženýrství

Tvorba informačních systémů

Tvorba informačních systémů

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, Ostrava-Poruba, Česká republika

SOAP & REST služby. Rozdíly, architektury, použití

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Servisně orientovaná architektura Základ budování NGII

Analýza a modelování dat. Přednáška 5

Požadavky pro výběrová řízení TerraBus ESB/G2x

Systémy pro sběr a přenos dat

Profilová část maturitní zkoušky 2017/2018

Sada 1 - Základy programování

Návrh softwarových systémů - architektura softwarových systémů

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

PB161 Programování v jazyce C++ Přednáška 7

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

ilé aspekty distribuovaných objektových systémů

PB161 Programování v jazyce C++ Přednáška 7

Profilová část maturitní zkoušky 2013/2014

Tvorba webových služeb

IB111 Programování a algoritmizace. Programovací jazyky

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

Sísyfos Systém evidence činností

EXTRAKT z české technické normy

Seznámení s prostředím dot.net Framework

Optimalizaci aplikací. Ing. Martin Pavlica

EXTRAKT z technické normy ISO

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Definice pojmů a přehled rozsahu služby

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

Komunikační protokoly počítačů a počítačových sítí

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Vývoj informačních systémů. Přehled témat a úkolů

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Možnosti integrace požárních a bezpečnostních technologií do BMS

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

MASSIV. Middleware pro tvorbu online her

Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ

11 Návrh programového vybavení

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

1. Programování proti rozhraní

EXTRAKT z mezinárodní normy

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Jednorázová hesla pro zvýšení bezpečnosti vzdáleného přístupu mobilních uživatelů

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ

7.5 Diagram tříd pokročilé techniky

7 Jazyk UML (Unified Modeling Language)

Tvorba informačních systémů

Principy ATM sítí. Ing. Vladimír Horák Ústav výpočetní techniky Univerzity Karlovy Operační centrum sítě PASNET

Vývoj informačních systémů. Přehled témat a úkolů

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Michal Krátký, Miroslav Beneš

Zabezpečení proti SQL injection

Úvod. Programovací paradigmata

Transkript:

Common Object Request Broker Architecture

Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální metody CORBA zajišťuje veškerou potřebnou síťovou komunikaci podpora jazykově neutrálního transparentního použití distribuovaných objektů

Standard zavedený organizací Object Managemenet Group Architektura pro distribuované systémy Sjednocuje komunikaci objektů postavených na různých platformách, a to bez rozdílu: výpočetního hardwaru operačního systému programovacího jazyka Verze 1.0 vypuštěna v září 1991

Postupný vznik distribuovaných systémů monolitické systémy nástup osobních počítačů model klient-server objektové programování

Např. mainframy (sálové počítače s terminály) Jeden mainframe obsluhuje zároveň několik klientů najednou Centralizace systému, snadná administrace Nevýhodou je monolitický software Uživatelské rozhraní, výkonná část a přístupy k datům obsaženy v jedné aplikaci Jakákoliv změna může ovlivnit celou aplikaci

Nástup osobních počítačů Dvouvrstvá architektura klient-server Přenesení část zátěže na osobní počítače Typicky databáze sídlí na serveru Uživatelský interface umístěn na klientovi (v PC) Logika aplikace umístněna na server či ke klientovi Odstraněna monolitičnost softwaru Změna ve struktuře či přístupu do DB musí být projeveny ve všech klientech

Členění aplikace na nezávislé části Uživatelské rozhraní Logika aplikace Přístup k datům Cílem je odolnost a flexibilita aplikace Izolace klienta od zbytku aplikace Klient by neměl komunikovat např. napřímo s databázi dat Změny v přístupu k databázi neovlivní uživatelské rozhraní Minimální redistribuce aplikace směrem ke klientovi Výpočty, databáze se mohou distribuovat na různé servery rozložení zátěže

Příchod objektově orientovaného programování Zohlednění zapouzdření, dědičnosti a polymorfismu ve vícevrstvé architektuře vedlo k distribuovaným systémům Aplikační vrstvy jsou nahrazeny komponenty (objekty), jež navzájem využívají svých služeb (metod) Vyžadováno je rozhraní komponent

Definuje protokol komunikace mezi dvěma oddělenými komponentami systému Definuje jaké služby jsou nabízeny a způsob jejich použití Při zachovaném rozhraní se může dynamicky měnit výkonová část komponenty, aniž by byla ovlivněna práce klientů

Abstrakce Redukce složitosti Zapouzdření izoluje programátora od implementačních detailů systému Skládání aplikace z existujících komponent Distribuované systémy navíc poskytují služby v oblasti bezpečnosti a uschování objektů či adresářové služby

Sada služeb, které umožňují objektům se navzájem vyhledávat Seskupují se související informace dohromady Je možné je použít k rozložení zátěže v systému Např. klient se obrátí na nejméně zatíženou komponentu CORBA nabízí tyto a jiné služby pod názvy CORBAservices a CORBAfacilities

Poměrně křehká monolitická architektura ===> velmi pružná architektura Různé architektury postupně umožňovaly vývoj stále robustnějších a více rozčleněných aplikací

Možnost, jak vyvíjet distribuované aplikace Zajišťuje komunikaci různých komponent aplikací Nabízí mechanismus (jazyk) definice rozhraní komponent Specifikuje řadu standardních podpůrných služeb jako např. adresářové služby Nezávislost na platformě Nezávislost na programovém jazyce Schopnost pracovat v různém síťovém prostředí

Pro malé aplikace příliš těžkopádný nástroj Režie plynoucí ze zajištění nezávislosti na programovém jazyce

1989 - založena organizace Object Management Group cílem vytvořit obecnou soustavu architektur pro objektově orientované aplikace založených na specifikaci rozhraní zveřejněna architektura Object Management Architecture, součástí je CORBA hlavní částí je Object Request Broker (ORB) úlohou CORBA (resp. ORB) je zde realizace žádostí o objekty 1991 CORBA 1.0, 1.1 obsahuje jazyk pro definici rozhraní - Interface Definition Language (IDL) 1994 - CORBA 2.0 definuje protokol pro komunikaci mezi ORB - Internet Inter-ORB Protocol (IIOP)

Základní kameny architektury Object Request Broker (ORB) Interface Definition Language (IDL) Komunikační model architektury CORBA

Softwarový prostředek - middleware Zajišťuje komunikaci mezi objekty Klient může transparentně volat metody jiných objektů Volané objekty mohou být umístěny kdekoliv v síti

Parametry volané metody jsou před posláním upraveny do nezávislého formátu (marshalling) Podobně v cíli jsou převedeny do formátu pro cílovou platformu Nezávislost na hardwaru ORB se např. také postará o malý a velký endian Komunikovat lze s jakoukoliv platformou, pro niž existuje implementace ORB Programátor rozdíly mezi platformami již neřeší, pouze volá metody a získává výstup podobně jako u lokálních metod

Marshaling parametrů proces převodu parametrů do formátu přenášeného po síti Unmarshaling parametrů převod parametrů zpátky do formátu, kterému rozumí volaná komponenta

Získá se odkaz na volaný objekt Využívají se např. adresářové služby Cílové ORB přijme požadavek a nalezne požadovaný objekt Klientovo ORB převede a přenese vstupní parametry Cílové ORB zajistí vyvolání příslušné metody a podobně nazpět zasílá výstup Klientovo ORB vrací výstup klientovi

Jazyk pro definici rozhraní komponent Druhý základní kámen architektury CORBA Každá komponenta musí mít napsané své rozhraní v jazyce IDL V IDL se nepíše implementace aplikací, jen pouze rozhraní Rozhraní: definice třídy bez implementace metod

Účelem IDL je umožnit implementaci klienta a serveru v libovolném jazyce Uplatňuje se zde jazykové mapování

Proces převádějící konstrukci jazyka IDL na konstrukce v daném programovacím jazyce Příklad: V jazyce IDL je typ long 32-bitové znaménkové celé číslo V C++ se mapuje na long nebo na int v Javě

Úkolem specifikace IDL je, aby definovala převod na jazyce závislých typů Organizace OMG definovala standardizované mapování např. pro jazyky C, C++, COBOL, Java či SmallTalk. Pro další existují privátní nestandardizovaná řešení Existence mapování je jedinou věcí omezující nezávislost na jazyce

Specifikován obecný standard komunikace mezi dvěma různými implementacemi ORB Obecný standard komunikace se upřesňuje pro konkrétní transportní protokoly např. pro TCP/IP máme standardní prokotol Internet Inter- ORB protocol (IIOP) každý ORB musí tento protokol podporovat

Volání vzdálené procedury se může zdát transparentní a volající o celém skrytém mechanismu v pozadí nemusí ani vědět Při přenosu se však mohou vyskytnout chyby CORBA nabízí prostředek pro ošetření výjimek Jeli detekována chyba, CORBA objekt způsobí výjimku Výjimka může například signalizovat síťovou chybu nebo nedostupnost serveru

V distribuovaných systémech může komponenta získat přístup k objektu: Předáváním odkazem Předáváním hodnotou CORBA zpočátku umožňovala předávání pouze odkazem Na předávání objektu hodnotou se pracovalo dodatečně

Standard CORBA nabízí několik rozhraní mezi implementací objektu a ORB Nejpoužívanějším je právě BOA Nabízí sadu metod s přístupem k funkcím ORB autentizace, aktivace uložených objektů, aktivace a deaktivace volaného serveru,

Generovány IDL kompilátorem Tvoří tmel mezi rozhraním komponenty definovaný dle IDL a implementací klienta a serveru Stub klienta Malá část kódu, jež zpřístupňuje klientovi příslušné rozhraní serveru Skeleton serveru Část kódu, vytvářející kostru pro implementaci serveru

Vývojář vytvoří definice rozhraní komponenty za použití jazyka IDL Poté si vybere jazyk pro implementaci klienta a serveru Zavolá se IDL kompilátor a ten vytvoří stub klienta a skeleton serveru Stub komunikuje s rozhraním na serveru Volání vzdálené metody se tak odehrává skrze stub, který sám navíc zabezpečí komunikaci s ORB Na straně serveru podobně pracuje skeleton. Pro každou metodu vygeneruje IDL kompilátor prázdnou metodu, kam musí programátor doplnit její implementaci

Klient skrze stub předá žádost ORB ORB odevzdá žádost BOA, která aktivuje implementaci serveru Implementace serveru sdělí BOA, že je připravena BOA předá přes skeleton do implementace žádost o metodu Implementace vykoná metodu a vrací výsledek (nebo výjimku) zpět skrze skeleton, ORB, stub až ke klientovi

Architektura pro distribuované systémy Nezávislost na platformě Nezávislost na programovacím jazyce Schopnost pracovat v různém síťovém prostředí

Děkuji za pozornost..

Referát Pavla Váchy Common Object Request Broker Architecture (CORBA) MFF UK