Modelování existujících OSGi komponent

Rozměr: px
Začít zobrazení ze stránky:

Download "Modelování existujících OSGi komponent"

Transkript

1 Modelování existujících OSGi komponent Lukáš Valenta, Přemysl Brada Katedra informatiky a výpočetní techniky, FAV, ZČU Západočeská univerzita, Univerzitní 22, 30100, Plzeň lvalenta@kiv.zcu.cz, brada@kiv.zcu.cz Abstrakt. Pohlížíme-li na komponenty jako na zapouzdřené objekty, pracujeme pouze s jejich rozhraním. Toto rozhraní je možno formálně popsat nějakým modelem a pracovat tak s abstraktní reprezentací rozhraní komponenty. Při skládání komponentové aplikace lze tedy s výhodou používat tuto reprezentaci. Často se však setkáváme se situací, kdy je potřeba do modelu zahrnout komponentu získanou(typicky zakoupenou) od třetí strany většinou pak nemáme k dispozici zdrojový kód ani dostačující technickou dokumentaci. Modelovou reprezentaci takové komponenty je pak potřeba získat přímo z její distribuční formy. Tento článek shrnuje naše zkušenosti a problémy s tímto postupem pro komponentový model OSGi. Klíčová slova: OSGi, komponenta, rozhraní, model, Objekty 1 Úvod Existuje několik průmyslově používaných platforem pro komponentové programování Enterprise JavaBeans(EJB) [14], CORBA Component Model [9], OSGi[11], Robocop[10] a například také portlety[8]. Všechny používají pojem komponenta vesmyslučástiaplikace,kteroujemožnésamostatněnasadit, aktualizovat a(v run-time) referencovat. Obvyklý obsah pojmu[13] je ale poněkud širší, neboť zahrnuje také vlastnost, že komponenta je černá skříňka s explicitně definovanými rozhraními a závislostmi na okolí. V tomto článku chceme diskutovat, jak se s tímto chápáním komponenty vypořádává OSGi framework, a ukázat, s jakými obtížemi se lze setkat v případě, kdy z existující komponenty chceme získat kompletní informace o jejím rozhraní. 2 Reprezentace rozhraní komponent Cílem komponentového programování je, aby většina využití komponent byla ve formě čistého re-use bez znalosti vnitřní implementace. Z tohoto důvodu potřebujeme velmi často pracovat s popisem jejich vnějšího rozhraní nebo také povrchu proúčelyzakomponovánídoexistujícínebovyvíjenéaplikace(tj.nikoli za účelem jejího vlastního vývoje). Typickou ukázkou je modelování aplikací

2 v diagramu komponent či tříd v UML2, kde je abstrahováno od vnitřní struktury komponent a jsou naopak zdůrazněny vazby mezi nimi, případně mezi komponentami a implementačními třídami aplikace, které je využívají. Poměrně často cd: Sample Application << component, UI >> StudentAdministration Student << component >> Student Persistence Student Persistence << component >> Database JDBC << component, infrastructure >> Persistence JDBC Obr. 1. Ukázkový UML2 diagram komponent se můžeme dostat do situace, kdy potřebujeme do modelu zahrnout komponentu získanou(typicky zakoupenou) od třetí strany; v takovém případě je nepravděpodobné, že bychom měli přístup ke zdrojovému kódu, a technická dokumentace nemusí být dostačující. Potřebovali bychom tedy provést jakousi reverzní analýzu distribuční podoby komponenty pro získání popisu jejího rozhraní. Tento popis typicky zahrnuje dvě množiny prvků(rozhraní, služeb, atributů, událostí, atd., dle možností použitého komponentového modelu): jednak ty, které jsou komponentou poskytovány okolí tzv. provides část, a za druhé ty, které ona sama vyžaduje od okolí pro svoji funkčnost tzv. requires část. 2.1 Praktické aspekty Problém nastává pokud model rozhraní, který máme k dispozici, neobsahuje všechny prvky komponentou skutečně poskytované či vyžadované. V takovém případě jej buďto musíme doplnit ručně, nebo pracovat s neúplným modelem za cenu nepřesností a možných komplikací, které se objeví až za běhu výsledné aplikace. Dalo by se očekávat, že model získaný automatickou analýzou distribuční podoby komponenty bude kompletní, tak jako je nutně kompletní sama distribuovaná komponenta. Moderní komponentové platformy obvykle používají nějakou formu deklarativního popisu komponenty(deployment descriptor u EJB, soubor manifestu u OSGi) a zároveň takové implementační jazyky, které obsahují mechanismus introspekce(java, C#). To dává šanci zjistit o komponentě vše potřebné až na úroveň jednotlivých tříd, metod a datových typů.

3 Naše zkušenosti bohužel potvrzují spíše opak. V následující části článku chceme ukázat na příkladu OSGi, jaké prvky rozhraní je potřeba mít k dispozici pro kompletní modelování komponenty a jakým způsobem lze které z nich získat. Zejména se pak budeme zabývat technicky pokročilými technikami a obtížemi, se kterými je spojeno získávání informací o některých z nich. 3 Komponentová platforma OSGi OSGi[11] je otevřená platforma umožňující nasazení a správu služeb. Původně byla jejím hlavním cílem oblast mobilních a zabudovaných(embedded) zařízení, v současné době ale tato komponentová architektura slouží i jako základ celých enterprise informačních systémů či například vývojových prostředí[6, 7]. Jádro platformy OSGi tvoří tzv. OSGi Framework(v jiných komponentových modelech se obvykle nazývá kontejner), který vytváří běhové prostředí umožňující nasazení a provoz aplikací(komponent) nazývaných bundle. V tomto článku se budeme zabývat modelováním právě těchto komponent OSGi bundles. 3.1 OSGi Bundle OSGi bundle je softwarová komponenta obsahující Javovské třídy tvořící vlastní implementaci a další pomocné zdroje, které společně poskytují funkcionalitu pro své klienty. Komponenty mohou sdílet Javovské balíky mezi exportéry a importéry mohou vznikat přesně definované vazby. Tento mechanismus umožňuje komponentě přistupovat k třídám poskytnutým komponentou jinou. Nejdůležitějším aspektem OSGi jsou však služby, přístupné přes Java rozhraní. Myšlenka celé architektury je založena na množině nezávislých komponent, které si mohou v centrálním registru běhového prostředí registrovat služby, které poskytují a naopak hledat služby, jež od svého okolí vyžadují. Bundle připravený k nasazení(distribuční forma) je ve formě JAR archivu. Tento soubor obsahuje: veškeré zdroje nutné k běhu obsaženého OSGi bundle, tedy přeložené Javovské třídy, HTML soubory, nápovědu, ikony atd. manifest souborpopisujícíobsaharchivu( deskriptor ).Hlavičkytohoto souboru specifikují informace, které OSGi Framework potřebuje pro úspěšné nasazení a spuštění komponenty. V okamžiku nasazení vyřeší Framework všechny vnější závislosti specifikované v manifestu a propojí importéry se správnými exportéry. Po spuštění komponenty jsou jí poskytované služby zpřístupněny i ostatním komponentám v daném prostředí.

4 4 Zjišťování prvků rozhraní OSGi komponent Mluvíme-li o modelování rozhraní komponent nějakého konkrétního komponentového modelu, musíme nejdříve prostudovat jeho specifikaci za účelem zjištění všech funkcí a vlastností, které překračují pomyslnou bariéru zapouzdření komponenty 1.NámizkoumanýmodelOSGiveverzi4specifikujemožnédruhyprvků rozhraní komponent uvedené v tabulce 1. Oproti jiným komponentovým modelům(např. EJB) je jejich počet poměrně malý. Název Role Popis export types Poskytovaný Java typy exportované touto komponentou import types Vyžadovaný Java typy touto komponentou vyžadované export services Poskytovaný Služby, které komponenta poskytuje ostatním import services Vyžadovaný Služby, které komponenta vyžaduje od okolí native code Vyžadovaný Vyžadované systémové knihovny require bundles Vyžadovaný Komponenta požaduje jiný celý bundle required exec env Vyžadovaný Podporované běhové prostředí(jedno či více) Tabulka 1. Druhy prvků rozhraní komponent OSGi Při vytváření abstraktní reprezentace rozhraní konkrétní komponenty je třeba získat z její distribuční formy(tedy ze zmíněného JAR archivu) informace o těch prvcích z výše uvedených, které komponenta opravdu poskytuje/vyžaduje. Následujícíkapitolyukazují,žeučástiznichjetoobtížnéažzcelanemožné. 4.1 Bezproblémové části rozhraní Nejprve uvedeme části rozhraní komponent OSGi, jejichž získání je bezproblémové. Jejich formální popis existuje v manifestu a obsahuje všechny potřebné informace. Jedná se o seznam vyžadovaných systémových knihoven(native code), běhových prostředí (required execution environment) a vyžadovaných bundle (require bundles), jak je ilustrováno na následujícím fragmentu manifest souboru: Bundle-RequiredExecutionEnvironment: OSGi/Minimum-1.1 Bundle-NativeCode: lib/http.dll; lib/zlib.dll; osname = Windows98; osname = WindowsNT; processor=x86 ; lib/linux/libhttp.so; osname=linux; 1 Jakbylozmíněnovúvodu nakomponentupohlížímejakonačernouskříňku,známe pouze její rozhraní.

5 processor = mips Require-Bundle: cz.zcu.example;resolution:=optional U následujících částí rozhraní již není zjištění všech podstatných informací takto triviální. 4.2 Exportované typy V manifestu JAR souboru slouží k popisu exportovaných typů hlavička Export- Package. Specifikovány jsou tedy celé Java balíky, pro potřeby modelování je všakpotřebapřejítojednuúroveň níž kekonkrétnímjavatřídámarozhraním 2. Bundle-Name: A Export-Package: cz.zcu.logging; version=1.3.0; exclude=cz.zcu.logging.invisible Bundle uvedený na příkladu exportuje celý Java balík cz.zcu.logging tedy všechny třídy a rozhraní definované jako public kromě třídy Invisible. Získání seznamu exportovaných tříd je poměrně jednoduché vzhledem k tomu, žecelýbalíkmusíbýtvjararchivupřítomen.jetřebaprojítcelýadresář a každou veřejnou javovskou třídu, která vyhovuje podmínkám include/exclude, do seznamu zařadit. Zda je třída veřejná lze zjistit instrospekčním mechanismem použitím Java Reflection API[15]. V tomto případě obsahuje distribuční forma komponenty tedy kompletní informaci o tomto poskytovaném prvku rozhraní introspekčním mechanismem je možno získat kompletní typovou informaci(jednotlivé metody, parametry,...),je-lipotřeba 3.Jakuvidímedále,zdalekanevždylzetaktokompletníinformace získat. 4.3 Importované typy Deklarace importovaných balíků u OSGi komponent slouží podobnému účelu, jako systémová proměnná CLASS PATH u běžných Javovských aplikací. Pouze určujezávislostikomponentyna knihovních (vyžadovaných)balících.výhodou oproti zmíněnému CLASS PATH je u OSGi samozřejmě nezávislost na umístění, komponentasenemusízajímatoto,odkudsepotřebnébalíky vezmou,toto zajistí OSGi Framework automaticky. Navíc dokáže řešit složitější podmínky a nároky kladené na exportovaná rozhraní, například požadovanou verzi, shodnost parametrů atd. Zjištění importovaných typů je na první pohled velice podobné typům exportovaným: 2 Užjen proto, žespecifikace OSGi umožňujekespecifikaci exportovanéhobalíku přidat seznam tříd z exportu vyloučených proto je lepší hovořit o seznamu tříd, nežo neúplném balíku. 3 Napříkladpřiurčovánípodtypovérelacemezidvěmakomponentami přiověřování jejich nahraditelnosti.

6 Bundle-Name: B Import-Package: cz.zcu.logging; version=[1.1.5, 2) Oproti nim je zde však jeden podstatný rozdíl: nikde není explicitně specifikovánapřesná podoba vyžadovanýchtřídarozhraní.vmanifestujespecifikován pouze název Java balíku, kompletní informace o obsažených typech k dispozici není. Podobuvyžadovanýchtypů(metodajejichhlaviček...)tak,jakjepředpokládá a s nimi pracuje komponenta B, bychom zjistili z exportující komponenty, tu ale obecně nemáme k dispozici. Musíme tedy použít informace z naší komponenty samotné: představu lze získat analýzou jejího přeloženého programového kódu. Je potřeba zjistit, jaké používá třídy, k čemuž je potřeba nejen introspekčního mechanismu, ale i přímé analýzy Java.class souborů. Výsledný postup lze slovy popsat jako rekurzivní procházení všech interních tříd zkoumané komponenty a hledání referencí na třídy, které náleží do balíků specifikovaných v Import-Package hlavičce: 1. Nechť List je množina názvů tříd, které ještě nebyly analyzovány. Nechť P arsed je množina názvů tříd, které již byly analyzovány. 2. List={NázevtřídyBundle-Activator }(tj. hlavní třídaosgibundle) Parsed=. 3.Nechť Class List(výběrjednétřídy), List=List \ {Class}, Parsed=Parsed {Class}. (a) Pokud třída Class náleží do tohoto OSGi bundle, analyzuj její byte-kód. Do List přidej všechny nalezené reference na jiné třídy nebo rozhraní (pouzepokudjižnejsouvparsed).jdinakrok4. (b) Patří-li třída do některého z balíků specifikovaných v hlavičce Import-Package, ulož její jméno do vytvářené abstraktní reprezentace této komponenty(jako import type). Jdi na krok 4. (c) Neplatí-li možnost(a) ani(b), třídu ignoruj(může se jednat například o knihovní třídu Javy). 4.Je-li List=,ukončiproces.Vopačnémpřípadějdinakrok3. Uvedený postup není ze své podstaty zcela spolehlivý, ale ve většině případů dává správné výsledky. Jeho výhodou je fakt, že nalezneme pouze ty třídy, které komponenta skutečně používá a nikoli všechny, které jsou jinou komponentou exportovány. Hledáníreferencínapoužívanétřídynenívzhledemkestruktuře.class 4 souborů tak obtížné, jak by se mohlo zdát. Soubory obsahují tabulky používaných konstant, řetězců, názvů metod, tříd a dalších důležitých údajů a stačí tedy procházet tyto tabulky bez nutnosti analýzy například jednotlivých instrukcí vlastního kódu. V naší prototypové implementaci tento algoritmus používá knihovnu The Byte Code Engineering Library(BCEL)[1]. 4 Souborůobsahujícíchpřeloženýkódkomponenty Javabyte-code

7 4.4 Služby Důležitou součástí rozhraní OSGi komponent jsou služby(services). Bohužel, právě tato důležitá vlastnost není žádným způsobem formálně specifikována. Narozdíl od Export-Package či Import-Package diskutovaných výše, o službách, které OSGi komponenta požaduje či poskytuje, není například v manifest souboru taková informace žádná. Veškeré operace se službami, včetně jejich publikování a vyhledávání, probíhají pouze ve vlastním kódu komponenty, tedy uvnitř pomyslné černé skříňky, za kterou komponentu považujeme. Způsob práce se službami je ilustrován v následujících ukázkách kódu. Registrace poskytované služby: BundleContextbc =...;/* muj BundleContext*/ /* ziskani objektu implementujiciho rozhrani sluzby*/ serviceimpl = new MyServiceImplementation(); /* registrovani sluzby - nazvem sluzby je nazev jejiho rozhrani */ bc.registerservice( MyServiceInterface.getName(), serviceimpl, new Hashtable()); Vyhledání a získání reference na vyžadovanou službu: /* nalezeni reference na sluzbu*/ ServiceReference sr = bc.getservicereference( MyServiceInterface.getName()); /* ziskani reference na sluzbu */ MyServiceInterface = (MyServiceInterface) bc.getservice(sr); /* volani metody poskytovane sluzbou*/ sr.servicemethod(...); /* uvolneni sluzby */ bc.ungetservice(sr); Postup použitý pro hledání referencí na používané třídy(viz sekce 4.3) nelze v tomto případě použít. Lehce modifikovaným postupem lze pouze odhalit, že třída volá nějakou konkrétní metodu (například BundleContext. registerservice()), což svědčí pouze o tom, že bundle pravděpodobně nějakou službu registruje. Další potřebné údaje(název služby, její rozhraní) již nenímožnézjistit,protožeparametrytétometodyjsoujižzcela skryty ve vlastním kódu komponenty a obecně je nelze určit. Stejný problém nastává i při určování služeb, které komponenta ke svému běhu potřebuje.

8 4.5 Shrnutí Komponentový model OSGi trpí, stejně jako i další průmyslově používané modely(např. EJB[14]), nedostatečným formálním popisem rozhraní komponent. Největší problém vidíme v absenci popisu komponentou vyžadovaných a poskytovaných služeb, protože se jedná o základ a princip celé architektury. Abstraktní reprezentace komponenty OSGi, získaná výše uvedenými automatickými postupy, proto bohužel postrádá de-facto nejdůležitější součást a jak jsme v předchozích kapitolách ukázali, informace nelze z distribuční formy získat žádným způsobem. Ale ani ostatní části rozhraní, kromě triviálních prvků(viz sekce 4.1), nejsou z tohoto pohledu bezchybné. Informace, které by měly být deklarativně přímo přístupné například v manifest souboru, se musejí složitě a ne vždy zcela spolehlivěhledatintrospekcíčiještěhlubšíanalýzou hotové formykomponenty. V naší práci využíváme pro abstraktní reprezentaci rozhraní softwarové komponenty ENT metamodel[4], jehož prototypová implementace nám umožňuje provádět nad reprezentacemi konkrétních komponent další operace(pro ilustraci viz obrázek 2). Především se zaměřujeme na ověřování nahraditelnosti softwarových komponent[5], konkrétní aplikací pro OSGi je nástroj pro automatické generování identifikátorů verzí nových revizí komponenty na základě analýzy změn v jejím rozhraní[16, 17]. Každé takové využití reprezentace rozhraní ovšem trpí neúplností informací, které je možné o komponentě získat. Obr. 2. Vytvoření modelu rozhraní a jeho použití 5 Závěr Na problém s nedostatečnými nebo chybějícími(formálními) popisy softwarových komponent je ukazováno v práci[2]. Autoři představují model a metriky

9 kvality komponent a v rozsáhlé případové studii analyzují množství komponent veformě,vjakéjemožnojezakoupitnatrzíchkomponent.vzávěrupráce upozorňují na fakt, že mnoho důležitých informací o komponentě není zákazníkovi k dispozici(a to ani nemluvíme o jejím formálním popisu, ale o libovolném zdroji informací návody, tutoriály...). Druhým významným závěrem je srovnánísmnožinoukomponent,kekterýmměliautoři plný přístup(zdrojové kódy...).tatomnožinadopadlaopoznánílépe vidíme,žeinformacekdispozici jsou, ale nejsou poté k dispozici v nějaké podobě(nejlépe formalizované) při distribuci komponent. Na směr, kterým se bude zřejmě komponentový výzkum dále ubírat, tedy na pokročilejší formální popisy jak rozhraní komponent, tak i jejich protokolů, chování, výkonových charakteristik atd., ukazují i další současné práce prezentované na konferencích věnovaných komponentovým systémům[3, 12]. Ukazuje se, že požadavky na komponentové programování kladené a především jeho očekávané přínosy(re-use, možnost update/upgrade komponenty za běhu aplikace a související přísné kontroly kompatibility, striktní black-box pohled na jednotlivé komponenty,...) jsou stále spíše v rovině teoretické. Současné průmyslově používané komponentové modely se soustřeďují spíše na implementační aspekty a spektrum podporovaných služeb(transakce, persistence, transparentní distribuovatelnost...). Námi prezentovaný pohled na OSGi ukazuje, že se jedná spíše o dobře navrženou běhovou architekturu či přesně specifikované běhové prostředí pro provoz nezávislých aplikací v jedné JVM, než o komponentový model s dobře definovanými(tj. formálně popsatelnými) rozhraními komponent, nemluvě o dalších zmíněných aspektech protokoly, chováním atd. v případě, že by další verze specifikace již nutily vývojáře s komponentou distribuovat i tyto modely, bylo by vyřešeno mnoho problémů, se kterými se nyní uživatelé OSGi potýkají. Reference 1. The Byte Code Engineering Library, 2. Alexandre Alvaro, Eduardo Santana de Almeida, Silvio Lemos Meira, a Software Component Quality Model: a Preliminary Evaluation, In proceedings of 32nd EuroMicro conference, , Egor Bondarev, Michel R.V. Chaudron, Compositional Performance Analysis of Component-Based Systems on Heterogeneous Multiprocessor Platforms, In proceedings of 32nd EuroMicro conference, , P. Brada. The ENT model: a general model for software interface structuring. Technical Report DCSE/TR , Department of Computer Science and Engineering, University of West Bohemia, Pilsen, Czech Republic, P. Brada. Specification-Based Component Substitutability and Revision Identification, PhD thesis, Department of Computer Science, University of Western Bohemia, Pilsen, Czech Republic, 2003, brada/research/thesis/. 6. Eclipse, an open development platform, 7. IBM, Rational Application Developer,

10 8. Java Community Process, Java Portlets Specification, 9. Object Management Group, CORBA Component Model, V3.0, Ronan Mac Laverty, ROBOCOP Revised specification of framework and models, 2003, The OSGi Alliance. OSGi Service Platform Core Specification, Release 4, August 2005, available at Gernot Schmoelzer, Egon Teiniker, Christian Kreiner, Michael Thonhauser, Modeltyped Component Interfaces, In proceedings of 32nd EuroMicro conference, , Clemens Szyperski. Component Software. ACM Press, AddisonWesley, SunMicrosystems.EnterpriseJavaBeans TM Specification,Version2.1,2003, available at Sun Microsystems, Java Reflection API, L. Valenta, P. Brada. Automated generating of OSGi component versions. In proceedings of ECI 2006 conference, , L. Valenta, P. Brada. OSGi Component Substitutability Using Enhanced ENT Metamodel Implementation. Technical Report DCSE/TR , Department of Computer Science and Engineering, University of West Bohemia, Pilsen, Czech Republic, 2006.

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

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

Více

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 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

Více

Architektury informačních systémů

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

Více

Architektury informačních systémů

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

Více

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 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

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Komponentový návrh SW

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

Více

Tvorba informačních systémů

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

Více

UML. Unified Modeling Language. Součásti UML

UML. Unified Modeling Language. Součásti UML UML Unified Modeling Language 1995 počátek 1997 verze 1.0 leden dnes verze 2.0 (vývoj stále nedokončen) Standardní notace OMG podpora velkých firem (Microsoft, IBM, Oracle, HP ) popisuje struktury popisuje

Více

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013 Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521

Více

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

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

Více

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í 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

Více

Tvorba informačních systémů

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

Více

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

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,

Více

Common Object Request Broker Architecture

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í

Více

Česká zemědělská univerzita v Praze

Česká zemědělská univerzita v Praze Česká zemědělská univerzita v Praze Provozně ekonomická fakulta Katedra informačních technologií Teze diplomové práce Operační systém Google Android Petr Koula 2011 ČZU v Praze Souhrn Diplomová práce zahrnuje

Více

Č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 Č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

Více

7 Jazyk UML (Unified Modeling Language)

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í

Více

Softwarové komponenty a Internet

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

Více

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

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 -

Více

Testování Java EE aplikací Petr Adámek

Testování Java EE aplikací Petr Adámek Testování Java EE aplikací Petr Adámek Testování aplikací Testování aplikací Ověřuje soulad implementace se specifikací a s očekáváním zákazníka. Je důležitou součástí procesu řízení kvality vývoje software

Více

Znalostní systém nad ontologií ve formátu Topic Maps

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:

Více

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

X36SIN: Softwarové inženýrství. Životní cyklus a plánování X36SIN: Softwarové inženýrství Životní cyklus a plánování 1 Kontext Minule jsme si řekli, co to je deklarace záměru, odborný článek, katalog požadavků, seznam aktérů a seznam událostí. Seznam aktérů a

Více

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

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

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

Více

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

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

ANALÝZA A OPTIMALIZACE VÝROBNÍCH PROCESŮ MALOSÉRIOVÉ SLOŽITÉ VÝROBY V NOVÝCH VÝROBNÍCH PROSTORECH NA ZÁKLADĚ DISKRÉTNÍ SIMULACE

ANALÝZA A OPTIMALIZACE VÝROBNÍCH PROCESŮ MALOSÉRIOVÉ SLOŽITÉ VÝROBY V NOVÝCH VÝROBNÍCH PROSTORECH NA ZÁKLADĚ DISKRÉTNÍ SIMULACE ANALÝZA A OPTIMALIZACE VÝROBNÍCH PROCESŮ MALOSÉRIOVÉ SLOŽITÉ VÝROBY V NOVÝCH VÝROBNÍCH PROSTORECH NA ZÁKLADĚ DISKRÉTNÍ SIMULACE Doc. Václav Votava, CSc. (a), Ing. Zdeněk Ulrych, Ph.D. (b), Ing. Milan Edl,

Více

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

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

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

7 Jazyk UML (Unified Modeling Language)

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í

Více

Architektura softwarových systémů

Architektura softwarových systémů Architektura softwarových systémů Ing. Jiří Mlejnek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jiří Mlejnek, 2011 jiri.mlejnek@fit.cvut.cz Softwarové

Více

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU Tvorba podnikových aplikací v jazyce JAVA Josef Pavlíček KII PEF CZU J2EE Jedná se o přístup: sadu pravidel, technologií, metod, doporučení jak provádět design, vývoj, nasazení a provozování vícevrstvých

Více

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 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

Více

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

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení

Více

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

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íce

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství Přemysl Brada Cíle předmětu Organizační informace Opakování Cíl předmětu Praktické zkušenosti sw proces a iterativní vývoj jaksi mimochodem

Více

Vytvoření.NET komponenty (DLL) ve Visual Studiu

Vytvoření.NET komponenty (DLL) ve Visual Studiu Jak vytvořit.net komponentu (DLL, COM Class) pro Excel? A proč? A co k tomu budeme potřebovat? Velký Visual Basic (dnes VB.NET) se rozešel s Visual Basicem pro aplikace (VBA) před cca 16 lety. A i když

Více

Habilitační řízení v oboru Informatika a výpočetní technika

Habilitační řízení v oboru Informatika a výpočetní technika Habilitační řízení v oboru Informatika a výpočetní technika Přemek Brada, Katedra informatiky a výpočetní techniky FAV ZČU Plzeň 23.5.2012 > Komponentový přístup k tvorbě software > Analýza a modelování

Více

IBA CZ průmyslový partner FI MU

IBA CZ průmyslový partner FI MU IBA CZ průmyslový partner FI MU Petr Adámek O společnosti IBA Group IBA Group selected for Global Services 100 in the categories: TOP 5 TO WATCH IN CENTRAL AND EASTERN EUROPE rating 2. IBA založena v roce

Více

CineStar Černý Most Praha 31. 10. 2012

CineStar Černý Most Praha 31. 10. 2012 CineStar Černý Most Praha 31. 10. 2012 Stejná aplikace na více zařízeních Michael Juřek Microsoft s.r.o. Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy

Více

Tvorba informačních systémů

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

Více

CASE nástroje. Jaroslav Žáček

CASE nástroje. Jaroslav Žáček CASE nástroje Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within

Více

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W Co je to UML Evoluce UML Diagram komponent Diagram odbavení Diagram tříd Aktivity diagram Stavový diagram Sekvenční diagram Diagram

Více

Unifikovaný modelovací jazyk UML

Unifikovaný modelovací jazyk UML Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li

Více

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

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze

Více

Objektově orientovaný přístup

Objektově orientovaný přístup Objektově orientovaný přístup 1 Historie programovacích jazyků 1945: John von Neumann článek o nové metodě pro ukládání programů 1945: Grace Hopper poprvé termín "bug" 1946: Konrad Zuse Plankalkul - první

Více

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová Osnova K čemu slouží diagram komponent obsah komponent závislosti rozhraní

Více

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování 1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

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

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

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.

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. 13 Rozhraní, výjimky 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 rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Efektivní vývoj mobilních aplikací na více platforem současně Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Osnova 1. Kam míří platforma Windows Phone 2. Seznámení s univerzálními Windows

Více

Modelování procesů s využitím MS Visio.

Modelování procesů s využitím MS Visio. Modelování procesů s využitím MS Visio jan.matula@autocont.cz Co je to modelování procesů? Kreslení unifikovaných či standardizovaných symbolů, tvarů a grafů, které graficky znázorňují hlavní, řídící nebo

Více

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23 Seminář Java Úvod Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Úvod 1/ 23 Téma přednášky Organizace semináře Java úvod, distribuce Radek Kočí Seminář Java Úvod 2/ 23

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

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

Více

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Ú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

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Úvod do Web Services

Ú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á

Více

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

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer Jalapeño: pekelně ostrá Java persistence v Caché Daniel Kutáč Senior Sales Engineer Co je Jalapeño Pár slov ředitele vývoje software Klikni! Tak tedy, o čem dnes budeme mluvit Architektura Instalace Anotace

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy 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 diagramům tříd, asociaci,

Více

Zaměření Webové inženýrství doc. Ing. Tomáš Vitvar, Ph.D. Katedra softwarového inženýrství Fakulta informačních technologií České vysovké učení technické v Praze Den otevřených dveří 20.2.2014 http://www.fit.cvut.cz

Více

Programování II. Modularita 2017/18

Programování II. Modularita 2017/18 Programování II Modularita 2017/18 Modul? Osnova přednášky Vývoj programování Modularita Příklad Vývoj programování Paradigmata programování Jak a proč se jazyky vyvíjejí? V čem se OOP liší od předchozích

Více

UML: Unified Modeling Language

UML: Unified Modeling Language UML 1 UML: Unified Modeling Language Systém kombinace softwaru, hardwaru, dat a uživatelů, která umožňuje řešení konkrétního problému Vývoj systémů vytváření systémů pro klienta Vývoj probíhá na základě

Více

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22 Seminář Java Úvod Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Úvod 1/ 22 Téma přednášky Organizace semináře Java úvod, distribuce Radek Kočí Seminář Java Úvod 2/

Více

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Nové vývojové nástroje i5/os Rational Developer for System i V7.1 Nové vývojové nástroje i5/os Rational Developer for System i V7.1 Aleš Petr, IBM ČR Konference COMMON 18. 20. května 2008 ales_petr@cz.ibm.com Agenda Rational Application Developer for System i V7.1 Novinky

Více

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

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

Více

Windows a real-time. Windows Embedded

Windows a real-time. Windows Embedded Windows a real-time Windows Embedded Windows pro Embedded zařízení Současnost (2008): Windows Embedded WINDOWS EMBEDDED Windows Embedded CE Windows XP Embedded Windows Embedded for Point of Service Minulé

Více

JAVA Moduly Java, letní semestr 2018

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č

Více

7.5 Diagram tříd pokročilé techniky

7.5 Diagram tříd pokročilé techniky 7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem

Více

1. Programování proti rozhraní

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í

Více

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

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é

Více

IBA CZ průmyslový partner FI MU

IBA CZ průmyslový partner FI MU IBA CZ průmyslový partner FI MU Petr Adámek O společnosti IBA Group IBA založena v roce 1993 jako dceřiná společnost IBM Přední poskytovatel IT služeb ve východní a střední Evropě Více než 2000 IT profesionálů

Více

Modelování webových služeb v UML

Modelování webových služeb v UML Modelování webových služeb v UML Jaromír Šveřepa LBMS, s.r.o. Abstrakt: Tento příspěvek se zaměřuje na praktický postup pro identifikaci potřeby webové služby, modelování způsobu jejího použití, popřípadě

Více

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz UML a jeho použití v procesu vývoje Jaroslav Žáček jaroslav.zacek@osu.cz Různé pohledy na modelování Různé pohledy na modelování Unified Modeling Language UML není metodikou ani programovacím jazykem,

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

Obecná reprezentace mimofunkčních charakteristik na komponentách

Obecná reprezentace mimofunkčních charakteristik na komponentách Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce Obecná reprezentace mimofunkčních charakteristik na komponentách Plzeň 2011 Jan Šváb Prohlášení

Více

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

Návrh softwarových systémů - architektura softwarových systémů Návrh softwarových systémů - architektura softwarových systémů Jiří Šebek Návrh softwarových systémů (B6B36NSS) Převzato z přednášky X36AAS M. Molhanec Co je to architektura 2 Využívá se v různách oborech

Více

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d KMA/PDB Prostorové databáze Karel Janečka Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d Sylabus předmětu KMA/PDB Úvodní přednáška Základní terminologie Motivace rozdíl klasické

Více

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

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

Více

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

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 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í

Více

Myšlenkové mapy v Linuxu

Myšlenkové mapy v Linuxu Myšlenkové mapy v Linuxu Michal Černý LinuxAlt 2011 Abstrakt Myšlenkové mapy se staly nezpochybnitelným fenoménem. Používají se k rozvoji kreativního myšlení, ke studiu, kooperaci na projektech nebo jako

Více

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

Více

Objektové programování

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

Více

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009 Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené

Více

Tvorba informačních systémů

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

Více

Získávání dat z bibliografických databází

Získávání dat z bibliografických databází Dalibor Fiala Katedra informatiky a výpočetní techniky Západočeská univerzita v Plzni Univerzitní 8, 306 14 Plzeň dalfia@kiv.zcu.cz Abstrakt. Známé bibliografické databáze splňují několik funkcí a mohou

Více

Budování architektury pomocí IAA

Budování architektury pomocí IAA Budování architektury pomocí IAA Jaromír Drozd jaromir_drozd@cz.ibm.com Vysoká škola ekonomická 23.března 2007 Seminář Architektury informačních systémů 23.3.2007 Agenda 1. Představení Insurance Application

Více

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 2. seminář 5.10.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře konfigurační soubory projektu, aktivity, základní události, životní cyklus aplikace, intenty a práce

Více

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu Servlety a JSP Petr Adámek, petr.adamek@ibacz.eu Úvod Rekapitulace vstupních znalostí Standardy Nástroje (Běhové prostředí, nástroje pro vývoj) Servlety JSP JSP značky EL (Expression Language) Internacionalizace

Více

KMI / TMA Tvorba mobilních aplikací

KMI / TMA Tvorba mobilních aplikací KMI / TMA Tvorba mobilních aplikací 2. seminář 5.10.2018 ZS 2017/2018 STŘEDA 13:15-15:45 OBSAH SEMINáře konfigurační soubory projektu, aktivity, základní události, životní cyklus aplikace, intenty a práce

Více

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

Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, Ostrava-Poruba, Česká republika Použití jazyka Java pro aplikace měření a řízení Roman Gužík Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, 708 33 Ostrava-Poruba, Česká republika Abstrakt Příspěvek

Více

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

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

Více

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

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

Více

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

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ Michal Brožek, Dominik Svěch, Jaroslav Štefaník MEDIUM SOFT a.s., Cihelní 14, 702 00 Ostrava, ČR Abstrakt Neustále rostoucí význam sběru dat, možnost

Více

UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0

UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0 UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0 OBSAH 1 ÚVOD... 3 1.1 HOME STRÁNKA... 3 1.2 INFORMACE O GENEROVANÉ STRÁNCE... 4 2 VYHLEDÁVÁNÍ V ÚZEMÍ...

Více