Za´padoˇceska´ univerzita v Plzni Fakulta aplikovany´ch vˇed Katedra informatiky a vy´poˇcetn´ı techniky
Diplomov´ a pr´ ace Sestavov´ an´ı dokument˚ uz fragment˚ u textu
Plzeˇ n, 2013
Bc. Jan Rabuˇsic
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem diplomovou pr´aci vypracoval samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. V Plzni dne 8. kvˇetna 2013 Bc. Jan Rabuˇsic
Podˇ ekov´ an´ı Na tomto m´ıstˇe bych chtˇel podˇekovat Ing. Martinovi B´ıklovi za ˇcas vˇenovan´ y konzultac´ım a cenn´e rady, bez kter´ ych by tato pr´ace nemohla vzniknout. Tak´e bych chtˇel podˇekovat vˇsem bl´ızk´ ym, kteˇr´ı se mnou mˇeli bˇehem m´e tvorby nesm´ırnou trpˇelivost.
Abstrakt C´ılem pr´ace je nal´ezt form´at dokument˚ u, kter´ y je vhodn´ y pro automatizovan´e vytv´aˇren´ı dokument˚ u s moˇznost´ı doplˇ nov´an´ı zadan´ ych informac´ı, opatˇrov´an´ı elektronick´ ym podpisem a ˇcasov´ ym raz´ıtkem a je vhodn´ y pro uˇzit´ı v podnikov´em prostˇred´ı. Tato pr´ace zahrnuje v´ ybˇer form´atu, anal´ yzu a implementaci ˇreˇsen´ı automatizovan´eho vytv´aˇren´ı a opatˇrov´an´ı elektronick´ ym podpisem a ˇcasov´ ym raz´ıtkem. Integrace ˇreˇsen´ı do syst´emu Microsft SharePoint 2010 demonstruje vyuˇzit´ı zvolen´eho ˇreˇsen´ı. Pr´ace hodnot´ı pr´avn´ı platnost a v´ yznam elektronick´ ych podpis˚ u a ˇcasov´ ych raz´ıtek.
Abstract The aim of the work is to find a document format that is suitable for automatic document composition with filling the entered information, obtaining electronic signature and time stamp and is suitable for use in a corporate environment. The work includes analysis and implementation of solution for automatic creation and obtaining electronic the signature and the time stamp. Integration of the solution into the Microsoft SharePoint 2010 demonstrates the use of the solution. Thesis evaluates the juristic validity and importance of electronic signatures and time stamps.
Obsah ´ 1 Uvod 1.1 Pozad´ı probl´emu . . . . . . 1.1.1 Spr´ava dokument˚ u . 1.1.2 D˚ uvod vzniku pr´ace 1.2 Pˇrehled pr´ace . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2 Form´ aty sloˇ zen´ ych textov´ ych dokument˚ u 2.1 Krit´eria form´atu sloˇzen´eho dokumentu . . 2.1.1 Dostupnost . . . . . . . . . . . . . 2.1.2 Automatick´e vytv´aˇren´ı dokumentu 2.1.3 Archivace . . . . . . . . . . . . . . 2.2 Zkouman´e modely . . . . . . . . . . . . . . 2.3 Portable Document Format . . . . . . . . 2.3.1 Struktura PDF . . . . . . . . . . . 2.3.2 Vytv´aˇren´ı PDF . . . . . . . . . . . 2.3.3 Shrnut´ı PDF . . . . . . . . . . . . 2.4 Office Open XML . . . . . . . . . . . . . . 2.4.1 Struktura OOXML . . . . . . . . . 2.4.2 Tvorba OOXML . . . . . . . . . . 2.4.3 Shrnut´ı OOXML . . . . . . . . . . 2.5 OpenDocument . . . . . . . . . . . . . . . 2.5.1 Struktura ODF . . . . . . . . . . . 2.5.2 Tvorba ODF . . . . . . . . . . . . 2.5.3 Shrnut´ı ODF . . . . . . . . . . . . 2.6 XSL-FO . . . . . . . . . . . . . . . . . . . 2.6.1 Struktura XSL-FO . . . . . . . . . 2.6.2 Tvorba XSL-FO . . . . . . . . . . . 2.6.3 Shrnut´ı XSL-FO . . . . . . . . . . 2.7 Rich Text Format . . . . . . . . . . . . . 2.7.1 Struktura RTF . . . . . . . . . . . 2.7.2 Tvorba RTF . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . .
1 1 1 2 2
. . . . . . . . . . . . . . . . . . . . . . . .
3 3 3 3 4 4 5 5 6 7 7 8 9 12 12 13 14 14 15 16 16 17 17 18 19
2.7.3
Shrnut´ı RTF
. . . . . . . . . . . . . . . . . . . . . . . 20
3 Elektronick´ e podpisy a ˇ casov´ a raz´ıtka 3.1 Z´akladn´ı pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Princip elektronick´eho podpisu . . . . . . . . . . . . . . . . . 3.2.1 Proces podepisov´an´ı . . . . . . . . . . . . . . . . . . . 3.2.2 Proces ovˇeˇrov´an´ı . . . . . . . . . . . . . . . . . . . . . 3.3 Proces ovˇeˇrov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Platnost elektronick´eho podpisu . . . . . . . . . . . . . . . . . 3.4.1 Nezpochybnitelnost . . . . . . . . . . . . . . . . . . . . 3.4.2 Okamˇzik posuzov´an´ı platnosti podpisu . . . . . . . . . ˇ 3.4.3 Casov´ e raz´ıtko a kvalifikovan´e ˇcasov´e raz´ıtko . . . . . . 3.4.4 Revokace certifik´atu a jej´ı vyhodnocen´ı pˇri ovˇeˇrov´an´ı podpisu . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Postup ovˇeˇrov´an´ı podpisu . . . . . . . . . . . . . . . . . . . . 3.6 Elektronick´ y podpis v praxi . . . . . . . . . . . . . . . . . . . 3.6.1 Odpovˇednost za ˇskodu . . . . . . . . . . . . . . . . . . 3.6.2 Souˇcasn´ y stav podpory elektronick´ ych podpis˚ u v aplikac´ıch . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Form´aty pokroˇcil´ ych el. podpis˚ u . . . . . . . . . . . . . . . . . 3.7.1 Pˇrehled . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.2 XAdES . . . . . . . . . . . . . . . . . . . . . . . . . .
21 21 22 22 22 23 23 23 24 24 25 26 27 27 28 28 28 29
4 Syst´ em spr´ avy dokument˚ u Microsoft SharePoint 32 4.1 Pˇrehled sluˇzby . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 Architektura . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3 Word Automation Services . . . . . . . . . . . . . . . . . . . . 33 5 Anal´ yza 5.1 Form´aty sloˇzen´ ych dokument˚ u . . . . . . . . . 5.1.1 PDF . . . . . . . . . . . . . . . . . . . 5.1.2 OOXML . . . . . . . . . . . . . . . . . 5.1.3 ODF . . . . . . . . . . . . . . . . . . . 5.1.4 XSL-FO . . . . . . . . . . . . . . . . . 5.1.5 RTF . . . . . . . . . . . . . . . . . . . 5.1.6 Porovn´an´ı . . . . . . . . . . . . . . . . 5.1.7 V´ ybˇer . . . . . . . . . . . . . . . . . . 5.2 Krit´eria aplikace . . . . . . . . . . . . . . . . 5.2.1 Platforma .NET . . . . . . . . . . . . . 5.2.2 Nez´avislost datov´ ych zdroj˚ u . . . . . . 5.2.3 Modularita jednotliv´ ych ˇc´ast´ı aplikace
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
35 35 35 36 36 37 37 38 38 39 39 39 39
5.2.4
Integrace aplikace do syst´emu spr´avy dokument˚ u . . . 40
6 Z´ akladn´ı aplikace – MergeSignModul 6.1 Architektura . . . . . . . . . . . . . . . . . 6.1.1 Kontext aplikace . . . . . . . . . . 6.1.2 Struktura modulu . . . . . . . . . . 6.1.3 Pˇred´av´an´ı dat a odst´ınˇen´ı datov´ ych 6.1.4 Pˇrehled tˇr´ıd . . . . . . . . . . . . . 6.2 Implementace . . . . . . . . . . . . . . . . 6.2.1 Tˇr´ıda MFSManager . . . . . . . . . 6.2.2 Tˇr´ıda AltChunkMergeService . . . 6.2.3 Tˇr´ıda PTMergeService . . . . . . . 6.2.4 Tˇr´ıda SimpleFillService . . . . . . . 6.2.5 Tˇr´ıda SimpleTagsLoader . . . . . . 6.2.6 Tˇr´ıda XmlDsigService . . . . . . . 6.2.7 Tˇr´ıda XadesService . . . . . . . . . 6.2.8 Logov´an´ı modulu . . . . . . . . . . 6.2.9 Konfigurace modulu . . . . . . . . 7 Pomocn´ e aplikace 7.1 MergeSignModulConfig . . . 7.2 MergeSignApp . . . . . . . . 7.3 XadesVerifyTool . . . . . . . 7.4 TestTimeToOpenDocument
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . . zdroj˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
8 Integrace Modulu 8.1 N´avrh integrace . . . . . . . . . . . . . . . . . 8.2 Pouˇzit´ı SharePoint 2010 SDK . . . . . . . . . 8.3 Implementace UI a kontroloru . . . . . . . . . 8.3.1 Poloˇzka kontextov´eho menu . . . . . . 8.3.2 Mod´aln´ı dialogov´e okno . . . . . . . . 8.4 Zmˇeny v modulu oproti z´akladn´ı implementaci 8.4.1 Logov´an´ı modulu . . . . . . . . . . . . 8.4.2 Konfigurace modulu . . . . . . . . . . 8.4.3 IfillService . . . . . . . . . . . . . . . . ´ ziˇstˇe digit´aln´ıch certifik´at˚ 8.4.4 Uloˇ u . . . . . 8.5 V´ ysledek integrace . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . .
41 41 41 41 42 43 43 43 43 45 45 46 46 46 47 47
. . . .
48 48 48 51 51
. . . . . . . . . . .
53 53 54 56 56 57 59 59 59 60 60 60
9 Porovn´ an´ı metod skl´ ad´ an´ı 61 9.1 Doba bˇehu a v´ ysledn´a velikost souboru . . . . . . . . . . . . . 62 9.2 Doba otev´ır´an´ı dokumentu . . . . . . . . . . . . . . . . . . . . 64
9.3
Z´avˇery porovn´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . 65
10 Pˇ r´ınos implementace el. podpisu a ˇ casov´ ych raz´ıtek 66 10.1 XmlDsigService . . . . . . . . . . . . . . . . . . . . . . . . . . 66 10.2 XadesService . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 11 Z´ avˇ er A Pˇ r´ıloha - Uˇ zivatelsk´ a dokumentace A.1 MergeSignApp . . . . . . . . . . . . . . A.2 XadesVerifyTool . . . . . . . . . . . . . A.3 TestTimeToOpenDocument . . . . . . A.4 SPMergeSign . . . . . . . . . . . . . . A.4.1 Instalace SharePoint serveru . . A.4.2 Nasazen´ı ˇreˇsen´ı . . . . . . . . . A.4.3 Ovl´ad´an´ı SPMergeSign . . . . . A.4.4 Nastaven´ı podpisu SPMergeSign
70
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
74 74 74 74 75 75 76 77 77
B Pˇ r´ıloha - XSD 79 B.1 Config.xsd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 B.2 Params.xsd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 C Pˇ r´ıloha - Grafy
81
´ 1 Uvod 1.1
Pozad´ı probl´ emu
T´ema t´eto diplomov´e pr´ace bylo zad´ano spoleˇcnost´ı CCA Group a.s. se s´ıdlem Karlovo n´amˇest´ı 17, 120 00 Praha 2, d´ale jen CCA Group.
1.1.1
Spr´ ava dokument˚ u
V posledn´ı dobˇe roste neb´ yvalou mˇerou mnoˇzstv´ı elektronick´ ych dokument˚ u. D˚ uvodem je st´ale vˇetˇs´ı objem elektronick´e komunikace a postupn´ y trend opouˇstˇen´ı pap´ırov´ ych dokument˚ u. Podle Cite World (www.citeworld.com) bylo v roce 2012 odesl´ano 89 miliard firemn´ıch e-mail˚ u dennˇe. Odhaduje se, ˇze do roku 2016 vzroste poˇcet tˇechto e-mail˚ u na 143,8 miliard dennˇe.[1] Oˇcek´av´a se tedy t´emˇeˇr dvojn´asobn´ y objem komunikace prostˇrednictv´ım e-mailu. Detailnˇejˇs´ı pr˚ uzkum spoleˇcnosti Radicati nab´ız´ı v´ yvoj pr˚ umˇern´eho poˇctu obdrˇzen´ ych e-mail˚ u pr˚ umˇern´eho firemn´ıho uˇzivatele za den. V roce 2011 to bylo 72 e-mail˚ u za den. Pokud nebudeme poˇc´ıtat nevyˇza´danou poˇstu, pak to bylo 58 e-mail˚ u za den. Oˇcek´av´a se, ˇze v roce 2016 to bude 71 e-mail˚ u dennˇe bez nevyˇza´dan´e poˇsty.[2] Kromˇe objemu elektronick´e komunikace roste poˇcet digitalizovan´ ych dokument˚ u i v jin´ ych oblastech. Zaveden´ım legislativy ˇ e republice (Z´akon ˇc. 227/2000 Sb.) a podk elektronick´emu podpisu v Cesk´ porou elektronizace st´atn´ı spr´avy (e-Government) se firm´am otev´ır´a dalˇs´ı oblast, ze kter´e lze oˇcek´avat n´ar˚ ust objemu elektronick´ ych dokument˚ u. Spr´ava dokument˚ u se zamˇeˇruje na ukl´ad´an´ı a uspoˇr´ad´an´ı dokument˚ u s c´ılem ” podporovat aktu´alnˇe rozpracovanou pr´aci“[3]. To zahrnuje pˇredevˇs´ım vytv´a´ cel je zˇrejm´ ˇren´ı a sd´ılen´ı obsahu. Uˇ y – kdyˇz organizace nevyuˇz´ıv´a ˇz´adn´ y syst´em spr´avy dokument˚ u, obsah se zpravidla vytv´aˇr´ı a ukl´ad´a neuspoˇra´danˇe a decentralizovanˇe. To vede k ˇcast´e redundanci informac´ı, neschopnosti efektivnˇe vyhled´avat ve firemn´ıch dokumentech, spolupracovat na vytv´aˇren´ı obsahu a jeho hromadn´emu uˇz´ıv´an´ı.[3] ˇ e republice. Potvrzuje to i Tato problematika je aktu´aln´ım t´ematem i v Cesk´ IT internetov´ y port´al SystemOnLine.cz, kter´ y uv´ad´ı, ˇze nezbytnost nasazen´ı DMS a zjevn´ y z´ajem hlavnˇe vˇetˇs´ıch firem dokazuje intern´ı pr˚ uzkum spoleˇc1
´ Uvod
Pˇrehled pr´ace
nosti Infinity z ledna roku 2012, kter´ y uskuteˇcnila ve 130 stˇrednˇe velk´ ych a velk´ ych ˇcesk´ ych firm´ach. Podle tohoto pr˚ uzkumu aˇz 44% firem hodnot´ı problematiku spr´avy dokument˚ u jako kl´ıˇcovou.[4]
1.1.2
D˚ uvod vzniku pr´ ace
Z´amˇer spoleˇcnosti CCA Group nab´ızet syst´emy pro spr´avu dokument˚ u vyˇzaduje pr˚ uzkum souˇcasn´eho stavu dokumentov´ ych form´at˚ u, moˇznosti jejich vyuˇzit´ı a m´ıry jejich podpory. Z tohoto d˚ uvodu vznikla pr´ace, kter´a m´a za u ´kol prozkoumat tento stav, vybrat dokumentov´ y form´at vhodn´ y k podporov´an´ı a vyzkouˇset pr´aci s n´ım na z´akladn´ıch operac´ıch (skl´ad´an´ı dokument˚ u, jejich podepisov´an´ı) v desktopov´e aplikaci a pˇr´ıpadnˇe jej´ı integraci do jiˇz existuj´ıc´ıho DMS syst´emu (SharePoint). Z´aroveˇ n vyˇzaduje pr˚ uzkum z hlediska platnosti elektronick´ ych podpis˚ u.
1.2
Pˇ rehled pr´ ace
V teoretick´e ˇc´asti se budu vˇenovat srovn´an´ı jednotliv´ ych textov´ ych dokumentov´ ych form´at˚ u, teorii elektronick´ ych podpis˚ u a ˇcasov´ ych raz´ıtek vˇcetnˇe kontextu ˇcesk´e legislativy a pˇredstaven´ı v´ yvoje modul˚ u pro syst´em spr´avy dokument˚ u Microsoft SharePoint. V praktick´e ˇca´sti provedu anal´ yzu poˇzadavk˚ u na dokumentov´ y form´at. Na z´akladˇe srovn´an´ı dokumentov´ ych form´at˚ u proveden´eho v teoretick´e ˇca´sti vyberu, kter´ y dokumentov´ y form´at podporovat. Navrhnu a naimplementuji aplikaci pro skl´ad´an´ı dokument˚ u, jejich plnˇen´ı a podepisov´an´ı tak, aby byla s co nejmenˇs´ım mnoˇzstv´ım u ´prav pouˇziteln´a jako serverov´e ˇreˇsen´ı, respektive integrovateln´a do syst´emu Microsoft SharePoint. N´aslednˇe ji do tohoto syst´emu ve formˇe monolitick´eho ˇreˇsen´ı zakomponuji. ˇ sen´ı otestuji a ohodnot´ım z hlediska v´ Reˇ ykonu. Na z´avˇer zhodnot´ım zp˚ usob ˇreˇsen´ı elektronick´ ych podpis˚ u ve form´atu Office Open XML.
2
2 Form´aty sloˇzen´ych textov´ych dokument˚ u Jedn´ım z u ´kol˚ u je urˇcit form´at dokument˚ u, kter´ y je vhodn´e pouˇz´ıvat v oblasti podnikov´ ych informaˇcn´ıch syst´em˚ u. Pro tento u ´ˇcel pˇredstav´ım vybran´e dokumenty se zamˇeˇren´ım na tˇri hlavn´ı krit´eria.
2.1
Krit´ eria form´ atu sloˇ zen´ eho dokumentu
Z re´aln´ ych poˇzadavk˚ u z´akazn´ık˚ u a standard˚ u kladen´ ych na spr´avu dokument˚ u lze odvodit nˇekolik hlavn´ıch krit´eri´ı, kter´e mus´ı sloˇzen´e form´aty dokument˚ u splnit.
2.1.1
Dostupnost
Prim´arn´ım poˇzadavkem na form´at dokumentu je, aby byl ˇsiroce dostupn´ y veˇrejnosti, tedy aby se nejednalo o propriet´arn´ı form´at, jehoˇz specifikace nen´ı zn´am´a, a tak aby z´akazn´ıka pro pr´aci s n´ım nic nev´azalo k pouˇz´ıv´an´ı konkr´etn´ı aplikace. To plat´ı bez v´ yjimky pro firemn´ı dokumenty. Aˇckoliv by bylo moˇzn´e zav´est propriet´arn´ı dokumentov´ y form´at uvnitˇr podniku, mus´ıme poˇc´ıtat s t´ım, ˇze dokumenty nejsou v´az´any pouze na podnikov´e prostˇred´ı, ale jejich prostˇrednictv´ım prob´ıh´a interakce s okol´ım (jin´e organizace, st´atn´ı spr´ava a dalˇs´ı). Zde bychom nar´aˇzeli na probl´emy s akceptac´ı takov´ ych dokument˚ u.
2.1.2
Automatick´ e vytv´ aˇ ren´ı dokumentu
Dalˇs´ım poˇzadavkem je, aby existovala nekomerˇcn´ı knihovna, kter´a by znaˇcnˇe usnadnila pr´aci s t´ımto form´atem. Pˇrin´aˇsela by moˇznost skl´adat dokument z menˇs´ıch definovan´ ych celk˚ u – ˇsablon, kter´e by umoˇzn ˇovala n´aslednˇe plnit textov´ ymi fragmenty.
3
Form´aty sloˇzen´ych textov´ych dokument˚ u
2.1.3
Zkouman´e modely
Archivace
Posledn´ım hlavn´ım poˇzadavkem je, aby struktura dokumentu podporovala, nebo alespoˇ n umoˇzn ˇovala pˇripojov´an´ı elektronick´ ych podpis˚ u a ˇcasov´ ych raz´ıtek, d˚ uleˇzit´ ych pro archivaci.
2.2
Zkouman´ e modely
Jiˇz podle krit´eria 2.1.1, kter´e klade d˚ uraz na otevˇrenost form´atu, mohu mezi porovn´avan´e form´aty dokument˚ u zahrnout n´asleduj´ıc´ı: ∙ Portable Document Format (PDF) ∙ Office Open XML (OOXML) ∙ Open Document Format for Office Aplications (ODF) ∙ eXtensible Stylesheet Language - Formatting Objects (XSL-FO) ∙ Rich Text Format (RTF) Tyto form´aty splˇ nuj´ı krit´erium 2.1.1, to vˇsak neznamen´a, ˇze jsou to jedin´ı z´astupci, kteˇr´ı tuto podm´ınku splˇ nuj´ı. Byly vybr´any tak´e proto, ˇze jsou pomˇernˇe rozˇs´ıˇren´e, nebo maj´ı alespoˇ n specifick´e vlastnosti, kter´e by mohly m´ıt pro odvˇetv´ı spr´avy dokument˚ u v´ yznam. V dalˇs´ıch podkapitol´ach, kde budou podrobnˇe rozebr´any, neopomenu zhodnotit, do jak´e m´ıry vyhovuj´ı bod˚ um 2.1.2 a 2.1.3. N´asleduj´ıc´ı informace o form´atech dokument˚ u vych´azej´ı z poznatk˚ u zjiˇstˇen´ ych v pr´aci na t´ema Modely dokument˚ u a metody jejich skl´ad´an´ı“, kterou ” jsem vypracoval jako souˇca´st Oborov´eho projektu. Zde se vˇsak na rozd´ıl od v´ yˇse uveden´eho projektu v´ıce zamˇeˇruji na dostupnost knihoven pro platformu .NET, kter´a byla uvedena jako poˇzadavek spoleˇcnosti CCA Group, a podle tohoto krit´eria zohledˇ nuji z´avˇereˇcn´e hodnocen´ı.
4
Form´aty sloˇzen´ych textov´ych dokument˚ u
2.3
Portable Document Format
Portable Document Format
Portable Document Format (d´ale jen PDF) je souborov´ y form´at vyvinut´ y p˚ uvodnˇe jako propriet´arn´ı form´at spoleˇcnosti Adobe Systems. Pˇrestoˇze byla v roce 1993 uveˇrejnˇena volnˇe ˇsiˇriteln´a specifikace form´atu PDF, z˚ ustal form´at pod kontrolou spoleˇcnosti Adobe aˇz do 1. ˇcervna 2008, kdy byl publikov´an jako otevˇren´ y standard ISO 32000-1.[5] Jedn´a se o form´at, kter´ y slouˇz´ı k r˚ uzn´ ym u ´ˇcel˚ um podle toho, jak´ y standard splˇ nuje: ∙ PDF/X - PDF for Exchange – grafick´e technologie – pˇredtiskov´a v´ ymˇena digit´aln´ıch dat, ∙ PDF/A - PDF for Archive – spr´ava dokument˚ u – form´at elektronick´eho dokumentu pro dlouhodobou u ´schovu, ∙ PDF/E - PDF for Engineering – spr´ava dokument˚ u – form´at pro technickou dokumentaci, ∙ PDF/VT - PDF for exchange of variable data and transactional (VT) printing – grafick´e technologie – podpora variable data printing, ∙ PDF/UA - PDF for Universal Access – spr´ava dokument˚ u – usnadnˇen´ı navigace v dokumentu (pro lidi s postiˇzen´ım).[6]
2.3.1
Struktura PDF
PDF je strukturovan´ y form´at, jehoˇz k´od je rozdˇelen implicitnˇe do n´asleduj´ıc´ıch komponent: header, body, xref table, trailer (obr´azek 2.1). ˇ ast header obsahuje pouze jednu ˇr´adku k´odu, kter´a oznaˇcuje verzi PDF. C´ ˇ ast body obsahuje veˇsker´e informace o objektech (p´ısma, texty, formul´aˇrov´a C´ pole, obr´azky a dalˇs´ı). Xref table obsahuje informace o tom, kolik objekt˚ u dokument obsahuje, kde zaˇc´ınaj´ı a jejich d´elku v bytech. Trailer obsahuje ukazatele na poloˇzky v xref table a na kl´ıˇcov´e objekty. Pokud chceme PDF mˇenit, m´ame dvˇe moˇznosti, jak n´aslednˇe dokument uloˇzit. Volbou uloˇ zit jako (Save As) uloˇz´ıme pouze zmˇenˇen´e PDF. Volbou uloˇ zit (Save) dojde k uloˇzen´ı p˚ uvodn´ıho PDF, ke kter´emu jsou pˇripojeny update ˇca´sti: body changes, tref a trailer nov´eho dokumentu. Pokud chceme PDF dokument podepsat, mus´ıme jej ukl´adat volbou uloˇzit, jinak bychom zmˇenili p˚ uvodn´ı PDF 5
Form´aty sloˇzen´ych textov´ych dokument˚ u
Portable Document Format
Obr´azek 2.1: Struktura PDF souboru po mnohon´asobn´em ukl´ad´an´ı (zdroj: autor). a podpis by nebyl validn´ı.[7] PDF vyuˇz´ıv´a pro generov´an´ı layoutu a grafiky podmnoˇzinu popisn´eho jazyka PostScript. Ten nav´ıc rozˇsiˇruje o dˇr´ıve zm´ınˇen´e strukturov´an´ı, syst´em vkl´ad´an´ı a pˇrenosu p´ısma a dalˇs´ı.
2.3.2
Vytv´ aˇ ren´ı PDF
Pro pr´aci s PDF existuje cel´a ˇrada knihoven. Jednou z nich je napˇr´ıklad iText, kter´ y m´a placenou i AGPL variantu a existuje i ve verzi pro C# .NET. Umoˇzn ˇuje automaticky vytv´aˇret PDF jak po chunk bloc´ıch (po kusech) a odstavc´ıch, tak pˇr´ımo po bytech. D´ale umoˇzn ˇuje automaticky plnit interaktivn´ı formul´aˇre a podepisovat, ˇsifrovat, popisovat, spojovat a rozdˇelovat dokumenty form´atu PDF.
6
Form´aty sloˇzen´ych textov´ych dokument˚ u
2.3.3
Office Open XML
Shrnut´ı PDF
Na jedn´e stranˇe je velkou v´ yhodou PDF jeho rozˇs´ıˇrenost a standardizace, kter´a se nav´ıc st´ale vyv´ıj´ı. Na druh´e stranˇe je pro obyˇcejn´eho uˇzivatele“ ne” v´ yhodou, ˇze jiˇz vytvoˇren´ y dokument m˚ uˇze mˇenit pouze s omezen´ımi (pˇrid´an´ı popisku, podeps´an´ı atd.) nebo za pouˇzit´ı pokroˇcil´ ych n´astroj˚ u (zpravidla se jedn´a o placen´e n´astroje).
2.4
Office Open XML
Form´at Office Open XML (d´ale jen OOXML) byl vyvinut spoleˇcnost´ı Microsoft a vyuˇz´ıv´a kombinace ukl´ad´an´ı dat ve form´atu XML, kter´e jsou strukturov´any v ZIP archivu. Prvn´ı standard byl vyd´an organizac´ı Ecma (ECMA376) a o nˇeco pozdˇeji ISO a IEC (ISO/IEC 29500). Od vyd´an´ı Microsoft Office 2007 se stal OOXML defaultn´ım form´atem Microsoft Office. D´ıky otevˇren´e specifikaci lze nal´ezt mnoho program˚ u napˇr´ıˇc operaˇcn´ımi syst´emy, kter´e s OOXML um´ı pracovat. Form´at OOXML byl navrˇzen tak, aby podporoval n´asleduj´ıc´ı oblasti: ∙ Jednoduch´a integrace business informac´ı s dokumenty – podporuje rychlou tvorbu dokument˚ u za pouˇzit´ı datov´ ych zdroj˚ u. ∙ Otevˇrenost, bezplatnost – form´at je zaloˇzen na technologi´ıch XML a ZIP, kter´e jsou vˇseobecnˇe dostupn´e, specifikace je t´eˇz bezplatn´a a otevˇren´a. ∙ Interoperabilita – d´ıky tomu, ˇze je j´adro dokumentu ve form´atu XML, lze form´at OOXML snadno pouˇz´ıt pro v´ ymˇenu dat mezi informaˇcn´ımi syst´emy a aplikacemi Microsoft Office. ∙ Robustnost – form´at OOXML je navrˇzen tak, aby byl robustnˇejˇs´ı neˇz klasick´e bin´arn´ı form´aty (poˇskozen´ı podsouboru neomez´ı ˇcitelnost ostatn´ıch podsoubor˚ u atd.). ∙ Efektivita – ZIP form´at umoˇzn ˇuje komprimovat data (aˇz o 75% menˇs´ı soubory). ∙ Bezpeˇcnost – otevˇrenost form´atu umoˇzn ˇuje snadno identifikovat a odstranit osobn´ı ˇci jin´e citliv´e u ´daje. Dalˇs´ı vylepˇsen´ı v oblasti bezpeˇcnosti 7
Form´aty sloˇzen´ych textov´ych dokument˚ u
Office Open XML
pˇrin´aˇsej´ı OOXML dokumenty t´ım, ˇze defaultnˇe nevykon´avaj´ı vloˇzen´ y k´od, tedy nen´ı moˇzn´e touto cestou podstrˇcit ˇskodliv´ y k´od k vykon´an´ı. ∙ Zpˇetn´a kompatibilita – pˇredeˇsl´e .doc, .xls a .ppt form´aty jsou plnˇe kompatibiln´ı s jejich OOXML n´astupci.[8]
2.4.1
Struktura OOXML
Jak bylo ˇreˇceno v´ yˇse, OOXML kombinuje technologie ZIP a XML. Jedn´a se tedy o zip archiv pˇrev´aˇznˇe XML soubor˚ u, kter´e obsahuj´ı informace o form´atov´an´ı, stylech, kapitoly, textov´ y obsah, metadata a dalˇs´ı. Jednotliv´e ˇc´asti dokumentu lze samostatnˇe mˇenit, nebo nahrazovat. Existuje zde syst´em odkaz˚ u, kter´e ukazuj´ı na jednotliv´e ˇca´sti dokumentu. Z toho je patrn´e, ˇze struktura adres´aˇre zde nen´ı pevnˇe stanoven´a a z´aleˇz´ı jen na odkazech. XML ˇca´sti dokumentu mohou b´ yt r˚ uzn´ ych typ˚ u, nˇekter´e jsou spoleˇcn´e pro vˇsechny aplikace, kter´e s OOXML pracuj´ı, dalˇs´ı jsou pak podˇr´ızeny pˇr´ımo konkr´etn´ım typ˚ um aplikac´ı (napˇr´ıklad list je implicitnˇe urˇcen aplikaci Excel, nebo slide master aplikaci PowerPoint). Dalˇs´ı objekty, napˇr´ıklad obr´azky, jsou ukl´ad´any pˇr´ımo v jejich nativn´ım form´atu.[8] D˚ uleˇzit´e souˇca´sti: y soubor .rels. ∙ Sloˇ zka rels obsahuje koˇrenov´ ∙ Soubor .rels obsahuje popis ˇca´st´ı, kter´e se v´aˇz´ı k (virtu´aln´ı) startovn´ı ˇc´asti dokumentu, pomoc´ı vztah˚ u. Vztahy (Relationships) obsahuj´ı informaci o typu ˇc´asti, na kterou odkazuj´ı, d´ale obsahuj´ı unik´atn´ı identifik´ator a um´ıstˇen´ı ˇc´asti. Pˇr´ıklad vztah˚ u naleznete na obr´azku 2.2. ych typ˚ u ob∙ Soubor [Content Types].xml obsahuje definice pouˇzit´ sahu. Odkazovan´e ˇca´sti mohou b´ yt bud’ jednoduch´e, nebo opˇet sloˇzen´e pomoc´ı odkazov´an´ı v rels. V kaˇzd´em rels je definov´ana hlavn´ı ˇca´st dokumentu (u PowerPoint dokumentu je to presentation, u Excel dokumentu workbook a u Word dokumentu je to document). Podle typu hlavn´ı ˇca´sti dokumentu se odv´ıjej´ı ostatn´ı vztahy. Vztahy (relationships) nehraj´ı roli pouze v rels ˇca´stech, ale pouˇz´ıvaj´ı se jako zp˚ usob propojen´ı v cel´em OOXML. Pˇr´ıklad implicitn´ıho a explicitn´ıho odkazov´an´ı ve form´atu OOXML naleznete na obr´azc´ıch 2.3 a 2.4. 8
Form´aty sloˇzen´ych textov´ych dokument˚ u
Office Open XML
Obr´azek 2.2: Pˇr´ıklad vysoko´ urovˇ nov´ych vztah˚ u v seˇsitu aplikace Excel (zdroj: msdn.microsoft.com).
Uˇziteˇcnou vlastnost´ı form´atu OOXML je tak´e to, ˇze nab´ız´ı vztahov´an´ı nejen na intern´ı, ale i na extern´ı zdroje. Jak uˇz bylo zm´ınˇeno v´ yˇse, form´at OOXML defaultnˇe nepodporuje makra. Je moˇzn´e uloˇzit dokument s podporou maker, v tom pˇr´ıpadˇe ale uˇzivatel rozezn´a takov´ y typ dokumentu (je uloˇzen s koncovkou m“ m´ısto x“). Pokud bude dokument s podporou maker otev´ır´an ” ” jako dokument bez podpory (zmˇena koncovky), aplikace vr´at´ı chybu. [8]
2.4.2
Tvorba OOXML
Pro pr´aci s OOXML teoreticky staˇc´ı pouze prostˇredek pro manipulaci se ZIP archivy. Pˇresto existuje ˇrada n´astroj˚ u pro pr´aci s OOXML vydan´ ych pˇr´ımo spoleˇcnost´ı Microsoft. Nejv´ yznamnˇejˇs´ımi n´astroji jsou patrnˇe Office Open XML SDK (nyn´ı jiˇz ve verzi 2.0) a PowerTools for Open XML. Tyto n´astroje umoˇzn ˇuj´ı vytv´aˇren´ı dokument˚ u, zmˇenu jejich obsahu a mnoh´e dalˇs´ı. Pokud se zamˇeˇr´ım na vytv´aˇren´ı dokument˚ u spojen´ım jiˇz existuj´ıc´ıch, jsou zn´amy minim´alnˇe dvˇe r˚ uzn´e moˇznosti, jak takov´ y dokument vytvoˇrit: ∙ altChunk je speci´aln´ı vysoko´ urovˇ nov´ y pˇr´ıstup skl´ad´an´ı Word OOXML dokumentu pomoc´ı znaˇckov´an´ı, kter´ y umoˇzn ˇuje do tˇela dokumentu vkl´adat jin´ y OOXML dokument, nebo html str´anku. Pouˇzit´e dokumenty jsou pˇribaleny do bal´ıku c´ılov´eho dokumentu a v tˇele jsou na nˇe vytvoˇreny odkazy.
9
Form´aty sloˇzen´ych textov´ych dokument˚ u
Office Open XML
Obr´azek 2.3: Implicitn´ı odkazov´an´ı v OOXML (zdroj: msdn.microsoft.com).
10
Form´aty sloˇzen´ych textov´ych dokument˚ u
Office Open XML
Obr´azek 2.4: Explicitn´ı odkazov´an´ı v OOXML (zdroj: msdn.microsoft.com).
11
Form´aty sloˇzen´ych textov´ych dokument˚ u
OpenDocument
∙ DocumentBuilder je tˇr´ıda z PowerTools for Open XML urˇcen´a k vytv´aˇren´ı dokument˚ u. C´ılov´ y dokument je pˇr´ımo vytvoˇren ze zdrojov´ ych a nejedn´a se o pouh´e odkazov´an´ı. Rozd´ıl mezi tˇemito pˇr´ıstupy je zˇrejm´ y – dokument pomoc´ı altChunk bude snadn´e a rychl´e vytvoˇrit, ale vzroste z´atˇeˇz stroje pˇri otev´ır´an´ı dokumentu. Naproti tomu se bude nov´ y dokument pomoc´ı DocumentBuilder vytv´aˇret d´ele, avˇsak jeho otev´ır´an´ı bude m´enˇe n´aroˇcn´e. Podepisov´an´ı OOXML dokument˚ u je moˇzn´e realizovat mnoha zp˚ usoby. Nejsnazˇs´ı moˇznost´ı je vkl´ad´an´ı intern´ıch podpis˚ u ve form´atu XMLDsig, staˇc´ı k tomu knihovny System.IO.Packaging (.NET Framework 3.0 a vyˇsˇs´ı) a System.Security.Cryptography (.NET Framework 1.1 a vyˇsˇs´ı). V aplikac´ıch Office od verze 2010 existuje moˇznost podepisov´an´ı OOXML ve form´atu XAdES (viz kapitola 3.6).
2.4.3
Shrnut´ı OOXML
Form´at OOXML je mnohem mladˇs´ı a tak´e m´enˇe rozˇs´ıˇren´ y neˇz form´at PDF. Pravdˇepodobnˇe z tˇechto d˚ uvod˚ u nen´ı zvykem vyuˇz´ıvat dokumenty ve form´atu OOXML k archivaci. D´ıky podpoˇre ze strany tv˚ urc˚ u bal´ıku Office vid´ım snahu o zaveden´ı uzn´avan´ ych standard˚ u podpisov´ ych form´at˚ u, coˇz by mohlo form´atu OOXML z pohledu archivace v budoucnu prospˇet. V souˇcasnosti lze tento nedostatek ˇreˇsit konverz´ı OOXML dokument˚ u do form´atu PDF (k tomu m˚ uˇze poslouˇzit napˇr´ıklad knihovna DocX, urˇcen´a pro platformu .NET). Nev´ yhodou OOXML je, ˇze mimo platformu .NET m´a m´enˇe kvalitn´ı podporu. K form´atu OOXML existuje otevˇren´ y standard a mnoho aplikac´ı tak s t´ımto form´atem um´ı zach´azet. D´ale je pro uˇzivatele pˇr´ıjemn´e, ˇze si m˚ uˇze snadno vytvoˇrit ˇsablony pro tvorbu dokument˚ u v aplikaci typu Office. Nakonec nemohu nezm´ınit, ˇze se jedn´a o form´at, kter´ y podporuje ukl´ad´an´ı podpis˚ u v r˚ uzn´ ych form´atech.
2.5
OpenDocument
OpenDocument (OD) je v pln´em znˇen´ı zn´am jako Open Document Format for Office Applications (ODF). Byl p˚ uvodnˇe vyvinut spoleˇcnosti SunMicrosystems jako form´at OpenOffice.org XML. Pot´e byla jeho specifikace vyd´ana or12
Form´aty sloˇzen´ych textov´ych dokument˚ u
OpenDocument
ganizac´ı OASIS, nav´ıc byl pˇri vyd´an´ı verze 1.1 publikov´an tak´e jako ISO/IEC standard (ISO/IEC 26300:2006/Amd 1:2012).
2.5.1
Struktura ODF
ODF podporuje dvˇe odliˇsn´e varianty reprezentace: ∙ Reprezentace pomoc´ı jedin´ eho XML souboru. Zn´am´a tak´e jako ploch´e XML (Flat XML), nebo nekomprimovan´e XML (Uncompressed XML). Tato reprezentace nen´ı ˇsiroce uˇz´ıvan´a a nem´a v technick´e specifikaci standardizovan´e pˇr´ıpony. Bˇeˇznˇe se ale pouˇz´ıvaj´ı pˇr´ıpony .xml, .fodt, .fods aj. ∙ Jako kolekce poddokument˚ u v standardn´ım ZIP archivu s pevnˇ e danou strukturou. Kaˇzd´ y z poddokument˚ u m´a vlastn´ı koˇrenov´ y dokument. Pouˇz´ıv´a standardizovan´e pˇr´ıpony .odt, .ods, .odp a .odg. Stejnˇe jako OOXML, ODF podporuje ˇsablony (templates). Jedn´a se soubory, kter´e obsahuj´ı informace o form´atov´an´ı (vˇcetnˇe styl˚ u) bez samotn´eho obsahu. ODT podporuje ukl´ad´an´ı metadat. Pro tento u ´ˇcel m´a vlastn´ı sadu metadat, kterou lze uˇzivatelsky rozˇs´ıˇrit. Objekty, kter´e m˚ uˇze OD obsahovat, jsou dvoj´ıho druhu: ∙ Objekty, kter´ e jsou v OD zastoupeny (vzorce, grafy, tabulky, textov´e dokumenty, kresby, prezentace) ∙ Objekty, kter´ e nemaj´ı XML reprezentaci a maj´ı pouze bin´ arn´ı reprezentaci. Jedn´a se napˇr´ıklad o OLE objekty, bitmapy atd. ODF umoˇzn ˇuje referencov´an´ı uvnitˇr bal´ıku pomoc´ı takzvan´ ych IRIs (Internationalized Resource Identifiers) lok´ator˚ u. Neumoˇzn ˇuje tedy na rozd´ıl od OOXML referencovat extern´ı zdroje.[9] Uncompressed varianta obsahuje standardnˇe n´asleduj´ıc´ı ˇca´sti: ∙ XML soubory: 13
Form´aty sloˇzen´ych textov´ych dokument˚ u
– – – –
OpenDocument
content.xml – nese nebin´arn´ı obsah dokumentu styles.xml – obsahuje informace o stylech meta.xml – obsahuje metadata settings.xml – obsahuje data o nastaven´ıch, kter´a se net´ ykaj´ı obsahu ani rozloˇzen´ı (napˇr´ıklad zoom, pozice kurzoru atd.)
∙ Ostatn´ı soubory: – mimetype – jednoˇra´dkov´ y soubor s informac´ı o mimetypu dokument ∙ Sloˇzky: – META-INF – obashuje manifest.xml s informacemi o souborech obsaˇzen´ ych v OD bal´ıku (seznam vˇsech obsaˇzen´ ych soubor˚ u, jejich media typ a pokud jsou ˇsifrovan´e, tak i informace potˇrebn´e k deˇsifrov´an´ı) – Thumbnails – thumbnail.png – mˇelo by se jednat o n´ahled na prvn´ı stranu dokumentu o rozmˇerech 128x128 pixel˚ u[9]
2.5.2
Tvorba ODF
Pro pr´aci s ODF existuje ˇrada knihoven, ale pouze nˇekolik je jich urˇceno pro platformu .NET. Nejzn´amˇejˇs´ı z nekomerˇcn´ıch knihovnen pro .NET je AODL. Jej´ı kvalita je vˇsak n´ızk´a, podporuje ODF pouze do verze 3.2 a nyn´ı se zd´a b´ yt jej´ı v´ yvoj neaktivn´ı. Pro platformu .NET tedy nezb´ yv´a jin´a moˇznost neˇz pouˇz´ıt knihovny pro Javu (ODFDOM, Simple ODF API for Java, nebo JOpenDocument) a Java VM pro .NET, nebo zaplatit zhruba 7500 Kˇc za komerˇcn´ı knihovnu ODF.NET od spoleˇcnosti Independent. Nekomerˇcn´ı n´astroje pro Javu umoˇzn ˇuj´ı veˇskerou z´akladn´ı pr´aci s dokumentem a na t´eto u ´rovni jsou postaˇcuj´ıc´ı. Pokud bych chtˇel spojovat jiˇz existuj´ıc´ı dokumenty, musel bych si tuto funkˇcnost s´am doplnit. Vysoko´ urovˇ nov´e skl´ad´an´ı, kter´e by samo zajiˇst’ovalo shodu styl˚ u, bud’ nefunguje zcela dobˇre, nebo jej neum´ı v˚ ubec. Knihovna ODF.NET tuto funkˇcnost poskytuje.
2.5.3
Shrnut´ı ODF
ODF a OOXML jsou v mnoh´ ych smˇerech podobn´e form´aty. Pouˇz´ıvaj´ı stejn´e technologie k ukl´ad´an´ı dat. ODF umoˇzn ˇuje intern´ı pˇripojov´an´ı elektronick´ ych 14
Form´aty sloˇzen´ych textov´ych dokument˚ u
XSL-FO
Obr´azek 2.5: St´aty, kter´e si ODF osvojily (zelenˇe), a ˇclenov´e NATO (modˇre), kter´ym byl uloˇzen jako standard povinnˇe (zdroj: wikipedia.org). podpis˚ u obdobnˇe jako form´at OOXML. ODF ale, na rozd´ıl od OOXML, nepodporuje napˇr´ıklad referencov´an´ı extern´ıch zdroj˚ u a tak´e m´a v´ yraznˇe horˇs´ı podporu pro platformu .NET. D˚ uvodem, proˇc je tento form´at zaj´ımav´ y, je fakt, ˇze jej dosud jako n´arodn´ı standard osvojila ˇrada zem´ı (napˇr´ıklad Braz´ılie, Chorvatsko, Japonsko a dalˇs´ı) a tak´e byl zaveden povinnˇe jako standard ˇclen˚ um NATO (obr´azek 2.5)[10]
2.6
XSL-FO
Extensible Stylesheet Language - Formatting Objects (XSL-FO) je znaˇckovac´ı jazyk, kter´ y lze ch´apat jako speci´aln´ı pˇr´ıpad dokumentov´eho form´atu. Zjednoduˇsenˇe se jedn´a o spojen´ı XML dokumentu s XSL transformac´ı, kter´a urˇcuje v´ ysledn´ y vzhled dokumentu. XSL-FO spad´a do technologi´ı W3C. V roce 2001 byla vyd´ana specifikace 1.0 a v roce 2006 vydala organizace W3C specifikaci verze 1.1. XSL-FO vyuˇz´ıv´a v´ yhradnˇe prezentaˇcn´ıho a nikoliv s´emantick´eho znaˇcen´ı (na rozd´ıl od HTML). Jeho hlavn´ı myˇslenkou je, aby byl pouˇz´ıv´an jako form´at pro transformace. Dokument by se tedy netvoˇril pˇr´ımo jako XSL-FO, ale byl by pops´an v nˇejak´em jin´em XML jazyce (XHTML, DocBook, ale i jak´ ykoliv jin´ y XML jazyk). D´ale by se takov´ y dokument pˇrevedl pomoc´ı XSLT transformace na XML-FO form´at. XSL-FO dokument pak zpracov´av´a takzvan´ y FO procesor, kter´ y z dokumentu m˚ uˇze vygenerovat jin´ y typ dokumentu (zpravidla PDF
15
Form´aty sloˇzen´ych textov´ych dokument˚ u
XSL-FO
ˇci PostScript, m˚ uˇze ale napˇr´ıklad i RTF), nebo jej m˚ uˇze pˇr´ımo zobrazit na obrazovku.[11]
2.6.1
Struktura XSL-FO
XSL-FO m´a v z´asadˇe velmi jednoduchou strukturu. Jedn´a se o XML dokument, kter´ y nemus´ı nutnˇe vyhovovat konkr´etn´ımu DTD sch´ematu. Staˇc´ı, kdyˇz bude vyhovovat XSL-FO specifikaci. XSL-FO dokument obsahuje dvˇe povinn´e ˇca´sti. Prvn´ı obsahuje seznam pojmenovan´ ych rozloˇzen´ı str´anky. Druh´a ˇc´ast obsahuje seznam dat se znaˇckov´an´ım, kter´ y odkazuje na rozloˇzen´ı str´anek, a tak urˇcuje, jak obsahov´a data vypln´ı jednotliv´e str´anky. Prvn´ı ˇc´ast definuje veˇsker´e nastaven´ı str´anek. Mezi ty patˇr´ı hlavnˇe velikost str´anek, odsazen´ı textu a napˇr´ıklad i definov´an´ı sekvenc´ı pro sud´e a lich´e str´anky. Druh´a ˇc´ast je rozdˇelena na toky, kter´e vˇzdy patˇr´ı urˇcit´e definici str´anky. Ty pak d´ale obsahuj´ı seznam blok˚ u, kde kaˇzd´ y blok obsahuje seznam textov´ ych dat, ˇr´adkov´ ych znaˇckovac´ıch prvk˚ u anebo kombinaci oboj´ıho. Bloky a ˇra´dkov´e prvky funguj´ı podobnˇe jako v CSS (tedy i vˇetˇsina form´atovac´ıch prvk˚ u se dˇed´ı na vnoˇren´e FO).[12]
2.6.2
Tvorba XSL-FO
Tvorbu XSL-FO lze rozdˇelit do nˇekolika f´az´ı: 1. Tvorba XML dokumentu s obsahem. V t´eto f´azi lze pouˇz´ıt celou ˇradu pˇr´ıstup˚ u. Je moˇzn´e vygenerovat si vlastn´ı XML, kter´e bude m´ıt n´ami urˇcenou strukturu. Tak´e je moˇzn´e vyuˇz´ıt nˇekter´ y form´at, kter´ y je vyj´adˇren pomoc´ı XML (napˇr´ıklad XHTML, DocBook a dalˇs´ı) - mnoho n´astroj˚ u bude podporovat export do takov´ ych form´at˚ u. 2. XSLT transformace na XSL-FO. K tomuto kroku je zapotˇreb´ı XSLT transformace a XSLT procesor. Na internetu je k nalezen´ı cel´a ˇrada ˇsablon XSLT transformac´ı pro pˇrevod XML na XSL-FO (zvl´aˇstˇe pak pro typizovan´e form´aty typu DocBook). Mezi kompilaˇcn´ı n´astroje patˇr´ı napˇr´ıklad Saxon, xsltproc nebo MSXML. 16
Form´aty sloˇzen´ych textov´ych dokument˚ u
Rich Text Format
3. Konverze do jin´ eho form´ atu / zobrazen´ı na monitor. Pokud je k dispozici XSL-FO soubor, je potˇrebn´e m´ıt jeˇstˇe XSL-FO procesor, aby bylo moˇzn´e si dokument prohl´ednout nebo pˇrev´est na jin´ y form´at. Zde se nab´ız´ı kvalitn´ı open-source n´astroj FOP (od spoleˇcnosti Apache) s podporou ˇcesk´eho jazyka, kter´ y je urˇcen pro Javu a existuje k nˇemu port pro .NET. Jmenuje se nfop a jedn´a se o port v jazyce J#. Alternativou je projekt FO.NET. Tato knihovna nab´ız´ı kvalitn´ı tvorbu PDF, vˇcetnˇe komprese. Knihovna FOP vˇsak podporuje v´ıce v´ ystupn´ıch typ˚ u soubor˚ u (napˇr´ıklad PostScript nebo PCL) a umoˇzn ˇuje zobrazit zform´atovan´e XSL-FO na obrazovku.
2.6.3
Shrnut´ı XSL-FO
XSL-FO zdaleka nen´ı ide´aln´ım form´atem. Neexistuje k nˇemu dosud ˇz´adn´ y n´astroj, kter´ y by poskytl uˇzivatelsky pˇr´ıjemn´e prostˇred´ı pro form´atov´an´ı (ˇza´dn´ y WYSIWYG editor), tvorba sloˇzitˇejˇs´ıho vzhledu je n´aroˇcn´a nebo nejsou nˇekter´e vlastnosti v˚ ubec podporov´any. Nav´ıc si bˇeˇzn´ y uˇzivatel tento dokument ani nezobraz´ı ve zform´atovan´em stavu na monitor. Proˇc jsem jej tedy mezi zkouman´e form´aty zahrnul? D˚ uvodem je, ˇze t´ımto smˇerem XSL-FO nem´ıˇr´ı. Jeho c´ılem je st´at se prostˇredkem pro dosaˇzen´ı c´ılov´eho form´atu (vˇetˇsinou PDF). Typick´ ym pˇr´ıkladem uˇzit´ı bude generov´an´ı PDF z dat obsaˇzen´ ych v objektu uloˇzen´em v datab´azi – chceme do PDF vygenerovat seznam zamˇestnanc˚ u, fakturu, smlouvu – tedy cokoliv, co m´a jasnˇe danou, m´alo promˇenlivou strukturu a nelze oˇcek´avat ˇcast´e zmˇeny vzhledu dokumentu. Lze zajist´e oponovat, ˇze takov´ ych konvertor˚ u existuje cel´a ˇrada nad r˚ uzn´ ymi form´aty (XHTML i DocBook maj´ı tak´e sv´e konvertory do PDF), XSL-FO se ale neomezuje na jeden form´at XML dokumentu, ale umoˇzn ˇuje generov´an´ı nad jak´ ymkoli XML. XSL-FO tak´e podporuje vkl´ad´an´ı libovoln´ ych XML dat pomoc´ı tagu foreign-object (nejobl´ıbenˇejˇs´ımi objekty jsou SVG kˇrivky).
2.7
Rich Text Format
Rich Text Format (d´ale jen RTF) je platformˇe nez´avisl´ y, propriet´arn´ı dokumentov´ y form´at vyvinut´ y spoleˇcnost´ı Microsoft. Jeho specifikace byla uveˇrejnˇena jiˇz v roce 1987 a jedn´a se tedy o nejstarˇs´ı dokumentov´ y form´at z tˇech, kter´e zde porovn´av´am. V pr˚ ubˇehu let byly vyd´av´any novˇejˇs´ı verze specifikace (pˇrev´aˇznˇe spolu s vyd´an´ım nov´e verze MS Office) a v roce 2008 byla vyd´ana 17
Form´aty sloˇzen´ych textov´ych dokument˚ u
Rich Text Format
dosud posledn´ı verze 1.9.1. Po vyd´an´ı MS Office 2010 vydal Microsoft stanovisko, ˇze nebude specifikaci RTF d´ale rozv´ıjet, a tak nˇekter´e vlastnosti MS Word 2010 a novˇejˇs´ıch nebudou s form´atem RTF kompatibiln´ı.[13]
2.7.1
Struktura RTF
RTF je ukl´ad´an jako jeden soubor obsahuj´ıc´ı prost´ y text. Je konstruov´an tak, ˇze je i v neinterpretovan´em stavu ˇciteln´ y ˇclovˇekem (Human readability). Pokud se jedn´a o RTF ukl´adan´e aplikac´ı MS Word, je ˇcitelnost zt´ıˇzena, protoˇze je pˇrid´av´ano znaˇcn´e mnoˇzstv´ı ˇr´ıd´ıc´ıch znak˚ u. Ve form´atovac´ım vyznaˇcov´an´ı se autoˇri (Richard Brodie, Charles Simonyi a David Luebbert) nechali inspirovat znaˇcen´ım form´atu TeX. ˇ ıd´ıc´ı znaky: R´ ∙ Sloˇ zen´ e z´ avorky {} definuj´ı skupinu. Skupiny se mohou libovolnˇe zanoˇrovat. ∙ Zpˇ etn´ e lom´ıtko ∖ zaˇc´ın´a ˇr´ıd´ıc´ı k´od RTF. Kaˇzd´ y RTF dokument by mˇel zaˇc´ınat ˇr´ıd´ıc´ım k´odem ∖rtf (napˇr´ıklad form´atov´an´ı tuˇcn´eho textu je ˇr´ızeno sekvenc´ı ∖b atd.). RTF dokument umoˇzn ˇuje pouˇz´ıt pouze 7bitov´e ASCII znaky. Pokud maj´ı b´ yt ve v´ ysledn´em textu jin´e znaky, budou v RTF souboru zastoupeny pomoc´ı escape sekvence. Znaky z k´odov´an´ı Windows budou vkl´ad´any ve tvaru ∖’ff (kde ff pˇredstavuje dvˇe hexadecim´aln´ı ˇc´ıslice). Znaky z k´odov´an´ı Unicode budou ve tvaru ∖u0000 (kde 0000 pˇredstavuje znam´enkov´e 16bitov´e decim´aln´ı ˇc´ıslo). Vloˇzen´e objekty: ∙ OLE objekty – pokud interpret form´atu OLE objektu nerozum´ı, m˚ uˇze ho v zobrazen´ı nahradit bitmapou, nebo jej nezobrazit v˚ ubec. ∙ Obr´ azky – je umoˇznˇeno vkl´adat v nˇekolika vybran´ ych form´atech (JPEG, PNG). Pokud program, kter´ y RTF vytv´aˇr´ı, m´a vloˇzit obr´azek jin´eho form´atu, zpravidla si program obr´azek nejprve zkonvertuje do podporovan´eho form´atu, nebo jej nevloˇz´ı v˚ ubec. Nˇekter´e programy zapisuj´ı obr´azky ve dvou r˚ uzn´ ych form´atech z´aroveˇ n, kv˚ uli lepˇs´ı kompatibilitˇe s produkty MS Windows. Jeden bude ve form´atu JPEG, nebo PNG a 18
Form´aty sloˇzen´ych textov´ych dokument˚ u
Rich Text Format
druh´ y ve form´atu Windows Meta File (WMF). Ukl´ad´an´ı obr´azku ve dvou form´atech pochopitelnˇe znaˇcnˇe zvˇetˇsuje velikost v´ ysledn´eho RTF dokumentu. atd.). ∙ P´ısma – mohou b´ yt vloˇzena a z´aroveˇ n jsou podporov´any generick´e n´azvy rodiny p´ısma pro nahrazen´ı chybˇej´ıc´ıch p´ısem. Ani jedna z tˇechto vlastnost´ı vˇsak nen´ı interprety ˇsiroce podporov´ana. ∙ Tvary – RTF podporuje z´akladn´ı kresl´ıc´ı objekty (obd´eln´ıky, ˇca´ry, ˇsipky, mnoho´ uheln´ıky, elipsy a dalˇs´ı). Ani RTF tvary nejsou interprety pˇr´ıliˇs podporov´any. RTF nepodporuje spouˇstˇen´ı maker, coˇz zvyˇsuje bezpeˇcnost form´atu v˚ uˇci ˇs´ıˇren´ı vir˚ u. Samotn´a pˇr´ıpona ale nic neznamen´a, takˇze je moˇzn´e, aby ˇsiˇritel viru uloˇzil dokument obsahuj´ıc´ı ˇskodliv´ y k´od ve form´atu DOC a pˇr´ıponu souboru n´aslednˇe zmˇenil na .rtf. V aplikaci MS Word je tento dokument otevˇren jako jak´ ykoliv jin´ y dokument form´atu DOC (tedy vˇcetnˇe proveden´ı maker), aniˇz by byl uˇzivatel upozornˇen, ˇze se nejedn´a o RTF. Nejedn´a se tedy o zcela bezchybn´ y ochrann´ y prvek. Pokud by byla pˇr´ıpona zm´ınˇen´eho dokumentu zmˇenˇena z DOC na DOCX, je otev´ır´an´ı souboru v aplikaci MS Word pˇreruˇseno chybou.[14]
2.7.2
Tvorba RTF
Pro pr´aci s form´atem RTF existuj´ı dva druhy knihoven: ∙ pro generov´an´ı RTF (jRTF, RTF Document Constructor Library) ∙ pro manipulaci s RTF (NRTFTree, Gios WORD .NET Library) Pr´avˇe druh´a kategorie je zaj´ımavˇejˇs´ı, protoˇze je vyuˇz´ıv´ana nejen pro tvorbu nov´eho RTF, ale i pro skl´ad´an´ı z jiˇz existuj´ıc´ıch dokument˚ u. Takovou funkcionalitu sice neposkytuj´ı pˇr´ımo, d´a se ale pomˇernˇe snadno pomoc´ı jejich prostˇredk˚ u naimplementovat. Vˇetˇs´ı probl´em je ohlednˇe souladu se specifikac´ı form´atu. Knihovny bud’ odpov´ıdaj´ı pouze nˇekter´e z historick´ ych verz´ı RTF, nebo nepodporuj´ı ˇz´adnou konkr´etn´ı verzi.
19
Form´aty sloˇzen´ych textov´ych dokument˚ u
2.7.3
Rich Text Format
Shrnut´ı RTF
Specifikace RTF je zveˇrejnˇena pomˇernˇe dlouho dobu. Zpoˇc´atku ale veˇrejnˇe dostupn´a nebyla, a proto mˇeli v´ yvoj´aˇri spoleˇcnosti Microsoft oproti ostatn´ım v´ yvoj´aˇr˚ um v´ yhodu. To vedlo k aktu´aln´ımu stavu, ve kter´em s t´ımto form´atem (alespoˇ n v nˇejak´e verzi) um´ı pracovat vˇetˇsina textov´ ych procesor˚ u, m´alokter´ y interpret vˇsak podporuje vˇsechny vlastnosti RTF dokumentu a v´ ysledky interpretace se liˇs´ı. Dalˇs´ı nev´ yhodou je, ˇze k form´atu RTF neexistuj´ı knihovny, kter´e by umoˇzn ˇovaly vysoko´ urovˇ novou manipulaci, z´aroveˇ n by plnˇe podporovaly nejnovˇejˇs´ı specifikaci a byly by aktivnˇe vyv´ıjen´e. Posledn´ı zjiˇstˇenou nev´ yhodou je, ˇze ploch´a struktura form´atu RTF neumoˇzn ˇuje internˇe pˇripojovat elektronick´ y podpis ani ˇcasov´a raz´ıtka. Jak´ ykoliv podpis tedy mus´ı b´ yt pˇripojov´an externˇe. Spolu se skuteˇcnost´ı, ˇze Microsoft nebude form´at RTF d´ale rozv´ıjet, jsou to d˚ uvody, proˇc se podporou RTF pˇr´ıliˇs nezab´ yvat. V kapitole 5.1 jsem provedl anal´ yzu v´ yˇse uveden´ ych informac´ı, zhodnocen´ı pˇr´ınosu jednotliv´ ych form´at˚ u a jejich vz´ajemn´e porovn´an´ı.
20
3 Elektronick´e podpisy a ˇcasov´a raz´ıtka 3.1
Z´ akladn´ı pojmy
Podle z´akona ˇc. 227/2000 Sb. se elektronick´ ym podpisem rozum´ı u ´daje ” v elektronick´e podobˇe, kter´e jsou pˇripojen´e k datov´e zpr´avˇe nebo jsou s n´ı logicky spojen´e, a kter´e slouˇz´ı jako metoda k jednoznaˇcn´emu ovˇeˇren´ı identity podepsan´e osoby ve vztahu k datov´e zpr´avˇe“.[15] Pokud bych mˇel tuto definici vysvˇetlit, pak se elektronick´ ym podpisem m´ın´ı obecn´ y identifik´ator pˇripojen´ y k datov´e zpr´avˇe, kter´ y umoˇzn ˇuje jednoznaˇcnou identifikaci podepsan´e osoby. V takov´em smyslu se nejedn´a o elektronick´ y podpis, jak je bˇeˇznˇe ch´ap´an, a neposkytuje ˇz´adnou v´ yznamnou informaci. Z´akon ˇc. 227/2000 Sb. vˇsak zav´ad´ı dalˇs´ı pojmy: zaruˇ cen´ y elektronick´ y podpis a uzn´ avan´ y elektronick´ y podpis. Zaruˇcen´ y elektronick´ y podpis je takov´ y elektronick´y podpis, kter´y splˇ nuje ” n´asleduj´ıc´ı poˇzadavky 1) je jednoznaˇcnˇe spojen s podepisuj´ıc´ı osobou, 2) umoˇzn ˇuje identifikaci podepisuj´ıc´ı osoby ve vztahu k datov´e zpr´avˇe, 3) byl vytvoˇren a pˇripojen k datov´e zpr´avˇe pomoc´ı prostˇredk˚ u, kter´e podepisuj´ıc´ı osoba m˚ uˇze udrˇzet pod svou v´yhradn´ı kontrolou, 4) je k datov´e zpr´avˇe, ke kter´e se vztahuje, pˇripojen takov´ym zp˚ usobem, ˇze je moˇzno zjistit jakoukoliv n´aslednou zmˇenu dat.“ [15] Podle tohoto znˇen´ı je zaruˇcen´ y elektronick´ y podpis t´ım, ˇc´ım je bˇeˇznˇe ch´ap´an elektronick´ y podpis. Proto pokud bude v n´asleduj´ıc´ım textu uveden elektronick´ y podpis a z´aroveˇ n nebude zd˚ uraznˇeno, ˇze se jedn´a o elektronick´ y podpis bez pˇr´ıvlastku“, bude myˇslen jako zaruˇcen´ y elektronick´ y podpis. ” Uzn´avan´ y elektronick´ y podpis je podle t´ehoˇz z´akona zaruˇcen´ y elektronick´ y podpis, kter´ y je nav´ıc zaloˇzen na kvalifikovan´em certifik´atu, vydan´em bud’ akreditovan´ ym poskytovatelem certifikaˇcn´ıch sluˇzeb (jeho definice, pr´ava a 21
Elektronick´e podpisy a ˇcasov´a raz´ıtka
Princip elektronick´eho podpisu
povinnosti jsou uvedeny v t´emˇz z´akonˇe), nebo jeho zahraniˇcn´ı obdobou. Kvalifikovan´ e ˇ casov´ e raz´ıtko je datov´a zpr´ava, kterou vydal kvalifiko” van´ y poskytovatel certifikaˇcn´ıch sluˇzeb a kter´a d˚ uvˇeryhodn´ ym zp˚ usobem spojuje data v elektronick´e podobˇe s ˇcasov´ ym okamˇzikem, a zaruˇcuje, ˇze uveden´a data v elektronick´e podobˇe existovala pˇred dan´ ym ˇcasov´ ym okamˇzikem“[15].
3.2
Princip elektronick´ eho podpisu
V definici zaruˇcen´eho elektronick´eho podpisu je d˚ uleˇzit´a fr´aze je k datov´e ” zpr´avˇe, ke kter´e se vztahuje, pˇripojen takov´ ym zp˚ usobem, ˇze je moˇzno zjistit jakoukoliv n´aslednou zmˇenu dat“. Jedn´a se o zcela z´asadn´ı fakt, kter´ y ud´av´a smysl elektronick´eho podpisu. Jakmile kdokoli po podeps´an´ı (prakticky) jakkoliv zmˇen´ı dokument, je to zjistiteln´e. Aby byla zajiˇstˇena tato vlastnost, vyuˇz´ıv´a se k podpisu asymetrick´e ˇsifrov´an´ı. Pouˇz´ıv´a se dvojice kl´ıˇc˚ u (soukrom´ y, veˇrejn´ y). Soukrom´ y kl´ıˇc je urˇcen pouze pro uˇzivatele, kter´ y k dokumentu pˇripojuje sv˚ uj podpis. Veˇrejn´ y kl´ıˇc je pak pˇrid´an pˇr´ımo do podpisu a m˚ uˇze ho pouˇz´ıt kdokoliv, aby zjistil, zda nebyla poruˇsena integrita dokumentu.
3.2.1
Proces podepisov´ an´ı
Proces podepisov´an´ı funguje n´asledovnˇe. Hashovac´ı funkc´ı (napˇr´ıklad sha1, sha-2) je spoˇcten hash dokumentu, ten je n´aslednˇe pomoc´ı soukrom´eho kl´ıˇce zaˇsifrov´an a spolu s veˇrejn´ ym kl´ıˇcem a pˇr´ıpadn´ ymi dalˇs´ımi informacemi (certifik´at, syst´emov´ y ˇcas podeps´an´ı) pˇripojen jako elektronick´ y podpis k dokumentu na urˇcen´e m´ısto (mluv´ıme pak o intern´ım podpisu), nebo je pˇripojen jako samostatn´ y soubor (extern´ı podpis).
3.2.2
Proces ovˇ eˇ rov´ an´ı
Uˇzivatel, kter´ y si chce ovˇeˇrit platnost dokumentu, spoˇcte stejnou hashovac´ı funkc´ı hash dokumentu (pokud byl podpis pˇripojen jako intern´ı, pak samozˇrejmˇe bez nˇej) a deˇsifruje pomoc´ı veˇrejn´eho kl´ıˇce pˇriloˇzen´ y hash. Pokud jsou 22
Elektronick´e podpisy a ˇcasov´a raz´ıtka
Proces ovˇeˇrov´an´ı
tyto dva hashe totoˇzn´e, znamen´a to, ˇze nebyl dokument zmˇenˇen (autentiˇcnost). Z principu je moˇzn´e, aby byl dokument pozmˇenˇen a uˇzivateli, kter´ y podpis ovˇeˇruje, byl poskytnut faleˇsn´ y veˇrejn´ y kl´ıˇc.
3.3
Proces ovˇ eˇ rov´ an´ı
K zabr´anˇen´ı podvrˇzen´ı veˇrejn´eho kl´ıˇce slouˇz´ı certifikaˇcn´ı autority, kter´e certifik´aty vyd´avaj´ı. Certifikaˇcn´ı autority potvrzuj´ı, ˇze veˇrejn´ y kl´ıˇc opravdu patˇr´ı osobˇe, kter´a je v certifik´atu uvedena. Pokud uˇzivatel d˚ uvˇeˇruje certifikaˇcn´ı autoritˇe, m˚ uˇze d˚ uvˇeˇrovat i vydan´emu certifik´atu. Certifikaˇcn´ı autoritu m˚ uˇze provozovat kaˇzd´ y s´am a pak je probl´em v urˇcen´ı, komu m˚ uˇze vˇeˇrit. V praxi lze jako certifikaˇcn´ı autority uzn´avat napˇr´ıklad banky.
3.4
Platnost elektronick´ eho podpisu
K zabr´anˇen´ı podvrˇzen´ı veˇrejn´eho kl´ıˇce slouˇz´ı certifikaˇcn´ı autority, kter´e certifik´aty vyd´avaj´ı. Certifikaˇcn´ı autority potvrzuj´ı, ˇze veˇrejn´ y kl´ıˇc opravdu patˇr´ı osobˇe, kter´a je v certifik´atu uvedena. Pokud uˇzivatel d˚ uvˇeˇruje certifikaˇcn´ı autoritˇe, m˚ uˇze d˚ uvˇeˇrovat i vydan´emu certifik´atu. Certifikaˇcn´ı autoritu m˚ uˇze provozovat kaˇzd´ y s´am a pak je probl´em v urˇcen´ı, komu m˚ uˇze vˇeˇrit. V praxi lze jako certifikaˇcn´ı autority uzn´avat napˇr´ıklad banky.
3.4.1
Nezpochybnitelnost
Pokud vˇsak uˇzivatel komunikuje se st´atn´ımi institucemi, je z´akonem d´ano, ˇze jako nezpochybniteln´ y je br´an pouze uzn´avan´ y elektronick´ y podpis. Ten je zaloˇzen na kvalifikovan´em certifik´atu, tj. certifik´atu vydan´em kvalifikovanou ˇ e republice byly v roce 2012 pouze tˇri kvalificertifikaˇcn´ı autoritou. V Cesk´ kovan´e (a z´aroveˇ n akreditovan´e) certifikaˇcn´ı autority – PostSignum, I.CA a Eldentity. Dalˇs´ı moˇznost´ı je pouˇz´ıt uzn´avan´e zahraniˇcn´ı autority. Kvalifikovan´ y certifik´at je vyd´an pouze na z´akladˇe ovˇeˇren´ı identity ˇza´daj´ıc´ı osoby, a to pouze na omezenou dobu (podpisov´ y certifik´at na dobu 1 roku). Certifikaˇcn´ı autorita ruˇc´ı za ˇcasovˇe omezenou platnost vydan´eho certifik´atu, pokud bˇehem t´eto doby nedojde k revokaci certifik´atu (zneplatnˇen´ı na ˇza´dost majitele). 23
Elektronick´e podpisy a ˇcasov´a raz´ıtka
3.4.2
Platnost elektronick´eho podpisu
Okamˇ zik posuzov´ an´ı platnosti podpisu
Jak bylo ˇreˇceno, certifik´at plat´ı pouze po urˇcitou dobu. Nejjednoduˇsˇs´ı moˇznost´ı je zkoumat platnost certifik´atu v okamˇziku, kdy podpis ovˇeˇrujeme. Nejedn´a se vˇsak o efektivn´ı vyuˇzit´ı elektronick´eho podpisu. Pokud uˇzivatel podepsal dokument certifik´atem, kter´ y byl vyd´an 1. 1. 2012 a k podpisu byl vyuˇzit 1. 12. 2012 (v t´e dobˇe st´ale platn´ y), pak pˇri posuzov´an´ı platnosti 2. 1. 2013 by bylo zjiˇstˇeno, ˇze certifik´at, na jehoˇz z´akladˇe byl podpis vystaven, nen´ı platn´ y, a proto nem˚ uˇze b´ yt podpis vyhodnocen jako platn´ y. Mnohem logiˇctˇejˇs´ı je tedy posuzovat platnost certifik´atu v˚ uˇci okamˇziku, kdy byl podpis vytvoˇren. Probl´emem je takov´ y okamˇzik urˇcit. Elektronick´ y podpis v sobˇe sice zpravidla nese informaci o ˇcase vystaven´ı, ta se vˇsak vytv´aˇr´ı podle syst´emov´eho ˇcasu, a m˚ uˇze tak b´ yt podvrˇzena. Z tohoto d˚ uvodu se zav´ad´ı nezpochybniteln´ y mechanismus – takzvan´e ˇcasov´e raz´ıtko.
3.4.3
ˇ Casov´ e raz´ıtko a kvalifikovan´ eˇ casov´ e raz´ıtko
ˇ Casov´ e raz´ıtko je znaˇcka, podobnˇe jako elektronick´ y podpis, kterou si vˇsak uˇzivatel nevystavuje s´am, ale je mu vystavena ˇcasovou autoritou. Postup vytv´aˇren´ı ˇcasov´eho raz´ıtka pˇripom´ın´a do jist´e m´ıry podepisov´an´ı dokumentu elektronick´ ym podpisem. Uˇzivatel, kter´ y m´a v u ´myslu dokument k dan´emu okamˇziku opatˇrit ˇcasov´ ym raz´ıtkem, nejprve vypoˇcte hash dokumentu. Pokud m´a ˇcasov´e raz´ıtko dokazovat existenci elektronick´eho podpisu v tomto ˇcase, je potˇreba zahrnout i elektronick´ y podpis do v´ ypoˇctu hashe. Tento hash uˇzivatel odeˇsle poskytovateli certifikaˇcn´ıch sluˇzeb. Ten k hashi pˇripoj´ı pˇresn´ y ˇcasov´ yu ´daj a celou tuto informaci zaˇsifruje vlastn´ım soukrom´ ym kl´ıˇcem. Z´aroveˇ n poskytne veˇrejn´ y kl´ıˇc pro ovˇeˇren´ı platnosti ˇcasov´eho raz´ıtka a v´ ysledek poˇsle uˇzivateli, kter´ y m˚ uˇze n´aslednˇe ˇcasov´e raz´ıtko pˇripojit k dokumentu. Proces ovˇeˇrov´an´ı pak prob´ıh´a analogicky jako u elektronick´eho podpisu. Kvalifikovan´e ˇcasov´e raz´ıtko vyd´avaj´ı pouze kvalifikovan´ı poskytovatel´e certifikaˇcn´ıch sluˇzeb, vyd´avaj´ıc´ı kvalifikovan´a ˇcasov´a raz´ıtka (v roce 2012 to byly ˇ pouze spoleˇcnosti PostSignum, I.CA a Eldentity). Cesk´ ˇ a legislativa nev CR pouˇz´ıv´a pojem ˇcasov´e raz´ıtko, ale rovnou zav´ad´ı pojem kvalifikovan´e ˇcasov´e raz´ıtko. Pomoc´ı ˇcasov´ ych raz´ıtek lze z´ıskat ovˇeˇren´ y ˇcasov´ yu ´daj, ke kter´emu lze o platnosti podpisu uvaˇzovat. Pokud se vr´at´ıme k pˇr´ıkladu uveden´emu v kapitole 3.3.2 a dokument z 1.12.2013 by uˇzivatel nejen podepsal, ale i opatˇril ˇcaso24
Elektronick´e podpisy a ˇcasov´a raz´ıtka
Platnost elektronick´eho podpisu
v´ ym raz´ıtkem, byl by dokument 2.1.2013 ovˇeˇren jako platn´ y. Pro certifik´at ˇcasov´eho raz´ıtka vˇsak stejnˇe jako pro certifik´at elektronick´eho podpisu existuje doba platnosti (na rozd´ıl od elektronick´eho podpisu je to delˇs´ı ˇcasov´ y interval, bˇeˇznˇe od 3 do 6 let). Proto i zde mus´ı uˇzivatel poˇc´ıtat s t´ım, ˇze platnost certifik´atu vyprˇs´ı. To je, hlavnˇe u dokument˚ u urˇcen´ ych k archivaci, neˇza´douc´ı. Aby uˇzivatel umoˇznil ovˇeˇrit podpis jako platn´ y po neomezenˇe dlouhou dobu, mus´ı jeˇstˇe pˇred vyprˇsen´ım certifik´atu autority ˇcasov´eho raz´ıtka opatˇrit dokument dalˇs´ım ˇcasov´ ym raz´ıtkem. U dokument˚ u urˇcen´ ych k archivaci to pˇredstavuje znaˇcnou reˇzii spojenou s kontrolou toho, zda se nebl´ıˇz´ı konec platnosti certifik´atu.
3.4.4
Revokace certifik´ atu a jej´ı vyhodnocen´ı pˇ ri ovˇ eˇ rov´ an´ı podpisu
V kapitole 3.3.1 bylo zm´ınˇeno, ˇze si uˇzivatel m˚ uˇze nechat certifik´at elektronick´eho podpisu na vlastn´ı ˇza´dost revokovat. Prvoˇrad´ ym d˚ uvodem pro revokaci bude odcizen´ı certifik´atu, respektive jeho soukrom´eho kl´ıˇce. Konkr´etn´ı proces revokace z´akon neupravuje a je na kaˇzd´e certifikaˇcn´ı autoritˇe, jak jej zavede. Obecnˇe vˇsak bude dostupn´ y mechanismus, pomoc´ı kter´eho se drˇzitel autentizuje a zaˇza´d´a autoritu o revokaci. Ta m´a ze z´akona 24 hodin na to, aby revokaci certifik´atu zveˇrejnila. Bˇehem vyhodnocov´an´ı platnosti elektronick´eho podpisu mus´ı b´ yt br´ano v u ´vahu, zda byl certifik´at revokov´an. Zjiˇstˇen´ı t´eto informace m˚ uˇze b´ yt provedeno v re´aln´em ˇcase, nebo opoˇzdˇenˇe. Zjiˇst’ov´an´ı platnosti certifik´atu v re´aln´em ˇcase b´ yv´a nejˇcastˇeji realizov´ano pomoc´ı protokolu OSCP (Online Certificate Protocol). Protokol OSCP umoˇzn ˇuje vzn´est dotaz a obdrˇzet odpovˇed’ serveru certifikaˇcn´ı autority v re´aln´em ˇcase. Jedn´a se o zp˚ usob, kter´ y prom´ıt´a revokace v nejkratˇs´ım moˇzn´em ˇcase, kter´ y vˇsak nen´ı konkr´etnˇe specifikov´an. Z ˇcesk´ ych certifikaˇcn´ıch autorit jej poskytuje od roku 2011 I.CA a novˇe od prosince 2012 i PostSignum. D˚ uvodem, proˇc tuto sluˇzbu ˇcesk´e certifikaˇcn´ı autority neposkytuj´ı v˚ ubec, nebo aˇz v posledn´ı dobˇe, je, ˇze nen´ı vyˇzadov´ana z´akonem. Z´akon vyˇzaduje poskytov´an´ı opoˇzdˇen´e informace pomoc´ı CRL (Certificate Revocation List) – seznam revokovan´ ych certifik´at˚ u. Ani zde nejsou sluˇzby poskytuj´ıc´ı CRL jednotn´e. Jedn´ım druhem CRL jsou kumulativn´ı seznamy, kter´e obsahuj´ıc´ı informace o vˇsech revokovan´ ych certifik´atech dan´e certifikaˇcn´ı autority (po dobu alespoˇ n 10 let, po kterou m´a autorita ze z´akona povinnost udrˇzovat informace). Takov´e ˇ autorita EIdentity. Druh´ CRL poskytuje v CR ym druhem jsou intervalov´e seznamy, kter´e obsahuj´ı souhrn revokac´ı za urˇcit´ y ˇcasov´ y interval. Z´akonem ˇ t´ımto jsou pˇr´ıpustn´e, ale nikde nen´ı urˇcena d´elka takov´eho intervalu. V CR 25
Elektronick´e podpisy a ˇcasov´a raz´ıtka
Postup ovˇeˇrov´an´ı podpisu
Obr´azek 3.1: V´yvojov´y diagram ovˇeˇren´ı platnosti podpisu (zdroj: autor). zp˚ usobem poskytuj´ı CRL I.CA a PostSignum. D´elka takov´eho intervalu u PostSignum je zhruba 5 mˇes´ıc˚ u (aˇckoliv to nen´ı explicitnˇe ˇreˇceno). V praxi je d´elka platnosti ceritfik´atu elektronick´eho podpisu jeden rok, uˇzivatel tedy mus´ı informaci zjiˇst’ovat z nˇekolika CRL.
3.5
Postup ovˇ eˇ rov´ an´ı podpisu
Z v´ yˇse uveden´ ych poˇzadavk˚ u lze sestavit proces, jak´ ym mus´ı b´ yt podpis ovˇeˇren (sch´ema na obr´azku 3.1).
26
Elektronick´e podpisy a ˇcasov´a raz´ıtka
3.6 3.6.1
Elektronick´y podpis v praxi
Elektronick´ y podpis v praxi Odpovˇ ednost za ˇ skodu
Jedn´ım z d˚ uvod˚ u, proˇc se elektronick´ ymi podpisy zab´ yvat, je osvˇeta uˇzivatel˚ u, kteˇr´ı mnohdy neznaj´ı jejich principy a vystavuj´ı se tak riziku, ˇze dojde ke ˇskodˇe, kter´a na nich m˚ uˇze b´ yt vym´ah´ana. Zejm´ena se jedn´a o povinnost drˇzitele soukrom´eho kl´ıˇce, aby se o kl´ıˇc staral tak, aby nemohlo doj´ıt k jeho zneuˇzit´ı a pokud by k nˇeˇcemu takov´emu doˇslo, povinnost vyuˇz´ıt revokaci certifik´atu. Tato povinnost je uvedena v S5 z´akona ˇc. 227/2000 Sb. ”
Podepisuj´ıc´ı osoba je povinna
a) zach´azet s prostˇredky, jakoˇz i s daty pro vytv´aˇren´ı zaruˇcen´eho elektronick´eho podpisu s n´aleˇzitou p´eˇc´ı tak, aby nemohlo doj´ıt k jejich neopr´avnˇen´emu pouˇzit´ı, b) uvˇedomit neprodlenˇe poskytovatele certifikaˇcn´ıch sluˇzeb, kter´y vydal kvalifikovan´y certifik´at, o tom, ˇze hroz´ı nebezpeˇc´ı zneuˇzit´ı jej´ıch dat pro vytv´aˇren´ı zaruˇcen´eho elektronick´eho podpisu.“ [15] Z t´eto povinnosti vypl´ yv´a i odpovˇednost za ˇskodu: Za ˇskodu zp˚ usobenou poruˇsen´ım povinnost´ı podle odstavce 1 odpov´ıd´a podepi” suj´ıc´ı osoba podle zvl´aˇstn´ıch pr´avn´ıch pˇredpis˚ u. Odpovˇednosti se vˇsak zprost´ı, pokud prok´aˇze, ˇze ten, komu vznikla ˇskoda, neprovedl veˇsker´e u ´kony potˇrebn´e k tomu, aby si ovˇeˇril, ˇze zaruˇcen´y elektronick´y podpis je platn´y a jeho kvalifikovan´y certifik´at nebyl zneplatnˇen.“ [15] Druh´a ˇca´st v´ yˇse uveden´eho odstavce je takt´eˇz d˚ uleˇzit´a pro bˇeˇzn´eho uˇzivatele. Pokud mu vznikne ˇskoda zp˚ usoben´a t´ım, ˇze spol´ehal na podpis vznikl´ y zneuˇzit´ım podpisov´eho certifik´atu a z´aroveˇ n neprovedl vˇsechny kroky pro ovˇeˇren´ı platnosti podpisu, pak mu n´arok na kompenzaci ˇskody zanik´a.
27
Elektronick´e podpisy a ˇcasov´a raz´ıtka
3.6.2
Form´aty pokroˇcil´ych el. podpis˚ u
Souˇ casn´ y stav podpory elektronick´ ych podpis˚ u v aplikac´ıch
Pokud si uvˇedom´ıme, jak´e povinnosti m´ame, je dobr´e si zjistit, v jak´em stavu je v˚ uˇci legislativˇe podpora elektronick´ ych podpis˚ u. V knize B´ajeˇcn´ y svˇet elektronick´eho podpisu RNDr. Ing. Jiˇr´ı Peterka poukazuje na to, ˇze Adobe Reader nem˚ uˇzeme povaˇzovat za bezpeˇcn´ y n´astroj pro vyhodnocov´an´ı elektronick´eho podpisu. Jeho chov´an´ı mus´ıme nejprve nastavit, aby fungovalo v souladu s ˇceskou legislativou. Napˇr´ıklad urˇcen´ı po” suzovan´eho okamˇziku“ platnosti certifik´atu podpisu se ˇr´ıd´ı nastaven´ım. Toto nastaven´ı m˚ uˇze nab´ yvat jedn´e ze tˇr´ı hodnot – platn´ y ˇcas (aktu´aln´ı syst´emov´ y ˇcas), bezpeˇcn´ y ˇcas (pokud je pˇripojeno ˇcasov´e raz´ıtko, zjist´ı se ˇcasov´ yu ´daj z nˇej, jinak se vezme aktu´aln´ı syst´emov´ y ˇcas) a tˇret´ı moˇznost - ˇcas, kdy byl podpis vytvoˇren (bez ohledu na to, zda poch´az´ı z ˇcasov´eho raz´ıtka, nebo ze syst´emov´ ych hodin). Zar´aˇzej´ıc´ı je fakt, ˇze implicitn´ı nastaven´ı aplikace Adobe Reader je moˇznost tˇret´ı, tedy ˇcas, kdy byl podpis vytvoˇren, bez ohledu na p˚ uvod. To je pochopitelnˇe ˇspatnˇe, nebot’ m˚ uˇze j´ıt o podvrˇzen´ y ˇcas (viz kapitola 3.3.2), uˇzivatel m˚ uˇze b´ yt klam´an, ˇze se jedn´a o spr´avn´ y podpis a jelikoˇz neprovedl ˇra´dnou kontrolu elektronick´eho podpisu v souladu s legislativou, m˚ uˇze pˇrij´ıt o n´arok na n´ahradu ˇskody. Spr´avnou volbou tedy m´a b´ yt bez” peˇcn´ y ˇcas“. Dalˇs´ı nebezpeˇcnou funkcionalitou m˚ uˇze b´ yt zobrazov´an´ı identity z popisku podpisu a nikoliv z certifik´atu, m˚ uˇze tedy doj´ıt k myln´e identifikaci (aˇckoliv v detailech podpisu je jiˇz uvedeno spr´avn´e jm´eno osoby).[16] Po prostudov´an´ı dalˇs´ıch pˇr´ıpad˚ u aplikac´ı v t´eˇze knize RNDr. Ing. Jiˇr´ıho Peterky lze konstatovat, ˇze stav aplikac´ı nen´ı ide´aln´ı a t´emˇeˇr vˇsude nalezneme alespoˇ n zav´adˇej´ıc´ı informace, kter´e by si uˇzivatel bez znalost´ı digit´aln´ıch podpis˚ u mohl ˇspatnˇe vyloˇzit.
3.7 3.7.1
Form´ aty pokroˇ cil´ ych el. podpis˚ u Pˇ rehled
V t´eto pr´aci budu ˇcasto zmiˇ novat form´aty pokroˇcil´ ych elektronick´ ych podpis˚ u (Advanced Electronic Signatures). Z hlediska procesu podepisov´an´ı dokument˚ u elektronick´ ym podpisem a z hlediska n´asledn´eho ovˇeˇrov´an´ı elektro28
Elektronick´e podpisy a ˇcasov´a raz´ıtka
Form´aty pokroˇcil´ych el. podpis˚ u
nick´eho podpisu nepˇrin´aˇs´ı form´aty pokroˇcil´ ych elektronick´ ych podpis˚ u nic nov´eho. Jedn´a se o form´aty, kter´e jsou svoj´ı strukturou uzp˚ usobeny k tomu, aby veˇsker´e informace, kter´e jsou k ovˇeˇren´ı elektronick´eho podpisu potˇrebn´e, byly uchov´any v jedn´e struktuˇre. Kromˇe samotn´eho elektronick´eho podpisu se jedn´a o certifik´at, na jehoˇz z´akladˇe byl podpis vystaven, veˇsker´e jemu nadˇrazen´e certifik´aty, ke vˇsem uveden´ ym certifik´at˚ um pˇr´ısluˇsn´e CRL seznamy a ˇcasov´a raz´ıtka, kter´a udrˇz´ı ˇcasovou kontinuitu od doby podeps´an´ı po dobu ovˇeˇren´ı. Dohromady tyto informace naplˇ nuj´ı koncept dlouhodob´eho ovˇeˇren´ı – LTV (Long Term Validation). Evropsk´ y institut pro telekomunikaˇcn´ı standardy (ETSI) vytvoˇril sadu norem, kter´e se vztahuj´ı k elektronick´ ym podpis˚ um a ˇcasov´ ym raz´ıtk˚ um, mezi nimi i normy, kter´e popisuj´ı tˇri standardy pokroˇcil´ ych elektronick´ ych podpis˚ u: ∙ PAdES – PDF Advanced Electronic Signatures (urˇcen´e pro elektronick´ y podpis dokument˚ u ve form´atu PDF). ∙ XAdES – XML Advanced Electronic Signatures (urˇcen´e pro elektronick´ y podpis ve form´atu XML, kter´ y umoˇzn ˇuje podeps´an´ı ˇca´sti XML dokumentu nebo extern´ıho obsahu bez ohledu na to, v jak´em form´atu tento obsah je). ∙ CAdES – CMS Advanced Electronic Signatures (urˇcen´e pro elektronick´ y podpis ve form´atu CMS, kter´ y umoˇzn ˇuje podepisov´an´ı zpr´av vˇcetnˇe jejich veˇsker´eho obsahu). Evropsk´a komise sv´ ym v´ ynosem 2011/130/EU tyto form´aty (v u ´noru 2011) oznaˇcila jako referenˇcn´ı a uloˇzila ˇclensk´ ym st´at˚ um, aby je pˇrijaly do sv´e legislativy. Org´any st´atn´ı spr´avy ˇclensk´ ych st´at˚ u EU maj´ı povinnost pˇrijmout elektronick´ y dokument, pokud je ˇra´dnˇe podeps´an elektronick´ ym podpisem v jednom z v´ yˇse uveden´ ych form´at˚ u. V´ ynos pˇripouˇst´ı i pouˇzit´ı jin´eho form´atu elektronick´eho podpisu, pak ale mus´ı b´ yt splnˇena ˇrada dalˇs´ıch podm´ınek. ˇ Cesk´a legislativa tyto form´aty pˇrijala ve sv´e novele z´akona o archivnictv´ı a spisov´e sluˇzbˇe (499/2004 Sb.) a z´akona o elektronick´em podpisu (227/2000 Sb.).
3.7.2
XAdES
V t´eto pr´aci se budu podrobnˇeji zab´ yvat form´atem XAdES. XAdES form´at vych´az´ı z form´atu XMLDSig a je rozliˇsov´an v nˇekolika u ´rovn´ıch podle toho, jak´e informace obsahuje: 29
Elektronick´e podpisy a ˇcasov´a raz´ıtka
Form´aty pokroˇcil´ych el. podpis˚ u
∙ XAdES-BES (Basic Electronic Signature) – je z´akladn´ı rozˇs´ıˇren´ı podpisu (XMLDSig), kter´e pˇrid´av´a vlastnosti podpisu, jeˇz jsou urˇceny k podeps´an´ı, a vlastnosti, jeˇz k podeps´an´ı urˇceny nejsou. ∙ XAdES-EPES (Explicit Policy based Electronic Signature) – je dalˇs´ım z´akladn´ım rozˇs´ıˇren´ım, kter´e je alternativou k XAdES-BES. Pˇrin´aˇs´ı to sam´e, co XAdES-BES, a nav´ıc obsahuje element, v nˇemˇz jsou vyj´adˇrena pravidla podpisu (Signature Policy). ∙ XAdES-T (XML Advanced Electronic Signature with Time) – je rozˇs´ıˇren´ı, kter´e vych´az´ı z form´atu XAdES-BES, nebo XAdES-EPES, a kter´e pˇrid´av´a ˇcasov´e raz´ıtko podpisu. ∙ XAdES-C (Electronic signature with complete validation data references) – je rozˇs´ıˇren´ı form´atu XAdES-T o kompletn´ı soubor odkaz˚ u na vˇsechny certifik´aty, kter´e jsou potˇrebn´e k validaci podpisu, a na jejich CRL seznamy. ∙ XAdES-X (Extended signatures with time forms) – je rozˇs´ıˇren´ı form´atu XAdES-C, ke kter´emu je nav´ıc pˇrid´av´ano ˇcasov´e raz´ıtko, u kter´eho rozliˇsujeme dva r˚ uzn´e druhy: RefsOnlyTimeStamp zahrnuje pouze odkazy na certifik´aty a revokaˇcn´ı seznamy. SigAndRefsTimeStamp zahrnuje nav´ıc i hodnotu podpisu. ∙ XAdES-X-L (Extended long electronic signatures with time) – je rozˇs´ıˇren´ı form´atu XAdES-X, kter´e nav´ıc pˇrid´av´a i hodnoty certifik´at˚ u a revokaˇcn´ıch seznam˚ u. ∙ XAdES-A (Archival electronic signatures) – je rozˇs´ıˇren´ım form´atu XAdES-A a z´aroveˇ n nejkompletnˇejˇs´ı moˇzn´a u ´roveˇ n tohoto form´atu. Umoˇzn ˇuje nav´ıc vkl´adat archivaˇcn´ı ˇcasov´a raz´ıtka a splˇ nuje tak koncept LTV. Struktura form´atu XAdES podle u ´rovn´ı zn´azorˇ nuje sch´ema na obr´azku 3.2.
30
Elektronick´e podpisy a ˇcasov´a raz´ıtka
Form´aty pokroˇcil´ych el. podpis˚ u
´ Obr´azek 3.2: Urovnˇ e form´atu XAdES (zdroj: W3C.org).
31
4 Syst´em spr´avy dokument˚ u Microsoft SharePoint Mezi nejrozˇs´ıˇrenˇejˇs´ı syst´emy spr´avy dokument˚ u (Document Management System - DMS )patˇr´ı Microsoft SharePoint. V t´eto pr´aci se budu zab´ yvat syst´emem Microsoft SharePoint 2010. SharePoint 2010 je vyd´av´an ve tˇrech r˚ uzn´ ych edic´ıch – Foundation, Standard a Enterprise, kter´e se od sebe liˇs´ı sv´ ymi funkcemi a cenou licenc´ı. Pokud budou patˇrit nˇekter´e informace pouze ke konkr´etn´ı edici, bude to explicitnˇe uvedeno.
4.1
Pˇ rehled sluˇ zby
Microsoft rozdˇeluje sluˇzby platformy SharePoint do ˇsesti odd´ıl˚ u: ∙ Sites – tento odd´ıl poskytuje organizac´ım strukturu, na kter´e mohou postavit sv´e intern´ı weby. ∙ Communities – pˇredstavuje n´astroje pro interakci s jin´ ymi uˇzivateli (poskytuje vlastn´ı, zjednoduˇsenou Wiki a podobnˇe). ∙ Content – z pohledu dokument˚ u se jedn´a o nejd˚ uleˇzitˇejˇs´ı odd´ıl SharePointu. Umoˇzn ˇuje ˇsk´alovat dokumenty a poloˇzky do typ˚ u, kter´e lze definovat na z´akladˇe metadat. Jednotliv´ ym typ˚ um obsahu lze nastavovat pˇredpisy ve formˇe pracovn´ıch postup˚ u (workflow), podle kter´ ych je pak s dokumenty zach´azeno. ∙ Search – je modulem pro vyhled´av´an´ı. Zde se liˇs´ı pokroˇcilost vyhled´av´an´ı podle zvolen´e edice. Napˇr´ıklad edice Foundation poskytuje klasick´e vyhled´av´an´ı. Edice Standard nab´ız´ı nav´ıc integraci s vyhled´av´an´ım v operaˇcn´ım syst´emu Windows 7, fonetick´e vyhled´av´an´ı, n´avrhy dotaz˚ u a nastavov´an´ı rozsahu. Edice Enterprise pˇrid´av´a vyuˇz´ıv´an´ı metadat, kontextov´e vyhled´av´an´ı na z´akladˇe uˇzivatelsk´eho profilu a celkovˇe rozˇsiˇritelnou platformu vyhled´av´an´ı (ve skuteˇcnosti poskytuj´ı edice Standard a Enterprise mnohem v´ıce pokroˇcil´ ych funkc´ı). ∙ Insights – tento odd´ıl poskytuje ˇradu sluˇzeb pro anal´ yzu dat, Business Intelligence, Excel Services (tvorba interaktivn´ıch Excel list˚ u a jejich 32
Syst´em spr´avy dokument˚ u Microsoft SharePoint
Architektura
moˇzn´a integrace do jin´ ych aplikac´ı pomoc´ı REST API) a dalˇs´ı. Tento odd´ıl je dostupn´ y pouze v edici Enterprise. ∙ Composites – je odd´ıl pro vytv´aˇren´ı vlastn´ıch ˇreˇsen´ı. Jednoduˇse jsou to n´astroje pro pˇrizp˚ usoben´ı SharePointu – upgrade ze SharePoint 2007, SharePoint designer, klientsk´e i serverov´e API, dotazov´an´ı pomoc´ı jazyka LINQ, podpora technologie Silverlight a v edici Enterprise i integrace se sluˇzbami InfoPath (tvorba formul´aˇr˚ u).[17] Sluˇzba SharePoint vyˇzaduje ke sv´emu bˇehu Windows Server 2008. Je hostov´ana sluˇzbami IIS (Internet Information Services for Windows Server). Kromˇe v´ yˇse uveden´ ych edic je nab´ızen v r´amci programu Office 365 i SharePoint Online. Jedn´a se o sluˇzbu SharePoint, kter´a je hostov´ana v Microsoft Data Center.
4.2
Architektura
Pro pochopen´ı jednotliv´ ych pojm˚ u, se kter´ ymi budu zach´azet, je nutn´e zn´at architekturu SharePoint 2010. Sluˇzba SharePoint se skl´ad´a z jednoho, nebo v´ıce SharePoint server˚ u (lze je specializovat na poskytov´an´ı konkr´etn´ı SharePoint sluˇzby). Mnoˇzina vˇsech SharePoint server˚ u, kter´e jsou navz´ajem propojeny, je takzvan´a Sharepoint farma (Farm). Kaˇzd´ y ze server˚ u farmy m˚ uˇze hostovat jednu, nebo v´ıce webov´ych aplikac´ı (Web Application). Kaˇzd´a webov´a aplikace m˚ uˇze hostovat jednu, nebo v´ıce kolekc´ı str´anek (Sites Collection), ty obsahuj´ı jednu nebo v´ıce str´anek (Site) a kaˇzd´a str´anka m˚ uˇze obsahovat seznamy (Lists). Speci´aln´ım pˇr´ıpadem seznamu mohou b´ yt knihovny r˚ uzn´ ych typ˚ u (dokument˚ u, multimedi´ı, vlastn´ıch typ˚ u). Kompozice sluˇzeb SharePointu na u ´rovni farmy je dostupn´a vˇsem webov´ ym aplikac´ım, bez ohledu na to, na kter´em serveru webov´a aplikace bˇeˇz´ı.
4.3
Word Automation Services
Z hlediska pr´ace s dokumenty n´as budou na sluˇzbˇe SharePoint zaj´ımat hlavnˇe Word Automation Services. Jedn´a se o sluˇzby, kter´e jsou spuˇstˇeny na Share33
Syst´em spr´avy dokument˚ u Microsoft SharePoint Word Automation Services
Point Serveru 2010, o sluˇzby, kter´e jsou navrˇzeny pro doplnˇen´ı Open XML SDK na stranˇe SharePoint Serveru. Word Automation Services jsou urˇceny v´ yhradnˇe pro vol´an´ı ze strany serveru, nem˚ uˇzeme je tedy vyuˇz´ıvat v aplikaci, kter´a je spuˇstˇena na stanici klienta SharePoint sluˇzeb. Tyto sluˇzby jsou dostupn´e pouze ve verz´ıch Standard a Enterprise.
34
5 Anal´yza 5.1
Form´ aty sloˇ zen´ ych dokument˚ u
Na z´akladˇe informac´ı, kter´e jsem o jednotliv´ ych dokumentov´ ych form´atech uvedl v kapitole 2, a na z´akladˇe krit´eri´ı, kter´e jsem si stanovil v kapitol´ach 2.1.1, 2.1.2 a 2.1.3, mohu mezi sebou dokumentov´e form´aty porovnat a doporuˇcit nˇekter´e k podpoˇre v DMS syst´emu.
5.1.1
PDF
Uˇ zivatelsk´ a manipulace
Nen´ı urˇceno pro bˇeˇznou uˇzivatelskou manipulaci, je umoˇznˇena zpravidla placen´ ymi jedno´ uˇcelov´ ymi programy.
Automatick´ e skl´ ad´ an´ı dokument˚ u
Existuj´ı kvalitn´ı knihovny pro skl´ad´an´ı dokument˚ u, je moˇzn´e skl´adat PDF dokumenty pomoc´ı XSL-FO.
Archivace (el. podpisy aˇ casov´ a raz´ıtka)
Podpora standard˚ u pro podepisov´an´ı a archivaci, vnitˇrn´ı struktura uzp˚ usoben´a ke vkl´ad´an´ı podpis˚ u a ˇcasov´ ych raz´ıtek.
Dalˇ s´ı aspekty
Jedn´a se o archivaˇcn´ı a grafick´ y standard.
Tabulka 5.1: Shrnut´ı vlastnost´ı form´atu PDF.
35
Anal´yza
5.1.2
Form´aty sloˇzen´ych dokument˚ u
OOXML
Uˇ zivatelsk´ a manipulace
Podporov´ana celou ˇradou (i bezplatn´ ych) aplikac´ı. Moˇznost tvorby ˇsablony.
Automatick´ e skl´ ad´ an´ı dokument˚ u
Kvalitn´ı knihovny i pro vysoko´ urovˇ novou manipulaci s obsahy dokument˚ u.
Archivace (el. podpisy aˇ casov´ a raz´ıtka)
Vnitˇrn´ı struktura uzp˚ usoben´a ke vkl´ad´an´ı podpis˚ u a ˇcasov´ ych raz´ıtek.
Dalˇ s´ı aspekty
Silnˇe podporov´ano na platformˇe .NET, standardn´ı form´at pro SharePoint.
Tabulka 5.2: Shrnut´ı vlastnost´ı form´atu OOXML.
5.1.3
ODF
Uˇ zivatelsk´ a manipulace
Podporov´ana celou ˇradou (i bezplatn´ ych) aplikac´ı. Moˇznost tvorby ˇsablon.
Automatick´ e skl´ ad´ an´ı dokument˚ u
Kvalitn´ı knihovny jsou. Vysoko´ urovˇ nov´a manipulace s obsahem sp´ıˇse nen´ı.
Archivace (el. podpisy aˇ casov´ a raz´ıtka)
Vnitˇrn´ı struktura uzp˚ usoben´a ke vkl´ad´an´ı podpis˚ u a ˇcasov´ ych raz´ıtek.
Dalˇ s´ı aspekty
Pˇrijat jako n´arodn´ı standard v nˇekter´ ych zem´ıch.
Tabulka 5.3: Shrnut´ı vlastnost´ı form´atu ODF.
36
Anal´yza
5.1.4
Form´aty sloˇzen´ych dokument˚ u
XSL-FO
Uˇ zivatelsk´ a manipulace
Nen´ı moˇzn´a.
Automatick´ e skl´ ad´ an´ı dokument˚ u
N´aroˇcn´a pˇr´ıprava dokumentu mace). N´asledn´e plnˇen´ı snadn´e.
Archivace (el. podpisy aˇ casov´ a raz´ıtka)
Dokument nen´ı urˇcen k archivaci. Lze jej podepsat pˇripojen´ım extern´ıho podpisu, ale po XSL transformaci nebude c´ılov´ y dokument podeps´an.
Dalˇ s´ı aspekty
V´ yborn´a automatick´a tvorba PDF dokument˚ u (pokud nepotˇrebujeme ˇcasto mˇenit vzhled).
(transfor-
Tabulka 5.4: Shrnut´ı vlastnost´ı form´atu XSL-FO.
5.1.5
RTF
Uˇ zivatelsk´ a manipulace
´ Uroveˇ n uˇzivatelsk´e manipulace se znaˇcnˇe liˇs´ı - z´aleˇz´ı na zvolen´em programu. Obecnˇe lze ˇr´ıci, ˇze uˇzivatelsk´a manipulace je podporov´ana.
Automatick´ e skl´ ad´ an´ı dokument˚ u
Absence spolehliv´ ych knihoven, kter´e by odpov´ıdaly konkr´etn´ı specifikaci. Pouze n´ızkou ´rovˇ nov´a manipulace obsahu.
Archivace (el. podpisy aˇ casov´ a raz´ıtka)
Struktura dokumentu nen´ı pˇrizp˚ usobena pro vkl´ad´an´ı podpis˚ u a raz´ıtek. Je moˇzn´e vytvoˇrit extern´ı podpis (respektive raz´ıtko), pokud m´ate vhodn´ y program.
Dalˇ s´ı aspekty
Silnˇe rozˇs´ıˇren. Mnoho verz´ı specifikace, programy vˇetˇsinou zvl´adnou vˇsechny verze alespoˇ n ˇca´steˇcnˇe zpracovat. V´ ysledky se liˇs´ı.
Tabulka 5.5: Shrnut´ı vlastnost´ı form´atu RTF. 37
Anal´yza
5.1.6
Form´aty sloˇzen´ych dokument˚ u
Porovn´ an´ı
Tyto souhrnn´e aspekty jsem objektivnˇe obodoval v jednotliv´ ych krit´eri´ıch v rozmez´ı 0 - 5 bod˚ u (5 - nejlepˇs´ı) podle m´ıry naplnˇen´ı tˇechto oblast´ı (tabulka 5.6). Vˇsem krit´eri´ım jsem pˇriˇradil stejnou v´ahu.
Form´at dokumentu Oblast zkoum´ an´ı
PDF OOXML ODF XSL-FO RTF
Uˇ zivatelsk´ a manipulace
1
5
5
0
3
Automatick´ e skl´ ad´ an´ı dok.
4
5
3
3
1
Archivace
5
3
3
0
1
Dalˇ s´ı aspekty
3
3
2
5
2
Souˇ cet
13
16
13
8
7
Tabulka 5.6: Ohodnocen´ı a porovn´an´ı vlastnost´ı zkouman´ych form´at˚ u.
5.1.7
V´ ybˇ er
Z v´ ysledk˚ u porovn´an´ı mohu konstatovat, ˇze mezi nejlepˇs´ımi form´aty se um´ıstilo OOXML, PDF a ODF. M´ ym doporuˇcen´ım je pouˇz´ıvat form´at PDF k archivaci dokument˚ u, nebot’ je k tomu ide´alnˇe pˇrizp˚ usoben. Pro ostatn´ı u ´ˇcely doporuˇcuji pouˇz´ıt form´at OOXML, nebot’ je silnˇe podporov´an na platformˇe .NET, je standardn´ım form´atem syst´emu MS SharePoint, hod´ı se pro uˇzivatelskou editaci a v neposledn´ı ˇradˇe je vhodn´ y pro automatizovan´e skl´ad´an´ı. Form´at ODF hodnot´ım tak´e jako pouˇziteln´ y, avˇsak jedn´a se o form´at s podobn´ ymi vlastnostmi jako OOXML. Na rozd´ıl od OOXML nem´a takovou podporu. O jeho zaveden´ı bych uvaˇzoval v zem´ıch, kter´e jej pˇrijaly jako sv˚ uj 38
Anal´yza
Krit´eria aplikace
standard. Form´at XSL-FO pochopitelnˇe v mnoh´em ztr´ac´ı, d´a se vˇsak vyuˇz´ıt jako doplˇ nkov´ y form´at pro tvorbu PDF. Form´at RTF dopadl nejh˚ uˇre a k uˇz´ıv´an´ı jej nedoporuˇcuji. Na z´akladˇe tohoto z´avˇeru upravila spoleˇcnost CCA Group sv´e poˇzadavky a zadala implementaci form´atu OOXML, konkr´etnˇe form´atu dokument˚ u DOCX.
5.2 5.2.1
Krit´ eria aplikace Platforma .NET
Spoleˇcnost CCA Group je partnerem spoleˇcnosti Microsoft a nab´ız´ı ˇreˇsen´ı syst´emu spr´avy dokument˚ u od t´eto firmy (Microsoft SharePoint) a tak´e vyv´ıj´ı syst´emy na b´azi ASP.NET. Z´aroveˇ n nem´a pro tuto platformu vlastn´ı ˇreˇsen´ı, kter´e by umoˇzn ˇovalo skl´ad´an´ı dokument˚ u a pˇripojov´an´ı elektronick´ ych podpis˚ u. Mimo to lze pˇredpokl´adat, ˇze je na pracovn´ıch stanic´ıch uvnitˇr podnik˚ u pouˇz´ıv´an operaˇcn´ı syst´em Windows (ˇcasto ve verzi 7 nebo vyˇsˇs´ı) a mnohdy i kancel´aˇrsk´ y bal´ık Office, kter´ y by bylo moˇzn´e touto aplikac´ı obohatit. Tyto d˚ uvody vy´ ustily v poˇzadavek spoleˇcnosti CCA Group, aby byla aplikace naps´ana pro platformu .NET.
5.2.2
Nez´ avislost datov´ ych zdroj˚ u
Aplikace mus´ı b´ yt navrˇzena tak, aby umoˇzn ˇovala vyuˇzit´ı r˚ uzn´ ych datov´ ych zdroj˚ u. Nelze se spolehnout, ˇze bude moˇzn´e ˇc´ıst a zapisovat soubory na pevn´ y disk stanice (respektive serveru). Je velmi pravdˇepodobn´e, ˇze syst´em bude fungovat tak, ˇze dokumenty budou ukl´ad´any a naˇc´ıt´any z datab´aze a aplikace nebude m´ıt pr´ava pˇristupovat k pevn´emu disku stanice.
5.2.3
Modularita jednotliv´ ych ˇ c´ ast´ı aplikace
Aplikace se bude skl´adat z oddˇelen´ ych logick´ ych celk˚ u (skl´ad´an´ı dokument˚ u, plnˇen´ı dokument˚ u, pˇripojov´an´ı podpis˚ u). Poˇzadavkem je, aby byly tyto ˇc´asti navrˇzeny tak, aby byly snadno vymˇeniteln´e.
39
Anal´yza
5.2.4
Krit´eria aplikace
Integrace aplikace do syst´ emu spr´ avy dokument˚ u
Spoleˇcnost CCA Group chce nad r´amec standardn´ıho zad´an´ı analyzovat stav moˇznosti skl´ad´an´ı dokument˚ u a pˇripojov´an´ı elektronick´ ych dokument˚ u v syst´emu Microsoft SharePoint a pˇr´ıpadnˇe mnou navrˇzenou aplikaci integrovat do tohoto syst´emu.
40
6 Z´akladn´ı aplikace – MergeSignModul 6.1
Architektura
Na z´akladˇe v´ yˇse uveden´ ych poˇzadavk˚ u a naˇsich dˇr´ıvˇejˇs´ıch zkuˇsenost´ı jsem pro tvorbu aplikace vybral jazyk C#. Aplikace bude m´ıt formu dynamick´e knihovny tˇr´ıd.
6.1.1
Kontext aplikace
Je naznaˇcen v diagramu na obr´azku 6.1. Uˇzivatel Syst´em“ pˇredstavuje apli” kaci, kter´a vyuˇz´ıv´a funkcionalitu knihovny. M˚ uˇze se jednat napˇr´ıklad o webovou, nebo desktopovou aplikaci.
6.1.2
Struktura modulu
Aplikace poskytuje tˇri z´akladn´ı funkˇcnosti, kter´e jsou po n´ı poˇzadov´any:
Obr´azek 6.1: Kontextov´y diagram aplikace (zdroj: autor).
41
Z´akladn´ı aplikace – MergeSignModul
Architektura
∙ Spojov´an´ı dokumentu typu OOXML z d´ılˇc´ıch dokument˚ u. ∙ Plnˇen´ı n´ami pˇreddefinovan´ ych OOXML ˇsablon vlastn´ımi daty. ∙ Podepisov´an´ı OOXML dokument˚ u elektronick´ ym podpisem a pˇripojov´an´ı elektronick´ ych ˇcasov´ ych raz´ıtek. Defaultn´ım jmenn´ ym prostorem aplikace je MergeSignModul. V tomto jmenn´em prostoru je implementov´an manaˇzer modulu. Dalˇs´ı jmenn´e prostory odpov´ıdaj´ı v´ yˇse uveden´e funkcionalitˇe a kaˇzd´ y z nich pˇredstavuje samostatnˇe funguj´ıc´ı celek: ∙ MergeSignModul.Merge (spojov´an´ı dokument˚ u) ∙ MergeSignModul.Fill (plnˇen´ı ˇsablon daty) ∙ MergeSignModul.Sign (podepisov´an´ı elektronick´ ym podpisem a pˇripojov´an´ı ˇcasov´ ych raz´ıtek) Pro co nejvyˇsˇs´ı modularitu jsem ke kaˇzd´e funkcionalitˇe navrhl rozhran´ı, kter´e tˇr´ıdy s odpov´ıdaj´ıc´ı funkcionalitou implementuj´ı. Z´aroveˇ n jsem modul navrhl tak, aby odpov´ıdal n´avrhov´emu vzoru dependency injection. Na nejvyˇsˇs´ı u ´rovni aplikace je definov´an manaˇzer. Ten vytv´aˇr´ı instance tˇr´ıd, kter´e implementuj´ı dan´a rozhran´ı, a zast´av´a tak funkci tˇr´ıdy, kter´a b´ yv´a v dependency injection oznaˇcov´ana assembler [18]. Informaci o tom, jakou implementaci m´a zvolit, z´ısk´av´a manaˇzer z konfiguraˇcn´ıho kontejneru config.xml. T´ımto zp˚ usobem se odstiˇ nuje volba konkr´etn´ıch implementac´ı od programov´eho k´odu a centralizuje se na jednom m´ıstˇe.
6.1.3
Pˇ red´ av´ an´ı dat a odst´ınˇ en´ı datov´ ych zdroj˚ u
V kapitole 5.2.2 jsem zm´ınil, ˇze modul mus´ı b´ yt nez´avisl´ y na datov´ ych zdroj´ıch. Z´aroveˇ n je vhodn´e, aby jednotliv´e ˇca´sti modulu fungovaly nez´avisle na sobˇe, aby bylo napˇr´ıklad moˇzn´e dokument pouze podepsat. Z tˇechto d˚ uvod˚ u se dokumenty pˇred´avaj´ı a zpracov´avaj´ı ve formˇe obecn´ ych datov´ ych proud˚ u (zdˇedˇen´ ych od abstraktn´ı tˇr´ıdy System.IO.Stream).
42
Z´akladn´ı aplikace – MergeSignModul
6.1.4
Implementace
Pˇ rehled tˇ r´ıd
D˚ uleˇzit´e tˇr´ıdy jsou vyznaˇceny v diagramu na obr´azku 6.1.4. Podrobnˇejˇs´ı popis d˚ uleˇzit´ ych tˇr´ıd naleznete v kapitole 6.2.
6.2
Implementace
V t´eto kapitole budou pops´any hlavn´ı tˇr´ıdy aplikace.
6.2.1
Tˇ r´ıda MFSManager
MFSManager je tˇr´ıda, kter´a implementuje rozhran´ı IMFSManager a slouˇz´ı jako vstupn´ı bod modulu. Konstruktory t´eto tˇr´ıdy zajiˇst’uj´ı naˇcten´ı konfigurace modulu a vytvoˇren´ı instanc´ı ostatn´ıch potˇrebn´ ych tˇr´ıd na z´akladˇe t´eto konfigurace. Pˇr´ıklad vytv´aˇren´ı instanc´ı podle nastaven´ı: this.mergeService = (IMergeService)System.Reflection.Assembly .GetExecutingAssembly().CreateInstance( "MergeSignModul.Merge." +(String)settings["MergeService"]);
Tˇr´ıda d´ale obsahuje veˇrejn´e metody pro vol´an´ı skl´ad´an´ı dokumentu Merge(), plnˇen´ı dokumentu Fill() a podepisov´an´ı dokumentu Sign(). Obsahuje tak´e metody pro vyvol´an´ı vˇsech u ´kon˚ u MergeFillSign() a FillMergeSign().
6.2.2
Tˇ r´ıda AltChunkMergeService
AltChunkMergeService je tˇr´ıda, kter´a implementuje rozhran´ı IMergeService. Tato tˇr´ıda poskytuje funkˇcnost spojov´an´ı dokument˚ u pomoc´ı odkazov´an´ı na existuj´ıc´ı celky. To je realizov´ano pomoc´ı AltChunk element˚ u a obsahu ve form´atu AlternativeFormatImportPart, kter´e poskytuje OpenXML SDK. AltChunk je element Wordprocessing dokumentu, kter´ y slouˇz´ı jako kotva pro um´ıstˇen´ı importovan´eho obsahu do hlavn´ı ˇc´asti dokumentu. Umoˇzn ˇuje vloˇzen´ı extern´ıho obsahu nebo obsahu, kter´ y je pˇr´ımo souˇca´st´ı OOXML bal´ıku. V obou pˇr´ıpadech je tento obsah importov´an jako AlternativeFormatImportPart. Tento kontejner umoˇzn ˇuje import dat v r˚ uzn´ ych form´atech – 43
Z´akladn´ı aplikace – MergeSignModul
Implementace
Obr´azek 6.2: UML diagram tˇr´ıd se zn´azornˇen´ım jmenn´ych prostor˚ u (zdroj: autor).
44
Z´akladn´ı aplikace – MergeSignModul
Implementace
Text (.txt), Extensible HyperText Markup Language File (.xhtml), HyperText Markup Language File (.htm), Rich Text Foramt (.rtf), Wordprocessing (.docx) a dalˇs´ıch. Pr´avˇe vkl´ad´an´ı cel´eho DOCX dokumentu vyuˇz´ıv´a tato metoda. Ve v´ ysledku AltChunkMergeService vrac´ı dokument, jehoˇz souˇca´st´ı jsou nezmˇenˇen´e d´ılˇc´ı dokumenty, a dokument, kter´ y definuje jejich um´ıstˇen´ı. Zaj´ımavou vlastnost´ı je, ˇze pokud dokument s importovan´ ym obsahem v aplikaci Microsoft Word znovu uloˇz´ıme, jsou importovan´e ˇca´sti slouˇceny do hlavn´ıho dokumentu.
6.2.3
Tˇ r´ıda PTMergeService
PTMergeService je dalˇs´ı tˇr´ıda, kter´a implementuje rozhran´ı IMergeService a umoˇzn ˇuje spojovat v´ıce DOCX dokument˚ u v jeden. Pˇredstavuje alternativu k pouˇzit´ı AltChunkMergeService a na rozd´ıl od t´eto tˇr´ıdy nevyuˇz´ıv´a import celk˚ u, ale vytv´aˇr´ı zcela nov´ y dokument pomoc´ı DocumentBuilder tˇr´ıdy, kterou poskytuje knihovna OpenXmlPowerTools. Tˇr´ıda DocumentBuilder se sama star´a o spr´avn´e slouˇcen´ı styl˚ u jednotliv´ ych dokument˚ u a umoˇzn ˇuje tak ˇcistˇe vysoko´ urovˇ nov´ y pˇr´ıstup. AltChunkMergeService a PTMergeService vyuˇz´ıvaj´ı zcela odliˇsn´e pˇr´ıstupy a tomu odpov´ıdaj´ı i specifick´e vlastnosti ohlednˇe v´ ykonnosti a kvality v´ ysledk˚ u. Tyto vlastnosti budou pozdˇeji v kapitole 9 rozebr´any a podloˇzeny testov´an´ım.
6.2.4
Tˇ r´ıda SimpleFillService
SimpleFillService je tˇr´ıda, kter´a implementuje rozhran´ı IFillService a umoˇzn ˇuje plnit ˇsablony dokumentu textem. Moˇznost´ı, jak naplnit dokument textem, je cel´a ˇrada. WordprocessingML napˇr´ıklad umoˇzn ˇuje definovat vlastn´ı metadata a z´aroveˇ n tato metadata vkl´adat do tˇela dokumentu. Dalˇs´ı moˇznost´ı je nadefinovat si vlastn´ı znaˇcku jako posloupnost znak˚ u a tuto znaˇcku nahrazovat konkr´etn´ım textem. Vyh´ yb´am se tak pouˇz´ıv´an´ı metadat v tˇele dokumentu a uˇzivatel, kter´ y bude cht´ıt tvoˇrit ˇsablonu, nebude potˇrebovat pokroˇcil´e znalosti ovl´ad´an´ı aplikace Microsoft Word. SimpleFillService pouˇz´ıv´a metodu FindTags() z rozhran´ı ITagsLoader, kter´a v ˇsablonˇe nalezne znaˇcky pro um´ıstˇen´ı vlastn´ıho textu. Metoda Fill() tˇr´ıdy SimpleFillService v dokumentu nahrad´ı text znaˇcky za uˇzivatelsk´ y text.
45
Z´akladn´ı aplikace – MergeSignModul
6.2.5
Implementace
Tˇ r´ıda SimpleTagsLoader
SimpleTagsLoader je tˇr´ıda, kter´a implementuje rozhran´ı ITagsLoader a vyhled´av´a v textu znaˇcky ve tvaru <<jmeno_parametru>>. Mnou navrˇzen´ y mechanismus umoˇzn ˇuje snadnou v´ ymˇenu znaˇcek pro um´ıstˇen´ı textu. Staˇc´ı vytvoˇrit jinou implementaci rozhran´ı ITagsLoader a tˇr´ıda SimpleFillService bude fungovat bez jak´ekoliv zmˇeny.
6.2.6
Tˇ r´ıda XmlDsigService
Tˇr´ıda XmlDsigService implementuje rozhran´ı ISignService a umoˇzn ˇuje vkl´adat intern´ı podpisy ve form´atu XMLDSig do WordprocessingML dokument˚ u pomoc´ı standardn´ıch knihoven platformy .NET (System.Security a System.IO.Packaging).
6.2.7
Tˇ r´ıda XadesService
Dalˇs´ı tˇr´ıdou, kter´a implementuje rozhran´ı ISignService, je tˇr´ıda XadesService. Na rozd´ıl od XmlDsigService neposkytuje pouze z´akladn´ı podpis typu XMLDSig, ale jeho rozˇs´ıˇrenou verzi – XAdES. Jak jsem uvedl v kapitole 3.6.2, podpis form´atu XAdES je rozliˇsov´an v nˇekolika u ´rovn´ıch podle informac´ı, kter´e jsou v nˇem obsaˇzeny. XadesService poskytuje u ´rovnˇe T (Timestamp), C (Complete), X (eXtended), X-L (eXtended Long term). Neposkytuje nevyˇsˇs´ı u ´roveˇ n A (Archival) a nejniˇzˇs´ı u ´roveˇ n BES, nebo tak´e EPES (kter´a se v podstatˇe neliˇs´ı od z´akladn´ıho form´atu XMLDSig). Tˇr´ıda tedy ˇreˇs´ı nejen samotn´e podepisov´an´ı, ale i pˇripojen´ı ˇcasov´eho raz´ıtka, pˇrid´an´ı odkaz˚ u na veˇsker´e pouˇzit´e certifik´aty v certifikaˇcn´ım ˇretˇezci, kter´ y byl k podpisu pouˇzit, pˇripojen´ı ˇcasov´eho raz´ıtka po pˇrid´an´ı tˇechto informac´ı a nakonec i pˇrid´an´ı samotn´ ych certifik´at˚ u certifikaˇcn´ıho ˇretˇezce a hodnoty revokaˇcn´ıch list˚ u. XadesService vyuˇz´ıv´a prostˇredk˚ u knihovny Microsoft.Xades, kter´a byla vytvoˇrena jako open source projekt Signature avanc´ee (XAdES) pour Microsoft .NET Framework v3.5 francouzsk´eho t´ ymu v´ yvoj´aˇr˚ u spoleˇcnosti Microsoft a kter´a byla publikov´ana pod svobodnou CeCILL-B licenc´ı. Samotn´a knihovna Microsoft.Xades nen´ı zcela bezprobl´emov´a, pˇresto pˇredstavuje oproti ostatn´ım knihovn´am tu nejlepˇs´ı moˇznou volbu. Dalˇs´ı moˇznost´ı byla knihovna XadesNet. Jej´ı autoˇri uv´adˇej´ı, ˇze ve fin´aln´ı verzi bude poskytovat podpisy 46
Z´akladn´ı aplikace – MergeSignModul
Implementace
form´atu XMLDsig, XAdES BES, T a C. Avˇsak jiˇz delˇs´ı dobu se knihovna nach´az´ı ve stavu Beta“, ve kter´em poskytuje pouze Form´at XMLDsig a ” XAdES BES. Neˇreˇs´ı tak v˚ ubec z´ısk´av´an´ı ˇcasov´ ych raz´ıtek ani dalˇs´ı pokroˇcil´e ˇc´asti XAdES podpisu. Z´ısk´av´an´ı ˇcasov´ ych raz´ıtek naopak poskytuje knihovna BouncyCastle, kter´a vˇsak neposkytuje ˇz´adnou podporu XAdES form´atu, ani form´atu XMLDSig. Nejl´epe tak dopadla knihovna Microsoft.Xades, i pˇres skuteˇcnost, ˇze bylo nutn´e ji rozˇs´ıˇrit o podepisov´an´ı extern´ıch soubor˚ u ve form´atu datov´ ych proud˚ u, o moˇznost z´ısk´avat CRL pˇres HTTP protokol a opravit chybu, kter´a v pˇr´ıpadˇe vkl´ad´an´ı v´ıce certifik´at˚ u certifikaˇcn´ıho ˇretˇezce vypoˇc´ıt´avala jejich hash pouze z prvn´ıho z nich. Podpisy vytv´aˇren´e tˇr´ıdou XadesService je moˇzn´e v pˇr´ıpadˇe potˇreby d´ale rozˇs´ıˇrit o archivaˇcn´ı ˇcasov´a raz´ıtka (´ uroveˇ n A).
6.2.8
Logov´ an´ı modulu
Jelikoˇz je modul urˇcen pro r˚ uzn´e typy aplikac´ı, vˇcetnˇe webov´ ych, je vhodn´e, aby bylo chov´an´ı modulu logov´ano. Pro tyto u ´ˇcely jsem v z´akladn´ı implementaci zvolil n´astroj NLog. Tato knihovna umoˇzn ˇuje snadn´e nastaven´ı ve vlastn´ım konfiguraˇcn´ım souboru, nebo ve web.xml. Podporuje logov´an´ı do soubor˚ u i do datab´aze a pouˇzit´ı je snadn´e. Staˇc´ı z´ıskat instanci loggeru: static Logger logger = LogManager.GetCurrentClassLogger();
a pak uˇz pouze zapisovat logovac´ı zpr´avy: logger.Warn("Spojov´ an´ ı vol´ ano bez vstupn´ ıch datastream˚ u.");
6.2.9
Konfigurace modulu
V kapitole 6.1 jsem uvedl, ˇze konfigurace modulu je uchov´av´ana v souboru config.xml. K z´ısk´an´ı informac´ı z tohoto souboru slouˇz´ı tˇr´ıda Model.Settings, kter´a k dat˚ um v config.xml pˇristupuje jako k data setu. Tento pˇr´ıstup umoˇzn ˇuje v pˇr´ıpadˇe potˇreby snadnou zmˇenu u ´loˇziˇstˇe ze souboru na datab´azi.
47
7 Pomocn´e aplikace Pro jednoduˇsˇs´ı nastavov´an´ı modulu, uk´azku jeho ˇcinnosti a otestov´an´ı v´ ysledk˚ u vznikaly menˇs´ı jedno´ uˇcelov´e aplikace. V t´eto kapitole je ve struˇcnosti pˇredstav´ım.
7.1
MergeSignModulConfig
Jak bylo uvedeno v kapitole 6.1, v konstruktoru tˇr´ıdy MFSManager doch´az´ı k naˇc´ıt´an´ı konfiguraˇcn´ıho souboru config.xml. Aby byl modul sn´aze nastaviteln´ y, vytvoˇril jsem MergeSignModulConfig. Jedn´a se o jednoduchou Windows Forms aplikaci, kterou uˇzivatel modulu um´ıst´ı do sloˇzky, ve kter´e se bude nach´azet config.xml. Pˇri jej´ım spuˇstˇen´ı si naˇcte aktu´aln´ı verzi konfiguraˇcn´ıho souboru, pokud je dostupn´a. Pokud nen´ı dostupn´a, je vytvoˇrena zcela nov´a konfigurace. V podstatˇe je to velmi jednoduch´ y n´astroj a zaj´ımavˇejˇs´ı funkcionalitu pˇredstavuje pouze tlaˇc´ıtko v´ ybˇeru certifik´atu pro elektronick´ y podpis. Zm´ınˇen´e tlaˇc´ıtko otev´ır´a u ´loˇziˇstˇe certifik´at˚ u uˇzivatele s dostupn´ ymi platn´ ymi certifik´aty a uˇzivatel si tak m˚ uˇze vybrat konkr´etn´ı certifik´at bez znalosti, jak se do tohoto u ´loˇziˇstˇe dostat za pomoci syst´emov´ ych prostˇredk˚ u. Uk´azku aplikace naleznete na obr´azku 7.1 a pˇr´ıklad v´ ybˇeru certifik´atu na obr´azku 7.2.
7.2
MergeSignApp
MergeSignApp je jednoduch´a Windows Forms aplikace, kter´a demonstruje pouˇzit´ı modulu MergeSignModul a z´aroveˇ n umoˇzn ˇuje testovat dobu potˇrebnou pro spojov´an´ı a plnˇen´ı dokumentu (obr´azek 7.3). Aplikace poskytuje uˇzivatelsk´e rozhran´ı pro volbu ˇsablon a moˇznost naˇcten´ı parametr˚ u ve form´atu XML. XSD sch´ema a uk´azku XML s parametry naleznete v pˇr´ıloze A. D´ale si uˇzivatel zvol´ı poˇcet opakov´an´ı, kolikr´at se m´a dokument vytvoˇrit. Tato funkcionalita ukazuje znovupouˇzitelnost ˇsablon a z´aroveˇ n umoˇzn ˇuje z´ıskat pˇresnˇejˇs´ı v´ ysledky mˇeˇren´ı doby skl´ad´an´ı a plnˇen´ı, pokud zvol´ıme, aby se tento proces nˇekolikr´at opakoval.
48
Pomocn´e aplikace
MergeSignApp
Obr´azek 7.1: Uk´azka konfiguraˇcn´ı aplikace (zdroj: autor).
49
Pomocn´e aplikace
MergeSignApp
Obr´azek 7.2: Uk´azka v´ybˇeru certifik´atu (zdroj: autor).
Obr´azek 7.3: Bˇeh uk´azkov´e aplikace (zdroj: autor). 50
Pomocn´e aplikace
XadesVerifyTool
Obr´azek 7.4: Uk´azka ovˇeˇren´eho podpisu (zdroj: autor).
7.3
XadesVerifyTool
Dalˇs´ı z ˇrady podp˚ urn´ ych aplikac´ı je jednoduch´a Windows Forms aplikace, kter´a je urˇcena k ovˇeˇrov´an´ı podpis˚ u ve form´atu XAdES. Vyuˇz´ıv´a prostˇredk˚ u, kter´e poskytuje knihovna Microsoft.Xades k urˇcen´ı validity podpisu a nav´ıc rozpozn´av´a u ´roveˇ n form´atu XAdES, kter´e podpis dosahuje (obr´azek 7.4).
7.4
TestTimeToOpenDocument
Posledn´ı z podp˚ urn´ ych utilit je VSTO (Visual Studio Tools for Office) Word 2010 doplnˇek, kter´ y rozˇsiˇruje aplikaci Microsoft Word 2010 o moˇznost naˇc´ıt´an´ı dokumentu s mˇeˇren´ım doby otev´ır´an´ı dokumentu (obr´azek 7.5).
51
Pomocn´e aplikace
TestTimeToOpenDocument
Obr´azek 7.5: Doplnˇek do aplikace Microsoft Word 2010, kter´y umoˇzn ˇuje mˇeˇrit ˇcas otev´ır´an´ı dokumentu (zdroj: autor).
52
8 Integrace modulu do syst´emu Microsoft SharePoint 2010 ´ Ukolem v zad´an´ı diplomov´e pr´ace od spoleˇcnosti CCA Group bylo vytvoˇrit modul, kter´ y by umoˇznil automaticky skl´adat dokumenty, plnit je textem a pˇripojovat k nim elektronick´e podpisy a ˇcasov´a raz´ıtka. Spoleˇcnost CCA Group na z´akladˇe v´ ysledk˚ u z kapitoly 6 vznesla n´avrh, zda by bylo moˇzn´e diplomovou pr´aci rozˇs´ıˇrit o praktickou integraci vznikl´eho modulu do syst´emu Microsoft SharePoint 2010 Standard. Vzhledem k tomu, ˇze jsem implementaci v kapitol´ach 6 a 7 zvl´adl s ˇcasov´ ym pˇredstihem a ˇze integrace modulu do syst´emu SharePoint bude znamenat velk´ y pˇr´ınos pro spoleˇcnost CCA Group, rozhodl jsem se tento n´avrh pˇrijmout a vytvoˇrit praktickou uk´azku pouˇzit´ı modulu v tomto syst´emu, doplnˇek SPMergeSign.
8.1
N´ avrh integrace
Integrace modulu neznamen´a pouze uv´est tento modul do funguj´ıc´ıho stavu, ale tak´e navrhnout pˇr´ıstup k jeho vyuˇz´ıv´an´ı. Syst´em SharePoint 2010 poskytuje moˇznost definovat vlastn´ı seznamy (lists), typy obsahu webu (content types) a sloupce webu (site columns). Sloupce webu umoˇzn ˇuj´ı definovat datov´ y typ na u ´rovni str´anek. Typy obsahu webu jsou typy, kter´e jsou oddˇedˇen´e od jin´ ych typ˚ u obsahu webu (tˇech, kter´e jsou implicitnˇe definovan´e v syst´emu SharePoint, nebo tˇech, kter´e jsme si sami vytvoˇrili) a kter´e je moˇzn´e rozˇs´ıˇrit o dalˇs´ı vlastnosti pˇrid´an´ım sloupc˚ u webu (uk´azka vztah˚ u na obr´azku 8.1). Seznam m´a definovan´ y typ obsahu, kter´ y m˚ uˇze obsahovat, a tak´e ˇsablonu dokumentu, kterou m˚ uˇze t´ımto typem obsahu plnit. Sloupce webu, kter´e tento typ obsahuje, se stanou metadaty dokumentu, a pokud byly v dokumentu um´ıstˇeny znaˇcky pro umist’ov´an´ı metadat, jsou vytv´aˇreny automatizovan´e dokumenty, jak bylo pops´ano v kapitole 6.3.4. Z tohoto hlediska m´a syst´em SharePoint automatick´e plnˇen´ı dokument˚ u vyˇreˇsen´e. Na prvn´ı pohled je vˇsak patrn´e, ˇze se tento zp˚ usob silnˇe v´aˇze na typ obsahu webu a na konkr´etn´ı seznam, se kter´ ym je spojena ˇsablona dokumentu.
53
Integrace Modulu
Pouˇzit´ı SharePoint 2010 SDK
Obr´azek 8.1: Pˇr´ıklad seznam˚ u, typ˚ u obsahu a sloupc˚ u webu (zdroj: autor). M´ ym pˇr´ınosem je doplnit funkˇcnost, kter´a bude poskytov´ana nad obecn´ ymi datov´ ymi typy a v´ ybˇer ˇsablony nebude omezov´an. Za t´ımto u ´ˇcelem rozˇs´ıˇr´ım kontextov´e menu poloˇzky seznamu (v terminologii syst´emu SharePoint je naz´ yv´ano EditControlBlock ) o poloˇzku vytv´aˇren´ı dokumentu. Tato poloˇzka bude vyvol´avat mod´aln´ı dialogov´e okno, jehoˇz obsahem bude nov´a aplikaˇcn´ı str´anka (ASPX), kter´a bude zobrazovat dostupn´e ˇsablony ve sloˇzce, kter´a byla urˇcena konfigurac´ı modulu. Bude umoˇzn ˇovat jejich v´ ybˇer, nastaven´ı n´azvu v´ ystupn´ıho dokumentu a po potvrzen´ı z´ısk´a datov´e proudy zvolen´ ych ˇsablon, pouˇzije modul MergeSignModul, n´aslednˇe uloˇz´ı v´ ysledn´ y datov´ y proud (respektive v´ ysledn´e datov´e proudy, pokud jsme vytv´aˇreli dokument s extern´ım elektronick´ ym podpisem) do zvolen´e knihovny syst´emu SharePoint a nakonec uˇzivatele pˇresmˇeruje na tuto knihovnu. Proces vytv´aˇren´ı dokumentu pomoc´ı navrhovan´eho rozˇs´ıˇren´ı je pops´an sekvenˇcn´ım diagramem na obr´azku 8.2.
8.2
Pouˇ zit´ı SharePoint 2010 SDK
Pro rozˇs´ıˇren´ı funkcionality platformy SharePoint slouˇz´ı SharePoint 2010 SDK a v´ yvojov´e prostˇred´ı Microsoft Visual Studio 2010. Visual Studio obsahuje
54
Integrace Modulu
Pouˇzit´ı SharePoint 2010 SDK
Obr´azek 8.2: Sekvenˇcn´ı diagram popisuj´ıc´ı proces tvorby dokumentu (zdroj: autor).
55
Integrace Modulu
Implementace UI a kontroloru
sadu ˇsablon projekt˚ u, kter´e jsou urˇceny platformˇe SharePoint a zamˇeˇruj´ı se na rozˇs´ıˇren´ı specifick´ ych ˇca´st´ı t´eto platformy (vizu´aln´ı webov´e ˇca´sti, sekvenˇcn´ı workflow, definice seznamu, typ obsahu a dalˇs´ı). Mnou vytv´aˇren´a integrace modulu bude vyuˇz´ıvat r˚ uzn´e ˇca´sti, a proto jsem zvolil obecn´ y SharePoint projekt. V´ yvoj´aˇr pro platformu SharePoint je pˇri vytv´aˇren´ı projektu vyzv´an, aby rozhodl, zda se bude jednat o sandbox ˇreˇsen´ı (ˇreˇsen´ı na omezen´em p´ısko” viˇsti“), nebo farm ˇreˇsen´ı (ˇreˇsen´ı, kter´e ovlivˇ nuje chod cel´e SharePoint farmy). V´ yhoda sandbox ˇreˇsen´ı je, ˇze bˇeˇz´ı v omezen´em prostoru, kter´ y je syst´emem SharePoint plnˇe kontrolov´an a v pˇr´ıpadˇe, ˇze by spotˇrebov´aval pˇr´ıliˇs mnoho zdroj˚ u, jej SharePoint m˚ uˇze doˇcasnˇe ukonˇcit. Z´aroveˇ n se jedn´a o bezpeˇcn´e ˇreˇsen´ı, kter´e nem´a pˇr´ıstup k pevn´ ym disk˚ um serveru a mnoh´a dalˇs´ı omezen´ı. Tyto v´ yhody sandbox ˇreˇsen´ı jsou z´aroveˇ n i jeho nev´ yhody. Bohuˇzel nen´ı napˇr´ıklad moˇzn´e v sandbox ˇreˇsen´ı vyuˇz´ıvat assembly, kter´e nejsou poskytov´any syst´emem SharePoint. Z tohoto d˚ uvodu musel b´ yt projekt implementov´an jako farmov´e ˇreˇsen´ı.
8.3
Implementace UI a kontroloru
V kapitole 8.1 jsem uvedl, ˇze k vytv´aˇren´ı dokumentu budu pˇristupovat skrze novou poloˇzku v kontextov´em menu poloˇzky seznamu a samotn´e ovl´ad´an´ı bude realizov´ano skrze mod´aln´ı dialogov´e okno.
8.3.1
Poloˇ zka kontextov´ eho menu
Je vytv´aˇrena jako SharePoint 2010 Empty Element, kter´ y nav´aˇzeme na obecn´ y typ obsahu webu, a kter´emu vytvoˇr´ıme akci na kliknut´ı. XML k´od pro tento element bude n´asleduj´ıc´ı: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
Obr´azek 8.3: Poloˇzka kontextov´eho menu (zdroj: autor).
8.3.2
Mod´ aln´ı dialogov´ e okno
Vyvol´an´ı tohoto okna je uk´az´ano v programov´em k´odu v kapitole 8.3.1. Tˇelo okna je bˇeˇzn´a str´anka aplikace (ASPX) a k n´ı patˇriˇcn´ y code-behind. Pro co nejjednoduˇsˇs´ı integraci modulu do syst´emu SharePoint nebylo prov´adˇeno vrstven´ı aplikace, a tak byl k´od kontroloru jednoduˇse vloˇzen do code-behind str´anky. Jedn´a se hlavnˇe o komunikaci se SharePoint Server-Side API (z´ısk´an´ı n´azv˚ u ˇsablon, z´ısk´an´ı a ukl´ad´an´ı datov´ ych proud˚ u) a vol´an´ı modulu MergeSignModul. D´ale jsou uvedeny pˇr´ıklady vol´an´ı SharePoint Server-Side API: Pˇr´ıklad z´ısk´an´ı n´azv˚ u a adres ˇsablon: SPFolder templatesFolder = SPContext.Current.Web.Lists[ioListName] .RootFolder.SubFolders[infolderName];
57
Integrace Modulu
Implementace UI a kontroloru
foreach (SPFile file in templatesFolder.Files) { ListBoxTemplAvailable.Items.Add(new ListItem(file.Name, file.Url)); }
Pˇr´ıklad uloˇzen´ı souboru do specifick´eho adres´aˇre: SPFolder outputFolder = SPContext.Current.Web.Lists[ioListName] .RootFolder.SubFolders[outfolderName]; outputFolder.Files.Add(outputName, outStream, true);
Obr´azek 8.4: Uk´azka mod´aln´ıho dialogu (zdroj: autor).
58
Integrace Modulu
8.4
Zmˇeny v modulu oproti z´akladn´ı implementaci
Zmˇ eny v modulu oproti z´ akladn´ı implementaci
Pˇrestoˇze jsem projekt integrace vytvoˇril jako farmov´e ˇreˇsen´ı, pˇrinesl syst´em SharePoint nˇekter´a omezen´ı a doporuˇcen´ı, kv˚ uli kter´ ym bylo nutn´e prov´est nˇekolik z´asah˚ u do modulu.
8.4.1
Logov´ an´ı modulu
V z´akladn´ı implementaci modulu byl pro logov´an´ı zvolen n´astroj NLog. S jeho pomoc´ı je st´ale moˇzn´e i v aplikace bˇeˇz´ıc´ı na platformˇe SharePoint logovat, avˇsak doporuˇcen´e logov´an´ı je za pomoci standardn´ıch logovac´ıch prostˇredk˚ u syst´emu SharePoint. Pro logov´an´ı je pak pouˇzit n´asleduj´ıc´ı k´od: SPDiagnosticsService.Local.WriteTrace(802, new SPDiagnosticsCategory("SPMergeSign", TraceSeverity.Monitorable, EventSeverity.None), TraceSeverity.Monitorable, "Spojov´ an´ ı vol´ ano bez vstupn´ ıch datastream˚ u.", null);
8.4.2
Konfigurace modulu
Pouˇzit´e farmov´e ˇreˇsen´ı umoˇzn ˇuje ˇc´ıst soubory z disku, bylo by tedy moˇzn´e ˇc´ıst konfiguraˇcn´ı soubor config.xml. Z´aroveˇ n SharePoint server vyuˇz´ıv´a MS SQL datab´azi. Bylo by moˇzn´e pouˇz´ıt naˇc´ıt´an´ı a ukl´ad´an´ı konfigurace i z datab´aze. SharePoint platforma m´a vˇsak pro ukl´ad´an´ı nastaven´ı vlastn´ı standardn´ı pˇr´ıstup – takzvan´ y Property Bag. Jedn´a se o standardizovan´ y zp˚ usob ukl´ad´an´ı nastaven´ı, kter´ y vyuˇz´ıv´a datab´azi SharePoint serveru a z´aroveˇ n umoˇzn ˇuje divergovat nastaven´ı podle kontextu str´anek. Farmov´e ˇreˇsen´ı tak m˚ uˇze b´ yt aplikace, kter´a bˇeˇz´ı na v´ıce kolekc´ıch str´anek, kter´a m´a z´aroveˇ n pro jednotliv´e kolekce str´anek individu´aln´ı nastaven´ı. Pˇr´ıklad pouˇzit´ı Property Bag: SPSite site = SPContext.Current.Site; SPWeb sitePropWeb = site.RootWeb; SPPropertyBag properties = sitePropWeb.Properties; if (properties.ContainsKey(valueName)) { property = (String)properties[valueName]; }
59
Integrace Modulu
8.4.3
V´ysledek integrace
IfillService
Uk´azalo se, ˇze v prostˇred´ı syst´emu SharePoint nefunguje metoda SearchAndReplace() tˇr´ıdy TextReplacer z knihovny OpenXmlPowerTools pro OpenXml soubor zpracov´avan´ y jako datov´ y proud. Bylo tak nutn´e nahradit implementaci rozhran´ı IfillService tˇr´ıdu SimpleFillService za jinou tˇr´ıdu, kter´a by nevyuˇz´ıvala t´eto metody. Pro potˇrebu doplˇ nku SPMergeService jsem vytvoˇril novou tˇr´ıdu, kter´a implementuje rozhran´ı IfillService – SPEWFillService. Ta tˇr´ıdu TextReplacer nahrazuje tˇr´ıdou SearchAndReplacer, jej´ımˇz autorem je Eric White.[19]
8.4.4
´ ziˇ Uloˇ stˇ e digit´ aln´ıch certifik´ at˚ u
Aplikace, kter´a bˇeˇz´ı pod kontextem SharePoint serveru, nem´a pr´avo exportovat prim´arn´ı kl´ıˇce digit´aln´ıch certifik´at˚ u z u ´loˇziˇstˇe st´avaj´ıc´ıho uˇzivatele. Nem˚ uˇze tedy tyto certifik´aty pouˇz´ıt k tvorbˇe elektronick´eho podpisu. Proto ve tˇr´ıd´ach XmlDSigService a XadesService bylo nutn´e zmˇenit pouˇz´ıvan´e u ´loˇziˇstˇe za u ´loˇziˇstˇe stroje.
8.5
V´ ysledek integrace
Integrace probˇehla tak, jak bylo v kapitole 8.1 navrˇzeno. Uˇzivatel si vybere poloˇzku seznamu, kterou chce pouˇz´ıt k naplnˇen´ı dat, zvol´ı Vytvoˇrit doku” ment“, vybere jednu nebo v´ıce ˇsablon a zvol´ı, zda v´ ysledn´ y dokument tak´e podepsat. V´ ysledek je pak uloˇzen do pˇredem urˇcen´e sloˇzky. Probl´em nast´av´a bˇehem ukl´ad´an´ı dokumentu do syst´emu SharePoint. Ten jej patrnˇe pˇri ukl´ad´an´ı pozmˇen´ı a t´ım zneplatn´ı podpisy, kter´e jsou k tomuto dokumentu vytvoˇreny. Probl´em zcela jistˇe nen´ı v implementaci modulu, ale je zp˚ usoben syst´emem SharePoint. V pˇr´ıpadˇe, ˇze v´ ysledn´ y soubor neuloˇz´ıme do syst´emu SharePoint, ale uloˇz´ıme jej pˇr´ımo na souborov´ y syst´em, je vˇzdy podpis validn´ı. M´ ym n´avrhem je prov´est v´ yzkum na zjiˇstˇen´ı, k jak´ ym zmˇen´am v dokumentu pˇri ukl´ad´an´ı doch´az´ı a zda nen´ı moˇzn´e toto chov´an´ı syst´emu explicitnˇe zak´azat, ˇci obej´ıt.
60
9 Porovn´an´ı r˚ uzn´ ych metod skl´ ad´ an´ı dokument˚ u V kapitole 6.3 bylo zm´ınˇeno, ˇze jsem implementoval dvˇe r˚ uzn´e tˇr´ıdy, kter´e jsou urˇceny pro skl´ad´an´ı DOCX dokument˚ u z jiˇz existuj´ıc´ıch dokument˚ u tohoto typu. Kaˇzd´a z tˇechto tˇr´ıd vyuˇz´ıv´a zcela odliˇsn´e pˇr´ıstupy a bylo naznaˇceno, ˇze kaˇzd´a bude m´ıt specifick´e vlastnosti. Pro pˇripomenut´ı, tˇr´ıda AltChunkMergeService vyuˇz´ıv´a moˇznosti importovat na urˇcit´e m´ısto v hlavn´ı ˇca´sti dokumentu (AltChunk kotva) jin´ y dokument jako AlternativeFormatImportPart. Tuto moˇznost poskytuje knihovna OpenXML SDK. Na prvn´ı pohled je zˇrejm´e, ˇze tento pˇr´ıstup bude umoˇzn ˇovat rychl´e skl´ad´an´ı dokument˚ u, nebot’ se nejedn´a o nic jin´eho neˇz pˇrid´an´ı referenc´ı v urˇcit´em m´ıstˇe dokumentu. Ot´azkou je, zda bude m´ıt toto ˇreˇsen´ı dopad na dobu otev´ır´an´ı dokumentu a na velikost v´ ysledn´eho dokumentu. Dalˇs´ı nev´ yhodou ˇreˇsen´ı pomoc´ı importu je, ˇze importovan´ y obsah nelze prohled´avat a nahrazovat pomoc´ı tˇr´ıdy SimpleFillService. Mus´ıme tedy nejprve ˇsablony naplnit a teprve pot´e je spojit. Tato nev´ yhoda m˚ uˇze b´ yt z´asadn´ı, pokud potˇrebujeme do vytvoˇren´eho dokumentu doplnit data aˇz pozdˇeji. V tom pˇr´ıpadˇe nen´ı moˇzn´e tˇr´ıdu AltChunkMergeService pouˇz´ıt. Druh´a tˇr´ıda PTMergeService pouˇz´ıv´a tˇr´ıdu DocumentBuilder z knihovny OpenXmlPowerTools. Zde je moˇzn´e tˇr´ıdˇe DocumentBuilder pˇredat jednotliv´e dokumenty a tˇr´ıda sama je dok´aˇze spojit i vyˇreˇsit pˇr´ıpadn´e kolize (styl˚ u atd.). Lze pˇredpokl´adat, ˇze toto ˇreˇsen´ı bude pro vytv´aˇren´ı dokumentu pomalejˇs´ı neˇz prvn´ı uveden´e. Na druhou stranu oˇcek´av´am, ˇze bude m´ıt pozitivn´ı dopad na dobu otev´ır´an´ı dokumentu a na jeho v´ yslednou velikost. Na z´avˇer je dobr´e dodat, ˇze je moˇzn´e pˇri pouˇzit´ı tˇr´ıdy PTMergeService dokument nejprve spojit a pak teprve pomoc´ı tˇr´ıdy SimpleFillService naplnit. Testov´an´ı prob´ıhalo na testovac´ı sestavˇe s operaˇcn´ım syst´emem Windows 7 Professional 64-bit, procesorem Intel Core i5-2410M (frekvence 2,3 GHz – 2,6 GHz, L1 Cache 128 KB, L2 Cache 512 KB, L3 Cache 3072 KB), velikost pamˇeti RAM 4096 MB.
61
Porovn´an´ı metod skl´ad´an´ı
9.1
Doba bˇehu a v´ysledn´a velikost souboru
Porovn´ an´ı doby bˇ ehu modulu a v´ ysledn´ e velikosti dokumentu
Porovn´av´an´ı doby skl´ad´an´ı dokumentu prob´ıhalo za pomoci aplikace MergeSignApp (kapitola 7.2). V kaˇzd´em zkouman´em pˇr´ıpadˇe jsem dokument vygeneroval stokr´at. V´ ysledn´ y ˇcas je pr˚ umˇer namˇeˇren´ ych ˇcas˚ u. V tabulce 9.1 naleznete v´ ysledky mˇeˇren´ı. Zkratka FM u n´azvu tˇr´ıdy znamen´a, ˇze nejprve doˇslo k plnˇen´ı ˇsablon a pot´e k jejich skl´ad´an´ı. Zkratka MF znamen´a, ˇze nejprve byly ˇsablony spojeny a pak plnˇeny. Z v´ ysledk˚ u vypl´ yv´a nˇekolik fakt˚ u: ∙ Tˇr´ıda AltChunkMergeService je pˇri skl´ad´an´ı vˇetˇs´ıch dokument˚ u aˇz nˇekolikan´asobnˇe rychlejˇs´ı neˇz tˇr´ıda PTMergeService (na n´ami zvolen´ ych datech byla i v´ıce neˇz 5kr´at rychlejˇs´ı). ∙ Tˇr´ıda PTMergeService generuje aˇz nˇekolikan´asobnˇe menˇs´ı soubory (z´aleˇz´ı pochopitelnˇe na velikosti jednotliv´ ych soubor˚ u) neˇz tˇr´ıda AltChunkService (v extr´emn´ıch pˇr´ıpadech naˇseho mˇeˇren´ı byl v´ ysledkem i 15kr´at menˇs´ı v´ ysledn´ y soubor). ∙ Tˇr´ıda AltChunkMergeService generuje v´ ysledn´ y soubor o velikosti, kter´a zhruba odpov´ıd´a velikosti vˇsech spojovan´ ych dokument˚ u dohromady. ∙ Pouˇzit´ı opaˇcn´eho poˇrad´ı (nejdˇr´ıve spojovat a pot´e plnit) vede k mnohon´asobnˇe horˇs´ım v´ ysledk˚ um doby plnˇen´ı neˇz u plnˇen´ı a n´asledn´eho spojov´an´ı. Z tohoto zjiˇstˇen´ı a z v´ ysledk˚ u doby plnˇen´ı nejvˇetˇs´ıch soubor˚ u vypl´ yv´a, ˇze plnˇen´ı dokumentu daty pomoc´ı tˇr´ıdy SimpleFillService roste neline´arnˇe s mnoˇzstv´ım textu dokumentu. ∙ Doby spojov´an´ı pomoc´ı obou tˇr´ıd jsou v˚ uˇci dob´am plnˇen´ı zanedbateln´e. V´ ysledky mˇeˇren´ı byly pro n´azornost zaneseny do graf˚ u, kter´e naleznete v pˇr´ıloze B.
62
Porovn´an´ı metod skl´ad´an´ı
Doba bˇehu a v´ysledn´a velikost souboru
Velikosti (kB) Pouˇzit´a tˇr´ıda
n
ACMS (FM)
3
37
37
PTMS (FM)
3
37
PTMS (MF)
3
ACMS (FM)
Doby bˇehu (ms)
Vstupn´ı V´ ystupn´ı Skl´ad´an´ı
Plnˇen´ı
Celkov´a
9,4
70,1
79,5
16
25,5
63,1
87,5
37
16
28,5
93,5
122,0
12
147
149
16,7
244,5
261,2
PTMS (FM)
12
147
21
68,2
250,2
317,3
PTMS (MF)
12
147
21
76,9
802,9
879,8
ACMS (FM)
24
294
298
27,1
471,3
498,4
PTMS (FM)
24
294
28
125,0
519,1
644,1
PTMS (MF)
24
294
28
141,8
2999,0
3140,8
ACMS (FM)
36
441
448
38,2
694,1
732,4
PTMS (FM)
36
441
35
192,2
729,1
921,4
PTMS (MF)
36
441
35
209,7
6255,6
6465,3
ACMS (FM)
48
589
597
45,8
943,2
991,0
PTMS (FM)
48
589
41
244,6
953,8
1197,8
PTMS (MF)
48
589
41
283,1
11224,5
11507,7
ACMS (FM) – PTMS (FM) – PTMS (MF) – n–
AltChunkMergeService (Fill -> Merge) PTMergeService (Fill -> Merge) PTMergeService (Merge -> Fill) Poˇcet vstupn´ıch ˇsablon
Tabulka 9.1: Doba bˇehu skl´ad´an´ı dokumentu a velikost v´ysledn´eho souboru.
63
Porovn´an´ı metod skl´ad´an´ı
Doba otev´ır´an´ı dokumentu
V´ ysledky pˇredchoz´ıho testu otevˇrely ot´azku, jak roste doba plnˇen´ı dokumentu v z´avislosti na d´elce jednotliv´ ych soubor˚ u. Pˇripravil jsem tedy test, ve kter´em pln´ım jeden dokument, jehoˇz obsah m´a 1000 znak˚ u a 25 nahrazovan´ ych poloˇzek. Tento dokument jsem postupnˇe zvˇetˇsoval kop´ırov´an´ım p˚ uvodn´ıho obsahu na 5000 znak˚ u a 125 poloˇzek, 10000 znak˚ u a tak d´ale. V testu jsem porovn´aval ˇcas plnˇen´ı jednoho spojen´eho souboru s ˇcasem plnˇen´ı a n´asledn´eho sloˇzen´ı odpov´ıdaj´ıc´ıho poˇctu p˚ uvodn´ıch soubor˚ u o rozsahu 1000 znak˚ u. Z tabulky 9.2 je vidˇet, ˇze pokud pln´ıme element´arn´ı soubory a ty teprve skl´ad´ame v jeden, roste doba skl´ad´an´ı v z´avislosti na poˇctu znak˚ u line´arnˇe. Doba plnˇen´ı jedin´eho souboru v z´avislosti na poˇctu znak˚ u roste zhruba kvadraticky (viz graf ˇc. 3, pˇr´ıloha B).
Poˇcet znak˚ u Poˇcet nahrazen´ı 𝑡1 (ms)
𝑡2 (ms)
1 000
25
152,3
160,4
5 000
125
2136,0
847,3
10 000
250
7528,5
1575,2
15 000
375
16852,0
2339,4
20 000
500
30977,2
3030,1
25 000
625
48097,6
3960,2
Tabulka 9.2: Doba bˇehu plnˇen´ı dokumentu v z´avislosti na velikosti ˇsablon (𝑡1 - doba plnˇen´ı jedin´eho vstupn´ıho souboru, 𝑡2 - doba plnˇen´ı element´arn´ıch soubor˚ u a jejich sloˇzen´ı).
9.2
Porovn´ an´ı doby otev´ır´ an´ı dokumentu v aplikaci Office Word 2010
Porovn´an´ı doby otev´ır´an´ı dokumentu prob´ıhalo pomoc´ı doplˇ nku TestTimeToOpenDocument, jenˇz byl pops´an v kapitole 7.4. Testov´any byly dokumenty vytvoˇren´e bˇehem prvn´ıho mˇeˇren´ı kapitoly 9.1.
64
Porovn´an´ı metod skl´ad´an´ı
Z´avˇery porovn´an´ı
V´ ysledky (v tabulce 9.3) potvrdily pˇredpoklad, ˇze doba otev´ır´an´ı dokument˚ u vytvoˇren´ ych tˇr´ıdou AltChunkMergeService je delˇs´ı neˇz doba otev´ır´an´ı dokument˚ u vytvoˇren´ ych tˇr´ıdou PTMergeService.
n
𝑡𝐴𝐶𝑀 𝑆 (ms) 𝑡𝑃 𝑇 𝑀 𝑆 (ms)
3
103,5
74,4
12
230,4
87,9
24
422,2
103,2
36
601,8
115,1
48
785,9
124,9
Tabulka 9.3: Doba bˇehu otev´ır´an´ı dokumentu podle poˇctu soubor˚ u, kter´e byly pouˇzity k sestaven´ı testovac´ıho dokumentu (𝑡𝐴𝐶𝑀 𝑆 - doba otev´ır´an´ı dokumentu vytvoˇren´eho tˇr´ıdou AltChunkMergeService,𝑡𝑃 𝑇 𝑀 𝑆 - Doba otev´ır´an´ı dokumentu vytvoˇren´eho tˇr´ıdou PTMergeService, n - poˇcet vstupn´ıch ˇsablon, ze kter´ych byl dokument vytvoˇren).
9.3
Z´ avˇ ery porovn´ an´ı
Pokud shrnu v´ yˇse uveden´e v´ ysledky, mohu konstatovat, ˇze doba skl´ad´an´ı dokumentu i doba otev´ır´an´ı v´ ysledn´eho dokumentu je v obou pˇr´ıpadech line´arnˇe z´avisl´a na poˇctu zdrojov´ ych dokument˚ u. V porovn´an´ı s dobou plnˇen´ı ˇsablon jsou zanedbateln´e a pro v´ ybˇer pouˇz´ıvan´e tˇr´ıdy nehraje zcela z´asadn´ı roli. D˚ uleˇzitˇejˇs´ı roli hraje fakt, ˇze po pouˇzit´ı tˇr´ıdy AltChunkMergeService pro sloˇzen´ı dokumentu nelze do v´ ysledn´eho dokumentu vkl´adat data pomoc´ı tˇr´ıdy SimpleFillService a ˇze velikost v´ ysledn´eho dokumentu b´ yv´a mnohon´asobnˇe vˇetˇs´ı neˇz pˇri sloˇzen´ı dokumentu tˇr´ıdou PTMergeService. Z tˇechto d˚ uvod˚ u je praktiˇctˇejˇs´ı pouˇz´ıvat tˇr´ıdu PTMergeService vˇzdy, kdyˇz nem´a syst´em probl´em s v´ ykonem.
65
10 Zhodnocen´ı pˇr´ınosu implementovan´ ych elektronick´ ych podpis˚ uaˇ casov´ ych raz´ıtek Zhodnocen´ı v´ ysledk˚ u implementace elektronick´ ych podpis˚ u a ˇcasov´ ych raz´ıtek nen´ı smˇerodatn´e prov´adˇet na z´akladˇe mˇeˇren´ı doby bˇehu ani velikosti v´ ysledn´eho raz´ıtka. Mnohem d˚ uleˇzitˇejˇs´ı je posuzovat je z hlediska ovˇeˇritelnosti platnosti, z hlediska dostupnosti n´astroj˚ u pro ovˇeˇren´ı a z hlediska jedineˇcnosti.
10.1
XmlDsigService
V kapitole 6.3.6 jsem popsal, ˇze tato tˇr´ıda poskytuje intern´ı podpis DOCX dokument˚ u ve form´atu XMLDSig pomoc´ı standardn´ıch knihoven platformy .NET. XMLDSig je jednoduch´ y form´at elektronick´eho podpisu, kter´ y neumoˇzn ˇuje vkl´ad´an´ı ˇcasov´ ych raz´ıtek, digit´aln´ıch certifik´at˚ u ani revokaˇcn´ıch list˚ u. Jeho vyuˇzit´ı je v praxi moˇzn´e, ale kv˚ uli komplikovan´emu ovˇeˇren´ı platnosti nen´ı pˇr´ıliˇs vhodn´e. Uˇzivatel, kter´ y dokument ovˇeˇruje, mus´ı posuzovat platnost certifik´atu digit´aln´ıho podpisu v˚ uˇci okamˇziku podepisov´an´ı, nebo m´ıt k dispozici samostatnˇe uloˇzen´e ˇcasov´e raz´ıtko. Z´aroveˇ n bude muset zjiˇst’ovat, zda nedoˇslo k revokaci certifik´atu z jin´ ych zdroj˚ u neˇz z obsahu elektronick´eho podpisu, coˇz znemoˇzn ˇuje ovˇeˇren´ı platnosti s delˇs´ım ˇcasov´ ym odstupem, pokud by uˇz tyto informace certifikaˇcn´ı autorita neposkytovala a uˇzivatel by si nevedl jejich z´aznamy. D˚ uvodem, proˇc se t´ımto typem podpisu v˚ ubec zab´ yvat je to, ˇze je moˇzn´e jej poskytnout standardn´ımi prostˇredky. Z´aroveˇ n existuje n´astroj, kter´ y jej dok´aˇze ovˇeˇrit - Microsoft Word. Ovˇeˇren´ı podpisu v aplikaci Microsoft Word se vˇsak liˇs´ı podle pouˇzit´e verze t´eto aplikace. Microsoft Word 2007 kontroluje pouze integritu dokumentu a neˇreˇs´ı d˚ uvˇeryhodnost certifik´atu, pomoc´ı kter´eho byl podpis vystaven. Microsoft Word 2010 kontroluje i d˚ uvˇeryhodnost certifik´atu, podle t´eto aplikace je ale podpis poskytnut´ y tˇr´ıdou XmlDsigService vyhodnocov´an jako ˇc´asteˇcn´ y“. Pˇr´ınos t´eto tˇr´ıdy je proto celkem ” mal´ y – z hlediska funkcionality nepˇrin´aˇs´ı nic nov´eho (tato implementace je uˇz zn´am´a), z hlediska ovˇeˇrov´an´ı jej n´astroje ˇca´steˇcnˇe podporuj´ı a k archivaci
66
Pˇr´ınos implementace el. podpisu a ˇcasov´ych raz´ıtek
XadesService
dokumentu se rozhodnˇe nehod´ı.
10.2
XadesService
Tˇr´ıda XadesService poskytuje zcela odliˇsn´ y pˇr´ıstup neˇz tˇr´ıda XmlDsigService. Je urˇcena k tvorbˇe externˇe ukl´adan´eho elektronick´eho podpisu ve form´atu XAdES v u ´rovn´ıch (T, C, X, X-L). Umoˇzn ˇuje tak vkl´ad´an´ı ˇcasov´ ych raz´ıtek, odkazy na digit´aln´ı certifik´aty cel´eho certifikaˇcn´ıho ˇretˇezce a na revokaˇcn´ı listy, dokonce i hodnoty tˇechto certifik´at˚ u a revokaˇcn´ıch list˚ u. T´ımto zp˚ usobem ˇreˇs´ı probl´emy s ovˇeˇren´ım podpisu, kter´e vznikaj´ı pˇri pouˇzit´ı jednoduch´eho form´atu XMLDSig. Na rozd´ıl od form´atu XMLDSig ovˇeˇrov´an´ı podpisu typu XAdES podporuje aplikace Microsoft Word aˇz od verze 2010 a to pouze internˇe pˇripojovan´e podpisy tohoto typu. Moj´ı p˚ uvodn´ı myˇslenkou bylo implementovat podpis ve form´atu XAdES tak´e jako intern´ı podpis, aby bylo moˇzn´e jej ovˇeˇrit v aplikaci Word. Tato myˇslenka byla implementov´ana, ale aplikace Word podpis vyhodnocovala jako nevalidn´ı (neshodoval se hash dokumentu), z tohoto v´ ysledku vˇsak nebylo dohledateln´e, ve kter´e ˇca´sti podpisu se vyskytoval probl´em. Porovn´av´an´ım s podpisem, kter´ y vytv´aˇr´ı aplikace Word, jsem zjistil, ˇze jednotliv´e ˇc´asti dokumentu (document parts) mˇely shodnou hodnotu hash v obou podpisech a ˇze zde probl´em patrnˇe nebyl. Dalˇs´ı souˇca´st´ı intern´ıho podpisu jsou odkazy na ˇca´sti dokumentu a ˇc´ast XAdES podpisu samotn´eho. Tyto ˇc´asti, kter´e jsou ve form´atu XML, nejsou podepisov´any jako celek, ale jsou nad nimi prov´adˇeny transformace pro v´ ybˇer podepisovan´ ych element˚ u (Relationship Transform) a transformace pro standardizaci form´atu XML (C14N Transform). Aˇckoliv jsem tyto transformace aplikoval tak, jak je pops´ano v ECMA specifikaci form´atu OpenXML, v´ ysledn´ y hash se vˇzdy liˇsil oproti hash vypoˇcten´emu v podpisu aplikace Word. Bohuˇzel nebylo moˇzn´e porovnat v´ ysledn´a XML, ze kter´ ych byl vypoˇcten hash, protoˇze se toto XML po aplikovan´ ych transformac´ıch nikde neukl´ad´a. Dalˇs´ım m´ıstem, ve kter´em se podpis tˇr´ıdy XadesService neshodoval s podpisem vytv´aˇren´ ym v aplikaci Word, bylo poˇrad´ı jednotliv´ ych referenc´ı na jednotliv´e podepisovan´e ˇca´sti. Podle ECMA specifikace (Open Packaging Conventions) by mˇely b´ yt reference v podpisu ˇrazeny v abecedn´ım poˇrad´ı, v podpisu vytvoˇren´em aplikac´ı Word jsou vˇsak ukl´ad´any neˇrazen´e (nebo ˇra-
67
Pˇr´ınos implementace el. podpisu a ˇcasov´ych raz´ıtek
XadesService
zen´e podle jin´eho kl´ıˇce). Ot´azkou je, zda jin´e poˇrad´ı referenc´ı uvnitˇr podpisu m˚ uˇze m´ıt vliv na ovˇeˇrov´an´ı podpisu. Po vznesen´ı dotazu, jak´ ym postupem jsou aplikov´any transformace na ˇca´sti rels v aplikaci Word, na v´ yvoj´aˇrsk´em f´oru MSDN zamˇeˇren´em na form´at OpenXML jsem byl Microsoft v´ yvoj´aˇri odk´az´an na obecnou literaturu o OpenXML a z´aroveˇ n mi bylo sdˇeleno, ˇze implementace form´atu XAdES je ˇreˇsen´ım, ke kter´emu Microsoft neposkytuje podporu. Pˇri zkoum´an´ı intern´ıho podpisu typu XAdES, kter´ y vytv´aˇr´ı aplikace Word, jsem narazil na znaˇcn´e nedostatky t´eto implementace. Mezi ˇc´astmi dokumentu, kter´e jsou do podpisu zahrnuty, chyb´ı napˇr´ıklad metadata. Absence tˇechto dat uvnitˇr podpisu se mi jev´ı jako zcela z´asadn´ı probl´em. V podepsan´em dokumentu m˚ uˇze napˇr´ıklad kdokoliv zmˇenit autora a podpis dokumentu bude st´ale validn´ı. Kv˚ uli vˇsem v´ yˇse uveden´ ym d˚ uvod˚ um jsem se rozhodl pro implementaci externˇe ukl´adan´eho XAdES podpisu. Ten m´a stejnou strukturu jako XAdES intern´ı, je ukl´ad´an do samostatn´eho souboru a v referenc´ıch obsahuje URI podepisovan´eho dokumentu. Nev´ yhodou tohoto form´atu je pouze slab´a podpora v oblasti n´astroj˚ u na ovˇeˇren´ı platnosti. Z tohoto d˚ uvodu tak´e vznikla aplikace na ovˇeˇren´ı platnosti podpisu - XadesVerifyTool (viz kapitola 7.3). Lze oˇcek´avat, ˇze extern´ı XAdES podpisy budou st´ale popul´arnˇejˇs´ı. D˚ uvod˚ u je nˇekolik: ∙ XAdES podpis umoˇzn ˇuje pˇripojovat vˇsechny potˇrebn´e n´aleˇzitosti pro automatizovan´e ovˇeˇrov´an´ı podpisu, bez nutnosti z´ısk´avat jak´ekoliv extern´ı informace. ∙ Externˇe ukl´adan´ y XAdES podpis umoˇzn ˇuje podpis soubor˚ u v jak´ ychkoliv form´atech a podepisov´an´ı nˇekolika soubor˚ u najednou. ∙ Z´akon o elektronick´em podpisu a z´akon o spisov´e sluˇzbˇe a archivnictv´ı zahrnuj´ı form´at XAdES mezi form´aty podpisu, kter´e mus´ı b´ yt akceptov´any org´any st´atn´ı spr´avy. V budoucnu doporuˇcuji rozˇs´ıˇrit ˇreˇsen´ı o u ´roveˇ n archivaˇcn´ı (XAdES-A), kter´a poˇc´ıt´a s pˇrid´av´an´ım archivn´ıch raz´ıtek. Podpis typu XAdES-A lze vytvoˇrit z jiˇz existuj´ıc´ıho form´atu XAdES-X-L. Celkov´ y pˇr´ınos tˇr´ıdy XadesService shled´av´am v tom, ˇze implementace takov´eho ˇreˇsen´ı nebyla dosud nikde publiˇ sen´ı totiˇz vyuˇz´ıv´a knihovnu Microsoft.Xades, kter´a je v tuto chv´ıli kov´ana. Reˇ 68
Pˇr´ınos implementace el. podpisu a ˇcasov´ych raz´ıtek
XadesService
patrnˇe nejkvalitnˇejˇs´ı open source knihovna pro pr´aci s XAdES podpisy, kterou z´aroveˇ n rozˇsiˇruji o moˇznost tvorby podpisu pro soubory zpracov´avan´e jako datov´e proudy a o moˇznost z´ısk´avat revokaˇcn´ı listy pomoc´ı HTTP protokolu.
69
11 Z´avˇer Prvn´ım u ´kolem bylo prozkoumat dokumentov´e form´aty, kter´e jsou vhodn´e pro automatick´e skl´ad´an´ı dokument˚ u na platformˇe .NET, kter´e jsou z´aroveˇ n vhodn´e pro dalˇs´ı uˇzivatelskou manipulaci a kter´e umoˇzn ˇuj´ı pˇripojov´an´ı elektronick´ ych podpis˚ u a ˇcasov´ ych raz´ıtek. Tento u ´kol jsem naplnil. Mezi zkouman´e form´aty jsme urˇcil tˇechto pˇet z´astupc˚ u – PDF, OOXML (respektive DOCX), ODF (resp. ODT), XSL-FO a RTF. Po jejich prozkoum´an´ı a n´asledn´e anal´ yze se mezi nejl´epe hodnocen´e form´aty podle krit´eri´ı uveden´ ych v kapitole 2.1 dostaly form´aty OOXML a PDF. Ve speci´aln´ıch pˇr´ıpadech bych doporuˇcil tak´e ODF a XSL-FO. Po konzultaci se zadavatelem byl pro implementaci urˇcen form´at OOXML. D´ale byly pˇredstaveny principy elektronick´ ych podpis˚ u a ˇcasov´ ych raz´ıtek, vˇcetnˇe jejich pr´avn´ı platnosti. N´aslednˇe byla naznaˇcena aktu´aln´ı u ´roveˇ n podpory elektronick´eho podpisu v bˇeˇznˇe pouˇz´ıvan´ ych aplikac´ıch. Na z´avˇer byly uvedeny pokroˇcil´e dokumentov´e form´aty jako vhodn´a u ´loˇziˇstˇe pro ukl´ad´an´ı kompletn´ı informace o elektronick´em podpisu. N´asledn´ ym u ´kolem bylo vytvoˇrit ˇreˇsen´ı automatick´eho skl´ad´an´ı a plnˇen´ı dokumentu a pˇripojov´an´ı elektronick´ ych podpis˚ u a ˇcasov´ ych raz´ıtek. Pro splnˇen´ı tohoto u ´kolu jsem nejprve vytvoˇril ˇreˇsen´ı ve smyslu modulu, kter´ y poskytuje zm´ınˇenou funkcionalitu, je snadno rozˇsiˇriteln´ y a konfigurovateln´ y. Skl´ad´an´ı dokumentu z jiˇz existuj´ıc´ıch dokument˚ u jsem implementoval dvˇema r˚ uzn´ ymi zp˚ usoby, kter´e jsou zcela odliˇsn´e a kaˇzd´ y z nich m´a specifick´e vlastnosti, kter´e byly potvrzeny testov´an´ım v kapitole 9.1. Plnˇen´ı dokumentu textem bylo implementov´ano pouze jedn´ım zp˚ usobem. N´aslednˇe jsem testoval, jak´ y je rozd´ıl doby bˇehu plnˇen´ı, pokud pln´ım d´ılˇc´ı soubory a ty pot´e skl´ad´am, nebo pokud nejprve vytvoˇr´ım jeden sloˇzen´ y soubor a na z´avˇer jej napln´ım textem. Podepisov´an´ı dokumentu elektronick´ ym podpisem bylo implementov´ano dvˇema r˚ uzn´ ymi zp˚ usoby. Prvn´ı zp˚ usob poskytuje z´akladn´ı tvorbu elektronick´eho podpisu ve form´atu XMLDSig, jak je pouˇz´ıv´ano v aplikaci Microsoft Word 2007. Druh´a implementace umoˇzn ˇuje vytv´aˇret externˇe ukl´adan´ y podpis v pokroˇcil´em form´atu XAdES (T, C, X a X-L). Nakonec byla hodnocena pouˇzitelnost obou ˇreˇsen´ı v praxi a dalˇs´ı moˇzn´a rozˇs´ıˇren´ı. Nad r´amec zad´an´ı diplomov´e pr´ace jsem navrhl a naimplementoval integraci modulu do syst´emu pro spr´avu dokument˚ u SharePoint 2010 (ve verzi Standard). Pˇredvedl jsem tak pouˇzit´ı modulu jako souˇca´st webov´e aplikace. 70
Literatura [1] The incredible persistence of email [online]. Cite World [cit. 2.5.2013] Dostupn´e z: http://www.citeworld.com/business/21082/email-persistssocial-collaboration [2] Email Statistics Report[online]. Radicati Group [cit. 2.5.2013] Dostupn´e z: http://www.radicati.com/wp/wpcontent/uploads/2012/04/Email-Statistics-Report-2012-2016Executive-Summary.pdf ´ [3] Uvod do spr´avy dokument˚ u[online]. Microsoft [cit. 2.5.2013] Dostupn´e z: http://office.microsoft.com/cs-cz/sharepoint-serverhelp/uvod-do-spravy-dokumentu-HA010241399.aspx?CTT=1 [4] Dobˇre zvl´adnut´a implementace DMS usnadˇ nuje pr´aci a ˇsetˇr´ı ˇcas[online]. SystemOnLine.cz [cit. 2.5.2013] Dostupn´e z: http://www.systemonline.cz/sprava-dokumentu/dobrezvladnuta-implementace-dms-setri-cas.htm [5] ORION, Egan, PDF 1.7 is approved as ISO 32000, 2007 [online]. The Inquirer [cit. 2.5.2013] Dostupn´e z: http://www.theinquirer.net/inquirer/news/1030411/pdfapproved-iso-32000 [6] AIIM to Facilitate ISO Standards Process for Leading Electronic Document Format, 2007 [online]. Adobe Systems [cit. 2.5.2013] Dostupn´e z: http://www.adobe.com/aboutadobe/pressroom/pressreleases /200701/012907OpenPDFAIIM.html [7] Adobe PDF 101 — Quick overview of PDF file format[online]. Adobe Systems [cit. 2.5.2013] Dostupn´e z: http://partners.adobe.com/public/developer/tips /topic tip31.html 71
LITERATURA
LITERATURA
[8] Introducing the Office (2007) Open XML File Formats, 2006 [online]. MSDN [cit. 2.5.2013] Dostupn´e z: http://msdn.microsoft.com/enus/library/office/aa338205(v=office.12).aspx [9] Open Document Format for Office Applications (OpenDocument) v1.0, 2005 [online] OASIS Standard [cit. 2.5.2013] Dostupn´e z: https://www.oasis-open.org/committees/download.php /12572/OpenDocument-v1.0-os.pdf [10] NNEC Core Enterprise Services.[online] NATO Interoperability Standards & Profiles [cit. 2.5.2013] Dostupn´e z: http://nhqc3s.nato.int/architecture/ docs/NISPv2/ volume2/ch03s04.html [11] HOLMAN, Ken G., What Is XSL-FO, 2002 [online] O’Reilly’s XML.com [cit. 2.5.2013] Dostupn´e z: http://www.xml.com/pub/a/2002/03/20/xsl-fo.html [12] Extensible Stylesheet Language (XSL) Version 1.1, 2006 [online] W3C Recommendation [cit. 2.5.2013] Dostupn´e z: http://www.w3.org/TR/xsl11/ [13] Changes in Word 2010 (for ITPros), 2010 [online] Microsoft TechNet [cit. 2.5.2013] Dostupn´e z: http://technet.microsoft.com/enus/library/cc179199.aspx#BKMK Changed [14] Rich Text Format (RTF) Specification, version 1.6, 1999 [online] MSDN [cit. 2.5.2013] Dostupn´e z: http://msdn.microsoft.com/enus/library/aa140277(v=office.10).aspx [15] Z´akon ˇc. 227/2000 Sb., o elektronick´em podpisu, 2012 [online] Ministerˇ [cit. 2.5.2013] stvo vnitra CR Dostupn´e z: http://www.mvcr.cz/soubor/zakon-c-227-2000-sb-oelektronickem-podpisu.aspx [16] Peterka Jiˇr´ı, RNDr. Ing, B´ajeˇcn´y svˇet elektronick´eho podpisu, 2011, CZ.NIC, z.s.p.o.,1. vyd´an´ı. ISBN: 978-80-904248-3-8 [17] Informace o produktu (Microsoft SharePoint 2010 [online] Microsoft [cit. 2.5.2013] 72
LITERATURA
LITERATURA
Dostupn´e z: http://sharepoint.microsoft.com/cscz/product/capabilities/Pages/default.aspx [18] FOWLER, Martin, Inversion of Control Containers and the Dependency Injection pattern, 2004 [online] [cit. 2.5.2013] Dostupn´e z: http://martinfowler.com/articles/injection.html [19] WHITE, Eric, Search and Replace Text in an Open XML WordprocessingML Document, 2011 [online] OpenXMLDeveloper.org [cit. 2.5.2013] Dostupn´e z: http://openxmldeveloper.org/blog/b/openxmldeveloper /archive/2011/05/12/148357.aspx
73
A Pˇr´ıloha - Uˇzivatelsk´a dokumentace A.1
MergeSignApp
Je aplikace, kter´a slouˇz´ı k testov´an´ı funkcionality knihovny MergeSignModul. Tato aplikace je spustiteln´a z bin∖MergeSignApp∖MergeSignApp.exe. Pˇred spuˇstˇen´ım doporuˇcuji prov´est konfiguraci modulu pomoc´ı aplikace MergeSignModulConfig.exe (z t´ehoˇz adres´aˇre). Nejd˚ uleˇzitˇejˇs´ım nastaven´ım je v´ ybˇer certifik´atu (na z´aloˇzce Nastaven´ı podpisu), kter´ y bude pouˇz´ıv´an k tvorbˇe elektronick´eho podpisu. Aplikace je otestov´ana v prostˇred´ı Windows 7 Professional (64-bit) a pˇredpokl´ad´a nainstalovan´ y .NET Frawork 4.0 nebo vyˇsˇs´ı. Samotn´e pouˇzit´ı programu je intuitivn´ı. Program umoˇzn ˇuje vybrat a seˇradit ˇsablony vytv´aˇren´eho souboru. Minim´aln´ı mnoˇzstv´ı je jedna ˇsablona, maxim´aln´ı poˇcet nen´ı nijak omezen´ y. D´ale je moˇzn´e zadat parametry ve form´atu XML. Jeho XSD naleznete v pˇr´ıloze B.
A.2
XadesVerifyTool
Je aplikace, kter´a slouˇz´ı k testov´an´ı validity podpisu. Lze jsi spustit z bin∖XadesVerifyTool∖XadesVerifyTool.exe. Po spuˇstˇen´ı zvolte Vyber a ovˇeˇr podpis a n´aslednˇe vyberte XML soubor, ve kter´em je uloˇzen extern´ı podpis (podepisovan´ y dokument mus´ı b´ yt dostupn´ y v t´eˇze sloˇzce). Pokud validace neprobˇehla u ´spˇeˇsnˇe, budete informov´ani dialogov´ ym oknem s textem v´ yjimky. Aplikace je otestov´ana v prostˇred´ı Windows 7 Professional (64-bit).
A.3
TestTimeToOpenDocument
Je doplnˇek aplikace Microsoft Word 2010, kter´ y slouˇz´ı k testov´an´ı doby otev´ır´an´ı dokumentu v aplikaci Microsoft Word 2010. Spust’te instalaci z bin∖TestTimeToOpenDocument∖setup.exe a potvrd’te Install. Doplnˇek se automaticky spouˇst´ı s aplikac´ı Word. Pozn´amka: Pokud byla aplikace Word otevˇrena nad nov´ym dokumentem, je nutn´e pˇred pouˇzit´ım tlaˇc´ıtka Otevˇ ri a zmˇ eˇ r prov´est nejprve jakoukoliv zmˇenu dokumentu (jinak by se 74
Pˇr´ıloha - Uˇzivatelsk´a dokumentace
SPMergeSign
p˚ uvodn´ı aplikace zavˇrela a v´ysledky mˇeˇren´ı by se nezobrazily). Pro odinstalov´an´ı doplˇ nku jdˇete na Start -> Ovl´ adac´ı panely -> Progamy a funkce. Vyberte TestTimeToOpenDocument a zvolte Odinstalovat. Aplikace je otestov´ana v prostˇred´ı Windows 7 Professional (64-bit).
A.4
SPMergeSign
Struˇcn´ y postup nasazen´ı ˇreˇsen´ı je pops´an pro operaˇcn´ı syst´em Windows ˇ sen´ı zahrnuje tak´e zkr´acen´ Server 2008 R2 Standard. Reˇ y popis instalace SharePoint Serveru. Instalaci je moˇzn´e prov´est i na operaˇcn´ı syst´em Windows 7, ˇci Windows Vista, avˇsak nejedn´a se o standardn´ı instalaci a je ˇ ast z nich je pops´ana na webu MSDN nutn´e prov´est ˇradu dalˇs´ıch krok˚ u. C´ (http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx). Budu pˇredpokl´adat, ˇze je na c´ılov´em stroji novˇe nainstalovan´ y Windows Server R2 2008 Standard (English). N´avod popisuje instalaci SharePoint Server 2010 SP1 64bit (Czech), kter´a je pro v´ yukov´e u ´ˇcely dostupn´a z programu MSDNAA.
A.4.1
Instalace SharePoint serveru
1. Nainstalujte WCF Hotfix. Pro Windows Server 2008 R2 je ke staˇzen´ı zde: http://go.microsoft.com/fwlink/?LinkID=166231 (m˚ uˇze se st´at, ˇze tato oprava je na vaˇsem serveru jiˇz nainstalov´ana, v tom pˇr´ıpadˇe bude instal´ator ukonˇcen). 2. Nainstalujte ADO.NET Data Services Update for .NET Framework 3.5 SP1. Pro Windows Server 2008 R2 je ke staˇzen´ı zde: http://go.microsoft.com/fwlink/?LinkId=163524 (m˚ uˇze se st´at, ˇze tato oprava je na vaˇsem serveru jiˇz nainstalov´ana, v tom pˇr´ıpadˇe bude instal´ator ukonˇcen). 3. Pˇred samotnou instalac´ı SharePoint Server 2010 nainstalujte pˇredpokl´adan´e souˇca´sti syst´emu. Ty je moˇzn´e nainstalovat pomoc´ı PrerequisiteInstaller.exe, kter´ y je dostupn´ y na instalaˇcn´ım m´ediu SharePoint Server 2010. Tento instal´ator je moˇzn´e pouˇz´ıt pouze pro operaˇcn´ı syst´emy Windows Server 2010 SP2 a Windows Server 2010 R2. Na syst´emech Windows 7 a Vista je nutn´e tyto pˇredpokl´adan´e souˇca´sti nainstalovat jin´ ym zp˚ usobem. 75
Pˇr´ıloha - Uˇzivatelsk´a dokumentace
SPMergeSign
4. Nyn´ı m˚ uˇzete spustit instalaci SharePoint Server 2010. Na instalaˇcn´ım m´ediu spust’te Setup.exe. 5. Pˇrijmˇete licenˇcn´ı podm´ınky a zvolte typ instalace Samostatnˇ e. 6. Dokonˇcete instalaci a povolte spuˇ stˇ en´ı konfiguraˇ cn´ı utility.
A.4.2
Nasazen´ı ˇ reˇ sen´ı
1. Otevˇre se uv´ıtac´ı obrazovka nov´e SharePoint instance, kter´a vyb´ız´ı k v´ ybˇeru ˇsablony webu. Pˇrejdˇete odkazem do Galerie ˇ reˇ sen´ı, otevˇrete ˇ z´aloˇzku Reˇ sen´ı a zvolte poloˇzku Nahr´ at ˇ reˇ sen´ı. Vyberte pˇriloˇzen´e ˇreˇsen´ı bin∖SharePoint∖sablona sp dp.wsp a potvrd’te nahr´an´ı. Ujistˇete se, ˇze je ˇreˇsen´ı aktivov´ano. 2. Pˇrejdˇete zpˇet na domovskou str´anku, kter´a v´am v tuto chv´ıli nab´ız´ı v´ ybˇer ˇsablony webu. Pˇrejdˇete na z´aloˇzku Vlastn´ı, vyberte ˇsablonu sab´spˇeˇsn´e, lona sp dp a potvrd’te volbu. Pokud bude nastaven´ı ˇsablony u budete pˇresmˇerov´ani na Dom´ ac´ı str´ anku pˇrednastaven´eho webu. 3. Nyn´ı je potˇreba nasadit ˇreˇsen´ı SPMergeSign. Z´aroveˇ n nasad´ıte ˇreˇsen´ı, kter´e umoˇzn ˇuje mˇenit nastaven´ı hodnot v Property Bag. Obˇe ˇreˇsen´ı jsou farmov´eho typu“, proto je nutn´e je do farmy nahr´at pomoc´ı SharePoint ” 2010 Management Shell. 4. Spust’te Start -> All programs -> Microsoft SharePoint 2010 Products -> Prostˇ red´ı SharePoint 2010 Management Shell. 5. Zadejte pˇr´ıkaz Add-SPSolution –LiteralPath
(bal´ık je um´ıstˇen na DVD v adres´aˇri bin∖SharePoint∖). 6. Zadejte pˇr´ıkaz Add-SPSolution –LiteralPath (bal´ık je um´ıstˇen na DVD v adres´aˇr bin∖SharePoint∖). 7. Nyn´ı m˚ uˇzete obˇe ˇreˇsen´ı spustit na SharePoint farmˇe. To lze prov´est z administr´atorsk´eho rozhran´ı aplikace, kter´e spust´ıte: Start -> All programs -> Microsoft SharePoint 2010 Products -> Centr´ aln´ı spr´ ava sluˇ zby SharePoint 2010.
76
Pˇr´ıloha - Uˇzivatelsk´a dokumentace
SPMergeSign
8. Pˇrejdˇete na Syst´ emov´ e nastaven´ı -> Spravovat ˇ reˇ sen´ı farmy. Zde kliknˇete na propertybagsettings2010.wsp a zvolte Nasadit ˇ reˇ sen´ı. Vyberte nasadit nyn´ı a potvrd’te OK. 9. Opakujte pˇredchoz´ı krok pro spmergesign.wsp. 10. Pokud probˇehlo nasazen´ı u ´spˇeˇsnˇe, uvid´ıte stav nasazen´ ych ˇreˇsen´ı Glob´ alnˇ e nasazeno. 11. Pˇrejdˇete na domovskou str´anku ShrarePoint site (defaultnˇe je pouˇzit shodn´ y n´azev stroje, jako u centr´aln´ıho nastaven´ı, port 80). Zde zvolte v lev´e horn´ı ˇc´asti okna Akce webu -> Nastaven´ı webu. Vyberte Spravovat funkce webu (pod kategori´ı Akce webu) 12. Aktivujte funkci SPMergeSign Feature1.
A.4.3
Ovl´ ad´ an´ı SPMergeSign
1. Nyn´ı m˚ uˇzete vytv´aˇret dokumenty z existuj´ıc´ıch seznam˚ u. Pˇr´ıkladem je Seznam zamˇ estnanc˚ u. Vyvolejte kontextov´ e menu nad poloˇ zkou a zvolte Vytvoˇ r dokument. 2. Pˇri prvn´ım vytv´aˇren´ı dokumentu budete vyzv´ani k zad´an´ı knihovny, kter´a bude slouˇzit pro vstupy a v´ ystupy pˇri vytv´aˇren´ı dokument˚ u (defaultnˇe Sd´ılen´ e dokumenty), sloˇzku knihovny, ve kter´e budou uloˇ ˇzeny ˇsablony (defaultnˇe Sablony) a sluˇzbu, kam se budou ukl´adat vytvoˇren´e soubory (defaultnˇe V´ ystupy). 3. Nyn´ı vyberte ˇsablony, kter´e chcete plnit a spojovat a potvrd’te. Pokud chcete dokument z´aroveˇ n podepsat, mus´ıte si nastavit certifik´at, kter´ y chcete k podpisu pouˇz´ıt).
A.4.4
Nastaven´ı podpisu SPMergeSign
1. Spust’te Start -> MMC.exe. Zvolte File -> Add/Remove SnapIn. Pˇridejte poloˇzku Certificates. Vyberte moˇznost Computer account a n´aslednˇe zvolte Local Computer. Potvrd’te Finish a n´aslednˇe OK. 2. V lev´em sloupci pˇrejdˇete na Certificates -> Personal -> Certificates. V prostˇredn´ı ˇca´sti okna se v´am zobraz´ı jiˇz nainstalovan´e certifik´aty. 77
Pˇr´ıloha - Uˇzivatelsk´a dokumentace
SPMergeSign
Defaultnˇe by mˇel b´ yt alespoˇ n jeden certifik´at serveru nainstalovan´ y. Pokud ne, budete si jej muset nejprve vytvoˇrit (nebo z´ıskat) a pot´e naimportovat. 3. Dvojklikem na certifik´at otevˇrete detaily. V z´aloˇzce Details zkop´ırujte poloˇzku serial number. 4. Pˇrejdˇete na SharePoint str´ank´ach do nastaven´ı. Akce webu -> Nastaven´ı webu -> Property Bag Settings. Upravte poloˇzku spmergesign signaturecertificate – vloˇzte tam zkop´ırovan´e s´eriov´e ˇc´ıslo certifik´atu (bez mezer). 5. Nyn´ı m˚ uˇzete testovat skl´ad´an´ı vˇcetnˇe pˇripojov´an´ı elektronick´eho podpisu. Dalˇs´ı nastaven´ı m˚ uˇzete mˇenit takt´eˇz v Property Bag (n´azvy vˇsech poloˇzek nastaven´ı SPMergeSign zaˇc´ınaj´ı spmergesign ).
78
B Pˇr´ıloha - XSD Pro moˇznost vytv´aˇren´ı vlastn´ıch XML soubor˚ u, jejichˇz pˇr´ıklady jsou k pr´aci pˇriloˇzeny, uv´ad´ım jejich XSD sch´emata. Tato sch´emata naleznete na pˇriloˇzen´em m´ediu ve sloˇzce doc∖XSD∖.
B.1
Config.xsd
Toto XSD definuje strukturu XML konfiguraˇcn´ıho souboru knihovny MergeSignModul.
<xs:schema id="Config" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="Config" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Settings"> <xs:complexType> <xs:sequence> <xs:element name="SignService" type="xs:string" minOccurs="1" /> <xs:element name="LoadTagService" type="xs:string" minOccurs="1" /> <xs:element name="FillService" type="xs:string" minOccurs="1" /> <xs:element name="MergeService" type="xs:string" minOccurs="1" /> <xs:element name="SignatureCertificate" type="xs:string" minOccurs="0" /> <xs:element name="TimeStampAthorityUrl" type="xs:string" minOccurs="0" /> <xs:element name="Country" type="xs:string" minOccurs="0" /> <xs:element name="PostalCode" type="xs:string" minOccurs="0" /> <xs:element name="Province" type="xs:string" minOccurs="0" /> <xs:element name="City" type="xs:string" minOccurs="0" /> <xs:element name="CrlUri" type="xs:string" minOccurs="0" /> <xs:element name="Role" type="xs:string" minOccurs="0" /> <xs:element name="TimeStampX" type="xs:string" minOccurs="0" /> <xs:element name="XadesLevel" type="xs:string" minOccurs="0" />
79
Pˇr´ıloha - XSD
B.2
Params.xsd
Params.xsd
Toto XSD definuje strukturu XML souboru, kter´ y nese informace o parametrech plnˇen´ı pro aplikaci MergeSignApp.
<xs:schema id="Params" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="Params" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Param"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" minOccurs="1" /> <xs:element name="Value" type="xs:string" minOccurs="1" />
80
C Pˇr´ıloha - V´ysledky test˚ u v grafech
Obr´azek C.1: Graf ˇcasu skl´ad´an´ı dokumentu v z´avislosti na poˇctu spojovan´ych dokument˚ u (zdroj: autor).
Z prvn´ıho grafu (Obr´azek C.1) je patrn´e, ˇze doba skl´ad´an´ı dokumentu pomoc´ı tˇr´ıdy DocumentBuilder (PTMergeService) je mnohon´asobnˇe pomalejˇs´ı, neˇz pˇri pouˇzit´ı altChunk kotev a importu obsahu (AltChunkMergeService). Pokud tak´e budeme dokument plnit daty, jsou tyto rozd´ıly zanedbateln´e (graf na obr´azku C.2). Doba plnˇen´ı v z´avislosti na velikosti ˇsablony pˇredstavuje hrozbu, kterou lze obej´ıt plnˇen´ım d´ılˇc´ıch soubor˚ u a jejich n´asledn´ ym spojov´an´ım (graf na obr´azku C.3). Grafy na obr´azc´ıch C.4 a C.5 demonstruj´ı v´ yhodu pouˇzit´ı tˇr´ıdy DocumentBuilder ve velikosti v´ ysledn´eho souboru a doby jeho otev´ır´an´ı aplikac´ı Microsoft Word 2010.
81
Pˇr´ıloha - Grafy
Obr´azek C.2: Graf ˇcasu skl´ad´an´ı a plnˇen´ı dokumentu v z´avislosti na poˇctu spojovan´ych dokument˚ u (zdroj: autor).
Obr´azek C.3: Graf ˇcasu plnˇen´ı dokumentu v z´avislosti na poˇctu znak˚ u ˇsablony (zdroj: autor).
82
Pˇr´ıloha - Grafy
Obr´azek C.4: Graf velikosti v´ysledn´eho dokumentu v z´avislosti na velikosti vstupn´ıch dokument˚ u (zdroj: autor).
Obr´azek C.5: Graf doby otev´ır´an´ı dokumentu v z´avislosti na poˇctu spojovan´ych dokument˚ u (zdroj: autor).
83