Sborník soutěžních prací České národní finále Imagine Cup 2008, kategorie Software Design 15. 5. 2008 Microsoft s.r.o., BB Centrum, Budova Alfa, konferenční sál Aquarius, Vyskočilova 1461/2a, 140 00 Praha 4
Organizováno pod záštitou Ministerstva životního prostředí a Ministerstva školství, mládeže a tělovýchovy.
Sponzoři
VYVOJAR.CZ Vývojáři sobě…
IMAGINE CUP 2008 | 3
Úvodní slovo ministra životního prostředí České republiky Moderní technologie mají v ochraně životního prostředí klíčovou úlohu. Díky lidské tvořivosti se stávají spojencem, který nám pomáhá žít v souladu s přírodou a limity planety, umožňuje interpretovat celou řadu ukazatelů životního prostředí a předvídat mnohdy destruktivní důsledky našeho jednání. Díky soutěži Imagine Cup dostávají i čeští studenti možnost uvědomit si aktuální problémy na poli životního prostředí a aktivně hledat cestu k jejich řešení. Nejen, že tak získají nové zkušenosti a dovednosti, ale také lépe porozumí úkolům, které před námi všemi stojí. Velice si vážím odhodlání a energie všech účastníků a organizátorů soutěže a přeji jim hodně štěstí a úspěchů.
RNDr. Martin Bursík Místopředseda vlády a ministr životního prostředí
Úvodní slovo ministra školství, mládeže a tělovýchovy České republiky Jsem rád, že i v letošním roce může Ministerstvo školství, mládeže a tělovýchovy podpořit studenty, kteří se rozhodli zúčastnit mezinárodní soutěže Imagine Cup. Studenti, kteří se aktivně snaží zapojit do podobných projektů a sbírají nové zkušenosti i v mezinárodním měřítku, jsou lépe připraveni na další profesní život. Stávají se tím nejlepším základem pro další růst znalostní společnosti a ekonomiky v České republice. Úspěchy našich studentů v celosvětovém finále této soutěže v předešlých letech dokazují, že aktivní přístup ke vzdělávání, osobnímu rozvoji a růstu jsou tou nejlepší investicí do budoucnosti nejen studentů, ale i celé naší společnosti.
Mgr. Ondřej Liška Ministr školství, mládeže a tělovýchovy České republiky
IMAGINE CUP 2008 | 4
IMAGINE CUP 2008 | 5
Celosvětová studentská soutěž se tentokrát zaměří na problematiku životního prostředí Microsoft otevírá již šestý ročník studentského klání Imagine Cup, jehož cílem je inspirovat mladé lidi k využití informačních technologií pro zvyšování kvality lidského života. Tématem letošního ročníku je životní prostředí: „Představte si svět, ve kterém technologie přinášejí trvale udržitelné životní prostředí“. Studenti mohou sami definovat svůj pohled na životní prostředí a v šesti vypsaných kategoriích mohou navrhnout vlastní přístup k vylepšení této neoddělitelné součásti lidského života. Soutěž je rozdělena do několika kol. Soutěžící v kategorii „Softwarový návrh“ se utkají v regionálním českém kole, a vítěz postoupí do celosvětového finále, které proběhne 3. až 8. července 2008 v Paříži. Studenti v ostatních soutěžních kategoriích bojují většinou on-line se svými mezinárodními soupeři a jsou průběžně vyřazováni. Do mezinárodního finále pak postupuje pouze 6 nejlepších týmů či jednotlivců v každé kategorii. Nejlepší návrhy budou oceněny finanční odměnou ve výši celkem 170 000 amerických dolarů. Kromě ocenění, znamená pro studenty úspěšná účast v soutěži také nové profesní příležitosti a šanci ovlivnit životy ostatních lidí. Do soutěže se mohou zapojit studenti starší 16 let. Čeští studenti si z mezinárodního klání, kterého se v roce 2007 zúčastnilo přes 100 000 studentů z více než 100 zemí, odnesli významná ocenění. Studenti Vysokého učení technického v Brně, kteří soutěžili s projektem pomoci neslyšícím v cestě za vzděláním s názvem SilentBooks, se nakonec umístili na 7. – 12. místě. Českou republiku v minulém roce zastupovali také studenti Matematicko-fyzikální fakulty Univerzity Karlovy, kteří v souboji programátorů nazvaném Hoshimi obsadili 5. příčku mezi celosvětově nejlepšími šesti finalisty. Co vše může znamenat trvale udržitelné životní prostředí? Představte si moderní svět, v kterém jsou technologie zcela neodmyslitelnou součástí života na celé planetě. Svět, kde software umožňuje lehce interpretovat indikátory stavu životního prostředí, předpovídat dopady našeho chování, racionalizovat spotřebu přírodních surovin a žít více v souladu se životním prostředím. Imagine Cup 2008 se zaměřuje na studenty po celém světě, aby aktivně přispěli k misi pro ochranu světa pro další generace. Pro některé z nás znamená udržitelné životní prostředí něco jako možnost dýchat čerstvý vzduch pokaždé, když si otevřeme okno. Pro jiné to znamená znatelné zlepšení klíčových indikátorů stavu životního prostředí. Ať se podíváme z jakéhokoliv úhlu, správné použití technologií může skutečně efektivně pomoci vyřešit tento problém, a to v globálním měřítku.
•
s operačním systémem Windows CE, které bude možné využít k naplnění tématu letošního ročníku soutěže Imagine Cup. Vývoj her – tato kategorie se v soutěži Imagine Cup objevuje zcela poprvé a lze ji označit za jeden z nejnáročnějších testů kreativity a technických dovedností. Úkolem totiž bude vytvořit hru, která bude nejen zábavná, ale zároveň bude souviset s tématem letošního ročníku. S využitím zcela nového vývojového prostředí XNA Game Studio Express budou mít soutěžící studenti navíc šanci zviditelnit své hry v mezinárodním měřítku a kromě finančních odměn dostanou i příležitost navštívit společnost Microsoft a předvést své projekty týmu zabývajícím se vývojem her pro Xbox 360.
Znalostní soutěže • • •
Projekt Hoshimi – programátorský souboj, ve kterém se soutěžící snaží co nejrychleji naprogramovat chování a strategii předem specifikovaných postav v počítačové hře. Informační technologie – kategorie, která ověřuje znalosti studentů v oblasti síťových, serverových a databázových technologií a schopnosti reálné analýzy a strategického rozhodování v IT prostředí. Algoritmy – v této kategorii studenti soutěží v řešení logických problémů, algoritmických hlavolamů a programování.
Digitální umění •
•
•
Fotografie – Prostřednictvím digitální fotografie jako jediného komunikačního prostředku mají účastníci soutěže vyprávět příběh z oblasti školství a vzdělávání s cílem vyprovokovat dialog s publikem. Krátký film – účastníci soutěže mají za úkol napsat scénář, natočit jej a sestříhat natočený materiál do podoby krátkometrážního filmu věnovaného aktuálnímu tématu soutěže Imagine Cup.
Interface dizajnér – úkolem této kategorie je motivovat studenty k vytvoření novátorského uživatelského rozhraní, které bude splňovat ergonomické požadavky a zároveň bude efektivní a vizuálně atraktivní.
Kategorie soutěže Imagine Cup Soutěž Imagine Cup probíhá v následujících kategoriích, z nichž některé probíhají až do finále on-line způsobem:
Dr. Ing. Dalibor Kačmář Academic Developer Evangelist, Microsoft Česká republika
Technologické řešení •
•
Softwarový návrh – vyžaduje od studentů technické znalosti a kreativitu při návrhu softwarového řešení aktuálního problému. Studenti musejí přijít s nápadem, na jeho základě vytvořit projekt a realizovat celý vývojový proces. Soutěžní návrhy hodnotí odborná porota podle stupně inovace, dopadu na cílovou skupinu a celkové efektivity. Této kategorie se soutěžící účastní osobně a z regionálního kola postupují přímo do celosvětového finále v Paříži. Embedded vývoj – účastníci v této kategorii mají vyvinout funkční prototyp integrovaného zařízení IMAGINE CUP 2008 | 6
IMAGINE CUP 2008 | 7
České národní finále Imagine Cup 2008, kategorie Software Design
Odborná komise soutěže Doc. RNDr. Petr Šaloun Ph.D., Ostravská univerzita Michal Šaštinský, Elbacom International s.r.o.
Soutěžní práce
Michal Bláha, Vývojář.CZ
City Traffic Designer
11
Jan Kužník, iDnes.CZ
DIP (Disaster Prevention System)
17
Mojmír Vacek, JIC
EcoMap
23
Petr Chlumský, Atlas.CZ
HouseKeeper
27
IMAGINE CUP 2008 | 8
IMAGINE CUP 2008 | 9
KATEGORIE: SOFTWARE DESIGN | Brotherhood of .NET |
City Traffic Designer Tým
Brotherhood of .NET
Škola
Univerzita Karlova v Praze, SPŠSE Liberec
Mentor Řešitelé
Tomáš Herceg, Tomáš Jecha, Jan Šebetovský
Úvod V dnešní době řeší většina velkých měst vážné problémy s dopravní situací. Automobilů neustále přibývá a kapacity silnic nestačí, takže se na mnoha místech tvoří kolony a dopravní zácpy, což má neblahý vliv na naše životní prostředí. To byl jeden z důvodů, proč jsme se rozhodli vytvořit projekt City Traffic Designer. Jedná se o systém pro simulaci a plánování provozu silniční dopravy ve městech, jehož cílem je poskytnout snadno ovladatelný, ale dostatečně silný nástroj pro simulaci vytížení silnic, čekacích dob, ale i znečištění a hluku v okolí těchto pozemních komunikací. Tento systém může pomoci například navrhovat nové cesty (např. obchvaty), umožňuje sledovat změny dopravní situace při uzavření ulice či křižovatky atd.
Myšlenka projektu Aby byl City Traffic Designer použitelný i v reálných scénářích, je zapotřebí robustnost a snadná rozšířitelnost. Proto jsme při vývoji nahlíželi na projekt těmito pohledy:
IMAGINE CUP 2008 | 10
IMAGINE CUP 2008 | 11
KATEGORIE: SOFTWARE DESIGN | Brotherhood of .NET |
Designér – klientská aplikace Základem celého systému je klientská aplikace, ve které se jednak vytváří a upravuje mapa města, a ve které se poté provádí samotná simulace provozu. Editor map podporuje 2 režimy zobrazení – letecký pohled shora pro detailní pokládání silnic a interaktivní 3D zobrazení, ve kterém jsou vidět podrobně konkrétní místa a křižovatky. Pro každou mapu lze nastavit podkladové snímky, přes které se silnice zobrazují, což usnadňuje orientaci v mapě. Ve 3D zobrazení lze použít i letecké snímky terénu, takže 3D pohledy vypadají realisticky. Pro 2D zobrazení je vhodnější použít rastrové plány města, aby bylo možné jednoduše a přesně pokládat silnice, díky čemuž budou odpovídat skutečnosti.
KATEGORIE: SOFTWARE DESIGN | Brotherhood of .NET | V klientské aplikaci se také provádí samotná simulace dopravy. Každé simulaci se dají přesně nastavit veškeré parametry, aby výsledky co nejvíce odpovídaly realitě. Samozřejmostí je specifikace počtu aut na jednotlivých vjezdech a výjezdech z města, množství aut, které po městě jezdí náhodně (což simuluje jízdy obyvatel města například do práce či do supermarketů), množství nákladní dopravy, počty aut v různých denních dobách atd. Po zadání denní doby, která se má simulovat, a nastavení všech parametrů, je možné simulaci spustit a sledovat její průběh. Během simulace je možné v zadaných časových intervalech sbírat mezivýsledky simulace (počet aut, která daným místem projela, čekací doby, hluk, znečištění), aby byl zaznamenán průběh a vývoj hustoty provozu. Je samozřejmě možné měnit rychlost simulace, či simulaci úplně pozastavit a případně se podívat na konkrétní problémová místa a zobrazit podrobné informace.
Do mapy lze přidávat silnice s volitelným počtem pruhů v obou směrech, křižovatky s detailní specifikací jízdních pruhů a hlavní silnice, možností přidání semaforů a přesnému nastavování jejich časování, dále pak kruhové objezdy, nájezdy a sjezdy či přechody pro chodce. Každému segmentu silniční sítě je možno nastavit přesné parametry, aby byly pokryty veškeré běžné potřeby. Ovládání a uživatelské rozhraní klientské aplikace je intuitivní a příjemné na používání. Nejdůležitějším prvkem je bezesporu pás karet Ribbon známý ze sady Microsoft Office 2007, který velice zpříjemňuje a usnadňuje práci s aplikací. Kromě toho využíváme mnoho komponent, které vylepšují celkový vizuální dojem z uživatelského prostředí díky použití vlastních grafických stylů. GUI je ale navrženo tak, aby bylo nejen hezké na pohled, ale i snadno a kvalitně ovladatelné, a to i pomocí klávesnice, což zvyšuje produktivitu práce.
Uživatel – webový portál Po dokončení simulace se data mohou odeslat webové aplikaci, což je druhá část celého systému. Tato webová aplikace zobrazuje mapy oblastí a výsledky všech provedených simulací, přesné statistiky a grafy počtů vozidel na konkrétních místech, dále pak čekací doby, znečištění a hluk v okolí komunikací atd. Je možné nechat si vygenerovat přesné mapy a grafy nejvytíženějších míst, dále třeba míst, kde došlo k nejvyšší koncentraci emisí či hluku, a tyto výsledky je možné prezentovat do veřejné sekce, ke které budou mít přístup běžní uživatelé sítě Internet. Webová aplikace je také obraz centralizovaného úložiště map a výsledků simulací, díky čemuž je možné tyto mapy sdílet mezi více uživateli klientské aplikace. Není tedy nutné, aby si uživatelé mapy složitě předávali, vše se totiž ukládá a načítá buď přes webové služby API serveru, či přímo do databáze.
IMAGINE CUP 2008 | 12
IMAGINE CUP 2008 | 13
KATEGORIE: SOFTWARE DESIGN | Brotherhood of .NET |
Administrátor – konfigurace modulů aplikace Práce administrátora pak spočívá v naplánování a nasazení řešení (umístění SQL serveru, bezpečnost přenosů dat, protokol komunikace, webový server – všechny tyto komponenty jsou nastavitelné pomocí XML). Aby nebyla konfigurace tak složitá, je možné k sestavování aplikačních balíčků použít nástroj Solution Designer. Pomocí něj lze vizuálně vytvořit jak stand-alone aplikaci pro jeden počítač, tak i podnikové řešení pro intranetovou síť s několika servery. Tento nástroj obsahuje implicitně jen dvě koncové aplikace (klientská aplikace a webový portál), ale vývojář jí může snadno rozšířit pomocí XML o svoje vlastní moduly a tak nabídnout administrátorovi možnost nasadit další funkcionalitu bez znalosti programování.
Programátor – API a struktura systému Vývojář má pak možnost využívat silného API s vestavěným simulačním, vykreslovacím a synchronizačním jádrem. Architektura systému je navržena co nejrobustněji a s ohledem na budoucí vývoj a rozšiřitelnost. Důkazem vysoké použitelnosti je i fakt, že nad API byla napsána kompletní klientská aplikace i webový portál.
KATEGORIE: SOFTWARE DESIGN | Brotherhood of .NET |
• • • •
• • • •
Synchronizační jádro – dokáže odesílat provedené změny v mapách na server, automaticky slučovat změny, načítat seznamy a vůbec zajistit ukládání a načítání dat z databáze Vykreslovací jádro – dokáže vykreslovat mapy a grafy z údajů načtených ze serveru Simulační jádro – provádí nad mapou simulace, počítá statistiky a řídí auta na mapě Server API – tato komponenta dokáže API rozdělit na klientskou a serverovou část a zajistit tak komunikaci přes síť i pro větší množství klientů. Využití server API lze aktivovat pomocí XML konfigurace, není nutný zásah do kódu. Publikační jádro – slouží k publikování dat pro webový portál přímo ze simulací a map Testovací framework – dává možnost snadno testovat napsané doplňky a přesně sledovat průběh jednotlivých simulačních kroků Přihlašovací jádro – řeší přihlašování do systému, role a zabezpečení Pomocné komponenty – zjednodušují vytváření složitějších křižovatek, silnic, simulačních nastavení atp.
Všechny tyto části jsou přehledně rozděleny do jmenných prostorů API knihovny a disponují XML komentáři.
Použité technologie Pro vývoj systému City Traffic Designer jsme použili programovací jazyk C# verze 3.0. Pro renderování 3D scén se využívá zobrazování XNA Framework, pro vykreslování 2D pohledů využíváme rozhraní GDI+. Komunikační jádro API je založeno na technologii Windows Communication Foundation. Webová aplikace je napsána v jazyce Visual Basic.NET a v ASP.NET (s AJAX rozšířeními). Data se ukládají na SQL Server 2005. Ve všech částech využíváme také mnoho funkcí z nového.NET Frameworku 3.5, především Extension Methods a LINQ. Na několika místech používáme i technologii Windows Presentation Foundation. Pro větší komfort uživatele jsme implementovali funkce řady grafických GUI knihoven, včetně pásu karet Ribbon představeného v Office 2007. Pro samotný vývoj využíváme Visual Studio 2008 a Team Foundation Server pro verzování zdrojových kódů a Microsoft Office Groove pro sdílení nejrůznějších dokumentů v rámci týmu.
Využitelnost v praxi Snažili jsme se navrhnout systém, který by mohl pomoci odborníkům při plánování omezení provozu, řešení nových komunikací a obchvatů, ale zároveň by dokázal informovat širší veřejnost dostatečně srozumitelnou formou o problémech s tím spojených. Díky synchronizačnímu jádru může na jedné mapě pracovat více lidí najednou ve stejný čas a vytvořit tak podmínky pro práci i větších týmů. Díky striktnímu rozdělení částí aplikace na uživatele / designéra / administrátora / vývojáře je možné realizovat často požadované řešení, kdy s programem pracuje řada lidí, administrátor se stará o samotný chod systému a vývojář může být externista, který administrátorovi předává hotové moduly. Navíc v současné době jednáme s lidmi, kteří by v budoucnu mohli produkt využívat a snažíme se reagovat na jejich názory a postřehy. Naším cílem je, aby byl systém plně využitelný i mimo testovací a předváděcí rovinu. Na závěr bychom rádi uvedli několik firem a organizací, kteří nám s realizací pomohli: IMAGINE CUP 2008 | 14
IMAGINE CUP 2008 | 15
KATEGORIE: SOFTWARE DESIGN | Brotherhood of .NET | • • • •
FOSS Software – s touto zahraniční firmou jsme navázali kontakt a náš projekt se jim zdál natolik zajímavý, že nám poskytli zcela zdarma komponentu ElegantRibbon pro tvorbu pásů karet. Český zeměměřičský úřad – ochotně nám poskytnuli mapové podklady a ortofotomapy. Správa a údržba silnic Třebíč – poskytnutí statistik počtů aut jako přesný podklad pro simulaci provozu ve městě Třebíči. T-mapy s.r.o. – poskytnutí výškové mapy města Třebíče a okolí.
KATEGORIE: SOFTWARE DESIGN | Floreon-DIP |
DIP (Disaster Prevention System) Tým
Floreon-DIP
Škola
VSB-TU Ostrava
Mentor Řešitelé
Petr Heinz, Dalibor Janckulik, Tomáš Kocyan
1 Motivace Příroda je součástí našeho života. Nedokážeme přežít bez ní, ale přesto nám občas znepříjemňuje život. Požáry, povodně, půdní sesuvy, globální oteplování, kontaminace – jen několik příkladů problémů, se kterými se setkáváme dnes a denně. Lidé se s přírodou snaží od nepaměti bojovat, ale ani v dnešní moderní době těmto jevům nedokážeme zcela zabránit, ba naopak, našim životním stylem k nim ještě napomáháme. Existuje způsob, jak s těmito jevy bojovat? Tuto otázku si jistě klade spousta z nás. Bohužel tyto problémy nikdy definitivně neodstraníme. Díky moderním technologiím a dlouholetému výzkumu, se ale můžeme pokusit eliminovat jejich dopad a v krizových situacích pomoci bezprostředně ohroženým lidem. Tuto práci jsme se rozhodli věnovat vývoji znalostního systému pro minimalizaci dopadů souvisejících s přírodními riziky a globální změnou klimatu. Cílem je navrhnout a vytvořit systém, sloužící k výměně informací mezi organizacemi či jedinci zabývajícími se popisovanou problematikou, a to jak na profesionální, tak laické úrovni. Dále jsme se zaměřili na vizualizaci uživatelského rozhraní pomocí moderních technologií, jakými jsou Windows Presentation Foundation a stále populárnější AJAX.
2 Projekt DIP Tento projekt se zabývá návrhem a následnou implementací systému, který by byl schopen varovat před následky přírodních katastrof, případně v krizových situacích doporučit vhodná opatření a tím odstranit, nebo alespoň minimalizovat hrozící následky. Celá architektura je vyvíjena modulárně a jakákoli část je zaměnitelná pro rozšíření systému, či zvýšení jeho efektivity. Pro dosažení výše uvedené funkcionality bude systém obsahovat následující funkce: • • • • • IMAGINE CUP 2008 | 16
definice přírodních jevů, jejich hierarchie, vlastností a chování, vkládání již vyřešených případů řešících určitou krizovou situaci, vyhledání a odvození řešení na základě již vložených případů, označení věrohodnosti případů a jejich řešení, vytvoření hierarchie uživatelů odvozené z jejich znalostí v daném oboru. IMAGINE CUP 2008 | 17
KATEGORIE: SOFTWARE DESIGN | Floreon-DIP |
KATEGORIE: SOFTWARE DESIGN | Floreon-DIP |
2.1 Architektura systému Architektura budovaného systému je rozložena do následujících šesti základních částí, jak je patrné z ObrázkuObrázek 1.
3 Uživatelé systému
Základním prvkem se stává tzv. případ (neboli Case), který je charakterizován jako svislý průřez celou architekturou, neboť je identifikován pomocí kombinace prvků všech vrstev. Volně tak může být případ definován jako:
•
Uživatel, který zadá do systému jev, jenž na určitém území způsobil určité škody nebo následky. Způsob, jakým se situace vyřešila, může být více či méně věrohodný. Na základě těchto nasbíraných dat je systém schopen aplikací metodiky Case Based Reasoning odvodit řešení pro nové případy a pomoci tak uživatelům s jejich zvládáním. Přesnost odhadu se samozřejmě bude přímou úměrou zvyšovat s počtem případů již zadaných do systému.
Hlavním prvkem celé architektury se stávají uživatelé sloužící jako hlavní zdroj informací. Podle jejich interakce se systémem a jejich zkušeností je můžeme rozdělit do následujících tří skupin.
•
•
Anonymní uživatel ◦ Osoba, která si může systém prohlížet a vkládat nové případy. Nemůže se ovšem zúčastnit hodnocení a činností souvisejících s přihlášením do systému. Registrovaný uživatel ◦ Dědí všechny možnosti uživatele anonymního s tím rozdílem, že díky jehon uživatelskému jménu jsme schopni sledovat jeho aktivitu, dovednost v jednotlivých oblastech a dovolit mu hlasování o věrohodnosti ostatních případů. Dále může být automaticky informován o změnách a možných ohroženích v zájmových oblastech. Expert ◦ Expert je uživatel s nejvyšším oprávněním. Jeho případy a veškerá činnost v systému je brána jako důvěryhodná.
4 Jevy Jednou z klíčových částí celého systému jsou jevy. Na základě jejich síly působení na určitém území je systém schopen dohledat ve stávajících případech podobné situace a z těch odvodit možné škody a následky. 4.1 Jevy a jejich kategorie Aby bylo možné systém vyvíjet modulárně a nezávisle na jevech, rozhodli jsme se, že jevy budou v systému členěny do skupin a uloženy v databázi. Celou hierarchii jevů si pak můžeme představit například jako strom na obrázku 2.
IMAGINE CUP 2008 | 18
IMAGINE CUP 2008 | 19
KATEGORIE: SOFTWARE DESIGN | Floreon-DIP |
KATEGORIE: SOFTWARE DESIGN | Floreon-DIP |
Kategorie jsou díky stromové struktuře přehledné a jednoduše se s nimi pracuje. Není problémem přidávání listů, či větví, jejich editace, případné mazání. Každý list potom s sebou nese ještě podrobnější popis, aby při výběru bylo uživateli co nejvíce ulehčeno rozhodování, jakou kategorii jevu právě hledá. Každá kategorie dále obsahuje informaci o jednotkách, v kterých se měří. Uživatel při práci s kategoriemi může vybrat jen listy stromu, které právě mají výše zmíněné informace. 4.2 Intenzita jevu Abychom mohli odlišovat intenzitu působení jednotlivých jevů, je každý z nich rozdělen do několika stupňů intenzity. Tyto stupně byly zvoleny buď po konzultaci s odborníky, nebo podle již známých způsobů měření síly daného jevu. 4.3 Váhové vektory jevů Váhový vektor je součástí každé koncové kategorie jevů. Tyto vektory určují důležitost jednotlivých aspektů při porovnávání dvou případů. Základní váhový vektor neboli vektor pro celý případ, určuje důležitost kategorie, síly a doby trvání jevu a důležitost území, na kterém jev působí. Váhový vektor pro území slouží k porovnání podobnosti území. Poslední váhový vektor má za úkol určit podobnost krajinného pokryvu dvou případů.
5 Odvození řešení a následků Námi vyvíjený systém DIP není jenom skladištěm zaznamenaných případů z minulosti, nýbrž je schopen na základě zkušeností inteligentně odvodit řešení pro situace, které aktuálně hrozí. Výběr nejvhodnějších opatření probíhá pomocí metodiky CBR a jeho průběh je znázorněn na obrázku 3. Činnost (algoritmus) vyhledání jevu je dá shrnout do následujících bodů:
6 Implementace Aplikační logika celé architektury je přesunuta na server, kde jsou jednotlivé metody dostupné pomocí webové služby. Docílili jsme tak konektivity ze všech druhů zařízení a zároveň i normalizovali a zefektivnili přístup k datům.
a) Uživatel vybere z nabídky jev, který ho bezprostředně ohrožuje, oblast jeho působení, intenzitu, předpokládanou délku trvání a další parametry, které jsou popsány ve scénářích výše. b) Systém následně dohledá všechny případy, které se týkají podobné situace, s odpovídajícími informacemi popisující území. c) Systém dohledá všechna řešení, která kdy byla u takového jevu použita. d) Systém sestaví odvozovací matici a vyhodnotí seznam vhodných opatření. e) Systém sestaví odvozovací matici a vyhodnotí seznam možných následků a škod.
IMAGINE CUP 2008 | 20
IMAGINE CUP 2008 | 21
KATEGORIE: SOFTWARE DESIGN | EkoMap |
KATEGORIE: SOFTWARE DESIGN | Floreon-DIP | Architektura je díky tomuto rozložení nezávislá na platformě a je připravena v budoucnu na další rozšíření. Již nyní se skládá z těchto částí: • DIP Communication Service ◦ Tvoří mozek celého systému. Je zde ukryta veškerá logika a přístup k datům. Tuto část systému poskytuje webová služba. • Webová aplikace v ASP.NET ◦ Umožňuje komplexní práci se systémem, která zahrnuje jak uživatelskou, tak iadministrační část. • Aplikace ve Windows Presentation Foundation ◦ Realizuje vybrané scénáře uživatelské části využitím nové technologie, která umožňuje tvořit uživatelsky příjemná rozhraní. • Mobilní aplikace na platformě Windows Mobile ◦ Aplikace umožňující vykonání vybraných scénářů přímo v terénu, kombinací přenosného počítače a přijímače GPS signálu.
EkoMap Tým
EkoMap
Škola
Masarykova universita, Fakulta informatiky
Mentor Řešitelé
Petr Uhlíř, Josef Vondráček, Jan Vostál
Anotace projektu EkoMap
Úvodem
7 Závěr Tvorbou tohoto systému reagujeme na rizika poslední doby, která hrozí nejen na území naší republiky. Díky systému DIP mohou jeho uživatelé pružněji reagovat na nastalé situace, vyřešit daný problém rychleji a tím chránit přírodu.
•
Systém DIP ve spojení s jednoduchou obsluhou a širokou dostupností pro každého uživatele nabízí nové možnosti způsobu vyhledání pomoci v nouzi.
•
•
•
•
IMAGINE CUP 2008 | 22
Životní prostředí je nedílnou součástí lidského života a jako takové si zasluhuje naši pozornost, která se jím čím dál víc skutečně zabývá. Přírodní bohatství už není bráno automaticky jako něco samozřejmého, ale uvědomujeme si naše vlivy na stav životní prostředí a hledáme způsoby jak je zmírnit. Samotné odhodnocení kvality prostředí, které nás obklopuje je nelehkým úkolem, neboť vyplývá ze spokojenosti jedince s jeho stavem. Tyto názory se vytváří lokálně v přírodě nejbližšího okolí našeho kraje, města, či vesnice. Můžeme se setkat se znečištěnými řekami, ale i průzračně čistou vodou, nebo se v našem okolí nachází nějaká skládky, či na zahrádce nám vyrostl chráněný druh rostliny. Všechny tyto a další elementy spoluutvářejí vztah k našemu okolí a od něj odvozeného chování. Politika trvale udržitelného rozvoje se snaží dosáhnout ekonomického vývoje bez nebo s minimálními dopady na životní prostředí, ale jako taková je založena především na postoji lidí k přírodě a svému okolí. Nová spotřební kategorie ekologických produktů staví své hodnoty především na šetrném chování k životnímu prostředí a jejich konkurence schopnost určuje, jak vysoko si toho lidé cení ve svém žebříčku hodnot. Největší podíl na tvorbě životního prostředí mají ekologické organizace, jejíž členové se denně v přírodě pohybují, pozorují chování místních ekosystémů a pomáhají jim zvládnout problémy, s kterými si jinak příroda sama poradit neumí. Nemalý podíl na kvalitě svého okolí má však každý člověk a je jen na něm rozhodnout se jestli chráněnou květinu utrhne, nebo ji nechá, či jestli vyhodí prázdnou pet láhev hned, nebo až v příslušné žluté popelnici. Jedním z hlavních problémů dnešního světa je stále se snižující biodiversita a s tím související seznamy ohrožených rostlinných i živočišných druhů, které se vyskytují jen vzácně a často jsou svazovány jen s určitou lokalitou, kde jsou schopny přežívat a není je možné přemisťovat. Narušení takové lokality může mít často velmi vážný vliv na zachování takového ohroženého druhu a proto je zapotřebí k ní přistupovat s maximální opatrností. Dalším velmi aktuálním problémem zůstává recyklovatelnost odpadových materiálů, zavedením ekologické odpadové politiky v městech a obcích se zvýšil podíl recyklace použitých materiálů, ale stále představuje jen nízké procento, stále ještě chybí dostatečné množství informací o recyklaci elektronických odpadů, z kterých se dá znovu zpracovat okolo 90% materiálu.
IMAGINE CUP 2008 | 23
KATEGORIE: SOFTWARE DESIGN | EkoMap |
O projektu •
•
•
KATEGORIE: SOFTWARE DESIGN | EkoMap | •
Projekt Ekomap umožňuje uživateli určit svoji polohu bez složitého vyhledávání v rozkládací mapě a hledání nějakých orientačních bodů, ale vystačí si s PDA s příslušným GPS lokátorem. Svoji pozici si uživatel může uložit spolu s příslušným komentářem a tím zaručí, že příště příslušnou lokalitu opět najde a po promítnutí uložených změn do celkové databáze zajití, aby to ostatní nepřehledli. Display PDA zařízení kromě mapy ukáže uživateli příslušné údaje z nejbližšího okolí uložené ostatními uživateli. Na svém počítači uživatel spravuje stav svých vlastních dat, komunikuje s ostatními uživateli a může si prohlížet shromažďovaná data hned dvojím způsobem, buď hledáním konkrétního místa v mapě, nebo přes celkový seznam všech uložených dat podle typu hledaného výskytu. Pokud uživatel nemá k dispozici přímo aplikaci může se k databázi informací připojit přes webové rozhraní, které poskytuje stejné možnosti jako samotný program přes HTML rozhraní.
•
•
ekologické organizace ◦ Nepostradatelnou úlohu v péči o přírodní bohatství představují ekologické organizace, které svými aktivitami dopomáhají k lepšímu stavu krajiny a pořádáním akcí pro veřejnost umožňují, aby se i ostatní lidé mohli k jejich úsilí připojit. znečišťovatelé ◦ Výraznou měrou se na stavu prostředí podílejí i továrny produkující nejrůznější látky od skleníkových plynů až po látky vypouštěné do řek. Tyto továrny jsou spjaty s konkrétními místy a jejich působení se projevuje na stavu životního prostředí v okolí, a tak je velmi důležitá jejich návaznost na výskyt ohrožených druhů živočichů a rostlin. skládky ◦ Dalším důležitým faktorem ovlivňujícím životní prostředí je výskyt skládek odpadů. Důležitou informací jsou rovněž výskyty sběrných dvorů na elektronický odpad, který je možné dále zpracovávat a nemusí zůstat bez užitku ležet po tisíce let
Hlavní předmět obsahu •
•
•
•
chráněné rostliny ◦ Ohrožené druhy rostlin jsou často velmi pevně svázány s jedním prostředím, určitým klimatickými i půdními podmínkami a jejich výskyt je natolik vzácný, že si zasluhují zvýšenou péči a opatrné zacházení. chránění živočichové ◦ Vzácné druhy zvířat jsou na seznamech ohrožených často kvůli bezohlednému přístupu a špatné informovanosti v otázkách jejich výskytu. ekofarmy a ekologičtí výrobci ◦ Ekologické chování v zemědělství do značné míry ovlivňuje zdraví okolního prostředí, ať už se jedná o čistotu řek, či stav organismů a živočichů v bezprostředním okolí. U producentů potravin a spotřebního zboží je obzvlášť důležité poukázat na šetrné chování firem na jedné straně a levnější, ale přírodu víc narušující chovní na straně druhé. ekologické produkty ◦ Existuje celá řada výrobků vyráběných bez chemických přísad a budoucí odhady hovoří o stále výraznějším nárůstu těchto produktů.
IMAGINE CUP 2008 | 24
Cíle Náš projekt si neklade nic jiného za cíl než významnou měrou přispět k zlepšení stavu našeho životního prostředí a přístupu k hodnotám, které kvalitní stav okolí znamená.
Nástroje Každý člověk má jiný přístup k hodnotám, které zdravé životní prostředí představuje, a informacím o něm. Tyto vzájemné odlišnosti se projekt Ekomap snaží společně propojit v ucelený systém informací o konkrétní lokalitě a stavu prostředí na určitém místě. Aplikační logika rozlišuje údaje systémem klíčů s určitými právy přístupu pro konkrétní osoby, úřady, či organizace a podniky. Každý subjekt má různé informace o stavu celého systému a obvykle jedna vychází z druhé a přistupuje k nim strana třetí. Úřady jednotlivých měst a krajů mají nejrůznější povinnosti evidencí zatímco další subjekty k těmto informacím potřebují mít přístup, jenomže neexistuje místo, které by pojalo tyto informace do větší šíře za okraj IMAGINE CUP 2008 | 25
KATEGORIE: SOFTWARE DESIGN | EkoMap | územní samosprávy. Dalšími klíčovými oblastmi jsou podniky, které propagují výrobky vlastními prostředky jako celek, ale na zdůraznění kroků podnikaných v oblasti ochrany životních prostředí už chybí potřebné, nebo o tyto údaje ani zákazník nestojí, a to především, protože skutečně relevantní hodnotu tato data získají na váze až v porovnání s ostatními výrobci v rámci širšího srovnávání. Neméně podstatnou součástí celého projektu jsou ekologické organizace, které jednotlivým uživatelům představují své aktivity a často i nabízejí možnost zapojení se do nějaké obecně prospěšné aktivity. Tyto organizace mají často přehledy o velkém množství dat vypovídajících o kvalitě určité lokality, ale i možnostech na její zlepšení. Poslední klíčovou oblast představuje jednotlivý uživatel, který má přístup k vlastním zkušenostem a zážitkům vztahujícím se k určitému místu a určitě i nemalé množství fotografií, které mohou ilustrovat obrázek životního prostředí v určitém kraji. Podle hodnoty klíče jsou jednotlivý uživatelé připouštěni do určitých sekcí, které odpovídají jejich vlastním informacím poskytovaným systému a dále přistupují ke společné části sdílení informací, mezi nimiž jsou fotografie, vlastní komentáře a mapa celého světa, ve které je možné dohledat k určitým datům přesná místa, s nimiž se skutečně pojí.
KATEGORIE: SOFTWARE DESIGN | Housekeeper .NET |
Housekeeper Tým
Housekeeper
Škola
Technical University of Liberec
Mentor Řešitelé
Martin Vitouš, Tomáš Flekna
Hierarchie programu V rámci druhého kola soutěže Imagine Cup 2008 Vám v tomto dokumentu chceme představit architekturu a funkčnost našeho projektu. Naší snahou je zvýšení komfortu uživatelů domů a zlepšení jejich životního prostředí. Zároveň řešíme pouze základní funkce, které mohou být dále jednoduše a dle potřeb rozšířeny. V rámci celého projektu využíváme technologie Visual Studio 2005, SQL Server 2005 a XNA Game studio 2.0.
Celý projekt je rozdělen do několika části, které jsou znázorněny na následujícím schématu:
Hierarchie programu • •
•
Program na PDA je základní jednotkou pro sbírání dat přímo v přírodě, kde se automaticky vážou k určitému místu. Program na osobní počítač obstarává základní komunikaci s PDA zařízením přes XML data a komunikuje přes webovou službou se serverovou databází. Program zpracovává a uchovává všechna uživatelská data, zajišťuje nové aktualizace a poskytuje možnost přidávat data, která nebyla lokalizována pomocí GPS, ale uživatel je sám přiřadí určité lokalitě. ◦ Oba programy jsou vytvořeny v jazyku Visual Basic a využívají Google Maps API Webová stránka je poslední částí programu, která umožňuje uživateli hned po přihlášení spravovat svá data přímo přes internet. Stránky jsou ve formátu HTML, přičemž využívají RSS feedy pro okamžitou aktualizaci přidávaných dat na uživatelských RSS čtečkách a s využitím technologie Ajax může uživatel provádět velké množství operací, aniž by musel čekat na odpověď serveru a opětovné načtení stránky
Použité technologie.NET Framework 2.0.NET Compact Framework ◦ ◦ ◦ ◦
Web service SQL Server 2005 Managed Direct X 9.0 Google Maps API
IMAGINE CUP 2008 | 26
IMAGINE CUP 2008 | 27
KATEGORIE: SOFTWARE DESIGN | Housekeeper .NET |
KATEGORIE: SOFTWARE DESIGN | Housekeeper .NET |
1 Komunikace mezi prvky v systému
3 Databáze
Projekt je založený na síťové komunikaci přes lokální síť a následně i přes Internet. Pro lokální síť se počítá s použitím technologie Ethernet, ale je možné použít i jiné síťové technologie. Ke komunikaci mezi serverem a uživatelským rozhraním a také mezi serverem a hardwarem pro řízení domu (který je v tomto projektu nahrazen virtuální simulací) se využívá technologie.NET Remoting. Pro komunikaci se vzdáleným uživatelským rozhraním se navíc používá aplikace Windows Live Messenger, která je schopna velmi rychle předávat zprávy v rámci celého Internetu. Původně jsme zde uvažovali o webovém serveru v rámci lokální sítě, ale toto řešení by nebylo možné použít u připojení lokální sítě k Internetu, která nemají vlastní veřejnou IP adresu.
Databáze použitá v tomto projektu pracuje na databázovém serveru Microsoft SQL Server 2005. Jako většina databází obsahuje tabulky s daty a k nim přidané procedury a funkce pro práci s těmito daty.
2 Server Jádrem celého systému je server, který zajišťuje komunikaci mezi uživatelským rozhraním na jedné straně a hardwarem pro řízení domu na straně druhé. Jak již bylo řečeno, využívá k tomu technologii.NET Remoting. Zatímco server vlastní instanci objektu RemoteServer, kterou vytvoří při spuštění, jednotliví „klienti“ vlastní instance objektu RemoteGUI popřípadě RemoteHW. Navázání spojení mezi serverem a klienty potom funguje následovně: • • •
Server vytvoří TCP kanál na známém portu a vytvoří na sebe referenci se známým URI. Klient také vytvoří TCP kanál, ale na náhodném portu. Klient podle známého URI získá přes TCP referenci na server a předá mu referenci na sebe.
Komunikace mezi klientem a serverem potom vypadá tak, že klient volá „na dálku“ metodu serveru a naopak. Vlastní komunikace mezi uživatelským rozhraním a hardwarem vypadá takto: • • • • • • • • • •
Uživatel chce provést akci (otevřít dveře), v uživatelském rozhraní provede patřičné kroky. Uživatelské rozhraní zavolá metodu Action své instance RemoteGui. RemoteGui zavolá „na dálku“ metodu RemoteAction instance RemoteServer. RemoteServer zavolá „na dálku“ metodu RemoteAction všech instancí RemoteHw. RemoteHw vyvolá událost OnAction. Hardware zpracuje událost (např. otevře dveře), čímž změní stav objektu, a zavolá metodu StatusChange své instance RemoteHw. RemoteHw zavolá „na dálku“ metodu RemoteStatusChange instance RemoteServer. RemoteServer zavolá „na dálku“ metodu RemoteStatusChange všech instancí RemoteGui. RemoteGui vyvolá událost OnStatusChange. Uživatelské rozhraní o této změně stavu informuje uživatele.
Takto by vypadala ukázková komunikace, ale v mnoha případech tento cyklus není uzavřený. Například uživatel požaduje akci, která již byla vykonána a hardware ji již znovu neprovede a tudíž se ani neodešle zpráva o změně stavu. Jiným příkladem, který nastává častěji, je změna stavu objektu bez akce uživatele (např. někdo otevře dveře ručně). Do komunikace mezi uživatelským rozhraním a hardwarem také zasahuje databáze. Instance objektu RemoteServer nejenom, že pošle zprávu dál v již zmíněném cyklu, ale navíc ještě zavolá proceduru v databázi. Ta může vytvořit další akce a změny stavu, které server dále rozešle klientům. O tom jak tyto akce a změny stavu vznikají, bude zmínka v kapitole o databázi.
IMAGINE CUP 2008 | 28
Tabulky se dají rozdělit do několika skupin: 3.1 Objekty v domě a stavy objektů uspořádané po patrech Tyto tabulky se využívají k uložení okamžitého stavu domu. Jsou zde informace o patrech, objektech a jejich stavech. Tato část databáze se naplňuje při inicializaci databáze pomocí administračního rozhraní. Při běhu serveru se pouze mění hodnoty jednotlivých stavů objektů. 3.2 Uživatelé a uživatelské role v systému V této části databáze, jsou uloženy informace o uživatelích systému. Jsou používány k autorizaci uživatelů používajících rozhraní pro správu systému. 3.3 Historie akcí a změn stavů Zde se ukládají zprávy informace o zprávách v systému. Na jejich základě je možné určit k jakým akcím a změnám stavů v domě v minulosti docházelo. Tyto informace je možné uložit do souboru pro archivaci. 3.4 Logika reakcí na změny stavů Tato část databáze má vliv na automatické reakce systému na změny stavu objektů v domě. Tento proces funguje následovně: • Server dostane zprávu o změně stavu objektu • Spustí v databázi proceduru proc_StatusChange a předá ji údaje o změně stavu • Procedura uloží změnu stavu do databáze • Prochází seznam chování systému a hledá podmínky, které jsou splněny díky změně stavu • Pokud takovou najde, vrátí serveru údaje o příslušné akci, která se má provést • Server rozešle zprávy o všech akcích, které se mají provést Existuje zde několik typů podmínek – jednoduché (porovnání stavu s hodnotou, dvou stavů navzájem) a složené (logický součin podmínek, logický součet, negace podmínky). 3.5 Časové plánování akcí Pomocí této části databáze je možné naplánovat provádění akcí v budoucnu a to hned v několika typech časových plánů: • Okamžitý – akce se provede jednou v přesně nastavený den a čas • Denní – akce se provede každý den v určený čas • Týdenní – akce se provede ve vybrané dny v týdnu v určený čas • Měsíční – akce se provede ve vybraný den v měsíci v určený čas • Roční – akce se provede ve vybraný den v roce v určený čas
IMAGINE CUP 2008 | 29
KATEGORIE: SOFTWARE DESIGN | Housekeeper .NET |
4 Správa systému V rámci projektu se snažíme zpracovat dva způsoby ovládání. Prvním z nich je lokální tlustý klient, který umožňuje kompletní správu celého objektu. Tento vytváříme v jazyce C# s využitím některých opensource knihoven, např. pro vytváření ZIP balíčků. Celý program pracuje s objekty (dům/byt) jako s projekty. Klient pak může mít několik přednastavených projektů a dle potřeby nahrávat na server aktuální šablonu obsahující nastavení celého systému. Tento způsob je však vhodný i pro vytváření pomocí externího dodavatele SW řešení. Tomuto napomáhá i možnost importu a exportu projektů, které jsou mimo systém prezentovány jako ZIP archívy a není problém udělat i do zabaleného archívu projektu požadované změny, jelikož jednotlivé soubory jsou neustále dostupné. Hlavní program umožňuje funkčnost, jako je okamžité ovládání a dohled nad celým objektem (např. dveře, okna, světla, klimatizace). Skrze jednoduché schéma, které má místo ovládaných prvků tlačítka, umožňuje program kontrolovat dění v celém objektu bez nutnosti fyzické přítomnosti majitele či správce objektu. Program samozřejmě nepotřebuje ke své funkčnosti ani stálý dohled majitele objektu. Náš systém je vybaven plánovačem úloh, který umožňuje nastavení akce pro určitý den, hodinu, minutu. Tyto akce může uživatel přednastavit buď pouze pro jedno použití, nebo pro cyklické spouštění procesu v rámci dnů, týdnů apod. V rámci celého domu lze aktivovat zabezpečovací zařízení, které při porušení vnějšího perimetru spustí poplach, popřípadě jinou uživatelem definovanou funkci. Prostředí pro správu objektu je vázáno pouze na určité uživatele, kteří se autorizují pomocí přihlašovacího jména a hesla. V tuto chvíli rozlišujeme uživatelské oprávnění administrátor, který má přístup ke všem funkcím rozhraní, a sekundární oprávnění user, který může být použit pouze pro monitorování dění v objektu.
KATEGORIE: SOFTWARE DESIGN | Housekeeper .NET | Druhou část tvoří aplikace, kterou je možno spouštět ve WLM, umístěném na počítači připojeném do sítě Internet mimo lokální síť. Uživatel tohoto počítače zahájí konverzaci s uživatelem, který je připojen na počítači s aktivovaným doplňkem (viz první část). Dále spustí aplikaci a zobrazí se mu grafické rozhraní, pomocí něhož může sledovat a ovládat dění v domě. Pokud provede nějakou akci, aplikace pošle zprávu pomocí WLM a doplněk na druhém konci ji zpracuje a přepošle. Doplněk zároveň zpracovává zprávy z lokální sítě a přeposílá je pomocí WLM, tyto potom spuštěná aplikace zobrazí uživateli.
6 Řízený dům Vzhledem ke značným finančním nárokům na stavbu reálného objektu jsme se rozhodli nechat náš program ovládat pouze simulaci, kterou vytváříme pomocí XNA Game Studia v. 2.0. Jedná se o 3D simulaci domu se všemi výše popsanými prvky, kde se uživatel může pomocí klávesnice a myši pohybovat a rozhlížet. Uživatel může zároveň interagovat s objekty, které to umožňují. Tato interakce se provádí pomocí funkčních kláves. Pokud se uživatel přiblíží nadosah objektu, objeví se v horní liště jméno tohoto objektu a u něj příslušná funkční klávesa. Naráz může být zobrazeno více objektů. Pokud uživatel stiskne funkční klávesu, zobrazí se mu v horní liště seznam akcí, které může s daným objektem provést a k nim příslušné funkční klávesy. Uživatel si vybere a provede akci, změna se projeví v simulaci (např. otevřou se dveře) a zároveň se serveru odešle zpráva o směně stavu pomocí instance objektu RemoteHw vlastněného simulací domu. Na druhou stranu, pokud někdo provede akci pomocí uživatelského rozhraní správy systému nebo vzdálené správy, instance objektu RemoteHw dostane zprávu od serveru a předá tuto zprávu simulaci, která ji zpracuje a provede akci.
Pro rychlejší zorientování se v programu postupně s přidáváním jednotlivých funkcí zapracováváme změny i do nápovědního systému aplikace. Celé administrační rozhraní je lokalizováno v základě do dvou jazyků a to do češtiny a angličtiny. Realizace této funkčnosti je skrze XML konfigurační soubory, které jsou umístěny v rámci zdrojových adresářů aplikace. Překladem stávajícího konfiguračního souboru do jiného jazyka a jeho umístěním do správného adresáře lze ihned získat možnost používat další jazykovou mutaci rozhraní.
5 Vzdálená správa Druhým způsobem ovládání je rozhraní implementované do programu Windows Live Messenger (WLM), jako rozšiřujícího modulu. Tento program pracuje dostatečně robustně, bezpečně, spolehlivě a v celosvětovém měřítku je i velmi rozšířený. Navíc nemusíme řešit problém s připojením na Internet pomocí veřejné IP adresy. Toto řešení se skládá ze dvou částí. První část představuje doplněk WLM, který běží na počítači uvnitř lokální sítě v domě. Tento doplněk vlastní instanci objektu RemoteGui, který je schopen komunikovat se serverem a potažmo s hardwarem řídícím dům po lokální síti.
IMAGINE CUP 2008 | 30
IMAGINE CUP 2008 | 31