1 Sem vložte zadání Vaší práce.2 3 České vysoké učení technické v Praze Fakulta informačních technologií katedra počítačových systémů Bakalářská práce...
České vysoké učení technické v Praze Fakulta informačních technologií katedra počítačových systémů
Bakalářská práce
Integrace Google Apps Luboš Palíšek
Vedoucí práce: Bílý Martin Ing.
10. května 2013
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona.
V Praze dne 10. května 2013
.....................
České vysoké učení technické v Praze Fakulta informačních technologií c 2013 Luboš Palíšek. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Palíšek, Luboš. Integrace Google Apps. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2013.
Abstract In this bachelor thesis I focused on cloud-based office suite Google Apps and its integration into existing ICT enviroment. I describe characteristics and options of Google Apps from the administrator’s point of view. In practice I deal with deployment and integration of applications for particular secondary school. My objective is making Google Apps easy to use for employees. There is an implementation of a synchronizing tool for software Bakaláři included. The reader can use this thesis as a manual for integrating Google Apps in his own organisation, especially primary or secondary school. Keywords Google Apps, cloud application, Office 365, online office
vii
Abstrakt V této bakalářské práci se věnuji balíku cloudových kancelářských služeb Google Apps a jejich začlenění do stávajícího ICT prostředí organizace. Z pohledu administrátora služby popisuji vlastnosti a možnosti, které Google Apps nabízí. Na praktickém příkladu řeším nasazení a integraci jednotlivych aplikací do prostředí střední školy s ohledem na maximální provázanost se stávajícími aplikacemi a pracovními postupy zaměstnanců. Součástí práce je implementace synchronizačního nástroje mezi Google Apps a programem Bakaláři. Čtenářovi může text sloužit jako návod k integraci Google Apps do ICT prostředí, zejména střední nebo základní školy. Klíčová slova Google Apps, aplikace v cloudu, Office 365, online kancelář
viii
Obsah Úvod Motivace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Seznámení s Google Apps 1.1 Dostupné služby . . . . . . . . . 1.2 Vlastnosti účtu Google Apps . . 1.3 Bezpečnost dat v Google Apps . 1.4 Administrace Google Apps . . . 1.5 Řešení problémů s Google Apps 1.6 Migrace a synchronizace dat . .
. . . . . .
. . . . . .
2 Konkurenční řešení 2.1 Office 365 . . . . . . . . . . . . . . 2.2 Office 365 pro vzdělávání . . . . . . 2.3 Office 365 z pohledu uživatele . . . 2.4 Office 365 z pohledu administrátora
. . . . . .
. . . .
. . . . . .
. . . .
. . . . . .
. . . .
. . . . . .
. . . .
3 Integrace u klienta 3.1 Popis původní situace . . . . . . . . . . . . 3.2 Registrace a nastavení služby Google Apps 3.3 Implementace synchronizačního nástroje . 3.4 Migrace emailů, kalendářů a kontaktů . . . 3.5 Záloha souborů v Google Disk . . . . . . . 3.6 Změny na PC stanicích . . . . . . . . . . . 3.7 Školení uživatelů . . . . . . . . . . . . . . 3.8 Plány do budoucna . . . . . . . . . . . . . ix
Úvod V bakalářské práci budu popisovat způsob, jak integrovat službu Google Apps pro vzdělávání1 do prostředí střední školy. Mým hlavním cílem je dosáhnout spolehlivého a úzkého propojení nových aplikací se stávajícími systémy, které zaměstnanci běžně používají, abych z hlediska množství nových znalostí minimalizoval nároky na uživatele. Výsledná integrace bude vycházet z analýzy pracovních postupů a procesů fungujících na konkrétní střední škole. Domnívám se, že mé řešení bude možné aplikovat i na jiné organizace podobného charakteru. Nejprve se budu muset detailně seznámit s ICT prostředím střední školy a zároveň se všemi aplikacemi, které platforma Google Apps nabízí. Na základě toho rozhodnu, které služby, a jakým způsobem, budu integrovat. Dále zvážím možnost použití stávajících nástrojů pro správu a migraci dat a v případě potřeby navrhnu a naimplementuji vlastní. Během celého procesu integrace budu v kontaktu s vybranými zaměstnanci školy. Budu sledovat jejich pravidelné úkony a provedu změny v počítačové síti i na lokálních stanicích, které jim usnadní nové aplikace používat. Je velmi pravděpodobné, že v budoucnu dojde ke změně vlastností nebo podmínek užívání Google Apps. Práci na této bakalářské práci ukončím dne 30. dubna 2013, a proto veškeré uváděné informace budou platné k tomuto datu.
1
Google Apps pro vzdělávání (anglicky Google Apps For Education) je jedna z nabízených variant služby Google Apps a je určena pro použití ve školách.
1
Úvod
Motivace Téma integrace Google Apps jsem zvolil záměrně, neboť jsem se chtěl seznámit s používáním a činnostmi spojenými s administrací služeb provozovaných na vzdáleném serveru. Tato technologie se nazývá cloud computing2 a v současné době zažívá velký nárůst popularity. Studuji obor zaměřený na administraci počítačových systémů a sítí. Vzhledem k tomu, že jsem se s těmito technologiemi dosud nesetkal v žádném z absolvovaných předmětů, věřím, že práce pro mě bude přínosem. Mou hlavní motivací je zjistit, jak časově, technicky a organizačně náročný bude pro středně velkou organizaci přechod na nový systém. Zároveň bych si chtěl vyzkoušet a osvojit základní pravidla při migrování dat, nastavování služeb a současně zaučování a školení budoucích uživatelů.
2
Cloud – anglicky oblak. Výraz pro službu, která běží na fyzicky vzdálené skupině serverů a uživatel k ní přistupuje přes internet (například pomocí internetového prohlížeče).
2
Kapitola
Seznámení s Google Apps Americká společnost Google vyvíjí a provozuje kromě populárního internetového3 vyhledávače mnoho dalších celosvětově používaných služeb a aplikací. Mezi nejznámější patří například Gmail (emailový účet a klient), Google Disk (vzdálené úložiště souborů) a Google Dokumenty (vytváření a úprava dokumentů). Přístup k těmto službám může získat každý uživatel internetu, pokud si vytvoří účet na stránce http://accounts.google.com. Registrace i následné využívání účtu je bezplatné. Výhodou všech těchto služeb je jednoduchý přístup k datům z jakéhokoli počítače připojeného k internetu. Google Apps je komerční softwarový produkt, který se označuje termínem groupware. Takto nazývané produkty slouží k tomu, aby usnadnily skupině lidí efektivně pracovat na společném úkolu. Pro účinnou spolupráci je důležitá vzájemná komunikace, sdílení dat a koordinace činností jednotlivých pracovníků. Google Apps a další konkurenční nástroje se snaží tento problém řešit. Produkt Google Apps je komplexní sada služeb Google určených ke kancelářským potřebám, která je přizpůsobená pro snadné použití ve školách, firmách a dalších organizacích, neboť umožňuje její nasazení na vlastní doméně. Přístup uživatelů ke všem službám je opět zajištěn pomocí účtů Google, které v tomto případě vytváří sám administrátor Google Apps. Na rozdíl od běžného účtu spravovaného firmou Google, účet vytvořený ve službě Google Apps je pod kontrolou administrátora. Ten má možnost řídit jeho oprávnění a měnit jeho konfiguraci. V České Republice je služba Google Apps v současné době dostupná ve dvou verzích: Google Apps pro firmy a Google Apps pro vzdělávání. Registrace služby je zdarma, ale úspěšné založení služby je podmíněno vlastnic3
1. Seznámení s Google Apps tvím domény (v případě Google Apps pro firmy lze použít testovací doménu mygbiz.com). Hned po prvním přihlášení do administrátorského účtu se aktivuje třicetidenní zkušební lhůta, během níž se neúčtuje žádný poplatek. Po vypršení testovacího provozu je užívání Google Apps zpoplatněno. Velikost poplatku se odvíjí od počtu vytvořených uživatelských účtů. Za každý účet si Google účtuje 4 e měsíčně, případně 40 e za rok. Verze Google Apps pro vzdělávání je zcela zdarma, ale pro její aktivaci je nutné během zkušební lhůty prokázat, že služba bude využívána pro potřeby základní, střední nebo vysoké školy, případně neziskové organizace. Z hlediska funkcí a možností jsou obě verze shodné. V dalším textu budu psát o verzi Google Apps pro vzdělávání, pro kterou budu používat zkrácený název Google Apps.
1.1 1.1.1
Dostupné služby Gmail
Aplikace pro práci s emailovými zprávami se v Google Apps nazývá Gmail. Uživatelé ke zprávám přistupují přes online klienta za použití libovolného internetového prohlížeče. Pro práci bez internetového připojení lze použít offline klienta4 . V aplikaci Gmail je možné přijímat, odesílat a spravovat emaily včetně jejich příloh. Mezi velké výhody řadím jednoduché grafické rozhraní, kvalitní filtr nevyžádaných zpráv, snadnou synchronizaci s mobilním operačním systémem Android. Gmail je stále v intenzivním vývoji a je často obohacován o nové funkce. Novinky k aplikaci firma Google zveřejňuje na svém blogu5 .
1.1.2
Google Kontakty
Každý uživatel Google Apps má svůj seznam kontaktů, který může rozdělit do skupin. Kontakty poté může synchronizovat s mobilním telefonem nebo sdílet s dalšími uživateli Google Apps v doméně. Kromě individuálně vytvořených kontaktů je možné všem účtům v doméně zpřístupnit skupinu Adresář se sdílenými kontakty, ve které nemají uživatelé možnost údaje měnit. Pracovat (přidávat, upravovat, mazat) se sdílenými kontakty je umožněno pouze uživatelům s právy administrátora za pomoci Google Domain Shared 4
Práci offline je nutné povolit v administraci Google Apps a uživatel musí mít nainstalovaný internetový prohlížeč Google Chrome s rozšířením Gmail Offline. 5 URL: http://gmailblog.blogspot.cz
4
1.1. Dostupné služby Contacts API nebo hotových aplikací třetích stran (které používají Google Domain Shared Contacts API). Všechny kontakty jsou dostupné i v ostatních službách Google Apps. Usnadňují sdílení dat a práci s emaily nebo s organizováním událostí v doméně.
1.1.3
Google Kalendář
Google Kalendář je služba, která je určena k organizaci času a zapisování úkolů. S každou instancí kalendáře, kterou uživatel vytvoří, lze odděleně pracovat, sdílet ji mezi ostatní uživatele nebo ji skrýt či zobrazit na časové ose. Kalendář podporuje snadnou synchronizaci s mobilním operačním systémem Android. Díky propojení se službami Gmail a Kontakty je možné spolupracovníkům jednoduše rozesílat emailem pozvánky a upozornění na nově vytvořené události. Kalendáře lze zakládat i globálně pro celou doménu, kdy nejsou přiřazené žádnému uživateli. Využít je lze například pro časové rozvrhy obsazenosti místností.
1.1.4
Google Disk
Nejnovější součást Google Apps – služba Google Disk – slouží k ukládání souborů na vzdálené úložiště v internetu. Přístup k tomuto úložišti je umožněn přes internetový prohlížeč. Druhou možností je mít v počítači nainstalovaný program Google Drive a nastavit lokální složce pravidelnou synchronizaci s úložištěm. Textové dokumenty, prezentace a soubory tabulkových editorů vytvořené v Microsoft Office nebo Libre Office lze otevřít přímo v prohlížeči a případně editovat pomocí online editoru Google Docs bez nutnosti mít příslušný software nainstalovaný. Google Disk také nabízí možnost upravovat dokument několika uživateli najednou. Stejně jako kalendářům a kontaktům lze i souborům nastavovat oprávnění pro ostatní uživatele.
1.1.5
Google Weby
Služba pro intuitivní vytváření jednoduchých internetových stránek. Stránky uživatel vytváří pomocí WYSIWIG editoru s případnou pomocí připravených šablon. Do webu lze vkládat doplňky z ostatních služeb Google Apps (například některý z kalendářů). Na jedné stránce může stejně jako u Google dokumentů spolupracovat několik lidí najednou. Za zmínku také stojí dostupná evidence změn na konkrétní stránce. 5
1. Seznámení s Google Apps K hotovým webovým stránkám lze nastavit přístup pouze uživatelům z domény nebo z celého internetu.
1.1.6
Google Talk
Google Talk je služba pro rychlou komunikaci mezi uživateli Google Apps. Kromě posílání a přijímání textových zpráv umožňuje video hovory a přenos souborů. Uživatelé komunikují pomocí integrovaného panelu ve službě Gmail. Druhou možností je stažení a instalace bezplatného klienta na počítač. Google Talk lze používat v mobilních telefonech s nainstalovanou klientskou aplikací. Mobilní telefony s operačním systémem Android jsou vybaveni klientem pro Google Talk automaticky.
1.2
Vlastnosti účtu Google Apps
Každý vytvořený Google Apps účet automaticky získá emailovou adresu závislou na doméně, pro kterou je služba zaregistrovaná. Tato emailová adresa spolu s heslem slouží pro autentizaci k jednotlivým aplikacím Google Apps. Administrátor má možnost povolit uživatelům jejich účet Google Apps používat i pro přístup k ostatním službám Google mimo Google Apps (například Youtube, Google+, Picasa). Administrátor může k uživatelskému účtu přidat sekundární emailovou adresu (alias), který však nelze použít pro přihlášení. Účet v Google Apps má přidělen prostor o velikosti 25GB, který může použít pro emaily v aplikaci Gmail a 5GB pro soubory v Google Disk. Zatímco prostor pro emaily nelze u účtu Google Apps zvýšit, velikost Google Disku lze zvětšit aktivací placeného tarifu. Nejvyšší současně nabízený tarif garantuje 16TB volného prostoru. Stejně jako klasický Google účet, lze i Google Apps účet použít v mobilním operačním systému Android k synchronizaci dat.
1.3
Bezpečnost dat v Google Apps
Cloudové služby často podléhají velké nedůvěře potenciálních zákazníků. Přestože provozovatelé deklarují, že data patří stále původnímu majiteli, přetrvává obava o zachování soukromí a bezpečnosti na úložištích, ke kterým nemají zákazníci fyzický přístup. Firma Google přiznává, že tyto služby jsou založené na důvěře samotných zákazníků. Svou důvěryhodnost se snaží 6
1.3. Bezpečnost dat v Google Apps zvýšit získáním mezinárodních certifikací pro svá datová centra a zveřejněním způsobu ukládání dat. Data uložená v Google Apps jsou rozmístěna na několika geograficky oddělených serverech. Zároveň jsou všechna data několikanásobně replikovaná a zálohovaná na vzájemně nezávislých jednotkách, čímž je maximálně minimalizovaná pravděpodobnost jejich ztráty nebo omezení dostupnosti. Datová centra nejsou přístupná veřejnosti. Jejich fyzickou ochranu zajišťují mimo jiné systémy bezpečnostních kamer, alarmů a pracovníků bezpečnostních agentur. Přístup k serverům má jen omezený počet vysoce kvalifikovaných zaměstnanců na zakladě přísných bezpečnostních pravidel. [7] Datová centra jsou provozována na vlastním hardwarovém vybavení s vlastním operačním systémem a filesystémem. Datová centra splňují certifikaci ISO 270016 . Všechny soubory jsou rozmístěny na několika různých serverech, uchovány v šifrované podobě a přejmenovány náhodně vygenerovanými názvy. Na obrázku 1.1 je znázorněna struktura distribuovaného filesystému Google File System vyvinutého pro vlastní potřeby firmou Google.[12]
Obrázek 1.1: Popis GFS (Google File System) Kompletní zveřejněné informace o zabezpečení dat v Google Apps jsou sepsány v oficiální publikaci Security Whitepaper: Google Apps Messaging 6
Mezinárodní standard s požadavky na systém managmentu a bezpečnosti uchovávaných informací[14]
7
1. Seznámení s Google Apps and Collaboration Products7 . Obě nabízené verze Google Apps garantují dostupnost 99,9% všech svých služeb bez plánovaných vypadků. Pro přístup k jednotlivým službám pomocí internetového prohlížeče je použit šifrovaný HTTPS protokol, který chrání uživatele od odposlechu jejich komunikace[6]. Je samozřejmé, že popsaná bezpečnostní opatření nejsou ve finančních možnostech běžného zákazníka a mohlo by se zdát, že ukládaní dat na vzdálených serverech jiné společnosti je maximálně bezpečné. Nicméně je nutné si uvědomit, že hlavním faktorem při rozhodování musí být důvěra v provozovatele.
1.4
Administrace Google Apps
1.4.1
Webové rozhraní administrace
Pokud má uživatelský účet administrátorská práva, může měnit konfiguraci Google Apps, spravovat uživatelské účty a nastavovat možnosti jednotlivých aplikací. K administraci je připraveno webové rozhraní v českém jazyce. Většina položek v administraci je doplněna odkazem do nápovědy, která je často v češtině a výjimečně pouze v angličtině.
1.4.2
Programovací rozhraní API
Služby a data v Google Apps lze administrovat přes připravená programovací rozhraní (dále jen API), která se dělí na dvě skupiny. První skupina se nazývá Application APIs a zahrnuje API pro jednotlivé aplikace v Google Apps. Druhá skupina, která slouží k administraci vlastností a dat v doméně, se jmenuje Domain Admin APIs. Kompletní seznam jednotlivých podporovaných API je možno nalézt na stránkách dokumentace8 . Starší API zejména ze skupiny Domain Admin APIs implementují Google Data Protocol, který je založen na GET a POST požadavcích zasílaných na URL specifickou pro dané API. Požadavky i odpovědi jsou reprezentovány ve formátu AtomPub XML9 .[4] 7
Dostupné online URL: http://bit.ly/Y82CMn URL: https://developers.google.com/google-apps/app-apis 9 RFC popisující formát AtomPub je k dispozici na URL: http://www.rfceditor.org/rfc/rfc5023.txt 8
8
1.5. Řešení problémů s Google Apps Novější API (například Calendar v3 nebo Tasks API) nepoužívají Google Data Protocol, ale formát JSON objektů. Podrobný popis komunikace je zveřejněn v příslušných dokumentacích. Vzhledem k neustálému vývoji služeb včetně jejich API se mohou informace v různých manuálech (včetně těch vydaných přímo firmou Google) lišit. V manuálech a pomocných stránkách Google je mnoho zastaralých a neplatných odkazů a informací, které mohou být zavádějící. Z vlastní zkušenosti vím, že nejaktuálnější informace jsou vždy pouze na stránce konkrétního API. Google pro snadnější použití jednotlivých API nabízí klientské knihovny. Tyto knihovny jsou dostupné v programovacích jazycích Java, PHP, .NET, JavaScript, Python, Ruby, Objective-C, Dart a Go.[5] U všech knihoven kromě Python a Objective-C stále probíhá vývoj a jsou podle toho ve fázi alfa nebo beta. Klientské knihovny umožňují programátorovi pracovat s předpřipravenými objekty, které se před odesláním požadavku na server transformují do formátu, který je pro dané API určený (AtomPub XML pro API implementující Google Data Protocol nebo JSON pro novější API).
1.5
Řešení problémů s Google Apps
Pokud se během konfigurace nebo používání služeb Google Apps vyskytnou nějaké problémy, může administrátor požádat o pomoc online technickou podporu. Tato služba je dostupná 24 hodin denně a pro obě dostupné verze Google Apps je zcela zdarma. Komunikace probíhá pouze v angličtině. Před kontaktováním technické podpory je doporučováno použít manuálových stránek Google10 nebo některý z ladících nástrojů, které jsou volně dostupné na internetu.
1.5.1
Google Apps Toolbox
Google Apps Toolbox11 zahrnuje validátor nastavených DNS (Domain Name System) záznamů domény, analyzátor hlaviček emailu (detekuje navštívené servery a případné opoždění zprávy), analyzátor logů. Kromě toho umí zjistit informace o uživatelském prohlížeči a šifrovat i dešifrovat Base64, URL a MD5 hash. 10 11
Google APIs konzole12 je užitečná pro programátory používající některé z Google API. U založených projektů zobrazuje povolená API, vytváří reporty se statistikami požadavků na jednotlivá API a detekuje vyčerpání přidělených limitů.
1.5.3
OAuth 2.0 Playground
OAuth 2.0 Playground13 je jednoduchý nástroj pro testování a ladění požadavků pro Google API. Přívětivé grafické rozhraní popíše mechanismus autorizace pomocí OAuth 2.0 a nabídne připravené požadavky. Uživatel zde může ověřit, zda má správně nakonfigurovaný přístup k API, autorizuje se pomocí odpovídající oblasti působnosti (scope), odesílá validní požadavky a zjišťuje, jestli jsou vracená data správná.
1.6
Migrace a synchronizace dat
Administrátoři se musí při zavádění nového systému často vypořádat s ožehavým problémem importování a migrací stávajících dat do nových databází. Google nabízí administrátorům Google Apps bezplatné hotové nástroje, které jim pomohou přenos dat usnadnit a zrychlit.
1.6.1
Google Apps Directory Sync
Nástroj Google Apps Directory Sync (dále jen GADS) je použitelný v organizaci, která spravuje uživatele v doméně pomocí LDAP serveru, například Microsoft Active Directory. GADS umožňuje konfigurovat synchronizaci uživatelských účtů, organizačních jednotek, sdílených kontaktů, skupin a kalendářů se službou Google Apps. Administrátor by se před použitím nástroje GADS měl seznámit se strukturou adresářové služby, umět v ní vyhledávat a filtrovat. Aby bylo možné pomocí GADS data do Google Apps nahrát, musí administrátor Google Apps ve webovém administračním rozhraní povolit Provisioning API. Na základě nakonfigurovaného mapování dat z adresářové služby je možné provést synchronizaci jednorázově nebo nastavit pravidelné opakování. GADS nezajišťuje synchronizaci hesel. 12 13
Pomocí nástroje Google Apps Password Sync (dále jen GAPS) je možné synchronizovat změny hesel uživatelů v adresářové službě Microsoft Active Directory s hesly jejich identit používanými pro přihlašování do Google Apps. GAPS synchronizuje hesla díky knihovně password_sync_dll.dll. Při instalaci se tento soubor zkopíruje do složky C:\Windows\System32\ a do registrů se vloží záznam s jeho jménem do položky HKEY_LOCAL_MACHINE/SYST EM/CurrentControlSet/Control/Lsa/Notification Packages. Tímto se knihovna zaregistruje jako password filter. Po každé úspěšné změně hesla (uživatelem nebo administrátorem) operační systém na doménovém řadiči vyvolá funkci PasswordChangeNotify14 , která všechny knihovny registrované jako password filter o této akci informuje. Funkce předává uživatelské jméno, RID (Relative identifier) a nové heslo v čitelné podobě. Jakmile knihovna password_sync_dll.dll obdrží nové přihlašovací údaje, zahašuje heslo pomocí SHA1 a zašle ho programu GAPS. Ta si podle uživatelského jména a aktuální domény zjistí email uživatele a pomocí Provisioning API aktualizuje odpovídající uživatelský účet v Google Apps. Z tohoto postupu vyplývá, že GAPS musí být nainstalován na všech doménových řadičích a ve webovém administračním rozhraní Google Apps musí být povoleno Provisioning API. Zároveň je nutné si uvědomit, že nástroj GAPS umí synchronizovat hesla pouze jedním směrem. Heslo změněné uživatelem v Google Apps se v Active Directory zpětně neprojeví.
1.6.3
Google Apps Migration for Microsoft Exchange
Pro organizace, které již používají serverové řešení Microsoft Exchange a chtějí přejít ke Google Apps, je připraven nástroj, který přenese stávající data uživatelů (kalendáře, kontakty, emaily) do Google Apps. Nástroj Google Apps Migration for Microsoft Exchange zároveň umožňuje importovat data z poštovních serverů IMAP.
1.6.4
Google Apps Sync for Microsoft Outlook
Pro uživatele programu Microsoft Outlook nabízí Google nástroj, který synchronizuje jejich emailové složky, kalendáře a kontakty s účtem Google 14
Popis funkce na URL: http://msdn.microsoft.com/library/windows/desktop/ ms721876(v=vs.85).aspx
11
1. Seznámení s Google Apps Apps. V kombinaci s nástrojem Google Apps Migration for Microsoft Outlook Tool (obdoba Google Apps Migration for Microsoft Exchange), kterým je nutné data napoprvé importovat, lze v prostředí Microsoft Outlook vytvořit identickou kopii účtu Google Apps.
12
Kapitola
Konkurenční řešení Cloudová řešení pro kancelářské aplikace se díky svým výhodám rychle stala významnou oblastí byznysu v IT odvětví. Kromě Google Apps se na trhu objevilo několik dalších služeb od světoznámých firem. Z těch nejúspěšnějších jmenuji LotusLive od firmy IBM, Zoho CRM nebo Office 365 od firmy Microsoft. Každé řešení se specializuje na konkrétní skupiny firem a organizací. Největší konkurencí Google Apps se stala posledně jmenovaná služba Office 365.
2.1
Office 365
Služba Office 365 nabízená firmou Microsoft cílí na stejnou skupinu zákazníků jako Google Apps. Výhodou je větší nabídka variant. K dispozici jsou verze pro domácnosti, malé firmy a střední a velké podniky, které se dále dělí na takzvané plány podle počtu začleněných funkcí. V některých plánech jsou uživatelům k dispozici oblíbené offline aplikace Word, PowerPoint, Outlook a Excel. Koncová cena služby Office 365 je závislá na počtu uživatelských účtů. [10]
2.2
Office 365 pro vzdělávání
Stejně jako Google, tak i Microsoft podporuje vzdělávací instituce a nabízí jim zdarma základní verzi své služby. Bezplatná varianta Office 365 pro vzdělávání15 nabízí typy aplikací, které odpovídají aplikacím Google Apps. V tabulce 2.1 je porovnání Google Apps a Office 365 z pohledu aplikací. [1] 15
Označovaná jako plán A2
13
2
2. Konkurenční řešení Tabulka 2.1: Srovnání aplikací Google Apps a Office 365 Email Kalendář Kontakty Webové stránky Dokumenty Úložiště souborů Chat
Google Apps Gmail Google Kalendář Google Kontakty Google Weby Google Dokumenty Google Drive Google Talk
Jedním z možných faktorů, které můžou potenciální zákazníky bezplatné verze Office 365 pro vzdělávání odradit, je absence záruky dostupnosti [11]. V této práci popisuji integraci cloudové služby do prostředí střední školy, a proto se v následujících kapitolách budu věnovat pouze verzi Office 365 pro vzdělávání.
2.3
Office 365 z pohledu uživatele
Uživatelé Office 365 získají emailovou adresu závislou na doméně, se kterou se přihlašují do webového rozhraní. V něm mají přístup ke všem aktivovaným aplikacím. Každý účet má k dispozici 25GB volného prostoru pro emaily a 7GB pro soubory ve službě SkyDrive. Účet lze snadno použít pro synchronizaci dat v mobilním telefonu. Online kancelářské aplikace Word, Excel a Powerpoint mají stejné uživatelské rozhraní Ribbon16 jako desktopová kancelářská sada Microsoft Office. Z tohoto důvodu je ovládání pro uživatele snadné. Dokumenty lze upravovat stejně jako u Google Apps v reálném čase několika uživateli najednou.
2.4
Office 365 z pohledu administrátora
Uživatel s právy administrátora má přístup k webovému administračnímu rozhraní Office 365. Možnosti nastavení jsou srovnatelné s Google Apps. Chybí například podpora konfigurace internetového prohlížeče. Automatická synchronizace účtů v on-premise řešení Active Directory s jejich identitami v Office 365 je možná pomocí nástroje DirSync. Tento nástroj je obdobou programu GADS pro Google Apps. Stejně jako GADS, ani DirSync neumožňuje synchronizovat přístupová hesla, takže snadno dojde 16
14
Grafické rozhraní s funkcemi seskupenými do záložek
2.4. Office 365 z pohledu administrátora k nekonzistenci přihlašovacích údajů ve firmě. Microsoft připravuje nástroj Password Sync, který by měl tento problém vyřešit.[9] Migrace dat ze stávajících serverů je podporována, pokud organizace dosud používala Microsoft Exchange. Lze k tomu použít funkci Migrace emailů v ovládacím panelu Exchange, která automaticky vytvoří účty v Office 365 a zároveň přenese poštu a kontakty jednotlivých uživatelů. Podporované verze Exchenge jsou 2003, 2007 a 2010. Zálohu a synchronizaci souborů zajišťuje aplikace SkyDrive, která stejně jako Google Drive synchronizuje lokální složku s úložištěm v cloudu. Klíčovou nevýhodou Office 365 může být absence komplexního jednoduchého API, které by pomohlo službu provázat se stávajícími aplikacemi. Microsoft sice umožňuje manipulovat například s uživatelskými účty v cloudu pomocí Windows PowerShell nebo ovládat emaily a kontakty díky EWS (Exchange Web Services) Managed API17 , nicméně ve srovnání s API dostupnými pro Google Apps je nabídka přizpůsobení špatná.
17
Pouze v jazyce C#
15
Kapitola
Integrace u klienta Své znalosti o službě Google Apps získané při psaní mojí bakalářské práce jsem měl možnost ověřit v praxi při integraci produktu Google Apps pro vzdělávání na Střední zdravotnické škole v Českých Budějovicích (dále označované jako klient). Mým cílem bylo zaregistrovat a nastavit službu Google Apps pro vzdělávání, přizpůsobit stávající školní počítačovou síť a zajistit bezproblémové začlenění všech 108 zaměstnanců včetně migrace jejich dat. Vzhledem k nedostatku zkušeností samotných zaměstnanců školy se službami Google jsem se rozhodl realizovat výuková školení o používání nejdůležitějších součástí Google Apps.
3.1
Popis původní situace
Účinná integrace vyžaduje důkladné nastudování stávající situace u klienta. Z tohoto důvodu jsem se musel seznámit s hardwarovým i softwarovým vybavením a nastavením počítačové sítě ve výše uvedené střední škole. Zjistil jsem, že ve škole je provozována lokální počítačová síť se dvěma servery, na kterých je nainstalován Windows Server 2003. Na serverech je provozováno DNS, DHCP (Dynamic Host Configuration Protocol) a adresářová služba Active Directory (dále jen AD), která spravuje uživatele a počítače v síti. Práva uživatelů jsou zajištěna nakonfigurovanými skupinovými politikami (group policy). Problém mého klienta a zároveň hlavní důvod k zavedení služby Google Apps, spočíval v absenci poštovního serveru. Z tohoto důvodu zaměstnanci školy museli používat své soukromé emailové schránky i pro pracovní účely. Toto řešení bylo velmi nepraktické, neboť neexistovala konvence v emailových adresách a nutilo zaměstnance předávat si kontaktní údaje na vyžádání. Emailové adresy od bezplatných poskytovatelů zároveň působily neprofesionálně při komunikaci mimo školu. 17
3
3. Integrace u klienta Jednotlivé počítače jsou umístěny ve třídách, kabinetech učitelů a počítačových učebnách. Všechny používají operační systém Microsoft Windows ve verzích XP, Vista, 7 a 8. Zaměstnanci i studenti k prohlížení internetu používají Internet Explorer nebo doinstalovaný Google Chrome, který není na všech počítačích. Pošta je vyřizována zejména pomocí webových klientů, několika konkrétním zájemcům byl nainstalován Microsoft Outlook. Škola má zaplacenou licenci ke kancelářským programům Microsoft Office. V praxi je používán Microsoft Word, Microsoft Excel a Microsoft PowerPoint. Pro školní agendu zahrnující evidenci žáků, zaměstnanců, absencí, hodnocení a rozvrhů hodin je ve škole používán program Bakaláři. Tento software nabízí komplexní řešení pro správu veškerých dat, které škola potřebuje, a proto byl zvolen centrálním zdrojem, ve kterém se provádějí aktualizace. Program Bakaláři používá pro ukládání dat Microsoft SQL Server databázi (dále jen MSSQL). Data z této databáze se pomocí skriptů v jazyce PowerShell pravidelně přenášejí do AD. Sdílení souborů je ve škole zajištěno synchronizací vybraných složek v uživatelských profilech se síťovým serverem. Z rozhovorů se zaměstnanci vyplynulo, že jim tento stav vyhovuje, nicméně by ocenili možnost přistupovat k souborům z libovolného počítače pomocí Google Disk. Klient má zaregistrovanou internetovou doménu szscb.cz, na kterou plánuje nasadit službu Google Apps. Tuto doménu budu používat při konkrétních ukázkách i v dalším textu. Zaměstnanci již mají vytvořené účty v lokální doméně, pod kterými se přihlašují na pracovní počítače. Je požádovano, aby tyto přihlašovací údaje byly sjednocené s účty v Google Apps.
3.2
Registrace a nastavení služby Google Apps
Prvním krokem celého procesu integrace bylo zaregistrování služby Google Apps pro vzdělávání. Vyplněním online dotazníku18 se služba zaregistruje, poté následuje ověření domény. K tomu jsem si vybral metodu nahrání HTML souboru na webové stránky školy, protože je tento způsob nejrychleji ověřitelný19 . Hned nato jsem vyplnil žádost o upgrade na bezplatnou verzi pro vzdělávání. V žádosti je nutné zadat informace o škole (název, poštovní adresa, doména, internetové stránky, typ organizace) a o administrátorovi 18
Na stránce URL: https://www.google.com/a/signup/?enterprise_product= GOOGLE.EDU 19 Další způsoby ověření jsou vytvoření TXT nebo CNAME záznamu v DNS, které se projeví po delším časovém úseku.
18
3.2. Registrace a nastavení služby Google Apps Tabulka 3.1: Nastavení MX záznamů pro Google Apps Priorita 1 5 5
(jméno a email). Pokud by měli pracovníci Google pochybnosti o správnosti dat, vyžádají si další informace emailem. Po úspěšné aktivaci bezplatné verze jsem si ve webovém administračním rozhraní vyžádal zvýšení limitu uživatelských účtů20 . V základním nastavení jsou všechny služby dostupné pod obtížně zapamatovatelnými URL (například přístup ke službě Gmail je pod URL http://mail.google.com/a/szscb.cz). Google Apps umožňuje tyto URL změnit. Nejdříve jsem vybral pro jednotlivé služby odpovídající URL: • mail.szscb.cz pro Gmail, • kalendar.szscb.cz pro Google Kalendař • dokumenty.szscb.cz pro Google Disk • sites.szscb.cz pro Google Weby Vzhledem k tomu, že jsem se rozhodl odkazy na služby přesunout pod vlastní doménu, musel jsem přidat na lokálním DNS serveru i u poskytovatele domény odpovídající CNAME21 záznamy. Cílová adresa všech CNAME záznamů je ghs.googlehosted.com. V konfiguraci DNS záznamů jsem pokračoval nastavením směrování elektronické pošty. Všechny zprávy chci směrovat na poštovní servery Google, takže jsem nastavil MX22 záznamy na hodnoty z tabulky 3.1. Po provedení těchto nastavení je možné začít Google Apps naplno používat. V mém případě jsem před další fází integrace – synchronizací dat, ve webovém administračním rozhraní nakonfiguroval jednotlivé služby a jejich oprávnění. 20
Základní limit je 10 uživatelských účtů. Záznam pro alias domény 22 Záznam s informací o poštovních serverech 21
19
3. Integrace u klienta
3.3
Implementace synchronizačního nástroje
V kapitole Migrace a synchronizace dat jsem popsal nástroj GADS, který lze nakonfigurovat tak, aby synchronizoval data mezi AD a Google Apps. Klient sice AD používá, ale neslouží jako primární zdroj dat a neobsahuje kompletní informace. Primární zdroj dat je program Bakaláři, který žádný datový konektor na Google Apps nemá. Rozhodl jsem se proto implementovat vlastní komplexní nástroj, který bude používat data z programu Bakaláři a nahrávat je do Google Apps. Pomocí tohoto nástroje bych chtěl importovat kontakty do sdíleného adresáře v Google Kontaktech, vkládat třídy žáků ve formě skupin pro rozesílání hromadných emailů, nahrávat rozvrhy jednotlivých tříd do Google Kalendáře a automatizovat vytváření a pozastavování uživatelských účtů v Google Apps na základě aktivních uživatelů v programu Bakaláři. Můj výsledný program bude webová aplikace s pravidelně vykonávanými úlohami. Programovací jazyk jsem zvolil Java. Data budu načítat z relační MSSQL databáze programu Bakaláři23 . Ke všem službám Google Apps jsou dostupná API, která budu používat při vkládání dat.
3.3.1
Použité technologie
3.3.1.1
Apache Maven
Apache Maven je užitečný nástroj, jehož cílem je zjednodušit správu vyvíjeného projektu (zejména v programovacím jazyce JAVA). Projekt spravovaný pomocí Apache Maven je nezávislý na vývojovém prostředí a má pevně danou adresářovou strukturu. Mezi další výhody patří usnadnění kompilace zdrojových kódů, definování závislostí na externích knihovnách a zjednodušení unit testování. Celý vyvíjený projekt je reprezentován jako Project Object Model (POM) objekt, který se konfiguruje XML souborem pom.xml v kořenovém adresáři projektu. 3.3.1.2
Spring framework
Spring Framework je framework pro vývoj J2EE aplikací. Skládá se z několika modulů různého zaměření. V mém projektu jsem použil kromě modulu jádra frameworku (Spring Core) ještě moduly Spring Web MVC (podpora 23
K databázi programu Bakaláři není volně dostupná dokumentace. Analýza databáze byla součást řešení této bakalářské práce.
20
3.3. Implementace synchronizačního nástroje třívrstvé MVC architektury viz obrázek 3.1), Spring JDBC (podpora přístupu k datům pomocí JDBC) a Spring AOP (podpora aspektově orientovaného programování). Všechny použité moduly jsou ve verzi 3.2.2.RELEASE.
Cont r ol l er Us er Acon
Upda t es
Upda t es
P r opa g a t eCha ng e s Vi e w
Model Re t r i e v eDa t a
Obrázek 3.1: Popis MVC architektury [2]
3.3.1.3
Jetty
Jetty je open source HTTP webový server a Java servlet kontejner. Rozhodl jsem se pro jeho použití, neboť je nenáročný na spotřebu paměti a je součástí vývojového prostředí Eclipse, které jsem pro vývoj používal. 3.3.1.4
Freemarker
Freemarker je alternativa k JSP24 - šablonovací nástroj použitelný pro webové aplikace napsané v programovacím jazyce Java navržené pro MVC architekturu. Používá se při generování vrstvy uživatelského rozhraní (view), zejména HTML stránek. Freemarker umožňuje efektivně oddělovat logiku aplikace od vzhledu. Jeho primární funkce je zobrazovat data získaná z datového modelu. Přesto umí i základní programovací techniky (podmínky, cykly, proměnné, vlastní funkce, práci s polem a další). Použitá verze programu Freemarker je 2.3.19. 24
Java Server Pages – šablonovací nástroj pro J2EE aplikace
21
3. Integrace u klienta 3.3.1.5
Twitter Bootstrap
Abych docílil jednotného a přehledného uživatelského prostředí aplikace, použil jsem framework Twitter Bootstrap, který obsahuje připravené CSS a JavaScript prvky (například tlačítka, formuláře, obrázky, tabulky, ikony). Twitter Bootstrap se hodí zejména pro administrační uživatelská prostředí, neboť nenabízí příliš velké možnosti modifikace. Kromě připravených grafických prvků obsahuje Twitter Bootstrap nástroje k rozložení prvků na stránku včetně podpory responsivního designu. Twitter Bootstrap jsem použil ve verzi 2.3.1 s rozšířením Jasny.
3.3.2
Datový model
Aplikace je navržená tak, aby byla snadno přizpůsobitelná jiným relačním databázovým schématům a tím pádem použitelná pro další datové zdroje kromě aplikace Bakaláři. Vytvořil jsem datový model entit reprezentujících typické objekty školního prostředí (žák, učitel, třída, vyučovací hodina). Diagram datového modelu je znázorněn na obrázku 3.2.
Obrázek 3.2: Entity synchronizačního nástroje 22
3.3. Implementace synchronizačního nástroje Tyto objekty dále mapuji na datovou strukturu používanou konkrétní službou Google Apps. Data z databáze získávám pomocí SQL příkazů. Při mapování takto získaných dat do mého datového modelu používám pro každý získaný sloupec databáze SQL alias. Pokud se aplikace bude nasazovat na jiné databázové schéma, stačí změnit SQL dotazy a zachovat názvy aliasů. Objekty se budou inicializovat s novými daty a funkčnost aplikace zůstane zachovaná.
3.3.3
Autorizace Google API
Přístup k datům přes libovolné Google API je podmíněn autentizací a autorizací uživatele. Google API k tomu používají OAuth 2.0 protokol25 . 3.3.3.1
Přihlášení ke Google API přes OAuth 2.0
Přihlášení probíhá ve čtyřech krocích. Před prvním použitím Google API je nutné zaregistrovat vyvíjený projekt v Google APIs konzoli. Pomocí průvodce se vygenerují atributy potřebné pro přístup z různých typů aplikací (webových, instalovaných, mobilních). Druhým krokem je získání přístupového tokenu (access token) z autorizačního serveru Google, který je reprezentován znakovým řetězcem. To probíhá v závislosti na typu aplikace (například pro webové aplikace je uživatel přesměrován na stránku, kde potvrdí souhlas s přístupem k jeho datům). Po odsouhlasení získá uživatel přístupový token, který se poté posílá v hlavičce požadavku k API. Přístupový token má omezenou platnost (přibližně jedna hodina). Jeho obnovení zajišťuje obnovující token (refresh token), který uživatel získá spolu s přístupovým tokenem. Obnovující token musí aplikace uchovávat v dlouhodobém úložišti (soubor, databáze), neboť počet obnovujících tokenů na uživatele je omezený. [8] V mém případě, kdy aplikace běží na serveru, není přístupná běžným uživatelům a nepotřebuje mít přístup k jejich datům, je doporučeno autorizovat se pomocí správcovského Google účtu tzv. Service Account [13]. Vytvořil jsem ho v Google APIs konzoli, kde jsem v průvodci zvolil typ vytvářené aplikace Service account. Kromě přístupového klientského identifikátoru (client ID) a emailu servisního účtu mi byl vygenerován privátní klíč. Získávání přístupového tokenu pomocí servisního účtu probíhá podle scénáře, který je popsán na obrázku 3.3).
25
Popis protokolu URL: http://tools.ietf.org/html/draft-ietf-oauth-v2-22
23
3. Integrace u klienta Server vytvoří JSON Web Token (JWT), který podepíše privátním klíčem získaným při registraci servisního účtu. Poté vytvoří požadavek na token (Token Request), ke kterému podepsaný JWT přiloží a odešle ho na OAuth2 autorizační server Google. Server ověří platnost JWT a zašle odpověď s přístupovým tokenem. Po vypršení platnosti přístupového tokenu se tento proces opakuje (aplikace neuchovává obnovující token).
Obrázek 3.3: Scenář přihlášení servisního účtu ke Google API [8] Tento scénář zajišťuje klientská knihovna Google OAuth2.0, jejíž použití je v dokumentaci silně doporučováno. Knihovna implementuje všechny typy scénářů ověřování pomocí OAuth 2.0 a je dostupná v několika programovacích jazycích. Pro znázornění uvádím příklad zdrojového kódu zprostředkovávající autorizaci servisního účtu k API pro Google Kalendář – Google Calendar API v3. Představený kód používám ve své implementaci.
24
3.3. Implementace synchronizačního nástroje protected s t a t i c f i n a l HttpTransport HTTP_TRANSPORT = new NetHttpTransport ( ) ; protected s t a t i c f i n a l J so n Fa c to ry JSON_FACTORY = new J a c k s o n F a c t o r y ( ) ; protected s t a t i c f i n a l S t r i n g SERVICE_ACCOUNT_ID = " s e r v i c e −account−e m a i l " ; /∗ Scope o f Calendar v3 API ∗/ protected s t a t i c f i n a l S t r i n g CALENDAR_SCOPE = " h t t p s : / /www. g o o g l e a p i s . com/ auth / c a l e n d a r " ; /∗ Google Apps s u p e r a d m i n i s t r a t o r ’ s e m a i l ∗/ protected s t a t i c f i n a l S t r i n g ADMIN_EMAIL = " admin@domain . com " ; protected s t a t i c f i n a l S t r i n g PATH_TO_PRIVATE_KEY = " path−to−p r i v a t e −key " ; G o o g l e C r e d e n t i a l c r e d e n t i a l = new G o o g l e C r e d e n t i a l . B u i l d e r ( ) . s e t T r a n s p o r t (HTTP_TRANSPORT) . s e t J s o n F a c t o r y (JSON_FACTORY) . s e t S e r v i c e A c c o u n t I d (SERVICE_ACCOUNT_ID) . s e t S e r v i c e A c c o u n t S c o p e s (CALENDAR_SCOPE) . setServiceAccountPrivateKeyFromP12File ( new F i l e (PATH_TO_PRIVATE_KEY) ) . s e t S e r v i c e A c c o u n t U s e r (ADMIN_EMAIL) . build ( ) ; Calendar c a l e n d a r S e r v i c e = new Calendar . B u i l d e r ( HTTP_TRANSPORT, JSON_FACTORY, credential ) . s e t A p p l i c a t i o n N a m e (APPLICATION_NAME) . setHttpRequestInitializer ( credential ) . build ( ) ; V kódu je kromě knihovny Google OAuth2.0 použita klientská knihovna pro Google Calendar API v3. Parametr SCOPE (oblast působnosti), charakterizuje oprávnění, která data bude možné používat. Každé API má svojí oblast působnosti reprezentovanou jako URL adresu zveřejněnou v dokumentaci. Protože servisní účet není člen domény, musí pro něj administrátor Google Apps ve webovém administračním rozhraní oblast působnosti povolit. Toto nastavení lze nalézt v sekci Pokročilé nástroje část Ověření položka Spravovat přístup klientů protokolu OAuth třetích stran. 25
3. Integrace u klienta
3.3.4
Synchronizace dat
3.3.4.1
Synchronizace uživatelů Google Apps
Uživatelské účty synchronizuji pomocí Provisioning API, které je založeno na Google Data protokolu. Toto API umožňuje vytvářet, upravovat a mazat jednotlivé uživatele, aliasy a organizační jednotky Google Apps. Oblast působnosti pro uživatele (https://apps-apis.google.com/a/feeds/user/), aliasy (https://apps-apis.google.com/a/feeds/alias/) a organizační jednotky (https://apps-apis.google.com/a/feeds/policies/). Uživatele při automatické synchronizaci nikdy nemažu, účty pouze deaktivuji. Tím se zajistí zachování dat. Neaktivní účty po delším časovém období maže administrátor ručně ve webovém rozhraní. Platnost uživatelů vztahuji k jejich aktuálnímu stavu v databázi aplikace Bakaláři. Abych oddělil synchronizované uživatelské účty od těch, které vytvoří administrátor Google Apps ručně ve webovém rozhraní, synchronizační nástroj při první synchronizaci vytvoří organizační jednotku, do které se tyto automaticky vytvářené účty přesouvají. Tím jsem zajistil, že ručně vytvářené účty, pro které nenajdu ekvivalentní záznam v databázi programu Bakaláři, nebudou deaktivovány. Program Bakaláři umožňuje svým uživatelům měnit přihlašovací jméno a k rozlišování používá jednoznačný náhodně vygenerovaný neměnný identifikátor. Aby můj nástroj mohl reagovat na změnu přihlašovacího jména a místo vytvoření nového účtu upravil ten stávající, přiřazuji každému novému účtu alias v podobě identifikátoru. Při synchronizaci poté páruji tyto aliasy s identifikátory. 3.3.4.2
Synchronizace hesel
Pro zachování jednotných přihlašovacích údajů do lokální domény i Google Apps jsem se rozhodl synchronizovat hesla k uživatelským účtům pomocí nástroje GAPS. GAPS reaguje pouze na změny hesla (neumí synchronizovat stávající hesla), takže jsem při založení účtů Google Apps pro existující uživatele domény vynutil změnu hesla při dalším přihlášení. Tím jsem zajistil nastavení hesel všech platných uživatelů. Noví uživatelé vznikají při synchronizaci nově implementovaným nástrojem, kterou provádím před spuštěním synchronizačních skriptů s Active Directory, takže při vytvoření Google Apps účtu nastavuji neveřejné dočasné heslo, které se automaticky změní při vložení uživatele do Active Directory skriptem. Nekonzistence přihlašovacích údajů hrozí při změně hesla v uživatelském rozhraní Google Apps (tato změna by se neprojevila na doménovém řadiči). Tento problém jsem vyřešil přesměrováním webové stránky s formulářem 26
3.3. Implementace synchronizačního nástroje pro změnu hesla na nově vytvořenou stránku. Na nové stránce informuji uživatele, že změna hesla musí být provedena pouze na pracovním počítači změnou hesla do domény. Při řešení přihlašování uživatelů ke Google Apps jsem uvažoval o využití metody jednotného přihlášení (Single Sign On – dále jen SSO), kterou Google Apps podporuje. S ohledem na to, že můj klient by SSO k žádné jiné službě nepoužil a SSO by nezajistilo integritu hesel například pro poštovní protokol POP, jsem se rozhodl SSO nepoužít. 3.3.4.3
Vkládání kontaktů do sdíleného adresáře služby Google Kontakty
Se sdílenými kontakty pracuji prostřednictvím rozhraní Google Domain Shared Contacts API, které je založeno na Google Data protokolu. Oblast působení pro sdílené kontakty je http://www.google.com/m8/feeds/. Pomocí Shared Contacts API lze přidávat, upravovat a mazat sdílené kontakty domény. Sdílené kontakty vkládám a mažu pomocí hromadných požadavků. Vytvořím si seznam položek s kontakty a každé položce přiřadím příznak operace, která se má provést (INSERT nebo DELETE). Seznam je limitován maximálním počtem 100 položek. Každý seznam odesílám jedním HTTP požadavkem. Tento proces značně urychluje zpracování a díky tomu si při každém spuštění synchronizace můžu dovolit všechny sdílené kontakty smazat a opět vložit. Tento postup je rychlejší než zjišťovaní změn a upravování jednotlivých kontaktů. 3.3.4.4
Vkládání tříd jako skupin pro hromadné rozesílání emailů
Učitelé potřebují rozesílat hromadné zprávy svým žákům. V současné době hromadnou korespondenci zajišťují zadáváním jednotlivých adresátů ručně. Pro usnadnění rozesílání hromadných zpráv žákům, ukládám emailové adresy jednotlivých studentů do skupin. Kromě kompletních tříd vytvářím skupiny zároveň pro podmnožiny žáků podle jejich pohlaví nebo zaměření (například: dívky, chlapci, angličtina, němčina, hudební výchova). Skupiny se uživatelům Gmailu zobrazují v našeptávači jako jeden kontakt, ze kterého se emaily automaticky rozešlou všem členům. K synchronizaci používám Googe Provisioning API. Oblast působnosti pro skupiny je https://apps-apis.google.com/a/feeds/groups/. Název vytvořených skupin tvoří jméno třídy a upřesnění, zda se jedná o celou třídu 27
3. Integrace u klienta nebo její část. Příklad názvu skupiny reprezentující všechny dívky ze třídy ZDA 4.A
• ZDA 4.A - dívky
3.3.4.5
Synchronizace rozvrhů tříd do služby Google Kalendáře
Synchronizace školních rozvrhů s Google Apps Kalendářem je jediná část mého nástroje, která je přizpůsobena konkrétně aplikaci Bakaláři. Může za to specifický způsob uložení jednotlivých událostí (vyučovacích hodin). K synchronizaci událostí v kalendářích používám Google Calendar API v3, které komunikuje pomocí objektů JSON. Zdroje informací (calendar resources)26 vytvářím pomocí Calendar Resource API založeném na starším Google Data protokolu. Oblast působnosti pro kalendáře je https://www.googleapis.com/auth/calendar a pro zdroje informací https://apps-apis.google.com/a/feeds/calendar/resource/. Google Calendar API v3 patří do skupiny novějších API a jeho používání je nutné povolit v Google APIs konzoli. Každé třídě na začátku školního roku vytvořím kalendář typu zdroj informací, který je přístupný všem uživatelům domény. Do tohoto kalendáře poté ukládám jednotlivé vyučovací hodiny jako události s nastaveným začátkem a koncem, popisem předmětu a místností, ve které se vyučuje. Aplikace Bakaláři si uchovává každou vyučovací hodinu jako samostatný řádek tabulky v databázi. Vyučovací hodiny nemají nastavenou pravidelnost opakování, takže musím každou vyučovací hodinu vkládat jako samostatnou událost. Vzhledem k tomu, že se jedná o velký počet událostí, rozhodl jsem se synchronizovat vyučovací hodiny vždy pouze pro následující měsíc. Události vkládám a mažu pomocí hromadných http požadavků. Každý uživatel v doméně si může přidat kalendář s rozvrhem jako zdroj informací do skupiny Moje kalendáře pomocí funkce Procházet zajímavé kalendáře. Na obrázku 3.4 je vidět importovaný rozvrh hodin třídy ZDA 2.B do služby Google Kalendář z pohledu uživatele. K vytvářeným událostem přiřazuji uživatelský účet vyučujícího jako hosta s potvrzenou účastí. Tím se událost přidá do jeho vlastního soukromého kalendáře. Na obrázku 3.5 je vidět ukázka soukromého kalendáře vzorového učitele s vloženými předměty, které vyučuje. 26
28
Typ kalendáře, který je veřejně dostupný a nemá vlastníka
3.3. Implementace synchronizačního nástroje
Obrázek 3.4: Rozvrh hodin importovaný do Google Kalendáře
29
3. Integrace u klienta
Obrázek 3.5: Google Kalendář vzorového učitele
30
3.3. Implementace synchronizačního nástroje
3.3.5
Uživatelské prostředí
Přestože synchronizace dat probíhá samostatně a nezávisle na administrátorovi, aplikace má jednoduché uživatelské prostředí, které je rozěleno do sekcí, podle dat, která se mají synchronizovat. Administrátor může kontrolovat synchronizované údaje a vynutit ruční spuštění synchronizace. Na obrázku 3.6 je ukázka uživatelského prostředí pro synchronizování uživatelských účtů. Ostatní sekce mají obdobný vzhled.
Obrázek 3.6: Uživatelské prostředí vytvořené aplikace – synchronizace uživatelů
3.3.6
Nasazení aplikace
Vytvořený synchronizační nástroj je implementován jako webová aplikace založená na bázi servletu a požaduje instalaci webového serveru. Před samotným spuštěním se musí nakonfigurovat přístupové údaje. 3.3.6.1
Přihlášení k datovému zdroji
Aplikace se přihlašuje k datovému zdroji programu Bakaláři, který je zastoupen MSSQL databází. Pro potřeby synchronizace doporučuji v databázovém serveru vytvořit nového uživatele s oprávněním čtení cílové databáze. 31
3. Integrace u klienta Konfigurace přihlašovacích údajů k datovému zdroji je uchována v souboru /src/main/resources/common/db.properties. Povinné jsou všechny atributy. Konfigurace aplikace pro použití s programem Bakaláři vypadá následovně: bakalari.mssql.username={username} bakalari.mssql.password={password} bakalari.mssql.url=jdbc:jtds:sqlserver://:<port>/ bakalari.mssql.driver=net.sourceforge.jtds.jdbc.Driver 3.3.6.2
Vytvoření a konfigurace servisního Google Apps účtu
Vzhledem k tomu, že aplikace používá Google API a přistupuje k němu pomocí servisního účtu, je nutné tento účet nejdříve vytvořit v Google APIs konzoli. Poté se musí pro nově vytvořený servisní účet nastavit všechny oblasti působnosti z tabulky 3.2 Tabulka 3.2: Konfigurace oblastí působnosti Popis Contacts Calendar Resources Groups Provisioning Organisation Units User Provisioning Calendar
Hodnota http://www.google.com/m8/feeds/ https://apps-apis.google.com/a/feeds/calendar/resource/ https://apps-apis.google.com/a/feeds/groups/ https://apps-apis.google.com/a/feeds/policies/ https://apps-apis.google.com/a/feeds/user/ https://www.googleapis.com/auth/calendar
Toto nastavení se vyplňuje ve webovém administračním rozhraní Google Apps v sekci Pokročilé nástroje pod odkazem Spravovat klientský přístup k rozhraní API. Kromě oblastí působnosti se v Google APIs konzoli musí povolit Google Calendar API. Přihlašovací údaje k servisnímu účtu se zadávají do souboru /src/main/resources/common/google-apps.properties. Všechny položky jsou povinné. ga.username={email administratora Google Apps} ga.domain={domena} ga.private-key={absolutni cesta k privatnimu klici} ga.service-account-id={id servisniho uctu} 32
3.4. Migrace emailů, kalendářů a kontaktů 3.3.6.3
Instalace webového serveru
Ke spuštění webové aplikace lze použít webový server Apache Tomcat27 . Po jeho stažení se musí nastavit cesta k Java SDK do systémové proměnné JAVA_HOME. Složku s webovým serverem budu označovat v dalším textu jako %TOMCAT_DIR%. 3.3.6.4
Spuštění aplikace
Pomocí příkazu mvn clean package programu Maven se vytvoří soubor s příponou .war, který se přejmenuje na ROOT.war a zkopíruje do složky %TOMCAT_DIR%/webapps/. Pro správné spuštění aplikace se musí přidat java agent spring-instrument-3.1.2.RELEASE.jar do složky %TOMCAT_DIR%/lib/ a nastavit parametr –javaagent při spuštění aplikace. To se provede přidáním příkazu set CATALINA\_OPTS=\%CATALINA\_OPTS\% -javaagent:../lib/spring-instrument-3.1.2.RELEASE.jar na začátek souboru %TOMCAT_DIR%/bin/catalania.bat. Nakonec se spustí server souborem %TOMCAT_DIR%/bin/startup.bat. Server se vypne spuštěním souboru %TOMCAT_DIR%/bin/shutdown.bat. Pro ověření, že se aplikace spustila správně, stačí do internetového prohlížeče zadat URL adresu http://localhost:8080. Pokud nasazení proběhlo v pořádku, zobrazí se úvodní obrazovka grafického uživatelského rozhraní.
3.4
Migrace emailů, kalendářů a kontaktů
Do doby před nasazením Google Apps klient nepoužíval žádný poštovní server a emaily zaměstnanců nebyly uchovávány v centrálním úložišti. Z tohto důvodu jsem musel emaily zaměstnanců migrovat z jejich soukromých emailových schránek. U těch, kteří si stahovali poštu do programu Microsoft Outlook, jsem použil nástroj Google Apps Sync for Microsoft Outlook. Ostatní zaměstnance jsem seznámil s funkcí28 , která jim přenese stávající i budoucí emaily do nové schránky. 27
Verze 7.0 ke stažení http://tomcat.apache.org/download-70.cgi Kontrola pošty z jiných účtů pomocí protokolu POP3 – odkaz Účty v Nastavení služby Gmail 28
33
3. Integrace u klienta Data kalendářů a kontaktů uložených v Microsoft Outlook jsem migroval opět pomocí nástroje Google Apps Sync for Microsoft Outlook. Ostatní uživatelé online kalendář dosud nepoužívali. Největší problém jsem řešil s přenosem kontaktů, neboť nejčastěji používaný poskytovatel emailu, Seznam29 , neumožňuje exportovat seznam vlastních kontaktů. Do synchronizačního nástroje jsem proto přidal funkci, která přenos kontaktů umožní. Zjistil jsem, že všechny kontakty uložené v emailovém klientu od firmy Seznam lze získat z našeptávacího dialogu, který je možné zobrazit při psaní nové zprávy. HTML stránku s otevřeným našeptávačem jsem si stáhnul a pomocí HTML parseru z ní exportoval pouze potřebná data (jméno kontaktu a samotný email). Tyto informace jsem poté exportoval do souboru CSV, který lze použít jako zdroj hromadného importu do služby Google Kontakty. Našeptávač je implementovaný jako HTML tabulka s cestou vyjádřenou pomocí XPath /html/body/div/table[1] a strukturou
Jak je vidět, ze zdrojového kódu stačí získat hodnoty HTML tagů pro sloupce
, které nemají atribut class. Tento proces jsem implementoval do synchronizačního nástroje. Koncoví uživatelé si stáhnou HTLM stránku s otevřeným našeptávacím dialogem 29
34
URL: www.seznam.cz
3.5. Záloha souborů v Google Disk a nahrají ji pomocí formuláře na server. Po odeslání souboru jim server nabídne ke stažení CSV30 soubor s exportovanými kontakty. Je pravděpodobné, že tento konkrétní způsob přestane v budoucnosti fungovat, neboť je citlivý na změnu struktury HTML stránky. V této situaci lze snadno ve zdrojovém kódu nástroje změnit cestu XPath na odpovídající hodnotu. Vzhledem k tomu, že migrace je jednorázový krátkodobý proces, lze tuto metodu bezpečně použít.
3.5
Záloha souborů v Google Disk
Automatické zálohování souborů do služby Google Disk je značně limitováno nutností mít na počítači nainstalovaný program Google Drive, který synchronizuje vzdálené úložiště se složkou na lokálním disku. Toto řešení je vhodné pro uživatele pracující na jednom konkrétním počítači, který s nikým nesdílejí. Můj klient má zaměstnance, zejména učitele, kteří většinu času používají jeden přiřazený počítač v kabinetu. Zároveň se během dne přihlašují na několik dalších počítačů, například v jednotlivých učebnách. Kdybych na všechny počítače nainstaloval program Google Drive a nechal při každém přihlášení synchronizovat soubory aktivního zaměstnance s lokální složkou, vzniklo by za jeden den několik téměř identických kopií těchto složek. Zároveň by každá nová synchronizace značně zatěžovala provoz v síti. Z tohoto důvodu je nutné synchronizaci souborů zajistit centrálně. Zaměstnanci mají v současné době data na školním serveru a ze všech počítačů ve škole k nim přistupují po síti. Data jsou na serveru rozdělena do složek podle uživatelských jmen. Zálohování by tak mohlo probíhat přímo na školním serveru bez nutnosti instalovat Google Disk na všechny počítače. Navrhnul jsem dvě možná řešení. První řešení počítá s vytvořením jednoho zálohovacího Google Apps účtu, který by byl na serveru přihlášen v programu Google Drive a zajišťoval synchronizaci všech uživatelských složek. Pomocí Google Drive API bych automaticky nastavoval sdílení složek s koncovými uživateli, kterým by se tak složka zobrazila v účtu. Problém tohoto řešení spočívá v omezené kapacitě bezplatné služby Google Disk. Zdarma je možné použít prostor pouze o velikosti 5GB, což je pro zálohování málo. V tomto případě je jediná možnost využít placeného tarifu. Zaplacením měsíčního poplatku je možné navýšit diskový prostor až na 16TB. Druhé řešení spočívá v instalaci programu Google Drive pouze na počítače v kabinetech. Tyto počítače mají ve většině případů pouze jednoho 30
Standardizovaný formát pro přenos dat
35
3. Integrace u klienta uživatele. Na tomto počítači by se data synchronizovala s lokálním diskem. Pokud by zaměstnanec potřeboval přístup k datům uloženým ve službě Google Disk z jiného počítače, použil by webové rozhraní. Toto řešení je zdarma, nicméně je složitější z hlediska administrace a také méně komfortní pro zaměstnance. Obě řešení byla navržena klientovi, který se zatím pro žádné nerozhodl. Proto nebylo ani jedno implementováno.
3.6 3.6.1
Změny na PC stanicích Instalace Google Chrome
Po provedení konfigurace služby Google Apps, přenesení dat a zajištění synchronizace pomocí implementovaného nástroje jsem přistoupil k úpravám konfigurace počítačové sítě. Vzhledem k tomu, že pro používání služeb Apps je doporučován internetový prohlížeč Google Chrome, rozhodl jsem pro jeho hromadnou instalaci na všechny počítače v síti. Použil jsem k tomu hotový MSI balíček31 . Chování hromadně instalovaného prohlížeče Google Chrome na jednotlivých počítačích lze měnit pomocí skupinových politik32 . Před rozšířením balíčku do sítě jsem pomocí těchto politik nastavil Google Chrome jako výchozí prohlížeč, zadal domovskou stránku klientovy domény a podobné úpravy. Velkou výhodou je možnost nastavit skupinovou politikou předinstalovaná rozšíření do prohlížeče. Slouží k tomu seznam hodnot ExtensionInstallForceList jehož položky obsahují identifikátor rozšíření a URL adresu pro aktualizace rozšíření oddělené středníkem. Identifikátor rozšíření je 32 znaků dlouhý řetězec, který lze najít v URL adrese stránky o konkrétním rozšíření na internetovém obchodu Chrome33 . URL adresy pro aktualizaci rozšíření jsem získával z konfiguračního souboru Preferences profilu prohlížeče. Tento soubor je implicitně skrytý a uložen v cestě C:\Users\<username>\AppData\Local\Google\Chrome\User Data\ Default\Preferences\34 . 31
Zdarma dostupný z URL: https://www.google.com/intl/cs/chrome/business/ browser/ 32 Šablonu ve formátu ADM nebo ADMX lze získat z URL: http://bit.ly/10Pa6Ym 33 URL: https://chrome.google.com/webstore 34 V tomto souboru je kompletní konfigurace prohlížeče uložená ve formátu JSON.
36
3.6. Změny na PC stanicích Podle identifikátoru lze vyhledat konkrétní rozšíření a z atributu update_url je možné zjistit hledanou URL adresu pro aktualizace. Například pro instalaci rozšíření Gmail Offline vypadá položka skupinové politiky ExtensionInstallForceList následně: identifikátor: ejidjjhkpiempkbhmpbfngldlkglhimk adresa pro aktualizace: http://clients2.google.com/service/update2/crx Předinstalovaná rozšíření do prohlížeče jsem vybíral podle dosud běžně používaných aplikací. Jedná se o aplikace pro úpravu dokumentů a správu pošty. Seznam konkrétních rozšíření instalovalovaných pomocí skupinovych politik: • Gmail Offline • Kalendář Google • Prezentace Google • Dokumenty Google • Tabulky Google • Formuláře Google • Gmail • Google Mail Checker Instalaci dalších rozšíření jsem zakázal opět pomocí skupinové politiky. Distribuci samotného MSI balíčku jsem provedl také pomocí skupinové politiky, kterou jsem aplikoval na všechny počítače v doméně připojené k internetu. Hromadná instalace přepíše všechny stávající nainstalované aplikace Google Chrome, takže jsem se nemusel starat o odstraňování stavajících instalací. Stejná nastavení jako u skupinových politik lze konfigurovat ve webovém administračním rozhraní Google Apps. Toto nastavení se aplikuje po přihlášení uživatele Google Apps v nastavení prohlížeče Google Chrome. Na pracovních počítačích se o nastavení starají skupinové politiky, ale pokud bude uživatel mimo, nastavení prohlížeče by měl jiné a zejména instalovaná rozšíření by mohl postrádat. Proto jsem stejné hodnoty jako u skupinových politik nakonfiguroval pro Google Chrome i ve webovém rozhraní. 37
3. Integrace u klienta
3.6.2
Ostatní nastavení
Pomocí skupinových politik jsem uživatelům povolil instalaci programu Google Apps Synch for Microsoft Outlook. Zaměstnancům, kteří chtěli zůstat u používání poštovního klienta Microsoft Outlook, jsem vysvětlil jeho chování.
3.7
Školení uživatelů
Při prvním setkání se zaměstnanci školy jsem během krátké prezentace představil všechny služby Google Apps spolu s výhodami, které nabízejí. Účastníky prezentace zaujaly možnosti Google Apps, ale zároveň jsem pozoroval jistou neochotu učit se novým věcem, neboť se se službami Google dosud nikdy nesetkali. Z tohoto důvodu bylo zřejmé, že pokud chci docílit toho, aby se ve škole využívalo služeb Google Apps na maximum, budu muset jednotlivé aplikace a jejich ovládání představit detailněji. Během procesu integrace jsem pro zaměstnance uspořádal výuková školení k jednotlivým službám. Vybral jsem Gmail, Kontakty, Kalendář a Google Disk, které byly podle mého názoru pro představení nejdůležitější. Při přípravě školení jsem se zaměřil primárně na poznání a ovládání uživatelského rozhraní s důrazem na funkce, které zaměstnanci dosud nejčastěji používali. Školení jsem podpořil vlastními materiály v podobě prezentací, které jsem zpřístupnil. V průběhu školení i setkání jsem trval na používání internetového prohlížeče Google Chrome. Použité školící materiály jsou k dispozici na CD, jež je přílohou této bakalářské práce.
3.8
Plány do budoucna
Při integraci služby Google Apps jsem se přesvědčil, že její vývoj je stále intenzivní a nové funkce se uvolňují velmi často. Z toho důvodu je nutné v budoucnu pravidelně sledovat zdroje informací, které ohlašují novinky. Mezi nejdůležitější zdroje patří: • oficiální blog novinek Google Apps
35
• Google Apps Release Calendar36 (možné odebírat ve vlastním Google Kalendáři) 35 36
3.8. Plány do budoucna • oficiální blog Google Apps
37
• oficiální blog Google Apps vývojářů
38
• oficiální Twitter39 účet Google Apps vývojářů @GAppsUpdates Za pomocí služby Google Weby bych chtěl spolu se zaměstnanci vytvořit malý informační portál pro vnitřní potřeby klienta. Na portál bych zároveň umístil nápovědu k produktu Google Apps a návody pro nově příchozí zaměstnance. Již nyní vím, že bych chtěl v budoucnu u klienta zavést technologii Google Cloud Print, která umožňuje v organizaci zasílat na tiskárny dokumenty pomocí internetového prohlížeče Google Chrome. V budoucnu bych také rád vydal novější verzi synchronizačního nástroje doplněnou o možnost konfigurace synchronizovaných položek.
37
URL: http://googleapps.blogspot.cz URL: http://googleappsdeveloper.blogspot.cz 39 Sociální síť URL: www.twitter.com
38
39
Závěr Při zpracování této bakalářské práce jsem se zajímal o cloudové řešení kancelářských nástrojů Google Apps ve verzi pro vzdělávání. Přestože v soukromém životě často používám některé bezplatné služby od firmy Google, seznámil jsem se s dalšími zajímavými funkcemi, o kterých jsem dosud nevěděl. Zároveň jsem objevil produkt Office 365 od společnosti Microsoft, který silně konkuruje Google Apps. Z pohledu studenta oboru Informační technologie, který se zaměřuje na administraci výpočetní infrastruktury, mě zaujaly nástroje, které firma Google nabízí administrátorům Google Apps pro usnadnění správy. Získané znalosti o produktu Google Apps jsem měl možnosti ověřit v praxi. Kompletní popsané řešení je nasazeno ve Střední zdravotnické škole a Vyšší odborné škole zdravotnické v Českých Budějovicích. Některé části práce jsou uzpůsobené na míru tomuto klientovi, nicméně většinu postupů a implementací jsem vymýšlel s důrazem na přenositelnost. Kromě nasazení jsem zajišťoval školení a technickou podporu zaměstnancům výše zmíněné školy. Vývoj produktu Google Apps je velmi intenzivní, a proto budu v budoucnu pro klienta službu spravovat a vymýšlet nové možnosti integrace. Zadání jsem splnil a jsem si jistý, že práce pro mě byla přínosem, neboť bych se této oblasti nadále rád věnoval.
41
Literatura [1] BELKO, P.: Týmová spolupráce v Microsoft Office, SharePointu, Office Web Apps a Live Mesh. Brno: Computer Press, 2011, ISBN 978-80-2513574-7. [2] DEINUM, M.; SERNEELS, K.; YATES, C.; aj.: Pro Spring MVC: with Web Flow. Springer Science+Business Media, 2012, ISBN 9781430241560. [3] FERREIRA, J.: Google Script: Enterprise Application Essentials. O’Reilly, 2012, ISBN 978-1-449-31852-9. [4] Google Inc.: Developer’s Guide Overview. [online]. [cit. 201304-17]. Dostupné z: https://developers.google.com/gdata/docs/ developers-guide [5] Google Inc.: Google APIs Client Libraries. [online]. [cit. 2013-0417]. Dostupné z: https://developers.google.com/compute/docs/ api/libraries [6] Google Inc.: Security and privacy overview. [online]. [cit. 2013-0417]. Dostupné z: http://support.google.com/a/bin/answer.py?hl= en&answer=60762 [7] Google Inc.: Security Whitepaper: Google Apps Messaging and Collaboration Products. [online]. [cit. 2013-04-20]. Dostupné z: http://bit.ly/ Y82CMn [8] Google Inc.: Using OAuth 2.0 to Access Google APIs. [online]. [cit. 2013-04-20]. Dostupné z: https://developers.google.com/ accounts/docs/OAuth2 43
Literatura [9] Živě.cz: Hybridní scénáře nasazení Office 365. [online]. [cit. 2013-0417]. Dostupné z: http://www.zive.cz/clanky/hybridni-scenarenasazeni-office-365/sc-3-a-168322/ [10] KUBÁLEK, T.; KUBÁLKOVÁ, M.; TOPOLOVÁ, I.: Microsoft Office 365 - systém sjednocené komunikace. Brno: Tribun EU, 2012, ISBN 978-80-263-0245-2. [11] Microsoft Corporation: Plány a ceny systému Office 365 pro vzdělávací instituce. [online]. [cit. 2013-04-29]. Dostupné z: http://office.microsoft.com/cs-cz/academic/office-365pro-skoly-FX103045755.aspx [12] MOREL, M.; CADET, P.; ALVES, M.; aj.: Google Apps: Mastering integration and customization. Packt Pub. Ltd., 2011, ISBN 978-1849692-16-8. [13] Smith, J.: Service Accounts have arrived. [online]. [cit. 2013-0420]. Dostupné z: http://googledevelopers.blogspot.cz/2012/03/ service-accounts-have-arrived.html [14] Wikipedia: ISO/IEC 27001. [online]. [cit. 2013-04-27]. Dostupné z: http://en.wikipedia.org/wiki/ISO/IEC_27001
44
Příloha
Seznam použitých zkratek AD Active Directory AOP Aspect-oriented programming API Application Programming Interface CD Compact disc CNAME Canonical Name Record CRM Customer relationship management CSS Cascading Style Sheets CSV Comma-separated values DNS Domain Name System DHCP Dynamic Host Configuration Protocol EWS Exchange Web Services GADS Google Apps Directory Sync GAPS Google Apps Password Sync GB Gigabyte GFS Google File System HTTPS Hypertext Transfer Protocol Secure HTML HyperText Markup Language 45
A
A. Seznam použitých zkratek ICT Information and communications technology ISO International Organization for Standardization IMAP Internet Message Access Protocol IT Informační technologie J2EE Java 2 Enterprise Edition JDBC Java Database Connectivity JSON JavaScript Object Notation JSP JavaServer Pages JWT JSON Web Token MSI Microsoft Windows Installer MSSQL Microsoft Structured Query Language MVC Model-view-controller MX Mail Exchange Record POM Project Object Model RID Relative identifier RFC Request for Comments SDK Software development kit SQL Structured Query Language TB Terabyte URL Uniform Resource Locator WYSIWIG What you see is what you get XML Extensible Markup Language
46
Příloha
Obsah přiloženého CD
GA-SYNC......................Zdrojový kód synchronizačního nástroje Instalace Google Chrome ChromeEnterpriseInstallator.msi..MSI balíček pro instalaci Google Chrome Chrome-PolicyTemplates.adm.....Šablona skupinových politik Školení..........................Materiály pro školení zaměstnanců Text-práce..............................................text práce thesis.pdf...........................text práce ve formátu PDF Thesis-LaTeX .. složka se zdojovým kódem práce ve formátu LATEX 47