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

Podobné dokumenty
Softwarové komponenty a Internet

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

(Enterprise) JavaBeans. Lekce 7

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

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

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

Tvorba informačních systémů

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

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

Nové jazykové brány do Caché. Daniel Kutáč

Common Object Request Broker Architecture

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

Komponentní technologie

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

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

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Testovací protokol USB Token Cryptomate

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

MBI - technologická realizace modelu

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

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Tvorba informačních systémů

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

RMI - Distribuované objekty v Javě

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

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Testovací protokol čipová karta ACOS5

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Michal Krátký, Miroslav Beneš

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

Instalace a konfigurace web serveru. WA1 Martin Klíma

Implementace systémů HIPS: ve znamení 64bitových platforem. Martin Dráb

Návod k instalaci S O L U T I O N S

Programovací software ConfigTool. Základní obsluha a postup připojení k zařízení přes USB a GPRS. Verze 2.00

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Uživatelský manuál A4000BDL

Možnosti aplikace: Copyright 2001, COM PLUS CZ, Praha

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

1 Webový server, instalace PHP a MySQL 13

Elektronická podpora výuky předmětu Komprese dat

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Copyright 2001, COM PLUS CZ a.s., Praha

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

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

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

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

PROGRAMOVÁNÍ PRO MS WINDOWS 2

Připojení přístroje A4101 k aplikaci DDS2000

Implementace systémů HIPS: historie a současnost. Martin Dráb

Testovací protokol. webový generátor PostSignum. sada PIIX3; 1 GB RAM; harddisk 20 GB IDE OS: Windows Vista Service Pack 2 SW: Internet Explorer 9

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Wonderware InTouch 2012 R2 Co je nového

Podpora skriptování v Audacity

Programovací jazyky Přehled a vývoj

Objektově orientované databáze. Miroslav Beneš

Controlweb. Úvod. Specifikace systému

Inthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6

OPERAČNÍ SYSTÉM. Informační a komunikační technologie

MST - sběr dat pomocí mobilních terminálů on-line/off-line

Wonderware Information Server 4.0 Co je nového

IntraDoc. Řešení pro státní správu a samosprávu.

A4300BDL. Ref: JC

Úvod do Web Services

Představuje. Technický Informační Systém nové generace

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Objektové programování

Úvod. Programovací paradigmata

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

Software pro vzdálenou laboratoř

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

OBSAH. 1. Úvod Požadavky na SW vybavení... 3

Matematika v programovacích

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Microsoft Office 2003 Souhrnný technický dokument white paper

Popis funkcí a parametrů programu. Reliance External communicator. Verze 1.5.0

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

EXTRAKT z české technické normy

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

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

UJO Framework. revoluční architektura beans. verze

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

7.5 Diagram tříd pokročilé techniky

ČÁST 1. Základy 32bitového programování ve Windows

Projekt do předmětu PAS. Textový editor

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Statistica, kdo je kdo?

Reranking založený na metadatech

Sísyfos Systém evidence činností

Popis produktu IDFU. Řešení součinnosti s oprávněnými osobami verze 2. Aegis s.r.o.

Analýza a Návrh. Analýza

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

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

ŠKOLENÍ PROGRAMOVACÍHO JAZYKA JAVA JAVA - ZÁKLADY

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

UŽIVATELSKÉ ŠKOLENÍ LOTUS NOTES

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

Technická specifikace

Transkript:

TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah :

1. Základní pojmy 1.1 Komponenta Komponenta je opakovatelně použitelný stavební blok programu. Je to předem vytvořený a zapouzdřený kus aplikačního kódu, který lze kombinovat s ostatními komponentami a s ručně psaným programem ze účelem rychlého psaní programů. 1.2 Vizuální komponenta Typickými vizuálními komponentami jsou součásti grafického uživatelského rozhraní. Komponentou mohou být tlačítka, textová políčka, okna, apod. Vizuální komponenty zapouzdřují metody pro zobrazení komponenty a reakci na různé události (včetně událostí uživatelského rozhraní jako jsou kliknutí tlačítka, vstup focusu na komponentu, apod). 1.3 Nevizuální komponenta Nevizuální komponenta je zapouzdřenou část programu, která nemá svou reprezentaci s uživatelském rozhraní. To znamená, že komponenta nemá metody pro zobrazení. Příkladem může být komponenta pro časovače, FTP klienta nebo konektor pro připojení k databázi. 1.4 Struktura komponenty Komponenty jsou charakterizovány rozhraním, které zahrnuje následující prvky: Vlastnosti Události Operace Vlastnosti reprezentují z vnějšího pohledu mechanismus pro ukládání a získávání hodnot. Z pohledu implementace se může jednat o data uložené v proměnných (attributech), souborech, databázi nebo to mohou být hodnoty vypočtené nebo získané z jiných objektů. Události jsou metody vykonávané činnosti vyvolané různými podněty. U GUI to mohou být kliknutí myši, vstupy uživatele, odeslání dat, u nevizuálních komponent to mohou být uplynutí nastaveného času časovače, dokončení přenosu souboru, zpracování chyby vzniklé při provedení SQL dotazu na databázi. Operace jsou ostatní metody měnící stav komponenty nebo vykonávající ucelenou činnost komponenty. 1.5 Perzistence komponent Perzistence je schopnost komponenty uchovat svůj stav pro další vytvoření (inicializaci). Toho se dosahuje serializací komponenty a jejím uložením případně odesláním cílovému klientovi. Po opětovném načtení komponenty z tohoto souboru je komponenta přesně ve stavu, ve kterém byla ve chvíli serializace. Toto se využívá například při ukládání stavu komponent ve vývojovém prostředí, nebo při restartu server Tomcat. Správnou inicializační konfiguraci komponenty můžeme dosáhnout ještě programovým nastavením stavu komponenty, toto ale nelze využít k pozdějšímu uložení a obnovení stavu.

2. Integrace komponent do aplikací Pro zabudování komponenty do aplikace je potřeba znát dokumentaci příslušné komponenty. Tato dokumentace musí být strojově čitelná a platformově nezávislá, aby ji mohlo zpracovat vývojové prostředí. První možností je definování strukturovaného textového dokumentu, který bude popisovat příslušnou komponentu bude jejím deskriptorem. Tento způsob používá např. technologie COM nebo CORBA, kde je deskriptor tvořen speciálním jazykem IDL (Interface Definition Language), který definuje rozhraní. Další variantou je získání dokumentace analýzou vlastností, událostí a metod komponenty. Aby tato analýza byla možná, musí být pojmenování a strukturu jednotlivých prvků dodrženy určité konvence. Tento způsob používá komponentní technologie JavaBeans, kde např. pro vlastnost x musí být definovány dvě metody getx a setx sloužící k jejímu čtení a nastavení. Dalším vylepšením je zařazení těchto konvencí přímo do programovacího jazyka. Takto je to uděláno v jazyce C#. Pak je možné pomocí překladače získat potřebné metainformace o rozhraní komponenty bez nutnosti dodržovat nějaké konvence pro pojmenování. Navíc mohou být při překladu provedeny kontroly, které by jinak mohly být provedeny až při použití komponenty. 3. Technologie JavaBeans Technologie JavaBeans je komponentní architekturou pro aplikace vytvářené na platformě jazyka Java. Je založena na sadě pravidel umožňujících nastavovat a získávat hodnoty vlastností komponent, předávat události mezi jednotlivými objekty, vytvářet instance objektů a ukládat objekty pomocí serializace. Umožňuje rovněž reprezentovat popisné (meta-)informace o objektech. Komponenty JavaBeans se vytvářejí v souladu s jednotnou specifikací aplikačního programového rozhraní (JavaBeans API) a mohou pracovat v libovolném prostředí podporujícím jazyk Java. Typickou vlastností JavaBeans komponent je možnost s nimi pracovat v rámci vizuálních vývojových prostředí a nástrojů pro vytváření aplikací. Komponenty JavaBeans mohou také zprostředkovávat přemostění platformově závislých komponentních modelů jako jsou ActiveX, OpenDoc nebo LiveConnect. Tím lze dosáhnout přenositelnosti komponent mezi různými kontejnery, v rámci nichž tyto komponenty pracují - např. Netscape, Internet Explorer, Visual Basic, Microsoft Word nebo Lotus Notes. 3.1 Java Bean JavaBean je opakovatelně použitelná programová komponenta, se kterou lze vizuálně manipulovat (např. nastavovat atributy pomocí dialogu) ve vývojových prostředích. Těmito prostředími mohou být nástroje pro vývoj WWW stránek, vizuální prostředí pro tvorbu aplikací nebo také editor textů schopný zařadit JavaBean jako součást dokumentu. Typickou JavaBean je možné charakterizovat následujícími vlastnostmi: Introspekce možnost zvenčí analyzovat jak komponenta pracuje, jaké má rozhraní(metody) Přizpůsobivost možnost nastaveni vzhledu a chování komponenty při vývoji aplikací. Události prostředek pro komunikaci mezi komponentami Vlastnosti nastavitelné hodnoty určené pro přizpůsobení i pro programovou obsluhu komponenty Perzistence možnost uložit přizpůsobenou komponentu a později její stav obnovit

JavaBean je implementována jako obyčejná Java třída. 4. Technologie COM Technologie používaná pro vývoj aplikací pro Windows a Windows NT. Původně navržena pro vývoj aplikací na jednom počítači, rozšíření DCOM umožňuje pak vývoj aplikací s přístupem přes počítačovou síť ke komponentám na jiných počítačích. Další rošíření bylo COM+, které se stalo základem pro současnou architekturu.net. Tato architektura je založena na binárních komponentách s definovanou sadou rozhraní. Každá komponenta je uložena v nějakém binárním souboru, a to buď jako dynamicky linkovaná knihovna (DLL), nebo jako samostatná aplikace (EXE). V případě, že je COM komponenta v DLL souboru, tak je ji klientská aplikace zavede přímo do svého adresového prostoru a komunikuje s ní přímo (volá metody z rozhraní komponenty). V případě, že je volaná komponenta v EXE souboru, tak je situace o něco složitější. EXE soubor má svůj vlastní adresní prostor, do kterého klientská aplikace nemá přímo přístup. Proto k této komponentě klientská aplikace může přistupovat pomocí proxy objektu (zástupného objektu). Ten na straně aplikace zastupuje volanou komponentu. Od aplikace převezme argumenty volaní a název požadované operace, provede jejich serializaci (marshalling) a zajistí jejích přenos do adresního prostoru komponenty. Tam je přijme tzv. Stub, který zajistí deserializaci argumentu a zajistí volání příslušné operace s deserializovanými argumenty. Výsledek operace poté opět serializuje a odešle zpět proxy objektu. Proxy objekt přijatý výsledek operace deserializuje a vrátí aplikaci. Takto se komponenta jeví jako kdyby byla součástí aplikace. Tento princip poté funguje i v modelu DCOM, kde se serializované volání operací a výsledky operace mezi proxy s stubem přenášejí místo mezi dvěma adresními prostory v operační paměti přes počítačovou síť.

Díky jazyku MIDL (upravený jazyk IDL použitý v komponetní technologii CORBA) programátor nemusí proxy objekt a stub psát ručně, ale překladač je vytvoří na základě informací uložených v příslušných souborech definic rozhraní komponent (jsou vygenerovány hlavičkové soubory i implementace proxy a stubu). 4.1 Rozhraní komponenty Komponentní model COM je založen na využití rozhraní, pomocí nichž komponenta komunikuje se svým okolím. Na rozdíl od jiných modelů (CORBA, JavaBeans) je toto rozhraní definováno až na binární úrovni, takže umožňuje efektivní komunikaci s komponentami psanými v různých programovacích jazycích. Rozhraní COM je tvořeno pouze metodami, takže i přístup k datům je realizován výlučně voláním metod, což umožňuje zcela oddělit implementaci komponent od aplikací, které tyto komponenty využívají. Definice binární struktury rozhraní COM komponent vychází z mechanismu, který se například v jazyce C++ používá pro volání virtuálních metod. Toto volání pro nějaký konkrétní objekt probíhá tak, že se nejprve získá ukazatel na tabulku virtuálních metod, jenž je součástí instance objektu. Tato tabulka je vlastně pole ukazatelů na kódy konkrétních metod, takže známe-li pořadové číslo volané metody, vyzvedneme z tabulky adresu jejího kódu a metodu provedeme. Tento postup je znázorněn na následujícím příkladu. Předpokládejme, že máme objekt se dvěma virtuálními metodami. Tabulka virtuálních metod tedy bude mít dvě položky, obsahující ukazatele na kód těchto dvou metod. Velmi podstatnou vlastností takto zvolené struktury je to, že jsme schopni ji vytvořit i v dalších jazycích. COM. Právě k zajištění co nejvolnější vazby mezi komponentami a aplikací slouží specifikace 5. Závěr Komponenta je opakovatelně použitelný stavební blok programu. Je to předem vytvořený a zapouzdřený kus aplikačního kódu, který lze kombinovat s ostatními komponentami a s ručně psaným programem ze účelem rychlého psaní programů.

Komponenty jsou charakterizovány rozhraním, které zahrnuje následující prvky: Vlastnosti Události Operace Rozhraní komponenty je možné specifikovat v zásadě dvěmi způsoby. Prvním je zvláštní strukturovaný textový soubor, který popisuje rozhraní komponenty. Tento způsob je využíván v komponentních technologiích COM a CORBA. Druhým způsobem je získání znalostí o struktuře komponenty analýzou vlastností, událostí a operací komponenty. Zde je potřeba dodržovat definované konvence, např. pojmenování metod. Tento způsob využívá komponentní technologie JavaBeans.