BAKALÁŘSKÁ PRÁCE. Fulltextové vyhledávání v Unicorn ES pomocí Lucene. Fulltext searching in Unicorn ES by Lucene. Miroslav Škařupa

Rozměr: px
Začít zobrazení ze stránky:

Download "BAKALÁŘSKÁ PRÁCE. Fulltextové vyhledávání v Unicorn ES pomocí Lucene. Fulltext searching in Unicorn ES by Lucene. Miroslav Škařupa"

Transkript

1 BAKALÁŘSKÁ PRÁCE Fulltextové vyhledávání v Unicorn ES pomocí Lucene Fulltext searching in Unicorn ES by Lucene Miroslav Škařupa

2 Unicorn College 2010 Unicorn College, V Kapslovně 2767/2, Praha 3, Název práce v ČJ: Název práce v AJ: Autor: Fulltextové vyhledávání v Unicorn ES pomocí Lucene Fulltext searching in Unicorn ES by Lucene Miroslav Škařupa Akademický rok: 2009/2010 Kontakt: skarupa.mirek@volny.cz Tel.: (+420)

3 1. ZADÁNÍ 3

4 2. ABSTRAKT Cílem této bakalářské práce je, na základě doporučených technologií (Lucene, Java, Tomcat, Linux, Hadoop), navrhnout použitelnou Open Source alternativu dosavadního fulltextového vyhledávání v Unicorn ES, závislého na Oracle. Práce je z části rešerše, z části analytickou (analýza požadavků) i architektonickou dokumentací (4+1 view) a v neposlední řadě obsahuje samotnou implementaci navrhovaného řešení. V závěru je uvedeno celkové shrnutí navrženého řešení a přínosy pro samotného autora této bakalářské práce. V úvodní (rešeršní) části je nastíněna problematika a specifika fulltextového vyhledávání jako takového a představení hlavního použitého nástroje Lucene. Nemalé úsilí bylo věnováno pochopení motivace zadavatele ke změně dosavadního způsobu fulltextového vyhledávání a jakých cílů chce tímto dosáhnout. Dále bylo nezbytné správně identifikovat, porozumět a zachytit veškeré požadavky zadavatele na optimální fungování fulltextového vyhledávání. Toto vše je obsaženo v následující (analytické) části. Nutností pro započetí návrhové (architektonické) části bylo pochopení architektury Unicorn ES jako takové, což zahrnovalo seznámení se s dílčími principy vnitřní skladby a fungování komponent, artefaktů a dalších jeho součástí, jež byly na straně Unicorn ES zapojeny do procesu vyhledávání, měly s ním určitým způsobem co do činění a ovlivňovaly implementaci fulltextového vyhledávání. Na základě znalostí z předešlých fází bylo možno přistoupit k započetí práce na návrhu implementace fulltextového vyhledávání v nyní již zmapovaném prostředí Unicorn ES. Tato část ve velké míře obsahuje popis a hlavně diagramy a modely, zachycující jak strukturální skladbu navrhovaného řešení, tak dynamickou podobu fungování jednotlivých součástí. Samotná implementace řešení je součástí této práce v podobě přiloženého CD. V poslední části je celkové shrnutí celého projektu a zároveň jsou zde uvedeny přínosy pro samotného autora této bakalářské práce, jež jejím vypracováním získal. Klíčová slova: fulltextové vyhledávání, indexace, Lucene, Solr, Java, distribuované úložiště idexů, Tomcat, Linux, webové služby, Hadoop, ActiveMQ, Axis2 4

5 3. ABSTRACT The goal of this bachelor thesis is, on the base of recommended technologies (Lucene, Java, Tomcat, Linux, Hadoop), to design applicable Open Souce alternative to the current fulltext searching in Unicorn ES, dependent on Oracle. This work is partly recherche, partly analytical (requirements) also architectural documentation (4+1 view) and last but not least consists of the proposed solution implementation. In the end is mentioned the proposed solution conclusion and benefits for author of this work. In the opening (recherche) part are outlined problems and specifics of the fulltext searching and introduction of the main applied tool Lucene. There was a big effort dedicated to understanding the submitter's motivation for current way of fulltext search change and what is the goal, that should be reached by this. Another goal was to identify, understand and collect all the submitter's requirements, necessary for proper fulltext searching function. All this is written in the (analytical) part. There was necessity to understand Unicorn ES architecture before entering the design (architectural) part. This includes familiarization with the principles of the inner structure and component, artifacts and other components principles, which has something to do with the fulltext searching implementation and affects it. On the base of knowledges from the previous phases was possible to start the fulltext searching implementation design. This part mostly consists of description, but also diagrams and models, noting structural and dynamical view of certain parts functioning. CD with implementation is also supplement of this work. The last part is the whole project conclusion and also mentions the benefits for author of this work. Keywords: fulltext searching, indexing, Lucene, Solr, Java, distributed index storage, Tomcat, Linux, web services, Hadoop, ActiveMQ, Axis2 5

6 4. PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma Fulltextové vyhledávání v Unicorn ES pomocí Lucene jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou v práci citovány a jsou též uvedeny v seznamu literatury a použitých zdrojů. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb. V Praze dne Miroslav Škařupa. jméno příjmení 6

7 5. PODĚKOVÁNÍ Děkuji vedoucímu bakalářské práce Mgr. Peteru Buchlákovi za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce. Dále děkuji Ing. Petru Ciochoňovi za konzultační činnost, potřebnou pro správné pochopení konkrétní problematiky a požadavků na fulltextové vyhledávání ve firmě Unicorn a.s.. 7

8 6. OBSAH 1. Zadání Abstrakt Abstract Prohlášení Poděkování Obsah Úvod Teorie Fulltextového vyhledávání Úvod Fulltextové vyhledávání Princip fungování fulltextového vyhledávání Index (Forward & Inverted index) Představení Lucene/Solr Úvod Historie Důvod výběru Lucene/Solr Lucene Solr Představení Hadoop Úvod Hadoop Distributed File System MapReduce Analýza Úvod Popis problému Návrh řešení Klíčoví uživatelé Popis systému High-level pohled Rozdělení na komponenty Rozhraní systému Funkční požadavky Nefunkční požadavky Usecase model Design Úvod view Logický pohled Vývojový pohled Procesní pohled Fyzický pohled Usecase pohled UC-1 Vytvořit index Usecase pohled UC-4 Vyhledat výraz v indexu Plán cílového řešení Jazyková analýza Bezpečnost Distribuovanost Implementace Úvod Vytvoření indexační zprávy Zpracování indexační zprávy

9 Vyhledávací dotaz na Apache Solr Zpracování vyhledávací odpovědi Apache Solr Spuštění, testování výsledného řešení Spuštění ukázky distribuovanosti Dodatek Závěr Komunikace Indexování, distribuovanost Vyhledávání Vícejazyčnost Bezpečnost Prototyp Open Source řešení Osobní přínos Conclusion Communication Indexing, distributed solution Searching Multi-language support Security Prototype Open Source solution Personal benefits Seznam použité literatury Seznam použitých symbolů a zkratek Seznam tabulek Seznam obrázků Seznam příloh Příloha č. 1 CD s implementací Adresář SW Adresář Solr Adresář SolrCloud

10 7. ÚVOD Smyslem a cílem této práce je nejlépe zcela vyřešit, spíše však nastínit možné řešení konkrétního a reálného problému s dosavadním způsobem vyhledávání v informačním systému Unicorn ES firmy Unicorn a.s. (dále zadavatel). V současnosti u zadavatele vyhledávání funguje na základě funkčnosti intermedia Index používané databáze Oracle 10g Standard Edition společnosti Oracle, což sebou nese určité problémy. Problémem je omezení Standard Edition na čtyři procesory, omezení funkčnosti v oblasti Oracle intermedia Index nelze provádět online přepočítávání indexů, silně je omezena škálovatelnost, atd. Jedním z možných řešení je přejít na Oracle Enterprise Edition, ale vzhledem k její finanční náročnosti na licenci bylo rozhodnuto o hledání Open Source alternativy dané problematiky, kdy jedním z možných by mohlo být řešení, založené na fulltextové vyhledávací knihovně Lucene od Apache Software Foundation, čemuž se právě věnuje tato bakalářská práce. Práce je rozdělena do několika hlavních částí. Jako úvod do problematiky jsou v kapitole Teorie fulltextového vyhledávání představeny principy tohoto typu vyhledávání. V následujících kapitolách jsou představeny hlavní nástroje Apache Lucene / Solr, jako indexovací, vyhledávací nástroj a Apache Hadoop, jako možné distribuované řešení indexu. Kapitola s názvem Analýza dává odpovědi na otázky, týkající se popisu stávajícího stavu, jaké požadavky jsou kladeny na nové řešení a lze zde najít hrubý koncept možného řešení, včetně schématických modelů. Smyslem kapitoly Design je, pomocí 4+1 view, popsat z několika pohledů specifika navrženého řešení, jehož některé významné implementační momenty jsou zachyceny v kapitole Implementace. V Závěru je formulace finálního shrnutí celé práce a míra úspěšného splnění očekávaného. 10

11 8. TEORIE FULLTEXTOVÉHO VYHLEDÁVÁNÍ 8.1 Úvod Hlavním nosným tématem této práce je problematika fulltextového vyhledávání. Proto je vhodné, jako úvod do této problematiky, uvést několik aspektů s tím spojených. Kapitola stručně shrnuje hlavní principy fulltextového vyhledávání a slouží jako úvod do této oblasti, přičemž si neklade za cíl detailně zmapovat oblast fulltextového vyhledávání jako takového. Dále je zde představen použitý nástroj Lucene, taktéž důvody pro jeho volbu, včetně popisu vlastností a principů jeho fungování. 8.2 Fulltextové vyhledávání Fulltextové vyhledávání je speciální typ vyhledávání, převážně ve velkých objemech dat, kdy pomocí předpřipravených datových struktur (indexů) výrazným způsobem urychlují zpřístupnění výsledkové sady uživateli Princip fungování fulltextového vyhledávání 11

12 Obrázek č. 1 Princip fungování fulltextového vyhledávání[1] Získání dat - Nejprve je pochopitelně potřeba získat nějaká data, která poté budou vyhledávána. Data mohou pocházet z různých zdrojů (např. souborový systém, databáze, web, manuálně zadaná data) a také mohou být v různých formátech. Nejčastější je tzv. fulltextové vyhledávání (full text search), ale kromě textu je možné vyhledávat třeba obrázky nebo video. Kromě toho text nemusí pocházet v plain-textové podobě, ale i jiných formátech - HTML, XML, PDF, Open Document Format, MS Office formátech apod. Parsování - Jelikož data přicházejí v různých formátech, je nutné je napřed rozparsovat. Během parsování si search engine připraví informace, které použije pro vyhledání původních dat. Dokumenty pro indexaci - Search engine si vstupní data převede do formátu určeného k tzv. indexaci. Tyto "dokumenty" obsahují informace, ze kterých search engine dokáže vyrobit/rozšířit svůj index. Index Index je datová struktura, v níž je uloženo mapování obsahu na jeho umístění [28]. Index slouží k rychlému získávání informací. Prostřednictvím indexu je search engine schopen vyhledávat informace mnohem efektivněji než prostým procházením samotných dat (což by znamenalo značnou spotřebu času i výpočetního výkonu). Např dokumentů lze pomocí indexu prohledat v řádech milisekund, ale prohledání všech dokumentů by mohlo trvat řádově hod- 12

13 iny. Index sice zabírá dodatečné místo navíc (oproti samotným datům) a je třeba jej spravovat a aktualizovat, nicméně tyto náklady se kvůli zrychlení vyhledávání určitě vyplatí. Zdroj: [1] Index (Forward & Inverted index) Forward index tvoří uspořádané dvojice dokumentu a slov v něm obsažených (viz. Tab. č. 1). Vytváří se při pársování a přípravě dokumentu pro indexaci, kdy je vhodné si ke konkrétnímu dokumentu rovnou zaznamenat slova jím obsažená. Setříděním této struktury ne dle dokumentu, ale dle jednotlivých slov se z Forward indexu vytvoří Inverted index. Forward index Dokument Dokument 1 Dokument 2 Slova obsažená v dokumentu Skákal, pes, přes, oves Skákal, přes Dokument 3 Skákal Tabulka č. 1 Forward index[2], upraveno Inverted index tvoří uspořádané dvojice slov a dokumentů, jež tato slova obsahují (viz. Tab. č. 2). Jak již bylo uvedeno výše, lze jej vytvořit setříděním Forward indexu dle slov. Jelikož nás ve fulltextovém vyhledávání primárně zajímají uživatelem zadaná hledaná slova a až na základě těchto poté následně hledáme dokumenty, ve kterých jsou obsažena, je právě tato datová struktura vhodná pro účely fulltextového vyhledávání (u každého slova máme ihned po ruce odkazy na soubory, obsahující tato slova). Inverted index Hledané slovo Dokument(y) obsahující hledané slovo Skákal Dokument 1, Dokument 2, Dokument 3 pes Dokument 1 přes Dokument 1, Dokument 2 oves Dokument 1 Tabulka č. 2 Inverted index[2], upraveno 13

14 9. PŘEDSTAVENÍ LUCENE/SOLR 9.1 Úvod Jelikož je jádrem navrženého řešení knihovna Lucene, je vhodné si ji blíže představit, což je náplní této kapitoly. Zdroj: [3] 9.2 Historie IR (Information Retrieval) knihovna Lucene je původním dílem autora jménem Doug Cutting, který ji nejdříve nabízel pomocí webových stránek SourceForge. V roce 2001 se Lucene stala součástí rodiny Jakarta, náležející pod The Apache Software Fundation, kde se v roce 2005 stala top-level Apache projektem, který dnes již zahrnuje řadu vlastních subprojektů (např.: Lucene Java, Droids, Lucene.Net, Lucy, Mahout, PyLucene, Solr, Open Relevance Project). 9.3 Důvod výběru Lucene/Solr knihovna Lucene byla již předvybrána a zadavatelem doporučena free Open Source licence Apache License, Version za Lucene stojí silná skupina The Apache Software Foundation kladné ohlasy a hodnocení ve srovnání s jinými nástroji (Zdroj: [5], [6], [7]) reference na projekty, jež knihovnu Lucene používají (Apple, Eclipse IDE, the Encyclopedia Britannica CD-ROM/DVD, FedEx, the Mayo Clinic, Netflix, Linked In, Hewlett-Packard, New Scientist magazine, Salesforce.com, Atlassian (Jira), Epiphany, MIT s OpenCourseware and Dspace, Akamai s EdgeComputing platform, Digg a mnoho dalších 2 ) 1 - Apache License, Version 2.0, Projekty založené na Lucene, 14

15 9.4 Lucene Lucene: je vysoce výkonná, škálovatelná knihovna pro vyhledávání informací je poskytována The Apache Software Foundation pod open-source licencí Apache License, Version 2.0 obsahuje snadno srozumitelné a použitelné API pro indexaci a vyhledávání je implementováná v jazyce Java je schopna pracovat s velkým množstvím formátů dat (lokální i vzdálené dokumenty, Microsoft Word dokumenty, XML, PDF a další formáty, ze kterých je možno extrahovat textové informace y, instant messenging chat, atd.) je schopna pracovat s dotazy typu: +George +Rice -eat -pudding, Apple -pie +Tiger, animal:monkey AND food:banana je dodávána jako JAR soubor bez dalších dodatečných závislostí, který je potřeba zakomponovat do celkového konceptu příslušné aplikace je portována do dalších jazyků (Perl, Python, C++, C#,.NET) není ready-to-use aplikace 15

16 Obrázek č. 2 Kompetence Lucene 3 [3] Díky výše uvedenému patří Lucene mezi jedny z nejpoužívanějších vyhledávacích nástrojů. 3 - Kompetence Lucene, šedě zabarvené součásti jsou v kompetenci Lucene 16

17 9.5 Solr Zdroj: [4] Solr je Open Source (Apache License, Version 2.0) platforma pro enterprise vyhledávání od The Apache Software Foundation, využívající knihovnu Lucene. Kromě jiného nabízí výkonné fulltextové vyhledávání, dynamický clustering, práci s mnoha formáty dat, škálovatelnost, distribuované vyhledávání, replikaci indexu a další. 17

18 10. PŘEDSTAVENÍ HADOOP 10.1 Úvod Apache Hadoop je Open Source (licence ASL 2.0) projekt The Apache Software Foundation. Zahrnuje (kromě jiných) subprojekty Hadoop Distributed File system a MapReduce. Jedná se o software pro spolehlivé, škálovatelné a distribuované výpočty. Zdroj: [25] Hadoop Distributed File System Hadoop Distributed File System (HDFS) je distribuovaný souborový systém, určený pro běh na běžně používaném serverovém hardware. Zajišťuje vysokou míru tzv. fault-tolerance, přístupu k datům a je vhodný pro aplikace s velkým množstvím dat. Jedná se o architekturu typu master / slave, jejímiž hlavními součástmi jsou tzv. NameNode a DataNode. NameNode je master server, který drží a spravuje informace o DataNode, které zároveň řídí. DataNode je slave server, který přímo řídí ukládání dat. Data mohou být rozložena na několik bloků a tyto bloky separátně uloženy na několika DataNode, popřípadě pomocí replikace rozkopírována. 18

19 Obrázek č. 3 HDFS architektura[25] 10.3 MapReduce MapReduce je model pro hromadné zpracování dat. Pracuje na principu rozděl a panuj a dále také na předpokladu, že je lépe přenést výpočetní úlohu za daty, než přenášet data za výpočetní úlohou. V praxi to znamená to, že složitá úloha, jejíž výpočet na jednom serveru by byl neúměrně časově náročný, se rozloží na vícero dílčích úloh na jednotlivých serverech a tyto se poté agregují do jedné výsledkové sady. Model MapReduce se skládá ze dvou hlavních částí. První je funkce Map, která obsahuje výpočetní logiku, která se provádí nad jednotlivými distribuovanými daty. Druhá je funkce Reduce, která dílčí výsledky jednotlivých Map funkcí agreguje a zpracovává konečný výsledek. 19

20 Obrázek č. 4 MapReduce[26] 20

21 11. ANALÝZA 11.1 Úvod V analytické části jsou zachyceny veškeré informace, sloužící ke správnému pochopení motivace a cílů zadavatele pro změnu v přístupu koncepce vyhledávání a taktéž požadavků, jež na nově navržené řešení klade. Dále je zde obecně nastíněno nové řešení a jeho přínosy Popis problému Společnost Unicorn provozuje vlastní informační systém Unicorn ES, který obsahuje funkčnost fulltextového vyhledávání. Unicorn ES je mimo samotných zaměstnanců společnosti Unicorn nabízen jako Software As A Service. Společnost Unicorn je ve stávajícím řešení fulltextového vyhledávání v Unicorn ES závislá na technlogii Oracle. V Unicorn ES je dosud možno zadávat pouze jednoduché vyhledávací dotazy. Zadavatelem požadováno zadávat vyhledávací dotazy typu: "Najdi všechny aktivní artefakty, za které je kompetentní ředitel UCL a nachází se v organizační jednotce Management v teritoriu UCL a mají na sobě přílohu ve formátu Powerpoint a v jejich popisu je slovo "student"". Společnost Unicorn bude muset perspektivně, s narůstajícím objemem indexů v databázi, řešit rostoucí požadavky na úložiště dat. Současné řešení fulltextového vyhledávání je: založeno (závislé) na technologii Oracle 10g Standard Edition řešeno funkčností Oraclu 10g "InterMedia Index" indexy nelze přepočítávat online řešeno indexací pouze textového obsahu (v XML) artefaktu potencionálně rizikové z hlediska neustálého růstu indexů (z důvodu zachování funkčního vyhledávání nelze indexy zálohovat) omezena škálovatelnost 21

22 11.3 Návrh řešení Nově navržené řešení bude realizováno, vzhledem k Unicorn ES, formou samostatného satelitního subsystému s maximálním využitím Open Source technologií, vlastním operačním systémem a serverem, na kterém bude nasazena komponenta, která bude volána z Unicorn ES a jejíž moduly budou zajišťovat jak indexování a vyhledávání dokumentů, tak ukládání indexů pomocí distribuovaného file systému. Nově navržené řešení je založeno na Open Source technologiích, čímž řeší závislost na komerčním produktu Oracle. Samotné indexování obsahu dokumentů a jejich následné vyhledávání je řešeno pomocí knihovny Lucene/Solr (psané v Javě) od The Apache Software Foundation. Toto Open Source řešení nabízí jak snadnou implementaci a plnohodnotné vyhledávací funkce v mnoha různých formátech dat, tak ukládání a čtení rostoucího množství informací v podobě indexů, formou dynamického clusteringu, škálovatelnosti, distribuovanému vyhledávání a replikaci indexu. Vyhledávání bude řešeno synchronně pomocí SOAP webových služeb (Apache Axis2), indexace asynchronně formou zasílání zpráv na messaging server (Apache ActiveMQ) Klíčoví uživatelé Uživatel Unicorn ES (jeho uživatelé) Popis uživatele Uživatel Unicorn ES, který má potřebu vyhledávat. Může se jednat o uživatele v různých rolích, ale jejich práce v oblasti vyhledávání bude v zásadě velice podobná, ne-li totožná. Tabulka č. 3 Klíčoví uživatelé[27] Odhadovaný počet uživatelů V řádech 1.000, max lidí (aktuálně), postupem doby stále rostoucí 11.5 Popis systému Kapitola poskytuje stručný náhled na navrhované řešení formou komentovaných schémat a diagramů. 22

23 High-level pohled Architektura navrhovaného řešení je koncipována jako klasická architektura klient server, kdy v roli klienta vystupuje server UnicornES a v roli serveru server UnicornESToSolrAdapter, který dále komunikuje se serverem Search Engin, realizující fyzickou indexaci dat. Message Broker, popř. web service provider (Apache Axis2) plní roli jakéhosi komunikačního kanálu klienta se serverem a naopak. Viz. obrázek níže. Obrázek č. 5 High level pohled Rozdělení na komponenty Na následujícím obrázku je v jednoduchosti zobrazena struktura package komponenty (UnicornESToSolrAdapter), zajišťující indexaci a vyhledávání v indexu. Obě tyto package dále závisí na package, obsahující třídu, poskytující spojení se serverem Search Engine (Apache Solr). 23

24 Obrázek č. 6 Komponenty Rozhraní systému Klient při indexaci zadává nutné parametry, jimiž jsou: artefakt - hrubá data k indexaci id artefaktu jméno artefaktu true/false pokud chce smazat index daného artefaktu s daným id preferovaný jazyk indexace Tyto jsou odeslány ve formě zprávy (asynchronní) na frontu v Message Brokeru, odkud si ji převezme server (UnicornESToSolrAdapter), přetransformuje ji na požadavek pro Search Engine, který indexaci fyzicky provede. Klient nečeká na výsledek indexace. --- Klient při vyhledávání zadává nutné parametry, jimiž jsou: výraz pro vyhledávání co, popř. jak hledáme 24

25 počet záznamů ve výsledkové sadě kolik chceme vrátit výsledků číslo stránky výsledkové sady Tyto jsou formou volání webové služby (synchronně, pomocí Web service providera) předány na server (UnicornESToSolrAdapter), který z nich vytvoří a odešle požadavek na Search Engine, který serveru vrátí specifickou odpověď s výsledky hledání. Server z této specifické odpovědi extrahuje informace, které klienta zajímají, což je seznam id nalezených artefaktů, který vloží do výsledkové sady pro klienta, ale navíc, na první místo tohoto seznamu ještě uvede údaj o max. možném potencionálním počtu nalezených artefaktů, který klient potřebuje pro svou funkci stránkování této výsledkové sady. Výsledkovou sadu server vrátí na klienta Funkční požadavky Název požadavku Popis požadavku Základní UC Rizikovost Priorita Vytvořit index Systém vytvoří nový index UC-1, UC-5 Upravit index Systém aktualizuje stávající index UC-2, UC-5 Smazat index Systém smaže index dle id artefaktu UC-3, UC-5 Vyhledat výraz v indexu Systém v uložených indexech nalezne požadovaný výraz a odešle příslušnou výsledkovou sadu do Unicorn ES UC-4, UC-5 Tabulka č. 4 Funkční požadavky[27] 25

26 11.7 Nefunkční požadavky Název požadavku Bezpečnost Lokalizace Škálovatelnost Dostupnost Komunikace vzdáleným voláním rozhraní Implementační požadavky Rychlost Popis požadavku Rizikovost Priorita Přístup jednotlivých rolí pouze k odpovídajícím informacím Schopnost systému fungovat s více jazyky. Minimálně angličtina, španělština, čeština Vzhledem k neustálému rostoucímu objemu indexů a jejich nemožnosti archivace, z důvodu zachování funkčnosti vyhledávání, poroste požadavek na růst datového úložiště Funkčnosti, poskytované pomocí FSE, musí být zajištěny pro dostatečný počet uživatelů FSE bude s Unicorn Universe komunikovat pomocí vzdáleného volání, bez nutnosti implementace prezentační vrstvy. Úlohu jakési prezentační vrstvy přebírá rozhraní, definované na FSE. Obecně - využití Open Source technologií, platformová nezávislost Operační systém - Linux Server - Tomcat Programovací jazyk - Java Doporučený vyhledávací engine - Apache Lucene/Solr Funkčnosti, poskytované pomocí FSE, musí být zajištěny s odpovídající časovou odezvou Tabulka č. 5 Nefunkční požadavky[27] 11.8 Usecase model Navrhované řešení (FSE) obsahuje pět základních funkčností, které jsou využívány ze strany Unicorn ES. Poznámka: funkčnosti Smazání indexu a zvláště Vytvoření indexu a Úprava indexu, jsou si do jisté míry, z implementačního hlediska dosti podobné a proto jsou dále v části Design a zvláště Implementace realizovány ve formě jedné metody, která přebírá dle potřeby různé parametry. Název Popis Rizikovost Priorita UC-1 Vytvořit index Vytvořit index v případě vytváření nového dokumentu vytvoří nový index a uloží jej UC-2 UC-3 Upravit index Smazat index V případě aktualizace již existujícího dokumentu funkčnost Upravit index pouze zajistí aktualizaci stávajícího indexu a uložení těchto změn Smazat index zajistí v případě smazání dokumentu odstranění příslušného, již nepotřebného indexu k danému dokumentu 26

27 UC-4 Vyhledat výraz v indexu Funkčnost Vyhledat výraz v indexu zajišťuje schopnost vyhledávat v indexu (dokumentech) a vrací seznam odkazů na dokumenty, jež obsahují hledaný výraz UC-5 Získat spojení se Search Engine Funkčnost zajistí získání odkazu na Search Engine Tabulka č. 6 Popis usecase Obrázek č. 7 Use case diagram 27

28 12. DESIGN 12.1 Úvod Východiskem pro kapitolu design je předchozí část analytická, ze které je potřeba vycházet a ve které jsou definovány základní předpoklady, principy a očekávání, jež má část designová naplnit view Kapitola design je vypracována ve formě architektonické dokumentace (tzv. 4+1 view 4 ), jejímž cílem je poskytnout srozumitelný pohled na navrhované řešení ze 4+1 perspektiv pro různé role pracovníků, kteří by se na případném zavedení do provozu mohli podílet. Správné pochopení problematiky a úmyslů tvůrce designu je klíčové pro úspěch celého projektu. Každé tzv. view má svou vhodnou formu (diagramy, modely, atd.), jež nejlépe vystihují daný pohled na věc Logický pohled Logický pohled je zaměřen na logickou strukturu systému a jeho rozdělení do logických komponent / vrstev. Architektura navrhovaného řešení je koncipována jako klasická architektura klient server, kdy v roli klienta vystupuje server UnicornES a v roli serveru server UnicornESToSolrAdapter, který dále komunikuje se serverem Search Engin, realizující fyzickou indexaci dat. Message Broker, popř. web service provider (Apache Axis2) plní roli jakéhosi komunikačního kanálu klienta se serverem a naopak. Viz. obrázek níže view

29 Obrázek č. 5 High level pohled Klient při indexaci zadává nutné parametry, jimiž jsou: artefakt - hrubá data k indexaci id artefaktu jméno artefaktu true/false pokud chce smazat index daného artefaktu s daným id preferovaný jazyk indexace Tyto jsou odeslány ve formě zprávy (asynchronní) na frontu v Message Brokeru, odkud si ji převezme server (UnicornESToSolrAdapter), přetransformuje ji na požadavek pro Search Engine, který indexaci fyzicky provede. Klient nečeká na výsledek indexace. --- Klient při vyhledávání zadává nutné parametry, jimiž jsou: výraz pro vyhledávání co, popř. jak hledáme počet záznamů ve výsledkové sadě kolik chceme vrátit výsledků číslo stránky výsledkové sady Tyto jsou formou volání webové služby (synchronně, pomocí Web service providera) předány na server (UnicornESToSolrAdapter), který z nich vytvoří a odešle požadavek na Search Engine, který serveru vrátí specifickou odpověď s výsledky hledání. Server z této specifické odpovědi extrahuje informace, které klienta zajímají, což je seznam id nalezených artefaktů, který vloží do výsledkové sady pro klienta, ale navíc, na první místo tohoto seznamu ještě uvede údaj o max. možném potencionálním počtu nalezených artefaktů, který klient potřebuje pro svou funkci stránkování této výsledkové sady. Výsledkovou sadu server vrátí na klienta

30 Na níže uvedeném obrázku je schématicky popsána struktura indexu, v němž jsou data pro indexaci ukládána a následně vyhledávána. Pro zjednodušení si můžeme pod objektem Index představit klasickou excelovskou tabulku. Poté objekt Document bude představovat jeden záznam / řádek této tabulky. Objekty id, name, content, popř. content_en, es, cs, name_en, es, cs budou představovat jednotlivé sloupce dané tabulky / řádky. Sloupec id obsahuje id artefaktu, který indexujeme a je povinný. Navíc je unikátní pro danou tabulku. Sloupec name obsahuje jméno artefaktu, je taktéž povinný. Sloupec content obsahuje extrahovaný textový obsah z původního artefaktu, zaslaného klientem k indexaci, je povinný a může obsahovat vícenásobný textový obsah. Sloupec content_en, es, cs je obdobou sloupce content, pouze s jinou jazykovou verzí. Obdobně je to u sloupce name_en, es, cs. Navržené řešení podporuje vícejazyčnost a to tak, že si obsah, ve kterém se bude vyhledávat ukládá defaultně v anglickém jazyce a navíc v jazyce, který zvolí klient. Poté (při indexaci, nebo vyhledávání) se na danou jazykovou verzi aplikují patřičné filtry, zlepšující výsledky hledání v tom daném jazyce. Pokud není zvolen klientem preferovaný jazyk, užívá se právě defaultní anglická jazyková verze. Obrázek č. 8 Domain diagram index Vývojový pohled Vývojový pohled zobrazuje systém z pohledu vývojáře, rozdělení systému na subsystémy / moduly / komponenty z pohledu implementace. 30

31 Na níže uvedeném obrázku je v jednoduchosti zobrazena struktura package komponenty (UnicornESToSolrAdapter), zajišťující indexaci a vyhledávání v indexu. Obě tyto package dále závisí na package, obsahující třídu, poskytující spojení se serverem Search Engine (Apache Solr). Obrázek č. 6 Komponenty Na níže uvedeném obrázku je zobrazena vnitřní struktura tříd package, zajišťující indexaci. Hlavní funkčnost je zde soustředěna ve třídě MyMessageConsumer, jejímž hlavním úkolem je, v krátkosti řečeno, transformovat data k indexaci od klienta a přeposlat je na server Search Engine (Apache Solr). Toto je implementováno tak, že třída je v konfiguračním souboru web.xml registrována jako Listener s parametrem load-on-startup, viz. níže. web.xml <listener> <listener-class>cz.skarupa.mirek.index.mymessageconsumer</listener-class> <load-on-startup>1</load-on-startup> </listener> 31

32 Tento fakt, plus skutečnost, že třída implementuje rozhraní ServletContextListener a MessageListener a dále její konstruktor, obsahující metodu (metoda startconnection) pro navázání spojení s Message Brokerem, umožňuje, aby při startu aplikace došlo k vytvoření instance této třídy a tím pádem k započetí odposlouchávání fronty cz.unicorn.indexqueue na Message Brokeru (Apache ActiveMQ). Pokud je z Message Brokeru přijata zpráva, je spuštěna metoda onmessage. V těle této metody je soustředěna logika indexace. Pokud je zpráva určena k smazání indexu, je odeslán příslušný požadavek na Search Engine ke smazání indexu. Pokud je cílem zprávy vytvoření / úprava indexu, je potřeba z obsahu artefaktu, určeného k indexaci extrahovat pouze odpovídající textový obsah (provádí třída TextHandler), popřípadě doplnit ID a název artefaktu. Jelikož systém podporuje více jazyků, dochází zde také k nastavení jazyku, ve kterém budou informace zaindexovány. Poté jsou data odeslána k indexaci. Obrázek č. 9 Class diagram UnicornESToSolrAdapter.cz.skarupa.mirek.index Na níže uvedeném obrázku je zachycena vnitřní struktura tříd package, zajišťující vyhledávání v indexu. Třída SearchWS obsahuje hlavní metodu searchfor, která je volána klientem (UnicornES) a zprostředkovává vyhledávání. Obsahuje obdobnou metodu searchitinsolr, která fyzicky z klientských parametrů vytvoří požadavek, odešle jej na Search Engine, přijme specifickou odpověď serveru a tu vrátí. Metoda searchfor dále pokračuje tím, že ze specifické odpovědi serveru extrahuje požadované informace (seznam ID a max. možný počet nalezených artefaktů), tyto vloží do seznamu a jako výsledkovou sadu vrátí klientovi. 32

33 Obrázek č. 10 Class diagram UnicornESToSolrAdapter.cz.skarupa.mirek.search Na níže uvedeném obrázku je zachycena vnitřní struktura tříd package, zajišťující uskutečnění spojení se Search Engine (Apache Solr). Jelikož je potřebné v rámci celé aplikace zajistit to, aby se spojení uskutečňovalo pomocí jediné instance tohoto připojení, nabízí se implementace této třídy (SolrServerFactory) formou vytvářecího návrhového vzoru Singleton. Obrázek č. 11 Class diagram UnicornESToSolrAdapter.cz.skarupa.mirek.solr Procesní pohled Procesní pohled popisuje dynamický aspekt systému, vysvětluje systémové procesy a jejich komunikaci se zaměřením na runtime chování systému. Níže si popíšeme dva základní procesy / funkčnosti, které navržené řešení nabízí. Je to indexace artefaktu a vyhledávání. Co se týká indexace, je schématicky popsána na níže uvedeném obrázku a jak již bylo zmíněno výše, jelikož se implementačně vytváření, úprava a smazání indexu velice podobají, popisujeme i zde tyto tři funkčnosti jednorázově s tím, že uvedeme jejich případné rozdílnosti. 33

34 Na indexaci se podílí všechny tři součásti navrhovaného řešení (Message Broker, UnicornESToSolrAdapter, Search Engine), plus samozřejmě klientská aplikace (UnicornES). Základním aspektem při procesním pohledu na indexaci je předpoklad, že tato funkčnost je volána klientem při ukládání, úpravě, nebo mazání artefaktu a to tak, že klient na výsledek indexace nečeká a pokračuje dál v toku svého use case a i v případě, že by indexace jako taková v některém svém kroku selhala a nedošlo by k požadované změně, nejedná se o žádnou fatální záležitost, která by se na straně klienta výrazně projevila. To znamená, že se tu jedná o úlohu typu fire & forget, kde lze a je to výhodou, použít asynchronní zasílání zpráv. Toto je zde řešeno formou messagingu mezi klientem a UnicornESToSolrAdapter, který zprostředkovává fronta na Message Brokeru. Další komunikace směrem k Search Engine je již formou klasických HTTP požadavků. Rozdíly mezi vytvořením, úpravou a smazáním indexu jsou následující. Vytvoření a úprava indexu se liší pouze ve výsledku pro Search Engine, který tyto procesy přinášejí (vytvoření: vytvoří se nový index, úprava: přepíše se stávající index), jinak jsou to naprosto totožné procesy. Naproti mazání indexu, kde se nepřenášejí žádné informace k indexaci (mimo Id artefaktu), je potřeba extrahovat informace k indexaci a přetransformovat obsah artefaktu, přicházejícího od klienta, na formát, který je vhodný pro indexaci. Výsledkem smazání indexu je odstranění daného záznamu z indexu dle jeho ID. Obrázek č. 12 Activity diagram indexace 34

35 Co se týče procesu vyhledávání, tento je již, na rozdíl od procesu indexace, řešen synchronně. To znamená, že klient vyvolá funkčnost vyhledávání a čeká na její dokončení (vrácení výsledkové sady) a až poté pokračuje ve svém usecase dál. Na vyhledávání se tím pádem již nepodílí Message Broker, ale do hry vstupuje volání metod pomocí web service (SOAP). Klient předává parametry vyhledávání pomocí volání web service na UnicornESToSolrAdapter, který tyto přeposílá na Search Engine a tento prohledává záznamy ve svém indexu a vrací výsledkovou sadu zpět na UnicornESToSolrAdapter ve formě Solr response. Zde je potřeba extrahovat data, která klienta zajímají. Těmi jsou seznam ID artefaktů, které odpovídají vyhledávacímu výrazu klienta a dále max. možný počet nalezených artefaktů (toto je blíže popsáno / odůvodněno v předešlých kapitolách). Informace jsou klientovi vráceny v podobě výsledkové sady. Obrázek č. 13 Activity diagram hledání 35

36 Fyzický pohled Fyzický pohled popisuje systém z pohledu fyzického rozdělení (topologie) systému a komunikace mezi jednotlivými uzly. Jelikož se do celkového finálního konceptu řešení nepodařilo zahrnout jeho distribuovanost, je níže uvedený fyzický pohled navržen v jakési základní formě (bez distribuovanosti). Určitý nástin potencionání distribuovanosti je řešen dále v oddělené kapitole tohoto dokumentu. Přestože by bylo možno nasadit veškeré funkčnosti navrženého řešení na jeden hardwarový server, byl zde brán v úvahu fakt, že se jedná o řešení pro enterprise prostředí, s velkým (v čase rostoucím) počtem uživatelů, proto se celek rozdělil dle svých funkčností na 3 samostatné servery. Fyzické rozložení navrhovaného řešení je zachyceno na obrázku níže. UnicornES vystupuje ve formě klienta, který vysílá zprávy, požadavky, popřípadě přijímá odpovědi. Řešení je rozloženo na tři samostatné servery, kdy každý plní určitou logicky ohraničenou oblast funkčnosti systému jako celku. Každý server obsahuje OS Linux a Javu a dále buď Jetty, respektive Tomcat. Apache ActiveMQ je Message Broker, který obsahuje frontu, plnící svůj účel při indexaci. Pomocí messagingu s ním komunikuje jak klient (UnicornES), tak vyhledávací aplikace (UnicornESToSolrAdapter.war). UnicornESToSolrAdapter.war je vyhledávací aplikace, která při indexaci stahuje zprávy z Message Brokeru a dále získané informace přepošle na Search Engine. Při vyhledávání komunikuje s klientem pomocí webových služeb (SOAP) zajišťuje Apache Axis2.ear a opět požadavek přeposílá na Search Engine a jeho odpověď vrací zpět na klienta (UnicornES). Apache Solr je Search Engine, komunikující s vyhledávací aplikací (UnicornESToSolrAdapter.war) při indexaci dokumentů a hledání výrazů, klasicky, pomocí HTTP. 36

37 Obrázek č. 14 Deployment diagram 37

38 Usecase pohled UC-1 Vytvořit index KRÁTKÝ POPIS Na základě klientem zadaných parametrů systém (server) vytvoří v indexu záznam. PODMÍNKY PRO SPUŠTĚNÍ --- ZÁKLADNÍ TOK # Klient Server 1 Klient odešle asynchronní zprávu s parametry, potřebnými k vytvoření indexu 2 Klient pokračuje dál v toku svého use case Server přijme zprávu od klienta Tabulka č. 7 UC-1, základní tok Server extrahuje text k indexaci z přijaté zprávy do SolrInputDocumentu Server extrahuje id, jméno artefaktu k indexaci z přijaté zprávy do SolrInputDocumentu Spustí se usecase Získat spojení se Search Engine, čímž Server získá odkaz na Search Engine Server odešle na Search Engine SolrInputDocument, čímž dojde k indexaci ALTERNATIVNÍ TOKY A1 Výjimka # Klient Server Tento alternativní tok nastává v kterémkoli kroku základního toku 1 Na serveru je vyvolána výjimka 2 Server zaloguje potřebné informace Tabulka č. 8 UC-1, alternativní tok HLAVNÍ SCÉNÁŘE ZT ZT A1 PODMÍNKY PO DOKONČENÍ Buď je vytvořen index nebo je zalogována výjimka. SPECIÁLNÍ POŽADAVKY DALŠÍ INFORMACE A DIAGRAMY 38

39 Aktivity diagram, schématicky postihující danou problematiku, je k dispozici v sekci 4+1 view - Procesní pohled Usecase pohled UC-4 Vyhledat výraz v indexu KRÁTKÝ POPIS Na základě klientem zadaných parametrů systém (server) vyhledá odkazy na artefakty, vyhovující hledanému výrazu a tento seznam vrátí na klienta. PODMÍNKY PRO SPUŠTĚNÍ --- ZÁKLADNÍ TOK # Klient Server 1 Klient spustí synchronní metodu s parametry, potřebnými k vyhledávání 2 Server přijme parametry od klienta Server z příchozích parametrů vytvoří SolrQuery Spustí se usecase Získat spojení se Search Engine, čímž Server získá odkaz na Search Engine Server odešle na Search Engine SolrQuery, čímž získá SolrResponse Server extrahuje id artefaktů ze SolrResponse do výsledkové sady Server extrahuje max. počet potencionálně nalezených artefaktů ze SolrResponse do výsledkové sady 8 Server vrátí tuto výsledkovou sadu na klienta 9 Klient přijme výsledkovou sadu od serveru a pokračuje ve svém toku use case Tabulka č. 9 UC-2, základní tok 39

40 ALTERNATIVNÍ TOKY A1 Výjimka # Klient Server Tento alternativní tok nastává v kterémkoli kroku základního toku 1 Na serveru je vyvolána výjimka 2 Server propaguje výjimku na klienta 3 Klient přijme výjimku a pokračuje ve svém toku use case Tabulka č. 10 UC-2, alternativní tok HLAVNÍ SCÉNÁŘE ZT ZT A1 PODMÍNKY PO DOKONČENÍ Buď je serverem vrácena na klienta výsledková sada nebo propagována výjimka. SPECIÁLNÍ POŽADAVKY DALŠÍ INFORMACE A DIAGRAMY Aktivity diagram, schématicky postihující danou problematiku, je k dispozici v sekci 4+1 view - Procesní pohled Plán cílového řešení Jelikož se nám bohužel (z růných důvodů zmíněných dále) nepodařilo splnit veškeré požadavky kladené na implementační část navrženého řešení v úvodní analytické části v plné míře, budeme se těmto věnovat alespoň teoreticky v této kapitole. Jedná se zejména o oblast distribuovanosti, oblast jazykové analýzy při indexaci a vyhledávání a také zde zmíníme oblast bezpečnosti Jazyková analýza Jedním z požadavků bylo, aby navržené řešení, kromě jiného, splňovalo také požadavek na podporu vícejazyčnosti. Minimálně se jedná o jazyk anglický, španělský a český. Jazyková analýza může (je to vhodné) probíhat jak při indexaci, tak při vyhledávání (abychom v indexu nalezli opravdu to, co jsme do něj uložili). Jazyková analýza může zajistit takové funkce, 40

41 jakými jsou např. stemování slov, lematizace, převod velkých písmen na malé, využívání synonym a obdobných výrazů, využívání stopwords, atd. Stemování je automatické zkracování slov podle slovních kořenů. Kmen je část slova, která se v různých tvarech tohoto slova opakuje. Výsledné slovo nemusí dávat jazykový smysl. Např. slovo žena žen, vařit vaři, atd. [11]. Lematizace je proces, kdy se dané slovo převádí na jeho základní gramatický tvar. Např. slova running, runs run, stromový, stromy strom. [10]. Tzv. stopwords jsou slova hojně vyskytovaná, která ovšem pro účel indexace, popř. vyhledávání nejsou důležitá. Jsou to např. a, able, about, above, nebo v češtině dnes, cz, timto. [12]. Nástroj, použitý k fulltextovému vyhledávání má zabudovány možnosti, jak využít možností různých nástrojů (knihoven) pro jazykovou analýzu. Jedná se o nastavení v konfiguračním souboru schema.xml, kde lze nastavit různé filtry a analyzéry pro jednotlivé jazykové verze. Zvažovány byly především dvě knihovny, které poskytují jazykovou analýzu. Knihovna Snowball a knihovna Hunspell. Knihovna Snowball je defaultní knihovnou nástroje ApacheSolr a kromě jazyků, které byly využity v této práci (angličtina a španělština) nabízí mnoho dalších. Bohužel nenabízí anylýzu jazyka českého. Knihovna je do Apache Solr zapojena tak, že její jar soubor je nakopírován do lib adresáře a její použití je nastaveno v již výše zmíněném souboru schema.xml. [8]. Knihovna Hunspell byla původně vyvinuta pro maďarský jazyk a postupem doby se rozvíjela i pro ostatní jazyky, jež neměly takovou podporu. Mezi takové můžeme zařadit i jazyk český.[9]. Knihovna se do prostředí Apache Solr integruje stejně jak je uvedeno u knohovny Snowball, ale navíc je do konfiguračního adresáře nutno nakopírovat dva další soubory. První z nich je pomocný soubor cs_cs.aff, druhým je soubor cs-cs.dic, obsahující pomocný slovník. Bohužel se tuto knihovnu, i za použití návodu, jak použít knihovnu Hunspell v prostředí ApacheSolr [13], nepodařilo zprovoznit, proto bylo zvoleno jako alternativní řešení použití třídy org.apache.lucene.analysis.cz.czechanalyzer, která poskytuje velice slabou funkčnost v oblasti jazykové analýzy, a to pouze využití stopwords. Pro plnohodnotné vyhledávání v českém jazyce v případném produkčním nasazení by tedy bylo nutno zprovoznit funkčnost knihovny Hunspell na Apache Solr, popřípadě využít jiného podobného nástroje pro jazykovou analýzu. 41

42 Bezpečnost Vzhledem k faktu, že samotná problematika řízení přístupu a zabezpečení je dosti komplexní záležitost (zvláště potom v Unicorn ES), která by mohla být jako taková předmětem samostatné bakalářské práce a hlavním nosným tématem této práce je ověřit užití Apache Lucene pro účely zadavetele, bylo dohodnuto již na konzultacích se zadavetelem, že problematiku bezpečnosti není nutno implementovat. Přesto je jistě vhodné tuto oblast zmapovat alespoň v teoretické rovině a to bude cílem této kapitoly. Nejdříve tedy popíšeme, jakým způsobem je řešena oblast řízení přístupu k informacím v Unicorn ES. Skládá se ze tří základních částí / principů: Teritorium, Security level a Autorizace. Teritorium je jakási vymezená datová oblast, v níž se může uživatel Unicorn ES pohybovat (např. student se pohybuje pouze v rámci teritoria UCL a nedostane se k podnikovým datům z teritoria Unicorn). Přístup uživatele do teritoria se zřizuje pomocí tzv. AccesRole, což je objekt, reprezentující uživatele v teritoriu (uživatel jich má tolik, do kolika teritorií má přístup). Obrázek č. 15 Teritorium-1[27] 42

43 Obrázek č. 16 Teritorium-2[27] Security level klasifikuje každý dokument v systému podle stupně utajení a uživatel, reprezentovaný AccesRolí v daném teritoriu má opět jakýsi stupeň prověření pro přístup k informacím. Tyto dva údaje se při požadavku uživatele na přístup k dokumentu porovnají a přístup je buď povolen, nebo odmítnut. 43

44 Obrázek č. 17 Security level[27] Předmětem autorizace jsou hned tři záležitosti. Je to role, use case a objekt zájmu role. Neboli jinak řečeno, určitý uživatel se snaží spustit určitou funkčnost nad určitým dokumentem. Obrázek č. 18 Autorizace[27] --- Výsledné řešení by tedy z pohledu problematiky Teritoria vypadalo asi následovně. Musí zajistit, že uživatel bude hledat jen v Teritoriu, kde má přístup. To bude zajištěno tím, že v indexačním 44

45 dokumentu bude sloupec teritorium, který bude obsahovat označení teritoria, ve kterém se dokument nachází. Volání klienta při indexaci tedy bude navíc obsahovat tento parametr. To samé platí při vyhledávání. Při vyhledávání bude docházet k selekci také podle tohoto kritéria. Výsledné řešení z pohledu Security level by vypadlo následovně. Indexační dokument bude mít navíc sloupec security_level, obsahující stupeň utajení daného dokumentu. Při indexaci přibude tento parametr k ostatním klientským parametrům dané metody. Při vyhledávání klient zadá navíc stupeň svého prověření a následně dojde k porovnání tohoto údaje se stupněm utajení daného dokumentu v indexu. Zpřístupněny budou pouze dokumenty se stejným, nebo nižším stupněm utajení, než je stupeň prověření klienta. Z pohledu Autorizace vyhledávání zde vstupuje do hry autorizace dvou základních práv. Prvním je právo Hledej (zobrazení vyhledávacího formuláře na straně klienta). Toto řeší klientská strana, kde se autorizuje uživatel vůči use case Prohledej teritorium, proto to není předmětem této práce. Druhým právem je právo Hledej a zobraz hledaný objekt. Zde je již situace složitější, protože do hry vstupuje autorizace uživatele, use case a navíc ještě objektu (hledaného dokumentu). Zřejmě se tedy budou porovnávat user_id, usecase_id a object_id (můžeme také chápat jako id dokuemntu v indexu). Z pohledu indexace tedy klient nemusí zadávat další dodatečné informace. Z pohledu vyhledávání klient navíc zašle user_id, usecase_id. Object_id serverová strana načte z vlastního indexu. Průběh vyhledávání na straně serveru tedy bude probíhat tak, že pro každý záznam potencionální výsledkové sady bude serverem volána jakási funkčnost na klintovi, které se předají user_id, usecase_id, object_id a tato funkčnost vrátí logickou hodnotu, na základě které serverová strana tento konkrétní záznam zařadí, popř. nezařadí do výsledné návratové sady pro klienta, potažmo pro konkrétního uživatele.[14] Distribuovanost Implementační část této práce obsahuje řešení, které sice ověřuje, že doporučený nástroj Apache Lucene, potažmo Apache Solr je vhodný k fulltextovému vyhledávání dle potřeb zadavatele, ale toto demonstruje pouze řekněme v single-server módu. Plnohodnotným řešením, kterého se v implementační části nepodařilo dosáhnout nástrojem Apache Hadoop (pro jeho netriviální použití a nízkoúrovňové implementaci), by bylo distribuované řešení, jimž se bude, nyní alespoň teoreticky, zabývat tato kapitola. Distribuovaným řešením se má na mysli distribuované úložiště rostoucích dat (indexu), potažmo distribuovanost dalších komponent, spojených s vyhledáváním. 45

46 Samotný Apache Solr nabízí možnosti distribuovaného řešení, založeného, kromě jiného, na replikaci dat[15], distribuovaném vyhledávání[16] a na nástroji, který předešlé integruje[17]. --- Replikací se zde míní proces kopírování a udržování instancí jednoho objektu (indexu) na více výpočetních jednotkách (servrech) viz obrázek níže. Replikace může sloužit jednak pro zajištění redundantnosti dat vzhledem k možnému výpadku jednoho zdroje, dále je redundantnost vhodná pro škálovatelnost aplikace při potřebě obsloužení většího počtu příchozích požadavků. Obrázek č. 19 Replikace Replikace se nastaví na Master serveru v konfiguračním souboru solrconfig.xml následovně: <requesthandler name="/replication" class="solr.replicationhandler" > <lst name="master"> <str name="replicateafter">startup</str> <str name="replicateafter">commit</str> <str name="backupafter">optimize</str> <str name="conffiles">schema.xml,xyz.txt,xyz.xml</str> <str name="commitreserveduration">00:00:10</str> </lst> </requesthandler> Soubor - solrconfig.xml 46

47 Replikace se nastaví na Slave serveru v konfiguračním souboru solrconfig.xml následovně: <requesthandler name="/replication" class="solr.replicationhandler" > <lst name="slave"> <str name="masterurl"> <str name="pollinterval">00:00:20</str> <str name="compression">internal</str> <str name="httpconntimeout">5000</str> <str name="httpreadtimeout">10000</str> <str name="httpbasicauthuser">username</str> <str name="httpbasicauthpassword">password</str> </lst> </requesthandler> Soubor - solrconfig.xml Replikace funguje tak, že Master server neví o Slave serverech, které si opakovaným dotazováním na Master server kontrolují svoji verzi indexu s verzí indexu Master serveru. Pokud má Slave server verzi indexu rozdílnou, spustí proces replikace, který se skládá z: Slave server požádá Master server o seznam souborů s pomocnými metadaty Slave server porovná seznam svých lokálních souborů se seznamem od Master serveru a případně si z něj stáhne chybějící soubory (do svého temp adresáře). V případě, že spojení selže, naváže se znovu v bodě předchozího selhání. Toto v případě potřeby proběhne pětkrát, pak by se již proces replikace zastavil. Po úspěšném stažení souborů je Slave server nakopíruje do tzv. živého indexu a upraví svou verzi indexu Slave server provede commit a soubory jsou již připraveny k použití 47

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

UAI/612 - Cloudová Řešení. Technologie

UAI/612 - Cloudová Řešení. Technologie UAI/612 - Cloudová Řešení Technologie Rekapitulace Multitenance Bezestavovost Škálovatelnost Cachování Bezpečnost Způsoby nasazení Datová úložiště SQL databáze NoSQL databáze Cloudová datová úložiště (API)

Více

Experimentální systém pro WEB IR

Experimentální systém pro WEB IR Experimentální systém pro WEB IR Jiří Vraný Školitel: Doc. RNDr. Pavel Satrapa PhD. Problematika disertační práce velmi stručný úvod WEB IR information retrieval from WWW, vyhledávání na webu Vzhledem

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.

Více

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje jsou souborem klientských desktopových aplikací určených k indexování dat, vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci s velkým objemem textových

Více

Indexace pro souborová uložiště a Vyhledávací centrum

Indexace pro souborová uložiště a Vyhledávací centrum Indexace pro souborová uložiště a Vyhledávací centrum Obsah I. Úvod... 2 II. Cíl dokumentu... 2 III. Fáze projektu... 2 IV. Popis jednotlivých fází projektu... 2 1. Fáze 1. - Analýza... 2 2. Fáze 2. -

Více

Hadoop a HDFS. Bc. Milan Nikl

Hadoop a HDFS. Bc. Milan Nikl 3.12.2013 Hadoop a HDFS Bc. Milan Nikl Co je Hadoop: Open-Source Framework Vyvíjený Apache Software Foundation Pro ukládání a zpracovávání velkých objemů dat Big Data trojrozměrný růst dat (3V) Objem (Volume)

Více

Znalostní systém nad ontologií ve formátu Topic Maps

Znalostní systém nad ontologií ve formátu Topic Maps Znalostní systém nad ontologií ve formátu Topic Maps Ladislav Buřita, Petr Do ladislav.burita@unob.cz; petr.do@unob.cz Univerzita obrany, Fakulta vojenských technologií Kounicova 65, 662 10 Brno Abstrakt:

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009 Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené

Více

KAM SMĚŘUJE VYHLEDÁVÁNÍ. Pavel Kocourek SEARCH TECHNOLOGIES, formerly INCAD INFORUM

KAM SMĚŘUJE VYHLEDÁVÁNÍ. Pavel Kocourek SEARCH TECHNOLOGIES, formerly INCAD INFORUM KAM SMĚŘUJE VYHLEDÁVÁNÍ Pavel Kocourek SEARCH TECHNOLOGIES, formerly INCAD INFORUM 2017 31. 5. 2017 1 20 MINUT Tradiční Enterprise Search a OpenSource Lucene / SOLR vs Elastic Nová generace vyhledávání?

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools Analyst Pack je desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních

Více

Roční periodická zpráva projektu

Roční periodická zpráva projektu WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových

Více

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně vyhledávat informace,

Více

SOAP & REST služby. Rozdíly, architektury, použití

SOAP & REST služby. Rozdíly, architektury, použití SOAP & REST služby Rozdíly, architektury, použití Obsah Srovnání SOAP a REST služeb Service Oriented Architecture Microservice Architecture Příklady použití Nástroje pro vývoj SOAP a REST služeb (v Java)

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services 13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -

Více

PRODUKTY Tovek Server 6

PRODUKTY Tovek Server 6 Tovek Server je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených strukturovaných i nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o. X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Internetové vyhledávače

Internetové vyhledávače Internetové vyhledávače Co je internetový vyhledávač služba, která umožňuje na Internetu najít webové stránky, které obsahují požadované informace uživatel zadává do rozhraní vyhledávače klíčová slova,

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Reranking založený na metadatech

Reranking založený na metadatech České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Reranking založený na metadatech MI-VMW Projekt IV - 1 Pavel Homolka Ladislav Kubeš 6. 12. 2011 1

Více

Modul Konfigurace. 2006... MTJ Service, s.r.o.

Modul Konfigurace. 2006... MTJ Service, s.r.o. Modul Konfigurace Modul Konfigurace Představení Menu konfigurace sdružuje všechny konfigurační příkazy k celému systému Soft-4-Sale. Dále konfigurace kopíruje jednotlivé moduly systému tzn. že existuje

Více

Metodologie řízení projektů

Metodologie řízení projektů Metodologie řízení projektů Petr Smetana Vedoucí práce PhDr. Milan Novák, Ph.D. Školní rok: 2008-09 Abstrakt Metodologie řízení projektů se zabývá studiem způsobů řešení problémů a hledání odpovědí v rámci

Více

Projekt informačního systému pro Eklektik PRO S EK. Řešitel: Karolína Kučerová

Projekt informačního systému pro Eklektik PRO S EK. Řešitel: Karolína Kučerová Projekt informačního systému pro Eklektik PRO S EK Řešitel: ÚVODNÍ ZPRÁVA ZADÁNÍ PROJEKTU Zefektivnění komunikace ve firmě Eklektik, a to především v oblasti informací o klientech a o tištěných materiálech

Více

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou Administrace Oracle Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním

Více

Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ

Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ 10. 5. 2011 Tým: Simplesoft Členové: Zdeněk Malík Jan Rada Ladislav Račák Václav Král Marta Pechová malikz@students.zcu.cz jrada1@students.zcu.cz

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011 Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP

Více

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který

Více

Zpráva o zhotoveném plnění

Zpráva o zhotoveném plnění Zpráva o zhotoveném plnění Aplikace byla vytvořena v souladu se Smlouvou a na základě průběžných konzultací s pověřenými pracovníky referátu Manuscriptorium. Toto je zpráva o zhotoveném plnění. Autor:

Více

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ Michal Brožek, Dominik Svěch, Jaroslav Štefaník MEDIUM SOFT a.s., Cihelní 14, 702 00 Ostrava, ČR Abstrakt Neustále rostoucí význam sběru dat, možnost

Více

Jak správně psát scénáře k případům užití?

Jak správně psát scénáře k případům užití? Jak správně psát scénáře k případům užití? Autor RNDr. Ilja Kraval 2007 http://www.objects.cz K napsání tohoto článku mne inspiroval tento mail: Dobrý den pane Kravale, chci Vás poprosit o radu, která

Více

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1 Metodický list č. 1 Cíl: Cílem předmětu je získat přehled o možnostech a principech databázového zpracování, získat v tomto směru znalosti potřebné pro informačního manažera. Databázové systémy, databázové

Více

AMPHORA - NÁSTROJ PRO INDEXOVÁNÍ WEBOVÝCH STRÁNEK.

AMPHORA - NÁSTROJ PRO INDEXOVÁNÍ WEBOVÝCH STRÁNEK. AMPHORA - NÁSTROJ PRO INDEXOVÁNÍ WEBOVÝCH STRÁNEK. Václav Snášel, Jiří Dvorský, Petr Šaloun, Daniela Ďuráková VŠB Technická univerzita, 17. listopadu 15, 708 33 Ostrava Abstract Textová databáze AmphorA

Více

Wonderware Historian. Příklady vícevrstvých architektur. Jiří Nikl, Tomáš Mandys Pantek (CS) s.r.o.

Wonderware Historian. Příklady vícevrstvých architektur. Jiří Nikl, Tomáš Mandys Pantek (CS) s.r.o. Wonderware Historian Příklady vícevrstvých architektur Jiří Nikl, Tomáš Mandys Pantek (CS) s.r.o. Strana 2 Wonderware Historian Server využití vícevrstvé architektury Historizační databáze Wonderware Historian

Více

SEARCH & BIG DATA [ & ANALYTICS] INFORUM 2015, Pavel Kocourek

SEARCH & BIG DATA [ & ANALYTICS] INFORUM 2015, Pavel Kocourek SEARCH & BIG DATA [ & ANALYTICS] INFORUM 2015, Pavel Kocourek NÁSLEDUJÍCÍCH 25 MINUT Proč je letošní prezentace modro-zelená Vyhledávání a Big data Search architektura s využitím Big data Co to může přinést

Více

Nemocnice. Prvotní analýza a plán projektu

Nemocnice. Prvotní analýza a plán projektu Nemocnice Projekt do předmětu AIS Prvotní analýza a plán projektu Lukáš Pohl, xpohll00, xkosti03 Jan Novák, xnovak79 2009/2010 1 Neformální specifikace FN potřebuje informační systém, který bude obsahovat

Více

Wonderware Historian 10.0

Wonderware Historian 10.0 Wonderware Historian 10.0 Příklady vícevrstvých architektur Jiří Nikl Pantek (CS) s.r.o. Strana 2 Wonderware Historian 10.0 využití vícevrstvé architektury Nová verze historizační databáze Wonderware Historian

Více

Formy komunikace s knihovnami

Formy komunikace s knihovnami Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence

Více

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE profesionální verze 1 Obsah Požadavky... 3 Instalace... 3 Proměnná CLASSPATH... 3 Zpřístupnění licenčního klíče... 3 Ověřování komponent OKS. 3 Spouštíme aplikaci

Více

Návrh IS - UML. Jaroslav Žáček

Návrh IS - UML. Jaroslav Žáček Návrh IS - UML Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ UML UML není metodikou ani programovacím jazykem, je to pouze vizuální modelovací nastroj pro objektově orientované systémy.

Více

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek Specifikace požadavků POHODA Web Interface Verze 1.0 Datum: 29.12. 2008 Autor: Ondřej Šrámek Copyright 1999 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document. Strana

Více

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace Pořadové číslo dodatečných informací: 14. ČÁST 1: Přesné znění žádosti dodavatele o dodatečné informace Otázka

Více

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow

Více

EPLAN Electric P8 2.7 s databázemi na SQL serveru

EPLAN Electric P8 2.7 s databázemi na SQL serveru EPLAN Electric P8 2.7 s databázemi na SQL serveru EPLAN Electric P8 2.7 k dispozici pouze ve verzi 64bit. EPLAN Electric P8 využívá k ukládání některých dat databáze. Artikly, překladový slovník 1 ) a

Více

Wonderware Information Server 4.0 Co je nového

Wonderware Information Server 4.0 Co je nového Wonderware Information Server 4.0 Co je nového Pavel Průša Pantek (CS) s.r.o. Strana 2 Úvod Wonderware Information Server je výrobní analytický a reportní informační portál pro publikaci výrobních dat

Více

Jan Pokorný MULTIDATA Praha PRIMO. od čtenářského OPAC ke čtenářskému portálu

Jan Pokorný MULTIDATA Praha PRIMO. od čtenářského OPAC ke čtenářskému portálu Jan Pokorný MULTIDATA Praha PRIMO od čtenářského OPAC ke čtenářskému portálu Knihovny současnosti 2007 Obsah prezentace Co je systém PRIMO Příklad fungování systému Komponenty systému Princip fungování

Více

Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb

Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb Ing. Radek Augustýn Výzkumný ústav geodetický, topografický a kartografický, v.v.i. Zdiby Abstrakt V návaznosti na zpřístupnění dat Registru

Více

Beehive groupware. Meet your visions.

Beehive groupware. Meet your visions. Beehive groupware Meet your visions http://beehiveware.sf.net Osnova Projektový tým Představení projektu Časový harmonogram Zadání projektu Metodologie Nabyté zkušenosti Projektový tým Vedoucí projektu

Více

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí Databázový subsystém pro správu dat vysílačů plošného pokrytí RadioBase je datový subsystém pro ukládání a správu dat vysílačů plošného pokrytí zejména pro služby analogové a digitální televize a rozhlasu.

Více

Modul pro PrestaShop 1.7

Modul pro PrestaShop 1.7 Obsah Modul pro PrestaShop 1.7 1 Instalace...2 1.1 Nahrání modulu do PrestaShopu...2 1.2 Komunikační adresy...3 1.3 Nastavení...4 1.4 Stavy objednávek...6 1.5 Jazykové verze...8 1.6 Kontrola funkčnosti...9

Více

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Microsoft SharePoint Portal Server 2003 Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Přehled Země: Česká republika Odvětví: Velkoobchod Profil zákazníka

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

Více

Metodika analýzy. Příloha č. 1

Metodika analýzy. Příloha č. 1 Metodika analýzy Příloha č. 1 Příloha č. 1 1 Účel dokumentu Dokument popisuje závaznou metodiku systémové analýzy, je upraven na míru pro prostředí Podniku. Dokument je provázán s Podnikovou analýzou,

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory

Více

ATS Global B.V. ATS Bus.

ATS Global B.V. ATS Bus. ATS Global B.V. je výrobní datová sběrnice, zajišťuje propojení výrobních systémů, poskytuje kompletní expozici výrobních dat, usnadňuje odstraňování problémů spojených s výrobky i procesy a umožňuje sledování

Více

Interaktivní Úřední deska (IUD) popis systému

Interaktivní Úřední deska (IUD) popis systému Interaktivní Úřední deska (IUD) popis systému Výhody systému - Bezstarostné automatické zobrazovaní dokumentů v požadovaných vývěsných termínech platnosti. - 100% dostupnost všech aktuálních dokumentů

Více

Pracovní postup náběhu do produktivního provozu modulu Organizační struktura a systemizace (OSYS)

Pracovní postup náběhu do produktivního provozu modulu Organizační struktura a systemizace (OSYS) Informační systém o státní službě (ISoSS) Pracovní postup náběhu do produktivního provozu modulu Organizační struktura a systemizace (OSYS) Verze dokumentu: 1.0 Strana: 1/13 Historie dokumentu Historie

Více

POKROČILÉ POUŽITÍ DATABÁZÍ

POKROČILÉ POUŽITÍ DATABÁZÍ POKROČILÉ POUŽITÍ DATABÁZÍ Barbora Tesařová Cíle kurzu Po ukončení tohoto kurzu budete schopni pochopit podstatu koncepce databází, navrhnout relační databázi s využitím pokročilých metod, navrhovat a

Více

MOBILNÍ SKLADNÍK. Příručka k základnímu ovládání. Beta verze popisu produktu Aktualizace dokumentu: z 10

MOBILNÍ SKLADNÍK. Příručka k základnímu ovládání. Beta verze popisu produktu Aktualizace dokumentu: z 10 MOBILNÍ SKLADNÍK Příručka k základnímu ovládání Beta verze popisu produktu Aktualizace dokumentu: 30.01.2017 1 z 10 1 POPIS Mobilní skladník je software od společnosti ABRA Software s.r.o., který je určen

Více

plussystem Příručka k instalaci systému

plussystem Příručka k instalaci systému plussystem Příručka k instalaci systému Tato příručka je určena zejména prodejcům systému a případně koncovým uživatelům. Poskytuje návod, jak provést potřebná nastavení komponent. ITFutuRe s.r.o. 26.2.2015

Více

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí

Více

Architektura softwarových systémů

Architektura softwarových systémů Architektura softwarových systémů Ing. Jiří Mlejnek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jiří Mlejnek, 2011 jiri.mlejnek@fit.cvut.cz Softwarové

Více

Obchodní příležitosti

Obchodní příležitosti Obchodní příležitosti Celá databáze HBI je koncipována tak, aby v co největší míře přispěla svým uživatelům registrovaným i neregistrovaným k co nejlepší orientaci na trhu. Což v praxi znamená, že se nemůže

Více

Oracle XML DB. Tomáš Nykodým

Oracle XML DB. Tomáš Nykodým Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

Využití tabulkového procesoru MS Excel

Využití tabulkového procesoru MS Excel Semestrální práce Licenční studium Galileo srpen, 2015 Využití tabulkového procesoru MS Excel Ing Marek Bilko Třinecké železárny, a.s. Stránka 1 z 10 OBSAH 1. ÚVOD... 2 2. DATOVÝ SOUBOR... 2 3. APLIKACE...

Více

Průzkumník IS DP. Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o.

Průzkumník IS DP. Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o. Průzkumník IS DP Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o. dokument ze dne 13. 09. 2018, verze 1.00 Průzkumník IS DP Návod k obsluze

Více

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18) Programátor (kód: 18-003-M) Autorizující orgán: Ministerstvo vnitra Skupina oborů: Informatické obory (kód: 18) Týká se povolání: Programátor Kvalifikační úroveň NSK - EQF: 4 Odborná způsobilost Název

Více

Návrh IS - UML. Jaroslav Žáček

Návrh IS - UML. Jaroslav Žáček Návrh IS - UML Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Trochu historie neuškodí Do roku 1994 chaos ve světě objektově orientovaných metod (několik jazyků pro vizuální modelování,

Více

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz UML a jeho použití v procesu vývoje Jaroslav Žáček jaroslav.zacek@osu.cz Různé pohledy na modelování Různé pohledy na modelování Unified Modeling Language UML není metodikou ani programovacím jazykem,

Více

ABBYY Automatizované zpracování dokumentů

ABBYY Automatizované zpracování dokumentů ABBYY Automatizované zpracování dokumentů tradiční řešení OCR versus Cloud Jiří Dvořák ECM konzultant Světový leader v produktech pro zpracování dokumentů Individulání uživatelé Malé a střední společnosti

Více

Začínáme s Tovek Tools

Začínáme s Tovek Tools NAJÍT POCHOPIT VYUŽÍT Úvodní seznámení s produktem Tovek Tools JAK SI TOVEK TOOLS NAINSTALUJI?... 2 JAK SI PŘIPOJÍM INFORMAČNÍ ZDROJE, VE KTERÝCH CHCI VYHLEDÁVAT?... 2 JAK MOHU VYHLEDÁVAT V INFORMAČNÍCH

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

DATOVÁ ARCHIVACE. Principy datové archivace a její výhody při migraci na SAP HANA. Štěpán Bouda Business Consultant

DATOVÁ ARCHIVACE. Principy datové archivace a její výhody při migraci na SAP HANA. Štěpán Bouda Business Consultant DATOVÁ ARCHIVACE Principy datové archivace a její výhody při migraci na SAP HANA Štěpán Bouda Business Consultant stepan.bouda@sabris.com KVÍZ Kdo uvažuje o migraci ERP na Suite on SAP HANA? Kdo uvažuje

Více

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server ADMINISTRACE POČÍTAČOVÝCH SÍTÍ OPC Server Funkce a využití v průmyslové automatizaci Jiří NOSEK 2011 Co je OPC Server? OPC = Open Process Control (původně OLE for Process Control) sada specifikací průmyslového

Více

Systémy pro tvorbu digitálních knihoven

Systémy pro tvorbu digitálních knihoven Systémy pro tvorbu digitálních knihoven Vlastimil Krejčíř, krejcir@ics.muni.cz Ústav výpočetní techniky, Masarykova univerzita, Brno INFORUM 2006, Praha Obsah přednášky Úvod Fedora DSpace EPrints CDSware

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

Supplier Web Uživatelská příručka. Supplier Web. Copyright Telefónica O2 Czech Republic, a.s. All rights reserved. 1/10

Supplier Web Uživatelská příručka. Supplier Web. Copyright Telefónica O2 Czech Republic, a.s. All rights reserved. 1/10 Supplier Web 1/10 OBSAH: Supplier Web 1 ÚVOD... 3 1.1 POUŽITÍ... 3 1.2 ZNAČENÍ... 3 2 VSTUP DO APLIKACE... 4 3 OBJEDNÁVKY... 7 4 LEGAL DISCLAIMER... 10 2/10 1 Úvod 1.1 Použití Dokument slouží jako uživatelská

Více

Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U);

Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U); Databáze prodejců Tlačítka Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce (Alt+E); Uloží nového prodejce nebo změnu (Alt+U); Při zakládání nového prodejce zadejte jeho číslo (musí to být

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

Indexování a vyhledávání matematických formulí

Indexování a vyhledávání matematických formulí Indexování a vyhledávání matematických formulí Vlastimil Krejčíř, krejcir@ics.muni.cz Inforum 2018, 29. 30. května 2018, Praha V. Krejčíř Indexování a vyhledávání matematických formulí Inforum 2018 1 /

Více

Projektování informačních systémů - Restaurace

Projektování informačních systémů - Restaurace Mendelova univerzita v Brně Provozně ekonomická fakulta Projektování informačních systémů - Restaurace Semestrální práce Vedoucí práce: doc. Ing. Ivana Rábová, Ph.D. Stratil, Antonič, Kačmár, Vodák Brno

Více

Unifikovaný modelovací jazyk UML

Unifikovaný modelovací jazyk UML Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li

Více

Vytvoření portálu odboru strukturálních fondů Ministerstva vnitra a zajištění jeho hostingu na serveru dodavatele

Vytvoření portálu odboru strukturálních fondů Ministerstva vnitra a zajištění jeho hostingu na serveru dodavatele MINISTERSTVO VNITRA odbor strukturálních fondů č.j. MV- 82945-5 /OSF Praha dne 24. listopadu 2009 Počet listů: 5 Odpověď zadavatele na otázky ze dne 20. listopadu 2009 k Zadávací dokumentaci na veřejnou

Více

Nadpis článku: Zavedení speciálního nástroje SYPOKUB do praxe

Nadpis článku: Zavedení speciálního nástroje SYPOKUB do praxe Oborový portál BOZPinfo.cz - http://www.bozpinfo.cz Tisknete stránku: http://www.bozpinfo.cz/josra/josra-03-04-2013/zavedeni-sypokub.html Články jsou aktuální k datumu jejich vydání. Stránka byla vytvořena/aktualizována:

Více

MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1

MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 MIS Manažerský informační systém pro Ekonomický informační systém EIS JASU CS Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 Poslední aktualizace dne 5.8.2014 MÚZO Praha s.r.o. je certifikováno

Více

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE 2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

Vzdělávací obsah vyučovacího předmětu

Vzdělávací obsah vyučovacího předmětu V.9.3. Vzdělávací obsah vyučovacího předmětu Vzdělávací oblast: Inormatika a informační a komunikační technologie Vyučovací předmět: Informatika Ročník: 1. ročník + kvinta chápe a používá základní termíny

Více

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Příloha č. 3 k č.j. MV-159754-3/VZ-2013 Počet listů: 7 TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Nové funkcionality Czech POINT 2012 Popis rozhraní egon Service Bus Centrální Místo Služeb 2.0 (dále jen CMS

Více

POUŽITÍ DATABÁZÍ. Po ukončení tohoto kurzu budete schopni

POUŽITÍ DATABÁZÍ. Po ukončení tohoto kurzu budete schopni POUŽITÍ DATABÁZÍ Barbora Tesařová Cíle kurzu Po ukončení tohoto kurzu budete schopni chápat základní principy databáze, vytvořit novou databázi, vytvořit a upravit tabulky, řadit a filtrovat data v tabulkách,

Více

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009 Compatibility List Verze 3.60.5 8.4.2009 GORDIC spol. s r. o. Copyright 1993-2009 1 Obsah Obsah 1 2 3 4 5 6 7 8 9 3.1 3.2 Úvodní informace Podporované databázové systémy Klientské prostředí Tlustý klient...

Více