IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA
|
|
- Bedřich Bednář
- před 9 lety
- Počet zobrazení:
Transkript
1 IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA Michal Brožek, Dominik Svěch, Jaroslav Štefaník MediumSoft a.s., Cihelní 14, Ostrava, ČR Abstrakt Autoři v článku popisují postupy použité při implementaci vizualizačního systému v návaznosti na objektově orientovaný jazyk JAVA. Zdůvodňují volbu tohoto jazyka a na praktických ukázkách fragmentů kódu ukazují výhody řešení a specifické vlastnosti jazyka JAVA. V hlubším pohledu bude proveden rozbor jednotlivých částí systému a jejich vzájemné vazby. Obsahem popisu bude pohled jazyka JAVA na zpracování dat a událostí, komunikace pomocí TCT/IP i využití a práce s vlákny. Klíčová slova: JAVA, VIDIUM, komunikace, vlákna. 1. Java Sun charakterizuje jazyk Java následujícím způsobem: Jednoduchý, objektově orientovaný, distribuovaný, interpretovaný, robustní, bezpečný, nezávislý na architektuře, přenosný, vysoce výkonný, víceprocesní a dynamický jazyk [1]. Jednotlivě jsou tyto formální pojmy jsou rozebrány v uvedené literatuře nebo také v [2]. Protože systém VIDIUM je založen hlavně na internet/intranet technologii, je Java zajímavá možností vytváření appletů, tedy programů, které jsou prováděny přímo prohlížečem ze zvolené HTML stránky. Proto byla JAVA zvolena jako implementační jazyk. 2. Vidium Systém VIDIUM slouží pro prezentaci měřených a agregovaných technologických údajů, jež jsou zpracovávány a uchovávány v datového skladu. Obecně jde tedy o komplexní informační systém, který zahrnuje sběr uchování, analýzu a vizualizaci dat. Technicky je tento systém založen na internetovských (intranetovských) technologiích s podpůrnými programy pro komunikaci, sledování a řízení systému. Nejedná se o řízení vlastních technologií. Základní myšlenkou je co největší využití možností globalizace a standardizace, jež se v oblasti vývoje software nabízí. Podporována je myšlenka použití takových programů a programových nástrojů, jež zákazník má standardně k dispozici již z dřívějších nákupů softwarových balíků, případně zdarma jako součást operačního systému. Ve výsledku to znamená omezení nákupů licencí na co největší možnou míru případně vůbec. Z tohoto hlediska se pak jeví jako výhodné, má-li již nyní zákazník prohlížeč Microsoft Internet Explorer (MSIE) a pro editaci stránek HTML již existují další nástroje, jako FrontPage nebo Word97. Tento způsob řešení omezuje množství programátorských nástrojů věnovaných na nestandardní řešení a zároveň dává zákazníkovi možnosti pro pozdější ovlivňování vzhledu prezentace údajů dle aktuálních požadavků. Není třeba pro každý nový údaj programovat zvlášť nějaký zobrazovací panel, stačí mít MSIE, umět vytvořit HTML stránku a dodržet určitá programátorská pravidla pro připojení k datovému serveru a pro přenos dat. Konečná vizualizace systému pro uživatele probíhá v prostředí MSIE. To znamená, že celý systém je rozdělen na příslušné HTML stránky s určitou hierarchií. Statické informace HTML stránek jsou podporovány Java applety. Java applet zajišťuje komunikaci s procesy na datovém skladu, komunikaci s uživatelem a tím i oživení vlastní HTML stránky [3]. 3. Komunikace 14
2 Komunikace s modulem prezentační části skladu je prováděna pomocí TCP/IP komunikace. Klientská část (applet) nejprve vytvoří spojení na databázový modul a zajistí ověření práv a přístupu na základě uživatelského jména a hesla. Po navázání spojení s modulem skladu jsou vytvořeny streamy pro komunikaci. Prvním je písař (writer). Tento stream je zapouzdřen v objektu StreamWriter a poskytuje metody pro formátování a odesílání dat nebo požadavků. Druhý stream je čtenář (listener). Ten má za úkol příjem příchozích dat a jejich dekódování. Tento je prezentován objektem StreamListener. Aby bylo zaručeno, že všechny příchozí zprávy budou zpracovány, je objekt StreamListener obsluhován nezávislým vláknem, které má nastavenu vyšší prioritu. Pokud klient požaduje data, pak zadá požadavek třídě spojení, která využívá služeb v třídě StreamListener. Tyto požadavky jsou zasílány většinou synchronně. To znamená, že vykonávání hlavního klientského vlákna je zastaveno po dobu než je požadavek odeslán do databázového modulu. Aby databázový modul rozpoznal o jaká data se jedná, je stanoven pro každý požadavek kód metody, která požadavek zasílá. Množina těchto metod je omezena a plně pokrývá spektrum požadavků. Databázový modul tedy ví, která metoda požadavek vyslala a pro každou takovou metodu existuje protějšek ve formě procedur nebo SQL dotazů. V databázovém modulu je požadavek dekódován, splněn a výsledek odeslán zpět klientské části (appletu). Zde zpracování pokračuje podle toho, o jaký požadavek se jednalo. Existují dvě kategorie požadavků: 1) synchronní metoda čeká na odpověď, jedná se výlučně o tzv. konfigurační metody. Tyto metody mají za úkol poskytovat ostatním objektům data potřebná pro jejich konfiguraci, vytváření, nebo jsou to data nutná pro další korektní funkci těchto objektů, 2) asynchronní jsou výlučně ty požadavky, jejichž splnění není vázáno na vytváření objektu nebo jeho konfiguraci. Typickým příkladem jsou například prezentované agregace, respektive hodnoty těchto agregací ve zvoleném časovém rozmezí. Odpověď není v tomto případě zasílána zpět volající metodě, ale jsou zasílána objektu DataStore, kde jsou uchována pro pozdější použití. (pozn. Volající metoda, je po odeslání požadavku opuštěna a k přerušení hlavního klientského vlákna nedojde). Proč toto rozdělení? Na následujícím příkladu si to vysvětlíme. Pokud vytvářím graf z hodnot agregací, pak potřebuji vědět jak má tento graf vypadat, tj. potřebuji znát rozměry, barvy, popisy a umístění os, značky os, kategorie agregací nakonec i jméno grafu a další. Takže tyto údaje potřebuji, aby bylo možné graf sestrojit. Je tedy logické, že pokud klient zašle požadavek na tyto data, pak je potřebuje ještě před tím, než začne objekt graf vytvářet. Zatímco graf je konstruován potřebuji i hodnoty, které budou v grafu nakonec vyneseny. Protože těchto hodnot je mnoho a jejich zpracování modulem skladu může být zdlouhavé, je zaslán požadavek na zvolené hodnoty již na začátku konfigurace, či vytváření objektu. Tento požadavek je asynchronní, takže se nečeká na návrat dat z databázového modulu, ale pokračuje se normálně v činnosti až do fáze, kdy jsou tato data vyžadována zde konkrétně pro vykreslení hodnot grafu. Jakmile jsou požadována data, provádí se dotaz na DataStore, případně sám DataStore oznámí přítomnost nových dat všem zájemcům. V systému VIDIUM je upřednostňován spíše způsob oznámení nových dat. (pozn. Databázový modul je umístěn na serveru databázového skladu a je tvořen několika vlákny, která zpracovávají požadavky jednotlivých klientů) Následující fragmenty ukazují, jak je komunikace implementována a jak jsou zadávány požadavky. V souvislosti s DataStore je nutné zmínit rozhranní DataAcceptor, které musí každý objekt požadující asynchronní data implementovat. Rozhranní DataAcceptor obsahuje dvě metody. První metoda slouží pro identifikaci příslušného objektu a tím je určena i identifikace jemu náležejících dat. Druhá metoda, kterou je nutné implementovat, je updatedata. Tato metoda je používána pro předávání nových dat k jejich dalšímu zpracování. Uvedené rozhranní je vypsáno v Př. 1. public interface DataAcceptor { public int getid(); public void updatedata(data buff); Př. 1 - DataAcceptor Klient pro vytvoření spojení na databázový server používá třídu Socket. Jeden z konstruktorů této třídy je využíván i v následujícím příkladu (Př. 2), kde je zadáno jméno počítače a port, na který se má klient připojit. Protože bezpečnostní politika appletu nedovoluje připojit se na libovolný server, ale pouze na ten, ze kterého byl 15
3 applet spuštěn, je adresa zjištěna z bázové adresy appletu a tato je pak převedena na jméno počítače. Port na kterém databázový modul poslouchá musí být samozřejmě známý předem. Public EstablishConnection(int port) { iport= port; notestablished= true; int pocet = 5; while(notestablished) { try { notestablished=false; socket = new Socket( myapplet.getcodebase().gethost(), iport); catch (IOException e) { notestablished = true; if (pocet<0) break; try {Thread.sleep(2000); catch (InterruptedException ie) {; catch (SecurityException ex) { System.out.println( "Bezpecnostni problem. "+ex.printstacktrace()); NotEstablished = true; if (notestablished) { Globals.printerr("Nepodarilo se pripojit na databazovy modul"); Return; localport = socket.getlocalport(); //urcim streamy try { in = socket.getinputstream(); out = socket.getoutputstream(); catch (IOException e) { System.out.println("Chyba getstream. "+ e.printstacktrace()); Př. 2 Připojení na databázový modul V tomto příkladu (Př. 2) je rovněž ukázáno použití dvou metod pro vytvoření streamů, které jsou určené pro přenos dat. Tyto streamy jsou objekty, které poskytují pouze základní operace s daty, tj. čtení resp. zápis dat. V následujícím příkladu (Př. 3) je ukázáno jak je nově vytvořený objekt EstablishConnection využit pro inicializaci již zmiňovaných objektů StreamListener a StreamWriter. Oba objekty mají za úkol data kódovat pro přenos a odeslat resp. přijmout a dekódovat. 16
4 Public Connection(int port) { //pripojeni na server conn = new EstablishConnection(port); if (!conn.spojeno()) { Globals.showStatus("Nepripojeno na server"); Dialogs d= new Dialogs(new DialogAdapter(), new Frame(), false, "Chyba!", "Nepodařilo se připojit na server!", Dialogs.ICON_CRITICAL, Buttons.BTN_HELP); Return; //napojeni vsech akceptoru na stream listenera a jeho vytvoreni datastore = new DataStore(this); streamlistener = new StreamListener(conn.in(),dataStore); streamwriter = new StreamWriter(conn.out()); spojeni = new Spojeni(this); Př. 3 vytvoření streamu Buttons.BTN_OK+ Pokud jsou veškeré inicializace v pořádku, pak můžu zadávat požadavky na databázový modul. Typickým příkladem je použití objektu spojení. Tento objekt poskytuje základní metody pro dotazy a požadavky na databázový modul. Jedním z požadavků (Př. 4) je seznam agregací (tj. seznam jmen agregací). Vždy při sestavování požadavku na databázový modul je nezbytné vytvořit i objekt DBError, který je použit pro následnou analýzu vykonaného požadavku. V tomto příkladu je použit implicitní konstruktor. Ihned po dotazu následuje test úspěšnosti a na základě tohoto testu lze provést analýzu stavu a případné opakování dotazu popř. je zvolen jiný postup. (pozn. v tomto příkladu je vypsáno pouze chybové hlášení) Public void initagr() { Connection = new Connection(); if (!connection.spojeno()) { return; DBError dbe= new DBError(); ai= connection.spojeni().getlistagregaci( dbe, 0, 20000); if (!dbe.getstatus()) { Dialogs d= new Dialogs(new DialogAdapter(), new Frame(), false, "Chyba!", Buttons.BTN_HELP); return; "Nepodařilo se načíst data! \n"+ dbe.sgeterror(), Dialogs.ICON_CRITICAL, Buttons.BTN_OK+ 17
5 // Další inicializace Př. 4 dotaz na databázový modul 4. Vlákna Java poskytuje dvě možnosti, jak vytvořit thread. Nový thread je vždy vytvářen jako objekt. Podmínkou je, aby třída ze které je thread vytvářen, byla buďto dědic třídy Thread nebo aby třída implementovala rozhranní Runnable. Rozdíl mezi oběma způsoby si vysvětlíme na následující ukázce (Tab. 1). Thread Class mujthread extends Thread { Private long test; MujThread( long test) { This.test= test; public void run() { // zde se nachází nějaký // užitečný kód vlákna spuštění: mujthread p = new mujthread(123); p.start(); Runnable Class mujrun implements Runnable { Private long test; MujRun( long test) { This.test= test; public void run() { // zde se nachází nějaký // užitečný kód vlákna spuštění: mujrun p = new mujrun(123); new Thread(p).start(); Tab. 1 srovnání Thread a Runnable Protože Java nedovoluje dědičnost z více než z jedné třídy najednou, je první výhoda rozhranní Runnable jasná. Tuto variantu vytváření vlákna použijeme vždy, pokud vyžadujeme rozšíření nějaké třídy za současného vytvoření vlákna. Implementovat rozhranní Runnable je také výhodnější vždy, pokud nevyžadujeme současnou redefinici metod start a stop, které jsou součástí třídy Thread. Třída Thread je navíc zajímavá tím, že ona samotná už je implementací zmiňovaného rozhranní Runnable. Postup použití Runnable je použitý právě u již dříve zmiňované třídy StreamListener. Tato třída má za úkol přijatá data zpracovat a poskytnout příslušným metodám, resp. objektu DataStore. Metoda run je implementována jako nekonečná smyčka, ve které je prováděn test na přijatá data, jejich zpracování a následné exportování pro další zpracování. Vlákno lze v Javě ukončit dvěmi způsoby. První znamená volání metody stop, která přeruší v blíže nedefinovaném stavu provádění metody run. Druhý způsob je opuštění metody run a tím v podstatě ukončení vykonávání vlákna. Druhý způsob je korektnější, protože lze předem určit místo, kde dojde k přerušení vlákna a tím 18
6 je zaručena i správnost jeho ukončení, na rozdíl od prvního způsobu. Vlastní určení místa ukončení vlákna je bezpečnější už proto, že je zaručen návrat ze všech používaných objektů, ovšem to vše za cenu toho, že vlákno nemusí být ukončeno okamžitě. Lze sice použít triku spuštění vlákna jako konkrétního Threadu a tím mít možnost použití metody stop, ale jak již bylo řečeno je bezpečnější použít vlastní mechanizmus ukončení vlákna. Pro práci s vlákny lze také využít možnosti použití seskupování vláken. Tím lze ovládat více vláken najednou, lze zjišťovat informace o vláknech skupiny a samozřejmě je i přerušit nebo zrušit celou skupinu najednou. Navíc lze seskupit i skupiny vláken. Toto pokročile seskupování má několik pravidel i výhod viz. literatura [2]. 5. Závěrem V systému VIDIUM je upřednostňováno používání rozhranní a abstraktních tříd před dědičností, s výhodou je využíváno kompozice. Samozřejmě jsou případy, kdy je dědičnost nevyhnutelná. Autoři se však domnívají, že v mnoha případech ji lze efektivně nahradit například rozhranním a tím dosáhnout i lepšího řešení větší volnosti. Systém VIDIUM se stále vyvíjí a autoři si jsou vědomi, že pro tak rozsáhlý projekt je popsání všech specifik na několika stranách nemožné. Záměrně byly vybrány neviditelné části systému, tak aby s nimi mohli být seznámeni i čtenáři s minimálními znalostmi jazyka JAVA. Veškeré připomínky jsou vítány. Další informace o projektu i zkušenostech s jeho implementací lze nalézt na internetové adrese [4]. Literatura [1] The Java Language: A White Paper, [2] FLANAGAN, D., Programování v jazyce Java, 1996, O`Reilly, ISBN [3] ŠTEFANÍK, J., Podklady pro dokumentaci projektu VIDIUM, 1998, firemní dokumentace Mediumsoft a.s., Ostrava [4] BROŽEK, M., SVĚCH, D., ŠTEFANÍK, J., ASŘTP - VIDIUM, 19
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
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í
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2
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
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í
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
Využití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
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ě
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 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ů
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í
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
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd 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 Prostory jmen motivace spolupráce
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ář
Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13
Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace
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
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
Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu
Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro
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
Z. Kotala, P. Toman: Java ( Obsah )
Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například
Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25
Seminář Java Výjimky Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Výjimky 1/ 25 Výjimky Co a k čemu jsou výjimky výjimka je mechanizmus umožňující psát robustní, spolehlivé
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20
Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
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
1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
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ů
Komunikace s automaty MICROPEL. správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace
Komunikace s automaty MICROPEL správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace MICROPEL 02/2014 Základní správu automatu tvoří činnosti: Nastavení základních
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
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
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
Příručka pro dodavatele. Systém EZVR 1.1 Verze dokumentu 1.3 Datum vydání:
Příručka pro dodavatele Systém EZVR 1.1 Verze dokumentu 1.3 Datum vydání: 1.10.2017 1 2 1. Úvod do systému...3 2. Technické požadavky a zabezpečení systému...3 3. Registrace nového dodavatele...4 4. Přihlášení
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,
20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
Software pro vzdálenou laboratoř
Software pro vzdálenou laboratoř Autor: Vladimír Hamada, Petr Sadovský Typ: Software Rok: 2012 Samostatnou část vzdálených laboratoří tvoří programové vybavené, které je oživuje HW část vzdáleného experimentu
Dalším příkladem může být například výstup dat na různá zařízení, souborů, grafických rozhraní, sítě atd.
1. Zapouzdření Cíl látky Tento blok nejdříve přiblíží zásadu zapouzdření a odpoutání kódu a po té na relacích, jako jsou asociace, agregace a kompozice, vysvětlí jak lze objektový zdrojový kód zapouzdřovat
8. přednáška: Soubory a proudy
8. přednáška: Soubory a proudy Soubor jako posloupnost bytů Ukládání/čtení primitivních typů Ukládání/čtení primitivních typů a objektů (řetězců) Ukládání/čtení objektů do souboru - serializace Obsah Algoritmizace
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
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í
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 =
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
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
Modul. Univerzální tabulkový export
Modul Univerzální tabulkový export Přístup ke komplexně reportovaným údajům Export je vybaven možnostmi pro velice komplexní prezentaci dat: Umožňuje seskupování dat až v pěti úrovních, seskupování může
Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová
Databáze MS-Access Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová Obsah Principy a možnosti databází. Uložení dat v databázi, formáty dat, pole, záznamy, tabulky, vazby mezi záznamy. Objekty databáze
Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe
Uživatelská příručka Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe Ministerstvo zemědělství České republiky únor
Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe
Uživatelská příručka Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe verze pro mobilní zařízení a čtečky elektronických
OBSAH. 1. Úvod Požadavky na SW vybavení... 3
Obsah OBSAH 1. Úvod... 3 1.1 Požadavky na SW vybavení... 3 2. Popis Reliance J... 4 2.1 Start vizualizace... 4 2.2 Hlavní okno... 5 2.2.1 Menu Služby... 6 2.2.2 Menu Nápověda... 8 2.3 Nastavení hodnoty...
Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)
Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz) Autor: Radek Vystavěl Díl 12: Algebra Lineární transformace MATEMATIKA Lineární transformace, neboli přeet hodnoty x podle
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník 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 Abstraktní datové typy omezené rozhraní
Java a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
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 -
typová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
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í
Programování II. Třídy a objekty (objektová orientovanost) 2018/19
Programování II Třídy a objekty (objektová orientovanost) 2018/19 Osnova přednášky Objektový přístup (proč potřebujeme objekty). Třídy, objekty,... Příklad. Proč potřebujeme objekty? Udržovatelnost softwaru
Hospodářská informatika
Hospodářská informatika HINFL, HINFK Vytvořeno s podporou projektu Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu reg.
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Profilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
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
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ů
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
Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu
Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní
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í
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í
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,
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz
Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných
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
Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická
TCP, UDP, Katedra počítačů Fakulta elektrotechnická 10. května 2007 Přehled 1 2 TCP a sokety obecně TCP klient TCP server 3 UDP klient UDP server 4 Sít ová spojení nad sít ovou vrstvou (typicky protokol
Vláknové programování část V
Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2014 03 25 1/25 Přehled přednášky Paměťový model Javy GUI v Javě Vlákna
Seminář Java II p.1/43
Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii
InTouch Příklady architektur
Příklady architektur Michal Tauchman, Marek Feuermann Pantek (CS) s.r.o. Strana 2 Přehled aktualizací dokumentu 06/2003: Aktualizace na verzi 8.0; hlavní změny oproti předchozí verzi (pro 7.11) jsou v
1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
Abstraktní třída a rozhraní
Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě
manuscriptorium Manuscriptorium v Evropě Manuscriptorium.com
manuscriptorium Manuscriptorium v Evropě manuscriptorium a ENRICH Manuscriptorium evropská digitální knihovna psaného kulturního dědictví obsahuje rukopisy, inkunábule, staré tisky (do r. 1800), mapy,
webmarketin Základní moduly aplikace
webmarketin Aplikace webmarketing je komplexní online nástroj určený pro podporu a řízení marketingu a CRM ve společnosti. Její součástí jsou webové ankety, SMS kampaně nebo newslettery, které lze spravovat
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Sísyfos Systém evidence činností
Sísyfos Systém evidence Sísyfos : Evidence pracovních Systém Sísyfos je firemní aplikace zaměřená na sledování pracovních úkonů jednotlivých zaměstnanců firmy. Umožňuje sledovat pracovní činnosti na různých
Webové hlášení pracovišť vyšetřujících HIV o počtu provedených vyšetření
Systém Webové hlášení pracovišť vyšetřujících HIV o počtu provedených vyšetření Manuál webové aplikace leden 2012 v4.0 Státní zdravotní ústav Národní referenční laboratoř pro AIDS 1 1 Úvod Systém HlasSZU
Wonderware Information Server 4.0 Co je nového
Wonderware Information Server 4.0 Co je nového Pavel Průša Pantek (CS) s.r.o. Strana 2 Úvod Wonderware Information Server je výrobní analytický a reportní informační portál pro publikaci výrobních dat
Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory 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 Kolekce ::= homogenní sada prvků
Dispatcher PDA Dokumentace
Dispatcher PDA Dokumentace květen 2005 1 Obsah: 1. Základní popis programu 2. Blokové schéma zapojení 3.1. Úvodní obrazovka 3.2. Zahájení jízdy 3.3. Ukončení jízdy 3.4. Záznam o tankování 3.5. Události
Business Intelligence
Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma
Matematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
NMIN201 Objektově orientované programování 1 / :36:09
NMIN201 Objektově orientované programování 1 / 26 8.10.2013 15:36:09 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat
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
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
EMBARCADERO DATASNAP. OBSAH Úvod... 2 DataSnap a DBExpress... 2 Serverová část... 2 VCL Klient... 6 Nasazení... 7
EMBARCADERO DATASNAP OBSAH Úvod... 2 DataSnap a DBExpress... 2 Serverová část... 2 VCL Klient... 6 Nasazení... 7 ÚVOD DataSnap je jednou z nejdůležitějších technologií obsažených v nástrojích Delphi a
Počítačové kurzy buildit
Počítačové kurzy buildit Kurz MS Windows - základy 1 590 Kč principy systému Windows, ovládání systému, práce s aplikacemi a okny, správa souborů a složek, multitasking, práce se schránkou Uživatelů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
Inteligentní řízení strojů s portfoliem u-mation Řešení pro automatizaci a digitalizaci Let s connect. Automatizace a digitalizace
Inteligentní řízení strojů s portfoliem u-mation Řešení pro automatizaci a digitalizaci Let s connect. Automatizace a digitalizace Řešení pro automatizaci a digitalizaci Jakožto expert v průmyslové konektivitě
Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);
Programovací jazyk PHP 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 Třídy a objekty Výjimky Webové aplikace
pro komplexní řešení agendy neziskových organizací se zaměřením na sociální služby zdravotně postiženým NABÍDKOVÝ LIST
pro komplexní řešení agendy neziskových organizací se zaměřením na sociální služby zdravotně postiženým NABÍDKOVÝ LIST Nabídkový list informačního systému modularis Informační systém modularis je typickým
Real Time programování v LabView. Ing. Martin Bušek, Ph.D.
Real Time programování v LabView Ing. Martin Bušek, Ph.D. Úvod - související komponenty LabVIEW development Konkrétní RT hardware - cíl Použití LabVIEW RT module - Pharlap ETS, RTX, VxWorks Možnost užití
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
Administrační systém ústředen MD-110
SAS MD-110 Administrační systém ústředen MD-110 SAS MD-110 Administrační systém ústředen MD-110 Efektivní systém administrace poboček a parametrů ústředen Ericsson MD110 s přímou vazbou na telefonní seznam
Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:
Technologie Marushka Základním konceptem technologie Marushka je použití jádra, které poskytuje přístup a jednotnou grafickou prezentaci geografických dat. Jádro je vyvíjeno na komponentním objektovém
Uživatelská příručka pro práci s Portálem VZP. Test kompatibility nastavení prohlížeče
Uživatelská příručka pro práci s Portálem VZP Test kompatibility nastavení prohlížeče Obsah 1. Podporované operační systémy a prohlížeče... 3 1.1 Seznam podporovaných operačních systémů... 3 1.2 Seznam