Komponentní technologie doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Motivace Aplikace v IT Vývoj přístupů k tvorbě programů Co je to komponenta Životní cyklus komponenty Architektura komponentově orientovaných systémů Komponenty v prostředí Internetu Hlavní komponentní technologie PTE - Komponenty 2 1
Motivace Vývoj Opakovaná použitelnost Snadnost testování Možnost specializace výrobců Distribuce Rychlé uvedení na trh Nezávislost na dodavateli Údržba Snížení nákladů na údržbu Zaměnitelnost tlak odběratelů na strandardizaci PTE - Komponenty 3 Inspirace z jiných oborů Stavebnictví Výstavba z modulů, panely Automobilový průmysl Specializace ve výrobě, zaměnitelnost Elektronika Základní součástky, moduly, funkční bloky PTE - Komponenty 4 2
Aplikace v IT Technické vybavení Paměti, procesory, základní desky Periferní zařízení PnP, ovladače Komunikační prvky Programové vybavení Grafická uživatelská rozhraní - Swing Distribuované aplikace CORBA, EJB,.NET Databáze Informační systémy PTE - Komponenty 5 Vývoj přístupů k tvorbě programů Monolitické programy upřednostnění úspornosti kódu na úkor srozumitelnosti a přehlednosti Strukturované metody hierarchie, abstrakce dynamické knihovny (DLL) vzdálené volání procedur (RPC) modulární programování (Modula-2) PTE - Komponenty 6 3
Vývoj přístupů k tvorbě programů Objektově orientované technologie zapouzdření černá skříňka dědění polymorfismus znovupoužitelnost Komponentní technologie rozhraní standardy PTE - Komponenty 7 Co je to komponenta? Stavební jednotka se smluvně definovanými rozhraními, explicitními kontextovými závislostmi. Napájení GSM modul Mobilní telefon IKeyboard IBluetooth PTE - Komponenty 8 4
Co je to komponenta? Může být použita nezávisle na prostředí, pro které byla vytvořena, MS Office Wizard MyApp prostředí, ve kterém byla vytvořena. MPEG Player (C++) MovieLibrary (PHP) HomeVideo (Java) PTE - Komponenty 9 Co je to komponenta? Je určena pro integraci třetí stranou Autor komponenty Neví, kdo a k čemu bude jeho komponenty využívat Musí dodržet stanovené rozhraní Autor aplikace Neví, kdo bude dodávat komponenty Komunikuje přes stanovené rozhraní Integrátor Propojí aplikaci s vhodnými komponentami PTE - Komponenty 10 5
Požadavky na komponenty Úplná dokumentace Důkladné testování Robustní kontrola platnosti vstupů Vracení dostatečně informativních chybových zpráv Předpoklad, že komponenta bude použita k předem nepředpokládaným účelům. PTE - Komponenty 11 Specifikace komponenty Stav Vlastnosti čtení, nastavení Chování Operace volání, parametry, výsledek Interakce s okolím Události registrace, oznámení PTE - Komponenty 12 6
Životní cyklus komponenty Tvorba komponenty Standardy CORBA, COM+, EJB,.NET Binární kompatibilita nezávislost na jazyce Publikace rozhraní Dokumentace pro člověka Introspekce součást komponenty, klientská aplikace může číst metadata PTE - Komponenty 13 Životní cyklus komponenty Šíření komponenty registry komponent, adresářové služby LDAP, JNDI, UDDI Vyhledání komponenty identifikace komponent, pozdní vazba Tvorba aplikace Podpora IDE přístup jako k interním objektům PTE - Komponenty 14 7
Architektura komponentově orientovaných systémů Aplikační server 1 komponenty Aplikace1 Aplikace2 komponenty Aplikační server 2 PTE - Komponenty 15 Aplikační server Prostředí pro běh softwarových komponent Distribuované prostředí Sdílení dat Synchronizace Zabezpečení Příklady JBoss, Jakarta Tomcat, BEA Weblogic, Citrix MetaFrame, IBM WebSphere, Oracle AS, Java Systems Sun AS, PTE - Komponenty 16 8
Příklad tvorby aplikace IDL komponenta DLL C++ zdrojový text aplikace popis rozhraní Vývojové prostředí EXE spustitelná aplikace dynamická vazba PTE - Komponenty 17 Komponenty v prostředí Internetu Webové služby (Web Services) komponenty přístupné přes WWW rozhraní (protokoly HTTP, SOAP) Publikace komponent WSDL Web Services Description Language Vyhledávání komponent UDDI Universal Description, Discovery, and Integration PTE - Komponenty 18 9
Příklad tvorby aplikace komponenta WSDL služba rozhraní UDDI adresář Vývojové prostředí SOAP (XML) Java aplikace PTE - Komponenty 19 Hlavní komponentní technologie JavaBeans, EJB pouze jazyk Java Komponenty uživatelského rozhraní Swing Enterprise Java Beans pro rozsáhlé systémy COM, COM+, DCOM, ActiveX Binárně kompatibilní komponenty Základní technologie pro Windows.NET Kompatibilita na jazykové úrovni C++, C#, JScript, VB.NET PTE - Komponenty 20 10