Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4)
Mantichora Mantichora je moderní aplikace, který slouží k simulaci dějů ve sluneční soustavě. Je složena z několika logických částí. Každá logická část řeší určitou problematiku. Logické části můžeme nazvat komponenty. Řešení aplikace jako je Mantichora lze rozložit na dílčí problémy. Dílčí problémy vyřešit zvlášť a řešení spojit dohromady. První verze Mantichory budé mít tyto komponenty: síťovou část editor scény rendrovací jádro fyzikální model Vývoj aplikace Mantichora vede pan Ing. Jiří Chludil. Jde o týmovou práci, kde každý dělá jistou specifickou funkci. Probíhají pravidelné konzulace, které řeší problémy při vývoji. Hodně důležitá je komunikace mezi členy týmu. Mezi určitými členy týmu je spolupráce velmi úzce svázána. Pro potřeby celého týmu bylo zřízeno diskusní forum na http://mantichora.afw.net/phpbb3/index.php a pro práci v týmu účet na www.assembla.com. Mým úkolem je nastudovat princip architektury komponentového softwaru. Podat přehled o tom, kde se používá. Nalézt technologie nebo aplikace, které podporují tvorbu komponetového softwaru. Vytvořit tutorialově orientované příklady. Navrhnout vlastní řešení pro aplikaci Mantichora.
2) Teorie zásuvných modulů Zásuvné moduly se v dnešní době hodně používají. Zásuvný modul se skládá z počítačového programu, který komunikuje s hostitelskou aplikací, aby poskytl jistou specifickou funkci. (citace wikipedia.com) a) Druhy aplikací používajících zásuvné moduly Grafický software Grafických formátů je mnoho a rozšířit software o požadovaný formát pomocí stažení určitého zásuvného modulu je velmi dobrá myšlenka. Příklady : Adobe Photoshop, Adobe InDesign, Adobe Reader, Adobe Ilustrator, Flash. Medilání aplikace Mediální přehrávače podporují zásuvné moduly proto, aby podporovaly různé formáty videa a hudby. Příklady : Winamp Vývojová prostředí Zásuvné moduly zde slouží pro podporu programovacích jazyků. Zde musím uvést prostředí Eclipse. Můžete si tam naprogramavovat vlastní plug-in. Prostředí si tak můžete upravit podle sebe. Eclipse je prostředí složené ze samých plug-inů. V dnešnní době stále více populárnější. Příklad: Eclipse Webové prohlížeče Webové prohlížeče používají zásuvné moduly k přehrávání videa. Podporují formáty Flash, Quick Time, Microsoft Silverlight a mnoho dalších. Firefox je multiplaformní webový prohlížeč. Běží na platformách Windows, Linux a MacOs. První záměr tvůrce bylo vytvořit malý, rychlý a vysoce rozšiřitelný webový prohlížeč.
Pomocí příkazu about:plugins se nám zobrazí přehled nainstalovaných zásuvných modulů. Tyto zásuvné moduly lze najít v adresáři C:\Program Files\Mozilla Firefox\plugins. V případě firefoxu jde o souboru typu *.dll.
Výpis adresáře b) Knihovny Knihovna je v programování funkční logický celek, který poskytuje služby pro programy. Jedná se o sbírku procedur, funkcí a datových typů. V terminologii objektového programování obsahuje sadu tříd. (wikipedia.org) Knihovna poskytuje aplikační programové rozhraní(zvané API), které umožnuje programu volat funkce poskytované touto knihovnou. Druhy knihoven : služby operačního systému grafické funkce řízení periférií vědeckotechnické výpočty Typy knihoven : statické dynamické Statické knihovny jsou spojovány linkerem v době stavění programu. Výsledek tohoto spojování je jeden spustitelný soubor. Výsledný soubor obsahuje tu část statické knihovny, která je nezbytná pro chod programu. Přípony statické knihovny.lib nebo.a. Dynamické knihovny Při linkování programu s dynamickou knihovnou se do výsledného spustitelného souboru ukládají pouze tabulky odkazů na symboly definované v dynamické knihovně. Pro chod programu je nutné mít naistalovánu příslušnou dynamickou knihovnu. Většina operačních systémů umožňuje programům načítat knihovny za běhu programu. Přípony souboru.dll a.so.
Srovnání: Kritérium Statická knihovna Dynamická knihovna Spojování s programem. V době linkování. V době spuštění programu. Při spustění několika programů využívajících stejnou knihovnu. Je v paměti opakovaně. Sdílena v paměti. Přenositelnost. Stačí přenést jeden soubor. Je nutné zajistit instalaci všech knihoven. Chyba v programu. Je nutné sestavit celý program znovu. Možné výměna jen v knihovně kde chyba nastala. Doba spustění. Kratší než u dynamické. Delší než u statické. OS musí zajistit načtení dynamické knihovny do paměti zvlášť a provést realokaci. Požadavky na návrh knihovny: Zapouzdřenost Komplexní funkčnost knihovny by měla být dostupná přes jednoduché a snadno použitelné rozhraní. Znovupoužitelnost Dobře navrženou knihovnu můžeme dále používat. Nemusíme jí vyvíjet znovu. b) Architektura aplikace Na obrázku je vidět jak by mohla taková aplikace složená ze zásuvných modulů vypadat. Jde o zkušební příklad. Hlavní aplikaci zde může tvořit v podstatě cokoliv. Zde je to
formulář. Hlavní formulář obsahuje jádro. Jádro komunikuje s Hlavním formulářem pluginy c) Výhody Aplikace podporující zásuvné moduly mají celou řadu výhod. Výhody Snadno si mohu stáhnou zásuvný modul, který není součástí instalace. Je možné později aplikaci rožšířit o nové funkce. Vývoj aplikace je možné rozdělit na party vývojářů.
Slovník Komponenta = zásuvný modul = plug-in Je to v podstatě počítačový program, který poskytuje určitou funkčnost. Jde většinou o třídu nebo sadu tříd a metod. Komunikuje s aplikací.