Source: http://docplayer.cz/541541-Analyza-a-reseni-systemu-pro-monitoring-isir-a-vybranych-registru-ares.html
Timestamp: 2016-12-09 18:08:38+00:00

Document:
⭐ANALÝZA A ŘEŠENÍ SYSTÉMU PRO MONITORING ISIR A VYBRANÝCH REGISTRŮ ARES
Download "ANALÝZA A ŘEŠENÍ SYSTÉMU PRO MONITORING ISIR A VYBRANÝCH REGISTRŮ ARES"
1 Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Katedra informačních technologií Studijní program : Aplikovaná informatika Obor: Informační systémy a technologie ANALÝZA A ŘEŠENÍ SYSTÉMU PRO MONITORING ISIR A VYBRANÝCH REGISTRŮ ARES DIPLOMOVÁ PRÁCE Student : Jan Faltis Vedoucí : Doc. Ing. Jan Pour, CSc. Oponent : Ing. Lucie Poludvorná 20122 Prohlášení Prohlašuji, že jsem diplomovou práci zpracoval samostatně a že jsem uvedl všechny použité prameny a literaturu, ze které jsem čerpal. V Praze dne 2. května Jméno a příjmení studenta3 Poděkování Rád bych poděkoval Doc. Ing. Janu Pourovi, CSc. za cenné rady, připomínky, trpělivost a za odborné vedení při psaní mé diplomové práce.4 Abstrakt Diplomová práce se zabývá analýzou požadavků, návrhem a implementací Systému pro monitoring insolvenčního rejstříku a obchodního rejstříku ze systému administrativního registru ekonomických subjektů. Systém je navržen tak, aby bylo možné přidávat následně podle poptávky další zdroje pro monitoring. Práce definuje vlastní metodiku pro tvorbu Systému pro malou Společnost s důrazem na pochopitelnost navrženého řešení zákazníkem. V práci nejprve vždy analyzuji požadavky na Systém, následně formuluji několik modelů vždy s nižší úrovní abstrakce a na základě těchto modelů vytvořím implementaci Systému pomocí několika funkčních přírůstků. Klíčová slova ISIR, ARES, databáze, monitoring, analýza, implementace, model, metodika,.net, proces, webová služba5 Abstract This diploma thesis deals with the analysis of the requirements, design and implementation of the System for monitoring of insolvency register and commercial register from administrative register of economical subjects. The system has an extendable design which allows further sources to be added at a later date to suit the client s needs. The design process is oriented at small business customers and emphasises the need for simplicity and understandability of the marketed solution. System requirements are analysed first, subsequently, several models with decreasing levels of abstraction are formulated and the System is then implemented, according to these models, using several funkcional increments. Keywords ISIR, ARES, database, monitoring, analysis, implementation, model, method,.net, process, web service 16 Obsah 1. Úvod Vymezení tématu práce a důvod výběru tématu Cíle práce a způsob jejich dosažení Způsob/metoda dosažení cíle Předpoklady a omezení práce Struktura práce Výstupy práce a očekávané přínosy Charakteristika oblasti Charakteristika oblasti správy pohledávek Charakteristika oblasti správy pohledávek ve Společnosti Komentovaná rešerše prací Principy a modely řízení podnikové informatiky [6] Extrémní programování [7] Metodiky budování informačních systémů [8] Podniková informatika [9] Návrhové vzory [10] Metodika vývoje IS s pomocí nástroje Power Designer [11] Metodika práce Analýza a návrh Analýza/model obsahový Analýza/model technologický Analýza/model implementační Implementace Zavedení do provozu Provoz a užití Analýza/model obsahový ISIR Analýza Základních požadavků Společnosti Analýza ISIR7 Definice ISIR a jeho obsahu Popis možností přístupu do ISIR Analýza požadavků společnosti na navržené řešení Datové úložiště Aktualizační program Monitorovací program Webová služba prohledávání Tvorba Demo verzí Aktualizační program Monitorovací program Specifikace entit Analýza možností ISIR Základní popis Věc Událost a akce Poznámka Poznámky a události/akce Typické akce Datový model Volání webové služby Rozhraní webové služby Poznámka Událost Věc Osoba Adresa Návrh datové základny Analýza/model technologický ISIR Architektura Systému8 Lehký klient a tlustý server Tlustý klient a lehký server Úložiště dat Relační databáze Objektová databáze Relačně-objektová databáze Volba technologie Webová služba prohledávání Volba technologie Detailní popis webové služby Aktualizační program Platforma.NET Platforma Java Volba technologie Detailní popis aktualizačního programu Monitorovací program Volba technologie Detailní popis monitorovacího programu Analýza/model implementační ISIR Úložiště dat Kritéria rozhodování Microsoft SQL Server MySQL Volba úložiště Fyzický datový model Obhajoba řešení fyzického modelu Aktualizační a monitorovací program Volba konkrétního programovacího jazyka Implementace ISIR9 8.1. Přírůstek Tvorba databáze Tvorba aktualizačního programu Testování prvního přírůstku Nasazení prvního přírůstku Výstupy prvního přírůstku Přírůstek Tvorba webové služby vyhledávání Testování druhého přírůstku Výstupy druhého přírůstku Přírůstek Tvorba monitorovacího programu Interní testování třetího přírůstku Akceptační testování přírůstku u třetí strany Nasazení programu monitoringu Výstupy třetího přírůstku Provoz a užití ISIR Analýza/model obsahový ARES Analýza základních požadavků Společnosti Analýza ARES Definice ARES Přístup ke zdrojům ARES Definice rozhraní ARES Návrh řešení monitoringu ARES Využití databáze Návrh úpravy monitorovacího programu Analýza/model technologický ARES Architektura Systému Monitorovací program10 Komunikace se službou ARES Procedurální popis funkcionality Model tříd monitorovacího programu Analýza/model implementační ARES Implementace ARES Přírůstek Úprava databáze Úprava monitorovacího programu Interní testování čtvrtého přírůstku Akceptační testování čtvrtého přírůstku u třetí strany Provoz a užití upraveného Systému Závěr Terminologický slovník Seznam Literatury Seznam obrázků Seznam tabulek11 1. ÚVOD 1.1. Vymezení tématu práce a důvod výběru tématu Tématem diplomové práce je analýza požadavků, návrh a implementace systému pro monitoring Insolvenčního rejstříku, dále jen ISIR, a vybraných částí Administrativního registru ekonomických subjektu, dále jen ARES. Konkrétní vyvíjený informační systém bude dále označován jako Systém, jeho komponenty potom podle svého účelu. Práce je prováděna pro malou společnost, která vyvíjí informační systémy pro správu pohledávek a tyto potom prodává dalším společnostem. Specifikace Systému budou určeny zástupcem Společnosti v průběhu tvorby Systému. Pro téma práce jsem se rozhodl z několika důvodů. Prvním je potřeba daného Systému ve Společnosti a zároveň i možnost prodeje Systému třetím stranám, tedy užitečnost provedené práce a zisk. Druhým je možnost vypracování celého Systému, který spolupracuje se systémy státní správy a zabývá se správou ve finančním sektoru, což je obor, kterému se již od počátku svého studia na VŠE věnuji Cíle práce a způsob jejich dosažení Cílem práce je analyzovat potřeby Společnosti a získat specifikaci funkcionality od Systému požadované. Poté podle specifikace vytvořit návrh a následně implementaci Systému. Mým přínosem při řešení těchto cílů je analýza situace, kdy v závislosti na konzultacích se zástupcem Společnosti vytvořím funkcionální model a jeho popis, následné zvolení vhodného způsobu implementace a samotná implementace Systému Způsob/metoda dosažení cíle Metodiku zpracování podrobně rozebírám v kapitole Metodika práce Předpoklady a omezení práce Systém je omezen především po stránce finanční, jeho provoz nesmí být finančně náročný, a tedy není možné využívat drahé technologické, nebo implementační řešení, kromě řešení odpovídajících standardům Společnosti. Systém je dále omezen dobou odezvy při prohledávání, která nesmí být významně dlouhá (určeno Společností) Struktura práce Práce je strukturována tak, že nejprve se věnuji metodice použité pro vývoj Systému a následně podle této metodiky postupuji. Tedy práce začíná definicí metodiky, následně analýze požadavků na monitoring ISIR, jejich implementací, analýze požadavků na monitoring ARES a končí opět implementací. 712 1.6. Výstupy práce a očekávané přínosy Výstupem práce bude především Systém pro monitoring ISIR/ARES, tyto výstupy potom budou určeny k užívání třetími stranami, které mají zájem na monitoringu těchto zdrojů, tedy většinou Společnosti zaměřené na správu pohledávek a případně Společnosti se zájmem na sledování změn různých subjektů v ARES. Očekávaným přínosem je finanční přínos z prodeje Systému dalším společnostem. Vedlejším přínosem potom bude možná použitelnost práce jako referenčního materiálu při vývoji Systémů pro malé Společnosti. 2. CHARAKTERISTIKA OBLASTI Charakteristiku jsem rozdělil na dvě části. V první se věnuji popisu stavu oblasti správy pohledávek, pro kterou je řešení vyvíjeno. Ve druhé části popisuji stav panující se Společnosti a případně v dalších relevantních společnostech Charakteristika oblasti správy pohledávek Společnost vyvíjí a prodává informační systém pro správu pohledávek. Systém je vyvíjen pro další společnosti, které se zabývají správou a vymáháním pohledávek. Pohledávky jsou právem věřitele na plnění od dlužníka [1]. Pohledávky v rámci systému procházejí několika stavy, které vycházejí ze zákona určujícího postup řešení pohledávek [2]. V průběhu správy pohledávek se může stát, že je na stejného dlužníka vyhlášeno insolvenční řízení, což ovlivňuje průběh správy takové pohledávky. Z toho důvodu společnosti zabývající se správou pohledávek chtějí znát, zdali již dlužník není veden v jiném insolvenčním řízení. Společnost tak chce rozvinout své stávající řešení o monitoring ISIR a zároveň poskytnout i jen monitoring rejstříku pro společnosti s vlastním systémem správy pohledávek. V průběhu analýzy potřeby a plánování systému pro monitoring ISIR vyvstala potřeba pro monitoring vybraných rejstříků ARES (především obchodní rejstřík). Potřeba vyvstala od jiné společnosti, pro kterou Společnost systém správy pohledávek vyvíjí a která by ráda vyhledávala údaje dodatečné údaje o ekonomických subjektech přímo v prostředí správy pohledávek. Společnost se pak rozhodla zařadit i monitoring ARES Charakteristika oblasti správy pohledávek ve Společnosti V současné době Společnost nabízí vlastní systém pro správu pohledávek, který je využíván dalšími společnostmi. Systém spravuje pohledávky dlužníků a umožňuje jejich výpisy, elektronickou komunikaci s vybranými exekutorskými úřady a elektronickou komunikaci se soudy pomocí služeb Justice [3], především elektronický platební rozkaz. Společnost neumí monitorovat existenci dlužníka v ISIR a ráda by tuto funkcionalitu získala, protože tato znalost (tedy insolvenční řízení) může silně ovlivnit celou správu pohledávky. Vzhledem k tomu, že je tedy nutno monitorovat ISIR, by Společnost ráda umožnila i monitorování vybraných registrů ARES, aby zvýšila svou znalost 813 případného dlužníka pohledávky. Řešení pomocí jiného systému, který by monitoring umožňoval, Společnost zavrhla z důvodů bezpečnosti, nákladnosti a záměru nabídnout vlastní komplexní řešení oblasti. 3. KOMENTOVANÁ REŠERŠE PRACÍ Rešerše prací takto specifického tématu je poměrně náročná z toho důvodu, že v České Republice sice existuje několik řešení pro monitoring ISIR, ale tato řešení jsou dodávána jako aplikace, bez práce dokumentující jejich vývoj, navíc velmi často neumožňují automatické zpracování velkého množství dotazů. Při pokusech o nalezení takovýchto prací jsem neuspěl ani s poměrně jednoduchým dotazem "aplikace ISIR ARES", nebo "vývoj ISIR ARES" ve vyhledávací službě Google Scholar [4], nebo jen Google [5]. Jediným použitelným odkazem mimo povětšinou reklamních nabídek je paradoxně reference mé vlastní práce v systému ISIS. V zahraničí se bohužel tématu také nikdo nevěnuje. Pokud bych tedy změnil zadání na obecnější vývoj aplikace, lze najít enormně velké množství prací, které se mu věnují. Prakticky každá učebnice programování se věnuje vývoji aplikací. Existuje nepřeberné množství metodik a postupů, které by se daly zmínit. Proto jsem se rozhodl použít především práce, se kterými jsem se setkal v průběhu studia na VŠE a práce, které jsem používal ve své vlastní praxi. Práce pokrývají velkou část vývoje aplikací a to jak z popisu aplikací, metodik jejich návrhu i samotné tvorby, nasazení a použití. Tyto práce pak také používám ve vlastní diplomové práci Principy a modely řízení podnikové informatiky [6] Publikace se zabývá velmi zeširoka podnikovou informatikou. Pro mě důležité jsou především principy návrhu a tvorby analytických modelů, ze kterých čerpám při formulaci metody, kterou dospěji k cíli diplomové práce. Publikace je dále skvělým zdrojem termínů a definicí Extrémní programování [7] Publikace se zabývá praktikami extrémního programovaní, tedy vývoje aplikace ve velmi malém týmu. Rozhodl jsem se použít některé praktiky z toho důvodu, že vývoj mé práce probíhá prakticky jen v mé vlastní režii s konzultacemi a zpětnou vazbou od Společnosti, případně třetích stran. Při tomto způsobu vývoje jsem se snažil maximalizovat míru kontrol nad aplikací (především pomocí jednotkových testů), abych minimalizoval šanci na výskyt chyb v aplikaci způsobených úpravami. Pro další snížení chybné funkcionality využívám i akceptační testování zákazníkem (který je v extrémním programovaní prakticky dalším členem týmu) a pro případ že by nějaká chyba přeci jen zůstala nepovšimnuta, tak využívám velmi krátké iterace, přírůstky, které dovolují rychlou reakci a opravu funkcionality. 914 3.3. Metodiky budování informačních systémů [8] Práce rozebírá různé metodiky pro správu a vývoj informačních systémů a následně formuluje metodický rámec pro výběr vhodné metodiky pro realizovaný projekt. Pro mou diplomovou práci je zdroj důležitý především proto, že velmi přehledně uvádí základní seznam metodik i s jejich výhodami a nevýhodami a poskytuje vhodný zdroj definic informatických termínů Podniková informatika [9] Tato publikace se zabývá obecně prakticky celou problematikou podnikové informatiky. Pro mou práci nejdůležitější částí je potom část "Životní cyklus aplikací podnikové informatiky", která definuje obecný proces, metodu, kterou se vyvíjejí aplikace. Tuto metodu jsem částečně přebral (viz. kapitola 4) a samozřejmě upravil pro své účely. Druhou kapitolou, ze které jsem se rozhodl čerpat je potom "Datové modelování a návrh databází". Publikaci jsem použil především proto, že problematiku definuje na velmi vhodné úrovni, dostatečně obecně a zároveň vyčerpávajícím způsobem, který se snaží postihnout všechny varianty. Tedy není problém si upravit potřebné části pro své použití (případně vynechat), ale nehrozí opomenutí kritických faktorů. Mnou vyvíjená aplikace potom spadá do podnikové informatiky a proto jsou pro mě metody v publikaci popsané použitelné. Dle mého názoru se pak jedná o prakticky nejlepší popis podnikové informatiky jako celku, se kterým se setkal Návrhové vzory [10] Práce se zabývá rozborem technik objektového programování, především pak návrhovými vzory, které definuje jako "Návrhové vzory mají v programování podobný význam jako vzorce v matematice: zrychlují řešení a zestručňují a zkvalitňují komunikaci", nebo "vzorečky, které použiješ při návrhu architektury budoucí aplikace". Vedle návrhových vzorů potom rozebírá a zdůvodňuje použití zásad objektového programování. Použití jak vzorů, tak dodržování zásad se mi při tvorbě aplikací již mnohokrát velmi vyplatilo, především pak při změnách aplikací, kdy vhodná architektura a řešení aplikace umožňuje změnit, či rozšířit jejich funkcionalitu bez velkých obtíží, které nastávaly bez jejich použití. Dále seznam těchto vzorů umožňuje jejich velmi rychlé použití, bez nutnosti delší analýzy a rozboru různých návrhů na jedné straně a vyšší míru standardizace na straně druhé, kdy většina programátorů dokáže identifikovat návrhový vzor rychleji, než alternativní řešení. Práci jsem se potom rozhodl použít také z důvodu její formy rozhovoru studenta s pedagogem, která poměrně přístupnou formou vysvětluje i náročné abstraktní problémy. Ačkoliv práce používá pro příklady jazyk JAVA, její principy jsou použitelné pro všechny objektově orientované jazyky Metodika vývoje IS s pomocí nástroje Power Designer [11] Práci jsem použil především proto, že popisuje podobně jako [9] proces vývoje aplikací. To, že práce využívá nástroj Power Designer nebrání použití i za využití jiných nástrojů podpory návrhu. Navíc se práce zabývá i teoretickými aspekty vývoje a tak v ní popsané části metodiky používám i ve 1015 své práci, především metodu tří architektur, která vede ke snížení nákladů na změnu funkcionality v průběhu životního cyklu aplikace. Používám i některé prostředky pro popis funkcionality aplikace, ale u těchto se potom snažím spíše o pochopitelnost neinformatickými zákazníky. 1116 4. METODIKA PRÁCE V práci budu postupovat podle vlastní metodiky, kterou jsem odvodil především z těchto publikací [9], [11], [8], [6]. Metodiku v této práci chápu jako jasný způsob uspořádání myšlenek a činů [12] a dále jako doporučený souhrn etap, přístupů, zásad, postupů, pravidel, dokumentu, řízení, metod, technik a nástrojů pro tvůrce informačních systému, který pokrývá celý životní cyklus informačních systému. Určuje kdo, kdy, co a proč má dělat během vývoje a provozu IS [11]. Důvod, proč specifikuji metodiku vlastní je ten, že se snažím nalézt ideální stav popisu a řízení vývoje aplikace v prostředí zvolené Společnosti. Použití některých z klasických metodik jako RUP, EUP, UP, MSF, OPEN/EML jsem vyloučil pro nevhodnost použití těžké metodiky v malém vývojovém týmu, viz [8] Obecně je použití klasických metodik vhodné spíše pro střední, a velké projekty, které jsou náročné po technické anebo organizační (manažerské) stránce. Naopak tyto metodiky nebývají vhodné pro použití u malých vývojových týmů. V [8] je potom dále stručný popis agilních metodik vývoje následovaný principy a hodnotami definovanými v Manifestu agilního vývoje software převzatými z [13], které dávají přednost: individualitám a komunikaci před procesy a nástroji fungujícímu softwaru před podrobnou dokumentací spolupráci se zákazníkem před sjednáváním kontraktu reakci na změnu před plněním plánu Rozhodl jsem se tedy pro principy agilního vývoje, ale i metodiky agilní předpokládají určitou minimální velikost týmu, kterou já nenaplňuji a tak jejich zásady např. párové programovaní, nebo společné vlastnictví kódu [7] nejsou použitelné, navíc tyto definují povětšinou jen přístup k tvorbě aplikace, kdežto já bych rád definoval etapy a činnosti. Přebírám tak spíše jejich zásady, které se snažím maximálně naplnit. Navíc v [11] je uvedeno žádnou metodiku nelze nikdy použít tak jak je, tedy jako kuchařku a dále Samotné použití metodiky pak vyžaduje její implementaci v konkrétních znalostních podmínkách dané organizace, dotvoření do konkrétní podoby vnitřního předpisu a stylu práce. V této části tedy definuji postup, metody a přístupy průběhu tvorby aplikace, podle které se následně budu řídit. V publikacích [9], [11] si můžeme všimnout, že metodika tvorby IS je zde odvozena od životního cyklu aplikace. V [9] je to zdůvodněno odvozením od ITIL (Information Technology Infrastructure Library) [ITIL], který chápe proces řízení rozvoje aplikace jako její životní cyklus. Fáze životního cyklu aplikace se pak v [9] dělí takto: Plánování a příprava Analýza a návrh Implementace 1217 Zavedení do provozu Provoz a užití Rozvoj a optimalizace Každou fázi potom detailněji popisuje a specifikuje konkrétní činnosti ve fázi obvykle prováděné. Já se budu věnovat jen některým fázím, protože pohled v [9] i [11] se zabývá řízením a rozvojem v rámci celého podniku, zatímco já řeším jen jednu relativně izolovanou aplikaci, kterou Společnost hodlá nabízet v rámci svých služeb. Metodiku potom také musím uzpůsobit proto, že sice budu v častém kontaktu se zástupcem Společnosti, ale nebudu od něj získávat žádné dokumenty, nebo přesné specifikace. Zástupce silně preferuje systém, kdy v rámci častých schůzek já předkládám možná řešení a on jen vyjadřuje názor na tato řešení, tedy detailní specifikace budu dělat já a jen je zástupci předkládat a případně upravovat. Pro tvorbu aplikace jsme tak spolu se zástupcem Společnosti zvolili iterační model [8] tvorby systému. Dále tato práce není vedena čistě z pohledu Společnosti, ale spíše z pohledu dodavatele, který pro Společnost aplikaci vyvíjí. Tedy některé části v práci nemají smysl. Fáze, kterými se chci v práci zabývat, jsou: Analýza a návrh Implementace Zavedení do provozu Provoz a užití V otázce vlastního přístupu k tvorbě Systému potom budu vycházet z některých principů extrémního programování [7], [8]. Metodiku, ze které chci některé přístupy vybrat, jsem zvolil především na základě [8]. Nejprve jsem se rozhodl pro agilní metodiky, ale jelikož i tyto lehčí metodiky obvykle předpokládají více pracovníků vývoje a tedy neodpovídají mému stavu, rozhodl jsem se jen přebrat určité dle mého názoru důležité principy. Samotný výběr metodiky by mohl být tématem na delší rozsah, ale rozhodl jsem se mu zde moc nevěnovat, protože se chci zaměřit spíše na vlastní téma práce. Pro více informací a de-facto zdůvodnění výběru doporučuji výše uvedené publikace. Dále uvádím detailní popis všech fází, činnosti, ze kterých se budou fáze skládat, jejich smysl a výstupy Analýza a návrh Jelikož fáze pokrývá poměrně velkou část práce, předpokládám její další dělení, které uvádím níže. Výstupem fáze by měl být návrh řešení, který odpovídá jak možnostem systémů ISIR a ARES na jedné straně, tak požadavkům Společnosti na druhé. Ve fázi bych rád vyšel především z modelu tří architektur, tak jak je popsán v [11]. Tedy nejprve vytvořím obsahový popis/analýzu toho, co by měl systém umět, následně popis/analýzu technologickou která uvádí, jak bude systém vytvořen a na závěr pak část implementační která specifikuje, čím bude dosaženo cíle. Postup je na stejném principu jako 1318 datové modelování uvedené v [9], jen jsem se ho rozhodl rozšířit na celou aplikaci. Navíc podobný přístup můžeme dále najít v obvyklých návrhových vzorech pro tvorbu objektově orientovaných aplikací např. [10], nebo [15]. Důvody pro toto rozhodnutí jsou popsané ve výše uvedených publikacích a zejména to jsou: "Každá vyšší úroveň je zcela nezávislá na úrovni nižší, tedy popis obsahu systému je nezávislý jak na technologické úrovni, tak implementační. Technologické řešení je pak nezávislé na implementačním. To zaručuje volbu nejvhodnějšího řešení na každé úrovni.stejný popis obsahu lze případně řešit jinými technologickými, ale i implementačními metodami, tedy v případě nutného předělání systému zůstává vždy maximum vykonané práce. A zároveň nutná změna na nižší úrovni (např. implementační) neovlivní popis obsahu aplikace." V [11] je pak uvedeno potřeba takového rozlišení modelu není dána jenom potřebou rozdělit specifikaci systému na etapy, ale také a především "technologickou" potřebou nezávislosti specifikace systému na použité koncepci organizace dat a implementačním prostředí, která umožňuje klasifikovat činnosti údržby a rozvoje systému na úpravy vyplývající ze změn v reálném světě (okolí systému) a změn v realizačním prostředí Analýza/model obsahový Smyslem analýzy je popsat po obsahové stránce funkčnost Systému. Jejím výstupem bude detailní popis toho, co by měl Systém dělat. Vzhledem k použití iteračního modelu tak vlastně vyplívá postup od obecných požadavků Společnosti k detailní specifikaci respektující možnosti ISIR. Postup práce vysvětluje obrázek 1. Potřeba popisu Systému Zjištění požadavků Společnosti Porovnání s možnostmi ISIR Navržení řešení Je řešení dostatečně detailní ANO Systém je popsán NE Obrázek 1 získání popisu Systému (Zdroj: Autor) Samotný Systém pak musí splňovat požadavky Společnosti na jedné straně a možnosti ISIR na straně druhé, z toho vyplívá možné omezení požadavků Společnosti a zároveň také specifikaci obecného architektonického uspořádání Systému už v části obsahové analýzy. Situace je znázorněna na obrázku 2. 1419 Požadavky Společnosti Možnosti ISIR Splňuje Vyvíjený Systém Respektuje Obrázek 2 omezení Systému (Zdroj: Autor) V rámci analýzy nejprve zjistím základní požadavky Společnosti na aplikaci. Následovat bude analýza možností systému ISIR, po kterém bude předloženo řešení ke schválení Společnosti, pokud nebude řešení schváleno, ať z důvodu nedostatečného popisu, nebo odmítnutí způsobu řešení zástupcem Společnosti, bude následovat další iterace. Výstupem analýzy by měla být analýza možností ISIR, z ní vycházející popis entit vyskytujících se v Systému, příklady použití, významné procesy, návrhy uživatelského rozhraní a případně fundamentální uspořádání řešení vyplívající z možností ISIR. Chtěl bych zdůraznit význam návrhů uživatelského rozhraní, tvorbu prototypů zdůrazňuje mnoho publikací a metodik, např. [9], nebo RAD (Rapid Application Development ) viz [16] a uživatelské rozhraní jsem si vybral z toho důvodu, že jeho tvorba je minimálně náročná na čas a zároveň poskytuje poměrně přesnou představu funkcionality systému. I při prezentaci zákazníkům, kteří nemají vysoké informační povědomí a vlastně ani nevědí, co přesně by měl tvořený systém dělat, návrh uživatelského rozhraní poskytuje formu, které porozumí. Pokud potom návrh doplníme popisem akcí, které nastávají při různých událostech, dostává zákazník velmi přesnou představu a může rovnou reagovat a určit, které funkce potřebují dále, které nejsou navrženy vhodně a které jsou zcela zbytečné. Samozřejmě metoda předpokládá poměrně malý systém, u velkých ERP by asi nebyla praktická, ale u malých projektů bych ze své zkušenosti řekl, že může nahradit většinu obsahové analýzy a poskytnout přesnou specifikaci, co zákazník chce Analýza/model technologický Smyslem analýzy je zvolit a popsat po technologické stránce funkčnost Systému. Jejím výstupem bude detailní popis toho, jak bude Systém dosahovat svého cíle, popsaného v obsahové analýze. Dále bude výstupem analýzy architektonické řešení Systému a jeho komponent, volba prostředků pro tvorbu Systému, tedy např. typ datového úložiště, programovací jazyk n-té generace, nebo daná platforma a konceptuální datový model úložiště. Všechny tyto výstupy musí být schváleny zástupcem Společnosti. 1520 Analýza/model implementační Smyslem analýzy je popsat konkrétní prostředky, kterými Systém dosahuje cíle a navazuje tak na analýzu technologickou. Výstupem analýzy bude volba konkrétního programovacího jazyka a s ním svázané metodiky/pravidla tvorby, volba konkrétního úložiště dat a jeho fyzický datový model Implementace Fáze se zabývá samotnou tvorbou řešení Systému, což je jejím výstupem. V této fázi proběhne jeho vývoj, testování a úpravy podle požadavků Společnosti. Vývoj bude probíhat podle modelu programuj a opravuj [17], tedy několika přírůstky, kdy bude nejprve vytvořen přírůstek (část řešení systému), ten bude následně testován jak interně, tak v některých případech externě a v případě schválení bude nasazen do provozu. Použitý model je poměrně neformální, ale odpovídá vztahu se Společností při řešení Systému Zavedení do provozu Tato fáze byla spojena s fází implementace. Jednotlivé přírůstky budou vždy při svém dokončení nasazeny do provozu Provoz a užití Vzhledem k poměrně velkému časovému rozpětí mezi začátkem práce na Systému a odevzdáním této diplomové práce jsem zahrnul i fázi provoz a užití, ve které očekávám především monitorování provozu aplikace a případné návrhy na její změnu. Fáze také může sloužit jako ukazatel kvality provedení předchozích fází. 5. ANALÝZA/MODEL OBSAHOVÝ ISIR 5.1. Analýza Základních požadavků Společnosti Zástupce společnosti na první schůzce formuloval požadavek na monitorování rejstříku ISIR. Monitorování má být dostupné jako modul do informačního systému společnosti a vedle toho jako samostatný program, který přijímá strukturované dotazy a na jejich základě vypisuje existenci/neexistenci dlužníka v ISIR. Dále by měla být dostupná webová služba, která na základě jednoduchého dotazu vrátí příznak existence dlužníka v rejstříku. U služby se počítá s rozšířením její funkcionality i na výpis detailů o řízení, ale to není předmětem této práce. V práci se zabývám pouze samostatným programem pro monitoring ISIR, modul do informačního systému bude řešen podobně, ale zástupce si nepřál uvedení řešení v práci. Řešení programu pro monitoring je ale v některých místech ovlivněno stávajícím informačním systémem. Požadovaný stav zachycuje obrázek 1, příklad použití monitoringu ISIR. Uživatelem je míněn uživatel, který používá program monitoringu, uživatel webové služby je potom uživatel, který jen využívá poskytovanou webovou službu. Zjišťování existence musí probíhat jak na požádání u jednoho subjektu, stejně jako to umožňují stránky justice, 1621 ale i dávkově na základě vhodně strukturovaných vstupních dat. Webová služba má být maximálně jednoduchá a tedy vracet příznak jen na základě jednoduchého dotazu na jednoho dlužníka. Monitoring ISIR * * * Zjisti existenci dlužníka Uživatel * Vypiš detaily řízení * Uživatel webové služby Obrázek 3 příklad použití monitoringu ISIR (Zdroj: Autor) 5.2. Analýza ISIR V této části uvádím, co to je ISIR, jaká data obsahuje a jakým způsobem je možno k nim přistupovat. Na závěr je pak uveden model, který ukazuje daný stav řešení vzhledem k možnostem ISIR Definice ISIR a jeho obsahu Rejstřík ISIR vychází ze zákona č. 182/2006 Sb., o úpadku a způsobech jeho řešení [18], který nabyl účinnosti dne 1. ledna Jako zdroj používám v této části především portál Business center [18], což je portál zabývající se financemi, právem a podnikáním, alternativním zdrojem je potom Portál veřejné správy České republiky [19]. Portál Business center jsem zvolil z důvodu vyšší přehlednosti zobrazení zákona. Část třetí insolvenčního zákona obsahuje ustanovení ohledně ISIR, jejichž důležité části zde uvádím. Obecné informace ISIR je informačním systémem veřejné správy, jehož správcem je Ministerstvo spravedlnosti. Obsahuje seznam insolvenčních správců, seznam dlužníků a insolvenční spisy. Pro každého dlužníka se vede jeden insolvenční spis. ISIR je veřejně přístupný, každý má právo do něj nahlížet a pořizovat si z něj kopie a výpisy. Informace o dlužnících v ISIR Údaje o dlužnících v ISIR záleží na typu osoby, kterou dlužník je. 1722 Fyzická osoba - zapisuje se do seznamu dlužníků její jméno, příjmení, bydliště, rodné číslo, a nemá-li rodné číslo, datum narození. Fyzická osoba podnikatel - zapisuje se do seznamu dlužníků vedle údajů fyzické osoby i dodatek odlišující její firmu, používá-li jej při svém podnikání, dále místo podnikání, jestliže se liší od bydliště, a identifikační číslo. Právnická osoba - zapisuje se do seznamu dlužníků její obchodní firma nebo název, sídlo a identifikační číslo. Informace o zapisování obsahu do ISIR Výše specifikované údaje zapíše insolvenční soud do seznamu dlužníků, jakmile nastanou účinky spojené se zahájením insolvenčního řízení, nejpozději však do 7 dnů po tomto okamžiku. Není-li mu některý z těchto údajů v uvedené době znám, zapíše jej insolvenční soud do seznamu dlužníků, jakmile v insolvenčním řízení vyjde najevo. Neprodleně po ustanovení insolvenčního správce zapíše insolvenční soud údaj o tom do seznamu dlužníků. Je-li insolvenční správce fyzickou osobou, zapisuje se do seznamu dlužníků jeho jméno, příjmení, sídlo, rodné číslo, a nemá-li rodné číslo, datum narození; je-li insolvenční správce právnickou osobou, zapisuje se do seznamu dlužníků jeho obchodní firma nebo název, sídlo a identifikační číslo. Informace o uvedených dokumentech a událostech v ISIR V insolvenčním rejstříku insolvenční soud zveřejňuje chronologicky s uvedením okamžiku vložení tyto písemnosti a informace: rozhodnutí insolvenčního soudu vydaná v insolvenčním řízení a v incidenčních sporech. veškerá podání, která se vkládají do soudního spisu vedeného insolvenčním soudem ohledně dlužníka, nestanoví-li zákon jinak. další informace, stanovené zákonem. Podání došlá insolvenčnímu soudu v elektronické podobě a písemnosti pořizované insolvenčním soudem se do insolvenčního rejstříku vkládají pomocí elektronického přenosu dat. Ostatní písemnosti a podání se vkládají přenesením jejich obrazové podoby do insolvenčního rejstříku Popis možností přístupu do ISIR Do ISIR lze nahlížet pomocí webového formuláře, ale touto cestou lze prohledávat jen po jednom dlužníkovi, což je pro zpracování desetitisíců pohledávek nepraktické. Insolvenční rejstřík proto nabízí i webovou službu ISIR jejíž popis je následující: Ministerstvo spravedlnosti ČR poskytuje od také webovou službu, která umožňuje automaticky komunikovat a vyměňovat si údaje z 1823 aplikace insolvenčního rejstříku s jinými aplikacemi přes Internet. Poskytuje shodné údaje, které jsou dostupné v interaktivním prohlížení insolvenčního rejstříku. Tyto údaje jsou určeny pro strojové zpracování. Služba je koncipovaná jako veřejná a je zdarma. Je poskytovaná na adrese: https://isir.justice.cz:8443/isir_ws/services/isirpub001 [20]. Popis veřejného rozhraní je uveden na adrese https://isir.justice.cz:8443/isir_ws/services/isirpub001?wsdl a dokumentace webové služby je na adrese https://isir.justice.cz/isir/help/popis_ws.pdf. Služba je nabízena pomocí technologie webové služby [web services], tedy pomocí přenosu XML [21] souborů přes internet. Služba nabízí jen replikaci dat [22]. Tedy webová služba neumožňuje samotné prohledávání rejstříků, ale nabízí výpis událostí insolvenčního rejstříku v chronologickém pořadí, jak byly v rejstříku zapsány Služba je navržená tak, aby poskytovala maximální množství informací při zachování vysoké dostupnosti. Informace o insolvenčním řízení jsou v databázi ISIR uložená formou událostí/akcí, ke kterým v průběhu řízení dochází. Každá akce má své unikátní číslo generované sekvenčně při zápisu události do systému ISIR. [23]. Služba tedy předpokládá vytvoření vlastních kopií datového úložiště u uživatelů webové služby Služba předpokládá vytvoření vlastních kopií databází na straně uživatelů. Důvodem je požadavek vysoké dostupnosti. [23]. Jakkoliv by toto provedení mohlo být diskutabilním [24], není předmětem této práce. Z provedení webové služby ISIR tedy vychází, že je nutno vytvořit vlastní datové úložiště záznamů ISIR a to pravidelně (ideálně neustále) aktualizovat v případě existence nových záznamů v ISIR. Vedle monitorovacího programu tak musí být vytvořen i program aktualizační. Situace je zobrazena na obrázku 4. Webová služba ISIR Stahuje data Aktualizační program Nahrává data Vlastní datové úložiště Provádí dotazy Program monitoringu Obrázek 4 řešení monitoringu ISIR (Zdroj: Autor) 5.3. Analýza požadavků společnosti na navržené řešení Na základě předchozích analýz jsem navrhl řešení monitoringu ISIR, které je na obrázku 2 a s navrhovaným řešením seznámil zástupce Společnosti. Monitoring tedy předpokládá tvorbu vlastního datového úložiště pro uložení záznamů, tvorbu aktualizačního programu, který bude neustále zkoušet naplnit nové záznamy z webové služby ISIR do vlastní databáze a nakonec vlastní monitorovací 1924 program pro prohledávání datového úložiště. Zástupce společnosti navrhované řešení schválil a uvedl další požadavky k jednotlivým částem Datové úložiště Zástupce společnosti formuloval požadavky na úložiště, které společnost bude muset provozovat: Datové úložiště by mělo být realizováno formou databáze. Databáze by měla být dostupná pomocí SQL dotazů [24]. Databáze by měla být dostupná zdarma, nebo velmi levně (posoudí zástupce společnosti při předložení návrhů). Zástupce dále navrhl, že by databáze mohla být mysql [25] databáze, již umístěná na serveru Společnosti, ale vyjádřil přání analyzovat další možnosti. Databáze by měla umožňovat jednoduché prohledávání i plnění. Databáze by měla odpovídat standardům Společnosti pro tvorbu databází, tedy každá tabulka by měla mít vlastní umělý primární klíč typu integer. Databáze by měla umožňovat připojení z více programů a jejich obsluhu Aktualizační program Zástupce společnosti formuloval požadavky na aktualizační program, který společnost bude muset provozovat: Program by měl být velmi jednoduchý, jen s textovým výpisem, co program zrovna dělá. Program by měl umožňovat zapnout a vypnout plnění. Program by měl zkoušet, zdali existují nové záznamy na webové službě ISIR a v případě jejich existence je zkopírovat do vlastní databáze. Program by měl v případě neexistence nových záznamů počkat daný čas a následně znovu zkusit plnit Monitorovací program Zástupce společnosti formuloval požadavky na monitorovací program pro prohledávání databáze: Program by měl umožňovat prohledání databáze na základě zadaných specifikací dlužníka. Program by měl umožňovat dávkové prohledání databáze na základě vstupního souboru. Program by měl zobrazovat, zdali je dlužník v databázi, změnu stavu dlužníka (například další dokument, případně jakákoliv změna relevantní k řízení) od posledního prohledání. Program by měl v budoucích verzích umožňovat zobrazit celý výpis detailů řízení dlužníka, kterého nalezl v databázi. Ale tato funkcionalita má nízkou prioritu a Společnost preferuje rychlejší realizaci ostatních požadavků. Systém by tak měl být navržen, aby výpis detailů bylo možno doplnit. 2025 Vzhledem k datům, které společnost o pohledávkách a dlužnících provozuje ve svém systému, by měl program umět vyhledávat především podle následujících údajů: Jméno Příjmení Název Rodné číslo Identifikační číslo Datum narození Vedle výše specifikovaných dat by program měl umožňovat zobrazení vlastního identifikačního znaku, jaký je používán v systému společnosti, druhu osoby (fyzická, fyzická podnikatel, právnická) a dále spisové značky insolvenčního řízení v případě nalezení dlužníka v databázi Webová služba prohledávání Zástupce společnosti formuloval požadavky na webovou službu pro prohledávání databáze: Služba přijímá požadavky na prohledávání formou parametrů v URL adrese, tedy například Služba by měla vypsat, zdali je subjekt v databázi, tedy vrátit jako odpověď jednoduchou stránku, která obsahuje buď text ANO v případě nalezení, nebo NE v případě nenalezení. Předpokládá se využití služby třetí stranou a toto je dohodnuté rozhraní, na kterém se Společnost shodla. Služba by měla na požádání umět vypsat datum poslední aktualizace databáze. Služba musí umět vyhledávat fyzické osoby podle jména, příjmení a data narození, nebo rodného čísla a právnické osoby buď podle identifikačního čísla, nebo názvu Tvorba Demo verzí Na základě požadavků Společnosti na programy navrhovaného řešení jsem vytvořil demonstrační ukázky uživatelského rozhraní navrhovaných programů. Navrhovaná uživatelská rozhraní jsou pouze ilustrační a nijak nepodmiňují finálně použitou technologii, která je specifikována níže Aktualizační program Návrh uživatelské rozhraní aktualizačního programu je na obrázku 5. Návrh předpokládá výpis činnosti aktualizačního programu do textového pole a možnost zapnutí/vypnutí programu pomocí tlačítka. Návrh byl schválen zástupcem Společnosti. 2126 Obrázek 5 návrh uživatelského rozhraní aktualizačního programu (Zdroj: Autor) Monitorovací program Návrh uživatelské rozhraní monitorovacího programu je na obrázku 6. Návrh předpokládá práci nad dávkou dlužníků, kteří jsou vyhledáváni v databázi ISIR. Seznam dlužníků je uveden v tabulce. Použité atributy dlužníků vycházejí z informací ukládaných v ISIR a specifikovaných výše a atributů významných pro systém Společnosti, jejich seznam i s komentářem uvádím níže: Identifikace Identifikátor dlužníka v dalším informačním systému. Tento atribut byl zvolen z toho důvodu, že systém pro správu pohledávek Společnosti obsahuje jednoznačný identifikátor pohledávky, který je často používán, je tedy praktické ho použít i ve vyhledávání v ISIR. Stejně tak předpokládám existenci podobných identifikátorů u případných dalších třetích stran. Druh osoby Atribut určuje, o jakou osobu dlužníka se jedná, fyzickou, podnikatele, nebo právnickou. Atribut může ovlivňovat způsob vyhledávání. Spisová značka Atribut převzatý z ISIR, pokud je dlužník v databázi ISIR nalezen, je k němu přiřazena spisová značka insolvenčního řízení. Jméno Atribut určující jméno dlužníka, je použito u fyzických osob a podnikatelů. Příjmení Atribut určující příjmení dlužníka, je použito u fyzických osob a podnikatelů. RČ Atribut rodné číslo, je použito u fyzických osob a může být u podnikatelů. Datum narození Atribut určující datum narození fyzické osoby, nebo podnikatele. Název Atribut určující obchodní název dlužníka, použito u právnických osob. IČ Atribut určující Identifikační číslo dlužníka, použito u právnických osob, může být u podnikatelů. Nalezeno Atribut určuje, zdali byl dlužník nalezen v databázi ISIR. Změna Atribut určuje, zdali se stav řízení dlužníka od posledního vyhledávání změnil. Návrh byl schválen zástupcem Společnosti. 2227 Obrázek 6 návrh uživatelského rozhraní monitorovacího programu (Zdroj: Autor) 5.5. Specifikace entit Vedle atributů vyjmenovaných výše, které vycházejí z prvotních požadavků Společnosti, bude potřeba ukládat mnohé další informace. Tato nutnost je podložena požadavkem Společnosti na možnost tisku detailů dlužníka a to způsobem podobným, jakým detaily poskytuje portál ISIR. Pro ilustraci uvádím na obrázku 7 výpis náhodně vybraného dlužníka z webu portálu ISIR. 2328 Obrázek 7 výpis detailů insolvenčního řízení (Zdroj: [20]) Z obrázku tedy vyplívá nutnost ukládat další informace jak o samotné osobě dlužníka, insolvenčním správci, tak událostech, které nastaly v insolvenčním řízení. Zde bych mohl udělat poměrně vyčerpávající analýzu, které informace jsou pro Společnost skutečně nutné, ale zástupce Společnosti navrhl pro jistotu ukládat veškeré informace, které rejstřík poskytuje. V budoucnu by tedy při potřebě dodatečných dat nebylo nutné provádět jejich komplikované doplnění. Svůj návrh doprovodil podmínkou, že se nesmí jednat o příliš velké množství dat např. více než deset GB. Při specifikaci všech ukládaných entit budu vycházet z [20]. Protože manuál je poměrně vyčerpávající, popisuje způsob poskytování i samotná data a protože si myslím, že analýza služby ISIR je velmi významných krokem v navržení řešení Systému a také pro větší přehlednost jsem se rozhodl analýzu ISIR a z ní vycházející kompletní specifikaci entit zařadit jako samotatnou kapitolu mezi obsahovou a technologickou analýzu, ač de-facto spadá do obsahové analýzy Analýza možností ISIR V této části se zabývám popisem jakým způsobem a jaká data poskytuje webová služba ISIR. Vycházím především z [23], což je manuál popisující chování služby a je volně stažitelný na portálu justice. Celá kapitola 5.6 je přebrána ze zdroje, ale považuji ji za tak důležitou, že ji s úpravami 2429 uvádím. V práci vycházím z verze 1.5 a v popisu postupuji v pořadí, jak je uveden ve zdroji. Nechci zde rozebírat celý manuál, ale pouze části podstatné pro tvorbu Systému. Základní popis služby byl již uveden výše Základní popis Věc Věcí se rozumí jedno insolvenční řízení proti konkrétní osobě. Věc popisují její atributy a události, které ve věci nastaly Událost a akce Událost je chápána jako vlastnost věci, tedy jedná se jakousi skutečnost, která nastala v insolvenčním řízení. Akce je potom zavedena jako přenosová jednotka webové služby. Pro srovnání, událost zadává nějaký uživatel a může být zrušena jako mylný zápis. Je identifikována spisovou značkou věci, druhem oddílu a číslem v tomto oddílu. Akci potom generuje systém ISIR jako prvek přenosu dat. Je identifikována svým číslem Poznámka Z důvodu úspory přenášených dat a také možnosti upravení struktury přenášených dat obsahuje volání události jen základní údaje její identifikace. Samotná další data potom obsahuje poznámka, která je vložena jako xml dokument v události. Poznámka je definována svých XSD (Xml Schema Definition), což je schéma definující strukturu poznámky. Každá poznámka má v sobě vložen odkaz na své schéma, pokud se tedy změní struktura poznámek, změní se i element odkazující na verzi schématu použitou Poznámky a události/akce Přenos byl navržen tak, že většina akcí/událostí obsahuje poznámku prázdnou, nebo jen s minimem informací. Číselník akcí/událostí lze potom dělit takto: Události/akce podle číselníku o Obsahují informace o zveřejňovaných událostech, vznikají na základě zápisu uživatelem. o Poznámka je prázdná, nebo jen s minimem informací o události. o Neobsahují informace o osobách, nebo věci jako takové. Servisní události/akce o Servisní události/akce generuje automaticky systém. o Servisní události/akce obsahují informace o řízení data o osobách a věci. o Servisní události mohou měnit jiné události ukončit jejich platnost. 2530 o Servisní události mohou měnit číselník událostí Typické akce V následující sekci uvádím typické akce, které probíhají na webových službách ISIR. U akcí vynechávám samotný příklad xml dat z důvodu ušetření místa. Založení spisu Spis je založen první běžnou událostí. Hned po této akci následuje servisní akce s osobou dlužníka. Založení osoby v řízení Osoby jsou zakládány servisními akcemi po akci, se kterou souvisejí. Podobným způsobem jsou zakládány adresy u osob. Zpožděné doplnění dokumentu Protože pro zveřejnění insolvenčního řízení jsou krátké lhůty a některé dokumenty ještě nemusí být připraveny, případně anonymizovány, lze publikovat událost bez dokumentu, který bude doplněn později. Dokument je doplněn událostí se stejným typem a identifikací, jen vyplněným dokumentem. Změna osoby/adresy Změny osob a adres jsou generovány jednou za den pomocí stejných servisních událostí, které tyto osoby a adresy založily. Rušení záznamů o událostech, osobách, věcech Typicky v případě mylného zápisu je občas potřeba událost, osobu, adresu nebo věc zrušit. Událost ruší akce se stejným typem, která ji založila. Akce obsahuje datum zrušení a identifikaci události (spisová značka, druh oddílu, pořadí v oddílu). Osoba je rušena servisní událostí pro změnu osoby s vyplněným datem zrušení osoby. Změna číselníku událostí Servisní událost bez spisové značky, bude obsahovat: číslo postižené události podle číselníku popis postižené události podle číselníku popis změny datum platnosti postižené události od datum platnosti postižené události do 2631 příznak, zda se jedná o servisní událost (servisní se nezobrazují na webu) Kompletní číselník událostí je uveden na adrese https://isir.justice.cz/isir/help/cis_udalosti.xls Změna poznámky Pro změnu formátu poznámky je speciální servisní událost Změna poznámky s typem 330. Událost obsahuje datum, od kdy změna platí, nové URI souboru se schématem poznámky a popis změny Datový model Volání webové služby Webová služba podporuje dva typy volání, se zadaným posledním ID akce nebo se zadaným datem akce. getisirpub001 Volání webové služby s parametrem typu datum. Vrací všechny akce s časem >= zadanému datu. getisirpub0012 Volání webové služby s parametrem typu long. Vrací všechny akce s id > než je zadané číslo Rozhraní webové služby Tabulka 1 specifikuje strukturu události/akce, tak jak ji webová služba poskytuje. Webová služba vrací pole těchto akcí. Tabulka 1 specifikace struktury akce (Zdroj: [23]) Název Cas Id IdDokument Poznamka spisznacka Typ TypText Oddil PoradiVOddilu Popis Datum a čas vzniku události. Unikátní sekvenční číslo události v ISIRu. URI adresa dokumentu. Poznámka obsahuje strukturované údaje k události, pro vybrané události zobrazuje formou XML dokumentu údaje např. o dlužníkovi. Spisová značka řízení, ke kterému událost patří. Typ události podle číselníku událostí. Popis události podle číselníku událostí. Oddíl, do kterého událost patří. Pořadové číslo v rámci oddílu, spolu se spisovou značkou a oddílem identifikuje událost Poznámka Na obrázku 8 je zobrazena struktura poznámky a dalších elementů, které může obsahovat. Obrázek je již poměrně silně technologicky zatížen, ale dal jsem přednost autenticitě před formální správností 2732 vlastního zobrazení. Z obrázku můžeme vidět, že jedna akce s poznámkou může obsahovat vždy jen maximálně jednu věc, jednu osobu, jednu položku číselníku a je popsána jedním XSD poznámky. Obrázek 8 struktura poznámky (Zdroj: [23]) Událost V tabulce 2 je uvedena struktura události poskytovaná webovou službou. Událost je zde složena jak ze samotných návratových hodnot webové služby, tak atributů, které se nacházejí až v poznámce. V tabulce nejsou uvedeny některé další atributy, které bych události přiřadil podle předchozího popisu, nemá popsané sloupce a komentáře jsou částečně nevyplněny. Toto považuji za chybu zpracování manuálu. Tabulka 2 struktura událostí (Zdroj: [23]) Klíč SpisZnacka String 50 Oddil String 10 PoradiVOddilu Int Atributy IdOsobyPuvodce String 20 Soud, kde událost vznikla 2833 datumudalostzrusena Datetime Datum zrušení události Věc V tabulce 3 je uvedena struktura věci (řízení) poskytovaná webovou službou. Oproti specifikaci události je zde již popis kompletní. Tabulka 3 struktura věci/řízení (Zdroj: [23]) Klíč SpisZnacka String 50 Atributy DruhStavRizeni String 10 Stav řízení datumveczrusena Datetime Datum zrušení věci (mylný zápis) K věci je potom v manuálu uveden ještě diagram možných přechodů mezi stavy. Diagram je na obrázku 9. K diagramu se váže ještě legenda uvedená na obrázku34 Obrázek 9 diagram možných přechodů mezi stavy věci (Zdroj: [23]) Obrázek 10 legenda přechodů mezi stavy věci (Zdroj: [23]) Osoba Součástí přenášených dat může být i element osoby. Na obrázku 11 je ukázána struktura tohoto elementu a případné adresy osoby. 3035 Tabulka 4 potom upřesňuje specifikaci osoby. Obrázek 11 struktura elementu osoby (Zdroj: [23]) Tabulka 4 specifikace osoby (Zdroj: [23]) Klíč SpisZnacka String 50 IdOsoby String 20 Atributy DruhRoleVRizeni String 10 Role v jaké osoba ve věci vystupuje DruhSpravce String 10 Druh správce NazevOsoby String 255 Přesný název osoby NazevOsobyObchodni String 255 Obchodní název osoby DruhOsoby String 10 Druh osoby (fyzická / právnická / organizace ) DruhPravniForma String 10 Kód právní formy osoby Jmeno String 40 Křestní jméno osoby TitulPred String 50 Tituly osoby před jménem TitulZa String 50 Tituly osoby za jménem Ic String 9 Identifikační číslo Dic String 14 Daňové identifikační číslo Rc String 11 Rodné číslo DatumOsobaVeVeciZrusena Datetime Datum zrušení osoby ve věci DatumNarozeni Datetime Datum narození osoby 3136 Adresa Tabulka 5 ukazuje přesnou specifikaci elementu adresy osoby. Tabulka 5 specifikace adresy (Zdroj: [23]) Klíč SpisZnacka String 50 IdAdresy String 20 Atributy DruhAdresy String 10 Kód druhu adresy DatumPobytOd Date Datum začátku platnosti adresy DatumPobytDo Date Datum konce platnosti adresy Město String 255 Město/obec Ulice String 255 Ulice CisloPopisne String 10 Číslo popisné Okres String 30 Okres Zeme String 255 Země PSC String 6 PSČ Telefon String 30 Telefon fax String 30 Fax TextAdresy String 255 Text adresy u, URL apod Návrh datové základny Na základě předchozího požadavku Společnosti uchování všech dat poskytovaných webovou službou ISIR a na základě analýzy dat ISIR jsem vytvořil model datové základny, kterou by Systém měl uchovávat. V rámci obsahové analýzy jsem vytvořil zatím technologicky nezávislý model, který může být implementován více způsoby. Při návrhu jsem se řídil metodikou návrhu datového modelu popsaného v [27]. Dále jsem respektoval požadavek Společnosti, aby každá entita měla zcela umělý číselný identifikátor. Jakkoliv by toto rozhodnutí mohlo být sporné vzhledem k typickému použití relačních databází a jejich normalizačních metod pro ukládání dat, dodržení konvencí Společnosti pro návrh je dle mého názoru přednější. Navíc tyto výjimky v použití normalizačních pravidel relačních databází můžeme vidět i v trendu objektově relačních, nebo objektových databází např. v [28], [29], nebo případně v postupech pro optimalizaci výkonu relačních databází, např. zde [30]. Dále jsem zjistil, že manuál ISIR, ze kterého jsem dělal analýzu, neobsahuje kompletní popis všech atributů zmíněných entit. Rozhodl jsem se přiřadit i atributy, které služba poskytuje, ale manuál nezmiňuje. Návrhů uchovávajících vhodným způsobem data poskytovaná službou ISIR by samozřejmě mohlo být více, ale rozhodl jsem se model navrhnout co nejvíce tak, aby odpovídal datové struktuře samotné služby ISIR. Ačkoliv služba ISIR slouží k replikaci a neuvádí samotné schéma replikované databáze 3237 (což chápu jako poměrně velký nedostatek), lze z výstupů prohledávání insolvenčního rejstříku a z manuálu služby ISIR odvodit některé fundamentální skutečnosti: Hlavní entitou, která spojuje ostatní je věc, tedy samotné insolvenční řízení. Věc může mít přiřazené osoby v různých rolích, dlužník, správce atd. Osoby mohou mít přiřazenou adresu. Další skutečnosti věci jsou vyjádřeny pomocí událostí, které ve věci nastaly. Podle výše zmíněných jsem stvořil první návrh datového úložiště a ten dal zástupci Společnosti ke schválení. Návrh datového úložiště je na obrázku 12. PK id věc PK id Osoba PK id Adresa PK FK1 id spisznacka druhstavrizeni datumveczrusena Udalost idudalosti oddil poradioddil datumzrusena obecnytext datumpravnimoci priznakvedlejsiudalost priznakvedlejsidokument cas iddokument typ typtext uspisznacka idosobypuvodce bcvechlavni druhvechlavni rocnikhlavni datumspojeni datumioddeleni FK1 idosoby ospisznacka druhrolevrizeni druhspravce nazevosoby nazevosobyobchodni druhosoby druhpravniforma jmeno titulpred titulza ic dic rc datumosobazrusena datumnarozeni PK id ciselnikudalosti idcisudalostiprows popiscisudalosti popiszmeny datumzalozenicisudalosti datumzrusenicisudalosti priznakaninternicisudalosti FK1 FK1 idadresy aspisznacka aidosoby druhadresy datumpobytod datumpobytdo mesto ulice cislopopisne okres zeme psc telefon fax textadresy Obrázek 12 návrh úložiště dat (Zdroj: Autor) 3338 Vzhledem k tomu, že se zatím jedná jen o obsahový návrh úložiště dat, uvedu zdůvodnění některých sporných řešení až u fyzického návrhu úložiště. Návrh byl schválen zástupcem společnosti. 6. ANALÝZA/MODEL TECHNOLOGICKÝ ISIR V této části provádím výběr technologií, které budou použity pro tvorbu Systému. Nejprve uvádím zvolenou architekturu Systému po které následují kapitoly, podle jednotlivých modulů Systému. Pro každý funkční modul Systému tak uvádím nejdříve požadavky a možnosti, kterými by šlo řešení dosáhnout. Po zvolení technologie pak uvádím detailní popis modulu na technologické úrovni Architektura Systému Ještě je nutné podotknout, že i řešení popsané v části analýzy obsahové by šlo realizovat několika způsoby a proto zde specifikuji konkrétní. Mezi fundamentální volby patří například architektura systému. Vycházím z návrhu systému na obrázku 4 v kapitole Vzhledem k tomu, že Společnost předpokládá využití Systému více subjekty, rozhodl jsem se zvolit architekturu klient - server (viz. [31]). Situaci ilustruje obrázek 13. Webová služba ISIR Stahuje data Aktualizační program Nahrává data Vlastní datové úložiště Provádí dotazy Program monitoringu Klient 1 Program monitoringu Klient 2 Program monitoringu Klient 3 Obrázek 13 využití Systému více klienty (Zdroj: Autor) Ale i při zvolené architektuře existují dvě hlavní varianty a velké množství případných modifikací Lehký klient a tlustý server Řešení se snaží realizovat většinu logiky aplikace na straně serveru a stranu klienta využívat pokud možno jen k zobrazení uživatelského rozhraní. Výhodou je větší zabezpečení vlastního zpracování, které se děje na straně serveru (tedy chráněnější), dále přenositelnost aplikací, kdy lze jednoduše vytvořit klientský program pro více platform, protože slouží jen k zobrazení dat a není potřeba přenášet logiku. Od této vlastnosti se pak odvíjí i snadnější úprava logiky, kdy stačí upravit serverovou částí a všichni klienti tak získají novou upravenou funkcionalitu bez nutnosti úpravy klientského programu. Architektura je podobná služebně orientované architektuře, protože funkcionalita serveru lze jednoduše dále nabídnout jako služba. 3439 Tlustý klient a lehký server Řešení předpokládá umístění logiky aplikace na straně klienta a server využívá spíše jen jako úložiště dat. Klienti sami formulují dotazy a řídí si operace, vyžadují spíše čistá data, nad kterými pak realizují funkcionalitu. Řešení snižuje nároky na server a přenáší zátěž na klientské programy, na druhou stranu ale může být náročnější na přenos dat a může přenášet zbytečná data. Dále je řešení méně bezpečné, pokud je klientský program dekompilován, odhaluje strukturu databáze. Stejně tak v případě odposlechu komunikace mohou být odchytávány dotazy a z nich odvozeny vlastnosti databáze. Řešení pak také předpokládá úpravu klientského programu a nutnost jeho přeinstalování v případě větší změny (neparametrizované) funkcionality. Rozhodl jsem se použít řešení lehký klient a tlustý server a to především z toho důvodu, že součástí požadavků Společnosti bylo i vytvoření webové služby prohledávání a tato služba musí umět vyhledávat dlužníky podle stejných kritérií jako monitorovací program, je jednodušší vytvořit webovou službu tak, aby vracela vedle indikace existence dlužníka i data vyžadovaná monitorovacím programem. Systém tak získá všechny výhody řešení lehkého klienta a zároveň bude zaručena konzistence mezi logikou prohledávání. Řešení dále umožňuje i další funkcionalitu jako tvorbu statistik využití služeb podle IP adres a od toho případně odvozené vylepšení Systému. Obrázek 14 ukazuje variantu využití tlustého klienta a případné rozmístění logiky do více částí (ještě mohou existovat různé verze klientského programu s různou logikou), zatímco obrázek 15 ukazuje využití lehkého klienta, kdy je veškerá logika umístěna na straně serveru u databáze. Aktualizační program Databáze Webová služba prohledávání (logika) Monitorovací klient 1 (logika) Monitorovací klient 2 (logika) Monitorovací klient 3 (logika) Obrázek 14 varianta tlustého klienta (Zdroj: Autor) 3540 Aktualizační program Databáze Webová služba prohledávání (logika) Monitorovací klient 1 Monitorovací klient 2 Monitorovací klient 3 Obrázek 15 varianta lehkého klienta (Zdroj: Autor) 6.2. Úložiště dat Úložiště dat musí splňovat požadavky Společnosti (viz kapitola 5.3.1) a musí být schopno uchovávat data specifikovaná v návrhu úložiště (viz kapitola 5.7). Tedy musí se především jednat o databázi, která je schopna komunikovat dotazovacím jazykem SQL [25]. Druhá podmínka vyřazuje z voleb historické technologie databází, např. hierarchické, nebo síťové, kterými se nebudu zabývat. Při těchto základních požadavcích se z hlediska databázové technologie [32] nabízí tato řešení: Relační databáze [33] Objektová databáze [34] Relačně-objektová databáze [35] Relační databáze Relační databáze splňuje veškeré požadavky Společnosti, naopak Společnost by použití relační databáze preferovala. Technologie vychází z matematických teorií E.F.Codda [36] a poskytuje tak na rozdíl od ostatních i pevné teoretické základy. Z praktického hlediska je potom využití relační databáze bezproblémové, Společnost má zkušenosti s použitím relačních databází, jedná se o technologii, která umožňuje komunikaci pomocí SQL a případně dalších procedurálních jazyků v závislosti na konkrétní databázi, většina nástrojů a programovacích jazyků nabízí podporu komunikace s relačními databázemi a databázi je možno provozovat jak vlastními prostředky, pomocí externího provozovatele webhostingu [37], nebo pomocí Iaas/Paas [38], jako např. Amazon [39], Microsoft [40] a další. Nevýhody použití relační databáze v tomto případě nemá, požadavky na Systém neobsahují žádné problémové situace, jako ukládání velkých grafických souborů, nebo nutnost uložení strukturovaných XML dat. 3641 Objektová databáze Použití objektové databáze by sice umožnilo ukládat specifikovaná data a navíc by nabídlo lepší provázanost s typickým objektovým jazykem, ale vzhledem k tomu, že ukládaná data jsou poměrně velmi jednoduchá a nejedná se o komplikované objekty (kdy použití objektové databáze šetří čas i prostředky), databáze by ve výsledku byla spíše pomalejší. Dále by nemuselo být dostupné typické SQL, ale spíše OQL (Object Query Language), což by komplikovalo tvorbu jednoduchého webového rozhraní pro dotazování. K objektovým databázím existuje méně nástrojů, celková podpora je nižší a i poskytovatelé databázových služeb spíše nabízejí klasické relační databáze. Použití objektové databáze bych tedy v tomto případě jak kvůli jednoduchému návrhu, tak kvůli nákladům nedoporučil Relačně-objektová databáze Relačně objektové databáze kombinují přístup obou výše jmenovaných, snaží se spojit výhody relačních databází, především SQL, ale zároveň nabízejí některé možnosti objektových, jako např. jednoznačné databázové identifikátory, ukládání polí v tabulkách, vlastní typy, funkcionalitu objektů, nebo dědičnost [29]. Bohužel stále přetrvávají některé problémy, jako nižší podpora a obvykle vyšší náklady při správě a pořizování. Společnost opět nemá s relačně objektovými databázemi zkušenosti a potencionální výhody objektového přístupu by v tomto případě nevyužila. Použití objektově relační databáze bych tak nedoporučil Volba technologie Úložiště jsem se rozhodl realizovat pomocí relační databáze a to především z toho důvodu, že se jedná o velmi rozšířenou technologii. Existuje k nim velká podpora a velká uživatelská komunita, tedy lze předpokládat, že nenastane neznámá kritická chyba a i v případě že by nastala, bude pravděpodobně brzy odstraněna. Navíc Společnost má s technologií zkušenosti a vlastní i server provozující relační databáze Webová služba prohledávání Webová služba musí splňovat požadavky specifikované v kapitole Vzhledem k tomu, že služba má vracet standardní html stránku, která má obsahovat jednoduchou odpověď ANO/NE a případně i identifikaci insolvenčního řízení a jeho poslední události, předpokládám řešení pomocí skriptovacího jazyka na straně serveru, konkrétně PHP. Funkcionality by šlo samozřejmě dosáhnout i mnoha jinými prostředky, například JSP (Java Server Pages), ASP a podobné, ale tyto technologie jsou výrazně náročnější na zdroje na straně serveru (například instalace balíčku s ASP a podobné) a ne všichni poskytovatelé toto vybavení nabízejí. Na druhou stranu PHP se v průběhu let stalo prakticky všudypřítomné (viz [41]) a naprostá většina poskytovatelů hostingu nabízí i PHP interpret, navíc Společnost má s vývojem řešení v PHP zkušenosti, čímž se usnadňuje i případný další vývoj řešení. 3742 Volba technologie Na základě předchozího zdůvodnění a po konzultaci se zástupcem Společnosti jsem se rozhodl webovou službu prohledávání realizovat pomocí řešení jazyka PHP Detailní popis webové služby Níže uvádím detailní popis funkcionality webové služby z procedurálního pohledu a následně popis architektonický z objektového pohledu, které dle mého názoru zajistí dostatečný a vyčerpávající definici požadavků na webovou službu Popis funkcionality Požadovaná funkcionalita webové služby byla popsána v kapitole Vstupní data jsou v tomto případě parametry předávané metodou GET v URL. Webová služba má vracet html formulář s odpovědí ANO v případě existence a NE v případě neexistence vyhledávaného subjektu v databázi. V části 3.1 jsem potom tyto návratové hodnoty rozšířil i o insolvenční značku a datum poslední události k hledanému insolvenčnímu řízení. Podle požadavků Společnosti má služba vyhledávat subjekty podle těchto kritérií: Fyzická osoba o Rodné číslo o Jméno, příjmení a rodné číslo o Jméno, příjmení a datum narození Právnická osoba o Identifikační číslo o Název Vzhledem k tomu, že data poskytovaná webovou službou ISIR umožňují i výskyt identifikačního čísla u fyzických osob (podnikatelé), po konzultaci se Společností jsem rozšířil vyhledávání u fyzické osoby o identifikační číslo. Před formulací samotného procesu vyhledávání nejdříve popíši funkcionalitu celé webové služby vyhledávání: Služba přijme data předaná parametry metodou GET v url. Služba vyhodnotí zda-li je zadána smysluplná kombinace parametrů. Služba validuje přijaté parametry (formát data, validita RČ/IČ). Služba provede vyhledávání a zobrazí výsledek. Popis chování služby je na obrázku43 Nastal požadavek na vyhledání Vypsání chybové zprávy NE Jsou zadány smysluplné parametry? ANO NE Jsou parametry validní? ANO Vyhledání dlužníka podle zadaných parametrů Vypsání výsledku vyhledání Obrázek 16 popis chování webové služby vyhledání (Zdroj: Autor) Samotný proces vyhledávání má probíhat tak, že se snaží co nejdříve nalézt nejjistější shodu a tedy má vyhledávat od jednoznačných identifikátorů po nejednoznačné. Zároveň ale v případě nenalezení dlužníka podle jednoznačných, již nemá vyhledávat podle nejednoznačných. Tedy u fyzické osoby je nejvhodnější vyhledávat podle identifikačního čísla a pokud není nalezena shoda, vyhledávání ukončit, protože součástí vyhledávání sice mohl být dotaz se zadaným jménem, příjmením, datem narození a identifikačním číslem, ale osoba s daným číslem v databázi neexistuje. U názvů, jmen a příjmení by vyhledávání mělo být tolerantní a tedy vyhledávat i subjekty, jejichž atributy obsahují vyhledávaná data, tedy např. při vyhledávání jména "arel" by měl být nalezen dlužník se jménem "Karel". Dále byl přidán požadavek na záměnu identifikačního a rodného čísla v případě jejich neshody a nenalezení podle předchozího vyhledávání u fyzických osob. Samozřejmě počet možných výsledků musí být omezen pro zamezení posílání příliš obecných dotazů. Na základě těchto požadavků jsem formuloval proces vyhledávání, tak jak ho má webová služba prohledávání provozovat a který je na obrázku 17. Pro vyšší přehlednost jsem varianty rozhodnutí "ANO" označil zeleně a varianty "NE" červeně. Proces předpokládá smysluplná vstupní data, tedy alespoň jedno zadané kritérium. 3944 Nastal požadavek na vyhledání dlužníka Vyhledání podle IC ANO Je zadáno IC? ANO Jedná se o fyzickou osobu? NE Je zadáno IC i název? ANO Vyhledání podle názvu a IC NE NE Vyhledání podle RC ANO Je zadáno RC? Je zadáno IC? ANO Vyhledání podle IC NE NE Vyhledání podle jména, data narození a příjmení ANO Je zadáno datum, jméno a příjmení? Vyhledání podle názvu Byl nalezen dlužník? NE Nalezen dlužník, vrácena insolvenční značka ANO Byl nalezen dlužník? ANO Je zadáno jak RC a IC? NE ANO ANO NE Rovnají se? ANO Dlužník nenalezen NE Vyhledání dlužníka podle IC s parametrem RC Byl nalezen dlužník? NE Obrázek 17 vyhledání dlužníka ve webové službě prohledávání (Zdroj: Autor) Konceptuální model webové služby Po formulování chování webové služby jsem se rozhodl definovat architektonický pohled na webovou službu vyhledávání pomocí objektového přístupu. Jelikož služba bude vytvořena v programu PHP, který od verze 5 umožňuje objektový přístup (viz. [42]), a věřím, že objektový přístup k definování služby může zvýšit její přehlednost a případně usnadnit další úpravy. Model je na obrázku45 Prohledej -RC -IC -druhosoby -nazev -prijmeni -datumnarozeni +prohledej() -kontrolafyzicka() -kontrolapravnicka() -vytvorqueryfyzicka() -vytvorquerypravnicka() -hledej() -pripojit() -vypischybu() -vypisvysledek() -upravrc() Obrázek 18 objektový model webové služby (Zdroj: Autor) Služba je na modelu definována jako jeden objekt se vstupními parametry, které již byly popsány výše. Jedinou úpravou je použití parametru název jako název pro právnické subjekty a jako jméno pro fyzické. Její metody pak umožňují funkcionalitu definovanou v předchozí kapitole a jsou vytvořeny tak, aby měly jednoznačný účel. Níže uvádím popis a účel metod: "prohledej" je hlavní metodou třídy, která spouští vyhledávání a používá ostatní metody. Nejprve zkontroluje zadané parametry, vytvoří dotaz který následně vyhledá a zobrazí výsledek. "kontrolafyzická" je metoda, která kontroluje validitu a smysluplnost zadaných dat pro fyzické osoby. "kontrolapravnicka" je obdobou předchozí metody pro právnické osoby. "vytvorqueryfyzicka" slouží k vytvoření dotazu na databázi se zadanými parametry pro fyzické osoby. "vytvorquerypravnicka" je obdobou předchozí metody pro právnické osoby. "hledej" slouží k samotnému hledání subjektu se zadaným dotazem. "pripojit" slouží k připojení (vytvoření objektu připojení) na databázi. "vypischybu" je metoda pro vypsání chyby z jakékoliv jiné metody. "vypisvysledek" slouží ke správnému naformátování a vypsání výsledku. "upravrc" je metoda pro úpravu formátu rodného čísla v dotazu (metodu jsem přidal na základě vlastních zkušeností, kdy většina údajů o subjektech se nedrží jednotné konvence v případě rodných čísel a balíky dat tak obsahují údaje jak s lomítkem, tak bez. Tedy obvykle ve všech svých programech zajišťuji převod na jednotný formát pokud možno u všech vstupů) Úprava výstupních dat webové služby V návaznosti na kapitolu 6.1, kde jsem se rozhodl používat webovou službu i pro dotazy monitorovacího programu, bude nutné upravit i požadovaná výstupní data webové služby. Zatímco 4146 původní požadavek Společnosti bylo zobrazovat prosté ANO/NE (viz. kapitola 5.3.4) monitorovací program bude potřebovat i zobrazení případného insolvenčního řízení a poslední události která v daném řízení nastala. Protože Společnost již zveřejnila rozhraní ANO/NE jednomu externímu subjektu, rozhodl jsem se provozovat obě varianty, pomocí dvou verzí webové služby, jen s pozměněným URL. Úprava bude spočívat v rozdílných dotazech na databázi a rozdílném zobrazení výsledku vyhledávání Aktualizační program Aktualizační program by měl splňovat požadavky popsané v kapitole a zároveň poskytovat základní grafické rozhraní určené k jeho obsluze, popřípadě zjištění chyby, tak jak je navrženo v kapitole K dosažení těchto cílů by šlo použít různé programovací jazyky [43]. Abych se vyvaroval velkého množství posuzovaných možností, uvedu základní kritéria, která by technologie měla splňovat. Tato základní kritéria vychází z požadavků Společnosti. Na výběr uvádím jen technologie s objektovými jazyky z důvodu jejich rozšířenosti, naopak nevěnuji se exotickým řešením, protože by pravděpodobně předpokládaly určitou vstupní investici a navíc by jejich další rozvoj mohl být problematický. Mělo by se jednat o technologii široce používanou, s velkou podporou. Technologie by měla být dostupná buď zdarma, nebo se jednat o technologii, kterou má Společnost licencovanou. Technologie musí umožňovat spolupráci s relační databází. Technologie nemusí být optimalizována pro nejvyšší výkon, ale spíše pro jednoduchost správy, vývoje a případných dalších úprav. Uvedená kritéria splnily tři platformy: Platforma.NET, Společnost vlastní licence pro použití jejích vývojových prostředků a používá je již ve svých jiných projektech. Platforma Java, v požadovaných verzích je dostupná zdarma Platforma.NET Platforma.NET je vyvíjena společností Microsoft [44]. Jedná se o rozsáhlou platformu, která obsahuje mnoho programovacích jazyků pro různá řešení. Všechny jazyky jsou vždy kompilovány do kódu platformy a díky tomu je možné používat na jedné stanici s podporou platformy jakákoliv její řešení (samotný přeložený kód je spouštěn na virtuálním stroji). Vývojové prostředky platformy jsou sice placené, ale Společnost již vlastní licence a zabývá se tvorbou řešení postavených na platformě. K platformě je široká podpora společnosti Microsoft a existuje k ní mnoho komunitních stránek, potencionální problémy tak pravděpodobně budou mít jednoduše dostupné řešení. Stejně tak k platformě díky jejímu použití existuje široká nabídka frameworků a metodik vývoje. Platforma 4247 obsahuje i prostředky pro spolupráci s databázemi, její použití je podmíněno buď instalací operačního programu MS Windows, popřípadě instalací rozšiřujícího balíčku na starším operačních programech Windows Platforma Java Platforma Java je vyvíjena společností Sun a oproti.netu nabízí naprostou nezávislost na operačním systému. Opět se jedná o jazyk překládaný do kódu platformy a spustitelný na virtuálním stroji, tedy jazyk také vyžaduje určitou instalaci podpůrného prostředí u klienta. Platforma je v požadovaném rozsahu dostupná zdarma, existuje k ní několik vývojových prostředí, je s ní svázána široká komunita a tedy nabízí podporu. Jazyk velmi dobře spolupracuje s databázemi a umožnil by vývoj řešení. Bohužel jazyk neobsahuje některé komponenty a předpokládá buď jejich vlastní vývoj, nebo nákup (a tedy i dodatečnou investici) od dodavatele. Dále jazyk díky tomu, že je dostupný i zdarma nemá tak kvalitní podporu jako platforma.net. Navíc Společnost již ukončila vývoj svých aplikací na platformě Java a jeho volba by tedy byla nekonzistentní vzhledem ke strategii Společnosti Volba technologie Na základě předchozích bodů a po konzultaci se zástupcem Společnosti jsem se rozhodl vytvořit aktualizační program pomocí platformy.net. Ačkoliv základní požadavky splnily obě zmíněné možnosti, rozhodl jsem se především kvůli zkušenostem s vývojem na platformě, jak mých, tak Společnosti. Dále proto, že větší část aplikačního portfolia Společnosti funguje na aplikacích od společnosti Microsoft a jedná se tak o konzistentní řešení Detailní popis aktualizačního programu Po volbě technologie použité k realizaci aktualizačního programu již mohu přistoupit i k detailnímu popisu jeho chování a architektury. Nejdříve uvádím popis chování aktualizačního programu z procedurálního pohledu u kterého vycházím z požadavků Společnosti, jak byly formulovány v kapitole Následuje model datových tříd poskytovaných službou ISIR, proces nahrání dat do databáze a celý popis je ukončen modelem tříd aktualizačního programu, což odpovídá architektuře programu. Tímto tedy definuji chování programu, data na vstupu, metodu pro zpracování dat a uspořádání programu Proces Aktualizace Proces aktualizace je na obrázku 19 a je formulován za předpokladu ideálního chodu, tedy v případě, že nenastanou komplikace například s připojením k databázi, nebo službě ISIR. V případě výskytu komplikací program vypíše chybovou zprávu a přeruší zpracování podle typu komplikace. Při problémech s připojením na určený čas, při ostatních (např. nevalidní data) zcela a neumožní další aktualizaci. 4348 Uživatel zahájil aktualizaci Získání identifikace posledního záznamu z databáze Databáze Společnosti Služba ISIR Volání služby ISIR s parametrem získaného záznamu Čekej určený čas NE Jsou přijata nová data? ANO Nahrání dat do databáze Databáze Společnosti ANO Bylo zpracování přerušeno uživatelem? Ukončení aktualizace NE NE Bylo více než 500 odpovědí? Obrázek 19 proces nahrávání dat aktualizačním programem (Zdroj: Autor) Z popisu požadavků Společnosti i z procesu aktualizace je vidět, že proces aktualizace vždy ukončen jen v případě akce uživatele a pokud tato nenastane, aktualizace probíhá nekonečně dlouho Model tříd poskytovaných ISIR Webová služba ISIR poskytuje data ve formátu XML. Aktualizační program musí nejprve službu zavolat, specifikovat požadavek na data (tedy buď id, nebo datum), data přijmout, transformovat do objektové podoby a následně uložit do relační databáze. Transformaci lze za předpokladu, že webová služba nabízí svůj interface pomocí formátu WSDL, přenáší data protokolem SOAP a data jsou přenášena v XML struktuře viz [45], provést několika způsoby, kdy nejvhodnějšími je buď vytvořit vlastní mechanismus, který přesně prochází XML strukturu a vytváří programátorem definované objekty, nebo automatické převedení, kdy v se ve vývojovém nástroji referencuje webová služba a vývojový nástroj vytvoří třídy pro práci jak se službou, tak s daty, které poskytuje. Metoda je popsaná např. v [46], nebo [47]. Největší rozdíl mezi 4449 metodami je přenesení odpovědnosti za transformaci a vhodně vytvořené datové objekty s fukcionalitou na stranu tvůrců webové služby a tvůrců vývojového prostředí při automatickém převedení. Pro obě metody uvádím výhody a nevýhody. Vlastní tvorba transformace přináší hlavní výhodu v tom, že programátor přesně ví, které části navrácených dat jsou pro něj důležité a již na vstupu do systému převede data do nejvhodnější možné podoby. Omezuje využití paměti, protože nevytváří pro systém nepodstatné části a zároveň může již k datovým třídám připojit poměrně velkou části funkcionality (především univerzální) bez obav z toho, že nová verze webové služby jeho funkcionalitu nebude podporovat. Dále také snižuje šanci, že kvůli nevhodně definované webové službě se ve vygenerovaných objektech objeví chyby. Hlavní nevýhoda leží v tom, že řešení je zdlouhavější, vyžaduje dobré porozumění poskytovaným datům, způsob získávání dat nemusí být optimalizovaný a zároveň v případě větší změny webové služby může dojít k tomu, že bude nutno předělat buď proces transformace, případně i datové objekty, protože již nebudou odpovídat datům služby. Automatické generování objektů podle reference webové služby je extrémně rychlé, stačí službu referencovat a vývojové prostředí díky poskytnutému popisu služby i dat vytvoří jak prostředky ke komunikaci se službou, tak objekty k práci s jejími daty. Zároveň vytvoří i transformační mechanismus mezi XML a objekty dat. Další výhodou je spolehlivost tohoto řešení, vycházející ze standardního použití mnoha subjekty, ovšem za předpokladu že tvůrce webové služby poskytne validní specifikaci (příklad nevalidního je vidět v [24] v části "Generování klienta služby podle WSDL"). Mezi nevýhody pak patří šance, že tvůrce používá nevhodné názvy (opět vidět v předchozím zdroji), šance že vygenerované objekty nebudou vůbec schopny s webovou službou komunikovat a díky velkému rozsahu generovaného kódu bude velmi obtížné najít a odstranit chybu, větší využití paměti při použití velkých objektů, které nejsou využívány a nutnost transformovat získané objekty dat v některých případech do dalších objektů, vhodných pro systém. Rozhodl jsem se použít variantu automatického generování prostředků pro komunikaci se službou a to především z důvody úspory času a optimálního převodu dat služby do objektové podoby. Variantu jsem vyzkoušel na testovacím programu a vygenerované prostředky vracely validní odpovědi bez jakýchkoliv problémů. Po tomto rozhodnutí tedy mohu uvést model tříd poskytovaných službou ISIR. Model bych mohl opět jednoduše vygenerovat z vývojového prostředí, ale takto vytvořený přesný model je nepřehledný, proto uvádím vlastní zjednodušený. V modelu jsem vynechal většinu atributů, které jsou již popsány v kapitole 6 a přejmenoval jsem objekty. Model odpovídá vygenerovaným objektům webové služby a je na obrázku50 IsirPub001Data -poznamka : Poznamka Poznamka -vec : Vec -osoba : Osoba -adresa : Adresa -ciselnikudalosti : CiselnikUdalosti CiselnikUdalosti Vec Osoba Adresa Obrázek 20 model objektů poskytovaných službou (Zdroj: Autor) Proces nahrání dat do databáze Proces "Nahrání dat do databáze" je podprocesem procesu aktualizace na obrázku 19. Nahrání dat musí správně převést službou poskytovaná data v objektech (viz obrázek X) na data vhodná k uložení do databáze a tato uložit. Tento proces je tedy hlavní části aplikační logiky aktualizačního programu. Při jeho formulaci je důležité si uvědomit, že model databáze a model dat poskytovaných službou nejsou zcela totožné, toto vychází z podstaty služby, která je replikací databáze. Chování procesu potom vychází především z kapitoly 2.6 a vyjádřil jsem ho takto: Pokud záznam nemá poznámku, jedná se o jednoduchou událost, program zpracuje událost a dále nepokračuje. Pokud záznam obsahuje poznámku, program ji rozkóduje. Pokud poznámka obsahuje číselník událostí jedná se o změnu/přidání číselníku událostí, program ho zpracuje a dále nepokračuje. Pokud poznámka neobsahuje číselník událostí, ale neobsahuje ani věc, nebo osobu, jedná se o událost, program zpracuje událost a dále nepokračuje. Pokud poznámka obsahuje věc, program ji zpracuje a pokračuje dále. Pokud poznámka obsahuje osobu, program ji zpracuje a pokračuje dále. Pokud osoba obsahuje adresu, program ji zpracuje a pokračuje dále. 4651 Proces nahrání dat je na obrázku52 Přišel nový záznam služby ISIR Má záznam poznámku? NE Zpracuj událost ANO Rozkóduj poznámku ANO Jedná se jen o událost? NE Jedná se o nový číselník? ANO Zpracuj číselník událostí NE Obsahuje poznámka věc? ANO Zpracuj věc NE Zpracuj osobu ANO Obsahuje poznámka Osobu? Obsahuje osoba adresu? NE Ukončení zpracování záznamu ANO Zpracuj adresu Obrázek 21 proces nahrání dat do databáze (Zdroj: Autor) 4853 Model tříd aktualizačního programu V návaznosti na předchozí kapitoly, které definovali jak data poskytovaná službou, tak úložiště dat, tedy cíl dat a způsob chování aktualizačního programu jsem vytvořil model tříd, tedy architekturu aktualizačního programu. Při jeho tvorbě jsem se řídil především zásadami popsanými v [10]. Architekturu programu zde chápu podle definice z [10] a to jako "to co se nemění". Cílem architektury je vytvořit dostatečně flexibilní řešení, které umožňuje jak změny služby ISIR na straně jedné, tak případnou změnu databáze na straně druhé. Zároveň by neměla existovat silná vazba mezi uživatelským rozhraním a výkonnou částí programu. Při tvorbě modelu jsem postupoval takto: Vytvořil jsem třídu "Hlavní okno" reprezentující uživatelské rozhraní. Třída musí umět zobrazovat zprávy a proto jsem jí přiřadil metodu "vypisradek". Dále musí umět měnit popis tlačítka mezi stavy "start" a "přerušit", proto jsem přidal metodu "zmenstavtlacitka". Dále jsem třídě přiřadil atributy symbolizující textové pole a tlačítko. Vytvořil jsem třídu "Aktualizace" reprezentující hlavní logiku programu. Protože předpokládám, že Společnost by nebyla spokojena s aplikací, jejíž uživatelské rozhraní při výkonu zpracování nereaguje, bude potřeba aplikaci vytvořit za využití více vláknového zpracování viz např. [47], tomu odpovídají tři soukromé metody "bw_pracuj", "bw_zmena" a "bw_zpracovaniukonceno". První metoda zahajuje práci vlákna, druhá slouží k hlášení změny ve zpracování metodou a třetí činnost, která proběhne při ukončení vlákna. Další soukromou metodou je potom metoda "spustznovaza", která slouží k přerušení činnosti aktualizačního programu na definovaný čas. Veřejné metody potom slouží k ovládání celého programu a tedy metoda "aktualizuj" zahajuje činnost programu a metoda "preruszpracovani" k přerušení zpracování, metody budou používané uživatelským rozhraním. Třída obsahuje i tři konstanty, CEKAT_MINUT specifikuje čas, který má aktualizační program čekat mezi jednotlivými pokusy o nahrávání, START a STOP potom obsahují texty pro tlačítko uživatelského rozhraní. Třída Zpracovani obsahuje dvě konstanty OK a CHYBA, používané k indikaci stavu zpracování, metodu pro získání identifikace posledního záznamu z databáze "vratposledniid", metodu pro získání seznamu odpovědí webové služby "vratzaznamy", metodu pro zpracování jednoho záznamu "nahrajjedenzaznam" a následně soukromé metody třídy pro zpracování jednotlivých entit odpovídající procesu nahrání dat do databáze. Třída Zpracování bude statická, tedy při běhu programu se nevytváří žádná instance této třídy a neuchovává si žádná data mimo jednotlivé metody a konstanty. Stejně tak její metody jsou všechny statické. Interface IStahovatko slouží k definování nutného rozhraní, které musí splňovat třída, aby bylo možné ji používat ke komunikaci s webovou službou. Rozhraní definuje dvě metody, které případné třídy jej implementující musí obsahovat, metoda "vratzaznamy" slouží k získání seznamu záznamů typu IsirPub001Data od webové služby. Metoda 4954 "rozparsujpoznamku" potom k převodu poznámky na datové typy, které může obsahovat (událost, věc atd.). Rozhodl jsem se definovat rozhraní, aby bylo případně možné používat různé varianty třídy komunikující s webovou službou, například v případě její změny. Interface IDatabaze definuje nutné rozhraní, které musí obsahovat třída sloužící ke komunikaci s databází. Zvolil jsem rozhraní z toho důvodu, že v případě změny databáze stačí změnit jen třídu implementující rozhraní a zbytek programu může zůstat beze změny. Interface definuje metody ovládající transakce, připojení a odpojení od databáze a dále metody pro vytvoření objektů pro uložení do databáze, metody pro uložení dat do databáze, metody pro úpravu dat v databázi a metody pro zjištění existence v databázi. Hlavní okno -textovepole -tlacitko +vypisradek() +zmenstavtlacitka() Aktualizace «interface» IStahovatko +vratzaznamy() : IsirPub001Data +rozparsujpoznamku() : Poznamka -CEKAT_MINUT : Integer -START : String -STOP : String +aktualizuj() +preruszpracovani() -bw_pracuj() -bw_zmena() -bw_zpracovaniukonceno() -spustznovaza() Zpracovani -OK : String -CHYBA : String +nahrajjedenzaznam() -zpracujudalost() -zpracujciselnikudalosti() -zpracujvec() -zpracujosobu() -zpracujadresu() +vratposledniid() +vratzaznamy() «interface» IDatabaze +zahajtransakci() +ukoncitransakci() +pripojit() +odpojit() +vytvorudalost() +vytvorvec() +vytvorciselnik() +vytvorosobu() +vytvoradresu() +ulozudalost() +ulozvec() +ulozciselnik() +ulozosobu() +ulozadresu() +upravudalost() +upravvec() +upravciselnik() +upravosobu() +upravadresu() +existujeudalost() +existujevec() +existujeciselnik() +existujeosoba() +existujeadresa() +vratposledniid() Obrázek 22 model tříd aktualizačního programu (Zdroj: Autor) 6.5. Monitorovací program Monitorovací program by měl splňovat požadavky popsané v kapitole a zároveň poskytovat základní grafické rozhraní určené k jeho obsluze, tak jak je navrženo v kapitole K dosažení 5055 těchto cílů by opět šlo použít různé programovací jazyky, jako v předchozí kapitole. Ale z důvodu úspory místa vynechám delší rozbor a jen uvedu další výhody použití platformy.net. Platforma poskytuje excelentní zabudovanou podporu spolupráce s kancelářskými aplikacemi MS Office. Navíc tato podpora je kontinuální, tedy s další verzí MS Office jsou upraveny i nástroje platformy pro spolupráci. Vzhledem k tomu, že všichni klienti Společnosti používají dokumenty aplikací MS Office, je tato podpora velmi důležitá. Vzhled programů platformy je prakticky stejný, jako vzhled operačního programu Windows a programů od společnosti Microsoft. Toto opět usnadňuje použití aplikací klienty. Jedná se o konzistentní technologii používanou Společností, v tomto případě by bylo zbytečné používat jiné prostředky řešení Volba technologie Na základě předchozích bodů a po konzultaci se zástupcem Společnosti jsem se rozhodl vytvořit monitorovací program pomocí platformy.net Detailní popis monitorovacího programu Po volbě technologie opět můžeme přistoupit k detailnímu popisu monitorovacího programu. Vzhledem k jeho odlišné funkcionalitě od aktualizačního se budou lišit i prostředky pro jeho dostatečný popis. Vstupní data jsou v tomto případě dána kapitolou a váže se k nim jen případná validace některých polí (například kontrola validity zadaného RČ/IČ), případná další funkcionalita, jako import z tabulek MS Excel a podobné bude předmětem až dalších rozšíření programu. Nejprve se tedy věnuji uložení dat, popisu funkcionality monitorovacího programu, popisu metody vyhledávání a kapitolu opět uzavírám modelem tříd programu Volba ukládání dat Co se týče uchovávání dat o dlužnících a jejich vyhledávání, požadavek Společnosti byl ukládat tato data do souboru (viz. kapitola 2.3.3). Jako formát ukládaných dat jsem zvolil XML soubor a to především z těchto důvodu: XML soubor lze jednoduše nahrávat a ukládat pomocí prostředků.net. Prostředí.NET umožňuje uložení dat v objektech do XML bez silné vazby na definic dat, tedy při změně definice objektů dat se automaticky při jejich použití změní i XML soubor. Stejně tak při načítání XML souboru jsou ignorována přebytečná data v něm. XML soubor je poměrně dobře čitelný i za použití textových editorů. 5156 Procedurální popis funkcionality Vzhledem k popisu požadavků Společnosti na funkcionalitu monitorovacího programu jsem definoval hlavní procesy, které musí program umožňovat: Editace (přidání, smazání) případů/osob k vyhledání. Vyhledání případů v databázi ISIR. Tisk detailu nalezeného insolvenčního řízení. První dva procesy jsem z důvodu úspory místa a jejich jednoduchosti umístil na jednom obrázky, procesy jsou na obrázku 23. Uživatel editoval případ Uživatel zahájil vyhledávání Aktualizace dat programu, validace Vyhledávání případů a jejich aktualizací v databázi ISIR Případ je změněn Uložení případů do zdroje dat (soubor) Zobrazení aktualizovaných případů Obrázek 23 procesy editace a vyhledání monitorovacího programu (Zdroj: Autor) Třetím a komplikovanějším procesem je potom tisk detailu případu. Ten by měl sloužit k zobrazení vyčerpávajícího výpisu celé historie insolvenčního řízení a měl by se podobat výpisu z ISIR v kapitole 2.6. Proces se v případě akce uživatele pokusí vyhledat daný případ a pokud je úspěšný, vypíše detail řízení do souboru. Proces je na obrázku57 Uživatel požaduje tisk detailu insolvenčního řízení Je případ označen jako nalezený? Vyhledání případu v databázi ISIR Načtení detailů řízení z databáze ISIR Byl případ nalezen? Insolvenční řízení k případu neexistuje Tisk detailů do výstupního souboru Detail insolvenčního řízení je vytištěn Obrázek 24 proces tisku detailu insolvenčního řízení (Zdroj: Autor) Popis metody vyhledávání Vzhledem k přesunutí samotného vyhledávání z monitorovacího programu na webovou službu prohledávání zbývá monitorovacímu programu pouze určit, jakým způsobem webovou službu zavolá. Protože obecně je preferovaný jistý nález (tedy jistotu že se jedná o vyhledávaný subjekt a ne jen o shodu jmen), monitorovací program musí postupovat od Identifikačního čísla a rodného čísla ke jménu, příjmení a datu narození, nebo názvu subjektu, ale na rozdíl od webové služby monitorovací program by se měl postupně pokusit nalézt výskyt podle všech validních možností vyhledávání. Tento postup vyplynul z konzultací se zástupcem Společnosti a zároveň vede k nižšímu zatížení webové služby, kdy pravděpodobnější nález sníží šanci na potřebu dalšího dotazu. Proces, metoda vyhledání je na obrázku 25. Opět jsem pro vyšší přehlednost obarvil určité varianty rozhodovacích částí procesu a dále také úspěšné a neúspěšné konce. 5358 Požadavek na vyhledání případu Vyhledej fyzickou osobu s IC ANO Je vyplněné IC? ANO Je subjekt fyzická osoba? NE Je vyplněné IC a název? ANO Vyhledej právnickou osobu s názvem a IC NE NE Byl nalezen dlužník? NE Je vyplněné RC? ANO Vyhledej fyzickou osobu s RC Je vyplněné IC? NE Byl nalezen dlužník? ANO ANO NE Vrať insolvenční případ a datum události ANO Byl nalezen dlužník? NE Vyhledej právnickou osobu s IC Byl nalezen dlužník? ANO Vrať insolvenční případ a datum události ANO NE ANO Byl nalezen dlužník? Vyhledej fyzickou osobu se jménem, příjmením a datem narození ANO Je vyplněné jméno, příjmení a datum nar? NE Je vyplněn název? ANO Vyhledej právnickou osobu s názvem Byl nalezen dlužník? NE NE Dlužník nenalezen NE Dlužník nenalezen NE Obrázek 25 metoda vyhledávání monitorovacího programu (Zdroj: Autor) Model tříd monitorovacího programu Stejně jako v případě aktualizačního programu jsem vytvořil model tříd, tedy architektonický pohled monitorovacího programu. Řešení tentokrát není tak univerzální co se týče definování rozhraní a jeho hlavním cílem je oddělit funkcionalitu tříd podle jejich zaměření. Ve výsledku je jedna třída zodpovědná za uživatelské rozhraní, jedna za správu dat programu a volání vyhledávání a jedna starající se o samotné vyhledávání v databázi ISIR skrze webovou službu vyhledávání. Tento model umožňuje implementaci jak původních požadavků Společnosti, tak funkcionality popsané výše. Model je na obrázku 26 a při jeho tvorbě jsem postupoval takto: Vytvořil jsem třídu "Hlavní okno" zodpovědnou za uživatelské rozhraní. Třída obsahuje především grafické objekty, jak byly zobrazeny v kapitole a to "TabControl" (záložky), tlačítka pro zahájení a přerušení prohledávání, tabulku pro zobrazení případů a indikátor postupu vyhledávání. Vytvořil jsem třídu "Monitor" zodpovědnou za správu datového zdroje (souboru s dlužníky) a zpracování (tedy zastínění detailů vyhledávání před uživatelským rozhraním). Metoda "nahrajsoubor" slouží k nahrání zdrojového souboru s dlužníky (případy) a "ulozsoubor" potom k jeho uložení. Metody "bw_pracuj", "bw_zmena" a "bw_zpracovaniukonceno" slouží k řízení více vláknového zpracování. Metoda "prohledej" se potom stará o správné použití vyhledávácí třídy ("FunkceISIR"), předání vyhledávácích parametrů a následně opět předání výsledků uživatelskému rozhraní ke zobrazení. Metoda "preruszpracovani" je potom pro 5459 možnost validního přerušení zpracování. Třída obsahuje ještě interní třídu "Pripad", což je obalová třída pro data podle návrhového vzoru přepravka viz. [10]. Třída "FunkceISIR" je potom funkční částí obstarávající využití webové služby vyhledávání. Tentokrát jsem nezvolil rozhraní (interface) jako u aktualizačního programu z toho důvodu, že webová služba vyhledávání je zcela v mé režii (případně Společnosti) a tedy nepředpokládám nečekané změny, které by těžily z výhod rozhraní. Třída má atributy specifikující způsob připojení ke službě (http/https) a adresu služby. Metoda "hledejpripadphp" potom slouží k zapouzdření celé logiky vyhledávání, tak jak byla popsána v předchozí kapitole. Metoda "upravadata" k převedení zadávaných dat do formátu používaného webovou službou a metoda "nactistranku" ke komunikaci s webovou službou. Metody "hledejfyzickou" a "hledejpravnickou" potom využívají metodu "nactistranku" jsou přetíženy s různou kombinací hledaných parametrů dlužníků. Tedy metoda "hledejpripadphp" využívá různě parametrizované metody "hledejfyzickou"/"hledejpravnickou" ke zjištění existence dlužníka v databázi ISIR. Hlavní okno -zalozky -tlacitkoprohledej -tabulka -menu -tlacitkoprerusit -progressbar FunkceISIR -metodapripojeni : String -adresasluzby : String +hledejpripadphp() -upravadata() -nactistranku() -hledejfyzickou() -hledejpravnickou() Monitor +nahrajsoubor() +ulozsoubor() -bw_pracuj() -bw_zmena() -bw_zpracovaniukonceno() +prohledej() +preruszpracovani() Obrázek 26 model tříd monitorovacího programu (Zdroj: Autor) 7. ANALÝZA/MODEL IMPLEMENTAČNÍ ISIR Analýza implementační navazuje na předchozí části a vychází ze specifikace popsané v kapitole Jejím smyslem je popsat a zvolit konkrétní prostředky pro dosažení funkcionality Systému. Výstupem bude tedy volba programovacího jazyka pro aktualizační a monitorovací program, volba databázové technologie a fyzický datový model databáze. 5560 7.1. Úložiště dat Úložiště dat bude realizováno pomocí technologie relační databáze. Jelikož se jedná o široce používanou technologii, můžeme pod pojmem narazit na větší množství konkrétních produktů. Pro volbu tak vybírám jen velmi známá řešení a níže uvádím kritéria, podle kterých jsem se rozhodoval Kritéria rozhodování Jelikož prakticky všechna uvedená řešení splňují požadavky Společnosti na datové úložiště, kritéria se odvíjejí především od ceny samotného úložiště, ceny nástrojů k jeho ovládání, míry podpory (jak oficiální, tak komunitní) a zkušeností Společnosti s řešením Microsoft SQL Server Jedná se o produkt společnosti Microsoft, který umožňuje správu a podporu mnoha dalším nadstavbám a aplikacím. Pomocí této datové základny jsou řešeny aplikace ERP, BI, CRM a další. Server umožňuje snadnou správu pomocí integrovaného ovládacího rozhraní SQL Server Management Studio, umožňuje přístup mnoha technologiím, splňuje nárok na použití SQL dotazovacího jazyka, má vysokou úroveň zabezpečení a zároveň přináší i nástroje pro snadnou migraci dat. Na druhou stranu komerční využití serveru je nákladné (viz Microsoft) a Společnost by tak musela investovat do jeho využití (ať už nákupem licence, nebo nákupem v MS cloudu). Míra podpory je vysoká, jak na straně oficiální (MSDN), tak na mnoha komunitních stránek. Dále Společnost toto řešení nikdy nevyužívala MySQL Je databázovým řešením vyvíjeným společností Sun (později koupená Oracle). Nabízí jak komerční, tak volné využití a navíc je častým řešením používaným u hostitelů stránek. Společnost již databázi v mnoha řešeních využívala a v současné době vlastní několik připravených MySQL databází. Cena je v tomto případě prakticky nulová, protože by šlo využít již existující databázi. K ovládání databáze lze použít například phpadmin, široce používané prostředí pro správu MySQL databází postavené na skriptovacím jazyku PHP, nebo MySQL administrator tools, případně novější verzi MySQL Workbench. Míra podpory je opět vysoká a to jak komunitní, tak případně na oficiálních stránkách Volba úložiště Splnění výše definovaných kritérií shrnuje tabulka 6 a podle ní jsem se nakonec rozhodl použít k ukládání dat databázové řešení MySQL. Tabulka 6 porovnání databází podle kritérií (Zdroj: Autor) Kritérium MS SQL Server MySQL Cena Vysoká Nulová Podpora Vysoká Vysoká Nástroje Dobré Dobré 5661 Zkušenosti Společnosti Nízké Vysoké 7.2. Fyzický datový model Při konstrukci fyzického datového modelu jsem vycházel z modelu konceptuálního, zobrazeného na obrázku X v kapitole 5.7. Vzhledem k mým sporným zkušenostem s generováním fyzických modelů a také volbou technologie k formulaci konceptuálního modelu MS Visio 2010, která nepodporuje generování SQL (forward engineering není od verze 2003 podporován) jsem se rozhodl vytvořit fyzický model pomocí nástrojů správy databáze MySQL Workbench. Vedle toho jsem se rozhodl vytvořit i model v nástroji Visio, abych ho v případě potřeby mohl zaslat třetí straně. Model bych sice mohl kdykoliv zaslat i jako SQL skript, nebo jako obrázek vytvořený v nástroji správy, ale Visio se mi již v minulosti osvědčilo. Navíc lze zaslat i samotný model, který lze jednoduše editovat. Fyzický model je na obrázku 27. věc PK id INTEGER spisznacka VARCHAR(50) druhstavrizeni TEXT(255) datumveczrusena DATETIME Udalost PK id INTEGER idudalosti INTEGER oddil VARCHAR(20) poradioddil INTEGER datumzrusena DATETIME obecnytext datumpravnimoci DATETIME priznakvedlejsiudalost priznakvedlejsidokument cas DATETIME iddokument typ typtext FK1 uspisznacka VARCHAR(50) idosobypuvodce bcvechlavni INTEGER druhvechlavni rocnikhlavni INTEGER datumspojeni DATETIME datumioddeleni DATETIME Osoba PK id INTEGER idosoby VARCHAR(50) FK1 ospisznacka VARCHAR(50) druhrolevrizeni druhspravce nazevosoby nazevosobyobchodni druhosoby druhpravniforma jmeno titulpred titulza ic dic rc datumosobazrusena DATETIME datumnarozeni DATETIME ciselnikudalosti PK id INTEGER idcisudalostiprows INTEGER popiscisudalosti popiszmeny datumzalozenicisudalosti DATETIME datumzrusenicisudalosti DATETIME priznakaninternicisudalosti Adresa PK id INTEGER idadresy VARCHAR(20) FK1 aspisznacka VARCHAR(50) FK1 aidosoby VARCHAR(20) druhadresy datumpobytod DATETIME datumpobytdo DATETIME mesto ulice cislopopisne okres zeme psc telefon fax textadresy Obrázek 27 fyzický model databáze (Zdroj: Autor) Obhajoba řešení fyzického modelu Fyzický model databáze nesplňuje některé zásady tvorby databází popsané například v [33]. Každé tabulce jsem přiřadil umělý identifikátor typu integer, který je generován databází, ačkoliv tabulky již obsahují své identifikátory z databáze ISIR a to z důvodu, že v minulosti, když jsem pracoval s databází ISIR jsem narazil na občasné nekonzistence v jednoznačných identifikátorech, respektive neošetřenou diakritiku v primárních klíčích. Navíc Společnost vyžaduje používání jednoznačných 5762 identifikátorů typu integer u všech svých databází. Co se týče normalizace databází, existují různé názory a jako velmi výstižný mi přijde pojem "přirozená míra normalizace" zmíněný například v přednášce z MS festu 2011 [MS 30], podle tohoto zdroje dále řešení s umělým identifikátorem poskytuje tyto výhody: neměnnost velmi rychlé SQL operace (JOIN atp.) monotónní růst = vhodný pro clustered index zajišťuje unikátnost klíčů pro nové záznamy Další odchylkou modelu je neexistence referenční integrity v databázi. Cizí klíče (např. uspisznacka) odkazují na atribut spisznacka, který není primárním klíčem. Ačkoliv by se toto mohlo zdát jako nevhodné řešení, tak je přijatelné, protože databáze je pouhou kopií databáze ISIR a data se z databáze nemažou. Deaktivace, respektive neplatnost záznamů je řešena pomocí atributy "datumzrušení", popřípadě "datumpobytdo" u entity Adresa. Navázání cizích klíčů na neprimární klíče tak poskytuje určitou úsporu místa, kdy se nemusí vytvářet další atribut s identifikátorem typu integer. Druhým řešením, které by poskytovalo referenční integritu by bylo vynechání současných cizích klíčů (např uspisznačka) a jejich nahrazení cizím klíčem typu integer, ale po konzultaci se zástupcem Společnosti jsme se rozhodli raději zachovat cizí klíče poskytované databází ISIR. Zároveň se tak objevuje i informace o insolvenčním řízení, ke kterému osoba/událost patří u těchto entit bez potřeby dotazovat se dále na danou věc Aktualizační a monitorovací program Vzhledem k volbě platformy.net pro vývoj jak aktualizačního, tak monitorovacího programu zbývá zvolit jeden z možných přístupů a následně konkrétní programovací jazyk pro vývoj. Zvolený jazyk by měl splňovat nároky na realizované programy, tedy možnost zobrazovat relativně přívětivé a ideálně standardní uživatelské rozhraní, komunikaci s databází a webovými službami. Pokud se zaměříme na nejnovější podporované možnosti řešení, tak se nabízejí dvě: WPF (Windows Presentation Foundation) technologie zaměřená na oddělení vzhledu a logiky aplikace. Uživatelské rozhraní je formulováno především pomocí jazyka XAML, který je vychází ze značkovacího XML. Řešení silně podporuje i separátní vývoj, kdy uživatelské rozhraní je vytvářeno grafikem pomocí nástrojů Expression tools a logika aplikace programátorem pomocí Visual studia. WinForms, starší technologie vývoje klasických aplikací operačního systému Windows. Přebírá vzhled operačního systému a je zaměřena především na snadný a rychlý vývoj typické aplikace s databází, uživatelským rozhraním a spoluprácí s MS Office především pomocí událostmi řízeného modelu. 5863 Protože Společnost nevyžaduje nestandardní uživatelské rozhraní a opět má zkušenosti především se starším modelem WinForms, rozhodl jsem se použít WinForms Volba konkrétního programovacího jazyka Platforma.NET nabízí větší množství programovacích jazyků, které jsou následně kompilovány do univerzálního kódu. Volba samotného jazyka je spíše kosmetickým dilematem, případně volbou Společnosti pro sjednocení jejího programového portfolia. Jelikož většina aplikací Společnosti je realizována pomocí jazyka Visual Basic rozhodl jsem se ho použít i zde. 8. IMPLEMENTACE ISIR V této kapitole rozebírám samotnou tvorbu Systému vycházející z analýzy a postupuji podle kapitoly 4.2. Implementace proběhla v několika fázích, nejdříve jsem vytvořil databázi a aktualizační program. Poté jsem obě řešení testoval a v přírůstcích upravoval funkcionalitu. Následovala tvorba webové služby prohledávání a na ní navazující monitorovací program. Rozhodl jsem se zachovat toto chronologické členění i v textu diplomové práce. Implementace probíhá v jednotlivých přírůstcích, iteracích, které vždy zahrnují vytvoření určité části řešení, jeho testování a následné použití (nasazení) Přírůstek 1. Cílem prvního přírůstku je založit databázi pro uchování dat a zprovoznit funkcionalitu aktualizačního programu. Tento cíl byl definován Společností jako prioritní, aby ve chvíli zprovoznění monitorovacího programu již byla databáze aktualizována. Výstupem přírůstku tak je databáze a aktualizační program Tvorba databáze Od zástupce Společnosti jsem získal přístupové údaje k serveru Společnosti a pomocí nástroje správy MySQL WorkBench jsem na serveru založil databázi pro replikaci dat ISIR. Prostředí tvorby databáze pomocí nástroje je na obrázku 28. Co se týče zabezpečení přístupu do databáze, rozhodl jsem se použít kombinaci náhodně generovaného silného hesla a filtrování IP adres, které mají přístup k zápisu. Zároveň jsem pro účely vývoje a testování založil stejnou databázi na lokálním serveru vývojového počítače. Toto jsem udělal z důvodu snadnějšího testování (nemohou nastat problémy s připojením na databázi) a zároveň také, abych oddělil testovací a provozní prostředí a neprováděl neodzkoušené změny na provozním prostředí. Pro zajištění toho, že jsou databáze identické co se týče definice jsem založení testovací databáze provedl tak, že jsem si nechal z nástroje MySQL WorkBench vygenerovat kódy vytvoření tabulek a tyto SQL příkazy pak nechal proběhnout na lokální testovací databázi. 5964 Obrázek 28 tvorba tabulky v prostředí MySQL WorkBench (Zdroj: Autor) Tvorba aktualizačního programu Aktualizační program má odpovídat funkcionalitě popsané v kapitole a 6.4. Při realizaci jsem vycházel především z publikací [10] popisující vhodné praktiky pro tvorbu řešení pomocí objektově orientovaných jazyků, [49] popisující základy práce s jazykem Visual Basic v prostředí Visual studia 2008 a [50], která se zabývá poměrně vyčerpávajícím způsobem funkcionalitou jazyka, C#. Poslední publikaci jsem zvolil především z toho důvodu, že jsem nenalezl obdobně detailní a kvalitní pro jazyk Visual Basic (pro jeho aktuální verzi) a jelikož jsou oba jazyky součástí platformy.net, lze řešení převádět i pro jazyk Visual Basic (existují i automatizované nástroje pro převod kódu, např. [51]). Dále jsem pro řešení specifických problémů používal především stránky podpory společnosti Microsoft [52] a dále různá komunitní fóra zabývající se tématikou vývoje aplikací, především [53]. Aktualizační program jsem vytvořil v jazyce Visual Basic ve vývojovém prostředí Visual Studio Tvorba Uživatelského rozhraní Uživatelské rozhraní jsem vytvořil pomocí nástrojů tvorby uživatelského rozhraní prostředí Visual Studia. Do implicitně vytvořeného okna jsem vložil textové pole pro výpis a tlačítko ovládající běh programu. Vytvořené okno odpovídá demo verzi z kapitoly65 Tvorba aplikační logiky Při tvorbě aplikační logiky jsem postupoval především podle modelu tříd z kapitoly Rozhraní jsem implementoval konkrétními třídami a tyto jsem odděleně od celku testoval. Testování probíhalo podle metody jednotkového testování [54] definováním vstupních a cílových výstupných dat. V případě nesplnění testu jsem funkcionalitu upravoval. Po splnění všech testů jsem třídy spojil do aplikačního celku a to připojil k uživatelskému rozhraní Testování prvního přírůstku Testování prvního přírůstku mělo za cíl otestovat, zda-li aplikace správně přistupuje k databázi a zda-li aplikace správným způsobem databázi plní. Vzhledem k tomu, že databáze má být replikou insolvenčního rejstříku, tak jako úspěch řešení jsem určil shodu poskytovaných dat mezi databází a rejstříkem. Tuto shodu jsem se rozhodl porovnávat po naplnění databáze výpisem detailů o náhodně vybraných insolvenčních řízeních. Zároveň bylo předmětem testování chování programu, respektive jeho odolnost vůči neošetřeným výjimkám, které by mohli vést buď k nekonzistencím v databázi, nebo k neočekávanému ukončení činnosti programu. Toto chování jsem se rozhodl testovat dvěma metodami. Testování nekonzistencí jsem provedl tak, že jsem v průběhu plnění náhodně přerušoval připojení k internetu a to jak v průběhu komunikace s databází, tak komunikace s webovou službou ISIR. Dále jsem náhodně přerušoval chod databázového serveru, případně odmítal připojení na něj. Zároveň jsem po naplnění databáze prováděl testy dotazující se na duplicitu dat. Ve všech případech byla pomocí transakčního systému (viz. [55]) zachována konzistence dat, nebyla zjištěna duplicita a zároveň aktualizační program neukončil svůj chod neošetřenou chybou. Testování neočekávaného ukončení jsem provedl tak, že jsem aktualizační program pustil jen ve vývojovém prostředí s tím, že jsem jakoukoliv neočekávanou výjimku odchytával a program by detaily o chybě vypsal. V průběhu plnění databáze chyba nenastala. V průběhu testování jsem dosáhl rychlosti přibližně 3150 událostí za minutu. Vzhledem k tomu, že webová služba ISIR poskytovala jako nejvyšší ID události , mohu v nejhorším případě očekávat, že plnění by trvalo přibližně 16 hodin. Na druhou stranu, některá ID událostí nemusejí být použita, tedy pravděpodobně by plnění trvalo kratší dobu. Na obrázku 29 je potom aktualizační program v průběhu nahrávání dat do databáze. 6166 Obrázek 29 aktualizační program plní data (Zdroj: Autor) Nasazení prvního přírůstku Po odladění funkcionality na lokálním prostředí jsme se rozhodli zprovoznit řešení i na serveru Společnosti. Změna vyžadovala jen úpravu připojení na databázi v aktualizačním programu. Při plnění provozní databáze jsme se však setkali s problémem rychlosti plnění. Vzhledem k tomu, že server Společnosti se nachází v Americe, docházelo k poměrně velkým zpožděním při plnění a rychlost plnění klesla na 1000 záznamů za 6 minuty. Tedy plnění databáze by trvalo přibližně 10,5 dne. Vzhledem k tomu, že Společnost chtěla zpřístupnit databázi co nejdříve třetím stranám, byla tato možnost shledána nepřijatelnou. Nabídl jsem Společnosti tři možná řešení: Pokusit se snížit počet dotazů na databázi. Toto řešení by zvýšilo rychlost plnění, protože testováním jsme zjistili, že k největšímu prodlení dochází mezi jednotlivými dotazy. Jelikož aktualizační program používá prakticky atomické dotazy, kdy se při zpracování jednoho záznamu nastane několik dotazů (dotaz na existenci, následně úprava, nebo vložení nového a tato sekvence probíhá pro všechny entity jednoho záznamu), šlo by prodlení snížit zasíláním komplexnějších dotazů. Řešení by vyžadovalo změny na straně aktualizačního programu, který by získával informace o více entitách/záznamech v jednom dotazu a následně po vyhodnocení by opět zaslal změny o více entitách/záznamech v jednom dotazu. Úprava by dále vyžadovala novou fázi testování. Naplnit databázi lokálně, což by trvalo 16 hodin a pak data přenést pomocí nástroje správy databáze. Nejprve bych vytvořil zálohu lokální databáze v jednom SQL souboru a tuto zálohu bych poté nahrál na server databáze. Výhodou řešení je to, že není potřeba úprava aktualizačního programu a zároveň díky přenosu všech dat v jedné dávce je minimalizován vliv prodlení mezi příkazy. Úprava nevyžaduje nové testování. Zvýšit počet připojení na databázi z aktualizačního programu. Aktualizační program by stáhl data např. o 1000 událostech, následně tato data rozdělil a potom pomocí 5 oddělených procesů a připojení nahrával, tedy rychlost plnění by teoreticky mohla být zvýšena počtem 6267 procesů. Řešení by šlo použít za velmi významných úprav aktualizačního programu, protože logika aplikace by se musela umět vyrovnat s případy toho, že jeden proces by vyžadoval data o entitě, kterou jiný proces ještě nestihl založit. Ačkoliv by vzhledem k tomu, že nad databází nikdy neprobíhá mazání dat, šlo toto řešení použít, silně bych ho nedoporučoval. Úprava by dále vyžadovala novou fázi testování. Po konzultaci se zástupcem Společnosti jsme se rozhodli realizovat druhou variantu, tedy naplnit lokální databázi a její zálohu pak přenést na server Společnosti. Řešení nevyžaduje další testování, nebo úpravy programu, jen využijeme funkcionality programu správy databáze. Zároveň ve chvíli naplnění většiny databáze již dostačuje rychlost plnění aktualizačního programu, která řádově převyšuje rychlost přírůstku nových záznamů v rejstříku ISIR Výstupy prvního přírůstku Po realizaci prvního přírůstku jsem získal funkční a aktualizovanou databázi a zároveň funkční program zajišťující další aktualizaci Přírůstek 2 Cílem třetího přírůstku je zprovoznit funkcionalitu webové služby vyhledávání tak, jak byla definována v kapitole 6.3. Výstupem je potom úspěšné zprovoznění a odladění služby Tvorba webové služby vyhledávání Službu vyhledávání jsem vytvořil pomocí textového editoru PSPad. Vytvořil jsem PHP soubor podle návrhu z kapitoly K metodám (funkcím) vytváření dotazu na databázi, tedy "vytvorqueryfyzicka" a "vytvorquerypravnicka" jsem doplnil SQL dotazy podle popisu chování webové služby. Celkem jsem takto tedy vytvořil 3 dotazy pro fyzické osoby a tři dotazy pro právnické osoby. Příklad dotazu pro fyzickou osobu se zadanými parametry jméno, příjmení a datum narození je: "$query = "SELECT ospisznacka, max(cas) FROM `osoba` JOIN `udalost` ON (osoba.ospisznacka = udalost.uspisznacka) WHERE `jmeno` LIKE '%". $jmeno. "%' AND `nazevosoby` LIKE '%". $nazev. "%' AND `datumnarozeni` LIKE '%". $datum. "%' LIMIT 0, 30 ";" Ostatní formulované dotazy jsou obdobou s jinými atributy a parametry Definice rozhraní webové služby Vzhledem k plánovanému použití webové služby i třetími stranami bylo nutné definovat i rozhraní pro validní použití webové služby. Při jeho tvorbě jsem vycházel z kapitoly 5.3.4, která definuje požadavky na toto rozhraní a pouze jsem upřesnil syntaxi a uvedl validní formáty a kombinace parametrů. Původní požadavek Společnosti rozhraní definoval takto: 6368 "www.web_spolecnosti.cz/prohledej_jmeno=karel,prijmeni=novak,rc= " Volání služby tak probíhá specifikací url a následným zavoláním stránky, která zobrazí výsledek. URL si zde můžeme rozdělit na dvě části: "www.web_společnosti.cz/prohledej" je identifikací služby. "_jmeno=karel,prijmeni=novak,rc= " je předání parametrů a jejich hodnot. Toto původní zadání jsem vzhledem k syntaxi a použití php upravil takto: "www.web_spolecnosti.cz/prohledej.php" je identifikací služby. "?osoba=f" je připojením identifikace typu osoby, validní jsou hodnoty "F" jako fyzická a "P" jako právnická. Tento parametr je povinný a musí vždy následovat identifikaci služby. "&jmeno=karel&nazev=novak&rc=111111/1111" jsou nepovinné parametry služby určující již vyhledávaného dlužníka. Jejich pořadí je libovolné a syntaxe je vždy "&" + "parametr=" + hodnota. Povolené parametry jsou "jmeno, nazev, RC, ICF, datum" pro fyzické osoby a "nazevp, IC" pro právnické osoby. Příkladem použití je potom: "www.web_spolecnosti.cz/prohledej.php?osoba=f&jmeno=karel&nazev=novak&rc= /1111" Což je dotaz na vyhledání fyzické osoby Karla Nováka s rodným číslem /1111. "www.web_spolecnosti.cz/prohledej.php?osoba=p&nazevp=bagry&ic= " Což je dotaz na vyhledání právnické osoby s názvem Bagry a identifikačním číslem Definice návratových hodnot webové služby V kapitole 6.1 jsem se rozhodl využívat webovou službu i pro dotazy monitorovacího programu, který potřebuje informace o insolvenčním řízení a datu poslední události tohoto řízení. Zároveň služba musí stále umožňovat vracet jen jednoduché ANO/NE, jak bylo požadováno Společností. Tyto dvě varianty návratových hodnot jsem se rozhodl řešit provozem dvou služeb s rozdílnou identifikací. Tedy na serveru databáze jsem nasadil dvě služby: "www.web_spolecnosti.cz/prohledej.php" je původní služba s návratovou hodnotou ANO, nebo NE. "www.web_spolecnosti.cz/prohledej2.php" je upravená služba, která vrací identifikací insolvenčního řízení a datum poslední události tohoto řízení. Návratová data jsem se rozhodl 6469 vracet oddělené speciálním znakem ",", který se v datech ISIR nepoužívá. V případě nenalezení dlužníka potom služba vrací NE, stejně jako původní verze Testování druhého přírůstku Testování přírůstku proběhlo dvěma způsoby. První testování bylo manuální a náhodné, kdy na různé kombinace zadaných parametrů jsem ověřoval, že služba reaguje správným způsobem. Tedy vrací chybové hlášky při nevalidních parametrech a správné odpovědi jak v případě existence, tak neexistence dlužníka. Druhé testování bylo automatizované, kdy jsem vytvořil velmi jednoduchý program, který volal webovou službu a testoval stejně jako v případě jednotkového testování. Obě metody testování byly úspěšné a odhalili několik nesprávných reakcí způsobených chybami v kódu webové služby. Další sady testování potom vedly ke 100% úspěšnosti Výstupy druhého přírůstku Po dokončení druhého přírůstku Společnost získala funkční službu vyhledávání, kterou začala využívat třetí strana Přírůstek 3 Cílem třetího přírůstku je zprovoznit funkcionalitu monitorovacího programu a nasadit ho u třetí strany, která od Společnosti plánuje odebírat tuto funkcionalitu. Výstupem je tedy úspěšné nasazení programu u třetí strany Tvorba monitorovacího programu Monitorovací program jsem vytvořil podle popisu v kapitole 6.5 za použití stejných postupů a nástrojů jako v kapitole Tvorba uživatelského rozhraní Uživatelské rozhraní monitorovacího programu jsem vytvořil podle návrhu z kapitoly Jako jedinou změnu jsem přidal v horní části textové pole s názvem právě otevřeného souboru. Změnu jsem provedl na základě prvního interního testování, kdy indikace jaký soubor je právě otevřený mi ulehčila práci s programem Tvorba aplikační logiky Při tvorbě aplikační logiky jsem postupoval podle modelu tříd z kapitoly Testování probíhalo opět jednotkovými testy, tedy definováním vstupních a cílových výstupných dat. V případě nesplnění testu jsem funkcionalitu upravoval. Po splnění všech testů jsem třídy spojil do aplikačního celku a to připojil k uživatelskému rozhraní. 6570 Interní testování třetího přírůstku Před nasazení monitorovacího programu u třetí strany jsem program otestoval jako celek. Testy probíhaly v prostředí vývojového studia. Na základě testování jsem přidal barevnou indikaci u případů pro lepší orientaci, protože při zpracování většího množství případů bylo poměrně náročné se orientovat jen v bílých tabulkách. Obarvení jsem udělal podle následujícího systému: V případě nalezení případu je případ obarven růžově. V případě nesprávného formátu některého validovaného atributu (např. datum) je případ obarven modře. V případě nalezení případu poprvé, jeho změny, nebo události, která nastala v posledních sedmi dnech je případ obarven červeně. Jinak případ zůstává bílý. Okno již funkčního programu je na obrázku 30. Obrázek 30 okno monitorovacího programu (Zdroj: Autor) Okno programu ve fázi vyhledávání je na obrázku71 Obrázek 31 okno monitorovacího programu při vyhledávání (Zdroj: Autor) Akceptační testování přírůstku u třetí strany Monitorovací program jsem nasadil k akceptačnímu testování u třetí strany. Vzhledem k tomu, že program nepotřebuje žádné soubory nastavení a XML soubory s daty si vytváří sám, tak jsem pouze zaslal výkonný program s manuálem k jeho provozu. U třetí strany byl program nejprve testován několika pracovníky a posléze byl umístěn na síťový disk a začal být testován všemi pracovníky, kteří jeho funkcionalitu potřebují. Testování přineslo tyto požadavky a výhrady: Program by v případě nalezení dlužníka měl vypsat všechny jeho insolvenční řízení, pokud se vyskytuje ve více a jen poslední (nejvyšší) datum události všech těchto řízení. Program by neměl nalézat osoby, které v insolvenčním řízení vystupují v jiné pozici než dlužník. Program by měl umožňovat vyhledávat fyzické osoby i jen podle jména a příjmení. Třetí strana byla upozorněna, že toto může vést k vyhledání jiného dlužníka, ale stejně na požadavku trvá. Program nevyhledává právnické osoby, u kterých může být v systému třetí strany poznámka "např. v likvidaci", která v databázi ISIR není Řešení akceptačních připomínek V návaznosti na připomínky třetí strany jsem zvolil tyto úpravy řešení monitoringu: Pro vracení všech insolvenčních řízení jsem se rozhodl upravit webovou službu prohledávání tak, že vrací seznam insolvenčních značek a dat posledních událostí s tím, že jednotlivé záznamy jsou odděleny speciální značkou " ", která se v navracených datech nevyskytuje. Úprava byla realizována úpravou SQL dotazů a úpravou funkce zobrazení webové služby. Monitorovací program následně sám určí, která událost je nejvyšší a zobrazí toto datum. 6772 Pro nenacházení osob v jiném stavu než dlužník jsem upravil opět SQL dotaz webové služby. Pro možnost vyhledávání fyzických osob jen podle jména a příjmení jsem přidal další možnost v logice webové služby, která teď v případě zadání jen jména a příjmení utvoří dotaz a pokusí se dlužníka nalézt. Vyhledávání právnických osob s poznámkou jsem se rozhodl řešit úpravou monitorovacího programu, který se v případě nenalezení právnické osoby pokusí zjistit, zda-li se v jejím názvu vyskytuje poznámka a pokud ano, tak se pokusí vyhledat osobu bez poznámky. Další případné odstraňované poznámky budou přidávány až na základě požadavků třetí strany. Případně v budoucích verzích mohu implementovat seznam filtrovaných textů. Třetí strana i Společnost s navrženými řešeními souhlasily Nasazení programu monitoringu Po zapracování oprav připomínek byl program monitoringu úspěšně nasazen u třetí strany. K programu byl předán manuál a proběhlo jednorázové školení pracovníků. Program nevyžadoval žádnou migraci dat, nebo specifické nastavení Výstupy třetího přírůstku Výstupem třetího přírůstku bylo schválení akceptačního řízení a následné úspěšné nasazení monitorovacího programu u třetí strany. 9. PROVOZ A UŽITÍ ISIR V průběhu provozu a užití programu pro monitoring ISIR zatím nenastaly žádné problémy, nebo výhrady s funkcionalitou monitoringu. Monitoring ISIR ale bude dále rozvíjen a doplněn o možnosti monitoringu ARES, kterými se pak zabývá další část práce. 10. ANALÝZA/MODEL OBSAHOVÝ ARES Obsahová analýza ARES je obdobou analýzy ISIR, tedy kapitoly 5 a zároveň budu metodicky postupovat podle definice obsahové analýzy v kapitole 4. Smyslem kapitoly je získat požadavky Společnosti na monitoring vybraných rejstříků ARES Analýza základních požadavků Společnosti Zástupce Společnosti formuloval na schůzce požadavky na řešení monitoringu ARES. Monitoring by měl být v první verzi dostupný především pro právnické osoby a pro Obchodní rejstřík (OR). Monitoring by měl být zabudován do programu monitoring ISIR a měl by fungovat podobným způsobem, tedy umožnit uživateli sledovat změny, které proběhly na obchodním rejstříku u specifikovaných osob. Vzhledem k tomu, že monitoring má být součástí již existujícího programu pro monitoring ISIR, mělo by být rozšířeno okno tak, aby umožnilo zobrazit případy z pohledu ISIR, z pohledu OR a také obecný seznam případů. Další přidávané monitory různých zdrojů by pak vždy 6873 měly mít další vlastní pohled. Obecný pohled by měl sloužit k zobrazení univerzálních informací, například jména, příjmení, názvu apod. a také ke specifikaci, ve kterých zdrojích je případ vyhledáván. Výhledově pro další verze by mělo být možné zobrazovat výpisy detailu subjektu z různých zdrojů ARES Analýza ARES V této části uvádím, co to je ARES, jaká data obsahuje a jakým způsobem je možno k nim přistupovat. Na závěr je pak uveden model, který ukazuje daný stav řešení vzhledem k možnostem ARES Definice ARES ARES, tedy Administrativní registr ekonomických subjektů je "informační systém, který umožňuje vyhledávání nad ekonomickými subjekty registrovanými v České republice. Zprostředkovává zobrazení údajů vedených v jednotlivých registrech státní správy, ze kterých čerpá data (tzv. zdrojové registry)." [56]. ARES potom obsahuje tyto majoritní zdroje: Obchodní rejstřík (OR), vedený rejstříkovými soudy Živnostenský rejstřík (RŽP), vedený Ministerstvem průmyslu a obchodu ČR Registr ekonomických subjektů (RES), vedený Českým statistickým úřadem Registr církví a náboženských společností (RCNS), vedený Ministerstvem kultury ČR Registr zdravotnických zařízení (RZZ), vedený Ústavem zdravotnických informací a statistiky ČR Seznam občanských sdružení a spolků (OSS), vedený Ministerstvem vnitra ČR Evidence zemědělského podnikatele (EZP), která je vedena Ministerstvem zemědělství ČR Seznam politických stran a hnutí (PSH), vedený Ministerstvem vnitra ČR Rejstřík škol a školských zařízení (RŠ), vedený Ministerstvem školství a tělovýchovy ČR A další minoritní, případně neaktualizované zdroje, které se však připravují ke zrušení Přístup ke zdrojům ARES ARES je přístupný dvěma způsoby. První způsobem jsou formuláře pro vyhledávání ve zdrojích, které se ale nehodí pro automatické zpracování většího množství případů. Druhou možností je pak využití webových služeb. V popisu služeb ARES (viz. [56]) se potom uvádí "Součástí informačního systému ARES je i XML rozhraní pro vyhledání subjektu a zpřístupnění jeho veřejných údajů ze zdrojových registrů. Služby XML může využívat každý, pokud bude respektovat podmínky provozu.". Podmínky provozu jsou potom především zdůrazňují omezení počtu dotazů na systém ARES, jejichž nedodržení vede k blokaci IP adresy. Omezení je 1000 dotazů od 8:00 do 18:00 a 5000 od 18:00 do 8:00. Služby 6974 lze volat dvěma způsoby, prvním je použití webových služeb podle definice W3C [45], druhým je získávání XML souborů odpovědí pomocí volání služby identifikací URL a parametry předávanými metodou GET (tedy podobně jako u webové služby vyhledávání ISIR) Definice rozhraní ARES Rozhraní ARES je definováno v [57]. Celé rozhraní je poměrně velmi rozsáhlé a proto se při jeho popisu omezuji jen na rozhraní relevantní pro řešení monitoringu OR. Důležitý je zde požadavek Společnosti sledovat změny, tedy Společnost nevyžaduje zobrazování výpisů detailů subjektu, případně tuto funkcionalitu bude požadovat až v dalších verzích. Navíc zobrazování detailů je funkcionalita, která je dostupná i na stránkách ARES, popřípadě lze do požadavku na výpis detailů specifikovat i výstupní formát PDF a následně tento soubor zobrazit uživateli. Sledovat změny v návratových hodnotách lze i bez rozboru poskytovaných hodnot a pro toto sledování jsem navrhl dva způsoby: První metodou je ukládání celých výpisů z OR na počítač, ze kterého je monitoring spouštěn (nebo na přístupné úložiště) a v případě nového výpisu, který se liší, zobrazit rozdílné elementy. Metoda předpokládá ukládání souborů v jednoduše formátovaném souboru, například XML. Zobrazení změn by následně nevyžadovalo ani znalost tohoto XML, šlo by jednoduše procházet jednotlivé uzly a v případě neshody tyto zobrazit. Metoda by vyžadovala vedle souborů s dlužníky, které již využívá monitoring ISIR také definovat nové úložiště pro soubory detailů. Další výhodou je možnost ukládat detaily dlužníků a potom jejich procházení bez nutnosti dalších dotazů. Druhou metodou je ukládání hash kódů (viz. [58]) v souboru dlužníků, jako další atribut a následné upozornění na změnu v případě jejich neshody. Po konzultaci výhod a nevýhod obou se zástupcem Společnosti jsem se rozhodl oba způsoby zkombinovat a ukládat si tedy výpisy celé a zároveň hash kódy těchto výpisů. Při pokusném volání služby a analýze vrácených dat jsem navíc zjistil, že služba vrací i data jejího volání, jelikož tato data se samozřejmě mění, bude nutno před tvorbou hash kódu vždy tato data odstranit Návrh řešení monitoringu ARES V návaznosti na požadavky Společnosti a možnosti přístupu a poskytnutých dat ARES jsem navrhl řešení monitoringu. Řešení respektuje požadavky Společnosti a je tedy rozšířením původního monitoringu ISIR. Řešení musí zachovat základní architekturu monitoringu, která byla již formulována u monitoringu ISIR. Navržené řešení využívá volání služby ARES pro zjištění detailů subjektu a následné zobrazení zjištěných změn v monitorovacím programu. 7075 Využití databáze Rozšíření nebude využívat uložení dat o subjektech do databáze. Je to z toho důvodu, že zvolená databáze pro řešení ISIR je relační databází MySQL a nehodí se pro ukládání velkého množství XML dat. Navíc tato data jsou neustále dostupná a nevzniká zde tak důvod pro vytvoření vlastního úložiště, jako byl v případě replikace ISIR. Rozšíření však potřebuje monitorovat počet dotazů na službu ARES z dané IP adresy. Tento počet dotazů se musí sledovat a to ideálně mimo samotný program, protože v případě využití více programů pod sdílenou IP adresou by toto sledování nebylo spolehlivé. Tedy rozšíření bude využívat databázi Společnosti pro ukládání IP adres a počtu dotazů. Databáze Společnosti pak musí být upravena tak, aby umožňovala uložení IP adresy, času a počtu dotazů. Vzhledem k tomu, že omezení na dotazy je platné pouze jeden den, rozhodl jsem se uložení realizovat pouze jednou tabulkou, která obsahuje atributy IP adresy, času a počtu dotazů. Proces ukládání dat pak bude realizován aplikační logikou a bude probíhat takto: Program se dotáže databáze, zda-li existují záznamy pro aktuální den pro danou IP adresu. Pokud záznamy existují, program zjistí, kolik dotazů ještě může zaslat a pokud je požadovaný počet nižší, zašle dotazy a zároveň vytvoří nový záznam v databázi. Pokud je požadovaný počet dotazů vyšší, provede jen maximální možný počet dotazů a vytvoří záznam v databázi. Pokud záznam neexistuje, založí ho a provede dotazy. Program vymaže veškeré záznamy starší dvou dnů. Podle výše specifikované požadované funkcionality jsem pak upravil schéma databáze. Do schématu jsem přidal novou tabulku "DotazyARES" s těmito atributy: id - umělý primární klíč typu integer. adresa - atribut obsahuje IP adresu, ze které dochází k odesílání dotazů na ARES. Adresa je typu varchar s rozsahem 100. datum - atribut specifikuje čas, kdy dochází k dotazování ARES a je typu datetime. pocetdotazu - atribut určuje počet dotazů, které v daném čase proběhly na systém ARES. Pro úsporu místa uvádím rovnou fyzický model databáze, který je na obrázku76 věc PK id INTEGER spisznacka VARCHAR(50) druhstavrizeni TEXT(255) datumveczrusena DATETIME Udalost PK id INTEGER idudalosti INTEGER oddil VARCHAR(20) poradioddil INTEGER datumzrusena DATETIME obecnytext datumpravnimoci DATETIME priznakvedlejsiudalost priznakvedlejsidokument cas DATETIME iddokument typ typtext FK1 uspisznacka VARCHAR(50) idosobypuvodce bcvechlavni INTEGER druhvechlavni rocnikhlavni INTEGER datumspojeni DATETIME datumioddeleni DATETIME Osoba PK id INTEGER idosoby VARCHAR(50) FK1 ospisznacka VARCHAR(50) druhrolevrizeni druhspravce nazevosoby nazevosobyobchodni druhosoby druhpravniforma jmeno titulpred titulza ic dic rc datumosobazrusena DATETIME datumnarozeni DATETIME ciselnikudalosti PK id INTEGER idcisudalostiprows INTEGER popiscisudalosti popiszmeny datumzalozenicisudalosti DATETIME datumzrusenicisudalosti DATETIME priznakaninternicisudalosti Adresa PK id INTEGER idadresy VARCHAR(20) FK1 aspisznacka VARCHAR(50) FK1 aidosoby VARCHAR(20) druhadresy datumpobytod DATETIME datumpobytdo DATETIME mesto ulice cislopopisne okres zeme psc telefon fax textadresy DotazyAres PK id INTEGER adresa VARCHAR(100) datum DATETIME pocetdotazu INTEGER Obrázek 32 upravené schéma databáze Společnosti (Zdroj: Autor) Návrh úpravy monitorovacího programu Podle požadavků Společnosti jsem navrhl úpravu monitorovacího programu tak, že data o vyhledávaných subjektech jsou nyní zobrazeny ve třech různých pohledech, původním ISIR, obecném a zaměřeném na OR. V případě dalšího přidaného rejstříku bude stejně přidán další pohled. V návrhu je navíc složka různé, která slouží k obsažení případné další různé funkcionality. Zároveň jsem přidal indikátor omezení dotazů ARES a přesunul funkcionalitu tlačítek "otevři soubor" a "ulož soubor" do menu. Toto jsem provedl především z estetických důvodů. V návaznosti na tuto tvorbu menu jsem navíc do menu přidal záložky Export a Import a ostatní. Upravené okno je vidět na obrázku 33, který ukazuje pohled obecný (nazvaný "Přehled") a obrázku 34, který zobrazuje pohled OR. 7277 Obrázek 33 okno monitorovacího programu s pohledem "Přehled" (Zdroj: Autor) Obrázek 34 okno monitorovacího programu s pohledem "OR" (Zdroj: Autor) Zástupce Společnosti s navrženým řešením souhlasil. 11. ANALÝZA/MODEL TECHNOLOGICKÝ ARES Technologická analýza ARES je obdobou analýzy ISIR, tedy kapitoly 6 a zároveň budu metodicky postupovat podle definice obsahové analýzy v kapitole 4. V kapitole se opět věnuji technologickým aspektům řešení monitoringu Architektura Systému Vzhledem k rozšíření monitorovacího Systému došlo i ke změně architektury. Monitorovací program musí komunikovat se službami ARES. Pozměněná architektura je na obrázku78 Webová služba ISIR Stahuje data Aktualizační program Nahrává data Vlastní datové úložiště Provádí dotazy ISIR Provádí dotazy ARES Webová služba ARES Program monitoringu s rozšířením OR Obrázek 35 pozměněné architektura monitorovacího Systému (Zdroj: Autor) Monitorovací program Monitorovací program bude rozšířen o funkcionalitu ARES OR, tedy volba platformy je.net. Změny uživatelského rozhraní již byly specifikovány v kapitole Hlavní procesy monitorovacího programu zůstávají nezměněny, jen je přidán nový proces vyhledávání ARES Komunikace se službou ARES Komunikace musí probíhat voláním služby a zpracováním odpovědi. Toto volání může probíhat buď za využití automaticky vygenerovaného kódu podle standardu webových služeb, nebo vlastní zpracováním, kdy je načtena webová stránka s odpovědí a program si tuto dále zpracuje. Výhody a nevýhody jsou již zmíněny výše v kapitole V případě ARES jsem se rozhodl použít vlastní metodu zpracování dat. Vedly mě k tomu dva hlavní důvody. Prvním je nefunkčnost vygenerovaného kódu, který i po úpravách (chyby způsobeny pravděpodobně generátorem platformy.net) nebyl schopen validně pracovat se službou OR. Při pečlivém průzkumu WSDL, které jsem následně provedl jsem objevil chyby v referencování neplatných definicí některých objektů, které vedly k tomu, že vygenerovaný klient se pokoušel pracovat s jinak definovanými daty, než mu byly předány. Jelikož předpokládám další změny těchto definic v budoucnosti, rozhodl jsem se, že nejlepším způsobem jak se s těmito změnami vyrovnat bude nevyužívat jejich definice. Druhým důvodem je pak to, že obě varianty zjišťování změn prakticky nepotřebují pracovat s objekty dat, ale spíše je data zajímají jako čistý text, ze kterého se vytvoří hash kód a následně se uloží. Služba ARES OR potom vyžaduje jako vstupní parametry Identifikační číslo subjektu a počítá s vyhledáváním jen právnických osob, viz. [59] Procedurální popis funkcionality Procesy monitorovacího programu zůstávají stejné jako definované v kapitole nově je přidán proces vyhledání OR, který funguje podle následujícího postupu: 7479 Monitorovací program zkontroluje, zda-li je vyhledávaný subjekt právnická osoba a má vyplněné identifikační číslo. Monitorovací program zašle dotaz na databázi Společnosti a zjistí, zda-li nebyl překročen limit dotazů na informační systém ARES pro danou IP adresu. Monitorovací program zašle dotaz na službu ARES OR a stáhne výpis detailů. Monitorovací program porovná stažená data s daty minulými a případně indikuje změnu. V případě změny pak také uloží stažená data do souboru. Proces vyhledání v ARES OR je na obrázku 36. Nastal požadavek na získání detailů OR Je subjekt právnická osoba s vyplněným IC? NE Subjekt nelze v OR vyhledávat. ANO Byl překročen limit dotazů na IP adresu? ANO Je nutné počkat do dalšího dne NE Služba ARES OR Vyhledání subjektu v OR Byla zjištěna změna? ANO Nastavení změny, uložení souboru detailů NE Subjekt úspěšně vyhledán Obrázek 36 proces vyhledání v ARES OR (Zdroj: Autor) Model tříd monitorovacího programu V návaznosti na změny funkcionality jsem upravil model tříd monitorovacího programu. Vzhledem k tomu, že samotný program jsem již vytvářel s tím, aby bylo možno přidal další zdroje monitoring, nebyly tyto úpravy nijak zásadní, respektive nemění koncept programu. Úpravy probíhaly takto: 7580 Vzhledem k požadavkům na rozšíření uživatelského rozhraní z kapitoly jsem upravil třídu "Hlavní okno", která představuje uživatelské rozhraní. Do třídy jsem doplnil tabulky pro pohled "OR" a "Přehled", dále tlačítko pro prohledání OR a také tabulku pro nastavení, pro specifikaci uložených souborů vyhledávání OR. Třídu monitor jsem rozšířil o metodu "prohledejor", která slouží k prohledání OR a dále o metody "bw_or_pracuj", "bw_or_zmena" a "bw_or_zpracovaniukonceno", které opět řídí více vláknové zpracování. Vytvořil jsem novou třídu "Nastaveni", která umí ukládat a načítat libovolná nastavení programu. Třída zatím bude sloužit ke zjišťování adresy souborů detailů OR, ale v případě nutnosti bude spravovat další nastavení. Třída obsahuje seznam nastavení (ve formátu "název","hodnota") a pak metody "nactinastaveni" pro načtení nastavení a "uloznastaveni" pro uložení těchto nastavení do souboru. Vytvořil jsem novou třídu "FunkceAresOr", která je obdobou třídy "FunkceISIR" a zabezpečuje komunikaci s webovou služnou ARES OR pro logiku aplikace. Třída má dva atributy, "adresasluzby", který určuje URL volání služby a "verzesluzby", který určuje požadovanou verzi služby. Mezi metody třídy potom patří "ulozsoubor" pro ukládání souborů s detaily subjektu, "vytvorhash" pro tvorbu hash kódů, "hledejsubjektget", která volá službu ARES OR s parametry hledaného subjektu a "odstrandnesnidata", která odstraňuje časová data volání služby ze stažených souborů detailů. Vytvořil jsem novou třídu "FunkceARESObecne", která slouží k poskytnutí obecné funkcionality ARES. V této verzi je to metoda "vratpocetdotazuip", což je metoda ošetřující nepřekročení limitu dotazů na informační systém ARES. V dalších verzích do této třídy budu umísťovat funkce, které se týkají systému ARES obecně a ne jen jeho částí. Důvod k vytvoření této třídy je pravidlo separace zájmů viz. [10]. Vytvořil jsem novou třídu "FunkceRuzne", která slouží k zapouzdření obecné funkcionality, která může být využita u všech ostatních tříd, která není závislá na jednotlivých využívaných službách. Třída má metody "kontrolaic", která validuje správnost identifikačního čísla (viz. [60]) a "nactistranku", která načte webovou stránku podle zadaného URL a vrátí její obsah jako text. Upravený model tříd monitorovacího programu je na obrázku81 Hlavní okno -zalozky -tlacitkoprohledejisir -tabulkaisir -menu -tlacitkoprerusit -progressbar -tabulkaor -tabulkaprehled -tlacitkoprohledejor -tabulkanastaveni Nastaveni -seznamnastaveni +nactinastaveni() +uloznastaveni() Monitor FunkceISIR -metodapripojeni : String -adresasluzby : String +hledejpripadphp() -upravadata() -hledejfyzickou() -hledejpravnickou() +nahrajsoubor() +ulozsoubor() -bw_or_pracuj() -bw_or_zmena() -bw_or_zpracovaniukonceno() +prohledejisir() +preruszpracovani() +prohledejor() +bw_isir_pracuj() +bw_isir_zmena() +bw_isir_zpracovaniukonceno() FunkceAresOR -adresasluzby : String -verzesluzby : String -ulozsoubor() -vytvorhash() +hledejsubjektget() -odstrandnesnidata() FunkceRuzne +nactistranku() +kontrolaic() FunkceARESObecne -vratpocetdotazuip Obrázek 37 upravený model tříd monitorovacího programu (Zdroj: Autor) 12. ANALÝZA/MODEL IMPLEMENTAČNÍ ARES Vzhledem k tomu, že funkcionalita ARES OR je rozšířením původního monitorovacího programu, tak i prostředky zůstávají stejné, tedy MySQL databáze a Visual Basic.NET pro tvorbu monitorovacího programu. 13. IMPLEMENTACE ARES Kapitola se věnuje samotné úpravě Systému vycházející z analýzy a postupuji podle kapitoly 4.2. Implementace opět proběhla v přírůstcích, které postupně zpřístupňovaly novou funkcionalitu a byly testovány Přírůstek 4. Celkově čtvrtý přírůstek Systému se zabýval úpravou databáze a úpravou monitorovacího programu. Jeho výstupem je upravená funkcionalita monitorovacího programu a rozšířené schéma databáze. 7782 Úprava databáze Databázi jsem upravil pomocí nástroje správy MySQL WorkBench. Změnu jsem provedl na lokální testovací databázi a vygeneroval si SQL kódy pro přenesení změny dat na provozní databázi po otestování funkcionality Úprava monitorovacího programu Monitorovací program jsem vytvořil podle popisu v kapitole 11.2 za použití stejných postupů a nástrojů jako v kapitole Úprava uživatelského rozhraní Uživatelské rozhraní jsem upravil podle návrhu z kapitoly Úprava aplikační logiky Logiku monitorovacího programu jsem upravil podle návrhu z kapitoly Při úpravách jsem opět definoval jednotkové testy a upravoval funkcionalitu do té doby, než všechny tyto testy byly úspěšně splněny. Po splnění jsem spojil uživatelské rozhraní s aplikační logikou Interní testování čtvrtého přírůstku Funkcionalitu monitoringu ARES OR jsem testoval s využitím lokální databáze pro monitoring IP adres. Předmětem testování bylo zajištění správné funkcionality programu, tedy především: Správná metoda vyhledávání subjektů, jak byla popsána v kapitole Správa souborů s daty subjektů. Korektní sledování použitých IP adres na dotazy ARES OR (v průběhu testování jsem v jednom dnu několikrát změnil použitou IP adresu a opět se vracel). Při testování přírůstku jsem se opět rozhodl přidat barevné zvýraznění jak nalezených subjektů (růžové) a subjektů se změnou v posledních 7 dnech (červené). Na obrázku 38 je okno upraveného a otestovaného monitorovacího programu s pohledem "OR" a na obrázku 39 okno programu s pohledem "Přehled". 7883 Obrázek 38 okno monitorovacího programu s pohledem "OR" (Zdroj: Autor) Obrázek 39 okno monitorovacího programu s pohledem "Přehled" (Zdroj: Autor) Akceptační testování čtvrtého přírůstku u třetí strany Před testováním u třetí strany jsem provedl změnu provozní databáze skripty vytvořenými v kapitole Následně jsem zaslal upravený program monitoringu třetí straně spolu s manuálem. Třetí strana následně program schválila. 14. PROVOZ A UŽITÍ UPRAVENÉHO SYSTÉMU V průběhu provozu a užití programu pro monitoring ISIR/ARES OR zatím nenastaly žádné významné problémy. Program byl následně nasazen u dvou dalších společností, které vyžadovaly přidání funkcionality importu dat. První společnost požadovala jen jednorázový import dat ze svého systému, zatímco druhá společnost požadovala opakovaný každodenní import sledovaných subjektů ze svého 79 Zobrazit více
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 Katalog egon služeb verze: 0.01
Katalog egon služeb verze: 0.01 Historie verzí Verze Datum Popis 0.01 20.7.2011 egon služby prototypu OBSAH 1 Úvod... 5 1.1 Členění dokumentu... 5 1.2 Třídy služeb... 5 1.3 SLA služeb... 6 1.3.1 SLA-01... Více Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.
Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové Více Roční periodická zpráva projektu
WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových Více MST - sběr dat pomocí mobilních terminálů on-line/off-line
MST - sběr dat pomocí mobilních terminálů on-line/off-line Stručný přehled název: MST, software pro sběr dat mobilními terminály ve skladu (příjem, výdej, inventura) autor aplikace: FASK, spol. s r.o., Více Analýza a modelování dat. Helena Palovská
Analýza a modelování dat Helena Palovská Analýza a modelování pro SW projekt Strukturovaný přístup Dynamická část (procesy, aktivity, funkce) Statická část (data) Objektově orientovaný přístup use case Více CobiT. Control Objectives for Information and related Technology. Teplá u Mariánských Lázní, 6. října 2004
CobiT Control Objectives for Information and related Technology Teplá u Mariánských Lázní, 6. října 2004 Agenda Základy CobiT Pojem CobiT Domény CobiT Hodnocení a metriky dle CobiT IT Governance Řízení Více Č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 EXTRAKT z mezinárodní normy
EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 03.220.01; 35.240.60 materiálem o normě. Inteligentní dopravní systémy Požadavky na ITS centrální datové Více WR Reality. Web Revolution. Uživatelský manuál administračního rozhraní
WR Reality Web Revolution Uživatelský manuál administračního rozhraní Web Revolution s. r. o. 2010 WR Reality Administrace uživatelský manuál Praktický průvodce administrací webové aplikace WR Reality Více WORKFLOW. Procesní přístup. Základ perspektivního úspěšného podnikového řízení. Funkčnířízení založené na dělbě práce
WORKFLOW Procesní přístup Základ perspektivního úspěšného podnikového řízení Funkčnířízení založené na dělbě práce Procesní řízení princip integrace činností do ucelených procesů 1 Funkční řízení Dělba Více EIS JASU CS. Název souboru: Dokumentace EIS - Dokumentace EIS - Kontrola odběratelů v ISIR 1_7
Název: EIS JASU CS Kontrola odběratelů v insolvenčním rejstříku (ISIR) Verze: 1.7 Datum vydání: 18.11.2014 Název souboru: Dokumentace EIS - Dokumentace EIS - Kontrola odběratelů v ISIR 1_7 Popis: Popis, Více Modul Kontakt s klientem SSP. OKcentrum. Uživatelská příručka. Poskytování součinnosti ÚP ČR
Modul Kontakt s klientem SSP OKcentrum Uživatelská příručka Poskytování součinnosti ÚP ČR OKsystem a.s. 2015 1. Obsah 1. OBSAH... 2 2. ZÁKLADNÍ INFORMACE... 2 2.1 Základní pojmy... 2 2.2 Přihlášení uživatele... Více SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek
Prezentace aplikace Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Osnova Úvod Programovací jazyk - PHP Etapy vývoje Funkce aplikace Co SW umí Na čem se pracuje Vize do budoucna Úvod Úvod Inspirováno Více PRODUKTY. Tovek Tools
jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů. Více Příručka uživatele HELPDESK GEOVAP
HELPDESK GEOVAP verze 1.2 11.11.2008 OBSAH 1 REGISTRACE DO HELPDESK...1 2 PŘIHLÁŠENÍ A ODHLÁŠENÍ...1 3 ZÁKLADNÍ OBRAZOVKA HELPDESK...2 4 PŘEHLED HLÁŠENÍ...2 5 ZALOŽENÍ NOVÉHO HLÁŠENÍ...3 6 ZOBRAZENÍ/EDITACE Více Jednotný NIS Prezentace k zahájení projektu pro Radu kraje Vysočina. Projektový manažer - Ing. Ivan Sokolov, Ph.D.
Prezentace k zahájení projektu pro Radu kraje Vysočina Projektový manažer - Ing. Ivan Sokolov, Ph.D. Obsah Úvod Cíle projektu Rozsah projektu Projektové řízení základní východiska Základní organizační Více Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz
Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty Více 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, Více GIS Libereckého kraje
Funkční rámec Zpracoval: Odbor informatiky květen 2004 Obsah 1. ÚVOD...3 1.1. Vztah GIS a IS... 3 2. ANALÝZA SOUČASNÉHO STAVU...3 2.1. Technické zázemí... 3 2.2. Personální zázemí... 3 2.3. Datová základna... Více Příloha č. 3. Charta projektu plné znění (pro jiné OSS než MŠMT)
Příloha č. 3. Charta projektu plné znění (pro jiné OSS než MŠMT) Charta projektu má za cíl poskytnout úplné a pevné informační základy pro schválení projektu. Následně je Charta projektu rozpracována do Více 1 Strukturované programování
Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů, Více Příloha č. 1. Návrh aplikace pro správu a archivaci XML dokumentů Zpracoval: Ing. Jan Smolík, CSc
Příloha č. 1 Návrh aplikace pro správu a archivaci XML dokumentů Zpracoval: Ing. Jan Smolík, CSc Praha, listopad 2006 Obsah: I. Specifikace zadání II. Popis řešení II.1 Popis výchozího stavu II.2 Způsob Více GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně vyhledávat informace, Více Allegro účetnictví. Schéma účetního modulu. Podstatné vlastnosti. Allegro Business Solution Účetnictví
Allegro účetnictví Obsahuje zákonem vyžadované agendy podvojného účetnictví a tvoří jádro celého systému. Standardní bloky zahrnují účetní knihu, faktury přijaté a vydané, banky, pokladny a přiznání DPH. Více 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 Více Zpráva o zhotoveném plnění
Zpráva o zhotoveném plnění Aplikace byla vytvořena v souladu se Smlouvou a na základě průběžných konzultací s pověřenými pracovníky referátu Manuscriptorium. Toto je zpráva o zhotoveném plnění. Autor: Více Prezentace CRMplus. Téma: CRMplus jako nástroj pro kontrolu a vyhodnocení rozpracovanosti dílů na zakázkách
Prezentace CRMplus Téma: CRMplus jako nástroj pro kontrolu a vyhodnocení rozpracovanosti dílů na zakázkách Obsah prezentace Představení společnosti Technodat Develop, s.r.o. CRMplus základní charakteristika Více Pokyny k vyplnění formuláře pro podání návrhu na zápis nebo zápis změny zapsaných údajů do obchodního rejstříku u fyzické osoby.
dr_11orzapisdoorfo.pdf - Adobe Acrobat Professional Pokyny k vyplnění formuláře pro podání návrhu na zápis nebo zápis změny zapsaných údajů do obchodního rejstříku u fyzické osoby. I. Rejstříkový soud Více PŘÍLOHA Č. 4 K ZADÁVACÍ DOKUMENTACI VEŘEJNÉ ZAKÁZKY MALÉHO ROZSAHU. Tvorba software pro reportování stavu projektů (dále jen IS)
PŘÍLOHA Č. 4 K ZADÁVACÍ DOKUMENTACI VEŘEJNÉ ZAKÁZKY MALÉHO ROZSAHU Tvorba software pro reportování stavu projektů (dále jen IS) VERZE: finální DATUM: 6.9. 2013 1 ÚVOD Popis reportů potřebných pro sledování Více 4IT218 Databáze. 4IT218 Databáze
4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek Více Zadavatel může předat MMR údaje o koncesní smlouvě následujícími způsoby:
1.1 Úvod Tento metodický pokyn je určen pro zadavatele, kteří mají povinnost podle zákona č. 139/2006 Sb., o koncesních smlouvách a koncesním řízení (koncesní zákon) zapsat údaje o koncesní smlouvě do Více OSOBA JEDNAJÍCÍ ZA SPRÁVCE ČÍSELNÍKU NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP)
OSOBA JEDNAJÍCÍ ZA SPRÁVCE ČÍSELNÍKU NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP) Obsah Úvod...2 Co je ISDP...2 Jaké jsou funkce ISDP...2 Slovník pojmů...2 Dílčí DP...2 DS...2 ISDP...2 Více PRŮZKUMNÍK ISDP NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP)
PRŮZKUMNÍK ISDP NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP) Obsah Úvod...2 Co je ISDP...2 Jaké jsou funkce ISDP...2 Slovník pojmů...2 Dílčí DP...2 DS...2 ISDP...2 JeDP...2 OS...2 SlDP...2 Více 26 Evidence pošty. Popis modulu. Záložka Evidence pošty
26 Evidence pošty Uživatelský modul Evidence pošty realizuje podrobnou evidenci všech došlých a odesílaných poštovních zásilek s možností přidělovat tyto zásilky uživatelům informačního systému k vyřízení, Více l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam Více Personální audit. Audit informačního systému. Audit SW a HW
Personální audit Audit informačního systému Audit SW a HW Jméno: UČO: forma studia: ročník: 2014 Brno Úvodní zpráva Konkretizujte předmět auditovaní. Identifikace objektu pozorování. Účel auditu. Stanovené 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 Ú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 Pokyny k vyplnění formuláře pro podání návrhu na zápis nebo zápis změny zapsaných údajů do obchodního rejstříku u akciové společnosti.
11ORZapisDoORAS_info.pdf - Adobe Acrobat Professional Pokyny k vyplnění formuláře pro podání návrhu na zápis nebo zápis změny zapsaných údajů do obchodního rejstříku u akciové společnosti. I. Rejstříkový Více JAK ČÍST ZÁZNAM O VYUŽÍVÁNÍ ÚDAJŮ V REGISTRU OBYVATEL
JAK ČÍST ZÁZNAM O VYUŽÍVÁNÍ ÚDAJŮ V REGISTRU OBYVATEL Název dokumentu: Jak číst záznam o využívání údajů v registru obyvatel Verze: 1.8 Autor: Správa základních registrů Datum aktualizace: 25. 2. 2014 Více 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 Řízení prací na vodovodních sítích
Řízení prací na vodovodních sítích Ing. Josef Fojtů 1) Ing. Jiří Tajdus 1), Ing. Milan Koníř 2) 1) QLine a.s., 2) Severomoravské vodovody a kanalizace Ostrava a.s. Cílem příspěvku je představení základních Více Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz
Projekt informačního systému pro Eklektik PRO S EK Řešitel: ÚVODNÍ ZPRÁVA ZADÁNÍ PROJEKTU Zefektivnění komunikace ve firmě Eklektik, a to především v oblasti informací o klientech a o tištěných materiálech Více Modul Konfigurace. 2006... MTJ Service, s.r.o.
Modul Konfigurace Modul Konfigurace Představení Menu konfigurace sdružuje všechny konfigurační příkazy k celému systému Soft-4-Sale. Dále konfigurace kopíruje jednotlivé moduly systému tzn. že existuje Více Registrace informačního systému do Informačního systému o informačních systémech veřejné správy (IS o ISVS)
www.triada.cz/ega 25. června 2012 Registrace informačního systému do Informačního systému o informačních systémech veřejné správy (IS o ISVS) V předchozím čísle Bulletinu EGA jsme Vás informovali o nutných Více Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/
Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii? Více ZŠ, Praha 10, Brigádníků 14/510 ZÁVĚREČNÉ PRÁCE ŽÁKŮ DEVÁTÉHO ROČNÍKU
ZŠ, Praha 10, Brigádníků 14/510 ZÁVĚREČNÉ PRÁCE ŽÁKŮ DEVÁTÉHO ROČNÍKU Předmět Předmět bude sloužit zejména k prohlubování zájmu žáků 9. tříd a rozvíjení dovedností týkajících se práce s textem, plnění Více Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.
C E R T I C O N www.certicon.cz V Á C L A V S K Á 1 2 1 2 0 0 0 P R A H A 2 Specifikace rozhraní Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů Martin Falc, SW architekt 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í
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 MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1
MIS Manažerský informační systém pro Ekonomický informační systém EIS JASU CS Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 Poslední aktualizace dne 5.8.2014 MÚZO Praha s.r.o. je certifikováno Více TREND 07-201 POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE
Tel. +420 543426329 TREND 07-201 POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE Autor: Vít Chvál Verze dokumentu: 1.0 Datum poslední změny: 18.2.2013 Obsah: 1 Pracovník 3 2 Pracovní činnosti (Náplň práce) Více Tvorba kurzu v LMS Moodle
Tvorba kurzu v LMS Moodle Před počátkem práce na tvorbě základního kurzu znovu připomínám, že pro vytvoření kurzu musí být profil uživatele nastaven administrátorem systému minimálně na hodnotu tvůrce Více Informační systémy ve výuce na PEF Information Systems in teaching at the FEM
Informační systémy ve výuce na PEF Information Systems in teaching at the FEM Edita Šilerová, Čestmír Halbich, Jana Hřebejková Cíle Předmět Informační systémy je postupně od roku 1994 zařazován na všechny Více Pořízení nových systémů na MPSV děláme to ponovu
Pořízení nových systémů na MPSV děláme to ponovu 13. dubna 2015 Hradec Králové Ing. Iva Merhautová, MBA Mgr. Bc. et Bc. Robert Baxa Michal Rada ICT MPSV Základní oblasti řízení: ICT ministerstva práce Více ABC s.r.o. Výtisk číslo: PŘÍRUČKA ENVIRONMENTU. Zpracoval: Ověřil: Schválil: Č.revize: Počet příloh: Účinnost od:
ABC s.r.o. PŘÍRUČKA EMS Výtisk číslo: Zpracoval: Ověřil: Schválil: Tento dokument je duševním vlastnictvím společnosti ABC s.r.o. Rozmnožování a předávání třetí straně bez souhlasu jejího jednatele není Více ZADÁVACÍ DOKUMENTACE Comenis 2.0
ZADÁVACÍ DOKUMENTACE Comenis 2.0 jako příloha Výzvy k podání nabídek v rámci projektu Distanční jazykové vzdělávání pomocí M-learningu CZ.1.07/3.2.10/04.0011 Akademie Jana Amose Komenského Jičín Název Více Migrace databáze odborných praxí a závěrečných prací z proprietární aplikace do open source prostředí
Migrace databáze odborných praxí a závěrečných prací z proprietární aplikace do open source prostředí (Projektová dokumentace) Ladislav Pešta - vedoucí týmu Markéta Sedláková - zástupce vedoucího týmu Více Závazný předpis pro zpracování výsledků praktické maturitní zkoušky
Závazný předpis pro zpracování výsledků praktické maturitní zkoušky Odevzdání práce Konečný termín:- 30 dnů před termínem praktické maturitní zkoušky. V písemné podobě bude práce odevzdána ve dvou exemplářích Více VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY Autosalón (semestrální projekt) ZS 2011-2012 Analýza Implementace Číslo skupiny: 2 Členové skupiny: Jmeno,příjmení,login Více Informační systém pro vedení živnostenského rejstříku IS RŽP
Informační systém pro vedení živnostenského rejstříku IS RŽP Ing. Miloslav Marčan odbor informatiky MPO Praha říjen 2007 Ministerstvo průmyslu a obchodu Agenda Historie projektu Cíle projektu IS RŽP Legislativní Více Enterprise Architecture na MPSV 23.9.2015
Enterprise Architecture na MPSV 23.9.2015 Mgr. Bc. et Bc. Robert Baxa, náměstek ministryně Mgr. Jiří Károly, ředitel odboru rozvoje a bezpečnosti ICT Enterprise Architecture (EA) na MPSV Východiska pro Více WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK
WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti. Více Informační systém pro nemocnici
Informační systém pro nemocnici Tento systém bude usnadňovat nemocnici správu zaměstnanců a pacientů, evidenci zákroků, diagnózy jednotlivých pacientů a jejich závažnost. Umožní uživatelům jednoduše nalézt Více EKONOMICKÝ A LOGISTICKÝ SOFTWARE. Luhačovice 24.10.2013
EKONOMICKÝ A LOGISTICKÝ SOFTWARE Luhačovice 24.10.2013 CRM řízení vztahů se zákazníky CRM - je zkratka z anglického Customer Relationship Management a označují se tak systémy pro řízení vztahů se zákazníky.crm Více Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ
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 Více Vývoj Registru národní sady klinických standardů zdravotních služeb
Vývoj Registru národní sady klinických standardů zdravotních služeb Příloha7a Závěrečné zprávy projektu č. NS 10650-3/2009 podpořeného Interní grantovou agenturou MZ ČR, Výzkum metod standardizace zdravotní Více Funkční specifikace ABOKWS. Aplikační rozhraní elektronického bankovnictví ABO-K. Verze 0.5
Funkční specifikace ABOKWS Aplikační rozhraní elektronického bankovnictví ABO-K Verze 0.5 Přehled změn Verze Datum Změnil Popis 0.1 26.2.2013 MB Úvod, Osnova dokumentu, funkce ABOKWS 0.2 18.4.2014 MB Tabulky Více Centrální evidence přeplatků a nedoplatků
Popis databáze Autor: TranSoft a.s Vrbenská 2082 370 21 České Budějovice Zadavatel: Generální ředitelství cel Budějovická 7 140 96 Praha 4 Obsah Obsah 1 Úvod...3 2 Pracovní tabulky...4 2.1 Tabulka ECDC_Predpis...4 Více POPIS PRODUKTU KLIKACÍ ROZPOČET. Autoři dokumentu
POPIS PRODUKTU KLIKACÍ ROZPOČET Autoři dokumentu 1. PROFIL SPOLEČNOSTI Internet Stream s.r.o. sídlo: Nové Město na Moravě, Lesní 960, PSČ 59231 zapsaná v obchodním rejstříku vedeném rejstříkovým soudem Více KSRZIS. Postup kroků nutných pro napojení nemocničního informačního systému s registrem NSHNU v prostředí registrů resortu zdravotnictví
Koordinační středisko pro resortní zdravotnické informační systémy Budějovická 15/743 140 00 Praha 4 Počet stran: 10 KSRZIS Postup kroků nutných pro napojení nemocničního informačního systému s registrem Více DATABÁZOVÉ SYSTÉMY. Metodický list č. 1
Metodický list č. 1 Cíl: Cílem předmětu je získat přehled o možnostech a principech databázového zpracování, získat v tomto směru znalosti potřebné pro informačního manažera. Databázové systémy, databázové Více Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně
Identifikační karta modulu v. 4 Kód modulu Typ modulu profilující Jazyk výuky čeština v jazyce výuky Management informačních systémů česky Management informačních systémů anglicky Information systems management Více Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje
jsou souborem klientských desktopových aplikací určených k indexování dat, vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci s velkým objemem textových Více Klasické metodiky softwarového inženýrství 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
Klasické metodiky softwarového inženýrství 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 Osnova přednášky Co to je softwarové inženýrství Softwarový proces Metodika a metoda Evoluce softwarových Více DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM č. 4
DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM č. 4 Zadavatel: Česká republika Ministerstvo životního prostředí Sídlo: Vršovická 1442/65, 100 10 Praha 10 IČO: 00164801 Jednající: Název veřejné zakázky: Ing. Více Add-on modul Microsoft Dynamics NAV. Doprava - základ. manuál
Add-on modul Microsoft Dynamics NAV Doprava - základ manuál 2010 AutoCont CZ a.s. dokument obsahuje informace důvěrného charakteru a informace v něm obsažené jsou vlastnictvím AutoCont CZ a.s. Žádná část Více Chybová hlášení METODIKA MET-01/2014. SZR-56-1/OPICT-2013 počet stran 28 přílohy 0. Nahrazuje:
MET-01/2014 METODIKA SZR-56-1/OPICT-2013 počet stran 28 přílohy 0 Chybová hlášení Gestor, podpis: Ing. Radovan Pártl Zpracovatel, podpis: RNDr. Miroslav Šejdl Odborný garant, podpis: RNDr. Miroslav Šejdl Více Aplikace pro elektronicke odesla nı da vky Listu o prohlı dce zemr ele ho a dals ı ch da vek do NZIS.
Aplikace pro elektronicke odesla nı da vky Listu o prohlı dce zemr ele ho a dals ı ch da vek do NZIS. ÚVOD Od 1. 1. 2016 vejde v platnost novela vyhlášky č. 297/2012 Sb., o náležitostech Listu o prohlídce Více E-mailové kampaně. 2013 Byznys CRM s.r.o.
E-mailové kampaně 2013 Byznys CRM s.r.o. Zákazník: Dne: 31. 5. 2015 Vytvořil: Pavel Šlesingr Schválil: Petr Hampejs Verze: 5.0 Emailové kampaně v CRM 2011 Strana 2 z 15 Obsah Obsah... 3 1. Popis... 4 1.1. Více Příloha č. 3 Smlouvy Součinnost stran při poskytování některých plnění
Příloha č. 3 Smlouvy Součinnost stran při poskytování některých plnění Nástroje pro poskytování součinnosti 1.1 Help desk Poskytovatel vytvoří a zajistí službu pro hlášení vad/požadavků/připomínek (dále Více RDF DSPS ROZVOJ PORTÁLU
RDF DSPS ROZVOJ PORTÁLU ČEZ Distribuce, a.s. HSI, spol. s r.o. Zbyněk Businský Miroslav Kaňka ZÁKAZNÍK A DODAVATEL ČEZ DISTRIBUCE, A.S. ČEZ distribuční síť Od r. 2012 implementován GEOPORTÁL (1. ETAPA), Více Uživatelský manuál: Modul Nové kontakty
Uživatelský manuál: Modul Nové kontakty Se zapnutím nových kontaktů souvisí nasazení nové aplikace Těžká podatelna a nový formulář pro evidenci externí písemnosti (dokumentu). Zapnutí nových kontaktů lze Více Popis modulu Základní popisy odpadu v programu SKLAD Odpadů 8
Popis modulu Základní popisy odpadu v programu SKLAD Odpadů 8 Co je to Základní popis odpadu Úvodem stručná rekapitulace, co je to Základní popis odpadu (ZPO). Je to dokument popisující vlastnosti a kvalitu Více Problémové domény a jejich charakteristiky
Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 02 1/16 Problémové domény a jejich charakteristiky Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta Více 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 Více ZÁKLADNÍ POPIS INFORMAČNÍHO SYSTÉMU KAJOT EASY-K
ZÁKLADNÍ POPIS INFORMAČNÍHO SYSTÉMU KAJOT EASY-K ÚVOD Easy-K běží na serveru Apache a je vytvořen v PHP s MySQL databází, doplněn Javascriptem a jeho výstupem je Xhtml, popř. tiskové sestavy v pdf (možnost Více Národní elektronický nástroj. Import profilu zadavatele do NEN
Technologické postupy práce s aktovkou IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Technologické postupy práce Ví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ář Více 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 StaproFONS. Petr Siblík. Objednávání pacientů
StaproFONS Petr Siblík Objednávání pacientů Agenda 1) Vysvětlení vlastností a principů 2) Spektrum uživatelů 3) Možnosti objednávání NIS versus MySOLP 4) Přínosy pro ZZ a uživatele 5) Technické požadavky Více Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362
Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362 Stránka 1 z 21 Obsah 1. Co je systém HELPdesk?... 2 2. Možnosti využití systému HELPdesk:... 2 3. Více 2016 © DocPlayer.cz Ochrana osobních údajů | Podmínky obsluhování | Kontaktní formulář

References: zákona č. 182
 soud 
 soud 
 soud 
 soud 
 soud 
 zákona č. 139
 zákona č. 307
 zákona č. 307