Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. GUI pro testování komponentových aplikací
|
|
- Adéla Bartošová
- před 7 lety
- Počet zobrazení:
Transkript
1 Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce GUI pro testování komponentových aplikací Plzeň 2014 Lukáš Rostás
2 Prohlášení Prohlašuji, že jsem bakalářskou práci vypracoval samostatně a výhradně s použitím citovaných pramenů. V Plzni dne 26. června 2014 Lukáš Rostás
3 Poděkování Rád bych poděkoval Ing. Richardu Lipkovi, PhD. za vstřícnost, ochotu a cenné rady při vedení této práce.
4 Abstract The goal of this bachelor s thesis is to design and implement a library that creates a graphical user interface which makes it easier to control testing of simulated components. This GUI will be generated dynamically and will contain elements based on the programmer s requierements. The theoretical part of this paper describes the OSGi, the Spring framework and the principles of component-based development. The second part aims to describe the design and implemenation of the library.
5 Obsah 1 Úvod 3 2 Komponentové programování Komponenty Definice a vlastnosti Komponentové rozhraní Komponentový model Komponentový framework Kompozice Platforma OSGi Modularita v Javě Architektura OSGi Komponenty v OSGi Životní cyklus bundlu OSGi framework Služby Spring Dependency Injection Spring DM (Blueprint) Simulátor Simco Komponenty Události Konfigurace
6 OBSAH OBSAH 4 Analýza Požadavky na aplikaci Použité prostředky Návrh prostředí Dynamické GUI Implementace Poskytované API Vytvoření okna Nastavovací prvky Nastavení celočíselné proměnné Nastavení reálné proměnné Nastavení textové proměnné Nastavení proměnné typu pole Sledovací prvky Sledování proměnné Logovací komponenta Validace okna Komunikace Zasílání zpráv Konfigurační soubor Spuštění komponenty Ukázka použití Závěr 36 Přehled zkratek 37 Literatura 38 2
7 1 Úvod Cílem této práce je implementovat knihovnu, která vytvoří grafické uživatelské rozhraní usnadňující ovládání testování simulovaných komponent. Toto GUI bude generované dynamicky a bude obsahovat prvky na základě požadavků programátora komponent. Knihovna umožní nastavovat parametry jednotlivých komponent v simulaci a zároveň sledovat proměnné a parametry komponent jiných a zobrazovat je v grafické či textové podobě. V první, teoretické, části práce je text zaměřen na vysvětlení základních pojmů komponentového programování a seznámení se s frameworky OSGi a Spring. Dále bude představen simulátor komponent Simco, který je vyvíjen na Katedře informatiky a výpočetní techniky Fakulty aplikovaných věd Západočeské univerzity v Plzni. Realizační část bude zaměřena na samotnou aplikaci vytvořenou v rámci této bakalářské práce. 3
8 2 Komponentové programování Komponenty, komponentové programování a komponentový software v posledních letech nabývají na důležitosti. Základní myšlenka komponentově orientovaného softwarového inženýrství (CBSE) 1 je vytváření aplikací propojováním jednotlivých na sobě nezávislých částí, tzv. komponent. Tento přístup umožňuje urychlit vývoj aplikací, jejich dlouhodobou udržitelnost a v neposlední řadě zlevnit ceny software díky znovupoužitelnosti již existujících komponent. 2.1 Komponenty Definice a vlastnosti Definic softwarové komponenty existuje mnoho, pro účely této práce jsem vybral tyto dvě: Podle Clemense Szyperského [1] je softwarová komponenta jednotka kompozice skládající se ze smluvně specifikovaných rozhraní a explicitních kontextových závislostí. Softwarová komponenta může být nasazena nezávisle a je předmětem kompozice třetích stran. Jiná definice [6] říká, že komponenta je nezávisle dodávaná jednotka, která zapouzdřuje služby za veřejné rozhraní a která může být skládána s dalšími komponentami. Obecně pro komponenty platí [3]: neveřejná (skrytá) implementace funkcionality, jsou používány třetí stranou (third-party), odpovídají komponentovému modelu. 1 Component-based software engineering nebo také CBD component-based development. 4
9 Komponentové programování Komponenty Základní vlastnost komponent je skrytá implementace před okolím. Jediným způsobem, jak může třetí strana využít komponentu, je přes její rozhraní. Tento princip je znám jako black-box model. Komponenta nemá přístup k implementaci ostatních komponent, ale pouze k jejich veřejnému rozhraní. Tím je odstraněna závislost na konkrétní implementaci a komponenta je snadno nahraditelná. Z hlediska vývoje komponent a maximalizace možné znovupoužitelnosti je důležité brát v potaz, jak velkou funkcionalitu by měly komponenty zapouzdřovat. Lze říci, že příliš jednoduché komponenty vlastně nemají smysl a komponenty, které se snaží zahrnout příliš komplexní funkčnost, jsou zase málo flexibilní. Na obrázku 2.1 jsou znázorněny vztahy mezi komponentami, komponentovým modelem a komponentovým frameworkem. Tyto pojmy budou vysvětleny dále. Obrázek 2.1: Komponenta, model, framework a jejich vztah [3] Komponenta (1) je softwarová implementace, která může být spuštěna na fyzickém nebo logickém zařízení. Komponenta může implementovat jedno 5
10 Komponentové programování Komponenty nebo více požadovaných rozhraní (2). Díky rozhraní může být mezi dvěma komponentami navázána komunikace. Povinnosti a závazky, které musí komunikující komponenty plnit, specifikují tzv. kontrakty (3). Kontrakty zajišt ují, že se nezávisle vyvíjené komponenty budou řídit určitými pravidly tak, aby interakce komponent probíhaly předvídatelným způsobem a aby mohly být nasazeny do standardních běhových prostředí (4). Komponentově orientované systémy jsou založeny na malém počtu různých komponentových typů, z nichž každý z nich má jedinečnou roli (5) a je popsán rozhraním (2). Komponentový model (6) je soubor komponentových typů, jejich rozhraní a specifikací přípustných interakcí mezi komponentovými typy. Komponentový framework pak poskytuje různé služby (8) podporující a vynucující komponentový model. V mnoha ohledech lze komponentový framework přirovnat ke speciálnímu operačnímu systému [3]. Výhody komponentového přístupu: nezávislý vývoj a nasazení, nezávislá rozšíření a snadná nahraditelnost komponent, znovupoužitelnost, kratší doba uvedení produktu na trh, úspora času a prostředků při vývoji, dlouhodobá udržitelnost systému Komponentové rozhraní Jak již bylo zmíněno, jediný možný přístup ke službám komponenty je skrze její rozhraní. Je tedy důležité, aby toto rozhraní pro interakci s ostatními komponentami bylo jasně definované a zdokumentované. Stabilní rozhraní zajistí logické oddělení jednotlivých komponent a zamezí nežádoucím přístupům k vnitřní implementaci. V ideálním případě by rozhraní mělo být definováno na základě toho, co komponenta poskytuje a vyžaduje od ostatních 6
11 Komponentové programování Komponenty komponent [4]. Komponenta obvykle ke své funkčnosti požaduje rozhraní jiné komponenty, které značíme jako required. Rozhraní, která komponenta poskytuje, jsou označována provided. Na obrázku 2.2 je znázorněno komponentové rozhraní mezi dvěma komponentami, kde komponenta A poskytuje požadované vlastnosti komponentě B a komponenta B tyto vlastnosti vyžaduje. Obrázek 2.2: Rozhraní mezi komponentami Komponentový model Komponentový model je definice standardů pro implementaci komponenty, její dokumentaci a nasazení. Komponentový model zajišt uje, aby nezávisle vyvíjené komponenty mohly být bez problémů nasazeny ve společném běhovém prostředí. Model také určuje, jak by měla být definována rozhraní a jaké prvky by tato definice měla obsahovat. Všechny komponenty musí splňovat požadavky komponentového modelu. Mezi tyto požadavky patří [3]: Komponentové typy komponentový typ lze definovat na základě rozhraní, které komponenta implementuje. Pokud implementuje tři různá rozhraní X, Y a Z, tak komponenta je typu X, Y a Z a může libovolně zastávat roli X, Y nebo Z. Komponentový model vyžaduje, aby komponenta implementovala jedno nebo více rozhraní. Pak může model definovat jeden nebo více komponentových typů. Různé komponentové typy pak mohou v systému zastávat odlišné role a mohou být zapojeny v různých schématech interakce. 7
12 Komponentové programování Komponenty Schémata interakcí komponent komponentový model specifikuje použité komunikační protokoly a způsob dosažení požadované kvality služeb, jako je zabezpečení nebo transakce. Dále model popisuje, jak komponenty komunikují mezi sebou nebo s komponentovým frameworkem. Interakční schémata mohou být společná pro všechny komponentové typy, nebo jedinečná pro jednotlivé z nich. Navázání zdrojů proces skládání komponent je záležitost navazování komponent na jeden nebo více zdrojů. Zdrojem je myšlena bud služba poskytovaná komponentovým frameworkem nebo jiná komponenta nasazená v daném frameworku. Komponentový model popisuje zdroje dostupné komponentám a také to, jak a kdy jsou komponenty navazovány na tyto zdroje. Naopak, framework považuje komponenty za zdroje, které je třeba řídit. Komponentových modelů existuje celá řada, následuje výčet několika z nich. Kapitola 2.2 je pak celá věnována komponentovému model OSGi použitému při vývoji aplikace vytvářené v rámci této práce. Příklady komponentových modelů: Enterprise JavaBeans (EJB) komponentová architektura, sloužící pro realizaci aplikační vrstvy informačního systému. EJB komponenty jsou objekty implementované vývojářem, které zajišt ují vlastní aplikační logiku systému. Jedná se o součást platformy Java EE 2 [7]. Component Object Model (COM) platformě nezávislý, distribuovaný, objektově orientovaný systém pro vytváření binárních softwarových komponent, které jsou schopny spolupracovat. Byl uveden společností Microsoft v roce Common Object Request Broker Architecture (CORBA) standard definovaný konsorciem OMG (Object Management Group) tvořící ucele- 2 Java Platform, Enterprise Edition standardizovaná platforma určená pro vývoj přenositelných, robustních, škálovatelných a bezpečných serverových aplikací v jazyce Java. 8
13 Komponentové programování Komponenty nou architekturu pro podporu tvorby distribuovaných objektově orientovaných aplikací. Model je nezávislý na operačním systému, programovém vybavení nebo programovacím jazyku. OSGi Service Platform je specifikace dynamického modulárního systému pro programovací jazyk Java Komponentový framework Komponentový framework je implementací komponentového modelu, respektive služeb, které daný komponentový model vynucuje [3]. Komponentový framework řídí životní cyklus komponent a zprostředkovává jejich vzájemné interakce. Jeden komponentový framework může implementovat více komponentových modelů. Komponentový framework lze přirovnat k malému operačnímu systému. V této analogii jsou komponenty pro framework to samé, co jsou procesy pro operační systém. Komponentový framework řídí zdroje sdílené komponentami, poskytuje základní mechanizmy umožňující komunikaci mezi komponentami a řídí životní cyklus komponent [3] Kompozice Kompozice je termín popisující, jak jsou skládány systémy při komponentově orientovaném vývoji. Z obrázku 2.1, na kterém je znázorněn princip komponentově orientovaného systému, lze identifikovat dva subjekty, které jsou součástí kompozice: komponenty a frameworky. Díky tomu existují tři hlavní kategorie interakcí vznikajících v CBD [3]: Komponenta-komponenta Kompozice, která umožňuje interakce mezi komponentami. Tyto interakce dodávají aplikační funkcionalitu. Kon- 9
14 Komponentové programování Platforma OSGi trakty specifikující tyto interakce jsou klasifikovány jako kontrakty aplikační úrovně. Framework-komponenta Kompozice, která umožňuje interakce mezi komponentovým frameworkem a jeho komponentami. Tyto interakce dovolují frameworku řídit komponentové zdroje. Kontrakty specifikující tyto interakce jsou klasifikovány jako kontrakty systémové úrovně. Framework-framework Kompozice, která umožňuje interakce mezi frameworky. Tyto interakce umožňují kompozici komponent nasazených v různých frameworcích. Tyto kontrakty jsou klasifikovány jako kontrakty mezioperační úrovně. 2.2 Platforma OSGi V následující části je popsána technologie OSGi. Většina textu vychází ze: [4] a [10] Modularita v Javě Již bylo řečeno, že v dnešní době je kladen velký důraz na modularitu aplikací. V programovacím jazyce Java jsou však tyto možnosti značně omezené. Aplikace vytvořené v Javě jsou typicky distribuovány v JAR 3 archivech, což je souborový formát založený na ZIP kompresi, který umožňuje sloučit několik souborů do jednoho. Jsou v něm obsaženy především soubory typu class, metadata a případné další zdroje pro účely aplikace jako obrázky nebo textové dokumenty. JAR soubory obvykle poskytují jednu knihovnu nebo pouze část funkcionality aplikace. Jen zřídka aplikaci tvoří pouze jeden JAR archiv, rozsáhlé 3 Souborový formát JAR akronym vytvořený z Java archive. Soubory mají příponu.jar. Více na [8]. 10
15 Komponentové programování Platforma OSGi aplikace se mohou skládat z desítek až stovek těchto souborů [4]. Je zřejmé, že kompozice tak velkého rozsahu je náročná na správu a řízení, avšak Java sama o sobě nenabízí uspokojivé nástroje a technologie ke splnění požadavků komponentově orientovaného programování tak, jak jsme je popsali v předchozích kapitolách. Zde je přehled nejzásadnějších nedostatků 4 spojených s použitím JAR souborů jako jednotek nasazení [4]: Nedostatky načítání zdrojů z classpath, možnosti konfliktů v případech, kdy se v aplikaci vyskytuje více tříd se stejným jménem. Classloader vždy načte první verzi třídy daného jména, na kterou narazí. Neobsahují metadata ukazující jejich závislosti. Slabá podpora verzování, několik různých verzí nemůže být spuštěno současně. Z výše uvedených důvodu vznikla pro platformu Java specifikace OSGi, která tyto problémy odstraňuje Architektura OSGi Technologie OSGi je specifikace dynamického modulárního systému pro platformu Java, která implementuje dynamický komponentový model. Standard je definován a udržován mezinárodním konsorciem OSGi Alliance založeným v roce Původně zkratka OSGi znamenala Open Services Gateway initiative, dnes se však již nepoužívá a OSGi se stalo ochrannou známkou. OSGi umožňuje instalaci, spouštění, aktualizaci a odebírání modulů za běhu, tedy bez nutnosti zastavení JVM (Java Virtual Machine). Dále pak definuje životní cyklus modulu a nabízí infrastrukturu pro spolupráci modulů 4 Tyto nedostatky jsou tak značné, že vzniklo pojmenování JAR hell. 11
16 Komponentové programování Platforma OSGi skrze služby. Implementací specifikace tohoto modulárního systému je OSGi framework, viz Na obrázku 2.3 je znázorněna architektura OSGi a její jednotlivé vrstvy. Obrázek 2.3: Vrstvy v OSGi [9] Následuje výčet vrstev s jejich popisem [10]: Bundles bundly jsou OSGi komponenty vytvořené programátory. Services vrstva služeb dynamicky propojuje vytvořené bundly zajišt uje komunikaci bundlů. Life Cycle vrstva starající se o životní cyklus bundlů instalaci, spuštění, zastavení, update a jejich odinstalování. Modules je vrstva starající se o zapouzdření bundlů a definující, jak může bundle exportovat a importovat kód. Execution Environment definuje, jaké metody a třídy konkrétní platforma nabízí. Security vrstva zabývající se aspekty bezpečnosti. 12
17 Komponentové programování Platforma OSGi Komponenty v OSGi V souvislosti se specifikací OSGi nehovoříme o komponentě nebo modulech, ale o tzv. bundle. Bundle je reprezentován JAR souborem, který musí obsahovat manifest s informacemi o bundlu. V manifestu se nacházejí speciální hlavičky obsahující informace, které framework potřebuje k úspěšné instalaci a spuštění bundlu. Manifest se nachází v JAR archivu na obvyklé cestě: META-INF/MANIFEST.MF. Prostřednictvím manifestu lze také nastavit, jaké služby budou dostupné ostatním bundlům. Následující seznam obsahuje některé typické hlavičky manifestu OSGi bundlu: Bundle-Name: Jméno bundlu (srozumitelné člověku). Bundle-SymbolicName: Jedinečný identifikátor bundlu. Je to jediná povinná hlavička manifestu. Bundle-Description: Krátký popis funkcionality bundlu. Bundle-ManifestVersion: Určuje verzi OSGi, která se má použít. Bundle-Version: Verze bundlu. Export-Package: Seznam balíků (packages), které jsou viditelné a k dispozici ostatním bundlům. Import-Package: Seznam balíků, které bundle využívá a vyžaduje pro svoji funkčnost. Příklad jednoduchého manifestu se nachází ve výpisu 2.1. Důležitou vlastností bundlů je, že každý má svůj vlastní zavaděč tříd (classloader), což přispívá k vzájemné izolaci bundlů a tedy modularitě celé aplikace. 13
18 Komponentové programování Platforma OSGi Bundle Name : Hello World Bundle SymbolicName : cz. zcu. kiv. helloworld Bundle D e s c r i p t i o n : Hello World bundle Bundle ManifestVersion : 2 Bundle Version : Export Package : cz. zcu. kiv. helloworld ; v e r s i o n = Import Package : org. o s g i. framework ; v e r s i o n = Výpis 2.1: Manifest OSGi bundlu Životní cyklus bundlu Vrstva Life Cycle se stará o životní cyklus bundlu, který je zobrazen na obrázku 2.4. Obrázek 2.4: Životní cyklus bundlu [4] 14
19 Komponentové programování Platforma OSGi Stavy, ve kterých se může bundle nacházet: INSTALLED bundle byl úspěšně nainstalován. RESOLVED bundle je bud připraven ke spuštění (všechny závislosti jsou splněny a zdroje k dispozici), a nebo byl zastaven. STARTING spouštění bundlu, je zavolána metoda start() rozhraní BundleActivator. ACTIVE bundle byl úspěšně aktivován a běží, metoda start() proběhla úspěšně. STOPPING zastavování bundlu. Je zavolána metoda stop() rozhraní BundleActivator. UNINSTALLED bundle byl odinstalován, konečný stav OSGi framework V současné době existuje několik na sobě nezávislých open source implementací standardu OSGi [4]. Equinox je zřejmě nejrozšířenější OSGi framework [4], je součástí vývojové platformy Eclipse. Equinox implementuje specifikaci OSGi 4.1 a je licencován pod Eclipse Public License (EPL). Knopflerfish další populární implementace OSGi, která implementuje jak OSGi 3, tak OSGi 4. Framework je vyvíjen společností Makewave a je licencován pod BSD licencí. Existuje i komerční verze Knopflerfish Pro. Apache Felix malá a velmi kompaktní implementace OSGi 4.x. Felix je vyvíjen neziskovou společností Apache Software Foundation a licencován pod Apache License Version
20 Komponentové programování Spring Concierge je velmi kompaktní a vysoce optimalizovaná implementace OSGi Release 3, která je určena zejména pro platformy s omezenými zdroji, jako jsou mobilní telefony nebo embedded zařízení. Concierge je licencován pod BSD licencí Služby Moduly spolu mohou komunikovat kromě sdílení Java balíků, které je realizováno nastavováním viditelnosti v manifestu (hlavičky Export-Package a Import-Package), i pomocí služeb. Přístup ke službě je definován pomocí Java rozhraní, které představuje kontrakt mezi poskytovatelem a klientem. Poskytovatel služby registruje službu do registru služeb. Naopak klient využívá registr k vyhledání požadované služby a její následné využití. O zajištění tohoto mechanizmu se stará vrstva Service Layer. 2.3 Spring Spring Framework je Java platforma, která poskytuje komplexní infrastrukturu podporující vývoj Java aplikací. Framework zajišt uje infrastrukturu a programátor se tak může soustředit na samotnou implementaci. Hlavním účelem je usnadnit vývoj v oblasti Java EE aplikací. Spring je modulární framework organizovaný do dvaceti modulů a umožňuje použít jen ty části, které programátor skutečně použije [11]. Jádro Springu je tvořeno Spring kontejnerem. Objekty, se kterými pracuje kontejner, se nazývají tzv. beany (anglicky beans). V terminologii komponentového programování beany lze nazvat komponentami. Framework využívá konceptu Inversion of control, viz dále. 16
21 Komponentové programování Spring Dependency Injection Návrhový vzor Inversion of Control usnadňuje správu objektů a závislostí tím, že přenáší odpovědnost za vytváření instancí tříd, inicializaci a provázání objektů z aplikace na framework [11]. Jednotlivé objekty tříd si samy nevytvářejí ostatní objekty, na kterých závisí, ale udělá to za ně Spring. Ve Springu je tento přístup znám jako Dependency Injection, tedy volně přeloženo jako vkládání závislostí. Výsledkem je větší větší kontrola nad objekty, větší znovupoužitelnost aplikace a její lepší udržitelnost. Existují dva hlavní způsoby Dependency Injection: 1. Konstruktorem při inicializaci je Springem zavolán konstruktor s parametrem, který je v elementu constructor-arg. Atribut ref 5 je reference na vkládaný objekt. 2. Setterem vložení se provádí setterem. Parametr je definován v elementu property, přičemž setter musí být pojmenován ve tvaru setname, kde Name je hodnota atributu stejného jména. Reference na vkládaný objekt se nachází opět v atributu ref. Oba způsoby jsou ukázány ve výpisu 2.2, jenž zobrazuje část konfiguračního XML souboru. Tento soubor obsahuje definice beanů a je nezbytnou součástí každé aplikace využívající Spring. 1 <beans> 2 <bean id = foo c l a s s = x. y. Foo > 3 <c o n s t r u c t o r arg r e f = bar /> 4 <property name= baz r e f = baz /> 5 </bean> 6 7 <bean id = bar c l a s s = x. y. Bar /> 8 <bean id = baz c l a s s = x. y. Baz /> 9 </beans> Výpis 2.2: Dependency Injection ve Springu 5 Lze také vložit parametr přímo pomocí atributu value. 17
22 Komponentové programování Spring Spring DM (Blueprint) V předchozích kapitolách byly popsány technologie OSGi a Spring. Spojením těchto dvou technologií vznikl komponentový model Spring DM, který dovoluje využívat výhod obou z nich. V současné době je technologie Spring DM součástí OSGi 6 pod názvem Blueprint. Blueprint vychází z modelu Spring DM, rozdíly mezi nimi jsou nevelkého významu. Změny, které se týkají především konfiguračního souboru, jsou popsány v [12]. Spring DM, respektive Blueprint je tvořen několika OSGi bundly. Tyto bundly jsou zodpovědné za vytváření tzv. aplikačního kontextu, který obsahuje a spravuje beany. Při spojení obou technologií vnesena do aplikace nová modularita. V běžné Spring aplikaci totiž existuje pouze jeden aplikační kontext, který je sdílený pro celou aplikaci. Oproti tomu Spring DM vytváří pro každý OSGi bundle aplikační kontext svůj vlastní. To znamená, že beany v jednom bundlu nemohou přistupovat k beanům v ostatních bundlech [5]. Aby bylo v aplikaci budované s použitím OSGi možné využívat Spring, je nutné, aby bundle obsahoval Spring konfigurační XML soubor. Tento soubor je třeba umístit do adresáře META-INF/spring 7. Druhou variantu je specifikovat umístění konfiguračního souboru přímo v manifestu, a to hlavičkou Springcontext. V tomto případě může být umístění libovolné [5]. Významným přínosem Spring DM je ulehčení práce se službami OSGi použitím jmenného prostoru (namespace) osgi. Prostřednictvím konfiguračního souboru lze nastavit, jaké služby bude bundle využívat a jaké poskytovat. I když aktuálněji se jeví použití kontejneru Blueprint, v realizační části této práce je použit Spring DM, a proto i ukázka konfiguračního souboru ve výpisu 2.3 je uvedena dle konvencí Spring DM. 6 A to od specifikace OSGi V případě Blueprintu se jedná o umístění OSGI-INF/blueprint. 18
23 Komponentové programování Spring 1 <?xml v e r s i o n = 1.0 encoding= UTF 8?> 2 <beans xmlns= http : / /www. springframework. org /schema/ beans 3 xmlns : x s i = http : / /www. w3. org /2001/XMLSchema i n s t a n c e 4 xmlns : o s g i = http : / /www. springframework. org /schema/ o s g i 5 x s i : schemalocation= http : / /www. springframework. org /schema/ beans 6 http : / /www. springframework. org /schema/ beans / spring beans 2.0. xsd 7 http : / /www. springframework. org /schema/ o s g i 8 http : / /www. springframework. org /schema/ o s g i / spring osgi 1.0. xsd > 9 10 <o s g i : s e r v i c e id = s e t t i n g s 11 r e f = c o n t r o l i n t e r f a c e = gui. I S e t t i n g s /> 12 <o s g i : r e f e r e n c e id = messanger 13 i n t e r f a c e = org. o s g i. s e r v i c e. event. EventAdmin /> <bean id = c o n t r o l c l a s s = gui. Control > 16 <c o n s t r u c t o r arg r e f = messanger > </c o n s t r u c t o r arg> 17 </bean> </beans> Výpis 2.3: Spring DM konfigurační soubor V ukázce 2.3 je na řádcích 10 a 11 pomocí elementu osgi:service zaregistrována služba gui.isettings. Tato služba je tedy poskytnuta ostatním bundlům. Oproti tomu element osgi:reference zajišt uje, že bundle může využívat službu EventAdmin. Instance této služby je předána pomocí mechanizmu Dependency Injection konstruktorem. 19
24 3 Simulátor Simco Simco je framework, který vznikl na Katedře informatiky a výpočetní techniky Fakulty aplikovaných věd Západočeské univerzity v Plzni v rámci diplomových prací Tomáše Kabíčka [13] a Matěje Prokopa [14] v roce 2011, kdy první jmenovaný vytvořil jádro frameworku a druhý pak jeho grafické rozhraní. Název Simco je odvozen z anglického Simulation of Component. Celý simulátor je vytvořen ze softwarových komponent, což vypovídá o jeho modulárnosti. Účelem simulátoru je poskytnout nástroj k testování reálných softwarových komponent v simulačním prostředí bez nutnosti vytvářet jejich modely, které by mohly být potenciálně chybné. Testování probíhá za použití principu diskrétní událostní simulace s předem daným scénářem. Aplikace, která je na tento framework napojena se nazývá Simco aplikace. Framework je tvořen čtyřmi základními stavebními prvky [13]: Komponenty objekty reprezentující komponenty. Události objekty reprezentace událostí simulace běhu Simco aplikace. Kalendář ukládá a spravuje události, obsahuje jejich seznam, zajišt uje kontrolu nad během celé Simco aplikace. Obsahuje simulační čas, který se inkrementuje po každém kroku simulace a určuje, která událost má být vykonána. Simulace objekt, kterým se manipuluje s celou simulací. 3.1 Komponenty Jak bylo řečeno, Simco aplikace se skládá z komponent, konkrétně ze Spring DM modulů. Framework pracuje s několika druhy komponent, které je třeba rozlišit. Jednotlivé typy jsou uvedeny v následujícím výčtu [13]: 20
25 Simulátor Simco Události SIMULATION simulační komponenta. Neprovádí reálný výpočet, její běh je pouze nasimulovaný. Zastupuje reálný systém a vrací data, která strukturou připomínají data reálná. Uživatel může prostřednictvím konfiguračních souborů nastavit délku simulovaného výpočtu a hodnoty, které komponenta vrátí. REAL reálná komponenta, která provádí reálný výpočet a která je testována. Neměla by vědět o tom, že je napojena na Simco framework, nedochází tedy k úpravám jejího kódu. INTERMEDIATE komponenta typu prostředník. Je potřebná k tomu, aby mohl framework sledovat komunikaci dvou reálných komponent. FRAMEWORK komponenty, které obsahují implementaci frameworku Simco. 3.2 Události Hlavní princip fungování simulátoru spočívá v tom, že každý krok, který se v Simco aplikaci provede, je spojen s událostí ve frameworku. Pokud probíhá komunikace mezi komponentami, Simco framework ji zachytí, vytvoří událost a vloží ji do kalendáře. Vložená událost může způsobit vznik dalších událostí. V simulátoru mohou vzniknout následující typy události [13]: REAL_CALL metoda reálné komponenty komunikuje s některou z jiných komponent Simco aplikace. REAL_RETURN návrat z volané metody reálné komponenty. SIMULATION_CALL simulační metoda komunikuje s některou z jiných komponent Simco aplikace. SIMULATION_RETURN návrat z volané metody simulační komponenty. REGULAR periodicky vyskytující se událost. 21
26 Simulátor Simco Konfigurace CASUAL událost, u které lze nadefinovat, s jakou pravděpodobností se bude vyskytovat. Komponenty třetích stran lze napojit na Simco framework prostřednictvím OSGi bundlu EventAdmin. Ten umožňuje publikovat události mezi jednotlivými bundly. Historie průběhu simulace se ukládá do souboru. Samotné jádro frameworku se skládá z šesti komponent, jejich podrobný popis lze nalézt v [13]. 3.3 Konfigurace Simulaci lze nakonfigurovat pomocí XML souboru. Prostřednictvím konfiguračního souboru je možno nastavit tzv. scénář průběhu simulace. Ve scénáři lze nadefinovat události typu CASUAL, REGULAR, seznam komponent Simco aplikace s jejich vlastnostmi a nastavení Simco aplikace. Ve výpisu 3.1 je uveden příklad jednoduchého scénáře. Kořenový element XML souboru má název simcoscenario. Seznam komponent se nachází v elementu components. Každá komponenta má definovaný svůj typ, jedinečné jméno 8 a cestu ke svému konfiguračnímu souboru bundlu. V elementu events jsou definovány události. U každé události je uveden její typ (REGULAR nebo CASUAL), zdroj události, rozhraní, přes které je volaná služba registrována, jméno volané metody a parametry této metody. V elementu eventdetails je nadefinováno, jak často se má daná událost opakovat. Podle typu události je nastavena bud perioda, a nebo náhodná veličina. Více viz [13]. V elementu appsettings lze nastavit zpoždění kroku simulace, a to bud v milisekundách nebo v sekundách. 8 Shodné s obsahem hlavičky Bundle-SymbolicName v manifestu komponenty. 22
27 Simulátor Simco Konfigurace 1 <?xml v e r s i o n = 1.0 encoding= UTF 8?> 2 <simcoscenario> 3 <components> 4 <component type = SIMULATION > 5 <symbolicname>simcogps</symbolicname> 6 <s e t t i n g s F i l e > C: / SimcoGPS/ g p s S e t t i n g s. xml </ s e t t i n g s F i l e > 7 </component> 8 </components> 9 <events> 10 <event type= REGULAR > 11 <source >SimcoAccelerometer </source > 12 <servicename>simco. a p p l i c a t i o n. IAccelerometer </servicename> 13 <methodname>setvector </methodname> 14 <methodparameters> 15 <parameter datatype= java. lang. I n t e g e r value = 10 /> 16 </methodparameters> 17 <e v e n t D e t a i l s > 18 <d e t a i l key= period val = 10 /> 19 </e v e n t D e t a i l s > 20 </event> 21 </events> 22 <appsettings > 23 <steplenght unit = msec >500</stepLenght> 24 </appsettings > 25 </simcoscenario> Výpis 3.1: Scénář simulace 23
28 4 Analýza 4.1 Požadavky na aplikaci Cílem této práce je vytvořit komponentu, pomocí které bude možné vytvořit dynamicky generované grafické uživatelské rozhraní. Toto GUI bude sloužit k usnadnění ovládání testování komponent. Vyvinutá komponenta bude mít dvě základní funkce: 1. nastavování komponent, 2. sledování komponent. Nastavovací část umožní odeslat data do simulace, a tím nastavovat jejich parametry. Druhá část funkcionality spočívá v možnosti sledovat data komponent. Zde bude vytvářená komponenta data přijímat, zobrazovat a ukládat. 4.2 Použité prostředky Vytvářená komponenta bude nasazena jako samostatný modul do simulátoru Simco (viz kapitola 3). Simulátor je složen ze Spring DM bundlů. Z toho vyplývá, že vytvářená komponenta bude implementována v programovacím jazyce Java. Dále bude využit framework OSGi a Spring, respektive technologie využívající výhod obou z nich Spring DM. K implementaci bude použito vývojové prostředí Eclipse Java EE 4.2, framework Spring DM 3.1, programovací jazyk Java 1.7 a operační systém Windows 7 Professional. 24
29 Analýza Návrh prostředí 4.3 Návrh prostředí Okno aplikace je rozděleno na dvě části. V levé části (1) se nachází panel určený k odesílání dat do simulace. V pravé části (2) jsou pak umístěny sledovací prvky. Obě části jsou umístěny do okna za použití layoutu BoxLayout. Tento layout řadí komponenty podle nastavení vedle sebe do řádku, a nebo pod sebe do sloupce. V našem případě je použita horizontální konfigurace. Jednotlivé nastavovací nebo sledovací elementy (3) jsou pak uvnitř panelů (1) a (2) rozmist ovány pod sebe pomocí layoutu GridBagLayout. Rozvržení okna je znázorněno na obrázku 4.1. Obrázek 4.1: Rozvržení grafického uživatelského rozhraní 4.4 Dynamické GUI Z výše uvedeného vyplývá, že GUI nebude mít pokaždé stejnou podobu, ale bude obsahovat prvky, o které si programátor komponent zažádá. Definování toho, co má GUI obsahovat, se provádí prostřednictvím API, které tato komponenta poskytuje. 25
30 Analýza Dynamické GUI Vytvářená komponenta umožní sledované komponentě zaregistrovat si proměnné, které budou sledovány. Tato data bude možné zobrazovat jak v textové podobě, tak v grafické ve formě grafu. Dále bude umožněno přijímat zprávy informující o průběhu simulace, třídit je podle druhů, ukládat je do souborů. Oproti tomu nastavovací část API poskytne služby, kterými budou data odesílána do simulace, a tím bude umožněno komponentu řídit, respektive nastavovat její parametry. 26
31 5 Implementace 5.1 Poskytované API Středobodem komunikace s vnějšími komponentami je rozhraní ISettings. Rozhraní poskytuje programátorovi simulované komponenty sadu metod, pomocí kterých se vytvoří okno nastavovacího modulu a jeho jednotlivé elementy. Zajišt uje základní komunikaci mezi uživatelským rozhraním a komponentami. Prostředků API je potřeba jednak k vytvoření ovládacího a sledovacího GUI, a jednak k nastavování dat uvnitř řízené komponenty, tedy k získání uživatelem zadané hodnoty Vytvoření okna public ControlGUI createwindow(string windowname); První metoda, kterou programátor komponenty použije. Touto metodou je spuštěna inicializace prázdného okna. Oken je z principu možné vytvořit více (pro více komponent), je tedy důležité rozlišit, v jakém okně se prvek má vytvořit. K tomu slouží návratová hodnota této metody, která je použita jako parametr v dalších metodách tohoto rozhraní. Jediný parametr metody je celočíselné ID panelu, které si určí programátor. To slouží jednak k rozlišení jednotlivých oken uživateli ID je vidět v záhlaví okna, a jednak při přijímání dat z komponenty, která okno používá. 27
32 Implementace Nastavovací prvky 5.2 Nastavovací prvky Nastavení celočíselné proměnné public void c r e a t e I n t S e t ( ControlGUI refgui, S t r i n g label, int messagetype, int min, int max, int step ) ; Metoda, která v okně vyrobí blok, ve kterém je možné nastavit celočíselnou proměnnou. Nejdůležitějším prvkem bloku je Swing komponenta JSpinner. Spinner slouží k přijetí celočíselné od uživatele, přičemž parametry min a max je omezen rozsah spinneru. Parametr step určuje krok spinneru. Současně je vytvořeno tlačítko, kterým se zadaná hodnota odešle řízené komponentě. Hodnota parametru messagetype je druh (kód) zprávy, která je odeslána do simulace po stisknutí tlačítka OK. Parametr label obsahuje název proměnné, která je zaregistrována, a konečně parametr refgui, který zajistí vykreslení jednotlivých prvků do správného okna. public void c r e a t e I n t S e t ( ControlGUI refgui, S t r i n g label, int messagetype ) ; Metoda je přetížená, je možné ji zavolat bez parametrů min, max a step Nastavení reálné proměnné public void createdoubleset ( ControlGUI refgui, S t r i n g label, int messagetype, double min, double max, double s t e p ) ; Metoda, která v okně vyrobí blok, ve kterém je možné nastavit reálnou proměnnou. Význam jednotlivých parametrů je totožný s metodou createintset, pouze se zde pracuje s datovým typem double. public void createdoubleset ( ControlGUI refgui, S t r i n g label, int messagetype ) ; Opět je možné využít přetížení metod a volat metodu bez nastavení spinneru. 28
33 Implementace Sledovací prvky Nastavení textové proměnné public void createtextset ( ControlGUI refgui, S t r i n g label, int messagetype ) ; Metoda umožňuje nastavit a odeslat proměnnou typu String. Parametry jsou reference na správné okno, popisek zobrazený v okně a kód proměnné Nastavení proměnné typu pole public void c r e a t e F i e l d S e t ( ControlGUI refgui, S t r i n g label, int messagetype ) ; Tato metoda umožňuje nastavit a odeslat více hodnot najednou. Po jejím zavolání je v okně vytvořena tabulka se dvěma sloupci, do které lze vkládat jak číselné, tak řetězcové hodnoty. Zároveň je v tomto bloku vyrobeno tlačítko, jehož stiskem je přidán do tabulky řádek. Odeslaná data reprezentuje objekt třídy DefaultTableModel. Parametry metody jsou: odkaz na okno, kde se má blok vykreslit, popisek bloku a kód generované zprávy při odeslání dat z okna. 5.3 Sledovací prvky Sledování proměnné public void o b s e r v e V a r i a b l e ( ControlGUI refgui, S t r i n g name, int code ) ; Metoda vytvoří v okně blok pro přijímání hodnot registrované proměnné z řízené komponenty. Sledovací blok obsahuje dvě needitovatelná textová pole, která jsou reprezentována Swing komponentou JTextArea. V prvním poli je zobrazována aktuálně přijatá hodnota z řízené komponenty, ve druhém pak celá její historie. Dále jsou zde umístěna dvě tlačítka. První tlačítko GET slouží uživateli k aktivnímu zažádání komponenty o aktuální hodnotu sledované proměnné. Stiskem tlačítka je vygenerována zpráva typu žádost o zaslání 29
34 Implementace Sledovací prvky hodnoty. Je však na uživateli, zda ve svém kódu tuto zprávu sleduje a jestli na ni reaguje. Druhé tlačítko GRAPH zobrazí graf z historie přijatých hodnot. Parametr refgui je odkaz na okno, ve kterém se má sledovací blok vykreslit. Popisek sledovacího bloku zobrazený v GUI, je nastavený parametrem name. Celočíselná hodnota code, je jedinečný kód proměnné, kterou si uživatel zaregistruje. Podle hodnoty tohoto parametru je zjištěno, kterému sledovacímu elementu je přijatá hodnota z řízené komponenty určena. Mechanizmus, kterým se posílají data mezi komponentami a okny, je popsán v kapitole Logovací komponenta public void createlog ( ControlGUI refgui, S t r i n g [ ] l e v e l s, int code ) ; Metoda vytvoří textovou oblast, která funguje jako přijímač zpráv o běhu simulace z řízené komponenty. Zobrazení dat je realizováno Swing komponentou JTable. Při vytváření této komponenty uživatel definuje možné úrovně zpráv, které chce rozlišovat. Zpráva odesílaná z řízené komponenty by měla obsahovat čas odeslání, úroveň zprávy a samotný text zprávy. Logovací komponenta dále obsahuje tlačítko Save, kterým lze jeho obsah uložit do souboru. Součástí je také panel, který obsahuje zaškrtávací pole, tzv. checkboxy. Uživatel může těmito přepínači filtrovat obsah tabulky podle úrovně zprávy. Parametr refgui je odkaz na okno, do kterého se logovací blok vykreslí, pole řetězců levels obsahuje možné úrovně zpráv. Parametr code je opět kód, pod kterým si řízená komponenta zaregistrovala tento sledovací prvek. 30
35 Implementace Validace okna 5.4 Validace okna public void done ( ControlGUI refgui ) ; Poté, co si uživatel voláním výše uvedených metod nakonfiguruje požadované GUI, je nutné jako poslední zavolat metodu done(controlgui). Voláním této metody je okno zvalidováno a správně vykresleno. Parametr je reference okna, které má být zobrazeno. 5.5 Komunikace V předchozí kapitole bylo popsáno, jakým způsobem je generováno grafické rozhraní. Nyní bude vysvětleno, jak probíhá vlastní komunikace mezi komponentou a vygenerovaným oknem, tedy zasílání nastavených dat do řízené komponenty a přijímání sledovaných dat z druhé strany. Existují dva základní způsoby komunikace mezi komponentami volání metod rozhraní, které komponenta poskytuje, a využití správce událostí, který dokáže předat zprávy registrovaným komponentám. Voláním metod rozhraní API je vytvořeno okno grafického rozhraní. Odesílání nastavovacích hodnot do simulace a příjem sledovaných parametrů však probíhá druhým způsobem Zasílání zpráv K tomu, aby komponenta mohla využívat mechanizmus předávání zpráv prostřednictvím správce událostí, je nutné mít k dispozici službu EventAdmin, která je součástí bundlu org.eclipse.equinox.event. Událost je objekt třídy 31
36 Implementace Komunikace Event, který sestává ze dvou atributů: topic topic je předmět zasílané zprávy. Díky tomuto atributu je možné sledovat pouze ten druh událostí, které chceme. properties prostřednictvím tohoto atributu jsou přenášená data. Data jsou uložena v asociativním poli HashMap. Prvek tvoří dvojice klíč hodnota. Právě klíč obsahuje kód proměnné nebo prvku uživatelského rozhraní, kterému je zpráva určena. V případě naší knihovny existují tři předměty zpráv: 1. Setting_topic zprávy tohoto typu přenášejí z vygenerovaného okna uživatelem odeslané hodnoty do sledované komponenty. Kód nastavované proměnné a její hodnotu obsahuje atribut properties. 2. Value_request_topic z vygenerovaného okna je odeslána komponentě žádost o zaslání hodnoty sledované proměnné. Kód žádané proměnné a panelu je přenášen atributem properties. 3. Value_send_topic simulovaná komponenta odesílá hodnotu sledované proměnné k zobrazení Konfigurační soubor Aby bylo možné využívat API, je třeba zajistit aby komponenty obdržely reference na příslušné služby. Aby mohla simulovaná komponenta vzdáleně vygenerovat nastavovací GUI, je třeba do jejího konfiguračního souboru uvést následující řádek: <osgi:reference id= Interface interface= service.isettings /> Reference na rozhraní je startovací metodě komponenty předáno pomocí Springu a jeho dependency injection. Komponenta poté může využívat služeb rozhraní ISetttings. 32
37 Implementace Komunikace Následující část konfiguračního souboru říká, že komponenta bude naslouchat událostem s topicem Setting topic. Objekt EventHandler, který to umožňuje, je opět předán s využitím DI. <osgi:service id= Listen1 ref= InstanceSimul interface= org.osgi.service.event.eventhandler > <osgi:service properties> <entry key= event.topics value= Setting topic /> </osgi:service properties> </osgi:service> Příklad celého konfiguračního souboru je uveden v příloze A.1. 33
38 Implementace Ukázka použití 5.6 Ukázka použití Na následujícím výpisu je příklad použití vytvářené knihovny. Tento úsek kódu vygeneruje GUI, které je zobrazeno na obrázku ControlGUI c o n t r o l 1 = r e f I n t e r f a c e. createwindow ( 1 ) ; 2 3 r e f I n t e r f a c e. createtextset ( control1, Nazev, 1 ) ; 4 r e f I n t e r f a c e. createdoubleset ( control1, 5 Desetinne c i s l o, 2, 5.00, +5.00, ) ; 6 r e f I n t e r f a c e. createdoubleset ( control1, Vykon, 3 ) ; 7 8 r e f I n t e r f a c e. c r e a t e F i e l d S e t ( control1, Prevody, 4 ) ; 9 r e f I n t e r f a c e. c r e a t e I n t S e t ( control1, Otacky, 5 ) ; 10 r e f I n t e r f a c e. createdoubleset ( control1, Spotreba, 5 ) ; 11 r e f I n t e r f a c e. c r e a t e F i e l d S e t ( control1, Pole hodnot, 6 ) ; r e f I n t e r f a c e. createlog ( control1, urovnezprav, 7 ) ; r e f I n t e r f a c e. o b s e r v e V a r i a b l e ( control1, Vzdalenost, 8 ) ; 16 r e f I n t e r f a c e. o b s e r v e V a r i a b l e ( control1, Rychlost, 9 ) ; r e f I n t e r f a c e. done ( c o n t r o l 1 ) ; Výpis 5.1: Příklad vytváření GUI V rámci zpřehlednění kódu je vhodné nadefinovat sadu konstant, které budou reprezentovat jednotlivé signály. 34
39 Implementace Ukázka použití Obrázek 5.1: Příklad vygenerovaného okna 35
40 6 Závěr V rámci této práce byla implementována knihovna, která na základě požadavků programátora vytvoří grafické uživatelské rozhraní, jehož prostřednictvím je umožněno nastavovat parametry jednotlivých komponent v simulaci a zároveň sledovat proměnné a parametry jiných komponent a s těmito daty dále manipulovat. Vítaným vylepšením funkčnosti by byla možnost zobrazovat sledovaná data online pomocí dynamického grafu. 36
41 Přehled zkratek GUI Graphical user interface OSGi Open Service Gateway initiative CBSE Component-based software engineering EJB Enterprise JavaBeans Java EE Java Platform, Enterprise Edition COM Component Object Model CORBA Common Object Request Broker Architecture OMG Object Management Group CBD Component-based development JAR Java archive JVM Java Virtual Machine BSD Berkeley Software Distribution XML Extensible Markup Language Spring DM Spring Dynamic Modules API Application Programming Interface 37
42 Literatura [1] SZYPERSKI, Clemens. Component software: beyond object-oriented programming. 1st ed. repr. Harlow, England: Addison-Wesley, ISBN [2] KIV Wiki. Úvod do komponent [online]. Západočeská univerzita v Plzni, Fakulta aplikovaných věd, Katedra informatiky a výpočetní techniky [cit. 3/2014]. Dostupné z WWW: [3] BACHMANN, Felix et al. Volume II: Technical concepts of componentbased software engineering [online]. Carnegie Mellon University, Software Engineering Institute [cit. 3/2014]. Dostupné z WWW: _005_001_13715.pdf [4] BARTLETT, Neil. OSGi In Practice [online]. Amazon.com, Dostupné z WWW: [5] WALLS, Craig. Modular Java: creating Flexible Applications with OSGi and Spring. 1st edition. USA: The Pragmatic Bookshelf, ISBN [6] D SOUZA, Desmond. Objects, Components, and Frameworks with UML: The Catalysis TM Approach [online]. Addison-Wesley Professional [cit. 3/2014]. Dostupné z WWW: 38
43 LITERATURA LITERATURA [7] FI WIKI. Enterprise JavaBeans [online]. Fakulta informatiky Masarykovy univerzity [cit. 4/2014]. Dostupné z WWW: [8] ORACLE. JAR File Specification [online]. Dostupné z WWW: jar.html [9] The OSGi Alliance. The OSGi Architecture [online]. Dostupné z WWW: [10] The OSGi Alliance. OSGi Core Release 5 [online] [cit. 4/2014]. Dostupné z WWW: [11] JOHNSON, Rod et al. Spring Framework Reference Documentation [online] [cit. 5/2014]. Dostupné z WWW: spring-framework-reference/ [12] SpringSource. OSGi 4.2 Blueprint Container [online], [cit. 6/2014]. Dostupné z WWW: blueprint.html [13] KABÍČEK, Tomáš. Simulační systém softwarových komponent založený na komponentách. Diplomová práce. Západočeská univerzita v Plzni, Fakulta aplikovaných věd, Katedra informatiky a výpočetní techniky. Plzeň, [14] PROKOP, Matěj. Vizualizace simulace komponent. Diplomová práce. Západočeská univerzita v Plzni, Fakulta aplikovaných věd, Katedra informatiky a výpočetní techniky. Plzeň,
44
45 A Přílohy A.1 Konfigurační soubory <?xml version= 1.0 encoding= UTF 8?> <beans xmlns= xmlns:xsi= instance xmlns:osgi= xsi:schemalocation= beans 2.0.xsd osgi 1.0.xsd > <osgi:service id= Interface ref= Control interface= service.isettings /> <osgi:reference id= Messanger interface= org.osgi.service.event.eventadmin /> <bean id= Control name= ControlWindow class= tvorbagui.control > <constructor arg ref= Messanger > </constructor arg> </bean> <osgi:service id= Listening to value ref= Control interface= org.osgi.service.event.eventhandler > <osgi:service properties> <entry key= event.topics value= Value send topic /> </osgi:service properties> </osgi:service> </beans> Výpis 1: Konfigurační soubor ovládací komponenty 41
46 <?xml version= 1.0 encoding= UTF 8?> <beans xmlns= xmlns:xsi= instance xmlns:osgi= xsi:schemalocation= beans 2.0.xsd osgi 1.0.xsd > <osgi:reference id= Interface interface= service.isettings /> <osgi:reference id= Messanger interface= org.osgi.service.event.eventadmin /> <bean id= InstanceSimul name= SimulKomponenta class= simulkomponenta.sim init method= start > <property name= refinterface ref= Interface /> <property name= messanger ref= Messanger /> </bean> <osgi:service id= Listen1 ref= InstanceSimul interface= org.osgi.service.event.eventhandler > <osgi:service properties> <entry key= event.topics value= Setting topic /> </osgi:service properties> </osgi:service> <osgi:service id= Listen2 ref= InstanceSimul interface= org.osgi.service.event.eventhandler > <osgi:service properties> <entry key= event.topics value= Value request topic /> </osgi:service properties> </osgi:service> </beans> Výpis 2: Příklad konfiguračního souboru sledované komponenty
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
TÉMATICKÝ OKRUH Softwarové inženýrství
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
OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
OSGi Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Semináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
Softwarové komponenty a Internet
Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty
NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme
Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových
(Enterprise) JavaBeans. Lekce 7
(Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí
Architektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server
ADMINISTRACE POČÍTAČOVÝCH SÍTÍ OPC Server Funkce a využití v průmyslové automatizaci Jiří NOSEK 2011 Co je OPC Server? OPC = Open Process Control (původně OLE for Process Control) sada specifikací průmyslového
Architektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
Common Object Request Broker Architecture
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í
Tvorba informačních systémů
9. Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba
RMI - Distribuované objekty v Javě
Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování
Komponenty v.net. Obsah přednášky
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 přednášky Rozdíl mezi COM a.net Distribuce komponent Programování
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services
13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -
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.
1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými
Michal Krátký, Miroslav Beneš
Tvorba informačních systémů 1/20 Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních
X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.
X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web
FORTANNS. havlicekv@fzp.czu.cz 22. února 2010
FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku
Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML
ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Aplikace pro srovna ní cen povinne ho ruc ení
Aplikace pro srovna ní cen povinne ho ruc ení Ukázkový přiklad mikroaplikace systému Formcrates 2010 Naucrates s.r.o. Veškerá práva vyhrazena. Vyskočilova 741/3, 140 00 Praha 4 Czech Republic tel.: +420
Komponentový návrh SW
Komponentový návrh SW Komponentový návrh SW Komponenty jsou kompletně specifikované pomocí interface Jejich funkčnost je nezávislá na programovacím jazyku a mohou být integrované do toho samého systému
KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant
KOMPONENTY APLIKACE TreeINFO Petr Štos ECM Business Consultant CO JE TO APLIKACE TreeINFO Sada komponent Komponenty rozšiřující sloupce Komponenty rozšiřující pohledy na data Aplikační části Využití jednotlivě
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow
Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky
Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010
PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
První kapitola úvod do problematiky
První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru
Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA
Common Object Request Broker Architecture FJFI ČVUT 9. 12. 2010 Osnova 1 2 3 4 5 Standard umožňující propojení aplikací psaných v různých jazycích a běžících na různých strojích a architekturách. Definuje
Úvod do Web Services
Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná
Reranking založený na metadatech
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Reranking založený na metadatech MI-VMW Projekt IV - 1 Pavel Homolka Ladislav Kubeš 6. 12. 2011 1
1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4
CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................
Seznámení s prostředím dot.net Framework
Základy programování v jazyce C# Seznámení s prostředím dot.net Framework PL-Prostředí dot.net - NET Framework Je základním stavebním prvkem, na kterém lze vytvářet software. Jeho součásti a jádro je založené
Platební systém XPAY [www.xpay.cz]
Platební systém XPAY [www.xpay.cz] implementace přenosu informace o doručení SMS verze 166 / 1.3.2012 1 Obsah 1 Implementace platebního systému 3 1.1 Nároky platebního systému na klienta 3 1.2 Komunikace
Nové jazykové brány do Caché. Daniel Kutáč
Nové jazykové brány do Caché Daniel Kutáč O čem budeme mluvit.net T/SQL Perl Python MultiValue Basic Téma.NET provider .NET Provider Co lze již dnes Factory / VisM ODBC.NET Web Services Factory a VisM
7 Jazyk UML (Unified Modeling Language)
7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující
7 Jazyk UML (Unified Modeling Language)
7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující
Programátorská příručka
KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro
PŘÍLOHA C Požadavky na Dokumentaci
PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé
10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Microsoft Office 2003 Souhrnný technický dokument white paper
Microsoft Office 2003 Souhrnný technický dokument white paper Přehled inteligentních klientských aplikací založených na sadě Microsoft Office 2003 System Publikováno: Duben 2003 Shrnutí: Inteligentní klienti
Znalostní systém nad ontologií ve formátu Topic Maps
Znalostní systém nad ontologií ve formátu Topic Maps Ladislav Buřita, Petr Do ladislav.burita@unob.cz; petr.do@unob.cz Univerzita obrany, Fakulta vojenských technologií Kounicova 65, 662 10 Brno Abstrakt:
Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.
C E R T I C O N www.certicon.cz V Á C L A V S K Á 1 2 1 2 0 0 0 P R A H A 2 Specifikace rozhraní Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů Martin Falc, SW architekt
KIV/PIA 2013 Jan Tichava
KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise
Požadavky pro výběrová řízení TerraBus ESB/G2x
Dokument: Převod dat TerraBus ESB/G2x Požadavky pro výběrová řízení TerraBus ESB/G2x Obsah 1. Účel dokumentu... 2 2. Použité termíny a zkratky... 2 3. Požadavky... 3 Účel dokumentu Účelem tohoto dokumentu
1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:
Architektura webové aplikace, funkce jednotlivých vrstev, životní cyklus standardizovaných komponent Java EE, Servlety, JSP, frameworky, návrhové vzory 1. Distribuce Javy Distribuce Javy se liší podle
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL
MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL MULTISIM ELECTRONIC EDUCATION MATERIAL Pavel BENAJTR Resumé Tématem bakalářské práce bylo vytvoření výukového elektronického materiálu pro simulační program Multisim
IntraVUE 2.0.3 Co je nového
IntraVUE 2.0.3 Co je nového Michal Tauchman Pantek (CS) s.r.o. Červen 2008 Strana 2/8 Úvod IntraVUE je diagnostický a podpůrný softwarový nástroj pro řešení komunikačních problémů, vizualizaci a dokumentaci
Výměnný formát XML DTM DMVS PK
Výměnný formát XML DTM DMVS PK Představení partnerským krajům Praha 8. 2. 2016 Krajský úřad Plzeňského kraje Odbor informatiky Koncept etapizace tvorby výměnného formátu XML aktualizačních zakázek Digitální
TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY
Příloha č. 3 k č.j. MV-159754-3/VZ-2013 Počet listů: 7 TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Nové funkcionality Czech POINT 2012 Popis rozhraní egon Service Bus Centrální Místo Služeb 2.0 (dále jen CMS
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
Instalace a konfigurace web serveru. WA1 Martin Klíma
Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/
Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.
SIMATIC S7-200 243-1 2005, Page 1 Program workshopu Začátek: 9.00 GPRS - aplikace pro GPRS, základy - jak nastavit vzdálenou stanici, knihovna instrukcí pro GPRS - jak nastavit server (SINAUT MICRO SC,
Testovací metoda. Testovací metoda. public class SimpleTest {
Testování TestNG public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest() { System.out.println("Fast test");
Návod k instalaci S O L U T I O N S
Návod k instalaci SOLUTIONS Návod k instalaci Hasičská 53 700 30 Ostrava-Hrabůvka www.techis.eu www.elvac.eu +420 597 407 507 Obchod: +420 597 407 511 obchod@techis.eu Podpora: +420 597 407 507 support@techis.eu
Otevřený katastr (OK)
Otevřený katastr (OK) Karel Jedlička, Jan Ježek, Jiří Petrák smrcek@kma.zcu.cz, h.jezek@centrum.cz, jiripetrak@seznam.cz Západočeská univerzita v Plzni, Fakulta aplikovaných věd, katedra matematiky oddělení
Modul IRZ návod k použití
Modul IRZ návod k použití Verze: 2 Datum: 26. 2. 2016 Tento dokument představuje stručný návod na použití modulu IRZ v programu EVI 8. Modul IRZ je určen na evidenci odpadů pro IRZ provozovny a hlášení
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18
Spring Framework Pavel Mička Pavel Mička Spring Framework 1/18 Obsah Úvod 1 Úvod 2 Service locator Dependency injection Rozsah platnosti bean 3 4 Pavel Mička Spring Framework 2/18 Co je to Spring framework
Objektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
TMservice. Služba operačního systému Windows pro měření teploty čidlem TM
Služba operačního systému Windows pro měření teploty čidlem TM 3. června 2004 OBSAH Popis... 3 Vlastnosti... 3 Použití... 3 Instalace... 3 Odinstalace... 3 Nastavení... 4 SMTP... 4 address... 4 "from"...
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Dokumentace k programu MMDoc Vypracoval: Petr Dvořák Datum: 15.prosince 2005 1. Úvod 1.1. Účel tohoto dokumentu
Podpora skriptování v Audacity
Specifikace softwarového díla & Časový plán implementace pro Podpora skriptování v Audacity Audacity je oblíběný editor zvuku, který ovšem v současné době postrádá možnost automatizovaného vykonávání skriptů.
Internet Information Services (IIS) 6.0
Internet Information Services (IIS) 6.0 V operačním systému Windows Server 2003 je obsažena i služba IIS v 6.0. Služba IIS poskytuje jak www server tak i některé další služby (FTP, NNTP,...). Jedná se
RESTful web service v Javě
Mendelova univerzita v Brně Provozně ekonomická fakulta RESTful web service v Javě Literární rešerše práce Vedoucí práce: Ing. Jan Turčínek, Ph.D. Pavel Savrov Brno 2016 OBSAH 2 Obsah 1 Protokoly implementaci
ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE
2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2005-2007 Michal Krátký, Miroslav Beneš Tvorba
Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.
3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.
Vývoj multiplatformní aplikace v Qt
Vývoj multiplatformní aplikace v Qt z pohledu vývoje Datovky Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je Qt Nástroje Qt Koncepty Qt Problémy při vývoji Datovky Balíčkování aplikace Datovka
Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug
Spring framework 2.0 Spring framework 2.0 Roman Pichlík http://sweb.cz/pichlik/ Nejdůležitejší slide http://springframework.org/ http://www.springframework.org/documen Historie 2002 - Rod Johnson kniha
24 Uživatelské výběry
24 Uživatelské výběry Uživatelský modul Uživatelské výběry slouží k vytváření, správě a následnému používání tématicky seskupených osob a organizací včetně jejich kontaktních údajů. Modul umožňuje hromadnou
EXTRAKT z technické normy ISO
EXTRAKT z technické normy ISO Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy Kooperativní ITS Zkušební architektura ISO/TS 20026
1 - Úvod do platformy.net. IW5 - Programování v.net a C#
1 - Úvod do platformy.net IW5 - Programování v.net a C# Strana 1 Obsah přednášky Objektově orientované paradigma.net Framework Základní rysy jazyka C# Strana 2 Objektová orientace C# implementuje základní
Návrh softwarových systémů - architektura softwarových systémů
Návrh softwarových systémů - architektura softwarových systémů Martin Tomášek, Jiří Šebek Návrh softwarových systémů (B6B36NSS) Převzato z přednášky X36AAS M. Molhanec Co je to architektura Využívá se
Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25
Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci
Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich
Návrh aplikace Project Westpon Inteligentní simulátor budov Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich . Úvod.. Účel dokumentu Tento dokument má za účel detailně popsat návrh
1 Uživatelská dokumentace
1 Uživatelská dokumentace Systém pro závodění aut řízených umělou inteligencí je zaměřen na závodění aut v prostředí internetu. Kromě toho umožňuje testovat jednotlivé řidiče bez nutnosti vytvářet závod
Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ
Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ 10. 5. 2011 Tým: Simplesoft Členové: Zdeněk Malík Jan Rada Ladislav Račák Václav Král Marta Pechová malikz@students.zcu.cz jrada1@students.zcu.cz
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
Controlweb. Úvod. Specifikace systému
Controlweb Úvod ControlWeb je aplikace pro řízení a indikaci v průmyslu v reálném čase. Mezi jeho základní funkce patří ovládání různých veličin spojitých, binárních nebo textových a zobrazování stavu
Komponentní technologie
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ů
JAVA Moduly Java, letní semestr 2018
JAVA Moduly Modularizace modul explicitně definované co poskytuje i co požaduje proč koncept classpath je křehký chybí zapouzření 2 Modularizace modul explicitně definované co poskytuje i co požaduje proč
Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor
Specifikace softwarového díla & Časový plán implementace pro MEF Editor Cílem projektu je vytvoření pluginu do vývojového prostředí Visual Studio 2010. Plugin bude umožňovat grafickou editaci objektů spojených
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Visual Studio Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 19,2 Číslo: V/5 Programování