Serverová Aplikace Pro Mobilní Katalog Smartlib
Total Page:16
File Type:pdf, Size:1020Kb
Masarykova univerzita Fakulta}w¡¢£¤¥¦§¨ informatiky !"#$%&'()+,-./012345<yA| Serverová aplikace pro mobilní katalog SmartLib diplomová práce Bc. Tomáš Hrabal Brno, Jaro 2013 Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Bc. Tomáš Hrabal Vedoucí práce: prof. RNDr. Jiří Hřebíček, CSc. ii Poděkování Na tomto místě bych rád poděkoval Jonáši Ševčíkovi za vedení projektu SmartLib. Jaromíru Dvořáčkovi a Marku Jelenovi za rady při vývoji a po- mocnou ruku s nasazením projektu. iii Shrnutí Diplomová práce se zabývá návrhem, popisem implementace a produkčního nasazení serverové aplikace SmartLib, sloužící uživatelům mobilních klientů a knihovníkům Masarykovy univerzity. V práci jsou diskutována a porovnána řešení datové struktury, včetně výběru toho nejvhodnějšího. Práce ve všech částech poukazuje na spolupráci se studenty vyvíjejícími její mobilní část. iv Klíčová slova SmartLib, Knihovna, Mobilní aplikace, NoSQL, Serverová aplikace, Datová struktura, API v Obsah 1 Popis systému ............................3 1.1 Knihovnický systém na Masarykově univerzitě .........3 1.1.1 Aleph . .3 Parametry Alephu . .3 Nedostatky Alephu . .4 1.1.2 SmartLib . .4 Mobilní aplikace . .5 1.1.3 Vlastní aplikace . .5 2 SmartLib ...............................7 2.1 Implementace ...........................7 2.1.1 Ruby . .7 Sinatra vs Ruby on Rails . .8 Rozšíření Sinatry: Git. Bundler a Gemy . .9 2.1.2 OpenShift . .9 2.1.3 SQL/NoSQL . 10 Sequel a instalace databáze . 10 MongoDB . 11 ElasticSearch . 12 2.1.4 Služby třetí strany . 13 MailGun . 13 Veřejný repozitář . 13 Externí služby pro detaily knih . 14 3 Návrh systému ............................ 16 3.1 Případy užití ........................... 16 3.1.1 Parser knih z Alephu . 16 3.1.2 Mobilní API . 18 3.1.3 Webové rozhraní . 20 3.2 Diagram aktivit .......................... 20 3.2.1 Parsování záloh databáze Alephu . 20 3.2.2 Hledání knihy . 22 3.2.3 Hodnocení knihy . 22 3.3 Sekvenční diagramy ....................... 22 3.3.1 Aktivita m14_check_availability . 22 3.3.2 Aktivita P7_parse_book . 24 3.4 Databáze ............................. 25 3.4.1 MongoDB . 26 3.4.2 MySQL . 28 1 3.4.3 ElasticSearch . 30 3.4.4 MySQL + ElasticSearch . 31 3.5 Porovnání databázových řešení ................. 32 3.5.1 Plnění databáze porovnávanými zálohami . 33 3.5.2 Porovnání času vyhledávání . 33 3.5.3 Porovnání relevance vyhledávání MySQL a ElasticSearch 35 3.5.4 Porovnání relevance vyhledávání ElasticSearch a Aleph 36 3.5.5 Shrnutí . 38 4 Implementace obsluhy knih pro koncová zařízení ...... 40 4.0.6 REST . 40 4.0.7 JSON API, HTTP Hlavičky . 41 4.0.8 API . 42 API pro MySQL . 43 API pro ElasticSearch . 45 4.0.9 Parser . 48 4.0.10 Registrace uživatelů . 51 5 Implementace webového rozhraní pro knihovníky ...... 53 5.1 Popis ................................ 53 5.2 Implementace ........................... 54 5.2.1 Implementace správy knihoven . 54 6 Aplikace jako celek ......................... 58 6.1 Použité gemy ........................... 58 6.2 Struktura aplikace a zásady psaní kódu ............ 59 6.2.1 Zásady psaní kódu . 62 7 OpenShift ............................... 63 7.1 Speciální implementace pro OpenShift ............. 63 7.1.1 Umístění konfiguračního souboru . 63 7.1.2 Cron . 63 7.1.3 Kontrola dostupnosti služeb . 64 7.1.4 Post-deploy . 64 7.2 Konfigurace a instalace ...................... 64 8 Umístění projektu .......................... 66 8.0.1 Veřejný repozitář . 66 8.0.2 Produkční aplikace . 66 9 Závěr .................................. 67 2 1 Popis systému 1.1 Knihovnický systém na Masarykově univerzitě Mezi jednu ze základních služeb nabízející studentům většina univerzit je síť knihoven. Ne jinak je tomu i u Masarykovy univerzity, dále MU. Narozdíl od jiných univerzit MU nemá jednu ústřední knihovnu, ale 9 fakultních ústředních knihoven a několika dalších specializovaných knihoven [1]. O správu a rozvoj knihovního systému se stará Knihovnicko-informační centrum MU. V současné době je v knihovnách MU deponováno přes 1.4 miliónu jednotek [1] a využívat je mohou jak studenti/učitelé, tak bývalí absolventi univerzity. 1.1.1 Aleph Od roku 2002 využívá MU jako svůj jednotný systém pro správu knih Aleph. Před nasazením byl využíván systém TINLIB, usňadňující knihovnám au- tomatizaci a nástup informačních technologií do knihoven. Systém Aleph vyvíjí izraelská firma ExLibris a v současné době patří mezi přední kni- hovnické systémy na světě [2]. Krom MU se na zavedení a zakoupení systému podílely i univerzity VUT a VŠE. Základními rysy Alephu jsou škálovatelnost, flexibita, systém lze sestavit na míru konkrétním požadavkům, teoreticky neomezená velikost databáze, spolehlivost, jednoduchost a otevřenost, za- ložená na výměně informací skrze XML. Na MU se začal využívat také díky tomu, že jej v současné době využívají knihovny několika partnerů MU, mimo jiné např. Moravská zemská knihovna v Brně a již v roce 2002 existovala česká lokalizace. Parametry Alephu Aleph využívá třívrstvou architekturu. Tou je myšleno rozdělení na vrstvu ap- likační, prezentační a databázovou. Databázová vrstva využívá pro ukládání dat databázový systém Oracle. Aplikační logika je určena primárně pro linux- ové distribuce. Prezentační logika využívá 2 způsobů přístupu. Kromě Win- dows klienta pro správu aplikace se běžný uživatel/čtenář dostane s Alephem do styku především za pomoci webového prohlížeče. Webová aplikace, pro MU je umístěna na webu http://aleph.muni.cz, nabízí uživateli vyhledávání v rejstřících všech knihoven a detaily o knihách samotných. Aleph na MU umožňuje vyhledávát závěrečné práce. Přihlášeným uživatelům, rozumíme-li tím osoby s identifikačním číslem na MU, nabízí přehled výpůjček. 3 1. Popis systému Pokud budeme mluvit o detailech knih, omezuje se Aleph pouze na výpis údajů s knihou přímo souvisejících. Nalezneme zde ISBN, autory, rok vydání, popis. Mimo toho můžeme sledovat konkrétní fyzické kopie knihy. A to jejich umístění v jednotlivých knihovnách univerzity, dostupnost i způsob výpujčky. Protože Aleph nenabízí žádnou interakci vůči uživatelům, doplňuje ho nádstavba využívaná pouze na MU, jménem Beth. Tento alternativní katalog je využíván u knihoven na fakultách FF, FSS, PedF a ESF. Umožňuje přidávat k dokumentům texty, tagy, recenze, případně knihy hodnotit, pořádat aukce aj. Nedostatky Alephu Pokud vezmeme v potaz existenci alternativního katalogu Beth, máme zde pokus o socializaci a větší interaktivnost Alephu. Online aktivity, jakými jsou výměna názorů a vlastních poznatků jsou dnes trendem nahrazujícím předávání informací, v tomto případě o knihách, ústně. Krom zaměření na konkrétní fakulty však opomíjí další důležitý aspekt dnešní digitální doby a to přenosná mobilní zařízení. Webová prezentace omezuje uživatele pouze na monitor jeho počítače. Webové stránky Alephu, potažmo Bethu, nejsou v tuto chvíli připraveny na nástup mobilních zařízení s malým displejem a ovládají se primárně dotekem po obrazovce. Uživatel s takovým zařízením navíc často přistupuje k internetu skrze datový tarif mobilního operátora, je tedy krom pohodlnosti dané šířkou obrazovky omezen i rychlostí připojení a potřebou o co nejmenší množství přenesených dat. Pokud se pokusíme praco- vat jako čtenář s Alephem v chytrém telefonu, pravděpodobně neshledáme způsob ovládání jako příjemný a raději se posadíme za počítač. Při každém požadavku navíc dostaneme opět a znovu kompletní webovou stránku. Z pohledu mobilnosti si můžeme vymyslet spousty dalších důvodů, proč není pouze webová prezentace zcela vyhovující. 1.1.2 SmartLib S řešením daného stavu se na MU pokusil přijít projekt SmartLib. Základní myšlenka vzešla z možnosti navigovat pomoci mobilní aplikace čtenáře po knihovně přímo k regálu s knihou. K tomuto nápadu se přidala další dodatečná funkcionalita, která se mírně překrývá s funkcionalitou Bethu a měla přidat socializační vrstvu k Alephu. Prototyp mobilní aplikace pro operační systém Android zpracoval jako svou diplomovou práci v roce 2011 Mgr. Jonáš Ševčík[5] a v roce 2012 ji začal rozšiřovat v rámci doktorského studia. Na jeho práci navázali studenti Michal Halaj[7] s mobilní aplikací pro Windows 4 1. Popis systému phone a Hoa Quoc Tran s rozšířením klienta pro Android [6]. Na backendové aplikaci pracoval Mgr. Marek Jelen, během projektu v předmětu vyučovaném na MU PV226, z kterého je tato diplomová práce. Výstupem práce všech těchto lidí se stala externí nádstavba Alephu pro mobilní zařízení, poskytující čtenářům nejen chybějící funkčnost, nastíněnou v předchozí kapitole 1.1.1, ale i další funkcionalitu. Nasazení mobilních aplikací v MU začalo v průběhu prosince roku 2012 a jejich vývoj stále pokračuje. Mobilní aplikace Současný stav k březnu 2012 je aplikace pro zařízení s operačním systémem Android a Windows Phone, přičemž se pracuje na verzi pro produkty od firmy Apple. Jak bude v práci nastíněno dále, aplikace využívají pro načítání dat pouze backendovou část popisovanou v této diplomové práci, která není součástí Alephu, pouze od něj odebírá některá data. Z toho vyplývá např. nutnost registrace uživatelů v případě hodnocení knih. Základními možnostmi jsou vyhledávání titulů nejen podle jejich jména či jména autorů ale také vyhledávání podle čárového kódu titulu, charakterizujícím unikátní kód ISBN. Čárový kód se načítá přímo přes fotoaparát mobilního zařízení. Detail knihy nabízí kromě obecných informací