Home

Band 2 als PDF herunterladen

image

Contents

1. Lst 12 Serving static assets with Express KOS content 554 MI OO OO OO Jo Om ob A 24 Another Express feature is the bodyParser which is used as middleware to parse request bodies for this Proof of Concept especially JSON It is initialized as shown in Lst 13 app configure function app use express bodyParser Lst 13 Using the bodyParser Moreover Express is used to catch requests to specific URLs As the AJAX call coming from the user interface is set up as POST request the following code in Lst 14 shows how to catch this AJAX driven POST request in Node js on http s localhost port insurances app post insurances function req res iterating through the array that contains JSON objects write the value of the name attribute of each JSON object into the console for var i 0 i lt req body length i console log req body i name res contentType text plain res send 200 OK Lst 14 Iteration through an array consisting of JSON data As the AJAX POST request contains an array filled with JSON objects this example demon strates how to access each item Within the PoC this for loop is used to apply regular expres sions in order to validate each form field req body i name is an example on how the Express bodyParser is leveraged So far this code provides a web server and is able to respond to requests via HTTP and HT
2. Abb 1 HDFS Architektur Aufbau des Dateisystems HDFS unterst tzt eine traditionelle und hierarchische Dateiorganisation Dadurch k nnen Verzeichnisse erstellt und Dateien in diesen gespeichert werden HDFS beinhaltet bis jetzt keine Limitierung des Speicherplatzes je Benutzer Dennoch schlie t die HDFS Architektur die Implementierung dieser Eigenschaften nicht aus Der NameNode erh lt das Dateisystem aufrecht Jegliche nderungen am Dateisystem oder seiner Eigenschaften werden vom Na meNode sofort registriert Replikation der Daten HDFS wurde speziell daf r entwickelt sehr gro e Dateien verteilt in einem Cluster zu spei chern Jede Datei wird in einer Sequenz aus Bl cken gespeichert die alle dieselbe Gr e haben Diese Bl cke sind komplett gef llt bis auf den letzten Block der im Regelfall weniger Daten enth lt aber die gleiche Blockgr e hat Die Bl cke der Dateien werden aus Gr nden der Fehlertoleranz repliziert Die Blockgr e und der Replikationsfaktor sind dabei konfigu rierbar Der NameNode trifft alle Entscheidungen bez glich der Replikation von Bl cken Er empf ngt periodisch einen Impuls von den DataNodes der signalisiert dass alles in Ord nung ist Dieser wird auch Heartbeat genannt Zus tzlich erh lt er einen Blockreport von jedem DataNode im Cluster der eine Liste aller auf dem entsprechenden DataNode gespei cherten Bl cke enth lt 17 enthalten in Borthakur D 2009
3. Swish bedeutet auch sausen was unter zwei Gesichtspunkten zutreffend ist Die Suche liefert die Sucher gebnisse verh ltnism ig schnell und die Indizierung soll ebenfalls rasch stattfinden k nnen Die Suchmaschine wurde 1995 von Kevin Hughes programmiert und 1997 von der Universi t t Berkeley weiterentwickelt und auf die Version Swish e 2 gebracht Seitdem soll sie konti nuierlich weiterentwickelt werden Sie stellt eine eigene Suchmaschine dar und bietet den Vorteil dass s mtliche Dateien indiziert werden k nnen Startet man das Programm in der Grundeinstellung ohne manuelle Konfiguration verarbeitet das Programm nur TXT HTML und XML Dateien swish e org 2013 8 Vgl linux magazin de 2004 Vgl pcwelt de 2010 KOS content 411 RELATED SITES Swish e Simple Web Indexing System for Humans Enhanced home support download Enter your query mercedes Search advanced search Results for test Showing page 1 1 10 of 1991 hits Next installation troubles _ Arch k 1000 k eg conftest c gt amp 5 configure 2770 0 configure 2773 test z test s conftest err configure 2776 Search 0 configure 2779 test s conftest o configure 2782 0 configure 2793 conftest c gt amp 5 Configure 2886 0 configure 2889 test z test s conftest err configure 2892 0 configure Path archive 2004 05 7513 htm Size 69187 bytes Date Wed 1
4. o V 2013 Webcrawler http de wikipedia org wiki Webcrawler Ab ruf 22 12 2012 Crawler http www drisol com informationen seo lexikon crawler Abruf 22 12 2012 Lucene Eine einfache Suchmaschine f r Freitextsuche http www lucene de Abruf 27 12 2012 Lucene http de wikipedia org wiki Lucene Abruf 25 12 2012 Apache Lucene Core http lucene apache org core Abruf 18 12 2012 Lucene http dev innovationgate de doc wga41 html default dr qr lucene de html Abruf 26 12 2012 Apache Lucene and Apache Solr http blog cloudera com blog 201 2 01 hadoop for archiving email part 2 Abruf 20 01 2013 Lucen Dev http lucene apache org core developer html Abruf 19 12 2012 ElasticSearch Verbindung von Lucene und Cloud http it republik de jaxenter artikel ElasticSearch Verbindung von Lucene und Cloud 3134 html Abruf 19 12 2012 Immer flexibel http www heise de ix artikel Immer flexibel 1440270 html Abruf 25 12 2012 ElasticSearch http en wikipedia org wiki ElasticSearch Abruf 25 12 2012 ElasticSearch Die moderne Art zu Suchen http maiks chaos blogspot de 201 2 01 elasticsearch die moderne art zu suchen html Abruf 26 12 2012 Why ElasticSearch http www elasticsearch com products elasticsearch Abruf 02 01 2013 KOS content 439 o V 0 J o V 2012 o V 2012 o V 2012 Fondermann B 2009 o V 2010 Bizosys Te
5. Vgl The Apache Software Foundation 20129 Vgl Amazon Web Services Inc 2012a KOS content 629 31 Amazon S3 verf gt ber eine Vielzahl an Funktionen unter Anderem schreiben lesen l schen von Dateien bis 5 Terabyte TB unbegrenzte Anzahl speicherbarer Objekte Speicherung der Objekte in Buckets die individuell abgerufen werden k nnen verschiedene Regions Server stehen zur Speicherung zur Verf gung Mechanismen zur Authentifizierung und Rechteverwaltung sicherer Up Download UN Die Sichere Speicherung von Daten sowie diverse Kontrollmechanismen erh hen die Da tensicherheit innerhalb der S3 Cloud Der Anwender ist somit gegen Anwenderfehler physi sche und logische Ausf lle sowie gegen Datenverlust auf Grund von z B Infrastrukturausf l len gesch tzt Standard Speicher Die Speicherinfrastruktur von Amazon S3 ist u erst zuverl ssig und daher besonders gut geeignet f r kritische Daten und Anwendungen Daten werden redundant auf mehreren Sys temen und in jedem System auf mehreren Ger ten gespeichert Mit Hilfe eines speziellen Pr fsummenverfahrens kann S3 feststellen ob die gespeicherten oder empfangenen Daten pakete fehlerhaft bzw besch digt sind Dieses Pr fverfahren l uft permanent und f hrt so zu einer systematischen berpr fung des Datenverkehrs und im Fehlerfall zu einer Behe bung der Probleme Auch eine Versionierung von Objekten in den Buckets ist in S3 vorgese hen Dies
6. Meteor and Opa are two frameworks built on top of Node js and MongoDB created around a radically new development workflow Both eliminate the distinction between client side and server side code instead the developer writes code in a very similar way to conventional desk top programming 3 The difference is that the framework provides functionality to that enables the code to alter its behavior depending on where it rung 179 An example of this methodology can be found in appendix 3 Meteor leverages Node js enabling it to make use of its JavaScript based concept and the developer to take advantage of the variety of packages available for Node js Special atten tion should be paid to the fact that Meteor server code runs in one thread per request as opposed to the usual asynchronous callback methodology that applies to Node js itself nor mally 4 Through heavy integration of MongoDB or Meteor s data layer in general it is also unnecessary to write and handle AJAX calls manually as all data transmission e g synchro nization publish subscribe is abstracted away The Meteor provided example app leader board whose code is provided in listings 3314 and 34 43 CSS omitted highlights this concept very well At its current stage it is an ideal prototyping environment for it allows ideas to be brought into usable form very quickly even including hosting in the cloud These capabilities are especially useful when creating single pa
7. e Question Marks Produkte in diesem Bereich stehen am Anfang eines Produktlebenszyklus und weisen einen niedrigen Marktanteil auf Die weitere Entwicklung von diesen Produkten ist zu diesem Zeit punkt noch ungewiss und ein Unternehmen muss sich entscheiden ob eine Investition in das Produkt lohnenswert ist e Stars In diesem Feld stehen Gesch ftsfelder mit hohem Marktwachstum und hohem Marktanteil Es handelt sich somit um eine Idealsituation in der der Marktanteil durch Reinvestition der erzielten bersch sse gesichert werden muss 8 Vgl W he G D ring U 2010 S 89 9 Mit nderungen entnommen aus ebenda S 90 KOS content 454 e Cash Cows Das Wachstum geht in diesem Bereich zur ck der Marktanteil bleibt aber hoch Das Produkt befindet sich im Reifeprozess Es sollte versucht werden soviel Gewinn wie m glich mit dem Produkt abzusch pfen bevor der Marktanteil zu gering wird e Poor Dogs Bei diesen Produkten sind sowohl Marktanteil als auch Marktwachstum gering Folglich be finden sich diese Gesch ftsfelder am Ende des Produktlebenszyklus und erwirtschaften nur noch geringe Deckungsbeitr ge Aufgrund dieser Konstellation ist eine Eliminierung meist sinnvoll Bezogen auf die Bewertung von Open Source Projekten soll als externer Faktor der zuvor definierte Reifegrad und als interner Faktor die Marktakzeptanz herangezogen werden Aus schlaggebend fur die Marktakzeptanz sind dabei die folgenden
8. 119 Cf McCalla J 2011 120 See http couchdb apache org 121 See http redis io KOS content 570 40 tentially become a bottleneck when multiple application processes require access depending on its ability to provide parallel processing Speeding up single requests Node js and Vert x do not offer any possibility to speed up a single request These requests will aways run at the same speed What these frameworks do is to maximize the number of possible requests while keeping the processing speed steady This is why it scales so well see section 5 3 The only additional delay between request and response is the time that a request waits in the event loop until it gets processed In many cases however it is desirable to minimize the computation time itself for a single request Once this is achieved it becomes a goal to keep that speed for a larger amount of requests KOS content 571 41 6 Outlook This section is going to cover future prospects of the two technologies that were subject to investigation within this paper Node js Node js as became evident throughout the paper is popular and enjoys healthy development It is backed by a variety of modules that enable developers to implement complex functionality The packaged modules available at npmjs org indicate great interest as the number of downloads about 14 6 million last month suggests In addition the GitHub Commit History shows constant con
9. 2 1 2 Verticles Backend application Client application Vert x event bus SockJS server bridge over HTTP server SockJS client library Transport abstraction layer web sockets long polling Server Browser Fig 7 Vert x server bridge schematic view The core functionality of Vert x covers basic networking tasks and protocols web servers network clients access to the file system shared maps and the event bus The core libraries 46 Cf Majkowski M et al 2013 KOS content 543 13 of Vert x can be embedded in any JVM program for reuse in larger projects As opposed to Node js the core functionality and API can be considered quite stable as changes need to be done in all supported languages The core can be extended with additional features that are provided by optional modules which can be obtained over a public git based module repository The repository currently contains 16 distinct modules in different versions 42 Compared to Node js this number is very low and reflects the relatively low interest in the project in comparison to Node js see Fig 4 However one should bear in mind that many libraries available for the languages supported by Vert x can be used within this framework as well An extensive online documentation is available for all supported languages Additionally code examples for most features are available for all supporte
10. 444 Abk rzungsverzeichnis BSD CRM DB DMS ERP GB GIF GPL HTML HTTP IRC IT JPEG JSON LDAP LGPL MB MPL NFS NoSQL RAM REST RSS SQL WAIS XML Berkeley Software Distribution Lizenztyp Customer Relationship Management Datenbank Dokument Management System Enterprise Resource Planing Gigabyte Graphics Interchange Format General Public License Hypertext Markup Language Hypertext Transfer Protocol Internet Relay Chat Informationstechnologie Joint Photographic Experts Group Java Script Object Notation Lightweight Directory Access Protocol Library General Public License Megabyte Mozilla Public License Network File System Not only SQL Random Access Memory Representational State Transfer Rich Site Summary Structured Query Language Wide Area Information Server System Extensible Markup Language KOS content 445 Abbildungsverzeichnis Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb 1 Vier Felder Matrix der Boston Consulting Group 7 2 Vier Felder Matrix f r die Bewertung von Open Source Projekten gt 9 3 Webinterface von E ee e EE 12 4 Invertierter Index Beispiel f r eine Suche nenn 19 5 Funktionsweise von Lucene ENEE 21 6 Schema der REST Architektur eek 23 7 Zusammenspiel von Solr und Lucene ENNEN 26 8 Elasticsearch Indexierung und Indexreplikation Schritt 1 u 244 een 29 9 Elasticsearch Indexierung und Indexreplikation Schritt 2 nennen
11. Der Query Processor wird aktiv sobald eine Suchanfrage gestellt wird Er durchsucht den vom Inromation Retrival System aufbereiteten Datenbestand auf Eintr ge die zu den eigegebenen Suchbegriffen passen Hierbei erfolgt das Durchsuchen mit Hilfe von Inde xen die anhand der Schl sselbegriffe angelegt worden sind Die gefundenen Ergebnisse werden dann vom Query Processor nach Relevanz sortiert und dem User aufgelistet In Abbildung 3 ist zu sehen wie die drei verschiedenen Bestandteile zusammenarbeiten Ein User ver ffentlicht eine Website der Crawler erfasst diese Seite und nimmt sie in den Datenbestand mit auf Dieser Datenbestand wird dann durch das IR System sortiert und eine Indexierung vorgenommen Der Query Processor durchsucht bei einer Anfrage durch einen User nach Eingabe eines Suchbegriffs den Datenbestand und sortiert die Ergebnisse Die Suchergebnisse werden dann dem User zur ckgegeben illicit sortierte Daten re WEB ROBOT IR SYSTEM SSS Sa INDEX Sammlung auszuschlie ende Ordnung Speicherung URLs relevante Such begriffe Beschaffung der Inhalte von Websites PROCESSOR sortierte Such ver ffentlichung von Websites Suchanfrage SUCHMASKE Tia Eingabe en SUCHMASCHINE User Suchergebnisse Abbildung 3 Funktionsweise von Suchmaschinen F r das Durchsuchen von Datenbest nden gibt es verschiedene Suchalgorithmen Im Fol genden werden zwei
12. Inc 2012b http aws amazon com de s3 Abruf 03 01 2013 Borthakur D 2009 HDFS Architecture Guide http hadoop apache org docs r0 20 0 hdfs design pdf Abruf 07 01 2013 Chaudhri A 2011 Big Data University What is Hadoop http bigdatauniversity com courses mod url view php id 7463 Abruf 09 01 2013 KOS content 638 Cubrid 2012 Figuiere M 2009 IBM Corporation 2012 Lackers R u a 2012 McDonald K 2011a McDonald K 2011b The Apache Software Foundation 2011 The Apache Software Foundation 201 2a The Apache Software Foundation 201 2b The Apache Software Foundation 2012c The Apache Software Foundation 201 2d 40 Hive Architecture http www cubrid org files attach images 220547 047 369 hive architecture png Abruf 19 12 2012 Xebia France Devoxx Jour 1 NoSQL avec HBase http blog xebia fr wp content uploads 2009 1 1 hbase shema png Abruf 01 01 2013 IBM Software Information Management InfoSphere Platform Big Data Analytics What is HBase http www 01 ibm com software data infosphere hadoop hbase Abruf 01 01 2013 Content Management System CMS http wirtschaftslexikon gabler de Archiv 75915 content management system cms v8 html Abruf 04 01 2013 Big Data University Hadoop architecture http bigdatauniversity com courses mod url view php id 7470 Abruf 09 01 2013 Big Data University Hadoop MapReduce http
13. Modularit t Erweiterbarkeit e benutzerdefinierte Indexierung und Sequenzie rung e benutzerdefinierter Anschluss an Legacy Systeme e benutzerdefinierte Verarbeitungsschritte Releaseabstande e Version 0 89 07 12 2010 e Version 0 90 19 01 2011 e Version 0 94 16 02 2012 Releases ca im 1 Jahresrhythmus Dokumentation Benutzerhandbuch vorhanden e Installationsdokument vorhanden e Link zur Dokumentation f hrt ins Leere Sprache der Dokumentation ausschlie lich englisch Qualit t der Dokumentation e Installationshandbuch in PDF Format e Installationshandbuch besteht nur aus Code Beispielen e Link zur Dokumentation f hrt ins Leere Support Community und kosystem Stand Januar 2013 e zwei Projektforen vorhanden jedoch letzter Ein trag von Juli 2011 e vier Projekt Tracker f r Bugs Support Requests Patches und Feature Requests e Letzter Bug Eintrag ist vom 26 11 2011 e Patches wurden bisher nicht eingestellt direkter Ansprechpartner e Kontakt zu Sponsor BIZOSYS Technologies via E Mail oder soziale Netzwerke e keine Angaben ber Kontaktdaten zu Entwicklern 151 Vgl Bizosys Technologies Pvt Ltd 2010b 152 Vgl ebenda 153 Vgl Bizosys Technologies Pvt Ltd 2011 154 Vgl ebenda 155 Vgl Bizosys Technologies Pvt Ltd 2010a 156 Vgl SourceForge 2013 KOS content 499 53 Vorhandensein von FAQ kein FAQ vorhanden Marktakzeptanz Anzahl der Stakeholde
14. Portable Document Format Personal Package Archive relationales Datenbankmanagementsystem Representational State Transfer Remote Procedure Call Reduced Redundancy Storage Structured Query Language KOS content 597 SSH TB TCP UDF WebDAV XML Secure Shell Terabyte Transmission Control Protocoll User Defined Functions Web based Distributed Authoring and Versioning Extensible Markup Language KOS content 598 Abbildungsverzeichnis Abb Abb Abb Abb Abb Abb Abb 4 2 3 4 5 6 7 SHDFS Arenlicklufs nee ne ee en 7 Schema Oe Ee HH er es anne een 11 Kommunikation der Nodes in Hadoop nn 13 Prozess Abfolge einer MapReduce Anfrage sssssseesneesseesrnrrrrersserrrrrrrrrrsserrrrrrre 14 nale 19 Hive Architektur und Kopplung mit Hadoop ssssssssessesssssssrrrnersserrrrrrrnrrssrrrrrrnn 24 Anleitung Amazon S3 unter Verwendung der AWS Management Console 32 KOS content 599 1 Einleitung Das Volumen unstrukturierter Daten wird immer gr er Gerade bei den Big Players im Web 2 0 wie Facebook Yahoo und Google fallen immer mehr Daten an In den letzten zwei Jah ren wurden durch diese Firmen ca 90 des gesamten Datenvolumens im Internet erzeugt Mit den traditionellen relationalen Datenbanksystemen wie MySQL DB2 oder Oracle sind diese enormen Datenmengen welche sich im Terabyte Bereich bewegen nicht mehr effizi ent zu verarbeiten Um diese Big Data in den Grif
15. Wilhelm Evert Marcel Reifenberger Michael Ried Jan Philipp Oppermann am 22 01 2013 Fakult t Wirtschaft Studiengang Wirtschaftsinformatik WWI2O10V KOS content 443 Inhaltsverzeichnis A k rz ngsverzei hS ses tree ee II Abbildungsverzeichhis n nn ee He keine IV Tabellenverzeichhis a zu ra ee nee een V 1 EUREN ee ri 1 2 konzept zur Bewertung von Open Source Suchmaschinen nnnnnnnnennnn 2 2 1 Methoden zur Beurteilung von Open Source Proiekien nennen 2 2 2 Kriterienkatalog zur Bewertung von Meia Guchmaschmen 10 3 Analyse von Open Source Guchmaschimen nn 17 Sell EUGENE ae area EE 18 3 1 1 Hintergrundinformationen sushi ade 18 3 1 2 Betrachtung der Funktionsweise nn 20 3 2 SO sinken 22 3 2 1 Hintergrundinformationen EE 22 3 2 2 Betrachtung der Funktionsweise kee 24 3 3 EE a Oe idee Rane See 27 3 3 1 Hintergrundinformationen ANEN 27 3 3 2 Betrachtung der Funktionsweise kee EEN 28 gA EISBaIch area 31 3 4 1 Hintergrundinform tionen Geseke ee 31 3 4 2 Betrachtung der Funktionsweise nn 32 4 _Einzelbewertung der Suchmaschinen ANNE 34 ZA Bewert ng von MEIER enee eene Ee EE SE 34 4 2 Bewertung von Solr EE 40 4 3 Bewertung von Elasticesearch AAA 46 4 4 Bewertung von HSeareh a ee 51 5 Gegeniberstellung und Gesamtbewertung der Open Source Suchmaschinen 56 6 Zusammenfassung und Ausblick 2 222 22 62 PAIN tacts ee ee ee ln ee ee eh a ht 63 Quellenverzeichnisse sn sa 69 KOS content
16. ber Objectid e Abfrage ber Werte nur ber Key Abfragem glichkeiten PUT GET DELETE e Als Embedded System volle Power von Java e Als standalone Server Cypher oder Gremlin als Abfragesprachen Betriebssysteme e Windows e Windows e Linux e Windows e MacOSX e MacOSX e MacOSX e MacOS X e Linux e Linux e Windows e Linux ee AP cP AP AP Datenmodell Dokumente mit Schl ssel Column Families mit Spalten Wert Paaren mit dem Zusatz dass die Datenstruktur im Wert interpretiert wird Schl ssel Wert Paare Property Graph Modell Datennavigation wie sind Daten mit einander verkn pft alle relevanten Werte als Spalte in Column Family enthalten Dokument b ndelt alle Informationen an einer Stelle Navigation nicht m glich Navigation ber Kanten Beziehungen Datenschema gr tenteils schemafrei ausgenommen Keyspaces und Column Families schemafrei Schema pro Store festzulegen schemafrei KOS content 671 27 ber Hadoop HDFS Replika tionsanzahl bzw strategie im Ring konfigurierbar Master Slave Modell ja wie oft wird pro Store festgelegt Kriterien Cassandra MongoDB Voldemort Neo4j Lizenz Apache License Version 2 ggf DataStax DataStax Enterprise f r Produktion GNU AGPL v3 0 Apache License GPL AGPL und kommerziell und Forschung letzteres kostenfrei Performanz Replikation Master Slave Modell Skalierb
17. 1 Schmidt Martin 45000 2 Hahn Maria 51000 3 Johann Kathrin 42000 Vgl Wartala R 2012 S 139 f 3 Vgl IBM Corporation 2012 KOS content 616 18 In der spaltenorientierten DB hingegen werden die Daten spaltenweise in die Strings ge schrieben und sehen somit wie folgt aus 1 2 3 Schmidt Hahn Johann Martin Maria Kathrin 45000 51000 42000 Diese differenzierte Art der Persistierung Speicherung erm glicht es einem DWH wie z B Hive auf welches spater noch eingegangen wird die Daten einfacher zu aggregieren und auch strukturiert abzufragen HBase Apache HBase ist eine verteilte skalierbare spaltenorientierte Datenbank f r gro e Daten mengen welche ganz speziell f r die Hadoop Technologie verwendet wird 7 Es setzt auf der Hadoop Technologie HDFS auf und ist ein Open Source Produkt Im Gegensatz zu rela tionalen DB bietet HBase dem Anwender keine Abfragesprache wie z B SQL denn HBase ist nicht im entferntesten eine relationale DB HBase Anwendungen sind genau wie MapRe duce Algorithmen in Java geschrieben Technisch gesehen ist HBase mehr ein Datenspeicher als eine Datenbank denn es fehlt HBase an vielen Funktionen die ein relationales Datenbankmanagementsystem RDBMS im Normalfall zur Verf gung stellt wie z B Sekund rschl ssel Trigger Ausl ser komplexe re Abfragesprachen etc HBase ist dazu ausgelegt mit Hilfe des HDFS groBe Datenmengen zu bewaltigen und wird von
18. 392 2 Theorie zu Suchmaschinen 2 1 Was sind Wikis Wikis werden heutzutage sehr vielf ltig eingesetzt Die folgende Definition gibt einen guten berlick was Wikis sind und wie sie allgemein funktionieren Wikis sind web basierte Computerprogramme die es dem Nutzer erlauben schnell einfach und in Gemeinschaft mit anderen Informationsangebote mit dem Web Browser zu erstellen und die Inhalte sofort am Bildschirm ndern zu k nnen Auch die Ergebnisse dieser Zusam menarbeit werden Wikis genannt Der wohl bekannteste Vertreter der Wikis ist Wikipedia Hierbei k nnen Online User nach Begriffen suchen und sich ber diese informieren Es besteht aber auch die M glichkeit Bei tr ge online zu ndern oder eben auch neue Beitr ge hinzuzuf gen Wikipedia stellt in die sem Fall ein Wiki dar welches online f r jeden zug nglich ist Es gibt allerdings auch soge nannte Unternehmenswikis die lediglich unternehmensintern zug nglich sind und das Wis sensmanagement deutlich erleichtern Hierbei kann es Wikis geben die sich inhaltlich auf die verschiedenen Abteilungen beziehen ebenso ist es aber auch m glich Wikis ber Projekte zu f hren in denen Mitarbeiter an dem Projekt wichtige Informationen festhalten und f r an dere zug nglich machen k nnen Bei der VERS wird ein Unternehmenswiki eingesetzt um intern Informationen austauschen zu k nnen 2 2 Wof r werden Suchmaschinen eingesetzt Suchmaschinen werden vielf
19. GET Message 2013 01 10 19 20 34 DEL Message 2013 01 10 19 40 54 KOS content 687 43 Anhang 9 RDBMS Prototyp Um die Vergleichbarkeit zwischen den Einsatzgebieten der NoSQL Vertretern und einem traditionellen Datenbanksystem zu erh hen wird ebenfalls ein relationales Datenbankmodell abgebildet Dieser Prototyp beschreibt ein ganzheitliches Modell eines sozialen Netzwerks Nachrichten 5 Timestamp jenutzer V FROM_User_ID M_ F Benutzer_1 User ID a 9 TO_UserID a Vorname Betreff A i Nachname Nachricht H Geburtstag Seen Wohnort Freundschaft a 7 E Mail Ser User Di S Passwort Passwort d User_ID2 Foto_ID Statusmeldung Objekt Objed_ID x Kommentar UserID Object D Objec_ID Status_text Figo vB fi a ID Timestamp YUSEF Update_time Comment_Text Timestamp Gef lltMir H ObjectID UserID Timestamp Dieser Prototyp wurde mit MS Access umgeseizt Das Modell ist in Tabellenstrukturen zei lenorientiert aufgebaut und unterliegt den Prinzipien der Normalisierung Bei relationalen Datenbanken m ssen alle Datenstrukturen ggf Schema Tabellen Schl s seln G ltigkeitswerten definiert CREATE werden bevor sie mit Daten beladen werden k nnen Es werden Daten von 100 generierten Testusern in die Datenbank aufgenommen Bei der Bef llung der Tabellen mit den Da
20. HTML XML Dateiunterstitzung OpenDocument Format Rich Text Format Audioformate MP3 MIDI Videoformate Flash Bildformate JPEG JAVA Klassen Dateien Cloud Unterst tzung keine Cloud Unterst tzung nur z B ber Solr m glich Suchalgorithmus Volltextsuche 17 Volltextsuche unterst tz e Stemming Wort wird auf seinen Wortstamm redu Synonyme u Korrektur ziert Beispiel Gefunden und findet werden zu find reduziert bei einer Suche werden alle Ergeb nisse zu diesem Wortstamm angezeigt 71 Vgl The Apache Software Foundation 2006 72 Vgl Rowe S u a 2011 73 Vgl ebenda 74 Vgl Schmidt J 2012 75 Vgl The Apache Software Foundation 2012a 76 Vgl Schneider T 2004 KOS content 484 38 e Rechtschreibkorrektur enthalten Ergebnisdarstellung e auf einzelne Ergebnisse kann verlinkt werden Cached Results Hintergrundinformationen e M glichkeit zur Anzeige von Hintergrundinformatio Cached Results u nen nicht vorhanden u th ETE ividuelle Ausgabe ber Webinterface m glich Skalierbarkeit Mit Lucene direkt nicht zu realisieren In Verbindung mit Solr Skalierbarkeit und dem SolrCloud Projekt k nnen z B Indexierungsaufga ben auf mehrere Server verteilt werden DU M glichkeiten der Anbindung LDAP Anbindung Anbindung an LDAP ist nicht m glich nur ber Solr etc rea Umsetzu
21. Pilato D 2012 144 Vgl Elasticsearch o J d KOS content 497 51 e zur allgemeinen Bedienung Weboberfl chen ver intuitive Bedienung f gbar e zur Erweiterbarkeit JSON REST eels eiell elena GE Anleitung Tutorials f r Installation und Konfiguration sind guration auf der Homepage mit Codeausschnitten verf gbar Kompatibilit t Kompatibilit t mit Unix und Windows Betriebssystemen Tab 15 Bewertung von Elasticsearch 4 4 Bewertung von HSearch In diesem Kapitel wird das Projekt HSearch der Firma Bizosys anhand der gegebenen Krite rien bewertet In Tab 16 erfolgt zun chst die reine Projektbewertung Produkt Produktalter erster Release seit 2010 verf gbar Lizenzen Apache 2 0 freie kostenlose Lizenz Plattform u Kompatibilit t Java Entwicklung damit plattformunabhangig unterst tzt Unix Betriebssysteme sowie Windows Systeme Funktionalit t exemplarisch e voll funktionsf higer Suchserver out of the box e Volltextsuche e unscharfe Suche e Unterst tzung strukturierter semi strukturierter und unstrukturierter Datenquellen e Berechtigungsverwaltung e Monitoring Tools e verteilte Suchmaschine 145 Vgl Elasticsearch o J a 146 gl Elasticsearch o J c 147 Vgl Elasticsearch o J a 148 gl Bizosys Technologies Pvt Ltd 2010a 149 Vgl ebenda 150 Vgl ebenda KOS content 498 52 e Ranking Funktionen
22. S 5 18 gl Borthakur D 2009 S 5 f 1 Ebenda S 6 KOS content 606 Speichern der Metadaten im Dateisystem Der NameNode verwendet ein Transaktionslog namens EditLog zur Speicherung aller nde rungen die die Metadaten des HDFS Dateisystems betreffen Der EditLog wird auf dem lo kalen Dateisystem des NameNode gespeichert Das Speichern der Zusammengeh rigkeit der einzelnen Bl cke zu der Ursprungsdatei und die Eigenschaften des HDFS Dateisystems sind in einer Datei namens Fslmage ebenfalls auf dem lokalen Dateisystem des NameNode gespeichert Der NameNode beh lt ein Image der Datei Fslmage im Arbeitsspeicher Beim Start des NameNode werden die Dateien Fslmage und EditLog von der Festplatte gelesen Danach werden alle Transaktionen aus dem EditLog ausgelesen und in das sich im Haupt speicher befindende Fslmage geschrieben Daraufhin wird das aktualisierte FsImage zur ck auf die lokale Festplatte des NameNode geschrieben und die alte Version des EditLog ent fernt Der DataNode speichert jeden Datenblock in einer separaten Datei auf seinem lokalen Da teisystem ab ohne dabei Kenntnisse ber die HDFS Dateien zu haben Beim Start des DataNode wird ein Scan des lokalen Dateisystems durchgef hrt eine Liste aller HDFS Da tenbl cke erstellt und den daraus entstandenen Blockreport an den entsprechenden Name Node gesendet 7 Kommunikationsprotokolle Alle HDFS Kommunikationsprotokolle bauen auf TCP IP auf Ein Client baut eine V
23. Vergleich in Computerwoche 2011 Nr 43 KOS content 689 45 Verzeichnis der Internet und Intranetquellen Beany 2011 Computerwoche 2011 Computerwoche 2012 Datastax 2012a Datastax 2012b Datenbanken Online Lexikon 201 1a Datenbanken Online Lexikon 201 1b NoSQL Systeme http blog beany co kr archives 275 Abruf 06 12 2012 Datenflut bereitet NoSQL den Weg http www computerwoche de a datenflut bereitet nosql den weg 1232715 Abruf 17 12 2012 Big Data die Datenflut steigt http www computerwoche de a big data die datenflut steigt 2500037 3 Abruf 27 12 2012 Getting Started with Apache Cassandra on Windows the Easy Way http www datastax com resources articles getti ng started with cassandra on windows Abruf 04 01 2013 Cassandra Client APIs http www datastax com docs 1 1 dml about_cli ents Abruf 15 01 2013 Datenbanken Online Lexikon Spaltenorientier te Datenbanken http wikis gm fh koeln de wiki_db Datenbanken SpaltenorientierteDatenbank Abruf 28 11 2012 Datenbanken Online Lexikon Cassandra http wikis gm fh koeln de wiki_db Datenbanken Cassandra Abruf 06 12 2012 KOS content 690 Datenbanken Online Lexikon 201 1c Datenbanken Online Lexikon 2012 Eifrem E 2009 freies Magazin 2010 Grunev M 2010 Ivarsson T 2010 Jansen R 2010 Kwangsub 2012 46 Consistent Hashing http wikis gm fh koel
24. Wartala R 2012 S 114 a Vgl ebenda S 114 79 Vgl ebenda S 115 8 Vgl The Apache Software Foundation 2012d KOS content 625 27 Optimierungsm glichkeit System bestimmt die Reihenfolge der Abfrageausf hrung selbst und optimiert dadurch automatisch den Abfrageablauf Erweiterbarkeit User kann eigene Funktionen implementieren und ausf hren Pig l sst sich damit individualisieren Im Folgenden werden die verschiedenen Typen zur Datenrepr sentation welche in Pig Latin verwendet werden beschrieben Atom einzelner Wert Zahl Zeichenkette Tuple komplexer Datentyp Reihe unterschiedlicher Atome Bag ungeordnete Menge an Tupeln Map Menge von Schl ssel Wertpaaren Die Syntax von Pig Latin ist recht einfach da sich lediglich Wertzuweisungen nicht aber Schleifen und Kontrollstrukturen realisieren lassen Zudem ist es nicht case sensitive Als Schnittstelle fur die Arbeit mit Pig dient die Grunt Shell welche Uber die Ublichen Funktionali t ten wie aus anderen Shells bekannt verf gt Besonderheiten sind jedoch die Historisie rung der eingegebenen Kommandos auf der Shell Oberflache sowie der Auto Complete Mechanismus Datenoperatoren amp Entwicklung Pig Latin erm glicht das Ausf hren einiger relationaler Operationen wie z B FOREACH FILTER GROUP ORDER JOIN etc Diese hneln denen der Structured Query Language SQL sehr Die Skripte f r Pig Latin k nnen sowohl ber die
25. bigdatauniversity com courses mod url view php id 7519 Abruf 09 01 2013 Hadoop MapReduce 0 22 Documentation Hadoop Streaming How Streaming works http hadoop apache org docs mapreduce r0 22 0 streaming ht ml Abruf 17 12 2012 Hadoop Hive What is Hive http hive apache org docs r0 8 1 Abruf 16 12 2012 Apache Hive https cwiki apache org confluence display Hive Home Abruf 19 12 2012 The Apache HBase Reference Guide Architecture Over view http hbase apache org book architecture html arch overview Abruf 17 12 2012 Apache Pig Welcome to Apache Pig http pig apache org Abruf 17 12 2012 KOS content 639 The Apache Software Foundation 2012e The Apache Software Foundation 2012f The Apache Software Foundation 20129 The Apache Software Foundation 201 2h The Apache Software Foundation 201 2i Varenkamp R Siepermann C 2012 41 Apache Pig Welcome to Apache Pig http pig apache org Abruf 17 12 2012 Apache Sqoop Sqoop Documentation Sqoop User Guide v1 4 2 http sqoop apache org docs 1 4 2 SqoopUserGuide html Ab ruf 01 01 2013 Apache ZooKeeper ZooKeeper Documentation ZooKeeper A Distributed Coordination Service for Distributed Applications http zookeeper apache org doc trunk zookeeperOver html Abruf 01 01 2013 Hadoop Wiki PoweredBy http wiki apache org hadoop PoweredBy Abruf 09 01 2013 Hadoop MapReduce Tutorial http ha
26. der Datens tze und ihrer Replikas gelegt Die Konsistenz wird immer nur bei einem Lesezu griff ber die Versionierung der Werte wieder hergestellt Die Versionierung funktioniert so dass beim Abspeichern der Daten jeweils der Knoten von dem aus geschrieben wird und die verwendete Version vermerkt werden So kann sp ter beim Lesen der konsistente Wert berechnet werden D Die Abfragem glichkeiten bei Voldemort sind noch recht begrenzt so ist im Moment nur das Einf gen Lesen und L schen verschiedener Key Value Paare m g Wich Di Weitere Informationen zu Voldemort sind haupts chlich auf der Seite des Projekts unter http www project voldemort com zu finden 82 Enthalten in Project Voldemort o J 83 Vgl Project Voldemort o J 7 Vgl Edlich S u a 2010 S 262 KOS content 666 22 3 4 Cassandra Cassandra ist eine Entwicklung von Facebook und wurde zur Speicherung und Abfrage der Nachrichten der User untereinander verwendet Fachlich lehnt es sich an Amazons Dynamo und Googles BigTable an sticht jedoch durch seinen hybriden Charakter hervor Cassandra nutzt einerseits Key Value Eigenschaften und setzt andererseits auf eine flexible Schemaun terst tzung Cassandra will hierbei eine an SQL Datenbank erinnernde Schemasicherheit bei gr tm glicher Flexibilit t und Skalierbarkeit bieten Letzteres basiert hierbei auf einer ver teilten Architektur Cassandra Ring mit einer starken horizontalen Skalierbarkeit
27. e Quellcodearchiv e Quellcode 4 7 1 Vorteile e Gute horizontale Skalierbarkeit Durch zus tzlichen Knoten wird Daten und Re chenlast automatisch verteilt ohne gro en Konfigurationsaufwand und zugleich ein fache Bedienung Vgl St uble M 2010 http it republik de jaxenter artikel ElasticSearch Verbindung von Lucene und Cloud 3134 html Stand 19 12 2012 39 Vgl Karich P 2012 http www heise de ix artikel Immer flexibel 1440270 html Stand 25 12 2012 al Vgl o V 2013 http en wikipedia org wiki ElasticSearch Stand 25 12 2012 Vgl Lieweries M 2012 http maiks chaos blogspot de 2012 01 elasticsearch die moderne art zu suchen html Stand 26 12 2012 KOS content 421 gt Vgl 54 Vgl o V o V Man kann f r jeden Index eigene Einstellungen konfigurieren Dabei werden vorheri ge Einstellungen berschrieben Zu diesen Einstellungen geh rt beispielsweise ob man Memory oder File based Storage m chte Eingef gte JSON Dokumente werden automatisch indiziert und Datentypen automa tisch erkannt und entsprechend behandelt Dennoch erlaubt ElasticSearch die voll st ndige Kontrolle dar ber wie ein JSON Dokument auf per Typ und per Indexlevel in die Suchmaschine gemappt wird 5 Elasticsearch ist mandatenf hig Mehrere Benutzer Kunden jeder kann nur seine eigenenen f r ihn autorisierten Daten sehen und konfigurieren Ein ausgegl gelter Support der benutzerdefinierte Skr
28. einsatz der Technologie mit vielen Rechnerknoten und gro Ben Datenmengen ausgesch pft werden a Vgl The Apache Software Foundation 2012i KOS content 610 12 4 3 Funktionsweise von Hadoop Den einzelnen Nodes in einem Hadoop Cluster sind unterschiedliche Aufgaben zugewiesen Die HDFS Nodes werden unter anderem in die bereits angesprochenen NameNodes und DataNodes unterteilt Wie aus dem Ausarbeitungspunkt 4 1 hervorgeht gibt es in einem Cluster genau einen NameNode und viele DataNodes Hadoop realisiert bei der Einbindung des MapReduce Verfahrens ebenfalls die Aufteilung der Aufgaben an verschiedene Nodes Dabei ist zwischen JobTracker und TaskTracker Aufgaben zu unterscheiden welche auf verschiedenen Nodes ausgef hrt werden In dem Hadoop Cluster existiert ein JobTracker Knoten Dieser nimmt die MapReduce Auftr ge des Clients an koordiniert die Map Aufgabe zu den jeweiligen TaskTrackern und berwacht de ren Ausf hrung Die Map Verarbeitung wird von den TaskTrackern auf den DataNodes aus gef hrt Jeder DataNode ist dabei typischerweise mit einem TaskTracker ausgestattet der die Map Anfragen f r den gew nschten Datenblock durchf hrt Die Ergebnis Tabellen der einzelnen Map Prozesse werden anschlie end in der Reduce Phase zu einer Ergebnis Tabelle zusammenf hrt Kommt es bei der Ausf hrung zu einem Fehler steuert der JobTracker einen anderen TaskTracker an um die Verarbeitung erneut auszuf hren Es gibt mehrere Ta
29. html Abruf 18 01 2013 Lucene Tutorials http lucene apache org core quickstart html Abruf 18 01 2013 Lucene Mailing Lists and IRC http lucene apache org core discussion htm Abruf 18 01 2013 Lucene 4 0 0 demo API http lucene apache org core 4_0_0 demo o verview summary html overview_description Abruf 18 01 2013 Apache Lucy http lucy apache org Abruf 18 01 2013 Solr TM Mailing Lists and IRC http lucene apache org solr discussion html Abruf 18 01 2013 Solr Tutorial http lucene apache org solr tutorial html Abruf 18 01 2013 Thanks http www apache org foundation thanks ht ml Abruf 18 01 2013 Solr News http lucene apache org solr solrnews html Abruf 18 01 2013 KOS content 521 Walker Morgan D 2011 Worral P 2012 Zacher M 2007 Zend Technologies Ltd 2012 75 Ten years of the Lucene search engine at Apache http www h online com open news item Ten years of the Lucene search engine at Apache 1350761 html Abruf 18 01 2013 Public Websites using Solr http wiki apache org solr PublicServers Abruf 12 12 2012 Wie Open Source die IT ver ndert http www computerwoche de a wie open source die it veraendert 1847565 Abruf 11 01 2013 Indexerstellung http framework zend com manual 1 12 de z end search lucene index creation html zend search lucene index creation permissions Abruf 18 01 2013 KOS content 522 76 Gespr chsverz
30. output myOutputDir mapper cat reducer wc Im oben stehenden Beispiel sind Reducer und Mapper ausf hrbare Dateien welche die Ein gabeparameter Zeile f r Zeile aus der Inputdatei einlesen und die resultierenden Ausgabe parameter in die Ausgabedatei schreiben Der Streaming Dienst erzeugt einen MapReduce Job bergibt diesen an das passende Cluster und berwacht den Ablauf des Jobs bis dieser beendet ist Vgl Wartala R 2012 S 155 53 Vgl ebenda S 156 gt Vgl ebenda S 95 ff Vgl The Apache Software Foundation 2011 KOS content 620 22 Ist ein JAR f r einen Mapper bestimmt f hrt jede Map Anwendung die Datei als einen sepa raten Prozess aus sobald der Mapper initialisiert wird Sobald der Map Prozess l uft wan delt er seine Eingabeparameter in Zeilen und schreibt diese in die Eingabedatei des Prozes ses W hrenddessen sammelt der Mapper die zeilenweisen Ausgabeparameter aus der Ausgabedatei des Prozesses und wandelt jede Zeile in Key Value Paare um die wiederum als Ausgabeparameter des Mappers gesammelt werden Standardm ig bildet der erste Teil einer Zeile bis hin zum ersten Tabstopp den Key Schl ssel und der Rest der Zeile ohne Tabstopp den Value Wert des Key Value Paares Existiert kein Tabstopp in der Zeile so wird die gesamte Zeile als Key betrachtet und der Value als null betrachtet Diese Interpreta tion kann jedoch angepasst werden Ist ein JAR f r einen Reducer besti
31. so werden also mehrere Columns in einer Column zusammengefasst und zu einer Einheit aggregiert Welche Unterspalten die Super Column enth lt muss jedoch erst zur Laufzeit deklariert werden Vgl Edlich S a 2010 8 Vgl Edlich S a 2010 69 ff S S 71 ff cs KOS content 667 23 Neben der Modellierung der CFs ben tigt Cassandra eine weitere Information Bei dem Einf gen werden die Columns sortiert Dies geschieht im Allgemein anhand ihres Namens sortiert Bei der Deklaration muss angegeben werden wie die Eintr ge pro Column Family bei der Sortierung miteinander verglichen werden sollen zum Beispiel ber einen Zeitstem pel des Eintrags den Byte Wert oder den UTF8 Wert des Namens Beim Beladen der CFs durch Anwendungen sind einige Faktoren zu beachten Allgemein liegt hier der klassische Schemagedanke zu Grunde welcher besagt dass Schl ssel sta tisch und Werte variabel gehandhabt werden Abweichend davon werden die Spaltennamen zur Laufzeit frei vergeben Weiterhin besteht keine Bindung an die vorhandenen Spalten das hei t es m ssen einerseits nicht alle Columns der Column Family belegt werden und ande rerseits k nnen flexibel bei der Eintragung Spalten dazu kommen wenn beispielsweise die Anwendung beschlie t die Email des Users zus tzlich zu speichern Abfragen in Cassandra Weiterhin besteht eine Abweichung darin dass die Schl ssel auch variabel eingesetzt wer den k nnen Sie
32. ten und hnlichem e Berechtigungsverwaltung Unabh ngig von der M glichkeit der LDAP Anbindung und der bernahme bestehender Zugriffsrechte kann eine lokale Verwaltung von Berechtigungen von Vorteil sein Hier sind Szenarien denkbar bei denen zum Beispiel zu Testzwecken verschiedene Berechtigungen an einzelne Benutzer vergeben werden Dies kann dadurch realisiert sein dass f r einzelne Benutzer z B aus Active Directory bei gegebener LDAP Anbindung oder Benutzergruppen unterschiedliche Zugriffsrechte f r bestimmte Datenquellen festgelegt werden k nnen e Programmiersprache Das Projekt ist in einer der gangigen Programmiersprachen geschrieben C Java etc Dies erm glicht bei Bedarf eine einfachere Anpassung des Quellcodes falls Funktionalit ten hinzugef gt oder modifiziert werden sollen KOS content 460 14 e Performance Die sehr gute Performance Antwortzeit ist ein entscheidender Aspekt bei der Auswahl ei nes Suchsystems Diese Laufzeit muss auch in Zeiten hoher Last z B wenn besonders vie le Benutzer gleichzeitig Suchanfragen durchf hren gute Werte aufweisen Zudem soll die Indizierung neuer oder bereits vorhandener Datenmengen nur einen minimalen Zeitaufwand verursachen Gemessen wird die Performance beispielsweise anhand der Anzahl an Indizie rungen pro Sekunde Daraus l sst sich dann die Antwortzeit ableiten Als Richtwert f r diese Arbeit werden 300 Millisekunden als Indikator f r eine gute Antwort
33. 2001 S 306 48 gl ebenda 49 Vgl Schonschek O o J 50 Vgl Bizosys Technologies Pvt Ltd 2011 51 Vgl Bizosys Technologies Pvt Ltd 2010a 52 Vgl The Apache Software Foundation 2012c KOS content 478 32 EL atte mlm 0 94 vom 16 Februar 2012 Entwickler Bizosys Technologies Pvt Ltd Programmiersprache Java Lizenz Apache 2 0 kostenlos Benuizerkreis keine Informationen vorhanden Besonderheiten Volltextsuche REST Architektur verteilte Suchmaschine unterst tzt Vielzahl an Datenformaten NoSQL Datenbank HBase Hadoop Frame work Entwickler Homepage http bizosyshsearch sourceforge net Informationsseite Wiki http www hadoopsearch net Community http www bizosys com forum html Kontaktm glichkeiten http sourceforge net projects bizosyshsearch support Tab 9 Hintergrundinformationen zu HSearch 3 4 2 Betrachtung der Funktionsweise Mit HSearch lassen sich eine Reihe unterschiedlicher Quellen durchsuchen darunter relatio nale Datenbanken Mail Server Dateisysteme Webseiten RSS Feeds und XML Dateien Die gefundenen Ergebnisse lassen sich dabei beliebig darstellen z B als Listen mit Filter und Sortierfunktion oder in dynamischen Portlets Daneben gibt es M glichkeiten der Vor schau f r Suchergebnisse und Such und Navigationshilfen z B Brotkr melnavigation und Facetttensuche sowie eine Cloud Unterst tzung Aus Sicherheitssicht w
34. 2010 Mit nderungen entnommen aus Rodriguez M A 2010 KOS content 653 Fast jede Datenbank kann einen Graphen implizit abbilden zum Beispiel in Form einer Matrix Tabelle oder in der Extensible Markup Language XML Eine Graphendatenbank unter scheidet sich von anderen Datenbanken dadurch dass sie einen Graphen explizit darstellen kann Au erdem ben tigt sie keinen Index um die benachbarten Knoten zu erreichen Wesentlich ist zudem dass die Kosten um von einem Knoten zu seinem Nachbarn zu ge langen konstant bleiben auch wenn der Graph w chst Im Gegensatz dazu steigen die Kosten in einer Nicht Graphendatenbank wenn der Index w chst da mehrere Abfragen n tig werden 7 Die Tabelle 2 veranschaulicht die Vor und Nachteile einer Graphendaten bank Vorteile Nachteile e Ersetzen von teuren JOINS durch e keine einheitliche Abfragesprache Graph Traversals e Vernachl ssigung der Konsistenz e konstante Kosten um von einem Knoten zu seinem Nachbarn zu wandern e explizite Darstellung von Graphen e Speicherung semistrukturierter Daten e Performance ist unabh ngig von der Gr e des Graphen Tab 2 Vor und Nachteile einer Graphendatenbank Das Traversieren ist eine der wichtigsten Methoden in einer Graphendatenbank Mit ihr kann der Graph von einem Startknoten aus durchlaufen und dabei Fragen wie Welche Webseiten besuchen meine Freunde oder Wer ist mit wem befreundet beantwortet
35. 23 24 25 26 27 30 28 29 31 32 33 34 35 Pseudocode Synchronously reading and displaying a files content 6 Pseudocode Asynchronously reading and displaying a files content 6 Controlling streams in Node js 16 Generating a new pair of public private keys 2 2 Km Emmen 21 Exemplary jQuery AJAX call rer er De See 22 Inel ding modules 2 2 nes ee EE 22 Installing Express via command line 23 Reading encryption keys 22 on nn 23 Starting servers in Node js 23 Command to install socket io via Node js package manager 23 Initialization of the socket io module in Node js 23 Serving static assets with Express 23 Using the bodyParser 24 Iteration through an array consisting of JSON data 24 Using WebSockets to distribute form inputs in real time 25 Including the client side socket io JavaScript 25 Establishing socket io connection from the client side 25 Joining a specific area room 2 2 2 a 25 Sending data to the server 26 Executing Node js code 2 22 2 2 En nn nen 26 Receiving data using WebSockets 27 Verticle that starts two other verticles 28 Command for starting the Vert x application 28 Vert oxformenandler 24 3 aa ge Eeer Ai e 29 Vert x worker verticle that receives the message sent by the form handler 29 Vert x event bus bridge configuration 2 22m nn m nn 30 Exa
36. Anbindungsm glichkeiten und die M glichkeit der lokalen Berechtigungsverwaltung aus Zudem kann Solr in einer gro en Anzahl g ngiger Programmiersprachen implementiert wer den hnlich wie Solr bietet auch HSearch eine recht gro e Auswahl an Funktionalit ten ohne dass diese nachger stet werden m ssen Hier sind vor allem die Tools zu nennen mit de nen eine berwachung bzw ein Reporting m glich ist sowie die unscharfe Suche Weitere Vorz ge sind die gute Skalierbarkeit die Unterst tzung von vielen Datenquellen und die ein gebaute Benutzer und Zugriffsverwaltung Abz ge gab es haupts chlich f r die fehlende Anbindungsm glichkeit f r Wiki Systeme sowie die fehlende Cloud Unterst tzung Die St rken von Elasticsearch liegen in dessen guten Skalierbarkeit und der hervorragenden Modularit t Letztere erm glicht es dass Funktionen die standardm ig nicht im Funktions umfang enthalten sind ohne weiteres ber Add Ons nachger stet werden k nnen Betrach tet man diese von der Community entwickelten Add Ons findet man eine breite Palette an Werkzeugen z B Tools zur Darstellung von Hintergrundinformationen zur Suche Tools zur Darstellung von semantisch und syntaktisch hnlich geschriebenen Suchw rtern oder Pro gramme zur Performance berwachung Die Schw chen liegen bei den Anbindungsm glich keiten von Elasticsearch So k nnen die Wiki Systeme gar nicht und die brigen Datenquel len nur ber die Integration von Modul
37. Diese L sung wird generell als ausgereift bewertet da alle notwendigen Funktionen bereit gestellt werden Das Anpassen an unternehmensinterne Strukturen ist ohne Probleme um setzbar da Yacy ber die Open Source Lizenz verf gbar ist Der Literatur ist zu entnehmen dass derzeit etwa 1 4 Mrd Dokumente im Web indiziert wurden Damit ist eine Implementie 5 deruwe de 2009 6 de wikipedia org 2013 KOS content 410 rung in einem Intranet an diesem Punkt bedenkenlos Das Anbinden von vielen Clients macht die Suchmaschine performanter Je mehr Clients angeschlossen sind desto mehr Ergebnisse liefert die Suche Das Peer to Peer Prinzip erm glicht im Web die Erfassung und Indexierung des Deep Web da die Indexierung ber den Proxy des Nutzers stattfindet und einen klaren Vorteil gegen ber dem bekannten Prinzip ausmacht Je nach Anzahl der Cli ents die sich in einem Intranet bewegen macht eine Verwendung von Yacy in einem Unter nehmen mehr oder weniger Sinn Je mehr Clients aktiv sind desto eher lohnt sich die Be trachtung Dies muss individuell gepr ft werden und ist abh ngig von der Anzahl der Mitar beiter die im t glichen Betrieb online sind Anforderungen der VERS Bedingt erf llt Perfromance Test notwendig Besonderheiten Peer to Peer Konzept erfolgreich umgesetzt Fast ausfallsicher da der online User gleichzeitig den Server bildet 4 4 Swish e Swish e steht f r Simple Web Indexing System for Humans Enhanced
38. Dokument Damit sind Suchmaschinen zu bevorzugen die eine Volltextsuche unterst tzen Eine Volltextsuche erlaubt es durch Speicherung des auf bereiteten Textes und durch entsprechende Algorithmen jedes Dokument zu finden das mindestens ein Wort der Suchanfrage enth lt Hierbei handelt es sich um ein Pflichtkriteri um e Synonyme und Korrektur Die Suche bezieht sich nicht nur auf die eingegebenen Parameter sondern auch auf alle in einem logischen Zusammenhang stehenden Variationen Des Weiteren soll es eine Korrek tur in Form einer Begriffskl rung Meinten Sie geben Folglich ist eine gewisse Unschar fe bei der Suche w nschenswert Diese w re sowohl aus syntaktischer als auch aus seman tischer Sicht hilfreich wobei letzteres aufgrund dessen Komplexit t voraussichtlich nur mit einem h heren Aufwand realisierbar ist Beide Funktionen tragen entscheidend zu besseren Suchergebnissen und zur Ergonomie bei der Benutzung des Systems bei 13 Vgl Konrad R 2009 S 4 KOS content 458 12 e Cached Results und Hintergrundinformationen Jedes Ergebnis wird mit einem Link versehen welcher direkt zur Fundstelle f hrt Bei jeder Suche wird au erdem angezeigt wie lange die Suche dauert wie oft das Suchwort gesucht und gefunden wurde oder ob sich das Suchwort im Titel oder Text befand N tzlich sind auch Vorschaufenster f r gefundene Ergebnisse All diese Funktionen tragen ebenfalls zur Ergonomie bei e Ausg
39. Hadoop un ae tanec nas 12 4 4 e ne ee EE 16 5 Zus tzliche Komponenten Erg nzende Gvsieme 17 5 1 Spaltenorientierte Datenbank HBase ENNEN 17 52 MAACO PD Streaming ee ea 21 5 0 Dalenll ss Sprachen sersseneseieat een eher 22 Dal WE EE 23 e m EE E a Ee 26 5 4 Datenserialisierung Mit Gooop e 27 55 Z00KEeper tue 29 6 net lee Lee eine 30 6 1 Simulation auf PC Pseudo Distributed COpoeraton seen 30 6 2 Cloud am Beispiel von Amazon Web Services mit Amazon 73 30 7 Fall erregte 33 PREV Sis hd 34 Quellenverzeichnisse ea a a N le 39 KOS content 596 Abk rzungsverzeichnis ACID Amazon S3 API ASF AWS BASE BI CSV DB DBS DDL DML DWH ERP System ETL HDFS HiveQL FS Shell IDC Atomacity Consistency Isolation Durability Amazon Simple Storage Service Application Programming Interface Apache Software Foundation Amazon Web Services basically available soft state eventually consistent Business Intelligence Comma Seperated Values Datenbank Datenbanksystem Data Definition Language Data Manipulation Language Data Ware House Enterprise Resource Planning System Extract Transform Load Hadoop Distributed File System Hive Query Language File System Shell International Data Corporation Internet Protokoll Information Technology Java Archive Java Database Connectivity Java Virtual Machine Java Runtime Environment Java Virtual Machine Not only SQL Open Database Connectivity
40. Heartbeat zyklisch an den JobTracker Anschlie end liest der TaskTracker die Informa tionen welche Datenbl cke zu verarbeiten sind vom HDFS NameNode Als n chsten Schritt initialisiert der TaskTracker Node eine weitere lokale JVM um die Anfrage auszuf h ren Im letzen Schritt wird diese Anfrage von der JVM im TaskTracker Node ausgef hrt 31 Enthalten in White T 2012 S 191 32 White T 2012 S 190 ff KOS content 613 15 Hadoop ist nicht f r alle Verarbeitungsarten geeignet Es eignet sich nicht f r Datentransak tionen da die Daten redundant gespeichert sind und die Verarbeitung nicht auf einem be stimmten Knoten sondern auf einem zuf llig ausgew hlten Knoten stattfindet Des Weiteren ist Hadoop nicht effizient wenn die Verarbeitung nicht parallelisiert werden auch Viele kleine Dateien sollten ebenfalls nicht mit Hadoop verarbeitet werden da diese nicht der Blockgr e des HDFS entsprechen Sowohl die Speicherung als auch die Verarbeitung beziehungswei se die Kalkulation kleiner Dateien sollte mit einem anderen System gel st werden Hadoop ist f r die Verarbeitung von Big Data optimiert Hadoop wird ber die FS Shell gesteuert Hier werden alle n tigen Befehle eingegeben ber die Shell werden die Daten in das Hadoop System eingespielt und manipuliert Um Auswertungen vorzunehmen wird die Java Archive Datei JAR Datei von der FS Shell aus aufgerufen die den MapReduce Algorithmus enth lt Um ei
41. Jan 2013 4 0 Entwickler Doug Cutting Programmiersprache Java Lizenz Apache 2 0 kostenlos Benutzerkreis u a Wikipedia Twitter FedEx Hewlett Packard Besonderheiten Volltextsuche Wildcard Abfrage Entwickler Homepage http lucene apache org Informationsseite Wiki http wiki apache org lucene java FrontPage Community http lucene 472066 n3 nabble com TIET EE E http lucene apache org core discussion html Tab 5 Hintergrundinformationen zu Lucene 17 Vgl Karich P 2012 S 68 KOS content 466 20 3 1 2 Betrachtung der Funktionsweise Bei einer Suchmaschine stellt der Index das zentrale Element dar Wie bereits erw hnt han delt es sich bei Lucene um die besondere Form des invertierten Index Das Suchwerkzeug zerlegt dabei ein Dokument in sog Postings Diese bestehen aus dem Wort w und dem Do kument d in welchem dieses Wort vorkommt Bei d handelt es sich nicht um das tats chliche Dokument sondern um einen Verweis auf dieses Dokument Ein Posting enth lt dabei nicht nur die Dokumenten ID und das Wort sondern oft auch noch die H ufigkeit des Auftretens eines Worts sowie die Positionen in einem Dokument Bei normaler Indexierung wird jedes Dokument nacheinander nach dem gesuchtem Wort durchsucht Dies hat nat rlich eine ge ringe Performance zur Folge Bei der invertierten Indexierung wird dies umgedreht Es wird zuerst nach den W rtern gesucht und dann auf die dazugeh rigen Dokumente verwi
42. Nach dem Entpacken der Zip Datei m ssen folgende Konfigurationsschritte beachtet werden e ndern der Pfade von in der Datei Cassandra YAML directories where Cassandra should store data on disk data file directories D apache cassandra 1 2 0 data commit log commitlog directory D apache cassandra 1 2 0 commitlog Note Hierbei ist genau auf die Leerzeichen und den Spiegelstrich zu achten e Setzen der Umgebungsvariablen JAVA_HOME Zielpfad zum JRE Verzeichnis mindestens jre 1 6 zB C Program Files Java jre6 CASSANDRA_HOME Zielpfad zum Verzeichnis von Cassandra z B C Users Christin Cassandra apache cassandra 1 2 0 e Starten von Cassandra im Command Line Interface o Starten des Servers Cassandra bat o Starten des Clients Cassandra CLI bat e Operationen auf der Datenbank ber o Ausw hlen einer CF ber use lt Column Family Name gt o CLI Befehle default lt Column Family Name gt o CQL Befehle Calsh gt 105 Vgl Quality Unit o J KOS content 686 42 Anhang 8 CQL und CLI Befehle aus dem Cassandra Prototypen CQL NSERT INTO Messa ge Key User ID From User Name From User ID To User Name To Subject Message VALUES 2013 01 10 19 20 34 so phie lingelbach web de Sophie tana brunner sowieso de Tana Projekt NoSQL Hey Tana fuer unsere Praesentation brauchen wir noch ein Beispiel und eine Live Demo Das mu
43. Nutzer seine eigene Indexierung erstellt Damit w rde jeder Nutzer ber seine eigene pri vate Suchmaschine verf gen Damit ist eine Verwendung in einem Unternehmens Intranet ebenfalls m glich Das Aufsetzen eines eigenen Webcrawler ist m glich der an einer vorgegebenen Seite startet und alle Links nach Hyperlinkstruktur durchsucht und indexiert Nachteile Inhalte k nnen nicht zensiert werden und somit stehen alle Inhalte f r jeden zur Ver f gung Nur Nutzer die online sind liefern ein Inhaltsverzeichnis Sind wenige Anwender online kann nur eine begrenzte Anzahl an Suchtreffern angezeigt werden Fallen gro e Peers aus werden ebenfalls nur wenige Ergebnisse gefunden Da eine Suche ber andere Peers l uft ist die Geschwindigkeit im Vergleich zu kommerziellen Suchmaschinen wie Google niedrig Das YaCy Protokoll funktioniert ber einzelne HTTP Requests wodurch es eine h here Latenz aufweist als UDP oder TCP mit dauerhaften Verbindungen 7 Die Verteilung von Spam ist theoretisch sehr einfach indem der Spammer eigene Peers bereitstellt die falsche Ergebnisse ausgeben Falsche Suchergebnisse wer den aber dadurch nicht m glich da ein Peer durch Nachladen der Ergebnisseiten vor der Anzeige die Treffer verifiziert Funktionsweise Das Herzst ck der Suchmaschine ist anders als bei anderen Suchmaschinen nicht eine zentrale Seite sondern ein Computerprogramm das auf fast allen Betriebs
44. Server ausfallen ohne dass dadurch die Funktion des Cluster beeintr chtigt wird Hierzu replizieren sich die Server untereinander Ein Cluster wird bei ZooKeeper als Ensemble bezeichnet Ein Server ist der Leader die an deren Server sind Follower Schreibzugriffe der Clients werden an den Leader weitergeleitet dieser sendet diese als Vorschl ge an die Follower Die wiederum akzeptieren die nderung ber ein internes Nachrichtensystem und validieren sie damit Mit diesem Nachrichtensystem wird au erdem die Rolle des Leaders zwischen den Followern neu zugewiesen wenn der Leader ausf llt Um diese Synchronizit t innerhalb des Ensembles zu erreichen verwendet ZooKeeper Versionsnummern f r jedes Update das ein Client sendet Damit wird sicherge stellt dass die Updates der verbundenen Clients in der richtigen Reihenfolge ausgef hrt Vgl Wartala R 2012 S 216 f a Vgl ebenda S 216 f Vgl ebenda S 218 KOS content 628 30 werden Au erdem gilt das Transaktionsprinzip Updates sind atomar entweder werden sie ganz ausgef hrt oder sie werden komplett verworfen Jeder Server h lt die Informationen des gesamten Ensembles im Speicher bereit Ein Abbild der Konfiguration wird im persistenten Speicher aller Server abgelegt Grunds tzlich verbin det sich ein Client nur mit einem ZooKeeper Server Er besitzt jedoch eine Liste aller Server um sich beim Ausfall seines zugewiesenen Servers automatisch mit einem anderen
45. Solutions o J Kleijn A 2006 Klose M 2012 Kumar B 2006 Lightwerk o J Maas G 2012 72 users http www elasticsearch org users Abruf 18 01 2013 Attachment Type http www elasticsearch org guide reference mapping attachment type html Abruf 18 01 2013 Analysis http www elasticsearch org guide reference index modules analysis Abruf 18 01 2013 Clients amp Integrations http www elasticsearch org guide appendix clients html Abruf 18 01 2013 elasticsearch https github com elasticsearch Abruf 18 01 2013 Die besten freien Business IT Tools http www computerwoche de a die besten freien business it tools 2495289 2 Abruf 18 01 2013 Lucene amp Solr Resources http www innoventsolutions com lucene solr resources html Abruf 18 01 2013 Open Source Lizenzen http www heise de open artikel Open Source Lizenzen 221957 html Abruf 10 01 2013 Wolkennah Die Neuerungen von Apache Solr 4 0 http www heise de developer artikel Die Neuerungen von Apache Solr 4 0 1650785 html Abruf 12 12 2012 Beef up Web search applications with Lucene http www ibm com developerworks library w a lucene2 Abruf 18 01 2013 Enterprise Search mit Apache SOLR http www lightwerk de produkte solr amp lucene html Abruf 18 01 2013 Die Enterprise Search SOLR Erfolgreich Suchen mit einer Open Source L sung http www contentmanager de magazin die enterpri
46. Sqoop k nnen Tabellen aus einem RDBMS auch direkt in das Hive Data Warehouse System von Hadoop berf hrt werden Sqoop mappt hierbei automatisch das Tabellen schema der SQL Datenbank auf das entsprechende Schema im Data Ware House Pi SQL to HBase Die dritte F higkeit von Sqoop besteht darin die SQL Tabellen direkt in das Hadoop Daten banksystem HBase zu bertragen HBase ben tigt einen Prim rschl ssel in seinen Tabellen Sqoop verwendet automatisch den Prim rschl ssel aus der SQL Tabelle sofern dieser vor handen ist Die Spalte mit dem Prim rschl ssel kann jedoch auch beim Import vom Entwick ler festgelegt werden 7 Hadoop to SQL Um die mittels Hadoop verarbeiteten Daten wieder im Quellsystem verwenden zu k nnen bietet Sqoop eine Exportfunktion an Mit dieser k nnen die Daten wieder in das RDBMS bertragen werden Hierbei setzt Sqoop das Vorhandensein der Zieltabelle im RDBMS vo raus 3 Vgl Wartala R 2012 S 180 e Vgl The Apache Software Foundation 2012f 87 Vgl ebenda S 180 ff 88 Vgl ebenda S 183 8 Vgl ebenda S 183 vol ebenda S 184 KOS content 627 29 5 5 ZooKeeper ZooKeeper wurde konzipiert als ein Dienst der die Verwaltung von Konfigurationen verteilter Systeme bernimmt dabei m glichst einfach ist und selbst als verteiltes System auf mehre ren Servern l uft Hierdurch soll die Ausfallsicherheit des Dienstes sichergestellt werden Um eine m glichst hohe Performanc
47. Technisch passiert bei Ecosia selbst nicht viel Der Client greift ber eine Suchmaske in sei nem Browser auf die Ecosia Server zu Diese leiten die Suchanfragen direkt an bing com weiter welches ebenfalls die Ergebnisse liefert Die Suchanzeigen werden in der Suchmas ke von Yahoo bereitgestellt Die Ecosia Server laufen mit kostrom von Greenpeace Ener gy Das Unternehmen erhielt einige Auszeichnungen Das WWF Projekt welches von Ecosia unterst tzt wird ist ein Schutzprojekt im Tumucumaque Nationalpark im Amazonas 4 2 4 Fazit Auch wenn Ecosia keine Open Source Suchmaschine ist ist es dennoch sehr interessant einen Blick auf dieses Konzept zu werfen Das Konzept beweist dass es m glich ist Ans t ze der Green IT in den Bereich der Suchmaschinen erfolgreich zu integrieren Je nach Re sonanz der User ist in Betracht zu ziehen eine eigenst ndige gr ne Suchmaschine zu im plementieren Diese sollte dann unabh ngig von den gr eren Betreibern sein und eine ausgereifte L sung bereitstellen die der Kritik standh lt Eine gr ne Suchmaschine die mehr Schein als Sein ist w rde das Vorhaben und die ECO Gemeinschaft stark nach hinten werfen Trotz der Kritik an Ecosia k nnen wir das Bestreben nur begr en da ver sucht wird ein Zeichen zu setzen und jegliche Bem hungen die Umwelt zu sch tzen und die Nachhaltigkeit voranzubringen positiv sind Wir bewerten die L sung als ausgereift und bedingt durch die Unterst tz
48. Vorteile Besitzt umfangreiche Pluginarchitektur falls eine h here Kundenanpassung ben tigt wird Hervorhebung der Treffer auch Highlighting genannt Facettierte Suche erm glicht eine Erweiterung der Suche dahingehend dass man nur in bestimmten Genres sucht um die Suche einzugrenzen und so zu beschleuni gen Dazu muss man aber auch schon bei der Indizierung die Genres ber cksichti gen Nahezu Echtzeitindizierung Dynamische Clusterbildung bedeutet die Cluster k nnen ver ndert warden und sind nicht statisch Datenbankintegration m glich Hohe Zuverl ssigkeit Skalierbar Fehlertolerant dank Fuzzy Search Wenig Javakenntnisse sind ausreichend da es als out of the box L sung imple mentierbar ist Nachteile Es sind weniger Javakenntnisse n tig als f r Lucene Es werden aber dennoch Pro grammierkenntnisse ben tigt Vorwiegend englisches Informationsmaterial verf gbar Funktionsweise Solr basiert ebenso wie ElasticSearch auf Lucene Daher hnelt die Indizierung und Suche gr tenteils der von Lucene Solr besteht aus einer dokumentenorientierten Architektur und stellt eine Webschnittstelle zum Hinzuf gen und ndern von Dokumenten bereit Das Hinzu f gen von Dokumenten also die Indizierung erfolgt ber XML JSON CSV oder bin r ber HTTP Die Abfragen laufen ber HTTP und liefern XML JSON CSV oder bin re Ergebnisse Vgl o V 2012 http lucene apache org solr Stand 27 12 20
49. again to avoid processing of manipulated requests step 5 in Fig 8 The result of the fee calculation is then returned to the client which closes the HTTP connection step 6 in Fig 8 This AJAX call is triggered when the three fields of the second part being career amount in sured and ownership stake are valid Using two different technologies WebSockets and AJAX for this workflow is certainly not the best approach from a design point of view but is conceptually valuable to show several ways of communication 4 2 Software Design This simple usage scenario leads to a few requirements and design decisions The user inter face has to consist of HTML CSS and JavaScript files as it will be displayed in a web browser In general these files are not initially available on the clients machine and need to be delivered via HTTP HTTPS by the server These file requests are usually done via GET event calculation Pr N loop thread s client code HTTP HTTPS Pe html js css i WebSocket SENET web browser y modules Fig 9 High level architecture of the application In addition to the static files the server will also need to process requests that are sent via POST in order to receive the form data for the fee calculation The body size of these requests is fairly small as the submitted values consist of plain text only Therefore it is
50. are processed as soon as messages were received As everything occurs in a single thread an overhead of switching threads and concurrency issues can be avoided Known implementation AIRCODE has implemented such a real time notification ap plication entirely in Node js see Appendix 5 Moreover financial applications that need to show immediate reaction to stock changes may take advantage of asynchronous pro cessing to implement real time notification systems 3 2 Don t Use Cases As with all technologies one has to carefully evaluate whether or not it suits the requirements of a project Besides those use cases listed in the previous section there are also a few usage scenarios where one should not use asynchronous frameworks like Node js or Vert x In gen eral the choice always depends on the very specific needs for every single use case Critics argue that asynchronous frameworks are not necessarily the best choice only because they represent a new stream 0 71 72 Since one key feature of asynchronous technologies is non blocking I O use cases that hardly encompass interaction with external resources do not set a precedent and might even be penalized This penelization would be caused by the fact that the strength of non blocking I O could not be leveraged on the one hand and on the other hand one thread would be busy through computations and cause long response times 7 86 Cf Fletcher R 2012 87 Cf w a 2012b 68 Cf
51. as opposed to a classical web server which would keep one thread for each connection Thus the servers footprint is much smaller 52 Cf Fielding R et al 1999 KOS content 545 15 Known implementation Hummingbird is a real time web traffic visualization tool that uses Node js for all processing When loading a website the browser sends a request for each file that is referenced in the HTML file Hence each page that should be tracked by Hummingbird integrates a reference to a tracking pixel which is served by the Hum mingbird application The dashboard is updated 20 times a second over a WebSocket connection Streaming Applications that involve a lot of streaming of data such as file uploading or video broadcasting represent another appropriate use case for asynchronous technologies Especially Node js uses an abstraction called streams Such a stream represents a flow of data and can appear as a readable stream or writable stream Why Node js is bene ficial in terms of streaming data becomes clear when considering the slow client problem and the way Node js and its streams address it Realization The slow client problem refers to the scenario where a process reads data processes it and sends it to another consumer If the producer readable stream sends data faster than the consumer writable stream can process it the data has to be buffered For instance consider uploading a local file The readable strea
52. be done by using the following commands lever aging OpenSSL an Open Source toolkit for implementing secure protocols openssl genrsa out privatekey pem 1024 openssl req new key privatekey pem out certrequest csr openssl x509 req in certrequest csr signkey privatekey pem out certificate pem Lst 4 Generating a new pair of public private keys 4 2 2 AJAX Asynchronous JavaScript and XML AJAX applies the previously explained concept of asynchronous communication to the client side meaning that the user who sends a request from a website does not have to wait for the answer but can continue using that website in the meantime without any obvious loading ac tivity that deters him her from consuming content In terms of sending data to the server it usually goes back to the XMLHttpRequest object in JavaScript that is called by most browsers to send data to the server further developments may apply Receiving information in response to a request is realized using callback functions JavaScript whose principle was introduced too The Proof of Concept primarily uses jQuery as library for AJAX which simplifies event handling animating and Ajax interactions for rapid web development This in partic ular ensures better compatibility across several platforms as it covers their specific require ments The following code snippet in listing 5 only demonstrates briefly an exemplary call
53. ber stehen relativ hohe Investitionen in Hardware da das System vergleichsweise Hardware hungrig ist Was ge nau die Hardware beansprucht ob zum Beispiel der Crawler oder der Indexer ist bisher nicht bekannt Ein Einsatz von Swish e stellt f r das Unternehmen eine gute Alternative dar und sollte umsetzbar sein Anforderungen Besonderheiten Schnelles Indexieren und Suchen Benutzen einer optionalen Filterfunktion f r versch Dateiformate Bestehender Web Support 4 5 Terrier Die Terrier Open Source Software ist seit November 2004 unter der Mozilla Public Lizenz MPL ver ffentlicht und stellt eine modulare Plattform zur schnellen Entwicklung von Web Intranet und Desktop Suchen dar Sie wurde im Jahr 2000 entwickelt von der Universit t Glasgow in Schottland und erm glicht das Indexieren Suchen und Bewerten von TREC Komponenten Terrier ist in Java geschrieben Der Innovationsreport schrieb 2005 es erf lle alle Voraussetzungen f r eine europ ische Antwort auf Google Im Folgenden wird genauer auf die Funktionen und Risiken eingegangen a Vgl University of Glasgow 2011 KOS content 415 D E Terrier Estonia economy HES search Rank Document Score 1 http server soros org 80 estonia estocoun html Open Estonia Foundation About the Country 11 148 server soros org 80 estonia estocoun html WT09 B18 220 853062034000 2 Significance of the Estonian Russian Interest Rate Differential There are f
54. bietet sich vor allem f r skalierende Webanwendungen an die viele mehrere hundert Nodes nutzt keine hochkomplexen Abfragen ben tigt aber bei denen das System stabil antworten und skalieren muss Vgl Edlich S u a 2010 S 80 f vo Edlich S u a 2010 S 81 Vgl Edlich S u a 2010 S 71 KOS content 669 Bewertung 25 Die wesentlichen Vor und Nachteile von Cassandra enth lt die Tabelle 5 Vorteile Nachteile sehr einfache Skalierbarkeit Datenmodell ist relativ flexibel Einsatz von Indizes Bereichsabfragen ber die Sortierung der Daten m glich leichte Konfiguration von Replikationen ber verschiedene Knoten und kein Single Point of Failure Konsistenz Dauerhaftigkeit und Latenz zeit sind recht gut konfigurierbar grafische Oberfl chen verf gbar SQL hnliche Abfragesprache CQL begrenzte Abfragem glichkeiten Schema nderungen der Datei storage con xml sind im laufenden Betrieb nur schwer m glich Verschiedene Speicherformate in bishe rigen Versionen erschweren Updates synchronisierte Uhren f r Konflikthand ling n tig neue Abfragen ben tigen unter Um st nden eine Anpassung des Schemas Tab 5 Vor und Nachteile von Cassandra 3 5 Gegen berstellung der Vertreter Grunds tzlich lassen sich die einzelnen Datenbankvertreter nur schwer miteinander verglei chen da Sie f r v llig unterschiedliche Nutzungsm glichkeiten gedacht sind Je nac
55. bis zum Kauf von CO Zertifikaten einen nachhaltigen Gedanken verfolgt und die Umwelt schont Spenden werden entweder ber das Betriebsergebnis Werbeeinnahmen oder pro Suchanfrage aus gezahlt Derzeit wird noch mit Suchergebnissen gro er Vertreter wie Google und Bing gear beitet 4 2 Ecosia Ecosia org ist die Suchmaschine der Ecosia GmbH die sich selbst als Social Business be schreibt das sich f r kologische Nachhaltigkeit einsetzt 80 der Einnahmen des Unter nehmens flie en nachweislich an ein Regenwaldschutzprojekt des WWF Die Nachweise dazu liefert Ecosia auf der Homepage durch Gesch ftsberichte und Spendenbelege Die Suchmaschine wurde im Dezember 2009 von Christian Kroll und freien Mitarbeitern entwi ckelt Die Suchergebnisse werden von Bing bereitgestellt die Suchanzeigen von Yahoo Abbildung 4 Startseite der Suchmaske von Ecosia 1 Enthalten in http ecosia org 2013 KOS content 404 4 2 1 Vorteile e Ecosia setzt ein Zeichen f r die Umwelt e Liefert einen Beweis f r die erfolgreiche Umsetzung von Green IT bei Suchmaschi nen e Nachweislicher Umweltschutz einer renommierten internationalen Organisation e Die eigenen Server werden mit kostrom betrieben e F r jede Suche investiert Ecosia in Gold Standard Projekte die den CO Aussto ausgleichen e Qualitativ hochwertige Suchergebnisse durch Bing und Suchanzeigen von Yahoo So kann der User von gewohnt guten Suchergebnissen ausgehen e Wei
56. das drei zentrale Elemente besitzt e Knoten e Kanten mit Richtung und Typ e Eigenschaften in Form von Schl ssel Wert Paaren Beim Anlegen einer neuen Neo4j Datenbank wird automatisch ein Referenzknoten erzeugt Er dient als Einstiegspunkt in die jeweilige Datenbank Sowohl Knoten als auch Kanten k nnen mit Eigenschaften versehen sein Die Eigenschaften k nnen f r jeden einzelnen Knoten und jede einzelne Kante unterschiedlich sein Dadurch ist es m glich unsortierte anwendergenerierte Daten einfach abzulegen Mit einer eindeutigen ID werden Knoten und Kanten identifiziert Replikation und Skalierung Die Replikation der Daten erfolgt ber das Master Slave Modell Ein Server aus dem Cluster wird zum Write Slave alle anderen Server werden zum Read Slave gew hlt F r den Fall dass ein Read Slave ausf llt wird eine neue Instanz mit dem aktuellen Stand der Write Master Datenbank erstellt Sollte der Write Master ausfallen wird er durch einen Read Slave ersetzt der dann den neuen Write Master darstellt S8 Vgl Neo Technology Inc 2012 7 Ygl Edlich S u a 2010 S 185 71 Vgl Edlich S u a 2010 S 193 KOS content 662 18 Eine horizontale Skalierung von Neo4j ist nur dann notwendig wenn mehr als 12 Milliarden Datenelemente angelegt oder die Schreibgeschwindigkeit erh ht werden soll Die horizontale Partitionierung umfasst sowohl das Sharding als auch die Partitionierung Neo4j unterschei det drei M
57. der JobTracker f hrt den Task auf einem anderen Node aus Wenn der Fehler weiterhin auftritt wird die komplette Ausf hrung abgebrochen Die zweite Fehlerart bezieht sich auf den TaskTracker Der JobTracker erwartet in regelm igen Abst nden einen Heartbeat vom TaskTracker Wenn 33 Vgl Chaudhri A 2011 KOS content 614 16 dieser nicht mehr ankommt bemerkt der JobTracker den Fehler Daraufhin wird der TaskTracker aus dem System gel scht Die dritte und letzte Fehlerart ist ein Fehler des JobTrackers Da es nur einen JobTracker in jedem Hadoop Cluster gibt ist bei einem sol chen Fehler dieser nicht mehr zu beheben und die gesamte Ausf hrung fehlgeschlagen 4 4 Anwendungsbereiche Wie eingangs bereits erw hnt benutzen haupts chlich gro e Firmen wie Facebook Twitter oder Yahoo Hadoop und dessen Erweiterungen Allerdings gibt es viele weitere Anwen dungsbeispiele f r Hadoop die im Folgenden beispielhaft aufgelistet werden Der Gro rechner IBM Watson der 2011 das Fernseh Quizz Jeopardy gewann arbeitete vor allem beim Einlesen aller relevanten Daten mit Hadoop und MapReduce Auch gro e Unter nehmen benutzen das Datenbankmodell Der Telefonanbieter China Mobile nutzt Hadoop Cluster f r Data Mining um alle Telefongespr che abzurechnen Hierbei wird eine Daten menge von ca f nf bis acht Terabyte pro Tag verarbeitet Die Nutzung von Hadoop erm g licht es China Mobile bis zu 10 mal mehr Daten zu verarbe
58. die Analyse der vohandenden Suchmaschinen mit aufgenommen werden Muss Weitere Anforderungen sind unter anderem nicht funktionale Kriterien wie zum Beispiel Ska lierbarkeit Zuverl ssigkeit Umfang der Community oder auch wie sich die Suchmaschine in Zukunft entwickeln wird und ob sie auch in einigen Jahren noch besteht Skalierbarkeit ist ein wichtiger Aspekt da sich die Anforderungen eines Unternehmens mit der Zeit ver ndern k nnen Hier sollte die Suchmaschine jederzeit beliebig erweiterbar sein um zu vermeiden dass ein neues Produkt das die ben tigte Funktionalit t beinhaltet Die Kriterien Umfang der Community und das Weiterbestehen einer Suchmaschine sind in sofern von Bedeutung als dass Communities einen sehr hilfreichen Support darbieten Das Weiterbestehen sollte auch mit in die Kriterien einfliessen da es wenig sinn macht ein Produkt einzuf hren dass in we nigen Jahren nicht mehr besteht KOS content 402 4 Marktanalyse Die folgende Marktanalyse betrachtet acht Suchmaschinen aus der gro en Vielzahl an ver f gbaren Suchmaschinen Vier davon wurden n her betrachtet weil sie in der Aufgabenstel lung des Projekts enthalten sind Es handelt sich dabei um Lucene ElasticSearch Solr und Hsearch Die anderen vier Maschinen wurden erg nzend analysiert um auch verschiedene Konzepte darzustellen und miteinzubeziehen Ecosia wurde hier als Vertreter der gr nen Suchmaschinen ausgew hlt Ecosia wurde als Vertreter d
59. die Reduce Funktion ausgef hrt wird Durch die Aufteilung in die beiden Phasen kann die Verarbeitung einfach parallelisiert werden Es wird ein Mapper pro definiertem Datei Abschnitt initialisiert Die Map Funktion baut in dem jeweils ausgew hlten Datenfeld Key Value Paare Dabei wird f r die ausgew hlten Schl s seldaten jeweils der dazugeh rige Wert gespeichert Beispielsweise ein beliebiges Wort als 3 Vgl Wartala R 2012 S 74 ff 4 Vgl Borthakur D 2009 S 13 Wartala R 2012 S 17 KOS content 608 10 Key und dessen Anzahl in einem bestimmten Text als Value Um dies zu realisieren liest die Map Funktion die Input Daten sequenziell Input Parameter des Mappers sind eine Liste mit den zu suchenden Key Value Paaren und eine Funktion f r deren Verarbeitung Beispiels weise die Addition der einzelnen Values jedes Keys oder das Aufsp ren des gr ten Wertes jedes Paares N tzlich kann auch eine Operation zu absoluten H ufigkeiten sein also bei spielsweise welches Wort in der Email Korrespondenz eines Mitarbeiters wie oft vorkommt Als Output produziert der Mapper wiederrum eine Liste mit den jeweiligen Key Value Paaren mit der angewiesenen Verarbeitung Daraufhin wird eine Unterfunktion der Map Funktion ausgef hrt die Combine Funktion Diese fasst mehrfach auftretende Key Value Paare zu sammen und speichert das Ergebnis Diese lokal gespeicherten Daten f r jeweils eine Datei werden dann an die Reduce Funktio
60. die Technologie Hadoop In dieser Ausarbeitung sollen die Grundkomponenten von Hadoop erl utert werden Dabei stehen einleitend Erl uterungen zum Hintergrund und der Problemsituation Anschlie end wird der Begriff Big Data n her beschrieben Der vierte Themenblock beschreibt anschaulich Hadoop und dessen Basiskomponenten Anhand von Beispielen werden das HDFS und das MapReduce Programmiermodell erkl rt Wie Hadoop mit den Basiskomponenten umgeht 1 vgl Bayer M 2012 z Vgl The Apache Software Foundation 2012h 3 Vgl White T 2012 S 19 f KOS content 600 und wie die Funktionalit ten aufgebaut sind wird aufbauend auf den Erkenntnissen des vor herigen Kapitels im n chsten Unterpunkt behandelt In der darauf folgenden Rubrik werden die zus tzlichen Komponenten zu Hadoop erl utert die das Arbeiten mit der Technologie erleichtern Im sechsten Kapitel wird mit den Ergebnissen des vierten Kapitels das Aufsetzen eines Prototyps von Hadoop dokumentiert Dabei wird sowohl die Cloud L sung als auch die Implementierung auf einem Rechner behandelt Abschlie end werden in einem Fazit die Kernaussagen der Ausarbeitung zusammengefasst und ein Zukunftsausblick ber Hadoop und dessen Komponenten gegeben Im Fazit werden ebenfalls m gliche zus tzliche Vertie fungspunkte im Hadoop Umfeld angesprochen 2 Hintergrund und Problemsituation Wenn die Diskussion um eine neu zu erstellende Datenbank aufkommt ist meist von An fang an
61. eine beliebige Anzahl an Feldern besitzen und zus tzlich kann eine verschachtelte Array Struktur realisiert werden Au erdem ist es m glich Dokumente innerhalb eines Dokuments zu speichern Es ist nicht zwingend erforderlich dass die Dokumente einer Kollektion dieselbe Struktur besitzen allerdings wirkt sich eine grundlegend gleiche Struktur positiv auf eine Effizienzsteigerung bei der Indizierung aus Ein Schema wird mit dem Einf gen des Dokuments zur Laufzeit erzeugt F r die Datenmanipulation und Datenabfrage bietet MongoDB objektspezifische Methoden an die f r alle g ngigen Programmiersprachen vorhanden sind und verzichtet somit auf eine Abfra gesprache Eine bersicht der g ngigsten Operationen enth lt der Anhang 3 Wyllie D 2011 S 24 Vgl Alvermann M Vgl Edlich S u a Vgl Alvermann M gt 7 Vgl Edlich S u a 8 Vgl Edlich S u a 2010 Vgl Wyllie D 2011 S 25 KOS content 660 16 Replikation und Skalierung Gegen einen Severausfall kann MongoDB mit Hilfe von einem manuellen und einem auto matischen Modus zur Replikation abgesichert werden Das Prinzip hinter diesen Modi ist das Master Slave Prinzip und es beinhaltet einen Master welcher alle Abfragen der Clients beantwortet sowie einem Slave der bei einem Ausfall den Ersatz des Mastes absichert und ber eine Kopie von dessen Daten verf gt Beim manuellen Modus wird die Rollenverteilung von Hand festgele
62. einigen bekannten Firmen wie z B Facebook und Adobe als hochverf gbarer Daten speicher oder zur Verarbeitung von Nachrichten genutzt 7 Hadoop HDFS vs HBase HDFS ist ein verteiltes Dateisystem das sich sehr gut eignet um gro e Dateien zu spei chern Jedoch bietet es keine M glichkeit schnelle individuelle Abfragen aus dem Dateibe stand zu generieren HBase hingegen setzt auf HDFS auf und bietet einem genau diese M glichkeit der schnellen individuellen Datenabfrage auf gro en Tabellen 7 38 vol The Apache Software Foundation 2012c Vgl IBM Corporation 2012 Vgl The Apache Software Foundation 2012c 1 Vgl Wartala R 2012 S 141 Vgl The Apache Software Foundation 2012c A A E Q KOS content 617 19 Wof r nutzt man HBase Um HBase effektiv nutzen zu k nnen ben tigt man eine sehr gro e Menge an Daten viele Millionen oder gar Billionen von Datens tzen die verwaltet werden sollen Zudem sollte man sich dar ber im Klaren sein dass man auf einige Funktionen die einem ein RDBMS bietet verzichten muss Eine Anwendung die momentan auf ein RDBMS zugreift kann nicht einfach so umgeschrieben werden dass sie in Zukunft auf HBase zugreift Hierzu bedarf es eines kompletten Redesigns der Anwendung inklusive der Schnittstellen Zu guter Letzt be n tigt man f r die Nutzung von HBase ausreichend Hardware Hier sind einige DataNodes plus NameNode n tig um HBase wie auch HDFS berhaupt lau
63. enth lt welche W rter Wortbestandteile oder auch Token in welchem Vgl o V o J http dev innovationgate de doc wga41 htmi default dr gr lucene de html Stand 26 12 2012 KOS content 419 Dokument vorkommen wie oft und wo F r das Extrahieren der Inhalte aus HTML XML oder anderen Dateiformaten f r das Indexdokument gibt es eine gro e Auswahl an Bibliotheken In der untenstehenden Abbildung werden exemplarisch die Parser Tika und POI verwendet Bei der Suche wird die Indexliste dann mithilfe des IndexSearchers nach den relevanten Query Strings durchsucht Die relevanten Query Strings verweisen dann auf die Dokumente in denen sie vorkommen Index Search HTML PDF WORD EXCEL DB XML Get query amp Display results d Create Documents Add fields with name value pair Use TIKA POI etc to extract text Add Documents ee to Index Writer using IndexSearcher searches StandardAnalyzer based on provided Query and returns Hits al A Abbildung 10 Indizierung und Suche in Lucene 4 6 4 Fazit Lucene bietet eine Vielzahl an Klassen und Funktionen f r erfolgreiche benutzer bzw pro jektspezifische Eigenentwicklungen Unterst tzt wird der Entwickler dabei durch die gro e und aktive Community Allerdings existieren bereits gute auf Lucene basierende Weiterentwicklungen von denen zwei im Folgenden n her erl utert werden F r diese Suchmaschinen sind wesentlich weni ger Javaprogra
64. entscheiden welche der Vor und Nachteile f r sie be deutender sind und aufgrunddessen eine davon ausw hlen Beispielsweise k nnte ihre Wahl auf Lucene fallen weil das Team der VERS die n tigen Programmierkenntnisse aufweist um die Standardversion auf ihre Bed rfnisse anzupassen und weil Lucene bereits f r eine Wikisuche n mlich Wikipedia bekannt ist Ebenso k nnte es sein dass sie sich f r ein fertiges Projekt wie Solr oder ElasticSearch entscheiden da hier die Zusatzfunktionen be reits implementiert sind und sie den hohen Grad an Benutzerspezifikation den Lucene bie tet berhaupt nicht ben tigen Da diese Arbeit lediglich acht von einer sehr gro en Auswahl Opensource Suchmaschinen betrachtet ist nicht auszuschlie en dass es noch Andere gibt die sich gut oder besser f r die Implementierung im Wikisystem der VERS BW eignen Dennoch stellen die ausgew hl ten Top 3 zufriedenstellende L sungen dar da sie alle im Kriterienkatalog gelisteten Anfor derungen erf llen und teilweise auch bertreffen KOS content 435 Anhang Fragen an die VERS BW 1 allg Unternehmensstruktur a Gibt es ein Orgchart Kriterien nach denen bestimmt wird wer auf was Zugriff hat gt Zugriff ist abh ngig von der Gruppenzugeh rigkeit und Attributwerten im Verzeichnisdienst eDirectory gt gesetztes LDAP Attribut bestimmt Zugriffrecht auf ein Wiki System bspw Referat d h Abmeldung gt Wiki ACLs setzen die Rechte f r W
65. function return Players find sort score 1 name 1 Template leaderboard selected_name function var player Players findOne Session get selected_player return player amp amp player name Template player selected function return Session equals selected_player this _id selected Template leaderboard events click input inc function Players update Session get selected_player inc score 5 Template player events click function Session set selected_player this _id H On server startup create some players if the database is empty if Meteor isServer Meteor startup function if Players find count 0 var names Ada Lovelace Grace Hopper Marie Curie Carl Friedrich Gauss Nikola Tesla Claude Shannon for var i 0 i lt names length i Players insert name names i score Math floor Math random 10 5 Lst 34 JS of the Meteor example Leaderboard KOS content 580 50 Appendix 4 Case Study LinkedIn In 2012 LinkedIn the career oriented social network has changed their back end infrastruc ture of the mobile application which was built on Ruby on Rails until then Linkedin moved from Ruby on Rails to Node js for performance and scalability reasons and has made immense performance improvements 6 LinkedIn had scala
66. gemessenen nicht zu h ufigen Zeitabst nden ver ffentlicht werden kritische Prob leme jedoch sofort beseitigt werden 2 Dokumentation e Benutzerhandbuch Das Vorhandensein eines Benutzerhandbuchs ist ein elementares Kriterium da es wichtige Basisinformationen zur Software beinhaltet Dabei ist es wichtig dass Instal lation Konfiguration und die Bedienung der Anwendung beschrieben wird e Sprache der Dokumentation Die meisten Open Source Projekte sind englischsprachig und oft sind auch die Refe renzen und Anleitungen ausschlie lich in englischer Sprache verf gbar W n schenswert w re insbesondere f r einen deutschen Kunden die Verf gbarkeit von deutschsprachiger Dokumentation e Qualit t der Dokumentation Die bloBe Existenz einer Dokumentation ist wenig hilfreich wenn diese nicht ver standlich aufbereitet ist Deshalb muss die inhaltliche Qualit t die Strukturierung und die Vollst ndigkeit der Dokumentation bewertet werden Ein Anwender muss in der Lage sein anhand der beschriebenen Vorgehensweisen ohne gro en zeitlichen Auf wand die richtige L sung f r seine Problemstellung zu finden Idealerweise sollten keine zus tzlichen Quellen herangezogen werden m ssen 3 Support e Community und kosystem Aus der Aktivit t der Community eines Software Projekts l sst sich oft die Nachhal tigkeit und Reife des Projekts bzw Produkts ableiten Zu den Indikatoren z hlen hier Foren und Newsgruppen und sp
67. glich neues Wissen gene riert Der Wert dieses Wissen steigt wenn es geteilt wird Dies kann mit Hilfe von Wikis be werkstelligt werden welche wiederum eine Suchmaschine ben tigen e neue Mitarbeiter schneller einarbeiten Der Eintritt neuer Mitarbeiter ist oft mit einer langen Einarbeitungszeit verbunden In diesem Zusammenhang w re eine zentrale Wissensdatenbank von gro em Nutzen da nicht zuerst die Ressourcen gesucht werden m ssen die entsprechendes Wissen besitzen e Unterst tzung von Mitarbeitern im Au endienst In einigen Branchen ist ein gro er Teil der Mitarbeiter im Au endienst oder hat einen mobi len Arbeitsplatz Bei diesen ist die schnelle und ortsunabh ngige Informationsbeschaffung von gro er Bedeutung Auch in diesem Fall bieten Suchmaschinen Aushilfe KOS content 464 18 e schnellere Akquisition von Unternehmen Die bernahme eines Unternehmens ist mit einer bernahme von dessen Daten und Infor mationen verbunden In diesem Fall erleichtern Wissensdatenbanken und Suchverfahren innerhalb des bernommenen Unternehmens die Akquisitionsprozesse Im weiteren Verlauf der Ausarbeitung sollen vier unterschiedliche Systeme vorgestellt wer den und dabei auf Hintergrundinformationen und grunds tzliche Funktionsweise sowie Funk tionalit ten eingegangen werden Die Auswahl beschr nkt sich auf vier bekannte Implemen tierungen von Meta Suchmaschinen Zum einen wird das von der Apache Software Founda tio
68. glichkeiten zur Echtzeitsuche e Tests inden USA und Indien lieferten gute Perfor Performance mance Ergebnisse siehe http bizosyshsearch sourceforge net e Link zur Dokumentation f hrt ins Leere e zur allgemeinen Bedienung Ausgabe ber ver intuitive Bedienung schiedene Formate m glich e zur Erweiterbarkeit JSON REST SEES UE TIR GE Installationsdokumentation vorhanden jedoch nur knapp guration beschrieben haupts chlich nur Codedarstellung Kompatibilit t Kompatibilit t mit Unix und Windows Betriebssystemen Tab 17 Bewertung von HSearch 169 Vgl Bizosys Technologies Pvt Ltd 2010a 170 Vgl Bizosys Technologies Pvt Ltd 2010b 171 Vgl ebenda KOS content 502 56 5 Gegen berstellung und Gesamtbewertung der Open Source Suchmaschinen Nachdem die Meta Suchmaschinen und deren Projekte einzeln betrachtet und bewertet wurden erfolgt in diesem Kapitel eine bewertende Gegen berstellung Der erste Schritt ist die Bewertung der Open Source Projekte Das Bewertungsverfahren wurde in Kapitel 2 1 beschrieben In Tab 18 findet sich die ausgef llte Bewertungsmatrix f r den Reifegrad aus Kapitel 2 1 Kriterium Gewichtung Suchmaschinen Lucene Solr Elastic HSearch search Produktalter Lizenzen Plattform u Kompatibilitat Funktionalit t Modularit t Releaseabst nde SUMME Produkt Benutzerhandbuch vorhanden Sprache der Dokumentation Qualit
69. heat eS e 4 2 Software Design 2 5 4 8 se ala ee oO ea Sao ES AN A PS at 2 ais jaan tote Bes a ee nennen 4 2 2 AJAX Asynchronous JavaScript and XML 4 2 3 WebS ckels 2 44 oak Meee oe ee red RE ee ee 4 3 Software implementation as 0 2 2 Sa ae Ce ane Sub wee Nr ASW NODES La art ye cs eee ee er dhs Rody oe Re G A 2 EE KOS content 526 Vi Vil 11 14 14 17 5 Evaluation of Non functional Attributes RN dE alle EE 5 1 1 Node js maintainability oaa EE 5 1 2 Vert x maintainability Zar an a 5 2 Integration i si 2 22 we er re ran 5 2 1 Node js Integration Gr 2 68 2B a Bales jo wei 5 2 2 Vert x Integration 0 Ste ee Dee 5 3 Scalability and Performance AN EN en Bos ie en 6 Outlook 7 Conclusion Appendices Lists of References KOS content 527 31 31 32 32 33 33 35 37 41 42 44 58 List of Abbreviations AJAX oaoa Asynchronous JavaScript and XML BRUDER Create Read Update Delete OSTSEE PETE RT Cascading Style Sheets HTML Hyper Text Markup Language HTTP ee Hyper Text Transfer Protocol HTTPS wies Hyper Text Transfer Protocol Secure VO ee Input Output ETE ss Internet Engineering Task Force IPOs Inter Process Communication VERA Java 2 Enterprise Edition JSON na JavaScript Object Notation JVM ns Java Virtual Machine NPM Node js Package Manager POO sans Proof Of Concept REG een Request for Comments EE EE To
70. ig automa tisch indexiert und im Feld all gespeichert Dieses erm glicht wiederum eine Anfrage an alle Felder gleichzeitig Die automatische Indexierung l sst sich bedarfsweise deaktivieren Da es sich hier um eine verteilte Suchmaschine handelt bietet Elasticsearch die M glichkeit Indizes in sog Shards aufzuteilen Mit Hilfe von Shards k nnen Datenmengen auf mehreren Rechnern verwaltet werden Dadurch wird das Problem des beschr nkten Haupt oder Festplattenspeicherplatzes eines einzelnen Rechners umgangen Die Anzahl der Shards l sst sich nach der erstmaligen Festlegung nicht nachtr glich ndern Die Indizes selbst lassen sich ebenfalls replizieren Bei einer Indexreplikation werden gleichzeitig die vorhandenen Shards vervielf ltigt Dies bietet einige Vorz ge wie z B die Verteilung der Anfragelast auf mehreren Rechnern oder unterschiedliche Einstellungsm glichkeiten f r ver schiedene Indizes Shards z B ein Index f r den Hauptspeicher und eine Index f r den Festplattenspeicher Laufende Instanzen von Elasticsearch werden auf verteilten Systemen als Nodes bezeich net Diese speichern die lokalen Indizes und Shards Einzelne Nodes k nnen zu Clustern zusammengefasst werden Cluster erm glichen mehrere voneinander unabh ngige Instan zen von Elasticsearch z B f r Entwicklungs Test und Produktionsumgebung oder f r un terschiedliche Benutzer Bei der Clusterverwaltung wird zwischen Master und Slaves unter s
71. immer auf einen gespeicherten Testindex zugegriffen Dabei handelt es sich um einen XML Export der engli schen Wikipedia Internetseite der am 15 01 2011 erstellt wurde Die Ergebnisse sind in den folgenden Abbildungen dargestellt 180 160 140 120 Plain text GB hour 100 Plain text GB hour 80 1 KB Wikipedia English docs yv 1 yv i 1 Jul 11 Oct 11 Jan 12 Apr 12 Jul 12 Oct 12 Jan 13 Date 4 KB Wikipedia English docs WI Ty y LY Ny Er UN 1 Jul 11 Oct 11 Jan 12 Apr 12 Jul 12 Oct 12 Jan 13 Date Verwendetes System Betriebssystem Linux Java Version 1 7 CPU 2 Intel Xeon X 5680 mit 4 0 GHz insgesamt 24 Kerne 173 Vgl McCandless M 2013 KOS content 515 Quellenverzeichnisse Literaturverzeichnis Arnold S E 2011 Bauer G 2009 Golembowska A u a 2012 Kammerer T Mandl P Baum gartner R 2011 Karich P 2012 Kohler M Arndt H Fetzer T 2008 Konrad R 2009 Schwichtenberg H 2001 White M 2012 Wohe G D ring U 2010 Ziegler C 2006 Ziesche P Arinir D 2010 69 Redefining Search Open Source Search Revolution or Evolution in Information To day Januar 2011 S 26 Architekturen fur Web Anwendungen Eine praxisbezogene Konstruktions Systematik Wiesbaden Vieweg Teubner Entwicklung eines Modells zur Bewertung von Open Source Produkten hinsichtlich ei nes pr
72. increasing rapidly with the number of requests sent Nginx was able to deliver an almost constant response time for up to 5000 requests before response times started to increase Interesting is the fact that Nginx s response times where slightly below those of Node js and Vert x for up to 3000 requests Both Node js and Vert x 110 Cf The Apache Software Foundation 2010 111 Cf w a 2012d 112 See http httpd apache org docs 2 2 programs ab html 113 See http httpd apache org 114 See http nginx org en KOS content 568 38 were able to deliver the file in almost constant time for up to 9500 requests Node js performed slightly better than Vert x A partial plot is shown in figure 11 for better comparability between Node js and Vert x Although not being a representation for a real usage scenario this benchmark gives a good representation of the scalability attributes of asynchronous servers The bad performance of Apache2 is due to the process forking for each new request Nginx is a lightweight HTTP server that by default only uses as many threads as there are processors provided by the host which is why it performs so well More detailed benchmarking results are shown in Appendix 8 8000 F 7000 6000 5000 4000 H 3000 kt 2000 1000 H oF i i i i i i i L i 1000 2000 3000 4000 5000 6000 7000 8000 9000 Fig 10 Plot of the web server benchmark results betwee
73. k nnen in mehreren Dateiforma Cached Results u ten angezeigt werden 3 d e Werkzeuge zu Hintergrundinformationen z B Ran Hintergrundinformationen king gefundene und nicht gefundene Suchergebnis se Inhalte lassen sich vielfaltig ausgeben e Listenansicht Ausgabe der Suchergebnisse e tabellarisch e als dynamische Portlets e Ausgabe in XML Skalierbarkeit verteilte Suchmaschine REN e gute Skalierbarkeit u a durch automatische Replika tion und Indexzerlegung m glich M glichkeiten der Anbindung LDAP Anbindung griffsrechte e relationale und dokumentorientierte Datenbanken e Dateisysteme Anbindung an Datenquellen e Mail Server e RSS Feeds e Webseiten 162 Vgl Bizosys Technologies Pvt Ltd 2010a 163 Vgl Bizosys Technologies Pvt Ltd 2010b 164 Vgl ebenda 165 Vgl ebenda 166 Vgl ebenda 167 Vgl Bizosys Technologies Pvt Ltd 2010a 168 gl Bizosys Technologies Pvt Ltd 2010b KOS content 501 55 Administration e Reportingwerkzeuge e Monitoring Tools Wartungs und Betreuungs e Bugtracker m glichkeiten e Konfigurationsm glichkeiten Datenquellen Indexie rung Spracheinstellungen Ausgabe Zugriffssteue rung i ID Roll STENE A Berechtigungsverwaltung ber UserlD Rolle oder Team Gruppe realisiert e programmiert in JAVA e JSON REST API Programmiersprache nichtfunktionale Anforderungen e M
74. ltig eingesetzt Sie dienen dem schnellen Auffinden von ver schiedenen Inhalten Gesucht werden k nnen z B Dokumente Links Inhalte Dateien Bil der Personen oder ganz allgemein gesprochen Informationen F r den normalen Verbrau cher ist wohl die Online Suchmaschine wie z B Google oder Bing am bekanntesten Sie geh ren zu der Kategorie der Websuchmaschinenan und sind wenn sie ffentlich sind f r jeden ber das Internet frei zug nglich Ebenfalls Internet basiert sind sogenannte vertikale Suchmaschinen Diese durchsuchen das World Wide Web allerdings nur zu bestimmten Themen wie z B Sport Medizin oder Technik Beide bereits genannten Suchmaschinenar ten sind meist frei zug nglich f r jeden ber das Internet Eine Internetsuchmaschine im Ge gensatz dazu ist z B nur f r die Mitarbeiter einer Firma nutzbar und durchsucht auch nicht das World Wide Web sondern die Inhalte die im Intranet des Unternehmens verf gbar sind Eine Erweiterung zu der Intranetsuchmaschine ist die Enterprise Search Suchmaschine Schmidt B 2006 http kola opus hbz nrw de volltexte 2006 58 pdf sa_schmidt pdf Stand 28 12 2012 3 Vgl ON 2013 http de wikipedia org wiki Suchmaschine Datenquelle Stand 14 01 2013 KOS content 393 Hierbei wird nicht nur das firmeninterne Intranet sondern Datenquellen die in dem Unter nehmen vorhanden sind durchsucht Desktop Suchmaschinen werden f r die Suche von Daten auf einem einzelnen Computer
75. mit den Informationen die in den Daten enthalten sind Variety Eine weitere Komponente von Big Data ist die Vielfalt bzw Vielschichtigkeit der Daten Vor allem Texte Bilder Sounds oder elektronische Korrespondenz wie E Mails Chats oder sonstiger Nachrichten m ssen in einer passenden Datenbank gespeichert werden Diese sind wie bereits erw hnt meist semi bzw polystrukturiert Daher werden bei Big Data die Daten die zuvor meinst in Content Management Systemen Redaktionssystem mit dessen Hilfe der Inhalt z B von Websites verwaltet wird verwaltet wurden mit den strukturierten Daten aus bestehenden klassischen Unternehmensanwendungen wie beispielsweise einem Enterprise Resource Planning System ERP System integriert und zusammen verwaltet Unter einem ERP System versteht man im Allgemeinen eine Anwendungssoftware die alle im Unternehmen ablaufenden Gesch ftsprozesse unterst tzt Zudem m ssen alle Daten unterschiedlicher Daten Typen mit einer einheitlichen Sicht erfasst und f r Anwender verf g bar gemacht werden k nnen Velocity Ein weiterer Punkt bei Big Data ist die Geschwindigkeit der Verarbeitung der Daten In vielen Unternehmen flie en zus tzliche Daten aus Marketing oder Service Bereichen mit in die Datenverarbeitung ein Hierbei spielt vor allem die Integration der gesammelten Daten aus Social Media Plattformen eine wichtige Rolle Zum einen kann Social Media als ein ordin res Kommunikationsmittel zw
76. nicht n her behandelt Im n chsten Schritt ist eine geeignete Java Virtual Machine JVM zu installieren In diesem Fallbeispiel kommt Oracles Java Development Kit JDK in der Version 7 zum Einsatz Ubuntu selbst besitzt aus lizenzrechtlichen Gr nden kein Installationspaket von Oracles JDK 7 Daher wird sich hier einem vorgefertigten Personal Package Archive PPA bedient Das Repository des PPA muss Ubuntu ber die Paketliste bekannt gemacht werden sudo apt get repository ppa webupd8team java Daraufhin sollte die Paketliste neu eingelesen werden um sie auf dem aktuellsten Stand zu halten sudo apt get update Danach kann das Paket installiert werden sudo apt get install oracle java7 installer Nach erfolgreicher Installation des Java Paketes befinden sich die zugeh rigen Dateien im Verzeichnis usr lib jjvm java 7 oracle Bei einer reinen Single Node Instanz k nnte nun mit der Installation des Hadoop Frameworks begonnen werden Da hier jedoch bereits die Vor bereitungen zur Anbindung an ein Cluster getroffen werden sollen muss zuerst noch die M glichkeit zur Kommunikation der einzelnen Knoten geschaffen werden Hierzu ist ein Be nutzer hadoop und eine zugeh rige Gruppe hadoop anzulegen sudo addgroup hadoop sudo adduser ingroup hadoop hadoop F r die sichere Netzwerkkommunikation der Hadoop Knoten ist ein Secure Shell SSH Zu gang einzurichten Die Installation des SSH Daemon sieht folgenderma en aus sudo
77. of concurrency issues during development But the developer s task is to write light event handlers that can be processed quickly as every callback is an interruption of the event processing in the 5 Cf Caldera International Inc 2003 p 10 6 Cf Richter J 2010 p 718 7 Cf Breshears C 2009 p 10 KOS content 535 event loop Memory or processor intense callbacks can lead to growing queues of unserved events which eventually results in a slow application or service 2 2 Concept of Synchronous Processing l l l Fig 2 Synchronous blocking function call In synchronous processing a running thread needs to wait for the completion of the I O op eration before it can continue The thread is in an idle state while it is waiting which allows another process or thread to occupy the CPU in the meanwhile 2 3 Concept of Asynchronous Processing Fig 3 Asynchronous non blocking function call 8 Cf Hughes Croucher T 2010 Cf Teixeira P 2013 p 48 KOS content 536 po OO P Go A An asynchronous programming style uses a different concept The flow of an application is determined by events which is why this style is also called event driven programming Asynchronous processing means that the executing thread is not blocked There is no return value instead an event handler is provided as a second argument This function is also referred to as a callback function It is cal
78. studie 163595 umfrage marktanteile der suchmaschinen in den usa Stand 10 01 2013 KOS content 394 Suchmaschinen c webhits de Google 80 8 bing com 6 1 a T Online 3 6 Yahoo 3 6 ask com 2 2 andere 3 6 14 01 13 Abbildung 2 Marktanteil nach Nutzung in Deutschland Wie man in beiden Statistiken feststellen kann sind keine Open Source Suchmaschinen unter den Ersten zufinden Eine Theorie zu diesem Ergebnis k nnte sein dass Open Source L sungen ber weniger finanzielle Mittel verf gen um zum Beispiel in Marketing zu investie ren um die Suchmaschine bekannter zu machen g Vgl Meister A van Nerven A 0 J http winfwiki wi fom de index php Implikationen_des_Social_Webs_auf_Suchmaschinentechnologien Stand 07 01 2013 KOS content 395 2 4 Gegen berstellung verschiedener Lizenzvarianten Opensource Kommerziell Freeware BuBkamp Freie und kostenlose Weiterga be e Quellcode verf gbar e Abgeleitete Software darf unter gleicher Lizenz weiter verbreitet werden Kommerzielle Software wird meist durch Unternehmen entwickelt um einen Profit zu erwirtschaften Im allgemeinen propriet re Soft ware von Herstellern die ihr Pro dukt kostenlos verbreiten Das Ko pier und Weiterverbreitungsverbot Kostenlos Fehler und Sicherheitsl cken k nnen durch eine Vielzahl von Programmierern beho ben werden Bei gro er Akzeptanz schnel le Weiter
79. to a callback see Fig 1 thus enabling much more responsive software Fig 1 AJAX diagram Although this addressed the issue on the client side server side request were still handled very much in a synchronous fashion The Apache web server e g forks a new process for each incoming request As popular applications have to cope with unprecedented amounts of con current users in conjunction with massive request counts this obviously causes performance issues Reasons for these issues are that blocking I O streams also cause the related thread to 3 Matejka J 2012 Cf The Apache Software Foundation 2013 KOS content 533 idle and consequently block this thread meaning it cannot be used for other requests The next chapter expands upon I O bound and CPU bound applications as well as single multithreaded technologies and will explain further why asynchronous technologies can help mitigate prob lems that especially applications with a lot of I O streams face KOS content 534 2 Setting the Context 2 1 Potential Web Development Issues This section is used to briefly outline some theories that are relevant when dealing with syn chronous and asynchronous approaches 2 1 1 VO and CPU Bound Applications UO bound applications 1 O bound means that a system requests data faster than the periph eral devices e g hard disk can transfer it causing a process thread to be put asleep The program could be spe
80. treten zumeist die Aspekte Verf gbarkeit und Partitionstole ranz an vorderste Stelle um Massen von Daten zu bew ltigen bei denen eine absolute Konsistenz nicht erforderlich ist Entnommen aus Kwangsub 2012 KOS content 649 2 2 Dokumentenorientierte Datenbanksysteme Dokumentenorientierte Datenbank werden oft auch als dokumentenbasierte Datenbanken bezeichnet und speichern im Gegensatz zu relationalen Datenbanken die Daten nicht in Form von Tabellen sondern als Dokumente ab Ein Dokument ist in diesem Zusammen hang zu verstehen als eine strukturierte Zusammenstellung bestimmter Daten Innerhalb eines Dokuments ist die Definition von beliebigen Feldern m glich Diese Felder werden als Schl ssel bezeichnet Zus tzlich ist jedem Schl ssel jeweils ein Wert zugeordnet Auch dieser Wert kann beliebig gew hlt werden es kann sich beispielsweise um eine Zahl ein Wort ein Text oder ein Dokument handeln Au erdem ist es nicht notwendig die L nge des Wertes vorab zu definieren denn auch diese kann nach Belieben gestaltet werden 7 Die Abbildung 2 veranschaulicht den m glichen Aufbau eines Dokuments im Sinne der doku mentenbasierten Datenbank Vorname Max Nachname Mustermann Telefon Nr 0123456 Adresse Musterstra e 34 Musterstadt Kinder Musterkind1 Musterkind2 Alter 33 Abb 2 Beispiel f r ein Dokument In dokumentenbasierten Datenbanke
81. verwedent 2 3 Verteilung von Suchmaschinen Die Verteilung der Suchmaschinen mit denen die Benutzer ihre Suchbegriffe im Web su chen muss individuell betrachtet werden Im Folgenden werden Daten aus den USA mit denen aus Deutschland verglichen In der Verteilung der meistgenutzten Suchmaschinen 2011 in den USA h lt Google den ers ten Platz mit einem Marktanteil von 64 42 Alle Suchen die durch Bing durchgef hrt wur den ergeben in Summe 30 und somit belegt das Produkt von Microsoft Rang 2 Auf Rang 3 ist Yahoo mit 15 69 Rein statistisch betrachtet ist der Marktanteil von Google in diesem Segment unglaublich hoch und l sst auf eine gro e Marktdominanz und kontrolle schlie Ben Marktanteile von Suchmaschinen in den USA von 2007 bis 2011 jeweils Dezember 80 60 40 20 Lie vert Google Seiten Yahoo Seiten Microsoft Seiten E Marktanteile der Suchmaschinen GB Dezember 2007 MB Dezember 2008 WW Dezember 2009 M Dezember 2010 MJ Dezember 2011 USA comScore jeweils Dezember Quelle comScore Statista 2013 Abbildung 1 Marktanteile der Suchmaschinen in den USA 2007 bis 2011 Im Vergleich zu dem bereits gro en Marktanteil von Google in den USA sind die Zahlen f r Deutschland umso interessanter und erstaunlicher Auch hier belegt Google mit deutlichem Abstand Platz 1 Dessen Marktanteil liegt in Deutschland aber sogar bei Uber 80 Vgl 0 V 2013 http de statista com statistik daten
82. weitere Form der Speicherung kann in sogenannten Supercolumns siehe Abb 6 E D Super Column Name Column Name Value e Value Column Name Timestamp Timestamp K 4 Abb 6 Super Columns erfolgen das sind Spalten welche mehrere der urspr ng lichen Spalten als Grundlage nehmen beziehungsweise zu einer Spalte zusammenfassen Diese Datenorganisati on bietet vor allem Vorteile bei Operationen die nur auf bestimmte Spalten abzielen beispielsweise bei Aggrega tionen Weitere Vorteile bestehen bei der Analyse der Daten und der Datenkompression Nachteile andererseits k nnen sich bei Such oder Schreibzugriffen auf Daten oder Lese und Schreiboperationen auf Objektstrukturen ergeben Weiterhin ist generell der Bereich der entscheidungsunterst tzenden Datenauswertung OLAP Online Analytical Processing und nicht der Transaktionsbereich OLTP Online Transaction Processing betroffen F r Letzteres sind im Allgemeinen Systeme mit h chster Konzentration auf Datenintegrit t von N ten welche in der Form durch Wide Column Stores nicht gew hrleistet werden Reduktion auf die f r gew hnlich wenig abgefragten Spalten einer Tabelle so m ssen nicht alle Zeilen mit den nicht abgefragten Spalten in den Speicher geladen werden Entnommen aus Grunev M 2010 51 Vgl Edlich S u a 2010 S 53 7 Entnommen aus Datenbanken Online Lexikon 2011b KOS conten
83. werden Es gibt verschiedene Techniken um einen Graphen zu durchsuchen wie beispielsweise die Breiten und Tiefensuche die algorithmische Traversierung und die randomisierte Traversierungsme thode 31 Vgl Rodriguez M A 2010 32 vol Rodriguez M A 2010 SS Vgl sones GmbH o J KOS content 654 10 2 4 Key Value Datenbanksysteme Key Value Datenbanken oder auch Key Value Stores genannt gibt es schon seit den 70er Jahren Einen richtigen Schub erleben sie jedoch erst seit der Entwicklung des Web 2 0 und dem Cloud Computing Das Prinzip der Key Value Stores ist sehr einfach gehalten So bestehen einzelne Datens t ze nur aus einem Key und einem zugeh rigen Value Die Schl ssel m ssen immer eindeutig sein und k nnen in unterschiedliche Namespaces oder Datenbanken aufgeteilt werden Die Aufteilung l uft meist ber den Hash Wert des Schlissels Der Key besteht meistens aus einer Zeichenkette wobei es sich hierbei nicht zwingend um einfache Textstrings handeln muss sondern auch ein bestimmtes Schema verwendet werden kann Der Value eines Datensatzes kann je nach Datenbank nicht nur aus einem String bestehen sondern bei spielsweise auch aus einer Liste oder einem Set Der Zugriff auf einen Datensatz ist nur ber den Schl ssel m glich Es ist dadurch nicht m glich den Schl ssel zu einem bestimm ten Wert zu suchen Zudem gibt es bei dieser Art von Datenbanken keine M glichkeit einzelne Datens tze miteinand
84. zu ver binden Aus diesem Grund kann jeder Server alle Informationen zur Verf gung stellen 6 Prototyping 6 1 Simulation auf PC Pseudo Distributed Operation Die einfachste und grundlegende Installation eines Hadoop Systems ist die Single Node Instanz Dabei befinden sich NameNode und DataNode auf einem Rechner Diese Art der Installation ist keineswegs nur als Spielwiese f r Profis gedacht sondern f r alle Interessier ten die das Prinzip und die Funktionsweise von Hadoop kennen lernen und verstehen m ch ten Das in Anhang 1 befindliche Installationsbeispiel beschreibt die Installation und Konfigu ration einer Single Instanz auf Basis von Ubuntu Desktop 12 10 in der 32 Bit Version Zu s tzlich werden die Voraussetzungen geschaffen um diesen Single Node sp ter z B an Amazons Cloud Computing Plattform anbinden zu k nnen Um mehr Verst ndnis f r die Arbeitsweise und die Architektur von Hadoop zu bekommen wird auf die Hadoop Version 1 0 4 der Apache Foundation zur ckgegriffen 6 2 Cloud am Beispiel von Amazon Web Services mit Amazon S3 Bei Amazon Simple Storage Service S3 handelt es sich um Web Speicher im Cloud Format Flexible Skalierbarkeit der Daten im Netz ist der gr te Pluspunkt dieser Speicher technik Mittels einer Webservice Schnittstelle k nnen jederzeit von jedem beliebigen Ort aus Daten abgerufen und gespeichert werden Auch Amazon selbst nutzt S3 zum Ausf hren seines globalen Website Netzwerks
85. 066 n3 nabble com Solr f472067 html Abruf 18 01 2013 Indexing files like doc pdf Solr and Tika integration http solr pl en 201 1 04 04 indexing files like doc pdf solr and tika integration Abruf 18 01 2013 Anleitung Installation Apache Solr f r TY PO3 http jweiland net typo3 hosting anleitung solr fuer typo3 einrichten html Abruf 18 01 2013 Unicode Support http elasticsearch users 115913 n3 nabble com Unicode Support Newbie Looking for Clarification td4024086 html Abruf 18 01 2013 Hadoop Wiki http wiki apache org hadoop PoweredBy Abruf 18 01 2013 Lucene 4 0 http www heise de download lucene 1146503 html Abruf 18 01 2013 Search Results for http apache org http www alexa com search q http 3A 2 F 2Flucene apache org 2Fcore 2F amp r ho me_home amp p bigtop Abruf 18 01 2013 Search Results for http www elasticsearch org http www alexa com search q http 3A 2 F 2Fwww elasticsearch org amp r site_screene r amp p bigtop Abruf 18 01 2013 KOS content 517 Alexa Internet Inc 2013c Banon S o J Bizosys Technologies Pvt Ltd 2010a Bizosys Technologies Pvt Ltd 2010b Bizosys Technologies Pvt Ltd 2011 Comundus 2011 dkd Internet Service GmbH 2013 Elasticsearch o J a Elasticsearch o J b Elasticsearch o J c Elasticsearch o J d Elasticsearch o J e Elasticsearch o J f Elasticsearch o J g 71 Sear
86. 1 Gr ne Suchmaschinen Das Thema Green IT ist bereits seit Jahren fester Bestandteil in den Diskussionen um den Stromverbrauch von Rechenzentren wie Google alleine durch Suchanfragen Mittlerweile ist es m glich gewisse Aussagen zu t tigen wie hoch der Stromverbrauch f r eine einzelne Suchanfrage ist Fraglich ist wie glaubhaft solche Statements sind Seit mehreren Jahren gibt es auf dem Markt verschiedene Anbieter von gr nen Suchmaschinen Sie verpflichten sich dem Umweltschutz und nachhaltigem Handeln Die Ans tze reichen von einer Spende pro Suchanfrage bis hin zu nachhaltigem Wirtschaften eines Unternehmens das sich ver pflichtet hat 80 aller Einnahmen an ein Regenwaldprojekt zu spenden Die wichtigsten Vertreter in Deutschland sind ecosia ecosearch forestle goodsearch greenseng hornvo gel searchgreen znout und umlu Sie verf gen alle ber eine eigene Suchmaske arbeiten im Hintergrund aber nur mit den drei Anbietern Google Bing und Yahoo Damit sind diese KOS content 403 kein Open Source und wenn berhaupt in einem Unternehmen einsetzbar kostenpflichtig Um die Ans tze solcher Suchmaschinen und die Gedanken dahinter zu verstehen haben wir uns nichtsdestotrotz entschieden eine dieser Suchmaschinen in unsere n here Betrachtung einzubeziehen Definition Eine gr ne Suchmaschine bezeichnet eine Suchmaschine die durch unter schiedlichste Aspekte von der Verwendung von ko Strom ber Spenden
87. 1 1 1 1 Skalierbarkeit 10 0 2 3 2 M glichkeiten der Anbindung PFLICHT NEIN JA NEIN JA 20 0 4 2 2 Administration 5 1 2 1 2 2 1 3 0 3 1 1 4 2 2 nichtfunktionale Anforderungen 6 2 1 1 1 7 1 1 1 1 8 2 1 1 1 6 4 3 2 2 100 157 1 60 Tab 20 Bewertende Gegen berstellung der Meta Suchmaschinen KOS content 506 60 Betrachtet man zun chst die wichtigen Pflichtanforderungen f llt auf dass zwei Suchma schinen diese nicht komplett erf llen k nnen Weder Lucene noch Elasticsearch bieten Funktionalit ten mit denen eine LDAP Anbindung m glich ist Damit k nnen bestehende Berechtigungskonzepte nicht bernommen werden was ein K O Kriterium darstellt weswe gen diese beiden Suchmaschinen nicht in die engere Auswahl gezogen werden k nnen Unabh ngig von den Pflichtkriterien erreicht die Suchmaschine Solr mit 2 21 Punkten deut lich den ersten Platz Dahinter finden sich mit geringem Abstand zueinander die Suchma schinen HSearch 1 60 und Elasticsearch 1 57 Mit einem ebenso deutlichen Abstand lan det die Programmbibliothek Lucene auf dem letzten Platz 0 93 Punkte Solr punktet v a aufgrund der Tatsache dass viele Funktionen ohne die Notwendigkeit einer Erweiterung mit dem System mitgeliefert werden z B Synonyme und unscharfe Suche Werkzeuge zur Anzeige von Hintergrundinformationen bzw Cached Results Zus tzlich zeichnet sich die Suchmaschine durch eine breite Kompatibilit t Skalierbarkeit zahlreiche
88. 1 Cf w a 2012d KOS content 539 Table1 only considers four major frameworks Other libraries frameworks include but are not limited to e Perl s AnyEvent e Ruby s Rev and Cramp which is built on EventMachine e Python s tornado asyncore module and sitting on that Medusa e Python s gevent library e NET s Rx library e JVM s NIO e Linux epoll C s libev3 and libeio 4 e Erlang 2 5 2 Node js Node js is a framework based on Google s V8 JavaScript Engine libUV as platform layer and a core library written in JavaScript Node js brings JavaScript to the server side and therefore makes it possible to write a web application on both the server side and the client side in one language JavaScript Compared to other technologies that try to apply the fundamentals of asynchronous program ming Node js libraries are programmed completely asynchronous Its architecture consists of modules to simplify the creation of complex applications Modules are encapsulated pieces of code like libraries in C or units in Pascal Every module contains of set of functionalities that share one common purpose The visibility of functions and variables is limited to the module they belong to Using a module requires to call the function require and its allocation to a 2 http software schmorp de pkg AnyEvent html 2 http rev rubyforge org rdoc 24 nttp cramp in 25 http r
89. 12 KOS content 425 Dabei sind die Dokumente nicht Schema frei Jedes Feld das belegt wird muss vordefiniert werden In Lucene enthalten Felder grunds tzlich Text In Solr sind Felder hingegen typisiert hnlich wie Variablen in Java Die klassischen Typen wie Date Float Double Integer Long Boolean und verschiedenen Arten von Text Typen sind vordefiniert eigene k nnen ebenfalls verwendet werden Jedes Feld besitzt einen Typ gegen den der Wert des Feldes beim Hinzuf gen gepr ft und gegebenenfalls abgelehnt wird Des Weiteren wird in der Deklaration des Feldes festgelegt welche Lucene spezifischen Verarbeitungsschritte beim Indizieren vorgenommen werden sollen ob eine Zerlegung stattfindet und ob es suchbar sein soll Au erdem k nnen weite re spezialisierte Schritte so genannte Filter definiert werden die bei Indizierung und Suche ber cksichtigt werden sollen Zum Beispiel k nnen so die eingehenden Daten zu Kleinbuch staben umgewandelt werden oder es lassen sich W rter Stopwords definieren die auf keinen Fall in den Index aufgenommen werden sollen 77 Webapp can be served with Tomcat Jboss etc Request Handlers Response Writers Single Server E CONFIG SCHEMA S BF en e D Master F FILTERING FACETING HIGHLIGHT Replication p Pao PARSE SEARCH CACHE J F Shard 1 Shard 2 Distributed LUCENE API INDEXWRITE INDEXSEARCHER Abbildung 12 Architektur und Komponenten von Soir Die untenstehen
90. 13 Strathewerd R 2004 o V 2010 Universit t Glasgow 2005 Universit t Glasgow 2011 Murray J 2005 o V 2005 Macke S 2006 Yacy http de wikipedia org wiki YaCy Abruf 08 01 2013 Swish e http swish e org Abruf 10 01 2013 Beitrag zu Swish e im Linux Magazin http www linux magazin de Ausgaben 2004 04 Finden im Sauseschritt Abruf 10 01 2013 Artikel zu Swish e http www pcwelt de downloads Swish E 1217245 html Abruf 10 01 2013 Publikation Terrier A High Performance and Scalable Information Retrieval Platform Department of Computing Science University of Glasgow Scotland Terrier http terrier org docs current terrier_http html Abruf 13 01 2013 Innovationsreport What s the European answer to Google TERRIER the search engine with added byte http www innovations report de html berichte informationstechnologie bericht 41606 html Abruf 13 01 2013 Terrier 2 1 http mscerts programming4 us de 239656 aspx Abruf 13 01 2013 Blogeintrag http blog stefan macke com 2006 1 1 30 installation von swish e unter suse 101 Abruf 21 01 2013 KOS content 441 KOS content 442 mf DHBW ttemb rinit Einsetzbarkeit von Meta Suchmaschinen zur Abdeckung bestehender Suchl sungen in verschiedenen Bereichen Schriftliche Ausarbeitung im Rahmen der Lehrveranstaltung Projekt des 5 Semesters Kompetenzzentrum Open Source KOS Vorgelegt von
91. 13 Twisted Project Page http twistedmatrix com trac retrieval 01 01 2013 Vert x Main Manual http vertx io manual html retrieval 01 10 2013 vert x Module Manual http vertx io mods_manual html retrieval 01 10 2013 vert x mod web server https github com vert x mod web server retrieval 01 22 2013 Node v0 9 7 Unstable http blog nodejs org 2013 01 18 node v0 9 7 unstable retrieval 01 19 2013 vert x vert x Commit History https github com vert x vert x graphs commit activity retrieval 01 22 2013 jQuery The Write Less Do More JavaScript Library http jquery com retrieval 01 21 2013 KOS content 594 we DHBW Duale Hochschule Baden W rttemberg Stuttgart NoSQL Datenbanken Hadoop und seine Komponenten Schriftliche Ausarbeitung im Rahmen der Lehrveranstaltung Projekt des 5 Semesters Kompetenzzentrum Open Source KOS Vorgelegt von Sabine Benndorf Sabine Dahms Martin Gasch Kai St ngle am 22 01 2013 Fakult t Wirtschaft Studiengang Wirtschaftsinformatik 2010 V KOS content 595 Inhaltsverzeichnis Abk rz ngsverzaichnis n es tree ee II Abbildungsverzeichnis n nase ee ee ige V 1 EIMICHUNG GENEE 1 2 Hintergrund und Problemsttuapon Au 2 3 Definition Big Dalaran Robes eee ae 3 4 Hadoop amp Technologien rs 6 4 1 Elei 6 4 2 MapReduce Programmiermodell 444444444400Rnnnnnnnnnnnnnnnnnnnnnnnnn nennen 9 4 3 Funktionsweise von
92. 29 10 Elasticsearch Indexierung und Indexreplikation Schritt 3 sunnn 4 30 11 Elasticsearch Indexierung und Indexreplikation Schritt 4 44usssn nn 30 12 Vier Felder Matrix f r die Bewertung der Open Source Projekte mit Einordnung 58 KOS content 446 Tabellenverzeichnis Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab 1 Arten von Open Source Lizenzen ENEE 3 2 Matrix zur Bestimmung des Reifegrads von Open Source Projekten 6 3 Matrix zur Bewertung der Marktakzeptanz von Open Source Projekten sssssnsnn 9 4 Matrix zur Bewertung von Meta Guchmaschnen nennen 16 5 Hintergrundinformationen zu Lucene 19 6 Wichtige Operatoren von Lucene ENNEN 22 7 Hintergrundinformationen ZU Soir EEN 24 8 Hintergrundinformationen zu Elasticsearch nn 27 9 Hintergrundinformationen ZU H earch ke 32 10 Bewertung des Lucene Projekts unn 36 11 Bewertung von Lenger ke Seegen deeg gege ee 39 12 Bewertung des Solr Projekts u 2m ee er 42 13 Bewertung von Solr ns tee een oes iamineecendamttatument hots 45 14 Bewertung des Elasticsearch Projekts nn nnnnnnnnnnnnnnnne nennen 48 15 Bewertung von Elastiesearch un uu nes ee ep 51 16 Bewertung des HSearch Projekts 4444444444400nnnnnnnnnnnnnnnnnnnnnnnnnn nennen 53 17 Bewertung Von Hsearch nee ee 55 18 Reifegradermittlung der Suchmasc
93. 29 JSON is a common exchange format e g CouchDB is a database storing documents in JSON and could particularly benefit from Node js as middleware Furthermore sec 3 1 outlined the potential of Vert x and Node js as proxy servers which is another hint at the potential of these technologies in terms of middleware Appendices 2 6 and 3 will showcase what is possible when turning Node js into a middleware layer which fundamentally is also true for Vert x 126 Geihs K 2001 127 Cf Joyent Inc w y b 128 Tanenbaum A S Van Steen M 2007 p 149 129 Cf Crockford D 2006 KOS content 576 46 Appendix 2 Kue A Message Queue Job Queue based on Node js A message queue is an area where you can add messages representing a task 130 According to Microsoft Message Queue MSMQ it helps solve two basic problems e Unavailability of communications with servers or clients and e Communications between disparate systems and components Another use case for message queues is storing less important information in a message queue while your DBMS is busy serving customers during the day 127 The basic concept behind message queues is as follows When a message arrives from a client the producer places it on a queue It has then done its job and waits for the next input data The consumer which can be a process or application that may also be on a different server or even a different op erating system can th
94. 3 7 Fazit Alles in allem wurden in dieser Arbeit die notwendigen Grundlagen erl utert um Hadoop und seine Funktionsweise zu verstehen Es wurde kurz auf Big Data und NoSQL eingegangen Anschlie end wurde das Dateisystem von Hadoop das HDFS und der Basisalgorithmus MapReduce erl utert In den letzten beiden Unterpunkten des Grundlagen Kapitels wurde sowohl auf die Funktionsweise von Hadoop und dessen Fehlertoleranz als auch auf diverse Anwendungsbereiche eingegangen Zudem wurde ein Prototyp als Einzelplatzl sung aufge setzt um die grundlegenden Funktionen von Hadoop zu testen Eine ausf hrliche Dokumen tation ber die Implementierung ist im Anhang 1 nachzulesen Es ist denkbar in weiteren studentischen Arbeiten die Grundlagen von Hadoop genauer zu beleuchten Insbesondere die Programmierung der MapReduce Algorithmen konnte auf Grund des engen Zeitrahmens in dieser Ausarbeitung nicht n her beleuchtet werden Erg nzende Systeme welche auf Hadoop aufsetzen und zus tzliche Funktionalit ten bieten wurden in dieser Ausarbeitung nur oberfl chlich betrachtet und grob beschrieben Sie bieten dem Nutzer jedoch die M glichkeit Hadoop anwenderfreundlich und facettenreich einzuset zen Dieses Erweiterungspotenzial macht es lohnenswert diese erg nzenden Systeme in einer weiteren Studie genauer zu betrachten und Vor und Nachteile sowie die Anwen dungsm glichkeiten dieser Komponenten hervorzuheben Allgemein sind die erg nzenden System
95. 7 8 9 Server start Server http page title Database Demo Line 14 Column 2 Tab Size 4 Fig 12 Opa example code lt head gt lt title gt Leaderboard lt title gt lt head gt lt body gt lt div id outer gt gt leaderboard lt div gt lt body gt lt template name leaderboard gt lt div class leaderboard gt each players gt player each lt div gt if selected_name lt div class details gt lt div class name gt selected_name lt div gt lt input type button class inc value Give 5 points gt lt div gt if unless selected_name lt div class none gt Click a player to select lt div gt unless lt template gt lt template name player gt lt div class player selected gt lt span class name gt name lt span gt lt span class score gt score lt span gt lt div gt lt template gt Lst 33 HTML of the Meteor example Leaderboard KOS content 579 D JO Om P Go ZS SS SS P SS oO GO oO GO GO GO G GO GO GO bhMbMbMbMbMbhM bMbMMbM ch ch a ch ch ch zb zk A NOOPOD OOONOOI POD OVOO NO OT P ON 2 OO oO OO NO Om POD OO o 49 Set up a collection to contain player information On the server it is backed by a MongoDB collection named players Players new Meteor Collection players if Meteor isClient Template leaderboard players
96. 8 4 3 3 Funktionsweise eek 18 4 34 FAZ Nennen 19 4A EE Eee nes EE 20 4 4 1 te LEE 21 BAD Nachteile seen Eee 22 E EE inte 22 E Ee dee Ee 23 SEELEN ege dd 24 4 5 1 Viele 25 Ae EE eelere See ee 26 45 3 P nktisnsweilse asus ee 26 454a EE 26 4 Oie LUCENE EE ENEE ENEE 27 4 6 1 NOMI Os acs conte korea seen ihrer eier 27 4 62 Nachteile krengen He E E REEE ER 28 KOS content 388 4 6 3 FunktigNSWejSe ege hie 28 de HE nes ea Bene es MOAR eae 29 e Ne re ee ni es 30 4 7 1 Viele TEE 30 Ako Nachteile ee ee 32 4 7 3 Eunktionsweise Und Aufbau u nn rar ee 32 EE legate ne ee ee een 32 BB lebt 33 4 8 1 Vis 34 48 2 NAGGING A ee a a ar ee EE E 34 48 3 EUNKIONSWEISE EE 34 o NEE E 36 BO IRISCOUCM tha en cate EE 36 4 9 1 VOEE ee eier 37 4 9 2 Nachteile sey ie ee 37 e rr SE Bingen 37 GiGi TEA en ea erlernen ee ate rene Moana eee 38 5 Implementierung und Integration ENNEN 39 5 1 Beispiel Integration von Swish e in ein Intranet 40 6 due EE 42 64 ie e esse a ee er ee EN 42 6 2 Empfehlung und Fazit rin eee 43 Anhand ee 45 Quellenverzeichnisse nn 47 KOS content 389 Abk rzungsverzeichnis DHBW VERS BW URL LDAP JSON WWF GNU GPL UDP TCP PC P2P XML HTML MPL TREC HTTP UTF JSP JRE JDK RAM API REST CSV NoSQL Duale Hochschule Baden W rttemberg Hier anonymisierte Versicherung Baden W rttemberg Uniform Resource Locator Lightweight Directory Access Protocol JavaScript Object Not
97. 80 36 Anhang 1 NoSQL Systeme Visual Guide to NoSQL Systems Availability Relational comparison ECHTEN Pick Two P Consistency Partition Tolerance Tt 10 Entnommen aus Beany 2011 KOS content 681 37 Anhang 2 Vergleich einer relationalen Datenbank mit einer MongoDB Datenbank Ich bin die Datenbank moo Ich bin die Tabelle users id name I Hotelgast 2 Hotelbetreiber Ich bin die Tabelle posts id user_id comment II Mensch das ist aber alles sch n hier 2 Das meine ich wirklich so 3 2 und viele weitere Posts Ich bin die Datenbank moo Ich bin die Collection users Lid I name Hotelgast _id 2 name Hotelbetreiber Ich bin die Collection posts id l user_id I comment Mensch das ist aber alles sch n hier _id 2 user Id comment Das meine ich wirklich so _id 3 user_id 2 comment Danke dir f r die Blumen Freut mich zu h ren 101 Entnommen aus Boeker M 2010 S 42 f KOS content 682 Danke dir f r die Blumen Freut mich zu h ren Spalte Datensatz Dokument 38 Anhang 3 Operationen f r MongoDB Syntax db lt collection gt lt action gt lt parameters gt Einf geoperation Anlage eines einfachen Dokuments db person insert f name fritz age 20 hobbies soccer mongodb ch
98. 9 May 2004 18 49 17 UTC Posters Name Bernard E Wood Posters Email igor blabla tani gov e kd fatal when running make a k 919 1 Jxmitok g 02 c o xmitok lo test f gt xmitok c echo xmitok c gt mkdir libs I xmitok g 02 c o xmirole lo test gt f xmirole c echo xmirole c gt gcc DHAVE I xmitok g 02 c 0 xmiparse lo test gt f xmiparse c echo xmiparse c gt gcc DHAVE 1 src g 02 c o dummy lo test f dummy c echo gt dummy c gt mkdir ibs src 1 g 02 c o api lo test f api c echo gt api c gt mkdir Abbildung 7 Suchmaske der Suchmaschine Swish e 4 4 1 Vorteile e Schnelles Indizieren einer gro en Anzahl von Dokumenten in verschiedenen Forma ten TXT HTML und XML in der Grundkonfiguration e Benutzen von Filtern um andere Formate wie PDF mp3 oder PostScript zu indizie ren e Enth lt einen Webspider um Dokumente zu indizieren e Dokumente von einer relationalen Datenbank k nnen gelesen und indiziert werden e Dokumenten Eigenschaften k nnen im Index gespeichert und bei der Suche zur ck gegeben werden META Elemente e Dokumenten Zusammenfassungen k nnen bei jeder Suche zur ckgegeben werden e Erlaubt die unscharfe Suchmethode Fuzzy Search Bei dieser Methode werden Rechtschreibfehler beim Eintippen in der Suchmaske erkannt und das eigentliche Wort trotzdem gesucht Zus tzlich kann ber
99. AOL und Instagram Die wichtigsten Basisinformationen zu Solr finden sich in Tab 7 25 Vgl Bauer G 2009 S 154 f 26 Enthalten in Bauer G 2009 S 155 27 Vgl o V o J a 28 Vgl Klose M 2012 29 Vgl Worral P 2012 KOS content 470 24 EACAN C EUA OE 4 0 Entwickler Apache Software Foundation Programmiersprache Java Lizenz Apache 2 0 kostenlos Benutzerkreis u a Ebay Panasonic AOL Instagram Besonderheiten Volltextsuche REST Architektur JSON Datenaustauschformat Solr Cloud Entwickler Homepage http lucene apache org solr Informationsseite Wiki http wiki apache org solr Community http lucene 472066 n3 nabble com Solr f472067 html Kontaktm glichkeiten http lucene apache org solr discussion html Tab 7 Hintergrundinformationen zu Solr 3 2 2 Betrachtung der Funktionsweise Wie oben beschrieben ist Solr eine Volltext Suchmaschine Diese kann sowohl nach Stich worten als auch nach Kenngr en selektieren Die vorhandene Web Schnittstelle liefert zwei grundlegende Funktionen Mittels HTTP Request erfolgt eine Indizierung der Daten Sollen Suchanfragen gestartet werden bedient man sich der HTTP Methode GET 2 Durch Clustering als Cluster bezeichnet man das Zusammenfassen von Objekten mit hnli chen Eigenschaften eine bestimmte Anzahl an Datens tzen in einem Cluster bezeichnet man als Clustering und mehrdimensionale Suche k nnen d
100. Algorithmen vorgestellt 12 Vgl Gaulke M 0 J http www suchmaschinenkompetenz de Funktionsweise Suchmaschine Suchmaschinenkompetenz htm Stand 22 12 2012 KOS content 399 Lineare Suchalgorithmen Die lineare Suche ist die einfachste M glichkeit einen Datenbestand zu druchsuchen Dieser Datenbestand kann bei dieser Suche unstrukturiert sein aber je weniger Daten in dem Be stand enthalten sind desto schneller kann der Algorithmus ein Ergebnis liefern Dieser Algo rithmus l uft ein Element in der Liste nach dem anderen bis er das gesuchte Element findet Im besten Fall steht das gesuchte Element an erster Stelle In diesem Fall w re die Suche sehr schnell erfolgreich Die Anzahl der Durchl ufe des Algorithmus ist bei dieser Suche gleich der Anzahl der Elemente die in dem datenbestand vorhanden sind Bin re Suchalgorithmen Die Voraussetzung f r die bin re Suche ist eine schon bestehende Struktur des Datenbe stands Hierbei wir in dem gesamten Datenbestand das Element ermittelt das genau in der Mitte ist Hier wird nun geschaut ob das mittlere Element gr er oder kleiner als das Ge suchte ist Abh ngig davon werden entweder die Elemente durchsucht die rechts bzw links von dem mittleren Element stehen Die andere H lfte der Daten muss dann nicht mehr bearbeitet werden Die Komplexit t dieses Algorithmus ist in diesem Fall log n Rov 0 J http de wikipedia org wiki BinY yC3 A4re_Suche Algori
101. Beispiel sind das e JobTracker e TaskTracker e DataNode e NameNode e SecondaryNameNode Zur berpr fung der korrekten Arbeitsweise des Single Node oder zur Fehlerbeseitigung bietet sich der Blick in die Dateien unter usr local nadoop logs an KOS content 637 39 Quellenverzeichnisse Literaturverzeichnis Bayer M 2012 Hadoop der kleine Elefant f r die gro e Daten in Compu terwoche 2012 11 12 S 22 24 Spies R 2012 CIO Handbuch 2012 2013 Best Practices f r die neuen Her ausforderungen des IT Managements Hrsg Lang M D s seldorf Symposion Publishing GmbH Wartala R 2012 Hadoop Zuverl ssige verteilte und skalierbare Big Data Anwendungen M nchen Open Source Press White T 2012 Hadoop The Definitive Guide 3 Auflage Sebastopol O Reilly Aufs tze in Zeitschriften P rmer H 2011 NoSQL die neue alte Datenbank Generation in Compu terwoche 2011 38 11 S 28 31 Winter R Landert K IT Business Alignment als Managementherausforderung WI 2006 Editional zum Schwerpunktthema in WIRTSCHAFTSIN FORMATIK 2006 48 2006 5 S 309 Wolff E 2012 NoSQL die neue Datenbankgeneration in Computerwoche 2012 37 12 S 16 17 Verzeichnis der Internet und Intranet Quellen Amazon Web Services Amazon Simple Storage Service Amazon S3 Inc 2012a http aws amazon com de s3 Abruf 03 01 2013 Amazon Web Services Amazon Simple Storage Service Amazon S3
102. Business Alignment unabdingbar Unter IT Business Alignment versteht man die Forderung nach einem auf das Business abgestimmten Einsatz der IT 13 Vgl Spies R 2012 S 145 f i Vgl ebenda S 146 f 15 Vgl Winter R Landert K 2006 S 309 KOS content 604 4 Hadoop amp Technologien Wie aus den letzten Ausarbeitungspunkten hervorgeht sind relationale Datenbanksysteme nicht f r die Verarbeitung von Big Data ausgelegt Es gibt mittlerweile einige Systeme um diese Datenart zu verarbeiten Die zentrale Technik der NoSQL Systeme ist oft Hadoop Hadoop basiert auf einem speziellen Dateisystem dem HDFS und einem darauf arbeiten den Programmiermodell dem MapReduce Verfahren Hadoop wird in den n chsten Ausar beitungspunkten ausf hrlicher erkl rt Zu Beginn steht hier die Vorstellung der Basiskompo nenten HDFS und MapReduce Anschlie end wird die Architektur von Hadoop und dessen Funktionsweise erkl rt 4 1 HDFS Dem HDFS liegt eine Master Slave Architektur zugrunde die in einem Cluster realisiert ist Ein Cluster besteht aus mehreren Racks Ein Rack besteht dabei aus 30 bis 40 Nodes also einzelnen Rechnern die alle am selben Netzwerk Switch angeschlossen sind Ein Cluster ist somit die Verbindung vieler Rechner zu einer Recheneinheit Bei einem Cluster im Allgemei nen ist es n tig die Server Nodes in einem physikalischen Rack zu organisieren Hadoop ist aber in der Lage diese Informationen auszuwerten um Dat
103. DataNode Der DataNode bernimmt das Management der einzelnen Datenbl cke und bedient damit die Anfrage vom Client 9 Mit nderungen entnommen aus McDonald K 2011a 3 va McDonald K 2011a KOS content 612 14 6 retrieve client node input splits jobtracker node 3 copy job ae 7 heartbeat resources A i v dg ystem 4 TaskTracker e g HDFS 8 retrieve job resources returns task i 9 launch i child JVM Child 10 run tasktracker node Abb 4 Prozess Abfolge einer MapReduce Anfrage a Eine Visualisierung der Prozess Abfolge einer MapReduce Anfrage in Hadoop findet sich in Abb 4 Im ClientNode ist der Rechner von dem aus eine Abfrage ausgef hrt wird In diesem Knoten wird eine sog Client JVM gestartet Der Input besteht aus einer MapReduce Anfra ge Die JVM startet anschlie end den JobClient Daraufhin deklariert der Client eine JobID und bergibt diese anschlie end an den JobTracker Node Der Client Node kopiert im dritten Schritt die Daten der Anfrage in das HDFS Nachdem die beiden Schritte abgeschlossen sind wird die Abfrage an den JobTracker geschickt Im f nften Schritt initialisiert dieser die Anfrage lokal Der JobTracker holt sich vom HDFS NameNode die Informationen auf wel chem DataNode sich die jeweiligen Datenbl cke befinden Daraufhin werden die jeweiligen TaskTracker auf den DataNodes gestartet Ab diesem Zeitpunkt bertragen die TaskTracker den
104. Datenbanken auf seine Eignung zu berpr fen Das spaltenorientierte Datenbanksystem Cassandra bietet sich vor allem f r skalierende Webanwendungen an Der Vorteil liegt hier in einer gro en erfahrenen Community sowie zus tzlichen Foren Komplexe Abfragen wie im relationalen Modell k nnen nicht umgesetzt werden daf r bietet das Datenbanksystem aber eine h here Performance und keinen gro Ben Umgew hnungsaufwand von SQL Zus tzlich gibt es graphische Oberfl che und viele Konfigurationsm glichkeiten KOS content 678 34 Aufbauend auf dieser Arbeit ist eine umfassende Analyse der vorhanden graphischen Ober fl chen f r die unterschiedlichen Datenbanksysteme zu empfehlen Weiterf hrend k nnen die Performanceeigenschaften sowie die Skalierbarkeit in einem gro en Umfeld getestet werden Dies war im Rahmen dieser Arbeit leider nicht m glich KOS content 679 35 Anhang Anhangverzeichnis Anhang 1 NoSQL Systeme 36 Anhang 2 Vergleich einer relationalen Datenbank mit einer MongoDB Datenbank 37 Anhang 3 Operationen f r MongoDB unn EEN 38 Anhang 4 Konsistenzeinstellungen Cassandra 38 Anhang 5 Code f r die Erstellung einer Graphendatenbank in einer Javaanwendung 39 Anhang 6 Installationsanleitung Voldemort nn 40 Anhang 7 Installation von Cassandra 41 Anhang 8 CQL und CLI Befehle aus dem Cassandra Prototypen 42 Anhang 9 RDBMS Protolyp u 2 ee eek in enlal 43 KOS content 6
105. Decentralized Search Algorithms bit ly 6 http www slideshare net poga complex networks and decentralized search algorithms wp me 3 Wed 30 Jun 2010 67 kbyte Metadata Parser Pictures e citeseerx ist psu edu 3 gentoo portage com 3 Anonymous Web Searching Decentralized Search Engines THE source for BitTorrent P2P Tips Tricks tinyurl com 3 and Info FileShareFreak e www ncbi nim nih gov 3 Anonymous Web Searching Decentralized Search Engines THE source for BitTorrent P2P Tips Tricks and Info FileShareFreak e www edge org 3 httpY filesharefreak com 2007 12 15 anonymous web searching decentralized search engines Wed 30 Jun 2010 219 kbyte Metadata Parser Pictures Ei Algorithm for performing decentralized search in social networks Stack Overflow Algorithm for performing decentralized search in social networks Stack Overflow http stackoverflow com questions 2621 729 algorithm for performing decentralized search in social networks Wed 30 Jun 2010 I 29 kbyte Metadata Parser Pictures Arcaute Chen Kumar Liben Nowell Mahdian Nazerzadeh Xu Deterministic Decentralized Search in Random Graphs Arcaute Chen Kumar Liben Nowell Mahdian Nazerzadeh Xu Deterministic Decentralized Search in Random Graphs http projecteuclid org euclid im 1259158601 Wed 30 Jun 2010 12 kbyte Metadata Parser Pictures E Essay The Small World Phenomenon and Decentralized Search Es
106. Erweite rung des Rings muss sich das System nun zuerst einpendeln was am Anfang f r h here Latenzzeiten sorgen kann Weiterhin k nnen auch Knoten aus dem Ring entnommen wer den und somit eine R ck Skalierung erm glichen Bei der Datenkonsistenz kann zwischen diversen Consistency Levels f r Lese r und Schreibbefehle w oder individuell pro Operation gew hlt werden Hierbei wird durch die verschiedenen Optionen festgelegt auf welche Art und wie viele Knoten reagieren m ssen bevor der Client eine Antwort erh lt Eine entsprechende bersicht befindet sich im Anhang 4 Dies erm glicht ein Abw gen zwischen Performance und Konsistenz Bei jedem Read Befehl vergleicht Cassandra die Versionen der Daten Veraltete Datenknoten Durch die nodetool repair Operationen k nnen Knoten dazu angehalten werden derartige Aktualisie rungsreparaturen selbstst ndig auszuf hren Ausgefallene Knoten k nnen durch neue Instanzen und das Bootstrap Verfahren ersetzt werden Alle Operationen werden initial im Cache durchgef hrt daher ist es sinnvoll Cassandra mit einem hohen RAM Zugriff auszustatten Schreiboperationen werden geloggt und im Haupt speicher abgelegt bevor sie sp ter durch ein commit log ausgef hrt und per flush Operation versendet werden Anstatt von Locks bedient sich Cassandra hierbei einer opti mistischen Replikation welche blicherweise auf drei Knoten eingestellt ist Einsatzgebiet Cassandra
107. Faktoren e Anzahl der Stakeholder Zu den Stakeholdern geh ren Personen und Unternehmen die das Projekt unterst tzen Als Unterst tzer z hlen Einzelpersonen bzw Unternehmen die das jeweilige System das unter dem Projekt entwickelt wird verwenden oder als Sponsoren f r das Projekt fungieren e Anzahl der Downloads Als Indikator f r die Marktakzeptanz dient vor allem die Anzahl der Downloads f r das jewei lige Produkt Damit l sst sich eine Aussage ber die Verbreitung der Software treffen Infor mationen ber Downloadzahlen k nnen entweder direkt ber die Entwicklerseite oder ber externe Downloadseiten z B chip de festgestellt werden e globale oder deutschlandweite Popularit t Traffic Rank Neben der Downloadanzahl ist die Besucherzahl der Entwickler Homepage ein zu ber ck sichtigender Faktor bei der Beurteilung der Marktakzeptanz Die Messung von Besucherzah len ist ber die Seite alexa com m glich Dabei ist auch eine Unterscheidung nach deut schen und weltweiten Besuchern m glich 10 Vgl W he G D ring U 2010 S 89 f 11 Vgl Golembowska A u a 2012 S 23 f KOS content 455 Die drei Kriterien f r die Bestimmung der Marktakzeptanz sind in Tab 3 mit ihrer jeweiligen Gewichtung aufgelistet Diese Tabelle dient der sp teren Bewertung der Projekte wobei das Bewertungsschema identisch zu dem der Reifegradbestimmung ist Kriterium Gewichtung Suchmaschinen Lucene Solr Elastic HSe
108. Grunt Shell als auch ber andere Entwicklungsumgebungen wie z B Eclipse oder TextMate editiert werden P 5 4 Datenserialisierung mit Sqoop Mit Sqoop werden Daten aus einem RDBMS gelesen und in ein Hadoop System bertragen sowie umgekehrt Daten aus Hadoop an ein RDBMS bergeben Sqoop ist als Java Vgl Wartala R 2012 S 115 ge Vgl ebenda S 115 f 2 Vgl ebenda S 125 ff 84 Vgl ebenda S 131 KOS content 626 28 Anwendung realisiert und nutzt MapReduce Methoden zur Parallelisierung und zur Fehler vermeidung Hierdurch ist es m glich s mtliche RDBMS f r die es einen JDBC Treiber gibt anzubinden Zus tzlich bringt Sqoop nativen Support f r MySQL ab Version 5 sowie Post greSQL ab Version 8 3 mit SQL to HDFS Sqoop wird ber die Kommandozeile gesteuert Bei der Ausf hrung eines Import Befehls erzeugt Sqoop eine Java Klassendatei mit dem Namen der zu importierenden SQL Tabelle In dieser Datei ist die Schnittstelle zum Hadoop Dateisystem mit den notwendigen Getter und Setter Methoden sowie den Transformationen definiert Jede Zeile der Tabelle wird im HDFS als kommaseparierte Datei eingef gt Man kann die Anzahl der parallelen Verarbei tungen festlegen indem man die Anzahl der verwendeten Mapper ber die Kommandozeile t 88 mit dem Parameter num mappers angibt Mit den Argumenten where columns und query kann die Menge der zu importierenden Zeilen eingeschr nkt werden SQL to Hive Mit
109. Hierzu tr gt die Arbeit mit folgenden Punkten bei e Auf Basis von definierten Anforderungen sowie einem Bewertungskonzept werden vier bekannte Vertreter von Open Source Suchmaschinen hinsichtlich ihrer Funktio nen und Einsatzm glichkeiten betrachtet und bewertet Zus tzlich werden die zu grunde liegenden Open Source Projekte evaluiert e Daran anschlie end erfolgt eine bewertende Gegen berstellung aller Suchmaschi nen mit der letztendlich die Auswahl der besten Suchmaschine erm glicht wird Es ist nicht Ziel der Arbeit kommerzielle Suchmaschinenanbieter zu betrachten oder genaue Berechnungen ber Betriebs oder Managementkosten durchzuf hren 1 Vgl Arnold S E 2011 S 26 KOS content 448 2 Konzept zur Bewertung von Open Source Suchmaschinen Die Bewertung der Open Source Suchmaschinen erfolgt auf zwei Ebenen Zun chst wird das Open Source Projekt bewertet unter dem die jeweilige Suchmaschine entwickelt wird Oft lassen sich bereits anhand des Projekts R ckschl sse auf Qualit t und Entwicklungs stand des Produkts ziehen In einem zweiten Schritt erfolgt die eigentliche Bewertung der Meta Suchmaschinen auf Basis von zuvor definierten Anforderungen 2 1 Methoden zur Beurteilung von Open Source Projekten Eine wichtige Grundlage f r die Bewertung bildet das zugrundeliegende Open Source Pro jekt Die Qualit t und das Potential einer Open Source Software h ngen stark vom Erfolg des Projekts ab welches die Anwe
110. NoSQL Datenbanken nicht streng konsistent sondern vor allem hoch verf gbar sein Somit f llt es unter ein anderes Schema dem BASE BASE besteht aus drei Grunds tzen basically available soft state eventually consistent Dies bedeutet dass BASE zwar eine hohe Verf gbarkeit und Partitionstoleranz P rner H 2011 S 29 Ebenda S 29 KOS content 601 voraussetzt aber eine eher weiche Konsistenz hat was das System zwar schneller aller dings unsicherer macht P Eberhard Wolff findet in einem Artikel der Zeitschrift Computerwo che folgende Zusammenfassung f r NoSQL Die Zukunft geh rt nicht der Abl sung von relationalen Datenbanken sondern ihrer Erg nzung 7 3 Definition Big Data Auch bei vielen Firmen f llt immer fter der Begriff Big Data Dies ist ein recht junges The mengebiet der IT das noch keinen Einzug in die breite Wirtschaft gefunden hat Erst wenige Unternehmen sch pfen das Potenzial von Big Data aus Doch worum handelt es sich hierbei genau Eine exakte scharfe Definition f llt auch Experten schwer Big Data allein mit der Anh ufung von gro en Datenmengen zu definieren w rde der Thematik bei weitem nicht gerecht werden Auch mit dem Zusatz dass sich diese gro en Datenmengen schnell ver n dern wird das Ausma nicht abgedeckt Bei dem komplexen Thema bedarf es einer ebenso komplexen Definition wie beispielsweise die der International Data Corporation Inc IDC Diese teilt Big Da
111. Rechtschreibvorschlage e Synonymsuche e Hervorhebung 106 Vol Miller M u a 2012 107 Vol Nioche J 2011 108 Vgl o V o J e 109 Vgl Miller M u a 2012 110 Vgl The Apache Software Foundation 2012b KOS content 490 44 e Stopw rter e Gewichtung Ergebnisdarstellung Cached Results u Anzeigen von Hintergrundinformationen ist m glich zum j Beispiel Aufrufanzahl letzte Bearbeitung o Hintergrundinformationen ITT TEE IG Ausgabe z B in Webinterface m glich Skalierbarkeit e SolrCloud erm glicht die Integration einer gro en Skalierbarkeit Server Infrastruktur e Replikationsm glichkeiten und Load Balancer Systeme M glichkeiten der Anbindung LDAP Anbindung MAA ENEE ETC Authentifizierung ber LDAP ist m glich griffsrechte Samtliche Systeme des Unternehmens wie z B e E Mails e ERP e DMS Anbindung an Datenquellen e CRM e Wikis e Exchange Server e File Server e Intranet Dokumente e Lotus Notes DB ber Solr NotesDB Connector Administration Wartungs und Betreuungsm administrative Steuerung und Solr Monitoring bieten gezielte Wartungs und Betreuungsoptionen 111 Vgl dkd Internet Service GmbH 2013 112 Vgl o V o J f 113 Vgl Miller M u a 2012 114 Vgl Comundus 2011 115 Vgl Search Technologies Corp 2013 KOS content 491 Berechtigungsverwaltung Programmiersp
112. S content 469 23 presentation steht in diesem Kontext f r die Bereitstellung einer Ressource zugrundelie gende Daten und Metadaten Die Ressource wird in einer Datei einem Web bzw Applika tionsserver oder einem Datenbankserver bereitgestellt Abb 6 State beschreibt in diesem Zusammenhang den aktuellen Zustand einer Anwendung und Transformation steht f r den bergang des Zustands einer Anwendung durch Aufruf einer anderen Ressource Anwendungs Client http Proxy Gateway Proxy de http 2 B WAIS Applikations DB Server Datei Server Abb 6 Schema der REST Architektur Bei JSON handelt es sich um ein programmiersprachenunabh ngiges Textformat das unter anderem Konventionen der Programmiersprachen C C C Java und Perl beinhaltet Seit Apache 4 0 hat Solr einen gro en Sprung gemacht denn erstmals wurde durch die Neueinf hrung der Solr Cloud die Konfiguration und Verwaltung verteilter Systeme zuneh mend vereinfacht In vorherigen Versionen f hrte der Ausfall einer Komponente meist eines Servers zum Ausfall des Gesamtsystems Single Point of Failure Sollte nun ein Server ausfallen wird dieser durch einen anderen Server in der Cloud ersetzt Aufgrund all dieser fortschrittlichen Entwicklungspunkte hat sich Apache Solr zu einer weit verbreiteten Java Suchmaschine entwickelt und kann einen breiten Nutzerstamm aufweisen Zu den bekanntesten Nutzern z hlen Ebay Panasonic
113. Software Foundation 2012b 94 Vgl Innovent Solutions o J 95 Vgl Comundus 2011 KOS content 487 41 e Tokenizer and TokenFilter e FieldType e Internals e SolrCache e UpdateHandler BSc oc nn e alle 6 Monate Dokumentation Benutzerhandbuch vorhanden e Hauptdokumentation im Solr Wiki e Release Dokumentation e Tutorials inklusive Videos vorhanden Sprache der Dokumentation ausschlie lich englisch ETE ETc ce ausf hrliche und umfangreiche Dokumentation inklusive beispielhaftem Quellcode im Wiki e Tutorials mit knappen Erkl rungen und Quellcode e keine Downloadm glichkeiten als PDF Datei o A Support Community und kosystem Stand Januar 2013 e Forum mit 3464 Nutzern e 28428 Themen auf 813 Seiten e ca 27 000 Views e E Mail e IRC e Facebook e Twitter direkter Ansprechpartner e Mailing List mit E Mail Adressen von Entwicklern vorhanden e Kontakt ber IRC m glich Vorhandensein von FAQ FAQ in Wiki implementiert 96 Vgl Miller M u a 2012 97 Vgl The Apache Software Foundation 2012n 98 Vgl Miller M u a 2012 99 Vgl The Apache Software Foundation 20121 100 Vgl o V o J d 101 Vgl The Apache Software Foundation 2012k 102 Vgl Miller M u a 2012 KOS content 488 42 Marktakzeptanz Anzahl der Stakeholder bekannte Nutzer e Ebay e AOL e Disney e Panasonic e Instagram e AT amp T e NASA e SourceForge e
114. Solr bietet eine Reihe von Musterbenutzeroberfl chen von Solritas Der folgende Screenshot zeigt eine Version davon u Zoltan Ltr a BB localhost 89831308 browse el S Solr Examples Simple Sosis Q D a Sok Admin Scanne manu_exect Apache Sottearn Find Sute Query Reser Boost by Price 17 rasus found in SE ma Paga 1 of 2 Test with some GB18030 encoded characters ko TMs Price 0 00 Features No scorta here Ik T EDN This is a feature transisted 2 ZHP This document is very shiy Iransiatech In Steck true Samsung SpinPoint P120 SP2514N hard drive 250 GB ATA 133 Wore Lice This Price 92 00 Features 7200RPM SM2 cache IDE Utra ATA 33 NoseGuard SilentSeek technology Fld Dyramic Bearing FDE motor In Stock true Maxtor DiamondMax 11 hard drive 500 GB SATA 300 Mra in un Price 5350 00 Features SATA 3 008 NCO 8 Sins sesk 1648 cacha In Stock true Belkin Mobile Power Cord for IPod w Dock Nore eo mnis Price 16 96 Features car power adapter wie In Stock taiso iPod amp iPod Mini USS 2 0 Cable ore jee This Proa 11 50 Ent ms sa cower char for iPod whia Abbildung 11 Screenshot einer Suchanfrage e Vgl o V 2012 http lucene apache org solr Stand 27 12 2012 gt 7 Vgl o V 2012 http lucidworks lucidimagination com display solr Overview of Searching in Solr Stand 19 12 2012 KOS content 424 4 8 1 4 8 2 4 8 3
115. Systeme eingebunden sind 6 Ist es richtig dass das Intranet nur aus Wikis und Websiten besteht gt Die relevanten Datenquellen sind Wiki Systeme 7 Was ist gut zufriedenstellend am bisherigen System was ist verbesserungsw rdig a konkrete Problemsituation KOS content 436 gt Suche innerhalb der einzelnen Wiki Systeme f r die lokale Suche in Ordnung Bitte speziell betrachten gt gruppenbezogene Ber cksichtigung von Zugriffsrechten gt Suchl sung vom Hersteller bzw der Community unterst tzt gt aktives Projekt b konkrete Aufgabenstellungen gt Finden einer Suchl sung auf Open Source Basis die die Anforderungen erf llt 8 Warum nur Open Source gt Weil es ein KOS Projekt ist 9 Sind bestimmte Open Source Suchmaschinen nicht anwendbar aufgrund der technischen Anforderun gen Einbindung in das System gt Bitte unabh ngige Evaluierung vornehmen a Sollen diese berhaupt detailliert untersucht werden 10 Weitere Anforderungen an das System neben Autorisierung und Datenbankanbindung gt Bitte dokuwiki anschauen keine Datenbankanbindung vorhanden 11 Wird die Implementierung intern durchgef hrt oder von externer IT Firma gt Intern 12 F r wen ist die Dokumentation bestimmt Zwecks Art und Weise und Verwenden von Fachw rtern von unserer Seite in der Doku gt IT Abteilung KOS content 437 Quellenverzeichnisse Verzeichnis der Internet Quellen 0 V 0 J Gaulke M 0 J Schmi
116. TH usr lib jvm java 6 sun 1 6 0 12 lib LD LIBRARY PATH Danach muss aus dem Verzeichnis von Voldemort aus folgender Befehl ausgef hrt werden ant Damit Voldemort als n chstes gestartet werden kann m ssen lediglich noch zwei Files von Voldemort angepasst werden Dies ist zum Einen die Datei voldemort server sh In ihr muss folgender Abschnitt SE Z SVOLD OPTS then VOLD OPTS Xmx2G server Dcom sun management jmxremote fi in folgendes geandert werden CET SZ SVOLD OPTS then VOLD OPTS Xmx256M server Dcom sun management jmxremote fi Zum Anderen muss nun noch die Properties Datei server properties angepasst werden Folgendes Statement bdb cache size 1G muss zu folgendem Statement geandert werden bdb cache size 128M Nun sollte die Datenbank korrekt installiert und konfiguriert sein und kann Uber folgende Befehle gestartet werden bin voldemort server sh config single node cluster 2 gt amp 1 tee tmp voldemort log amp bin voldemort shell sh test tcp localhost 6666 Hiermit wurde direkt das Cluster test welches in der Datei config single_node_cluster config cluster angelegt wurde ge ffnet In dieses k nnen nun verschiedene S tze reingeschrieben oder ausgelesen und gel scht werden 104 Vgl WorldPress com 2009 KOS content 685 41 Anhang 7 Installation von Cassandra F r die Installation von Cassandra Apache Cassandra Version 1 2 0 wird JRE6 oder h her vorausgesetzt
117. TPS This would be fine to do server side validation and saving data in a database which is a fair use case but would only demonstrate the strength of Node js if real time server side validation with low CPU workload was a key criterion However this Proof of Concept goes further and demonstrates the strength of Node js when it comes to real time communication among several clients by distributing form inputs in real time to all clients that have opened one specific form at the same time The technology behind is called WebSockets as explained in section 4 2 3 The code in Lst 15 is necessary on the server side to enable Node js in combination with socket io to handle WebSocket connections The first line refers to the connection event which is triggered by default when a client connects to a server The parameter of the callback function is the socket that is used for the communication with the client Line four shows the on function of the socket which refers to the socket object createForm This one is used to write the room s name into the console line five write the room s name into the socket session of a client line six and finally join the room line seven A room is a functionality of socket io allowing closed areas Starting at line 85 Cf Roden G 2012 p 197 86 See https github com LearnBoost socket io wiki Rooms KOS content 555 D JO Om P Go OS GO 25 io sockets on connec
118. Teixeira P 2013 p 17 6 Cf Geisendoerfer F 2011 70 Cf Semerau R 2011 71 Cf Arranz J M 2011 72 Cf Behren R von Condit J Brewer E 2003 73 Cf Roden G 2012 p 14 KOS content 548 18 Expanding upon the non blocking I O strenghts it becomes obvious that asynchronous frame works are not I O bound Consequently they are not designed to deal with CPU bound use cases Datawarehousing with analytics Doing analytical and complex computations on large data sets at runtime usually requires a lot of computing power It can be expected that each request will require quite some time to be processed This computation time cannot be shortened much when run on a single thread but could potentially be sped up significantly when run on multiple cores in parallel CRUD HTML applications This refers to classical websites that basically only serve as an interface for an object relational model At present Node js and Vert x do not provide additional benefits to scalability for these types of web applications Unless the page has to deal with a large number of concurrent requests it should be considered to use more powerfull frameworks like Ruby On Rails Grails or Django These are currently better suited for quickly developing such an application Providing a site that is suited for millions of requests per day does not automatically increase the number of users XML based environments This applies for No
119. Vert x founder should serve as a warning http www theregister co uk 2013 01 14 opensource_ownership retrieval 01 22 2013 Ruby on Rails vs Node js at LinkedIn http www infoq com news 2012 10 Ruby on Rails Node js LinkedIn retrieval 01 19 2013 Why Events Are A Bad Idea for high concurrency servers http static usenix org events hotos03 tech full_ papers vonbehren vonbehren_html index html re trieval 01 21 2013 Identifying disk I O bound systems http osr507doc sco com en PERFORM ident_IO_bound html retrieval 01 22 2013 The application json Media Type for JavaScript Object Notation JSON http tools ietf org html rfc4627 re trieval 01 18 2013 The WebSocket Protocol http tools jett org html rfc6455 retrieval 01 21 2013 RFC2616 HTTP header field definitions http www w3 org Protocols rfc2616 rfc2616 sec14 html sec14 retrieval 01 18 2013 vertx proxy https github com robfletcher vertx proxy retrieval 01 21 2013 Vert x code examples https github com vert x vert x tree master vertx examples src main retrieval 01 10 2013 Vert x repository https github com vert x vert x re trieval 01 10 2013 KOS content 590 Fox T Daryl T et al 2013 Fox T Teo D et al 2013 Fox T Yates T et al 2012 Geihs K 2001 Geisendoerfer F 2011 Google Inc 2013 Hughes Croucher T 2010 Joyent Inc 2012 Joyent Inc 2012
120. X Gmail 2004 and Google Maps 2005 Since then asynchronous technologies encountered a steep carrier and are on the way to change the way of program ming The main goal of this paper is to identify specific use cases for asynchronous technolo gies on the server side and to make clear why this technology has evolved showing when and when not it is worth considering Special emphasis is put on applications in the business en vironment The authors intention is also to build a working prototype in order to present the advantages and disadvantages of this rising technology The two sided approach explaining the change in web development and an application in a business environment harnesses two main programming languages which are ubiquitous in each community Java for the enterprise world and JavaScript for web developers This paper elaborates the concepts behind the young frameworks Node js that briefly explained brings JavaScript to the server and Vert x a Java implementation of asynchronous technologies and analyzes their technical strengths and weaknesses Furthermore non functional attributes will be evaluated 1 2 Methodology and Structure The whole thesis consists of seven chapters The first two parts explain the authors motivation and introduce the basic concepts of web technologies and the difference of synchronous and asynchronous aproaches whose use cases are explained in chapter three Two prototypes of an insu
121. Zun chst wird das bereits angelegte Wortverzeichnis durchlaufen um so die beinhal tenden Dokumente zu finden Die Suchvorg nge nach den einzelnen W rtern werden dann mit AND Operationen verkettet sodass diejenigen Dokumente die die meisten Suchbegriffe 14 Vgl White M 2012 S 9 ff 15 Vgl The Apache Software Foundation 2012a 16 Vgl Karich P 2012 S 68 KOS content 465 19 enthalten aufgesp rt werden k nnen Dieses Beispiel ist in Abb 4 visualisiert Das Such wort Engine ist in den Dokumenten 1 3 und 4 enthalten w hrend sich Enterprise in den Dokumenten 1 3 5 und 7 findet und Search in den Dokumenten 3 5 und 6 vorzufinden ist Damit enth lt Dokument 3 die meisten Treffer und ist als bestes Ergebnis aufzuf hren An zweiter Stelle folgen Dokumente 1 und 5 und schlie lich die Dateien 4 6 und 7 Dokument Nr 2 enth lt keine Treffer und wird deshalb nicht aufgef hrt Suche nach Enterprise Search Engine Suchwort Dokument Engine 1 3 4 Enterprise 13 57 Search 3 5 6 DB hone Trefferquote H mittlere Trefferquote U geringe Trefferquote keine Treffer Abb 4 Invertierter Index Beispiel f r eine Suche Mit Lucene k nnen 95 GB in einer Stunde durchsucht werden Die RAM Anforderungen sind dabei mit 1 MB im Heap sehr gering siehe Anhang 2 Die wichtigsten Hintergrundinformationen zu Lucene sind in Tab 5 aufgef hrt aktuelle Version
122. a Joyent Inc 2012b Joyent Inc 2013 60 Vert x google group An important announcement to the Vert x community https groups google com forum msg vertx gnpGSxX7Pzl uRNaMtJalJUJ retrieval 01 10 2013 Discussion The future of the Vert x project https groups google com forum fromgroups topic vertx WluY5M6RIuM 1 25 false retrieval 01 19 2013 Vert x Module Repository on Github https github com vert x vertx mods retrieval 01 11 2013 Middleware challenges ahead in Computer Volume 34 6 pp 24 31 Felix s Node js Convincing the boss guide http nodeguide com convincing_the_boss html retrieval 01 20 2013 Web Search Interest node js vert x http www google com trends explore hl en US q node js 20vert x amp cmpt q retrieval 01 18 2013 Understanding event loops http developer yahoo com blogs ydn posts 2010 10 understanding the event loops and writing great code for node js part 1 retrieval 01 01 2013 API changes between v0 6 and v0 8 https github com joyent node wiki API changes between v0 6 and v0 8 retrieval 01 21 2013 Node js v0 8 15 Manual amp Documentation http nodejs org api retrieval 12 11 2012 Node js v0 8 18 Manual amp Documentation http nodejs org api cluster html Schuster how it_ works retrieval 01 21 2013 Node js modules Testing Spec Frameworks https github com joyent node wiki modules wiki te
123. a 2010 S 131 8 Vgl freiesMagazin 2010 44 Vgl Computerwoche 2011 45 Vgl Edlich S u a 2010 S 7 KOS content 657 13 2 5 Spaltenorientierte Datenbanksysteme Das Prinzip welches hinter spaltenorientierten Datenbanksystemen beziehungsweise Wide Column Stores steht wurde bereits in den 80er Jahren entwickelt Im Gegensatz zu relatio nalen Datenbanksystemen werden die Daten nicht in Zeilen sondern in Spalten angeordnet Auf diese Art und Weise wird f r jedes Attribut eine eigene Tabelle bzw Spalte angelegt und hintereinander gespeichert Hierbei besteht eine Spalte zumeist aus drei Elementen dem Namen den eigentlichen Daten und einem Timestamp zur Versionierung Die physikali sche Speicherung erfolgt ebenfalls anhand der Spalten Bei der Speicherung von Daten zu Tieren mit den Attributen ID Art und Name s hen dies wie folgt aus Zeilenorientiert 001 Hund Paul 002 Katze Mietz 003 Pferd Amadeus Spaltenorientiert 001 002 003 Hund Katze Pferd Paul Mietz Amadeus Die Spalten an sich werden in Keyspaces abgelegt Sie dienen als oberste Ordnungsebe ne und als Namensraum In Analogie zu relationalen Systemen k nnen innerhalb des Keyspaces einzelne Spalten mit verwandten Inhalten zusammengefasst werden Dies hat im weitesten Sinne eine gewisse hnlichkeit mit einer denormalisierten Tabelle im relationa len System Diese sogenannten Column Families siehe Abb 5 besitzen
124. a ee a en 44 KOS content 642 Abk rzungsverzeichnis ACID API BASE BSON CAP CF CLI CQL DB DBMS ID JSON JVM RDBMS SQL UUID Atomicity Consistency Isolation and Durability Application Programming Interface Basically Available Soft State Eventually consistent Binary JSON Consistency Availability Partition Tolerance Column Family Command Line Interface Cassandra Query Language Datenbank Database Datenbankmanagementsystem Identifier Java Script Object Notation Java Virtual Machine Relationales Datenbankmanagementsystem Structured Query Language Universally Unique Identifier KOS content 643 Abbildungsverzeichnis ARbb 1Cap Theorem zn en en erneuter 4 Abb 2 Beispiel f r ein Dokument AAA 5 Abb 3 single relational Graph EE 8 ADD 4 Property Graph rasen eier E ee 8 Abb 5 Column Families E a Eh 14 Abb 6 Super C lumns perae aa ee ale EAE es ERAEN 14 Abb 7 Consistent Hashing Verfahren AEN 20 Abb 8 Logische Architektur von Voldemort Av 21 KOS content 644 Tabellenverzeichnis Tab 1 Vor und Nachteile einer dokumentenorientierten Datenbank 6 Tab 2 Vor und Nachteile einer Grapbendatenbank nn 9 Tab 3 Darstellung Key Value Prinzip egenen Ee Eege eben ege 11 Tab 4 Vor und Nachteile einer keviVaue Datenbank en 12 Tab 5 Vor und Nachteile von Cassandra 25 Tab 6 Gegen berstellung der NoSQL Datenbankvertreter sssssrrrrrrrrrrrrrrrrrrrrrrrrrrrnna 27 Tab 7 Be
125. a to the server fields can be read via element value line seven the selected value of a SELECT field must be read by element selectedindex line five However within the JSON both can be saved the same way Line nine shows how to send data to the server using the liveform socket and the JSON data which includes one field s value This sendToServer fieldid function is called whenever the user changes the form meaning with every letter the user types or with every SELECT field the user changes lines 12 to 18 On the other hand it is for sure necessary to receive data on the client side and populate the form fields appropriately The code in Lst 20 demonstrates how this is realized Line one shows how to listen on a socket in this case iveform The for each loop starting at line three is just a simplified way to read the JSON which only has one data item because the name of the key used in that data item is unknown Again the distinction between INPUT and SELECT fields needs to be taken into account as explained above which is why the IF on line five reflects that issue Lines seven and 10 write the data received in the JSON into the form fields In case of the INPUT fields Summelnput BehaltInput and Beruflnput there is the possibility that the calculation of the insurance rate needs to be triggered using function f_req which is why lines 12 to 14 check for these INPUT fields Finally line 17 triggers the validation of th
126. abe der Suchergebnisse Die gefundenen Suchergebnisse m ssen dem Anwender in geeigneter Form ausgegeben werden Die hierbei bevorzugte Methode ist die Ausgabe ber ein Webinterface Das wohl bekannteste Webinterface f r eine Suche bietet Google Abb 3 Dort werden die Sucher gebnisse in Form von Links dargestellt Zus tzlich findet sich eine Vorschau in Textform so wie als graphische Darstellung der gefundenen Seite Auch lassen sich konkrete Kategorien und damit Dateiformate durchsuchen x gle antwiprse search engina BOS nn ai Deech Se tenna iter Sucmaprache in Enterprise Search WViopeda lt Enhapei Sua Enierprike Search Vibhpogda puta wy Unmrpn pise Sean Search Toots Enterprise Search Engines Inlormalion Gaz ami 10 of The Gest Enterprise Search cots vs Journal toot 8 Sette Gberpetz tout Etnterprise saath is practice Taeg Cor if omterpriqg type rauen auch an det zur Enterprise Search revert casy search for iteanets ami Abb 3 Webinterface von Google e Skalierbarkeit Die physikalische Hardware kann Uber mehrere Standorte verteilt sein Daher muss eine Anbindung mehrerer Hardware Ressourcen unterschiedlichster Art gew hrleistet sein Bei spiele f r Hardware Ressourcen sind in diesem Fall Server Clients Festplatten und Netz Laufwerke Damit kann gew hrleistet werden dass eine hohe Anzahl an Dokumenten ber viele verschiedene verteilte Ger te erreicht wird Dies wiederum tr gt zu
127. age verf gbar e keine Downloadm glichkeiten als PDF Datei o e knappe Dokumentation mit Codedarstellung Support Community und kosystem Stand Januar 2013 e Benutzerforum vorhanden e 7 549 Forumsthemen viele aktuelle Themen e 74 326 Aufrufe im Forum e Benutzer k nnen Fragen stellen erfahrene Be nutzer antworten e Kontakt ber Google Groups mit Benutzern und Entwicklern m glich e zudem Kontakt und gegenseitiger Austausch ber Facebook und Twitter e franz sische und chinesische Community verf g bar e Kontaktaufnahme ber IRC m glich BETTER Eee ce direkter Kontakt mit Benutzern via E Mail m glich 126 Vgl Elasticsearch o J e 127 Vgl Elasticsearch o J b 128 Vgl Elasticsearch o J f 129 Vgl Banon S o J 130 Vgl Elasticsearch o J g KOS content 494 48 e direkter Kontakt mit Entwicklern E Mail Twitter Forum Blog Facebook IRC m glich e Fragen an Entwickler wurden ad quat beantwor tet Vorhandensein von FAQ e kein klassisches FAQ e zahlreiche Hilfeseiten auf der offiziellen Homepa ge und Videos e Quellcode auf github com Anzahl der Stakeholder bekannte kommerzielle Nutzer laut Homepage e Mozilla Foundation e SoundCloud e StumbleUpon e Sony Computer Entertainment e Infochimps e Desk com e Ataxo Social Insider e Bazzarvoice e Klout e Sonian Inc e IGN e InSTEDD zw lf Nutzer aufgez hlt bekannte Sponsoren laut Homepa
128. and m glich K nnen bestehende Wiki Systeme eingebunden werden oder je nach Anforderung K nnen Features wie Internet Intranet Suche integriert werden Sollen verschl sselte Dokumente gefunden werden Wird die Datenanbindung funktionieren Welche Datenbanken unterst tzt die Software Welche Hardware Ressourcen werden ben tigt Investitionen n tig Wie k nnen Sicherheitsaspekte wie Nutzergruppen implementiert werden Rollenverteilung Ist die Software auf den gesch tzten traffic ausgelegt Ist das bestehende Software beinhaltende Interface ausreichend Wie kommen Mitarbeiter damit zurecht Wie viel Zeit muss ein nicht IT Mitarbeiter f r eine Suche aufwenden Muss eine eigene GUI programmiert werden KOS content 430 Wie gro wird der Wartungsaufwand sein Zeit Skills Kosten Ist das System auf die vorhandenen Datenmengen ausgelegt Ist das System skalierbar genug Welche zus tzlichen Anforderungen sind zu beachten Diese Auswahl an Fragen zeigt auf wie viele Aspekte vor und w hrend einer Integration in ein eigenes Netzwerk System beachtet werden m ssen Dennoch ist selbst nach r cksichts voller Untersuchung nicht auszuschlie en dass verschiedene Probleme bei einer Integration auftreten k nnen Zus tzlich kann den Versprechungen der Hersteller ihrer out of the box Funktionen nicht vertraut werden Nichtsdestotrotz ist gro e Sorgfalt bei einer Integration gefragt 5 1 Beispiel Integration von Swish e in ein Intr
129. anet Im Folgenden wird beispielhaft erkl rt wie eine Integration von Swish e in ein eigenes Netz m glich ist und welche Probleme dabei auftreten k nnen Das Beispiel ist einer Beschrei bung von Stefan Macke entnommen Die Integration wird f r ein Intranet erkl rt welches auf Open Suse 10 1 64Bit Server l uft Zun chst m ssen die Quellen von der Webseite geladen und entpackt werden Anschlie Bend muss wie beschrieben die Installation durchgef hrt werden Dies geschieht in der Kommandozeile mithilfe folgender Anweisungen configure make make check und make install Nach erfolgreicher Installation kann ein erster Test gestartet werden Befehl swish e v Nun erscheint die Meldung swish e error while loading shared libraries libswish e so 2 cannot open shared object file No such file or directory Problem hier ist dass das ben tigte Modul nicht in dem library include Pfad liegt Mit strace swish e kann berpr ft werden Gesucht wurde in diesem Beispiel unter usr lib64 und anderen Pfaden Leider lagen die Module allerdings unter dem Pfad usr local lib Nun muss der Pfad in die etc ld so conf eingetragen werden Anschlie end l sst man Idconfig laufen und das Problem sollte behoben sein Um nun einen ersten Test durchzuf hren wird in der Beschreibung empfohlen das Apache Manual zu indexieren Folgende Meldung erscheint Can t locate LWP RobotUA pm in INC Hier fehlt nun das Pe
130. anfragen wird kostrom verwendet Teilweise wird pro Suchan frage ein bestimmert Betrag gespendet 7 Bu kamp D 0 J http www dbus de eip kapitel01e html Stand 20 12 2012 KOS content 397 Bei den meisten Ecosia gr nen Suchma schinen laufen die Suchanfragen wei terhin ber die gro en Suchmaschinen wie z B Google Eine Vielzahl von Software Produkten sind auf dem Markt verf gbar Diese lassen sich aber in grundlegenden Punkten unterscheiden Zum einen gibt es Open Source Produkte die kostenlos erh ltlich sind Diese Variante ist meist sehr gut entwickelt da der Quellcode frei zug nglich ist und von jedem optimiert werden kann Ebenso besteht aber auch die M glich keit dass die Weiterentwicklung aufgrund geringen Finanzierungsm glichkeiten schleppend verl uft Der fehlende Support ist hierbei ebenfalls ein Nachteil Im Gegensatz dazu gibt es kommerzielle Software und Freeware Kommerzielle Software ist zwar kostenpflichtig aller dings ist professioneller Support vorhanden Freeware ist wie Open Source Produkte zwar kostenlos der Quellcode ist allerdings nicht frei verf gbar 2 5 Funktionsweise Suchmaschinen setzen sich im Allgemeinen aus drei Bestandteilen zusammen 1 Web Robot System Das Web Robot System oder auch h ufig Crawler genannt sucht aktiv im Internet neue Websites und Daten Dies ist die Basis f r die Datensammlung auf die sp ter die Suchmaschine zugreift und aus der die Ergeb
131. ank der Datenbankintegration ERP Systeme CRM Systeme Dokument Management Systeme sowie E Mails und andere webbasierte Dokumente durchsucht werden 7 Besonders interessant sind nachfolgende Funktionen von Solr e Echtzeitabfrage Realtime Get Dokumente lassen sich direkt nach der Indizierung aus der Solr Cloud abrufen Dadurch ent fallt eine explizite Suche 30 Vgl The Apache Software Foundation 2012b 31 Vgl Maas G 2012 KOS content 471 25 e Suche nahe an Echtzeit NearRealTime Mit der Commit Strategie softCommit k nnen neu hinzugef gte Dokumente ohne Latenz zeit gefunden werden Die bedeutet dass ein Dokument direkt nach der Indexierung f r Suchvorg nge zur Verf gung steht e Update Sicherheit Alle nderungen werden durch einen Transaction Log protokolliert Somit gehen Dokumen te bei denen noch keine Transaktion erfolgt ist nicht verloren e Automatisches Failover bei schreibenden oder lesenden Zugriffen Solr Ubernimmt die Funktion eines Server Wrappers der Uber eine XML over HTTP Schnittstelle die Funktionen der Java Bibliotheken von Lucene bereitstellt Hierbei bernimmt Solr die Rolle eines eigenst ndigen Suchservers Diese Eigenschaften von Solr sind insbe sondere in heterogenen Systemumgebungen bei denen Anwender von unterschiedlichen Programmiersprachen aus auf eine Suchmaschine zugreifen von Vorteil da Solr plattform bergreifend eingesetzt werden kann Mit der zugrund
132. apt get install ssh KOS content 634 36 Nach der Installation ist unter dem Benutzer hadoop ein passwortloser SSH Schl ssel anzu legen ssh keygen t rsa P Da sich bei diesem Beispiel DataNode und NameNode auf einer Maschine befinden ist der ffentliche Schl ssel in den Schl sselbund der autorisierten Schl ssel auf dieser Maschine einzuf gen cat home hadoop ssh id_rsa pub gt gt home hadoop ssh authorized keys Mit diesem Schritt w ren die Vorbereitungen abgeschlossen und das Hadoop Framework kann installiert werden Hadoop Framework Zun chst gilt es das Hadoop Framework von der Apache Foundation herunterzuladen Dabei ist darauf zu achten dass die aktuell als stable markierte Version verwendet wird In diesem Beispiel handelt es sich um die Version 1 0 4 die wie folgt mit dem Kommando wget auf die Festplatte gespeichert wird wget http mirror softaculous com apache hadoop core stable hadoop 1 0 4 tar gz Entpackt und installiert wird das heruntergeladene Archiv mit tar xvzf hadoop 1 0 4 tar gz sudo mv hadoop 1 0 4 usr local hadoop Die Rechte zur Bearbeitung und Ausf hrung der Dateien werden f r den Benutzer hadoop folgenderma en gesetzt sudo chown R hadoop hadoop usr local hadoop sudo chmod atw usr local hadoop Nach der Installation ist das System zu konfigurieren Alle Konfigurationsdateien des Ha doop Systems befinden sich im Verzeichnis usr local had
133. arch 3 4 1 Hintergrundinformationen HSearch ist eine auf Hadoop basierende unter Apache 2 0 lizensierte und von der Firma Bizosys entwickelte Echtzeitsuchmaschine Es handelt sich auch in diesem Fall um eine ver teilte Suchmaschine mit einer REST Architektur Unterst tzt werden strukturierte z B relati onale Datenbanken semi strukturierte z B Message Stores und Verzeichnisdienste und unstrukturierte Datenquellen z B Emails Daten aus sozialen Netzwerken Bilder und Videos Damit k nnen Produkte aus dem Bereich der Business Intelligence beispielswei se ERP oder CRM Systeme unternehmensinterne Anwendungen z B Content Manage ment Systeme oder E Mail Anwendungen und schemafreie Datenbest nde aus Social Media Anwendungen durchsucht werden Die aktuellste Version 0 94 vom 16 Februar 2012 ist mit neueren Windows und Unix Betriebssystemen kompatibel Die Suchmaschine verfolgt das Ziel 100 Milliarden Datens tze zu indexieren Der vollst ndi ge Index wird dabei in einer HBase Datenbank gespeichert Bei HBase handelt es sich um die NoSQL Datenbank von Hadoop HBase unterst tzt sehr gro e Datenmengen ist verteilt und frei skalierbar Hadoop ist die von der Apache Software Foundation entwickelte Software Bibliothek f r NOSQL Datenbanken Dabei handelt es sich um ein Java Framework f r ver teilte und skalierbare Anwendungen In Tab 9 sind die Basisinformationen zu HSearch dargestellt 47 gl Schwichtenberg H
134. arch search Anzahl der Stakeholder Anzahl der Downloads Traffic Rank SUMME 100 Tab 3 Matrix zur Bewertung der Marktakzeptanz von Open Source Projekten Stellt man den Zusammenhang zwischen Reifegrad und Marktakzeptanz grafisch dar sieht die Vier Felder Matrix wie folgt aus Abb 2 hoch Question Marks Stars o d PE EEE EEE 8 P Poor Dogs Shooting Stars niedrig hoch Marktakzeptanz Abb 2 Vier Felder Matrix f r die Bewertung von Open Source Projekten Als Question Marks k nnen hier diejenigen Projekte aufgez hlt werden die zwar als reif gelten jedoch noch keine gro e Verbreitung genie en Aufgrund der geringen Akzeptanz ist die Zukunft dieser Projekte ungewiss Besonders erfolgreiche und fortgeschrittene Projekte fallen in den Bereich Stars Das Gegenst ck dazu bilden Projekte die noch unausgereift sind und kaum Anwender gefunden haben Diese gelten als Poor Dogs und sind f r den Einsatz im Unternehmen zu meiden Das Feld der Cash Cows belegen solche Projekte die trotz ihres geringen Reifegrads breite Zustimmung erfahren und vielfach von Unternehmen KOS content 456 10 eingesetzt werden Diese Kategorie ist dann vorstellbar wenn ein Projekt Produkte entwi ckelt f r die es bisher keine vergleichbaren Alternativprodukte anderer Anbieter gibt und diese deshalb schnell an Popularit t gewinnen Ein treffenderer Name f r dieses Feld w re dah
135. arkeit Leistungssteigerung bei mehreren Knoten horizontale Skalierung einfaches Hinzuf gen und Abnehmen von Knoten Bootstrapping automatisches Sharding horizontale Skalierung dom nenspezifisch horizontales Sharding http apache cassandra org http www datastax com dow nload http www mongodb org www project voldemort com Support Online Community Support DataStax Community kommerzieller Support ber nicht verf obar Online Community Support Kommerzieller Support durch 10gen g Forum Drittanbieter Webadresse http neo4j org Tab 6 Gegenuberstellung der NoSQL Datenbankvertreter KOS content 672 28 4 Prototypen 4 1 MongoDB F r die Installation von MongoDB stellt das Unternehmens 10gen unterschiedliche Down loadvarianten f r die Betriebssysteme Windows Mac OS X oder Linux bereit F r die Semi nararbeit ist die Wahl auf das Betriebssystem Windows gefallen Eine bersichtliche Installa tionsanleitung f r dieses Betriebssystem befindet sich auf der Internetseite http www mongodb org display DOCSDE Quickstart Windows Die Installation von MongoDB auf einem 32 Bit Windows Betriebssystem kann durch die folgende Schritte realisiert werden e Download der Windows 32 Bit Variante des Production Release Recommended e Datei in einen selbsterstellten Ordner im Verzeichnis C entpacken e Erstellung eines Dateiverzeichnisses unter C data db mit Hilfe des Wind
136. aschinen Die Informationsvielfalt im Unternehmen unterliegt einem stetigen Wachstum Es werden t glich neue Daten erg nzt Ohne den genaueren Inhalt dieser Dateien zu definieren findet man haupts chlich Bilder Videos oder Textdateien Meist sind diese mit abstrusen Synony men betitelt und machen es dem Sucher schwer das Richtige zu ermitteln Akribisch histo risierte Daten sollen jedoch nicht zur Verzweiflung f hren vielmehr sollten Sie den Nutzer dabei unterst tzen sich gezielter ber einen Sachverhalt zu informieren Im Zuge des Know ledge Managements Wissensdatenbanken k nnen Neueinsteiger gleicherma en aber auch langj hrige Mitarbeiter ihr Wissen teilen und sich gegenseitig bereichern Oftmals wer den solche Wissensdatenbanken um die bersicht zu wahren abteilungsbezogen ange legt Daraus resultiert ein sehr n tzliches jedoch gleicherma en un bersichtliches Daten wirrwarr W rde man alle Datenquellen nun auf einen Quelldatentr ger zusammenf hren w rde dies einen erheblichen Arbeitsaufwand zu Folge haben Dieser Arbeitsaufwand kann vermieden werden indem man sich einer Suchmaschine bedient welche alle separierten Datenquellen durchl uft und dann ein gew nschtes Endergebnis liefert Der Einsatz von Meta Suchmaschinen im Unternehmensbereich bringt insbesondere die nachfolgenden Vorz ge mit sich e Mitarbeiterwissen effizienter nutzen Wissen ist ein wichtiges Gut in einem Unternehmen und es wird t
137. asses request response objects Loop as JavaScript closures to worker AE single thread functions with callbacks Mi Long running jobs N To run on worker threads Non blocking Worker internal C threadpool Fig 5 Processing Node js Node js s large performance benefits are caused by the use of Google s new JavaScript en gine V8 which naturally ships with the web browser Chrome and is used for Node js too Due to the fact that V8 compiles JavaScript into real machine code before executing it Node js has an advantage over traditional techniques such as executing bytecode or interpreting it 39 Node js by default provides core modules that are packed in its binary to help access files on the file system create HTTP and TCP UDP servers and to perform other useful functions 37 Cf Teixeira P 2013 p 16 38 Stannard A 2011 39 See https developers google com v8 intro 40 See http nodejs org api modules html modules_core_modules KOS content 541 11 The latest version of the Node js environment can be installed from a GitHub repository Even though the core modules are sophisticated enough to write complex applications Node js is not complex itself The node package manager however provides 21 104 packaged modules as of January 18 201342 which enable the developer to leverage a variety of pre defined complex functionalities Since Node js version 0 6 3 the package manager npm is deploy
138. ation World Wide Fund for Nature GNU s Not Unix General Public License User Datagram Protocol Transmission Control Protocol Personal Computer Peer to Peer Extensible Markup Language Hypertext Markup Language Mozilla Public License Text REtrieval Conference Hypertext Transfer Protocol Unicode Transformation Format Java Servlet Pages Java Runtime Environment Java Development Kit Random Access Memory Application Programming Interface Representational State Transfer Comma separated Values Not Only Structured Query Language KOS content 390 Abbildungsverzeichnis Abbildung 1 Marktanteile der Suchmaschinen in den USA 2007 bis 2011 3 Abbildung 2 Marktanteil nach Nutzung in Deutschland 4 Abbildung 3 Funktionsweise von Suchmaschinen nn 8 Abbildung 4 Startseite der Suchmaske von Ecosia nennen 13 Abbildung 5 Yacy Suchmaske bei Ausgabe eines Suchbegriffs nn 17 Abbildung 6 Link Topologie der Yacy Nutzerbeers nn 19 Abbildung 7 Suchmaske der Suchmaschine Gwieb e nn nnnnnnnnnnnnnnnn 21 Abbildung 8 Listing 1 Konfiguration nenn 23 Abbildung 9 Web Suchmaske bzw customized Version der Suchmaschine Terrier 25 Abbildung 10 Indizierung und Suche in Lucene ENEE 29 Abbildung 11 Screenshot einer Guchamtrage nenn 33 Abbildung 12 Architektur und Komponenten von SGolr 35 Abbildung 13 Zusammenhang zwischen Funktionalit ten und Programmierkenntnissen 43 KOS content 391 1 Einleitung Die anon
139. ation 2012a KOS content 481 35 e LIMO Lucene Index Monitor e Tika Unterst tzung unterschiedlicher Dokument typen e Nutch Java Framework f r Suchmaschinen e Bobo Bibliothek zur Facettensuche Releaseabstande e Lucene 3 4 September 2011 e Lucene 3 5 November 2011 e Lucene 3 6 April 2012 e Lucene 3 6 1 Juli 2012 e Lucene 4 0 Oktober 2012 e Lucene 3 6 2 Dezember 2012 im Durchschnitt wird alle 2 5 Monate ein Update fur Lucene ver ffentlicht Dokumentation Benutzerhandbuch vorhanden e Hauptdokumentation im Lucene Wiki e Release Dokumentaion e Tutorials inklusive Videos vorhanden Sprache der Dokumentation ausschlieBlich englisch Qualitat der Dokumentation e ausf hrliche und umfangreiche Dokumentation inklusive beispielhaftem Quellcode im Wiki e Tutorials mit knappen Erkl rungen und Quellcode e keine Downloadm glichkeiten als PDF Datei o Support Community und kosystem Stand Januar 2013 e es gibt ein eigenes Lucene Forum e 3 464 User sind dort angemeldet e 98 619 Themen wurden in diesem Forum erstellt e auf die meisten Fragen wird relativ schnell ge antwortet 61 Vgl Rowe S u a 2011 62 Vgl The Apache Software Foundation 2012e 63 Vgl The Apache Software Foundation 2012f 64 Vgl The Apache Software Foundation 2012g 65 Vgl o V o J b KOS content 482 36 direkter Ansprechpartner e Mailing List mit E Mail Adressen von Entwick
140. ava Virtual Machine auf dem Operativsystem abh ngt Die Sharding Begrenzung beschr nkt die automatisierba re Partitionierung eines Graphen wenn alle Leistungsmerkmale des unpartitionierten Gra phen beibehalten werden sollen 7 Vgl Edlich S u a 2010 S 194 KOS content 663 19 3 3 Voldemort Dieses Key Value Datenbanksystem wurde von der Web Firma Linkedin entwickelt und geh rt auch zu dieser Die grundlegenden Konzepte des Systems wurden von Amazons Dynamo bernommen Aufbau und Datenmodell Ein Voldemort Cluster kann mehrere Tabellen sogenannte Stores enthalten Vereinfacht hei t dies dass hinter dem System eine verteilte Hash Tabelle steckt F r Key und Value der einzelnen Tabellen k nnen verschiedene Datentypen verwendet werden jedoch muss dieser f r jeden Store fest eingestellt werden Grunds tzlich ist der Datentyp frei w hlbar jedoch bietet Voldemort im Moment nur eine Implementierung der Serialisierung f r folgende Typen e json JavaScript Object Notation ist ein Datenaustauschformat welches schon auf der Struktur von Name Wert Paaren aufbaut e String e java Object e protobuf Protocol buffers ist ein Datenformat von Google zur Serialisierung e thrift ist ein weiteres Datenformat zur Serialisierung e avro generic avro specific avro reflective ist ein Datenserialisierungssystem e identity pure Bytes Replikation und Skalierung Voldemort ist f r e
141. because client side asynchronous calls are beyond the scope of this paper 78 Cf Nemati H R Yang L 2011 77 See http www openssl org 78 Cf Riordan R M 2008 p 46 79 Cf ibid p 21 8 Cf w a w y KOS content 552 d OO E ob A ES Gab 22 ajax url testurl type POST contentType application json charset utf 8 data testkey testvalue success function response success actions the response object contains the information sent from the server alert Everything worked out Lst 5 Exemplary jQuery AJAX call 4 2 3 WebSockets Moreover a key technology to allow for real time communication that is leveraged in the Proof of Concept is the WebSocket Protocol The WebSocket Protocol is standardized by the Inter net Engineering Task Force IETF in Request for Comments RFC 645581 The WebSocket Protocol enables two way communication between a client running untrusted code in a con trolled environment to a remote host that has opted in to communications from that code 87 The protocol consists of two parts a handshake and the data transfer where the handshake is compatible with the HTTP based server side software and intermediaries The data trans fer can start as soon as server and client both have sent their handshakes and the actual handshake was successful Each side can then send data independently from each other ina two way
142. bility problems although less than 10LinkedIn therefore wanted to implement an event driven model and tested and evaluated three possible candidates Rails Event Machine Python Twisted and Node js Node js was identified as the best solution for following benefits Better performance running up to 20x faster in certain scenarios and lower memory overhead than other tested options e Programmers could make use of their JavaScript skills Frontend JavaScript and backend mobile teams could be merged into a single unit e Servers were cut from 30 to 3 leaving room to handle 10x current levels of resource utilization 145 Cf Avram A 2012 146 Cf O Dell J 2011a 147 Cf Avram A 2012 KOS content 581 51 Appendix 5 Case Study AIRCODE The following information are taken from the website of AIRCODE 4 AIRCODE has imple mented an application providing real time news and visitor s geolocation to the visitors of their website The application is implemented in Node js and aims to reveal the ability of Node js of event driven notification in real time i e in this specific case to deliver web pages with real time news based on live occurring events in six countries of the world This is accomplished by providing the user with news from six countries at the same time news being published in the moment the user receives them The idea is to show that different news can be delivered at the same time whi
143. binden http docs neo4j org chunked milestone tutorial s java embedded setup html Abruf 04 01 2013 Design http www project voldemort com voldemort design html Abruf 05 12 2012 Cassandra Installation on Windows 7 http support qualityunit com 249500 Cassandra installation on Windows 7 Abruf 03 01 2013 The Graph Traversal Programming Pattern http markorodriguez com lectures Abruf 05 12 2012 SPARQL entblattert Datenpakete im Semantic Web http www silicon de 39161540 sparaql entblaettert datenpakete im semantic web Abruf 17 12 2012 NoSQL Jenseits der relationalen Datenban ken http www pro linux de artikel 2 1455 3 einleitung html Abruf 28 11 2012 KOS content 692 solid IT Hrsg 2012 sones GmbH o Ji 10gen Inc 2012a 10gen Inc 2012b Walker Morgan D 2010 WorldPress com 2009 48 Vergleich MySQL und Neo4j http db engines com de system MySQL 3BNeo4j Abruf 04 01 2013 sones GmbH Unternehmensbrosch re http www sones de c document_library get_file uuid 92e25daa c8be 46c8 99cf 2603aca0cabb amp groupld 11476 Abruf 05 12 2012 MongoDB Quickstart Windows http www mongodb org display DOCSDE Quic kstart Windows Abruf 09 01 2013 Admin Uls http www mongodb org display DOCS Admin Uls Abruf 17 01 2013 NoSQL im Uberblick http www heise de open artikel NoSQL im Ueberblick 1012483 html Abruf 29 11 2012 Voldemort Installation to Fi
144. buy com e Apple e MTV e CISCO und mehr als 250 weitere Sponsoren der Apache Software Foundation u a e Google e Microsoft e HP e AMD e Citrix e IBM und ca 40 andere Unternehmen und Einzelpersonen Anzahl der Downloads keine Informationen vorhanden Traffic Rank Stand Januar 2013 Traffic Rank von apache org gesamte Apache Stiftung e Weltweit 1 353 e Deutschland 1 852 Traffic Rank von http lucene apache org solr nicht fest stellbar Tab 12 Bewertung des Solr Projekts 103 Vgl Worral P 2012 104 Vol The Apache Software Foundation 2012m 105 Vgl Alexa Internet Inc 2013a KOS content 489 43 Als n chstes wird der Fokus auf Solr selbst als Suchmaschine gelegt Tab 13 Kriterium Beurteilung grunds tzliche Funktionen Codierung u Sprachunter stiitzung Solr unterst tzt die deutschen Sonderzeichen UTF 8 106 Crawler 107 Webcrawler Uber Apache Nutch realisier uber das Toolkit Apache Tika lassen sich diverse Datei en indexieren e Office Document Format e PDF e HTML XML Dateiunterst tzung e OpenDocument Format e Rich Text Format e Audioformate MP3 MIDI e Videoformate Flash e Bildformate JPEG e JAVA Klassen Dateien Cloud Unterst tzung Cloud Unterst tzung out of the box Suchalgorithmus Volltextsuche Volltextsuche unterst tzt e Auto Vervollstandigung e Solr Facetting EEN e
145. calculates the fee based on the forms data x The result is sent back via the event bus private Handler lt Message lt JsonObject gt gt calculationHandler new Handler lt Message lt JsonObject gt gt public void handle Message lt JsonObject gt message InsuranceForm form new InsuranceForm message body JsonObject fee new JsonObject fee putNumber price form getInsuranceFee message reply fee N Override public void start throws Exception final EventBus eBus vertx eventBus eBus registerHandler form calculate calculationHandler Lst 25 Vert x worker verticle that receives the message sent by the form handler The implementation of the communication between the web server and the worker verticle was rather easy by using the event bus The event bus has a very simple adressing mechanism where the address consists of a normal string Listing 24 shows the form handler which is defined in the web server verticle and gets called whenever a form submission arrives The handler registers another handler that is called as soon as the entire request body has arrived line 7 The data that arrives as a buffer is than turned into a JSON Object line 10 and submitted to the event bus line 12 KOS content 560 OD JO Om P Go 30 As soon as a reply is returned over the event bus it is forwarded to the client line 16 Lst 25 shows the worker verticle that receives the message does
146. cast s clustering functionality inter nally to scale on multiple machines vertx run server js cluster cluster port 22000 Lst 31 Starting a Vert x application in cluster mode Listing 31 shows how a Vert x cluster can be set up on a network with the default configura tion The cluster port argument specifies on which port distributed instances will communicate with each other and defaults to 25500 when omitted Each instance that is started in cluster mode will have access to a distributed event bus Implementation details on the cluster in ternals can be found in the Hazelcast documentation on the projects website Up to now for Node js there is no known way of distributing workloads among different servers however that wish was addressed 9 General ways of distributing workload among distributed machines One possible proce dure is to deploy an application multiple times and to use an additional external load balancer that distributes incoming requests among all running deployments This has some implications Due to the isolation in separate processes application instances cannot share any data or com municate directly with each other Furthermore data might be stored in a physically separated database like CouchDB or in a key value store like Redis This database could then po 115 Cf w a 2012d 116 Cf Joyent Inc 2012b 117 See http www hazelcast com 118 Cf w a 2012d
147. ch Results for http www hadoopsearch net http www alexa com search q http 3A 2 F 2Fwww hadoopsearch net 2F amp r home home amp p bigtop Abruf 18 01 2013 ElasticSearch Users http elasticsearch users 115913 n3 nabble com Abruf 18 01 2013 Welcome to HSearchl http bizosyshsearch sourceforge net Abruf 18 12 2012 HSearch Data Sheet http www hadoopsearch net hsearchdatash eet pdf Abruf 05 01 2013 HSearch http www hadoopsearch net Ab ruf 18 12 2012 Enterprise Search SOLR http www comundus com export sites defau It downloads opencms Flyer_SOLR_Liferay pdf Abruf 18 01 2013 Solr f r TYPO3 Features http www typo3 solr com de solr fuer typo3 feature liste c655 Abruf 18 01 2013 elasticsearch http www elasticsearch org Abruf 02 12 2012 blog http www elasticsearch org blog Ab ruf 18 01 2013 0 20 2 http www elasticsearch org download 201 2 12 27 0 20 2 html Abruf 18 01 2013 Plugins http www elasticsearch org guide reference modules plugins html Abruf 18 01 2013 Modules http www elasticsearch org guide reference modules Abruf 18 01 2013 Guide http www elasticsearch org guide Abruf 18 01 2013 community http www elasticsearch org community Abruf 18 01 2013 KOS content 518 Elasticsearch o J h Elasticsearch o J i Elasticsearch o J j Elasticsearch o J k GitHub Inc 2013 H lsb mer S 2011 Innovent
148. ch makes use of Node js s strength of the underlying event driven model Node js fetches the news feeds and distributes them to every current visitor in real time When new visitors connect to the web site all other visitors will be notified with the others position For this Node js uses the broadcast function from the socket io module 148 See aircode co KOS content 582 52 Appendix 6 Case Study Etherpad On 22 August 2011 the Etherpad Lite that is implemented with Node js was released 49 Etherpad is an Open Source online editor providing collaborative editing of documents in real time The original Etherpad had the following main problems Resource utilization the JVM that Etherpad was based on consumed 1 2 GB RAM during normal operation time Be sides memory leaks infinite loops constantly high server loads and server outages were other severe problems Peter Martischka an Etherpad developer migrated the entire application from Rhino to Node js It was a successful act Node js solved many problems in terms of performance and resource utilization 149 Cf Martischka P 2011 150 See http www etherpad org 151 Cf Martischka P 2011 KOS content 583 53 Appendix 7 Case Study Clock a UK web agency The following information are taken from an online article on VentureBeat and are based on the statements by Paul Serby Chief Technology Officer of Clock Clock is a web age
149. ch weitere Komponenten erg nzt werden Diese erf llen die unterschied lichsten Funktionen darunter die bertragung Abfrage Darstellung und Aggregation von Daten sowie deren Auswertung im Data Warehouse Prinzip DWH Im Folgenden werden einige dieser erg nzenden Systeme vorgestellt und ihre Funktionsweise sowie ihr Anwen dungsbereich n her beschrieben 5 1 Spaltenorientierte Datenbank HBase Spaltenorientierte Datenbanken 7 In einem relationalen Datenbanksystem DBS sind die Daten als Datens tze in Tabellen mit Reihen und Spalten dargestellt und werden zeilenweise abgefragt Relationale DBS eignen sich hiermit gut f r Abfragen in die viele Attribute mit einbezogen jedoch nur wenige Ergeb niszeilen erwartet werden In einer spaltenorientierten Datenbank DB hingegen werden die Attribute jeweils in eigenen kleinen Tabellen gespeichert Somit k nnen Abfragen die wenige oder nur ein Attribut mit einbeziehen aber viele Datensatzzeilen zur ckliefern sollen effizienter durchgef hrt werden Hier ein Beispiel einer Datentabelle wie sie in einem relationalen DBS und in einer spalten orientierten DB aussehen kann Empld Lastname Firstname Salary 1 Schmidt Martin 45000 2 Hahn Maria 51000 3 Johann Kathrin 42000 Das DBS muss technisch bedingt die Daten aus den Tabellen in Reihen von Strings auf die Festplatte schreiben Diese Strings sehen bei einem relationalen DBS welches Datensatz weise speichert wie folgt aus
150. chieden Ersterer bernimmt die Clusterverwaltung und koordiniert Ver nderungen wie zum Beispiel nderungen bei der Anzahl der Nodes oder Indizes und einer damit verbunde nen Verschiebung von Shards Nichtverwaltende Instanzen hei en Slaves Bei einem Ausfall 42 Vgl Karich P 2012 S 68 43 Vgl Elasticsearch o J a KOS content 475 29 eines Masters Nodes springt einer der Slave Nodes ein Die Rollenverteilung kann jederzeit manuell ver ndert werden Im Folgenden wird ein Beispiel f r die Indexierung Replikation und Lastverteilung grafisch dargestellt Schritt 1 Abb 8 Client und Node starten auf Node Erstellung eines Index mit 2 Shards S1 und S2 und einer Replikation f r die Replikation wird ein zweiter Node ben tigt Abb 8 Elasticsearch Indexierung und Indexreplikation Schritt 1 Schritt 2 Abb 9 zweiter Node wird gestartet auf zweitem Node findet die Replikation der Shards B1 und B2 automatisch statt Abb 9 Elasticsearch Indexierung und Indexreplikation Schritt 2 zZ O N 44 Vgl Karich P 2012 S 70 45 Vgl Elasticsearch o J a KOS content 476 30 Schritt 3 Abb 10 dritter Node wird gestartet Shards verteilen sich gleichm ig auf den Nodes hier Node 2 und Node 3 teilen sich die Shards Giet Abb 10 Elasticsearch Indexierung und Indexreplikation Schritt 3 Schritt 4 Abb 11 vierter Node wird gestartet Lastv
151. chnologies 2010 o V 2011 o V 2013 o V 2013 Paschke T 2013 o V 2009 o V 2013 Elasticsearch you know for search http www elasticsearch org Abruf 02 01 2013 Solr vs ElasticSearch http stackoverflow com questions 10213009 solr vs elasticsearch Abruf 26 12 2012 Apache Solr http lucene apache org solr Abruf 27 12 2012 Overview of Searching in Solr http lucidworks lucidimagination com display solr Overvi ew of Searching in Solr Abruf 19 12 2012 Solr der Suchserver http it republik de jaxenter artikel Solr der Suchserver 2176 html Abruf 28 12 2012 Welcome to Hsearch http bizosyshsearch sourceforge net Abruf 28 12 2012 HSearch Data Sheet http www hadoopsearch net hsearchdatasheet pdf Abruf 29 12 2012 Start up Profile HSearch Bizosys Technologies http yourstory in 201 1 06 start up profile hsearch bizosys technologies Abruf 29 12 2012 FAQ auf der Herstellerseite Ecosia http ecosia org faq php 39 Abruf 09 01 2013 Ecosia http de wikipedia org wiki Ecosia Kritik Abruf 09 01 2013 Blog Eintrag zu Ecosia http abenteuerdenken blogspot de 2010 06 ecosia vision oder betrug html Abruf 09 01 2013 Blog Eintrag zu Ecosia http zeitblick wordpress com 2009 12 12 ecosia org rettung oder schwindel Abruf 09 01 2013 Yacy homepage http yacy net de Abruf 08 01 2013 KOS content 440 o V 2013 o V 20
152. communication channel 4 3 Software implementation 4 3 1 Node js The Node js implementation starts with four modules that are required to run the application as shown in Lst 6 var express require express var http require http var https require https var fs require fs Lst 6 Including modules The HTTP and HTTPS modules are necessary to set up the web servers accordingly In addition the fs FileSystem module is necessary to read the encryption keys for HTTPS The web framework Express offers complementary functionality for a web server like routing 81 Cf Fette 1 Melnikov A 2011 2 ibid 83 Cf ibid 84 See http nodejs org api fs html KOS content 553 ROD OO E GO 23 and will therefore be used for convenience purposes in this PoC as recommended by Roden G 2012 Express can be installed using the command line command shown in Lst 7 npm install express Lst 7 Installing Express via command line In order to enable HTTPS by leveraging the Node js class https Server the privatekey pem and certificate pen files need to be read and their content can be written into the httpsOptions array by using the FileSystem module and its function readFileSync The files in Lst 8 are located in the same location as the application file var httpsOptions key fs readFileSync _ dirname privat
153. d Vert x which will be introduced in the next section Name Twisted EventMachine Node js Vert x Language s Python Ruby JavaScript JavaScript Java Python Groovy Ruby Coffeescript Description Twisted is an event driven networking engine written in Python and licensed under the open source MIT license 7 Twisted is a mature framework with a large number of sup ported networking protocols Its development is backed by an active community 18 EventMachine is a library for Ruby C and Java programs It provides event driven I O using the Reactor pattern 9 Node js is based on Chrome s JavaScript runtime V8 The platform is fully event driven and offers core functionalities for network programming Its functionality can be extended with a large number of modules using an integrated package man agement system Node js started development in 2009 and the community is growing since hat H A JVM based platform for network applications which is in spired by Node js Vert x comes with its own event bus sys tem that allows distributing applications among multiple net work nodes Support for the languages Scala and Clojure is scheduled for future releases 2 Table 1 Existing asynchronous programming frameworks 15 See http stackoverflow com 16 Cf O Grady S 2012 17 Cf w a 2012c 18 Cf Fettig A 2005 p 12 19 Klishin M 2012 20 Cf O Dell J 2011b 2
154. d by the child process module That module 101 See https groups google com forum forum vertx 102 Cf Fox T Daryl T et al 2013 103 Cf Fox T Teo D et al 2013 KOS content 564 D JO Om P Go 34 require child_process spawn spawn 1s 1Ih usr var spawn Is Is stdout on data function data console log stdout data II Is stderr on data function data console log stderr data II Is on exit function code console log child process exited with code code II Lst 27 Example of running Is Ih usr in Node js capturing stdout stderr and the exit code is basically a wrapper around the unix tool popen and provides access to a child process communication streams stdin stdout stderr 0 There are two cases child processes are used for First CPU intensive tasks can be performed outside Node js by assigning them to a different process which is then called a child process in order not to block the event loop The output data from the child process is then sent back to the parent process In this case the child process is used to outsource a task that requires high computation work and would otherwise block the event loop This approach however requires routines running within the child process to be written in JavaScript as well so that this is not usable to properly connect an ex
155. d languages in a public reposi tory Vert x is open source and licensed under the Apache Software License 2 0 so that comme cial redistribution in closed source projects should not be an issue At present the project is owned by VMware but it is likely that it will be transferred to an Open Source foundation see section 5 1 2 Cf w a 2012d 48 Cf w a 2012e 49 Cf Fox T Yates T et al 2012 5 Cf Fox T 2013a 51 See http www apache org licenses LICENSE 2 0 html KOS content 544 14 3 Areas of Application 3 1 Use Cases The non blocking nature of asynchronous calls is important in alltypes of applications that need to handle a large number of requests Its event driven model also makes it a good choice for most types of real time processing A fairly obvious fit is given for I O bound applications as the single threaded asynchronous processing does not wait for I O streams to finish but instead uses callbacks to come back to the processing part as soon as the I O has finished The single threaded nature of event loops allows to make efficient use of the thread as long as callback functions don t take up too much time This makes asynchronous server applications a good fit for most types of networked applications that either tend to keep many inactive connections or need to handle many concurrent short lived connections A few possible use cases are described in the list below Furthermore case s
156. d up immediately by faster I O e g using a Solid State Drive instead of a normal hard disk CPU bound applications CPU bound or compute bound refers to operations that cause high CPU workload like compiling code spell checking grammar checking transcoding audio or video data They are usually executed in several threads in order to not block one thread and have all users waiting for this thread The program could be sped up immediately by better CPU performance 2 1 2 Single Multithreading and Event driven Development In multithreaded applications several threads can run simultaneously within one process Sev eral threads can access shared memory concurrently which can cause inconsistent states This can be avoided by synchronizing threads e g with locks This means that programmers need to take into account every possible execution order to effectively avoid program defects such as data races and deadlocks This can be time consuming and potentially results in error prone code Event driven programming uses an event loop which is a single thread that is running inside the main process The loop constantly checks for new events When an event is detected the loop invokes the corresponding callback function The callback is processed in the same thread which means that there is at most one callback running at a time The event loop continues when the callback has completed As a result the developer does not need to take care
157. de Abbildung zeigt die in Solr enthaltenen Komponenten und die generelle Architektur Man erkennt dass Solr die Indizierung von Lucene mit weiteren Funktionen wie z B Highlighting erganzt Highlighting bedeutet dass in den Ergebnissen einer Suche die Worter nach denen gesucht wurde hervorgehoben werden Fondermann B 2009 http it republik de jaxenter artikel Solr der Suchserver 2176 html Stand 28 12 2012 a Vgl Sitaula S 2012 http blog cloudera com blog 2012 01 hadoop for archiving email part 2 Stand 20 01 2013 KOS content 426 Die request handlers bearbeiten wie der Name schon sagt die Suchanfragen und die response writers bearbeiten die Suchergebnisse nach den konfigurierten Anforderungen wie z B Sortierung nach Relevanz Bei der Replikation also bei der mehrfachen Speicherung von Daten an verschiedenen Or ten und deren Synchronisation arbeitet Solr nach dem sogenannten Master Slave Prinzip Das bedeutet es wird eine Master Kopie erstellt und weitere davon abh ngige Replikate die sogenannten Slaves Zus tzlich erm glicht Solr die Aufteilung des Indexes in Shards um zu lange Indexe zu ver hindern Das ist besonders bei einer Vielzahl an indexierten Dokumenten von Vorteil da mehrere k rzere Indexe schneller durchsucht werden k nnen als ein Gro er 4 8 4 Fazit Solr ist einfach zu installieren und setzt ein installiertes Java sowie einige Programmier kenntnisse voraus Es besitzt alle Vorte
158. de js style and structure http caolanmcmahon com posts nodejs _ style and _ structure retrieval 01 19 2013 Hummingbird Project Website http hummingbirdstats com retrieval 01 16 2013 KOS content 592 O Dell J 2011a O Dell J 2011b O Dell J 2012 O Grady S 2012 Opa Team w y piscisaureus 2011 Schmidt G et al w y a Schmidt G et al w y b Semerau R 2011 Serby P 2012 Stannard A 2011 Swartz A 2005 62 Exclusive How LinkedIn used Node js and HTML5 to build a better faster app http venturebeat com 2011 08 16 linkedin node retrieval 01 19 2013 Why Everyone Is Talking About Node http mashable com 2011 03 10 node js retrieval 01 09 2013 Node at scale What Google Mozilla amp Yahoo are doing with Node js http venturebeat com 2012 01 24 node at google mozilla yahoo retrieval 01 18 2013 The RedMonk Programming Language Rankings September 2012 http redmonk com sogrady 2012 09 12 language rankings 9 12 retrieval 01 18 2013 Opa example http opalang org retrieval 01 22 2013 npm is now part of Node js http blog nodejs org 201 1 11 25 node v0 6 3 retrieval 01 22 2013 Documentation Meteor http docs meteor com re trieval 01 18 2013 Leaderboard example http meteor com examples leaderboard retrieval 01 15 2013 Node js is good for solving problems don t have http xque
159. de js in particular Node js makes strong use of JSON as a data format and does not support XML Node js should hence not be used in an environment that communicates in data formats like XML This leads to the simple conclusion that migrating from legacy applications to asynchronous server applications can neither be justified by the benefits that asynchronous technologies can offer nor by the hype around these frameworks alone The true indicator should be whether or not it is the best suited technology for the application area in the given enerprise context 74 Cf Nguyen D 2012 p 15 75 Cf Roden G 2012 p 15 KOS content 549 19 4 Exemplary Implementations A simple web form application has been implemented in both Node js and Vert x to further analyze non functional requirements and collect practical experience with these frameworks These implementations are thoroughly described in the following sections 4 1 Software Description The exemplary implementation consists of a web service that can be used to calculate the expected fee for an insurance The idea behind this application is that two clients can col laborate during the form entry process before submitting all values for the fee calculation to the server However this application should only serve as a demonstration of the used asyn chronous frameworks and is hence very simplified Functionalities that are included are usual POST requests as well as real t
160. dexkon figuration ber cksichtigt gen gend Shards und Replizierung zu erm glichen An sonsten bringt zus tzliche Rechenleistung keinen Mehrwert e Tutorials Guides und andere Lehr und Informationsmaterialien sind vorwiegend nicht in deutscher Sprache verf gbar e In der Vergangenheit gab es nur einen Hauptentwickler Allerdings wurde dieses Problem bereits dadurch abgeschwacht dass mittlerweile durch die Firma ElasticSe arch mehrere Entwickler daran arbeiten 4 7 3 Funktionsweise und Aufbau Wenn Dokumente der Suchmaschine Ubergeben werden erstellt Apache Lucene auf das ElasticSearch aufsetzt einen invertierten Index Dies wird mit JSON ber HTTP durchge f hrt Dabei verweisen Token Felder mit Typ String Worter auf diejenigen Dokumente in denen sie vorkommen und speichern gegebenenfalls noch Metadaten wie z B Positionen ab Beim Indexieren wird immer die Dokument ID der Typ und der Index angegeben nicht existierende Komponenten werden dabei automatisch von ElasticSearch erzeugt Die eigentliche Suche kann durch einen Lucene basierenden Query String oder durch eine JSON basierende Query DSL erfolgen 4 7 4 Fazit Die umfangreichen Tutorials und Guides auf der Startseite von ElasticSearch erm glichen eine schnelle Installation und einen einfachen Einstieg An der Weiterentwicklung und dem kontinuierlichen Ausbau der Dokumentation wird aktiv gearbeitet Als Weiterentwicklung von Apache Lucene bietet ElasticSearch umfa
161. die ihrer seits durch die Aufnahme vieler Knoten in ein Cluster realisiert wird Damit einher geht eine hohe Verf gbarkeit bei eingeschr nkter das hei t zu einem bestimmten Zeitpunkt erreichter Datenkonsistenz eventual consistency Aufbau und Datenmodell Die erste zu definierende Datenstruktur ist wie im Punkt 2 2 schon erw hnt der Keyspace oder auch Table welcher zumeist einer bestimmten Anwendung zugeordnet ist Zu jedem Keyspace k nnen Column Families deklariert werden was jedoch vor An wendungsstart passieren muss und somit den nicht dynamischen Teil der Schemaverwal tung unter Cassandra darstellt Die Column Families beschreiben hierbei in etwa die Pen dants zu den wichtigsten Tabellen innerhalb eines SQL DBMS Die Keyspaces und die Column Families werden in der Datei storage conf xml eingetragen und gespeichert Diese Datei wird beim Start von Cassandra eingelesen Die eigentlichen Datenstrukturen und Inhalte d h die Columns Super Columns sowie die Daten werden erst zur Laufzeit definiert sofern weder Import noch Migration vorliegen Hierbei wird jeder Eintrag ber einen Key identifiziert welcher durch eine von Cassandra automatisch erzeugten Index realisiert wird Wenn in einer CF viele zueinander geh rende Daten gespeichert werden sollen ist es be sonders g nstig die entsprechenden Daten in Super Columns zu strukturieren Eine Super Column besitzt einen Namen und eine Liste von Columns
162. ding style in Vert x e g Ines H differs from J2EE practices while JavaScript style is similar to es tablished JavaScript frameworks Official API documentation manual API documentation manual documentation basic tutorial code examples Additional Large number of books and Few blog articles users group documentation blog articles License MIT license Apache Software License 2 0 Table 2 Maintainability comparison of Node js and Vert x 88 Cf Joyent Inc 2012 39 Cf w a 2012d 9 Cf Joyent Inc 2013 91 Cf Fox T 2013b 92 Cf McMahon C 2012 93 Cf Joyent Inc 2012a 94 Cf w a 2012d KOS content 562 32 Table 2 gives a quick overview over the differences between Node js and Vert x in this con text For both Vert x and Node js there is no official policy how security issues or defects in dated versions are handled so that upgrading to the latest stable versions is recommended for both frameworks API changes need to be checked with every upgrade Further framework specific details are provided in the following sub sections 5 1 1 Node js maintainability Node js allows for leveraging the JavaScript skills already in the market which significantly low ers the Time to Market TTM due to its similarity to established libraries and conventions in web application development JavaScripts lack of blocking I O libraries allowed the project founder to establish a non blocking standard for I O operation
163. doop apache org docs mapreduce r0 22 0 mapred tor ial html Abruf 09 01 2013 Enterprise Resource Planning System http wirtschaftslexikon gabler de Archiv 17984 enterprise resource planning system v7 html Abruf 04 01 2013 KOS content 640 wa DHBW Duale Hochschule Baden W rttemberg Stuttgart NoSQL Datenbanken Typisierung Schriftliche Ausarbeitung im Rahmen der Lehrveranstaltung Projekt des 5 Semesters Kompetenzzentrum Open Source KOS Vorgelegt von Teresa Bogolowski Tana Brunner Sophie Lingelbach Christin Wattler am 25 01 2013 Fakult t Wirtschaft Studiengang Wirtschaftsinformatik Kurs WWI2010V KOS content 641 Inhaltsverzeichnis Abk rzungsverzeichnis EE II leede EE IV Tabellenverzeichnis Va ee ee a a delta ee eg V 1 EIGN EE 1 2 Fachliche Grundlage EE 2 2 1 leede Eeer 2 2 2 Dokumentenorientierte Datenbanksvsieme 5 2 3 Graphorientierte Datenbanksysteme sssneneesseeenerrrrrsserrrtrrrntrsstrrrnrrnnnneserrrnne nn 7 2 4 Key Value Datenbanksvsteme en 10 2 5 Spaltenorientierte Daienbankavsteme nennen 13 3 EELER 15 gel io 14 0 6 Bs EAE EAE E E E EE ele 15 32 NEO erener e anna rn area EAER 17 2 VOldemollsrzen sen E 19 BA e e ee eae nie ate ee eee eee arte a A eae ae een 22 3 5 Gegentberstellung der Vertreter uk 25 4 PFOTOBIDE D 28 47 MongoDB nee ee 28 4 2 NEDA EE 29 4 3 ee E en EE 30 44 e ue nee 31 5 Zusammenfassung u keller 33 lee EE EE 35 Q ell ny rzeichNiS Sez A
164. dt B 2006 0 V 2013 0 V 2013 Meister A van Nerven A 0 J Bu kamp D 0 J Gaulke M 0 J Informationen zum Unternehmen XXX Abruf 24 01 2013 Funktionsweise von Suchmaschinen http www suchmaschinenkompetenz de Funktionsweise Suchmaschine Suchmaschinenkompetenz htm Ab ruf 02 01 2013 Aufbau eines Wiki Systems also kooperative Informati onsplattform der Arbeitsgruppe Softwareergonomie und Information Retrival http kola opus hbz nrw de volltexte 2006 58 pdf sa_schmidt pdf Abruf 28 12 2012 Suchmaschine http de wikipedia org wiki Suchmaschine Datenquelle Abruf 14 01 2013 Marktanteile von Suchmaschinen in den USA von 2007 bis 2011 http de statista com statistik daten studie 163595 umfrag e marktanteile der suchmaschinen in den usa Abruf 10 01 2013 Implikationen des Social Webs auf Suchmaschinentech nologien http winfwiki wi fom de index php Implikationen_des_Social_Webs_auf_S uchmaschinentechnologien Abruf 07 01 2013 Open Source Tutorial http www dbus de eip kapitel01e html Abruf 20 12 2012 Suchdienste im Internet http www suchmaschinenkompetenz de Suchdienste Suchmaschinenkompetenz htm Abruf 22 12 2012 KOS content 438 0 V 2012 0 V 0 J Heidenreich A o Ji o V 2012 o V 2012 o V 0 J Sitaula S 2012 o V 0 J St uble M 2010 Karich P 2012 o V 2013 Lieweries M 2012
165. e Anwendung ausgeliefert werden Vgl P rner H A 2011 S 29 f 7 Vgl Wolff E 2012 S 17 Vgl Wolff E 2012 S 17 KOS content 648 CAP Theorem Das CAP Theorem beschreibt ein magisches Dreieck der Datenbanktheorie Im Anhang 1 ist dieses zusammen mit den g ngigsten NoSQL Systemen dargestellt Dieses Dreieck besteht aus drei verschiedenen Hauptfaktoren nach denen eine Datenbank aufgebaut ist e Consistency Datenkonsistenz beschreibt die Eigenschaft der bestehenden Daten sowie ggf deren Replikationen auf dem gleichen Stand zu sein Das hei t alle Clients sehen beim Aufruf die gleichen Daten e Availability Verf gbarkeit betrifft die Antwortzeiten des Datenbanksystems dem Client gegen ber e Partitioning Tolerance Partitionstoleranz Verteilung der Daten ber viele Datenknoten und das Verhalten bei Ausfall eines Knotens bez glich der Sicherung der betroffenen Da ten Replikationen 0 A Die folgende Abbildung zeigt das Zusammenspiel dieser Faktoren noch einmal Ubersichtlich nosqltips blogspot com Abb 1 Cap Theorem Ein Datenbanksystem kann zeitgleich nur zwei dieser Anforderungen befriedigen Die Eig nung f r ein spezielles Einsatzgebiet einer Datenbank begr ndet sich folglich in ihrer Aus richtung Dabei werden beispielsweise traditionell CA Systeme durch RDBMS realisiert und sind vor allem bei g ltigen Operationen nach dem Transaktionsprinzip gefragt Bei NoSQL Datenbanken andererseits
166. e INPUT fields using the jQuery plugin h5Validate which is primarily important to create the same visual effects on every client s form To use the application the Node js servers can be started by using the command line After navigating into the project s folder using cd the only command needed is shown in Lst 21 node filename js Lst 21 Executing Node js code KOS content 557 D JO Om P Go 27 socket on liveform function data read unknown field from JSON for key in data distinction between select and input fields if document getElementByld key tagName SELECT write content into field document getElementByld key selectedIndex data key else write content into field document getElementByld key value data key also trigger the price calculation when these fields are filled if key SummeInput key BehaltInput key BerufInput f_req triqgger validation to have smiliar visual appearances valid invalid for the fields key h5Validate isValid Lst 20 Receiving data using WebSockets 4 3 2 Vert x The Vert x application is entirely written in Java but it is also possible to write each verticle in a different language if desired This could be done to maximize code reuse between front end and back end The business logic of the back end consists of three verticles and additional utilit
167. e einfacher zu bedienen als ein reines Hadoop was somit ein erheblicher Vorteil f r Firmen ist da sich Mitarbeiter nicht speziell mit der kompli zierten Programmierung von MapReduce Algorithmen auseinandersetzen m ssen sondern nur mit der Handhabung eines erg nzenden Systems Big Data und dessen Verarbeitung ist ein vergleichsweise neues Themengebiet der IT In Zukunft wird die Menge von Big Data und damit dessen Bedeutung in der breiten Wirtschaft weiter wachsen Heute nutzen nur die wenigsten Unternehmen das Potenzial dieser Informa tionsquelle Hadoop bietet vor allem in Kombination mit den zus tzlichen Komponenten hervorragende M glichkeiten das Potenzial von Big Data auszusch pfen Es wird somit in absehbarer Zukunft verst rkt Einzug in die Wirtschaft finden KOS content 632 34 Anhang Anhangverzeichnis Anhang 1 Installationsbeispiel einer Single Node Instanz KOS content 633 35 Anhang 1 Installationsbeispiel einer Single Node Instanz Die folgende Anleitung beschreibt erg nzend zum Kapitel 6 1 die schrittweise Installation und Konfiguration einer Hadoop Single Node Instanz Vorbereitungen Bevor das eigentliche Hadoop Framework installiert und konfiguriert werden kann m ssen einige Grundlagen geschaffen werden Als essentielle Grundlage dient das Linux Betriebs system Ubuntu Die Installation und Konfiguration von Ubuntu Desktop 12 10 in der 32Bit Version wird hier als Voraussetzung gesehen und auch
168. e erm glicht die Wiederherstellung von z B unbeabsichtigt gel schten oder ver n derten Objekten Jedoch f hrt diese Versionierung auch zu h heren Speicherkosten Die Vorteile des Amazon Standard Speicher sind eine hohe Zuverl ssigkeit und Verf gbarkeit sowie das Verhindern gleichzeitiger Datenverluste in zwei Systemen Reduced Redundancy Storage RRS Im Gegensatz zum Standard Speicher ist Reduced Redundancy Storage RRS eine neue Methode von Amazon S3 zum Speichern von nicht kritischen reproduzierbaren Daten mit geringerer Redundanz als SRS Dies hilft den Kunden die f r die Speicherung anfallenden Kosten zu senken Die Vorteile von RRS sind eine hohe Zuverl ssigkeit und Verf gbarkeit sowie das Verhindern von Datenverlusten in einer einzigen Anlage i Vgl Amazon Web Services Inc 201 2a gt Vgl ebenda 3 Vgl ebenda Vgl ebenda KOS content 630 32 Amazon Glacier Amazon Glacier hingegen ist ein sehr kosteneffektiver Speicher zur Archivierung von Daten Ideal eignet er sich f r Daten auf die man selten zugreifen muss und auf die ein Zugriff auch l ngere Zeit dauern darf Ein Beispiel hierf r sind Daten die laut Gesetz noch aufbewahrt werden m ssen jedoch nicht mehr verarbeitet werden Die Vorteile von Amazon Glacier sind eine hohe Zuverl ssigkeit und Verf gbarkeit sowie das Verhindern von Datenverlusten in zwei Systemen Datenverwaltung Ein weiteres Feature von Amazon S3 sind die manni
169. e gute Ausfallsicherheit gegeben Architektur Ein interessanter Aspekt der Voldemort auch von anderen Systemen unterscheidet ist die mehrschichtige Architektur Dabei implementiert jede Schicht ein Interface f r PUT GET und DELETE Zudem erf llt jede Schicht eine eigene Funktionalit t wie beispielsweise das Rou ting der Daten auf die einzelnen Knoten oder den Versionsabgleich Die einzelnen Schichten sind sehr flexibel und k nnen unterschiedlich implementiert werden Es k nnen beispielswei se auch neue Zwischenschichten entwickelt werden Der Aufbau der logischen Architektur ist in folgendem Schaubild der Abbildung 8 dargestellt Vgl Edlich S u a 2010 S 38 Enthalten in Datenbanken Online Lexikon 2011c 81 Vgl Project Voldemort o J KOS content 665 21 Client API Conflict Resolution Serialization Compression Requests Responses Network Client amp Server HTTP Sockets NIO Consistency mechanisms Read repair Hinted handoff Storage Engine Y BDB MySQL Memory Read only Abb 8 Logische Architektur von Voldemort Ob die Netzwerkschicht ber oder unter der Routingschicht liegt ist davon abh ngig ob die Daten serverseitig oder clientseitig geroutet werden Bewertung Da ein Hauptaugenmerk bei dem System auf der Performance liegt und auch m glichst viele Schreiboperationen parallel ablaufen sollen wird weniger Wert auf die st ndige Konsistenz
170. e zu erreichen h lt ZooKeeper seine Daten im Speicher in Memory und gew hrleistet so eine geringe Zugriffszeit und einen hohen Datendurchsatz ZooKeeper verwaltet die Dienste die er berwacht in einer Dateisystem hnlichen Baum struktur Die Bl tter des Baums werden als ZNodes bezeichnet Ein ZNode kann anders als bei einem normalen Dateisystem sowohl ein Ordner sein als auch Daten beinhalten Die Datenmenge ist pro ZNode auf 1MB begrenzt Da es sich aber nur um Statusinformationen der berwachten Dienste handelt bewegt sich die Datenmenge einer ZNode normalerweise im Byte bis Kilobyte Bereich Der Zugriff auf eine ZNode erfolgt ber die UNIX Standardnotation f r Pfade Node1 ChildNode1 Es gibt zwei Arten von ZNodes Die regul ren ZNodes werden vom Client erzeugt und zerst rt die kurzlebigen emphemeral ZNodes werden vom Client er zeugt der Server entscheidet jedoch selbst wann diese wieder zerst rt werden Ein weiteres Konzept im ZooKeeper sind die Watches Ein Client kann auf eine beliebige ZNode eine berwachung Watch registrieren und wird daraufhin durch den ZooKeeper Dienst ber eine nderung in dieser ZNode hingewiesen Dies wird verwendet um u a den gleichzeitigen Start von Berechnungen auf mehreren Systemen sicher zu stellen ZooKeeper als verteiltes System Um die Ausfallsicherheit zu gew hrleisten l uft der ZooKeeper Dienst auf mehreren Ser vern Je nach Konfiguration k nnen einer oder mehrere
171. ean 117 142 ms mean 2 343 ms mean across all 85482 42 Kbytes sec concurrent requests received min mean sd median max Connect 0 0 5 0 0 204 Processing 74 117 169 0 98 1992 Waiting 6 42 22 6 41 1436 Total 74 117 170 2 98 1992 Percentage of the requests served within a certain time ms 50 98 66 102 75 105 80 107 90 110 95 112 98 121 99 1490 100 1992 longest request KOS content 585 55 Vert x ab n10000 c50 g 200kb vertx dat http 192 168 178 39 8000 file 200kb This is ApacheBench Version 2 3 lt Revision 655654 gt Copyright 1996 Adam Twiss Zeus Technology Ltd http ww zeustech net Licensed to The Apache Software Foundation http www apache org Benchmarking 192 168 178 39 be patient Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software Server Hostname 192 168 178 39 Server Port 8000 Document Path file 200kb Document Length 204800 bytes Concurrency Level 50 Time taken for tests 42 570 seconds Complete requests 10000 Failed requests 0 Write errors 0 Total transferred 2048430000 bytes HTML transferred 2048000000 bytes Requests per second 234 90 sec mean Time per req
172. earch ist ein auf Lucene basierender durch Apache 2 0 lizensierter und von Shay Banon entwickelter Suchserver Diesem liegt wie auch bei Solr eine REST Architektur zugrunde Ferner handelt es sich bei Elasticsearch um eine verteilte Suchmaschine Bei einer verteilten Suchmaschine wird die Suchanfrage an mehrere einzelne Computer weiter geleitet welche jeweils eine eigene Suchmaschine besitzen Anschlie end werden die Er gebnisse zusammengef hrt Elasticsearch ist in Java programmiert verwendet JSON als Datenaustauschformat sowie dokumentorientierte Datenbanken Zu den gr ten Nutzern von Elasticsearch geh ren Mo zilla StumbleUpon und Sony Computer Entertainment Laut Entwickler Homepage sind der zeit zw lf kommerzielle bekannte Nutzer aufgez hlt In Tab 8 werden die Hintergrundinformationen zu Elasticsearch zusammengefasst LACM mC 0 20 2 Entwickler Shay Banon Elasticsearch Firma Programmiersprache Java Lizenz Apache 2 0 kostenlos Benutzerkreis u a Mozilla StumbleUpon Sony Computer Entertain ment Besonderheiten REST Architektur JSON Datenaustauschformat verteilte Suchmaschine Entwickler Homepage http www elasticsearch org Entwicklerseite http www elasticsearch com Unternehmensseite Informationsseite Wiki http www elasticsearch org guide Community https groups google com forum forum elasticsearch Kontaktm glichkeiten http www
173. eateNode Dem Knoten wird das key value Paar Name Sophie und Christin mitgegeben myFirstNode setProperty name Sophie und Christin mySecondNode graphDb createNode mySecondNode setProperty name Tana und Teresa Dem ersten Knoten wird eine Beziehung zum zweiten Knoten des Typ KNOWS hinzugef gt myRelationship myFirstNode createRelationshipTo mySecondNode RelTypes KNOWS myRelationship setProperty relationship type kennen Ausgabe myString myFirstNode getProperty name toString myRelation ship getProperty relationship type toString mySecondNode getProperty name toString System out printin myString tx success finally tx finish void removeData Transaction tx graphDb beginTx try Zuerst muss die Beziehung gel scht werden bevor die Knoten gel scht werden d rfen myFirstNode getSingleRelationship RelTypes KNOWS Direction OUTGOING delete System out println Removing nodes myFirstNode delete mySecondNode delete tx success finally tx finish void shutDown graphDb shutdown System out println graphDB shut down H KOS content 684 40 Anhang 6 Installationsanleitung Voldemort Nachdem Java6 und Apache Ant installiert sind muss zun chst der Pfad von Java ber folgende Befehle angepasst werden export PATH usr lib jvm java 6 sun 1 6 0 12 bin PATH export LD LIBRARY PA
174. ebastopol O Reilly Media IT Manager s Handbook The Business Edition Burling ton Elsevier Node Up and Running Scalable Service Side Code with JavaScript Sebastopol O Reilly Media Applied Cryptography for Cyber Security and Defense Information Encryption and Cyphering Hershey IGI Global Linux Administration Handbook 2nd Edn New York Pearson Education Jump Start Node js Collingwood SitePoint CLR via C 3rd Redmond Microsoft Press Head First Ajax Sebastopol O Reilly Media Node js amp Co Skalierbare hochperformante und echizeitfaehige Webanwendungen professionell in JavaScript entwickeln Heidelberg dpunkt verlag Distributed Systems Principles and Paradigms 2nd Edn Upper Saddle River Pearson Education Professional Node js Building Javascript Based Scal able Software Indianapolis John Wiley amp Sons Database Programming with C Sharp New York Springer Verlag KOS content 589 59 List of Internet and Intranet Resources Arranz J M 2011 Asay M 2013 Avram A 2012 Behren R von Condit J Brewer E 2003 Caldera International Inc 2003 Crockford D 2006 Fette 1 Melnikov A 2011 Fielding R et al 1999 Fletcher R 2012 Fox T 2013a Fox T 2013b The joy of asynchronous programming http www theserverside com discussions thread tss thread_ id 61698 retrieval 01 21 2013 VMware s dealings with
175. echnologies 2010 http www hadoopsearch net hsearchdatasheet pdf Stand 29 12 2013 t Vgl o V 2011 http yourstory in 201 1 06 start up profile hsearch bizosys technologies Stand 29 12 2013 KOS content 429 5 Implementierung und Integration Das Implementieren einer Suchmaschine in eine eigene Umgebung und die Integration in klusive Anbindung an vorhandene Datenquellen variiert janach ausgew hlter Suchmaschine sehr stark Viele Anbieter werben mit einer sogenannten out of the box F higkeiten f r einfa ches Anbinden In diesem Fall soll es f r den User relativ schnell und einfach sein diese Funktionen zum Laufen zu bringen Out of the box bedeutet hier dass der Anwender die Software downloaden die Installierung durchf hren muss und nach einem Neustart bereits einen Teil der Software ohne weitere Anstrengungen nutzen kann Meist wird explizit ange geben welche Funktionen auf diese Weise zur Verf gung stehen Dieser Schnellstart wird nicht von jedem Hersteller bereitgestellt und bietet meistens nur einen sehr begrenzten Funktionsumfang Generell m ssen bei einer Integration in eigene Umgebun gen Applikationen unter anderem folgende Fragen beachtet und beantwortet werden Welche s Betriebssystem e werden unterst tzt In welcher Sprache ist die Software geschrieben Welche Laufzeitumgebung wird ben tigt Stehen ausreichend Programmierressourcen zur Verf gung Ist eine Implementierung ohne besonderen Aufw
176. ed and installed automatically within the environment Npm is run on the command line and manages depen dencies for applications Node js received standing ovations from the web developer community which lead to spec tacular participation in the project Primarily Node js is supported by a San Francisco based company named Joyent which offers cloud services such as Infrastructure as a Service and Platform as a Service to large companies focussing on open source projects such as Ruby on Rails and Node js Node js s documentation and manual are extensive and cover all functionalities of the non extended edition Node js is licensed under the MIT License meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms 2 5 3 Vert x Vert x is a programming framework that runs on the Java Virtual Machine JVM It is hence possible to scale over available cores without manually forking multiple processes The application API is exposed in multiple programming lanugages see table 1 In Vert x the smallest available deployment unit is a verticle which runs inside an instance Each instance runs single threaded Multiple verticles can be run inside one instance as de picted in Fig 6 When multiple instances are run on one machine Vert x automatically distributes incoming requests among all running instances in a round robin fashion so that each Vert x vert
177. eeseburger H Leseoperationen Abfrage der Anzahl an Dokumenten in der Datenbank db cities count Abfragen eines Dokuments anhand der Objectld db cities findOne Objectld 4c448e940d897c6443e2f70b Abfrage aller Dokumente mit einem bestimmten Wert db cities find city ATLANTA Abfrage mit mehreren Bedingungen db cities find key_1 value_1 key_2 value_2 key_3 value_3 Anderungsoperation Anderung eines Dokuments db person update name hannes name hans age 21 J L schoperation L schung von Daten db cities remove city ATLANTA Anhang 4 Konsistenzeinstellungen Cassandra Consistency Level Erkl rung ZERO F r Schreiboperationen wird nichts garantiert ANY Schreiboperationen m ssen auf mindestens einem Knoten geschrie ben worden sein ONE Mindestens ein Knoten muss den Commit Log in die RAM Tabellen geschrieben haben bevor der Client eine Best tigung erh lt Beim Lesen wird das erste verf gbare Ergebnis geliefert Nachfolgende Lesezugriffe erhalten garantiert ein richtiges Ergebnis QUORUM Es muss eine bestimmte Anzahl von Servern ReplikationsFaktor 2 1 geantwortet haben bevor Schreibbefehle get tigt werden Beim Lesen wird der Eintrag mit dem aktuellsten TimeStamp zur ckgege ben ALL Alle Replikationsknoten m ssen positiv geantwortet haben bevor die Client Operation erfolgreich abgesc
178. eichnis Pilato D 2012 Entwickler Elasticsearch E Mail am 08 01 2013 KOS content 523 KOS content 524 Evaluation of Asynchronous Server Technologies by Can Paul Bineytioglu Joe Andre Boden Rocco Schulz Max V kler Robert Wawrzyniak provided on January 25 2013 School of Business Program International Business Information Management Course WWI2010I Corporate State University Baden Wuerttemberg Stuttgart KOS content 525 Contents List of Abbreviations List of Tables List of Figures List of Listings 1 Introduction 1 1 el 1 2 Methodology and Structure 1 3 Problem Description x 2 2 42 224 8 222 2 a ee a Se WS 2 Setting the Context 2 1 Potential Web Development Issues 2 22H nenn 2 1 1 I O and CPU Bound Applications u ee ee 23 vr er 2 1 2 Single Multithreading and Event driven Development 2 2 Concept of Synchronous Processing 2 3 Concept of Asynchronous Processing 2 4 Technical Comparison of Asynchronous and Synchronous Processing 2 5 Existing Asynchronous Frameworks 2 5 1 Market Overview 2 ks e wea ea a a 25 2 NOUS cn fy nae ala ga ke Wy er a a Bes 7 VOM a er wes fens ew eet a DE ea poe cbs ee Min BE Oe ee ee tk Areas of Application 341 lee Ee x 2 Tara eg SNe ee So Sc a i eed eee E 3 2 Dont WSeCases rn he deg de Lee a Bd ete eed ee et ee hat Exemplary Implementations 4 1 Software Description 2 2 2 2 sa na 0
179. eine optionale Synonym Wortliste au tomatisch nach Synonymen gesucht werden e Suche nach Phrasen und Wildcards ist m glich e Die Suche kann limitiert werden bspw nur auf HTML Tags im Dokument e Suchen k nnen auf Teile einer Webseite begrenzt werden Enthalten in swish e org 2013 KOS content 412 4 4 2 4 4 3 Die Ergebnisse k nnen nach Relevanz oder nach einer beliebigen Zahl sortiert wer den Errors in XML und HTML k nnen angezeigt werden Eine indizierte Datei kann auf jeder Plattform laufem die Swish e unterst tzt Es gibt eine Swish e library die in eigene Anwendungen portiert werden kann Ein Perl Modul ist verf gbar welches eine Standard API f r den Zugriff bereitstellt Es beinhaltet ein Beispielsuche Skript was den Suchbegriff enth lt und die Phrasen hervorhebt Sehr schnell bei der Indizierung von Texten HTMLs und XMLs Regular Expressions existieren um Dokumente noch tiefgreifender zu filtern als es ber die Endung m glich w re 7 Es besteht Support im Web Nachteile Ein Index sollte nach jedem Update des Swish e Systems neu generiert werden so der Entwickler Arbeitsspeicher und CPU leiden stark unter der schnellen Suche Funktionsweise Da in der Grundeinstellung nur von TXT HTML und XML Dateien ausgegangen wird star tet die Indizierung indem jede Datei einem dieser Formate zugeordnet wird und einen Default Index verpasst So arbeitet sich das Programm v
180. einem zentralen sowie orts und zeitunabh ngigen Wissensmanagement bei KOS content 459 13 e LDAP Anbindung Umsetzung bestehender Zugriffsrechte Die bernahme des implementierten Berechtigungskonzepts stellt eines der zu ber cksichti genden Hauptkriterien dar In diesem Zusammenhang ist die Anbindung der Suchmaschine an LDAP Dienste z B eDirectory ein wichtiger Punkt Ferner muss ein eventuell vorhande nes Berechtigungskonzept im Bereich der Wiki Systeme ohne Probleme f r die Suchma schine adaptiert werden k nnen Gleichzeitig muss es m glich sein dass mehrere Benutzer ber das gleiche Suchinterface mit unterschiedlichen Zugriffsrechten auf die verschiedenen Datenquellen Zugang haben e Anbindung an Datenquellen Der wichtigste Aspekt ist die M glichkeit die im Unternehmen vorhandenen Datenquellen anzubinden Hierzu geh ren beispielsweise Wiki Systeme Notes Datenbanken und webba sierte Dokumente im Intranet W nschenswert w ren au erdem die Anbindung und die M g lichkeit des Durchsuchens von vorhandenen Netzlaufwerken e Wartungs und Betreuungsm glichkeiten Die f r die Verwaltung der Anwendung zust ndigen Bereiche haben die M glichkeit not wendige Konfigurationsma nahmen vorzunehmen Hierzu sollten zum Beispiel Skripte vor handen sein mit denen der Aufwand manueller Arbeiten minimiert wird Als weitere Hilfestel lung dienen Monitoring und Reporting Werkzeuge zur Anzeige von Suchstatistiken Laufzei
181. eingegangen Vgl Wartala R 2012 S 100 f KOS content 621 23 5 3 1 Hive Ab 2008 versuchte sich Facebook mit Hilfe des Projektes Hive an der berf hrung von SQL hnlichen Abfragen in MapReduce Jobs Dies sollte dazu dienen mittels einfacher HiveQL Abfragen auch Java fremden Mitarbeitern die Datenanalyse zu erm glichen Das Projekt wurde ab 2009 von der Apache Foundation fortgef hrt und damit der Allgemeinheit zug ng lich gemacht Hive kann als eine Art DWH System f r Hadoop verstanden werden Es setzt auf den Basis technologien von Hadoop auf und beinhaltet einen Mechanismus der die gespeicherten Da ten zusammenfasst aggregiert und ihnen eine Struktur gibt Kurz gesagt es stellt Hadoop eine DWH Infrastruktur zur Verf gung Es ist eine Art Client innerhalb der Hadoop Umgebung und nutzt das HDFS als Basis f r seine Analysen Daten aus verschiedensten Quellen k nnen mit Hilfe von Hive aggregiert werden Ebenfalls realisierbar sind die Funktio nen ETL von Daten Extract Transform Load Da Hive auf Hadoop welches ein Batch verarbeitendes Programm ist aufsetzt bendtigt es sehr lange Antwortzeiten bei Abfragen Es ist nicht dazu gedacht schnelle Echtzeitabfra gen auf die Daten auszuf hren Durch den MapReduce Prozess welcher f r jede Abfrage zun chst ausgef hrt werden muss bel uft sich die Antwortzeit bei Abfragen auf mehrere Minuten bis Stunden Im Bereich der Big Data ist di
182. einzelnen Server berwacht der MasterServer Besteht ein Cluster in HBase aus einem Master und mehreren RegionServern so werden diese auch Master und SlaveNo des genannt Status und Konfigurationen von Master und SlaveNode werden in diesem Bei spiel mit Hilfe von ZooKeeper gespeichert Installation und Anwendung Einzige Voraussetzung f r die Installation einer Standalone L sung von HBase ist ein Rech nersystem mit der Laufzeitumgebung Java Runtime Environment JRE Version 6 Die Instal lation auf einem Rechner Cluster ist jedoch weitaus aufw ndiger Hierf r sind mehrere kom plexe Installations und Konfigurationsprozedere sowie die Anbindung an das HDFS und ZooKeeper notwendig Um mit den HBase Servern zu interagieren gibt es die HBase Shell Hier ber k nnen f nf verschiedene Arten von Kommandos eingegeben werden die den folgenden Zwecken die nen H Data Definition Beschreibung der Daten und Datenstrukturen Data Manipulation Lesen und Schreiben von Daten Replikation von HBase Steuerung der internen Werkzeuge Sonstige Statusabfragen Neben dieser Shell gibt es noch weitere Schnittstellen Uber die HBase mit anderen Syste men kommunizieren kann Standardm ig bringt HBase drei Schnittstellen mit ber welche andere Anwendungen Zugriff auf die Daten und Funktionalit ten erhalten k nnen Diese sind Java API Representational State Transfer REST 4 gl IBM Corporation 2012 V
183. ekey pem cert fs readFileSync __ dirname certificate pem Lst 8 Reading encryption keys To run the HTTP HTTPS servers the code in Lst 9 is used which first initializes Express express and then creates the server using the express variable Afterwards the ports on which the servers are listening are defined var app express var server http createServer app var secureServer https createServer httpsOptions app server listen 8888 secureServer listen 4431 Lst 9 Starting servers in Node js The HTTP server can be accessed using http localhost 8888 as opposed to the HTTPS server that is available at https localhost 4431 Afterwards the socket io module for WebSockets comes into play First of all it needs to be installed using the command in Lst 10 npm install socket io Lst 10 Command to install socket io via Node js package manager Afterwards it is included and initialized by passing the secureServer variable for the HTTPS server as shown in Lst 11 var io require socket io listen secureServer Lst 11 Initialization of the socket io module in Node js The first Express functionality used is that static files can be served with Node js Using the statement in Lst 12 the directory is made the root directory fora http s localhost port app use express static __dirname UI
184. elasticsearch org community Tab 8 Hintergrundinformationen zu Elasticsearch 37 Enthalten in Maas G 2012 38 Vgl Elasticsearch o J a 39 Vgl ebenda 40 Vgl K hler M Arndt H Fetzer T 2008 S 3 4 Vgl Elasticsearch o J a KOS content 474 28 3 3 2 Betrachtung der Funktionsweise Im ersten Schritt werden die vorhandenen Dokumente an die Suchmaschine bergeben Dieser Vorgang wird als Feeding oder Indexing bezeichnet Dabei wird wie schon bei Luce ne ein invertierter Index erstellt hnlich einem Wortverzeichnis in einem Buch Bei der Indexierung eines Dokuments sind in Elasticsearch eine Identifikationsnummer ID der Typ des Dokuments und dessen Index anzugeben Falls einer dieser Bestandteile fehlt wird er von der Suchmaschine automatisch angelegt Daneben l sst sich auch die Zeit konfi gurieren nach der ein indexiertes Dokument auffindbar sein soll Bei Bedarf l sst sich auch ein sofortiges Auffinden erzwingen Alle Felder werden unabh ngig vom Typ in einem opti onalen nichtindexierten Feld _source abgelegt Bei diesem k nnen ber GET Abfragen die abgelegten Felder ohne Verz gerung durch einen Zugriff auf die ID abgerufen werden Folglich kann _source als NoSQL Datenspeicher verwendet werden Dies erm glicht eine bersichtliche Datenhaltung ohne die Notwendigkeit von externen Datenbankl sungen sowie ein besonders schnelles Auffinden von Dokumenten Strings werden standardm
185. elektierten Dateien steigern Ebenfalls von sehr gro em Vorteil sind die M glichkeiten der syntaktischen und semantischen Vervollst ndigungs und Korrekturme chanismen da hierdurch die Suche nach den richtigen Ergebnissen deutlich vereinfacht und beschleunigt wird Aus Sicht der Ergonomie sind diese Zusatzfunktionen besonders positiv zu bewerten Schlie lich lassen sich noch die Suchresultate in unterschiedlichen Formaten wie XML oder JSON zur ckgeben Die Integration in einen Webserver bzw Servlet Container z B Apache Tomcat ist ebenfalls m glich Zusammenfassend l sst sich festhalten dass Solr lediglich als eine Art H lle fungiert wel che Lucene als Grundger st f r dessen Funktionalit ten verwendet Damit kann Solr als Suchmaschine ohne Lucene als Suchbibliothek nicht existieren Der wesentliche Vorteil ge gen ber Lucene liegt vor allem darin dass Solr ohne gro en Aufwand als vollwertige Such maschine eingesetzt werden kann und eine breite Palette an Zusatzfunktionen out of the box liefert M chte man das volle Potential ausnutzen sollte wie in Abb 7 vorgegangen werden Mit Solr k nnen s mtliche Dokumente in Business Intelligence Systemen durch sucht werden Mit SOLR durchsuchen Sie s mtliche Systeme Ihres Unternehmens ee Abb 7 Zusammenspiel von Solr und Lucene 35 Vgl Maas G 2012 36 Vgl ebenda KOS content 473 27 3 3 Elasticsearch 3 3 1 Hintergrundinformationen Elastics
186. eliegenden Lucene Bibliothek bietet Solr einige Zusatzfunktionen welche mit dem Werkzeug mitgeliefert werden sodass hierf r der Programmieraufwand entf llt Bei diesen Zusatzfunktionen handelt es sich beispielswei se um folgende e typisierte Dokumentenfelder nicht nur Strings e Vereinfachte Indexierung durch das Mapping von Dokumenten zur Datenquelle Da tenbanktabellen XML oder HTML Dateien e Facettensuche e Rechtschreibkorrektur e Autovervollstandigung Suchvorschl ge e konfigurierbare Caches f r Suchergebnisse e Replikationsmechanismen e Unterst tzung von Sharing e eigene Gewichtungskriterien bei der Erstellung von Rankings Die interessanteste Funktion von Solr verbirgt sich hinter dem Solr Facetting zu Deutsch Facettensuche Mit der Facettensuche kann ein bestehendes Suchergebnis nach weiteren 32 Vgl Miller M u a 2012 33 Vgl Klose M 2012 34 Vgl Kammerer T Mandl P Baumg rtner R 2011 S 133 f KOS content 472 26 Kriterien eingeschr nkt werden Damit l sst sich die eigene Suche durch Kombination von Filtern beliebig einschr nken Dies kann man sich wie bei einer Suche in einem Online Shop vorstellen Neben dem eigentlichen Suchbegriff z B T Shirt lassen sich zus tzlich Kategorien z B Herrenbekleidung Gr e L einstellen sodass man pr zisere Ergebnisse erh lt Diese Suche kann schneller und zielstrebiger zum gew nschten Ergebnis f hren so wie die Qualit t der s
187. en angebunden werden Als gr te Schw che ist die fehlende M glichkeit der LDAP Anbindung und damit der Integration von Berechtigungsricht linien und deren Verwaltung zu nennen Aus diesem Grund kommt Elasticsearch als Such maschine in dem hier beschriebenen Fall nicht in Frage Lucene ist als Programmbibliothek besonders einfach zu implementieren und mit sehr vielen Systemen kompatibel Das wichtigste Argument f r Lucene ist dessen Modularit t Apache umfasst viele Projekte die auf Lucene aufbauen bzw in Lucene integriert werden k nnen KOS content 507 61 siehe hierzu auch Kapitel 4 1 Solr und Elasticsearch sind Beispiele f r Projekte die Luce ne als Basis verwenden Daher sollte Lucene nicht als alleinstehende Suchmaschine be trachtet werden sondern vielmehr als Bibliothek auf der je nach Bedarf aufgebaut werden kann Damit werden auch die Nachteile von Lucene deutlich Komponenten wie z B Craw ler Werkzeuge zur Analyse Tools zur Informationsanzeige oder die Cloud Unterst tzung werden nicht unterst tzt oder sind nur ber Erweiterungen verf gbar Ein Zugriff auf die be trachteten Datenquellen ist ebenso wenig m glich wie die Anbindung an Verzeichnisdienste wie z B eDirectory Folglich ist Lucene f r den in dieser Arbeit betrachteten Fall nicht zu empfehlen Von den in dieser Arbeit vorgestellten Meta Suchmaschinen wird einzig Solr den gestellten Anforderungen in einem akzeptablen Ausma gerecht Solr erf llt n
188. en ausfallsicher zu verteilen und die Netzwerkauslastung zu optimieren Bei Hadoop besteht jeder HDFS Cluster aus einem NameNode Master und weiteren DataNodes Slaves Der NameNode verwaltet das Dateisystem und regelt den Datenzugriff durch die Clients Die zugeh rigen DataNodes ver walten die gespeicherten Datenbl cke NameNode und DataNodes Intern werden die gespeicherten Dateien blicherweise in 64 MB gro e Bl cke aufgeteilt und auf den DataNodes verteilt abgelegt Der NameNode f hrt Operationen wie z B ffnen schlie en und umbenennen von Dateien und Verzeichnissen im Dateisystem aus Au er dem entscheidet der NameNode ber die Zuordnung der Datenbl cke auf den DataNodes Die DataNodes sind f r die Lese und Schreibanfragen der Clients verantwortlich und f hren auf Anweisung des NameNodes die Erstellung L schung und Replikation von Bl cken aus Der NameNode speichert die Metadaten eines Clusters welche Informationen dar ber ent halten welche Dateibl cke auf welchem DataNode liegen und wie oft diese weiter repliziert wurden Zudem ist der dieser so ausgelegt dass Daten aus den Big Data Bl cken niemals ber den NameNode laufen Die beschriebene Architektur von HDFS ist zudem in Abb 1 visualisiert 16 Vgl Borthakur D 2009 S 4 f KOS content 605 HDFS Architecture Metadata Name replicas Namenode nome foo data 3 Metadata ops Read Datanodes
189. en grunds tzlich alle Anwendun gen in denen die Daten gut in Schl ssel Wert Paare strukturiert werden k nnen Ein Bei spiel hierf r sind Microblogging Dienste wie beispielsweise Twitter So k nnen hier bei spielsweise einzelne Blogeintr ge so abgespeichert werden dass der Schl ssel aus einer fortlaufenden Nummer dem Nutzernamen und einem Zeitstempel zusammengesetzt wird und der tats chliche Eintrag dann als zugeh riger Value abgespeichert wird Eine m gliche Tabelle mit verschiedenen Beispieleintr gen ist die folgende Tabelle 3 Key Value 233 mrX 2012 08 09 08 33 14 Hallo Welt 454 mrsPQ 2012 08 15 09 10 34 Sch nes Leben sch ne Welt 355 MaxM 2012 09 01 18 45 53 Ich bin ein Test Eintrag Tab 3 Darstellung Key Value Prinzip Ein weiteres Beispiel f r die Verwendung von Key Value Datenbanken ist die Sessionverwal tung eines Websystems ber die Session ID kann beispielsweise der aktuelle Zustand der Session hinterlegt werden um diesen bei den einzelnen Zugriffen abzufragen und zu ber schreiben Vorstellbar sind Key Value Datenbanken aber auch f r die Artikelverwaltung in Online Stores oder die Userverwaltung in Sozialen Netzwerken Vgl freies Magazin 2010 Vgl Heise Zeitschriften Verlag 2011 KOS content 656 12 Ein Vorteil der Key Value Datenbanken ist die gute Skalierbarkeit Diese ergibt sich daraus dass die Datens tze nicht miteinander verkn pft sind denn bei
190. en kann Die meisten Suchsysteme bieten diese Crawler out of the box In einigen F llen werden jedoch nur Programmbibliotheken bereitgestellt welche vom Anwender selbst durch die gew nschten Komponenten erweitert 12 Vgl Ziesche P Arinir D 2010 S 112 KOS content 457 11 werden m ssen Folglich besitzen diese Systeme nicht zwingend einen Crawler Das Vor handensein von Suchmaschinen Crawlern wird aufgrund des geringeren Implementierungs und Verwaltungsaufwands bevorzugt Ferner ist hier zu beurteilen inwieweit der Crawler ber Module Add Ons angepasst und modifiziert werden um zum Beispiel zus tzliche Datenquellen durchsuchen zu k nnen e Dateiunterst tzung Es k nnen die g ngigen Datei Formate wie doc xls pdf ini cfg xml vbs vba durch sucht werden Da Dokumente in diesem Format im Unternehmensumfeld am h ufigsten vor kommen muss eine ideale Suchl sung ebendiese Formate beherrschen e Cloud Unterst tzung Die Suche kann nicht nur lokal am PC erfolgen sondern auch an entfernten Systemen In diesem Zusammenhang w re es von Vorteil wenn beispielsweise soziale Netzwerke wie Facebook Xing Twitter und LinkedIn durchsucht werden k nnen Hintergrund f r diese An forderung ist die stetige Zunahme an Informationen in Web 2 0 Anwendungen e Volltextsuche Ziel des Suchverfahrens ist es nicht nur ausschlie lich Titel zu durchsuchen sondern den gesamten Inhalt im jeweiligen
191. en retrieve messages from the queue for processing basically the FIFO principle is applied A common scenario for message queues is when only a little amount of requests create high loads on the server e g video platforms such as Youtube or Vimeo 5 In such cases it is useful to externalize CPU intensive tasks in order not to impair responsiveness of the application Asynchronous server technologies such as Node js can leverage message queues very well As a feature of the event driven model an event handler is triggered when a new message is available Thus the queue does not need to be constantly polled for messages 7 Kue is an example of a message queue also called job queue that is entirely developed in Node js It uses redis as a queue server With Kue jobs can be prioritized delayed monitored graphically and in real time repeated if they failed and more A key feature is the user interface to view and manage jobs in different states queued active failed and completed Kue can be installed easily according to Listing 32 npm install kue Lst 32 Installing Kue via command line 130 McGlennon G 2007 131 Cf ibid 132 Cf Thomson C 2002 p 449 133 Cf McGlennon G 2007 134 Cf Thomson C 2002 p 450 135 Cf Roden G 2012 p 247 136 Cf ibid p 247 137 Cf Knight M 2011 KOS content 577 47 Appendix 3 Meteor and Opa Next Generation Web Application Frameworks
192. en zweiten Teil der Projektbewertung bildet die Analyse der Marktakzeptanz welche aus Tab 19 hervorgeht Kriterium Gewichtung Suchmaschinen Lucene Solr Elastic HSearch search Anzahl der Stakeholder Anzahl der Downloads Traffic Rank SUMME 100 Tab 19 Ermittlung der Marktakzeptanz der Suchmaschinenprojekte F r keine der Suchmaschinen konnten Informationen ber Downloadzahlen gefunden wer den Daher muss sich der Vergleich auf die Kriterien Anzahl der Stakeholder und Traffic Rank beschr nken Betrachtet man die Ergebnisse findet sich auch in dieser Kategorie ein hnliches Bild wie schon beim Reifegrad Lucene und Solr erreichen mit 2 75 von 4 00 m g lichen Punkten die gleichen Ergebnisse Dahinter landet Elasticsearch mit 1 50 Punkten wobei es wieder bei keinem der beiden Kriterien an Lucene oder Solr herankommt Auch bei der Marktakzeptanz kann HSearch nicht berzeugen und landet mit 0 75 Punkten weit hinter den beiden erstplatzierten Projekten Der Zusammenhang zwischen Reifegrad und Marktakzeptanz der Suchmaschinenprojekte wird nun in der Vier Felder Matrix von Abb 12 visualisiert Hier sind die einzelnen Projekte gem ihrer erreichten Punktzahlen relativ zueinander eingeordnet KOS content 504 58 amp Lucene OO Solr Shooting Stars O Elasticsearch HSearch Reifegrad DEE eee eee niedrig Marktakzeptanz ZS Abb 12 Vier Felder Matrix f r die Be
193. entwicklung Anpassungen leicht m glich Professionelle Software Sicherheit in Zukunft weiter hin zu bestehen Customizing ist durch den Provider leicht sicher zustel len Professioneller Support Kostenlos hnlich gute Qualit t wie bei kommerzieller Software Hohe Sicherheit D 0 J http www dbus de eip kapitel01e html Stand 20 12 2012 KOS content 396 Langsame Weiter entwicklung durch fehlende Einnah men fehlende Ak zeptanz am Markt m glich Professioneller Sup port muss eingekauft werden Kostenpflichtig Support ebenfalls kostenpflichtig Meistens Closed Source Quellcode ist nicht verf gbar Nutch Google Bing Yahoo Copernic Freeware Suchmaschine f r Windows PCs ist somit nicht mehr g ltig wohl aber alle anderen einschr nkenden Lizenzbedingungen Die Ver nde rung ist nicht erlaubt und auch nicht m glich da der Quellcode nicht zur Verf gung steht Freeware ist somit keine freie Software Gr ne Suchma Eine gr ne Suchmaschine be e schinen zeichnet eine Suchmaschine die durch unterschiedlichste Aspekte von der Verwendung von ko Strom ber Spenden bis zum Kauf von CO2 Zertifikaten einen nachhal tigen Gedanken verfolgt und die Umwelt schont Spenden werden entweder ber das Betriebsergeb nis Werbeeinnahmen oder pro Suchanfrage ausgezahlt Derzeit wird noch mit Suchergebnissen gro er Vertreter wie Google und Bing gearbeitet F r Such
194. er Shooting Stars Dieses Modell der Bewertung hat vor allem folgende Vorteile e M glichkeit eines einfachen Vergleichs mehrerer Alternativen durch Darstellung des relativen Reifegrads bzw der relativen Marktakzeptanz e gute Anschaulichkeit und M glichkeit eines schnellen berblicks durch geringe Kom plexit t Dem gegen ber sind diese Nachteile zu erw hnen e Beschr nkung auf nur zwei betrachtete Faktoren Reifegrad und Marktakzeptanz e die Matrix zeigt nur eine Momentaufnahme stellt keine Prognose dar 2 2 Kriterienkatalog zur Bewertung von Meta Suchmaschinen Die zweite Ebene der Bewertung ist die Evaluierung der Meta Suchmaschinen und speziell derer Funktionen Hierzu wird ein Kriterienkatalog mit Anforderungen an Enterprise Suchma schinen erstellt Die hier aufgez hlten Bewertungskriterien beziehen sich ausschlie lich auf die Suchmaschinen und deren Funktionalit t Projekt und lizenzspezifische Faktoren und Anforderungen werden im Bewertungskonzept aus Kapitel 2 1 abgedeckt Im Folgenden werden alle Kriterien erl utert e Codierung und Sprachunterst tzung Das Suchsystem sollte idealerweise in deutscher Sprache installiert konfiguriert und bedient werden k nnen Bez glich der Codierung muss die Suchmaschine zwingend deutsche Son derzeichen unterst tzen z B UTF 8 e Crawler Bei einem Crawler handelt es sich um einen Programmbaustein mit dem eine Suchmaschi ne auf zu durchsuchende Dokumente zugreif
195. er gr nen Suchmaschinen aus gew hlt weil sie sich durch einen hohe Reifegrad seri ses Auftreten und viel Transparenz auszeichnet Die Suchergebnisse werden durch Bing bereitgestellt und sind dadurch von gewohnt hoher Qualit t als auch sehr schnell verf gbar Als weitere Suchmaschine haben wir uns f r Yacy entschieden Hauptkriterium f r die engere Auswahl liegt bei Yacy in der v llig differenten Gesamtkonzeption Entgegen aller gro en Vertreter auf dem Markt wagt es Yacy ein Peer to Peer Konzept umzusetzen Nach intensiverer Betrachtung erweist sich das Konzept als performant und konkurrenzf hig Weiterhin untersuchten wir die Suchmaschine Swish e detaillierter Wir entschieden uns f r Swish e da das Prgramm im Web als sehr schnell in der Indexierung und Suche bewertet wird und von der Universit t Berkeley in den USA erweitert wurde Eine Reihe verschiedener Webseiten benutzt seit Jahren diese Such maschine unter anderem eine Vielzahl von Universit ten und das Guggenheim Museum Schlie lich ist die Suchmaschine Terrier in die n here Betrachtung gekommen Die Wahl fiel auf diese Suchmaschine weil einige out of the box Funktionalit ten geboten werden sollen und der Innovationsreport 2005 schrieb es erf lle alle Voraussetzungen f r eine europai sche Antwort auf Google Dies galt es n her zu betrachten Anhand der Marktanalyse wer den dann drei Favoriten die den Anforderungen des Unternehmens entsprechen empfoh len 4
196. er zu verkn pfen Jegliche Form von Join muss direkt im Anwendungsprogramm vorgenommen werden Zusammengefasst l sst sich sagen dass eine Key Value Datenbank lediglich eine Zusammenstellung mehrerer zweispaltiger Tabellen ist wobei jeweils in der ersten Spalte der Schl ssel und in der zweiten der Wert gespeichert wird 28 Die Gruppe der Key Value Datenbanken l sst sich in On Disk Datenbanken und In Memory Datenbanken unterteilen On Disk Datenbanken auch Hauptspeicherdatenbanken genannt speichern die Daten direkt auf der Festplatte und k nnen somit gut als Datenspeicher ge nutzt werden Bei der In Memory Variante werden die Daten im Cache gehalten ohne im Hintergrund eine Datenbank auf der Festplatte zu haben Sie k nnen somit gut als verteilte Cache Speichersysteme genutzt werden 34 Vgl Edlich S u a 2010 S 131 35 Vgl Edlich S u a 2010 S 7 Vgl freiesMagazin 2010 37 Vgl P rner H A 2011 38 gl freiesMagazin 2010 39 Vgl P rner H A 2011 KOS content 655 11 Zu den allgemeinen Vertretern geh ren beispielsweise Redis Riak Voldemort und Dynamo Bei Redis handelt es sich um eine In Memory Datenbank In dieser Arbeit wird speziell auf Voldemort eingegangen um anhand dieses Systems die Funktionsweise und die Eigen schaften der Key Value Datenbanken zu verdeutlichen Sp ter wird hiervon auch ein Proto typ entwickelt Geeignete Einsatzm glichkeiten der Key Value Stores biet
197. erbindung ber einen konfigurierbaren TCP Port zum NameNode auf Daraufhin kann er ber das Client Protokoll mit dem NameNode kommunizieren Der DataNode kommuniziert ber das DataNode Protokoll mit dem NameNode Eine Art Remote Procedure Call RPC umh llt das Client Protokoll und das DataNode Protokoll Somit startet ein NameNode niemals einen RPC Aufruf er erhalt lediglich RPC Anfragen die durch einen DataNode oder Client ausge l st wurden Zugriffsm glichkeiten Auf das HDFS kann auf unterschiedliche Art und Weise zugegriffen werden Standardm ig stellt HDFS ein Application Programming Interface API f r andere Anwendungen und einen Wrapper f r die Programmiersprache C bereit Zus tzlich kann ber einen Browser und dem Web based Distributed Authoring and Versioning WebDAV Protokoll im Dateisystem einer HDFS Instanz navigiert werden 20 Vgl Borthakur D 2009 S 9 21 Ebenda S 9 7 Ebenda S 12 KOS content 607 FS Shell HDFS erlaubt die Organisation von Benutzerdaten in Form von Dateien und Verzeichnissen Zur Benutzer Interaktion mit den Daten innerhalb des Dateisystems bietet HDFS ein Kom mandozeilen Interface namens FS Shell File System Shell Die FS Shell wird genutzt um einen berblick ber die Daten zu erhalten und um sie zu manipulieren Browser Interface Eine typische HDFS Installation verf gt ber einen Webserver um das Dateisystems ber einen konfigurierbaren TCP Port erreic
198. erden wie zum Beispiel Aktualit t Speicherort Autor oder Art der Quelle Die Suchmaschine ist in kleinen Teilen auch selbstlernend Sie kann je nach dem Ranking des Benutzers die Suchinhalte hervorheben und anzeigen Diese Gewichtung ist dynamisch und kann wie die anderen Punkte auch jederzeit angepasst oder parallel genutzt werden Hinsichtlich der Administration bietet HSearch einen reichen Funktionsumfang Zum einen l sst sich ein Benutzerzugriffskonzept festlegen bei dem UserlDs Rollen Teams und Abtei lungen verwaltet werden k nnen Zum anderen lassen sich beispielsweise Ranking Regeln Sprachen und Datenquellen einrichten Einen weiteren Bestandteil der Administration bilden Reporting und Monitoring Werkzeuge zur berwachung von Indizierung und Suchvorg n gen Im Reporting lassen sich die Top 100 Abfragen darstellen ergebnislose Suchl ufe sammeln und W rterbuch sowie Synonymsammlungen erstellen 7 Weitere Funktionen von HSearch k nnen Anhang 1 entnommen werden Abschlie end kann festgehalten werden dass HSearch eine auf Hadoop basierende Suchmaschine ist die viele weitreichende Funktionen f r den Anwender bietet Aktuell steht HSearch noch bei der Version 0 94 und scheint sich in einer erweiterten Betaphase zu befinden Positiv aufgefallen sind vor allem die weitreichenden M glichkeiten unterschiedlichste Dokumente zu suchen und die zahlreichen Administrationswerkzeuge Fortschritte m ssen gerade noch im Bereich Dokume
199. erden eine LDAP Anbindung sowie die Integration anderer Sicher heitsschnittstellen wie z B Kerberos oder X 509 unterst tzt Zudem erlaubt HSearch eine Authentifizierung ber Web Proxys und die Verschl sselung sensitiver Indizes Hardwaresei tig ist eine Skalierung mit mehreren Festplatten gew hrleistet Auch ist eine parallele Indizie rung und Suche in Clusterumgebungen m glich Innerhalb von Clusterverb nden kann eine Replikation konfiguriert werden was zu einer verbesserten Ausfallsicherheit beitr gt So k nnen bei einem Maschinenausfall die dann fehlenden Daten ber eine andere Maschine wiederhergestellt werden 2 Bei der Indizierung wird derzeit nur die englische Sprache unterst tzt Hierbei sind Synony me und Stoppw rter bzw s tze m glich Mit letzteren sind solche W rter und S tze ge 53 Vgl Bizosys Technologies Pvt Ltd 2010b 54 Vgl ebenda KOS content 479 33 meint die bei einer Volltextindizierung aufgrund ihres sehr h ufigen Vorkommens nicht er fasst werden z B Artikel Konjunktionen oder Pr positionen Dar ber hinaus k nnen 267 Dateiendungen indiziert werden Zur Reduzierung des Speicherbedarfs k nnen Indizes komprimiert werden Weitere Funktionalit ten sind die Begriffskl rung Meinten Sie so wie die unscharfe Suche Die Gewichtung der Suchergebnisse kann ber Ranking Methoden konfiguriert werden Dabei l sst sich die Relevanz der Ergebnisse anhand verschiedener Faktoren festgelegt w
200. errier eine ernst zu nehmende Alternative darstellt und durch seine Flexibilit t und Anpassbar F higkeit berzeugt Ein Einsatz in dem Unternehmen ist nach jetzigem Kenntnisstand m glich und zu empfehlen Abschlie end wird die Bewer tung von Terrier mit einem Zitat der Universit t von Glasgow beendet welches Aufschluss ber die Charakteristika von Terrier gibt Terrier implements state of the art indexing and retrieval functionalities and provides an ideal platform for the rapid development and evalua tion of large scale retrieval applications Anforderungen der VERS Erf llt Besonderheiten Viele out of the box Vorteile Ein vordefiniertes Web Interface ist vorhanden 4 6 Lucene Lucene ist ein in der Programmiersprache Java geschriebenes performantes und plattform bergreifendes Framework das eine Suchmaschinenbibliothek bereitstellt Diese stellt Klas sen und Funktionen zur Verf gung aus denen eigene Volltextsuchmaschinen erstellt werden k nnen Bekannt ist Lucene vor allem aufgrund der Realisierung der Suchfunktion in Wi kipedia 4 6 1 Vorteile e Geringer RAM Bedarf e Leistungsstarke Indizierung 41 Vgl innovations report de 2005 j terrier org 2011 8 Vgl Heidenreich A o J http www lucene de Stand 27 12 2012 44 Vgl o V 2012 http de wikipedia org wiki Lucene Stand 22 12 2012 as Vgl o V 2012 http lucene apache org core Stand 18 12 2012 KOS con
201. erteilung analog zu Schritt 3 em Abb 11 Elasticsearch Indexierung und Indexreplikation Schritt 4 Wie auch schon bei Solr werden Suchanfragen ber HTTP GET abgewickelt Daneben ist auch die Facettensuche deren Funktionsweise in Kapitel 3 2 2 beschrieben wurde eine in Elasticsearch unterst tzte Funktion Eine weitere Funktion die sich Solr und Elasticsearch teilen ist die Cloud Anbindung Ebenfalls erw hnenswert ist das sog Gateway Mit dessen Hilfe kann im Falle eines Ausfalls des gesamten Clusterverbunds der letzte Zustand wieder hergestellt werden Dieser kann entweder aus dem lokalen Node Speicher eingespielt oder aus einem Shared Storage z B NFS oder Amazon Simple Storage Service repliziert wer den 28 46 Vgl Elasticsearch o J a KOS content 477 31 Aus der Analyse von Elasticsearch geht hervor dass einige n tzliche Funktionen aus dem Lucene Projekt auch f r Elasticsearch bernommen wurden Auch finden sich einige hn lichkeiten mit Solr z B JSON und REST Architektur Elasticsearch kann sich insbesondere mit Funktionen wie zum Beispiel der Indexreplikation zur Lastverteilung Gateway zur ver besserten Ausfallsicherheit oder der Bereitstellung eines NoSQL Datenspeichers von den anderen Suchmaschinenprojekten abheben Jedoch signalisiert die aktuelle Version 0 20 2 dass das Projekt noch nicht ganz ausgereift und sich noch ein einer recht fr hen Entwick lungsphase befindet 3 4 HSe
202. ertungskriterien bilden die Grundlage eines Bewertungskonzepts mit dem speziell die Funktionalit ten und Eigenschaften der Suchmaschinen bewertet wurden Zus tzlich wurde nach dem Vorbild der Vier Felder Matrix der Boston Consulting Group ein Konzept zur Bewertung und Gegen berstellung von Reife grad und Marktakzeptanz definiert Im Zentrum des Projekts standen die vier Open Source Projekte Lucene Solr Elasticsearch und HSearch Aus der reinen Projektbewertung ging hervor dass die beiden von der Apache Stiftung gef rderten Projekte Lucene und Solr eine akzeptable Marktakzeptanz und einen guten Reifegrad besitzen Dagegen erschienen die Projekte Elasticsearch und insbesondere HSearch noch unausgereift und bieten noch eine Menge Verbesserungspotential Die Be wertung der Produkte selbst ergab dass Lucene und Elasticsearch nicht alle Pflichtkriterien erf llen und damit nicht f r den Einsatz in diesem Fallbeispiel geeignet sind HSearch erwies sich dabei als unausgereiftes Produkt bei dem v a aufgrund mangelnder Unterst tzung durch die Community wichtige Anforderungen nicht in ausreichendem Ma e erf llt wurden Solr konnte sich bei nahezu allen Kriterien durchsetzen und geht damit als beste Suchma schine aus dem Projekt hervor Der Markt bietet eine gro e Auswahl an Open Source Suchmaschinen Damit ist nicht aus zuschlie en dass andere Open Source L sungen existieren die die Anforderungen besser erf llen als die vier in diesem Projek
203. es jedoch vertretbar da hier sehr gro e Datenmengen verarbeitet werden die ein Relationales DBS gar nicht leisten k nnte Bei Hive besonders hervorzuheben sind seine Skalierbarkeit Erweiterbarkeit und Fehlertole Lanz P gt Vgl Wartala R 2012 S 101 Vgl The Apache Software Foundation 2012a Vgl Wartala R 2012 S 101 Vgl The Apache Software Foundation 2012a Vgl Wartala R 2012 S 101 Vgl The Apache Software Foundation 2012b 9 Oo O9 OO a N O KOS content 622 24 Architektur HADOOP MAP REDUCE HDFS Abb 6 Hive Architektur und Kopplung mit Hadoop Abb 6 stellt die verschiedenen Komponenten von Hive dar Hierzu geh rt der Metastore in welchem die Datenbank Tabellen und Views als Objekte verwaltet werden StandardmaBig wird hier die Datenbank Derby Apache Foundation als Megastore genutzt Die Tabellen verwaltung geschieht partitioniert d h die Daten werden logisch nach gesetzten Kriterien gruppiert und auf verschiedene Tabellen verteilt z B alle Daten eines Jahres Artikels oder Kunden etc Hive lasst sich am besten und schnellsten Uber die Kommandozeile Command Line Inter face ausf hren In einer Shell m ssen die Hive Befehle eingegeben werden Die Trennung der Befehle erfolgt wie auch in SQL mit Semikolon Alternativ l sst sich Hive auch webba siert nutzen Hier erfolgt der Zugriff auf die Daten mittels des Hive Web Interface Der Query Lang
204. esen Dem invertierten Index sind zwei Prozesse vorgelagert zum einem das Stopword Removal und zum anderen das Stemming Das Stopword Removal basiert auf einer Nega tivliste Dort sind jene Worte enthalten die in einem Text so h ufig vorkommen dass sie f r die Suche keinerlei Aussagekraft besitzen Dies sind z B Worte wie der ist und hat Solche W rter werden herausgefiltert und nicht f r den Index herangezogen Das Stemming reduziert W rter auf ihren Wortstamm Beispielweise werden gefunden und findet zu find reduziert Durch diese beiden Prozesse wird die zu indizierende Menge in der Regel um etwa 70 reduziert Jedoch sind diese beiden Verfahren sprachenabh ngig siehe hier zu Abb 5 18 Vgl Ziegler C 2006 S 120 f 19 Vgl ebenda S 121 f KOS content 467 21 Anfrage Sortierung invertierte Indexierung d w gt w d som Stopword Removal III Abb 5 Funktionsweise von Lucene Ergebnismenge Indizierung Eine weitere Funktion von Lucene ist die Datumsbereichssuche Mit dieser Funktion ist es m glich Dokumente zu suchen die innerhalb eines bestimmten Zeitraums erstellt oder zum letzten Mal abgespeichert wurden Lucene besitzt auch eine Vielzahl von Operatoren wie z B die M glichkeit Wildcards einzu setzen Damit kann mit einem Suchbefehl nach mehreren hnlichen W rtern gesucht wer den Weitere wichtige Operatoren sind i
205. essen wir uns noch ueberlegen LG Sophie NSERT INTO Messa ge Key User ID From User Name From User ID To User Name To Subject Message VALUES 2013 01 10 19 57 16 sophie lingelbach web de Sophie tana brunner sowieso de Tana Re Re Projekt NoSQL Ah gut das gehen wir dann Morgen durch Schoenen Abend CREATE index Sent From ON Message User Name From SELECT COUNT FROM Message WHERE User Name From Sophie SELECT User Name From User Name To Subject Message FROM Message WHERE User Name Promi Sophie UPDATE Message SET User Name To Christin WHERE User Name From Sophie DELETE FROM Message WHERE Key 2013 01 10 19 57 16 CLI Message 2013 01 10 19 57 16 From Mail name From Mail value sophie lingelbach web de timestamp 125559999 To Mail name From Mail value tana brunner sowieso de timestamp 125559999 From Name name From Name value Sophie timestamp 125559999 Fr To_Name name From Mail value Tana timestamp 125559999 Subject name Subject value Projekt NoSQL timestamp 125559999 ty Message name Message value Re Re Projekt NoSQL Ab gut das gehen wir dann Morgen durch Schoenen Abend timestamp 125559999 F
206. ew better proxies for measuring economic and politicalrisk in the former Soviet Union than the interest rate differentialbetween Estonia and Russia www kemper com 80 lite curious global_economy weekly_ report estonial html WT01 B13 137 852570874000 11 046 Abbildung 9 Web Suchmaske bzw customized Version der Suchmaschine Terrier 4 5 1 Vorteile e Folgende Out of the Box Vorteile o Indexieren von Dokumentensammlungen die mit Tags versehen sind Bei spiel Text REtrieval Conference TREC Testsammlung o Indexieren verschiedener Formate m glich HTML PDF Word Excel und PowerPoint Dateien o Unterst tzen f r verteiltes Indexieren in den Hadoop MapReduce Einstellun gen e Indexieren der Feldinformationen wie TITEL oder H1 HTML Tag e Indexieren von Positionsinformationen eines Wortes oder Blocks e Unterst tzt verschiedene Kodierungen UTF um mehrsprachige Wiederherstellung zu erm glichen Damit werden auch die Umlaute im Deutschen darstellbar sein e Unterst tzt das ndern von benutzten Tokens e Alternativ schnelleres single pass Indexieren m glich e Desktop Kommandozeilen und Web basierte Suchinterfaces sind verf gbar e Kann in Applikationen integriert werden wie der bereits existierenden Desktop Suche 38 Enthalten in terrier org 2011 KOS content 416 e Erweiterter Such Sprachen Support wie Synonyme und Operatoren siehe http terrier org docs v3 5 querylanguage html e Unter
207. eziell Beitr ge zu Probleml sungen und Beitr ge von Entwicklern Als quantitatives Merkmal kann die Zahl der Forumseintr ge bzw Themen herangezogen werden Das kosystem eines Open Source Projekts setzt 4 Vgl Golembowska A u a 2012 S 18 ff 5 Vgl ebenda S 21 f KOS content 451 sich aus einer Reihe an Stakeholdern zusammen Darunter fallen Anwender private und gesch ftliche Nutzer Anbieter Distributoren Dienstleister Meinungsbildner Analysten Presse Experten unterst tzende Stiftungen Non Profit Organisationen sowie die eben erw hnte Community Weitere Bestandteile des kosystems bilden die vorhandenen Projekte und die angebotenen Produkte bzw L sungen P F r das Bewertungskonzept w re zu bewerten inwieweit die hier genannten Stakeholder und Bestandteile im jeweiligen Open Source Projekt ausgepr gt sind e direkter Ansprechpartner Ein hilfreicher Aspekt f r Neueinsteiger ist das Vorhandensein von Kontaktdaten des Entwickler team s Dabei ist auch zu beurteilen ob bei einer Anfrage ein Kontakt zu stande gekommen ist und wie die Qualit t einer m glichen Antwort zu werten ist e Vorhandensein von FAQ Eine sehr schnelle Probleml sung bieten Frequently Asked Questions FAQs Ein FAQ ist h ufig auf der Projekt Homepage als erste Anlaufstelle bei Fragen zu finden Die Bewertung der Suchmaschinenprojekte erfolgt nach dem folgenden Schema erf llt ein Projekt ein Kriterium gar nic
208. f zu bekommen bieten mittlerweile gro e und kleine Anbieter viele verschiedene Werkzeuge an welche allesamt auf sogenannten Not only SQL NoSQL Datenbanken aufbauen Zentraler Bestandteil der NoSQL Systeme ist h ufig die Technologie Hadoop Hadoop ist ein Software Framework das in Java programmiert wurde Es erlaubt dem An wender rechenintensive Prozesse mit gro em Datenvolumen auf Server Clustern abarbei ten zu k nnen und somit die Effizienz des Datendurchsatzes enorm zu steigern Hadoop besteht aus zwei Teilen dem Hadoop Distributed File System HDFS und dem MapReduce Algorithmus HDFS verteilt die Daten auf die einzelnen Systeme Verarbeitet werden de Da ten auf den einzelnen Rechnern mit Hilfe des MapReduce Algorithmus Weitere Werkzeuge bauen verschiedenste Funktionen um den Kern der Hadoop Technologie herum Diese er m glichen beispielsweise eine benutzerfreundliche Bedienung oder eine standardisierte Ver teilung der Daten auf die einzelnen Systeme im jeweiligen Rechner Netz Das MapReduce Programmiermodell wurde bereits Ende 2004 von Google ver ffentlicht Kurze Zeit sp ter wurde daraufhin das Open Source Projekt Hadoop von Apache gestartet welches den MapReduce Algorithmus mit HDFS kombiniert 2008 erhielt Hadoop den Status eines Top Level Projekts der Apache Software Foundation ASF Die erste offizielle Relea se Version 1 0 0 wurde Ende 2011 ver ffentlicht Heute verwenden Unternehmen wie Ebay Facebook und Google
209. faultExecutor executor new DefaultExecutor executor setStreamHandler new PumpStreamHandler stdout null null executor setExitValue 0 executor setWatchdog watchdog try executor execute cmdLine resultHandler catch lOException e1 ei printStackTrace Lst 30 Asynchronous process execution in Java 108 See http commons apache org exec 109 Cf Nemeth E Snyder G Hein T R 2007 p 67 KOS content 566 36 OD JO Om Ek ob GO CO GO GO G G CO GO bhMbMbMbMbhMbhMbMbMMbM ch ch a ch cb ch ch zk Ah zl OO OO P ON OO OO OD JO Om PS Go OO OO OO Jo Om PS ob A OO import java io lOException import org apache commons exec Commandline import org apache commons exec DefaultExecutor import org apache commons exec ExecuteWatchdog import org vertx java core Handler import org vertx java core eventbus EventBus import org vertx java core eventbus Message import org vertx java core json JsonObject import org vertx java core logging Logger import org vertx java deploy Verticle public class CommandExecutor extends Verticle Logger logger container getLogger Override public void start final EventBus eBus vertx eventBus eBus registerHandler cmd execute new Handler lt Message lt JsonObject gt gt public void handle Message lt JsonObject gt message CommandLine cmdLine new CommandLine 1s cmdLine addArgument 1h cmdLi
210. ff hig zu bekommen Nur im Ausnahmefall zum Beispiel zu Test oder Konfigurationszwecken kann HBase auf einem einzigen Rechner installiert werden 7 Architektur HBase ist nach dem bekannten Client Server Modell aufgebaut Dabei werden in HBase alle Daten in Tabellenform hnlich einer berdimensionalen Excel Tabelle gespeichert Werden Daten in die Tabelle eingef gt wird der zelleneigene Zeitstempel aktualisiert und somit der Zellinhalt versioniert ber Prim rschl ssel werden die einzelnen Zeilen der Tabelle eindeu tig referenziert Durch das Bilden von Spaltenfamilien Column Families werden in HBase die Spalten einer Tabelle gruppiert Master RegionServer Abb 5 Architektur HBase hnlich der Architektur von HDFS hat HBase einen Master Node der die Cluster verwaltet und in jedem Cluster mehrere RegionServer die Teile der Tabellen speichern und die Arbeit Vgl The Apache Software Foundation 2012c Vgl Wartala R 2012 S 142 45 Enthalten in Figui re M 2009 KOS content 618 20 auf den Daten ausf hren Vgl Abb 5 Genau wie HDFS ist die Schwachstelle von HBase der Verlust des MasterNode ber den Zeilenschl ssel jeder Zeile einer Tabelle k nnen diese in Regionen aufgeteilt wer den Eine Region beinhaltet mehrere Zeilen einer Tabelle Die verschiedenen Regionen ei ner Tabelle k nnen auf verschiedene Region Server verteilt gespeichert werden Die Vertei lung auf die
211. filinformationen von Max sieht so aus GET Max Mit folgendem Befehl k nnen die Profilinformationen von Leo abgelegt werden PUT Leo Leo Luchs 09 09 1990 K ln Um einen Datensatz zu ndern muss ein weiterer Datensatz mit dem gleichen Key und ver ndertem Value abgelegt werden Voldemort berschreibt den alten Satz dann automatisch 4 4 Cassandra Generell wird Cassandra f r alle g ngigen Plattformen angeboten Bei der Installation gibt es zwei M glichkeiten Die erste Variante ist dass man sich von der Apache Webseite die Cassandra Software herunter l dt Nachdem entpacken der Zip Datei m ssen Umgebungs variablen f r das Java sowie f r das Cassandra Verzeichnis und die Pfade f r die Daten und das Commitlog angelegt werden Danach k nnen Server und Client gestartet werden Eine genaue Beschreibung der Installation und Konfiguration befindet sich im Anhang 7 Die zweite M glichkeit besteht darin ein Cassandra Gesamtpaket von der DataStax Com munity zu verwenden Dieses Paket enth lt eine CLI Utility eine CQL Shell zur Verwendung von CQL Befehlen und ein grafisches Browser Interface das DataStax Operation Center Das Operation Center enth lt unter anderem Komponenten zur Visualisierung der Daten bankauslastung der Datenbankoperationen der Knotenverteilung sowie die Anzeige der Daten selbst Daf r wird die DataStax Software heruntergeladen und entpackt Danach muss lediglich der Installationsroutine gefolgt
212. formation geht auf Kollisionskurs http www mittelstandswiki de wissen Big_D ata Abruf 16 01 2013 A Lotus Notes Data Connector for Solr http www searchtechnologies com lotus notes connectors solr html Abruf 18 01 2013 HSearch From Bizosys http sourceforge net projects bizosyshsearc h support Abruf 18 01 2013 Apache Lucene Index File Formats http lucene apache org core 3_6_1 fileform ats html Abruf 18 01 2013 Apache Lucene Core http lucene apache org core Abruf 06 12 2012 KOS content 520 The Apache Software Foundation 2012b The Apache Software Foundation 2012c The Apache Software Foundation 2012d The Apache Software Foundation 2012e The Apache Software Foundation 2012f The Apache Software Foundation 20129 The Apache Software Foundation 2012h The Apache Software Foundation 2012i The Apache Software Foundation 2012j The Apache Software Foundation 2012k The Apache Software Foundation 20121 The Apache Software Foundation 2012m The Apache Software Foundation 2012n 74 Apache Solr http lucene apache org solr Abruf 12 12 2012 What Is Apache Hadoop http hadoop apache org Abruf 18 12 2012 Apache License http www apache org licenses LICENSE 2 0 Abruf 18 01 2013 Lucene Core News http lucene apache org core corenews html Abruf 18 01 2013 Lucene Release Docs http lucene apache org core documentation
213. ge e speedchilli IT solutions e JetBrains Anzahl der Downloads keine Informationen vorhanden Traffic Rank Stand Januar 2013 elasticsearch org e globaler Rang 52 177 e Rang in Deutschland 55 799 Tab 14 Bewertung des Elasticsearch Projekts 131 Vgl Elasticsearch o J g 132 Vgl GitHub Inc 2013 133 Vgl Elasticsearch o Jh 134 Vgl Elasticsearch o J g 135 Vgl Alexa Internet Inc 2013b KOS content 495 49 Als n chstes wird der Fokus auf Elasticsearch selbst als Suchmaschine gelegt Tab 15 Elasticsearch Kriterium Beurteilung grunds tzliche Funktionen Codierung u Sprachunter unterst tzt Ein und Ausgaben in Unicode stutzung Crawler besitzt Crawler out of the box uber das Toolkit Apache Tika lassen sich diverse Datei en indexieren e Office Document Format e PDF e HTML XML Dateiunterst tzung SE e Rich Text Format e Audioformate MP3 e MIDI e Videoformate Flash e Bildformate JPEG e JAVA Klassen Dateien Cloud Unterstutzung Cloud Unterst tzung out of the box Suchalgorithmus Volltextsuche Volltextsuche unterst tzt gro e Anzahl an Modulen u a f r e Synonyme e Stoppw rter Synonyme u Korrektur e Gro Kleinschreibung e zusammengesetzte W rter Listen mit Synonymen u m ssen selbst gepflegt wer den 136 Vgl o V 2012a 137 Vgl Elasticsearch o J a 138 Vgl Elasticsea
214. ge applications i e JS UI with only one HTML page served Currently this means that more complex software is much more difficult to build using Meteor especially if it requires serving multiple pages e g public material user area and administrative area The POC implemented as part of this paper was originally planned to be built using Meteor this however had to be shelved as undocumented errors arose These quickly became unfixable as the error messages provided proved no help in debugging and conventional JS debuggers also were unable to provide assistance Trying to shoehorn Meteor into something it was not built for this behavior is not unexpected Opa is conceptually similar although its technical underpinnings as well as the developer used framework is different which is illustrated in fig 12 144 138 Cf Schmidt G et al w y a 139 Cf ibid 140 Cf ibid 141 Cf ibid 142 Cf Schmidt G et al w y b 143 Cf ibid 144 Opa Team w y KOS content 578 OO Joo P GO A GO GO C G GO Go bhM bhMbM bhMbMbhM bMbhMMbM h ch a ch ch ch ch ch zb ch ARON OO oO OD JO OS ON OO OO JO Om P oh zz OO 48 hello opa import stdlib themes bootstrap database int counter 0 function action _ counter msg lt div gt Thank you user number counter lt div gt function page lt h1 id msg gt Hello lt h1 gt lt a class btn onclick action gt Click me lt a gt 1 2 3 4 5 6
215. gfaltigen M glichkeiten zur Verwaltung der gespeicherten Daten Neben der Verwaltung des Lebenszyklus der Daten automati sches L schen Archivieren k nnen auch die Kosten die mit der Nutzung von S3 anfallen kontrolliert werden indem sie z B auf die Kostenstellen verteilt werden in denen sie tats ch lich anfallen Berichte zu diesen Verwaltungs und Kontrollmechanismen runden das Ange bot von Amazon S3 ab Preise Bei S3 wird nur das gezahlt was auch wirklich genutzt wird Je nach Speichermethode fallen unterschiedliche Geb hren pro Terabyte und Zeiteinheit z B Monat f r die Speicherung der Daten an Die Anfrage sowie bertragung der Daten werden differenziert nach Anzahl Ab fragen bzw nach Terabyte pro Monat abgerechnet Verwendung Amazon S3 bietet eine userfreundliche Anwendung in wenigen Schritten Erstellen Bucket Wahl der Region Objekte ins Bucket hochladen Einrichten von Zugriffskontrollen Das Ganze kann ber die Amazon Web Services AWS Management Console abgewickelt werden Addan Dome M Delete an gt Objecttoa ove an e Object and Sign Up for Create a D Bucket Object Object Bucket Amazon S3 Bucket Abb 7 Anleitung Amazon S3 unter Verwendung der AWS Management Console Di 100 Vgl Amazon Web Services Inc 2012a 101 vol ebenda 10 Vgl ebenda 103 vol Amazon Web Services Inc 2012b 104 Enthalten in Amazon Web Services Inc 2012b KOS content 631 3
216. gl The Apache Software Foundation 2012c Vgl Wartala R 2012 S 144 Vgl Wartala R 2012 S 144 ff Vgl Wartala R 2012 S 147 Vgl Wartala R 2012 S 150 ff o o E E OO KOS content 619 21 Thrift Services die mit verschiedenen Programmiersprachen arbeiten k nnen In der Zukunft soll auch noch der Zugriff auf HBase ber Apache Avro ein Daten Serialisierungs Framework erm glicht werden 5 2 Hadoop Streaming blicherweise werden MapReduce Anwendungen mit Hilfe der Hadoop API in Java pro grammiert Da es jedoch seitens der Entwickler programmspezifische Vorgaben gibt in wel cher Sprache sie programmieren m ssen bietet Hadoop eine Streaming Schnittstelle an Mit dieser k nnen Daten ber die Standard Ein und Ausgabe gestreamt werden Hierf r ben tigt man das Hadoop Java Archive JAR hadoop streaming 0 20 2 jar bergibt man diesem JAR das Mapper und Reducer Skript sowie Ein und Ausgabedaten Comma separated values CSV Dateien als Parameter so werden diese von der Streaming Anwendung in die Hadoop Umgebung geladen Diese Technologie erm glicht nicht nur die Programmierung von Mappern und Reducern in anderen Sprachen sondern zus tzlich MapReduce Anwendungen in lokalen Hadoop Umgebungen zu testen Zur Verdeutlichung hier eine detailliertere Beschreibung dieses Hadoop Streaming Dienstes HADOOP HOME bin hadoop jar hadoop streaming jar input myInputDirs
217. glichkeiten der Datenpartitionierung Durch das Insert Sharding werden alle Kno ten eines Typs auf eine spezielle Partition abgelegt Das Runtime Sharding gibt vor dass h ufig zusammen abgefragte Knoten auf der gleichen Graphenpartition liegen Die partielle Replikation ist eine Optimierung der Partitionierung Daten von beispielsweise Partitionen 1 werden repliziert und auf Partition 2 bertragen damit sie sich n her sind Bewertung Im Unterschied zu anderen NoSQL Datenbanken ist Neo4j ACID konform sofern es als eigenst ndiger Server l uft Als Embedded System erf llt Neo4j das BASE Prinzip Das Durchsuchen des Graphen nach gewissen Kriterien erfolgt mittels eines Index Neo4j nutzt dazu ein externes Indexsystem mit welchem es beispielsweise Volltextsuchen bew ltigen kann Neo4j wird vor allem f r die Verwaltung gro er Datenmengen 10 Milliarden Knoten Kanten und Eigenschaften verwendet und ist in der Lage bis zu 1 Millionen Beziehungen pro Sekunde zu traversieren Wesentliche Einsatzgebiete der Datenbank sind Soziale Daten Geographische Daten Empfehlungssysteme und Content Management Systeme Die Vor teile liegen in ihrer Robustheit in einer gro en Community durch die die Anbindungen an einige Programmierschnittstellen wie C Ruby Scala oder Python gew hrleistet werden und im High Availability Clustering Von Nachteil sind die Java und die Sharding Begrenzung Die Java Begrenzung f hrt dazu dass die Performanz stark von der J
218. gt und beim automatischen Modus bernehmen die beteiligten Server die Zuweisung eigenst ndig Eine weiterf hrende Funktion von MongoDB ist die Unterst tzung eines automatischen horizontalen Skalierens der Datenbank was auch oft unter dem Begriff Sharding erw hnt wird Der Ausbau eines einzelnen Servers zu einem Cluster kann ohne gro e Umst nde umgesetzt werden Einsatzgebiete Da die Datenbank von Anfang an f r den Einsatz in Webapplikationen vorgesehen war lassen sich mit MongoDB Aufgaben wie Dokumentenmanagement das Verwalten von An wender und Sitzungsdaten Logging Echt Zeit Analysen und generell Aufgaben mit einem hohen Datenaufkommen einfach und bequem l sen Bewertung Die Entwicklung dieser Datenbank stellt eine B ndelung von langj hrigen technischen Erfah rungen dar MongoDB hat das Ziel die L cke zwischen klassischen relationalen Daten banken und den Key Value Stores zu schlie en Die Bezeichnung l sst sich von dem englischen Begriff humongous ableiten was so viel wie gigantisch oder riesig bedeu tet Anhand des Namens der Datenbank kann bereits auf eine ihrer wichtigsten Eigenschaf ten geschlossen werden die performante Verarbeitung gro er Datenmengen Neben vielf ltigen Anbindungsm glichkeiten kann MongoDB auch mit einer starken und aktiven Community punkten P F r weiterf hrende Informationen empfiehl sich das Buch von Marc Boeker mit dem Titel M
219. h Typ gibt es andere Anforderungen an das System Um jedoch einen gewissen Gesamt berblick zu schaffen und die Eigenschaften der Daten banken kurz zusammen zu fassen wurden die verschiedenen Vertreter in der folgenden Tabelle gegen bergestellt Sie werden so anhand ganz allgemeiner Kriterien aus dem Be reich der Datenbanken verglichen Vgl Edlich S u a 2010 S 82 f KOS content 670 26 Kriterien Cassandra MongoDB Voldemort Neo4j Kategorie spaltenorientierte DB dokumentenorientierte DB Key Value DB graphenorientierte DB Anwendungsbereiche e Blogging Dienste z B Wordpress Twitter e Inbox Verwaltung e gro e Datenmengen mit gleichbleibenden Abfra gen und flexiblen Schrei boperationen e Dokumentenmanagement e Verwaltung von Anwen der und Sitzungsdaten e Aufgaben mit einem hohen Datenaufkommen Microblogging Dienste Sessionverwaltung Artikelverwaltung Userverwaltung e Soziale Netzwerke e Routenplanung e Empfehlungssysteme API Thrift Support f r viele Spra chen u A Java Python Ruby PHP C C C C Java PHP Ruby Perl Phython und viele mehr Uber Treiber Java Python Ruby C Java REST JRuby Ruby Python Jython Scala Cloju re C Abfragem glichkeiten Anzahl der M glichkeiten f r eine Datenabfrage e Abfrage ber Key oder indexierte Spalten mit CQL oder CLI Befehlen e Abfrage
220. hen zu k nnen Dies erlaubt dem Benutzer die Navi gation durch das Dateisystem und zeigt den Inhalt seiner Dateien im Browser an 4 4 2 MapReduce Programmiermodell Das MapReduce Programmiermodell ist der Basisalgorithmus des Hadoop Systems Erst hierdurch wird die effiziente Verarbeitung sehr gro er Datenmengen m glich MapReduce wurde bereits 2004 von Google ver ffentlicht Durch das Auslagern von Daten und Anwendungen auf mehrere Rechner k nnen viele Funktionen parallel ausgef hrt und anschlie end zusammen evaluiert werden Um die Effizi enz zu gew hrleisten muss sichergestellt werden dass die Daten den jeweiligen Verarbei tungsprozessen zur Verf gung stehen Einfach gesagt Die Anwendungen m ssen zu den Daten kommen nicht die Daten zu den Anwendungen Somit werden also die Anwendun gen und die Daten auf die verschiedenen Knoten im Cluster System ergo bei Hadoop auf die einzelnen DataNodes verteilt Die Zerteilung der gesamten Daten in Bl cke und die Ver teilung derer wird vom HDFS bernommen Das f r die Auswertung der Daten zugrundelie gende Programmiermodell muss wegen der vielen einzelnen Datenbl cke leicht parallelisier bar sein MapReduce erf llt die Anforderungen h chst effizient Bei dem Programmiermodell geht es um Berechnungen zu den Daten nicht um deren Manipulation MapReduce besteht im Wesentlichen aus zwei einzelnen Phasen Die Phase in der die Map Funktion Mapper ausgef hrt wird und die in der
221. here Schemarestriktionen e Unterst tzung einer einfachen Datenreplikation durch verteilte Architektur e Bereitstellung einer einfachen Programmierschnittstelle e Verwendung des Konsistenzmodells BASE Die Entwicklung bestimmter Alternativen zu relationalen Datenbanken findet ihre Begr n dung in den st ndig steigenden Anforderungen an die Datenbanken Ein ausschlaggebender Faktor in diesem Kontext ist das permanent wachsende Datenvolumen welches in erster Linie durch eine nicht unerhebliche Anzahl an neuen Datenquellen verursacht wird Hervor gerufen durch die Interaktivit t des Internets oder die zunehmende Digitalisierung von Ge sch ftsprozessen ben tigen relationale Datenbanken leistungsf higere Server um die er h hte Datenverwaltung oder Performanceanforderungen abdecken zu k nnen Aber auch diese M glichkeit ist ersch pflich da die Serverleistung limitiert ist und mit der Leistung der Preis berproportional w chst Diese Faktoren summiert mit der Zunahme an weniger struk turierten Daten f hrte zu der Entwicklung alternativer Datenbanken mit denen diese Proble me behoben werden sollen Vgl Walker Morgan D 2010 4 Vgl Edlich S u a 2010 S 2 Vgl Wolff E 2012 S 16 KOS content 647 Die im Laufe der Zeit entstandenen NoSQL Datenbanken lassen sich aufgrund des Daten bankmodells folgenderma en unterteilen e dokumentenorientierte Datenbanksysteme e Graphendatenbanken e Key Value Datenban
222. hinenprojekte 4444444nHnnnnn ernennen 56 19 Ermittlung der Marktakzeptanz der Suchmaschinenprojekte 44444 gt 57 20 Bewertende Gegen berstellung der Meta Suchmaschinen ssssssssssssssssssssreseeeeee 59 KOS content 447 1 Einleitung Zu einem entscheidenden Kriterium f r die Leistungsf higkeit eines Unternehmens geh rt das schnelle orts und zeitunabh ngige Auffinden von ben tigten Informationen Zu diesem Zweck werden Wissensdatenbanken verwendet welche ebendiese Informationen speichern Eine wesentliche Herausforderung besteht darin die richtigen Informationen ohne gro en Aufwand zu finden Dies l sst sich wiederum ber Suchmaschinen bewerkstelligen Bei der Implementierung einer Suchmaschine ist zun chst die Entscheidung zu treffen ob ein kommerzielles System oder ob eine Open Source Suchmaschine verwendet werden soll Neben dem Kostenaspekt geh rt auch die Art der Weiterentwicklung zu den Vorteilen von Open Source Suchmaschinen So gibt es bei Open Source Projekten meist eine gr ere Gemeinde welche den Entstehungs und Entwicklungsprozess einer Anwendung begleitet und R ckmeldungen und Verbesserungsvorschl ge von Nutzern in kommenden Versionen umsetzt Zudem entfallen die lizenz und vertragsbedingten Restriktionen die oft mit kom merziellen Systemen verbunden sind Diese Arbeit verfolgt das Ziel eine Open Source L sung f r die Verwendung von Suchma schinen im Unternehmensbereich zu finden
223. hkeit die Datenbank mit einer Vielzahl von Daten auszutesten Heruntergeladen werden die Testdaten unter dem Link http www neo4j org develop example_data Zudem stellt Neo Technology einen LiveTry zur Verf gung der es erm glicht die Datenbank ohne sie herunterzuladen auszuprobieren gt Vgl solid IT 2012 Vgl Neo4j 2012 97 vol Neo4j 2012b KOS content 674 30 4 3 Voldemort Grunds tzlich ist Voldemort betriebssystemunabh ngig Der Prototyp wird jedoch unter Linux beziehungsweise Ubuntu realisiert da eine Installation unter Windows die Herausforderung mit sich bringt verschiedene Shell Skripte auszuf hren und sich deutlich aufw ndiger gestal tet Somit bezieht sich die folgende Anleitung auch auf Linux Die jeweils aktuellste Version der Datenbank kann von folgender Seite heruntergeladen werden https github com voldemort voldemort downloads Voraussetzung f r die Installation ist eine Installation von Java6 und Apache Ant Bevor die Datenbank gestartet werden kann m ssen die einzelnen Skripte und Konfigurationsdateien an die jeweiligen Gegebenheiten angepasst werden Eine Anleitung f r die Installation und Konfiguration der Datenbank findet sich im Anhang 6 sowie unter dem Link http cloudbuzz wordpress com 2009 10 13 volde mort installation to first run Nachdem die Datenbank gestartet ist kann jeweils auf die verschiedenen Stores zugegriffen werden Die Definition der Stores wird in der Konfiguratio
224. hlossen werden k nnen 102 Boeker M 2010 S 52 ff 103 Edlich S u a 2010 S 77 KOS content 683 39 Anhang 5 Code f r die Erstellung einer Graphendatenbank in einer Javaanwendung import org neo4j graphdb Direction import org neo4j graphdb GraphDatabaseService import org neo4j graphdb Node import org neo4j graphdb Relationship import org neo4j graphdb RelationshipType import org neo4j graphdb Transaction import org neo4j graphdb factory GraphDatabaseFactory public class HelloNeo4 String myString GraphDatabaseService graphDb Node myFirstNode Node mySecondNode Relationship myRelationship Ausgabestring Deklaration der DB Deklaration eines Knoten Deklaration eines zweiten Knotens Deklaration einer Beziehung Beziehung vom Typ Enum private static enum RelTypes implements RelationshipType KNOWS public static void maint final String args HelloNeo4J myNeoInstance new HelloNeo4J myNeolnstance createDb myNeolnstance removeData myNeoInstance shutDown main Methode creatDB Methodenaufruf removeData Methodenaufruf shutdown Methodenaufruf void createDb Initialisierung der Graphendatenbank graphDb new GraphDatabaseFactory newEmbeddedDatabase target neo4j Schreiboperationen miissen in Transaktionen gekapselt werden Transaction tx graphDb beginTx try Initialisierung des Knoten myFirstNode graphDb cr
225. how der jeweiligen Unternehmen ab Speziell f r die VERS BW ist aus der Analyse ersichtlich dass bis auf Ecosia und Yacy alle ausgew hlten Suchmaschinen geeignet w ren Die engere Wahl der 3 Favoriten wurde auf 67 Eigene Darstellung KOS content 434 grund geringf giger Unterschiede oder Besonderheiten getroffen Wichtig war vor allem ob es eine aktive Community gibt da die Suchmaschine von der VERS BW selbst implementiert werden soll Auch auf die Sicherheit ob ein Projekt in Zukunft auch weiterentwickelt und un terst tzt wird wurde gro en Wert gelegt Bei Lucene und Solr ist diese beispielsweise auf grund der Apachebasis gegeben Naheliegend ist da nat rlich die Frage wieso dann nicht auch ElasticSearch in die Favoritenliste aufgenommen wird Die Antwort darauf lautet weil sich Solr und ElasticSearch so hnlich sind dass die Autoren nur eine davon empfehlen wol len um noch ein anderes Konzept n mlich Swish e empfehlen zu k nnen Solr wurde be vorzugt da die Verbreitung gr er ist Gr nde warum z B Hsearch nicht in die Favoritenlis te aufgenommen wurde sind einerseits die geringe Verbreitung und andererseits dass Hse arch seinen Schwerpunkt auf die Suche in Big Data gesetzt hat und das f r die VERS bis dato kein Kriterium war Daher stellt die Implementierung einer Suchmaschine die f r extrem gro e Datenmengen ausgelegt ist eine unn tige Ressourcenverschwendung dar Die VERS muss nun lediglich noch
226. hreibungssprache zur Erzeugung Modifikation und L schen von Tabellen Schemata und Views z B CREATE TABLE ALTER TABLE e DML Datenmanipulationssprache zum Laden und Schreiben von Daten in Hive und aus Hive heraus e HiveQL Datenabfragesprache zum Selektieren Gruppieren Verkn pfen und Trans formieren von Daten innerhalb von Hive Genau wie mit SQL kann man mit Hive Datenbankabfragen mittels der SELECT Anweisung ausf hren Daten aus verschiedenen Tabellen sortieren oder gruppieren und das Ergebnis dieser Abfragen wiederum in einer neuen Tabelle speichern Zudem ist es mit Hive m glich mehrere Tabellen auf einmal mit Daten aus einer Quelldatei Quelltabelle zu aktualisieren Ein weiterer Vorteil von Hive ist die M glichkeit des Zugriffs auf Daten welche in HDFS oder auch HBase gespeichert sind sowie die Abfrageausf hrung ber MapReduce 67 Vgl Wartala R 2012 S 105 Vgl ebenda S 105 Vgl The Apache Software Foundation 2012a 7 Vgl Wartala R 2012 S 102 71 Vgl ebenda S 109 72 Vgl The Apache Software Foundation 2012b KOS content 624 26 Funktionen Hive implementiert zudem eine Vielzahl an Funktionen welche ber die Abfragekommandos aufgerufen werden k nnen Hierzu z hlen unter Anderem mathematische Funktionen Funk tionen zur Verarbeitung diverser Angaben Datum Zeit sowie User Defined Functions UDF welche vom Anwender selbst erstellt und in Hive eingebunden werden k
227. ht erh lt es 0 Punkte erf llt ein Projekt ein Kriterium erh lt es einen Punkt erf llt ein Projekt ein Kriterium im Vergleich zu den anderen bewerteten Suchmaschi nenprojekten in h herem Ma e quantitativ oder qualitativ bekommt es abh ngig vom relativen Erf llungsgrad 2 3 oder 4 Punkte Als Basis dient dabei nachfolgende Beurteilungsmatrix Tab 2 Diese beinhaltet alle einzel nen Bewertungskriterien sowie eine Spalte welche die Gewichtung f r die Bewertungspunk te angibt Die Gewichtungen sind der Quelle Entwicklung eines Modells zur Bewertung von Open Source Produkten hinsichtlich eines produktiven Einsatzes Golembowska A u a 2012 entnommen In den Spalten der Suchmaschinen steht die erreichte Punktzahl 0 bis 4 Die erreichte Punktzahl wird mit der jeweiligen Gewichtung multipliziert und die dadurch ermittelten Werte werden in den Summenzeilen der zugeh rigen Kategorie aufsummiert 6 Vgl Zacher M 2007 7 Vgl Golembowska A u a 2012 S 22 f KOS content 452 Schlie lich werden die Werte aus den Summenzeilen der Kategorien mit ihrer Gewichtung multipliziert und in der untersten Summenzeile summiert Kriterium Gewichtung Suchmaschinen Lucene Solr Elastic HSearch search Produktalter Lizenzen Plattform u Kompatibilitat Funktionalit t T ETEL Releaseabst nde SUMME Produkt Benutzerhandbuch vorhanden Sprache der Dokumentation Qualit t der Dokumen
228. icht nur die Pflichtkrite rien sondern auch viele der zus tzlichen Bewertungspunkte und kann alle geforderten Da tenquellen Wiki Systeme Dateien auf Netzlaufwerken Notes Datenbanken webbasierte Dokumente indexieren Auch das Open Source Projekt unter dem Solr entwickelt wird er scheint aufgrund eines akzeptablen Reifegrads und einer soliden Marktakzeptanz durchaus vielversprechend Die rege Aktivit t der Community das gut entwickelte kosystem und Apache als unterst tzende Stiftung sind weitere Argumente die f r die Zukunft des Solr Projekts sprechen Von den vier analysierten Enterprise Suchmaschinen ist Solr als Such maschinenl sung bei den in dieser Arbeit gegebenen Anforderungen zu empfehlen KOS content 508 62 6 Zusammenfassung und Ausblick Das Projekt hat das Ziel verfolgt die Einsetzbarkeit von Meta Suchmaschinen zur Abde ckung verschiedener Bereiche zu evaluieren Das Augenmerk lag dabei ausschlie lich auf Open Source Projekten Als Basis zur Evaluierung diente ein Kriterienkatalog mit Anforde rungen die f r ein Unternehmen gelten k nnen Das oberste Ziel war es eine Volltext Suchmaschinenl sung zu finden mit der m glichst viele Datenquellen angebunden werden k nnen Zudem musste ein vorhandenes Berechti gungskonzept auch innerhalb des Suchmaschinenkonzepts wiederverwendet werden k n nen sowie eine Unterst tzung deutscher Sonderzeichen gew hrleistet sein Diese Anforderungen zusammen mit anderen Bew
229. icle instance remains single threaded Technically seen there is more than one event loop but Vert x employs a mechanism that ensures that all events that are related e g because they triggered each other are run in the same context i e the same thread This allows real concurrency while providing the benefits of single threaded programming style Vert x also includes a distributed event bus which enables verticles to communicate with each other either within the same instance or across different instances The event bus al See http nodejs org dist latest 42 Cf Joyent Inc w y b 43 piscisaureus 2011 Cf 4 Cf Thornsby J 2010 45 See http opensource org licenses MIT KOS content 542 12 Instance Instance Verticle Verticle Verticle Verticle Event bus Background Pool Worker Verticle Worker Verticle Fig 6 Abstracted deployment units of Vert x lows direct communication with in browser JavaScript as well Vert x uses the SockJS library for this purpose which is a wrapper around normal websockets with a fallback to alternative technologies such as long polling This is shown schematically in Fig 7 Vert x allows to run I O heavy tasks in separate worker threads that reside in a so called background pool as these tasks would otherwise block the event loop as described in section
230. iddleware as use case for Node js This appendix is to briefly highlight theoretical as well as practical perspectives worth noting regarding the usage of Node js and Vert x as middleware of which a definition by Geihs K can be found in the blockquote The term middleware refers to the software layer between the operating sys tem including the basic communication protocols and the distributed applications that interact via the network This software infrastructure facilitates the interaction among distributed software modules 128 The JVM and its associated libraries building the foundation for Vert x are a classic example of the concept defined above although most of the currently available JVM middleware is syn chronously implemented This offers opportunities to leverage the underlying concepts of both frameworks regarding business logic implementation for middleware development Realization of this potential manifests itself not only in the number of packages available on npm 21 104 as of January 18 2013 7 but also in new projects built on top of Node js One issue mentioned when dealing with middleware is the format of messages that are ex changed among distributed systems As Node js brings a typical client side scripting lan guage to the server side the developer can take advantage of that fact by using the serialization format JavaScript Object Notation JSON by using application json as the response content type
231. ie einzelnen Wikis ebenfalls durchsuchen kann Was allerdings als verbesserungsw rdig eingestuft wur de sind die gruppenbezogenen Zugriffsrechte Diese sind zwar schon vorhanden m ssen aber teilweise genauer definiert werden So ist der Zugriff von der Gruppenzugeh rigkeit abh ngig und den Attributwerten im Verzeichnisdienst Durch LDAP wird ein bestimmtes Zugriffsrecht auf ein Wiki System erteilt User die nicht angemeldet sind haben keine Be rechtigung auf Dokumente zuzugreifen Anhand der Gruppenzuordnung ist definiert ob ein schreibender Zugriff auf ein Wiki zul ssig ist oder nicht Ansonsten d rfen Dokumente nur gelesen werden Die bergeordnete Suchmaschien soll Open Source basiert sein wobei es hier keine Ein schr nkung gibt welche Open Source Suchmaschinen untersucht und sp ter eingesetzt werden soll Hier w nscht der Kunde eine unabh ngige Analyse einiger L sungen Bei den Prgrammiertechniken die von den L sungen vorausgesetzt werden gibt es allerdings eine Einschr nkung Das h ngt damit zusammen das die Implementierung der neuen Such L sung von der internen IT Abteilung durchgef hrt werden soll In der VERS sind Kenntnisse ber Java und XML vorhanden nicht jedoch ber JSON Dies ist ein wichtiges Kriterium da 4 Vgl Fragebogen s Anhang 13 Vgl Fragebogen s Anhang KOS content 401 der Programmieraufwand bei der Integration einer Suchmachine ein gro er Bestandteil ist und unbedingt in
232. iki Seiten um mittels Gruppenzugeh rigkeit e Nicht angemeldete User haben keinerlei Berechtigungen ALL e Benutzer d rfen lesend auf das Wiki zugreifen User Die Anmeldung wird ber das eDirectory Attribut VERSbwWiki reguliert e Uber die Gruppenzuordnung im eDirectory wird der schreibende Zugriff auf das Wiki geregelt Wiki_IT _Grp 2 Detaillierte Erkl rung wie Intranet Wikis Suche bisher funktioniert hat gt Suche in den einzelnen Wiki Systemen ber die interne Wiki Suche m glich gt Zentrale Suchmaske f r alle Wiki Systeme n tig Suche ber alle Wikis gt Einbindung aller relevanter Daten und Dokumente pdf in die bergeordnete Suche gt Ber cksichtigung der in den Wiki Systemen g ltigen Zugriffsrechte durch die Suchfunktion Wie es auch bei der Wiki internen Suche der Fall ist 3 Zweck a Wird sie f r das Intranet verwendet oder soll eine Website Suche auf der eigenen Website implementiert werden Ist das Internet komplett au en vor gt Das Internet ist komplett ausgeschlossen gt Die Suchmaschine wird nur im eigenen Netz verwendet b Soll die Open Source Suchmaschine Out of the Box lauff hig sein oder m chte man ein eigenes Interface zum Bedienen der Suchmaschine gt Egal 4 Welche Systeme m ssen angebunden werden Datenbanken gt Wiki Systeme 5 Welche Systeme sind bereits angebunden gt Verschiedene Suchl sungen im Einsatz gt Erste Tests mit Suchl sungen bei denen die Wiki
233. ile und Funktionalit ten von Apache Lucene und er g nzt diese Solr ist aufgrund machtvoller externer Konfiguration auch an Applikationen an bindbar die nicht auf Java basieren und somit vielseitig einsetzbar Durch die Optimierung in den Bereichen Verf gbarkeit und Auslastung eignet sich Solr f r eine Intranetsuche da die Verf gbarkeit auch bei hoher Auslastung durch die Mitarbeiter zu Sto zeiten gew hrleistet ist Solr erf llt alle Kriterien des Anforderungskataloges und ist unter den untersuchten Suchmaschinen die am meisten verbreitete Da sie ein Apacheprodukt ist ist ebenso wie bei Lucene und ElasticSearch das zuk nftige Bestehen und die zuk nftige Weiterentwicklung der Suchmaschine gew hrleistet Aus all diesen Gr nden ist Solr der ausgew hlte dritte Fa vorit f r die VERS Anforderungen der VERS Erf llt Besonderheit Out of the box L sung Optmimierte Verf gbarkeit und Auslastung Gro e und aktive Community 4 9 Hsearch Hsearch ist eine NoSQL Suchmaschine die unter der Verwendung von Hadoop entwickelt wurde Es ist unter der Apache Lizenz verf gbar und in Java geschrieben Hsearch eignet sich vor allem wenn man Echtzeitsuche bei Big Data ben tigt Es handelt sich um eine ver KOS content 427 teilte Suchmaschine die sich sowohl f r die Suche nach strukturiereten als auch f r die Su che nach unstrukturierten Inhalten eignet 4 9 1 Vorteile e Kontinuierliche Indexaktualisierung e Mithilfe
234. im Gegensatz zu Tabellen jedoch keine festgelegte logische Struktur und k nnen bis zu mehrere Millionen Spalten fassen Wichtig bei der Modellierung von Column Families ist das Vorgehen An ders als bei relationalen Modellen wird nicht nach festen Regeln eine Struktur abgeleitet und diese folglich abgefragt Die Struktur der Column Families ergibt sich letztendlich aus den Ergebnissen und Werten die man abzufragen erw nscht 7 Das hei t nicht das Schema der Datenbank sondern letztendlich ihre Funktionalit t im Sinne der Erkenntnisse aus der Da tenauswertung treten hier in den Vordergrund So ist es auch nicht verwunderlich dass Spalten je nach Abfrage mehreren Column Families zugeordnet werden sollen und daher gegeben falls auch redundant vorkommen Wenn auch in der Regel eine Versionierung der Daten mittels Timestamp stattfindet so werden strenge Prinzipien von Redundanzfreiheit und Datenintegrit t in Teilen untergraben Vgl Edlich S u a 2010 S 53 K Vgl Datenbanken Online Lexikon 2011a Vgl Datenbanken Online Lexikon 2011a Vgl Datenbanken Online Lexikon 2011a KOS content 658 14 Column Name Column Family Tweets Text User_ID Date 1234e530 8b82 11df Hello World 39823 Text User_ID 2009 03 25T19 20 30 Date 22615e20 8b82 11df Gooooal 592 2009 03 25T19 25 43 Key Abb 5 Column Families Column Value Eine
235. ime communication via a WebSocket described in section 4 2 2 form validation 5 validation 3 Client synchronization S y amp fee calculation 4 form submission 6 response submission Fig 8 Usage workflow of the exemplary application The basic usage workflow is shown in Fig 8 Upon page load both users can enter a form key in their browsers All users with the same key will be collaborating with each other and receive all input changes from the other users this is comparable to a simple chat The form consists of two parts the first part being a section for personal details and the second part for parameters that will be used to determine the fee for the insurance The users then fill in all necessary form fields step 1 in Fig 8 and instantly get feedback on the vailidy of the entered values step 2 in Fig 8 The evaluation is done locally on the clients machines While typing the data into the form fields those inputs are instantly sent to the server using WebSockets The server will distribute these inputs to all clients that have opened the same form which is identified via the key that was set initially step 3 in Fig 8 Once all fields that are required for the fee calculation are filled in correctly the client automati KOS content 550 20 cally submits the values via AJAX to the server over a secure HTTPS connection step 4 in Fig 8 On the server these values are then validated
236. indung von Neo4j in eine Java Applikation beschrie ben und die Benutzung von Neo4j als eigenst ndiger Server Um Neo4j in Java einzubinden m ssen die library jars in den Build Path des Projektes ber nommen werden Wird Eclipse als Entwicklungsumgebung verwendet gelangt man ber einen Rechtsklick auf das entsprechende Projekt zu Build Path gt Configuration Build Path Unter Add External JARs werden alle jar Dateien aus dem Ordner Neo4j lib directory ausge w hlt und nach dem Klick auf den Button Ok in das Projekt eingebunden Nun kann Neo4j als Embedded System genutzt werden Im ersten Schritt wird eine Instanz der Graphendatenbank angelegt Alle Operationen wie hinzuf gen ndern oder l schen von Knoten und Beziehungen m ssen in einer Transaktion gekapselt werden Dies erfordert das Design Konzept von Neo4j Ein Beispielcode der eine Datenbank anlegt sie mit Werten bef llt und die Daten am Ende l scht befindet sich im Anhang 5 Um Neo4j als Server auszuf hren muss jdk6 installiert werden Anschlie end kann der Server gestartet werden Dazu wird die Konsole als Administrator ausgef hrt und der Befehl bin Neo4j bat start eingegeben Unter localhost 7474 steht eine Weboberfl che zur Verf gung die unter anderem die M glichkeit bietet den Graphen visuell darzustellen Neo technology stellt au erdem vordefinierte Datasets zur Verf gung Diese k nnen in die Datenbank eingespeist werden und bieten somit die M glic
237. ine unkomplizierte horizontale Skalierung ausgelegt Ein Cluster ist immer in verschiedene Knoten eingeteilt welche alle genau die gleichen Funktionen ber nehmen Der Aufbau eines Clusters kann somit mit einem Peer to Peer Netzwerk verglichen werden da es keinen verwaltenden beziehungsweise steuernden Knoten gibt Die einzelnen Datens tze werden nach dem Consistent Hashing Prinzip das von Amazon bernommen wurde auf die einzelnen Knoten verteilt 73 Vgl Edlich S u a 2010 S 262 74 Vgl Edlich S u a 2010 S 263 Vgl Project Voldemort o J 7 Ygl Project Voldemort o J 7 Edlich S u a 2010 S 263 78 Vgl Edlich S u a 2010 S 263 KOS content 664 20 Zur Veranschaulichung des Prinzips dient die untenstehende Abbildung 7 Die einzelnen Knoten sind anschaulich gesprochen in einem Ring angeordnet wobei jeder Knoten ent sprechend des Hash Werts seines Namens seiner IP Adresse oder anderen Merkmalen eingef gt wurde Der jeweilige Datensatz wird so jeweils dem Knoten mit dem im Urzeiger sinn n chstgelegenen Hashwert zugeordnet 7 Server Server 2 Abb 7 Consistent Hashing Verfahren Eine weitere Eigenschaft von Voldemort ist ein eingebauter Replikationsmechanismus Da bei kann f r die Stores jeweils festgelegt werden wie oft die Daten repliziert werden sollen Die einzelnen Replika werden dann automatisch auf die verschiedenen Knoten verteilt Somit ist auch ein
238. ipte und andere Features er m glicht ist vorhanden kann aber ausgeblendet werden um einfache Abfragen zu erm glichen Hohe Performance Schnelligkeit aufgrund einfacher vertikaler Skalierung Hohe Ausfallsicherheit da durch die Bildung von Shards die Daten auf mehrere Ser ver verteilt werden k nnen und durch Replikas Redundanzen vorhanden sind ElasticSearch bietet n tzliche Zusatzfunktionen Beispielsweise die Funktion Fuzzy Logik mit der es m glich ist dass die Maschine Tippfehler Falschschreibung oder Synonyme erkennt oder Boosting Funktionalit ten die es erm glichen dass be stimmte Dokumente in der Ergebnisliste weiter oben erscheinen Da ElasticSearch dokumentenorientiert ist und das Datenformat JSON verwendet muss ein Attribut eines Dokuments nicht Typ eines primitiven Datentyps sein sondern kann selbst auch ein Dokument oder eine Liste von Werten oder weiteren Dokumen ten sein Man spricht auch von dynamischer Datenstrukturierung Zus tzlich zu REST steht auch eine Programmierschnittstelle f r Java und Groovy zur Verf gung Weniger Javakenntnisse als f r Lucene notwendig da es als Out of the box L sung verwendet werden kann 2013 http www elasticsearch com products elasticsearch Stand 02 01 2013 0 J http www elasticsearch org Stand 02 01 2013 KOS content 422 4 7 2 Nachteile e Hohe horizontale Skalierbarkeit ist nur gegeben wenn man bereits bei der In
239. ischen dem Unternehmen und Kunden bzw Interessenten gesehen werden Zum anderen k nnen hierbei allerdings auch wertvolle Erkenntnisse ber die Affini t ten und Bed rfnisse der Kunden ermittelt werden Dies bedeutet dass riesige Datenstr me durchsucht werden m ssen um alle f r das Unternehmen relevante Daten abzuleiten Zu dem k nnen hierbei aus einer Vielzahl von Daten vorgegebene oder neue Strukturen erkannt werden Alle vom System als unerheblich angesehenen Daten d rfen nicht erfasst werden um den Datenstrom m glichst gering zu halten gt Vgl Spies R 2012 S 143 f 2 Vgl Lackers R u a 2012 11 Vgl Vahrenkamp R Siepernamm C 2012 12 Vgl Spies R 2012 S 144 f KOS content 603 Eine weitere M glichkeit ist das Einscannen von Briefen und das digitale Erfassen von E Mails Voicemails und Callcenter Dialogen um diese mit Hilfe von Business Intelligence BI Technologien zu analysieren Somit k nnen beispielsweise wiederkehrende Muster bei Kun denanfragen erkannt und m gliche Problemfelder im Vorhinein verhindert werden Au er dem k nnen so eingehende Dokumente ohne manuelle Aufgabenverteilung automatisch also per Dunkelverarbeitung an den richtigen Mitarbeiter weitergeleitet werden Somit hat Big Data zudem Einfluss auf Gesch ftsprozess Management Systeme eines Unternehmens Ein weiterer Beweis daf r dass Big Data weit mehr ist als die bliche Datenanalyse mit Data Warehouse und Bl Ohne weite
240. ispieldatens tze eines Voldemort Stores nennen 30 Tab 8 Beispiel Gassandia EE 32 KOS content 645 1 Einleitung Datenbanken erleben einen st ndigen Wandel Lange Zeit herrschte der Glaube dass alle Datenbankfragen mit dem relationalen Datenbankmodell gel st werden k nnen Zur selben Zeit als relationale Datenbanken ihren H hepunkt erlebten begann jedoch auch die Entwick lung der NoSQL Datenbanken So entstanden beispielsweise mit Lotus Notes und Berkley DB bereits in den 80er Jahren erste Vorreiter der NoSQL Bewegung die noch bis heute bekannt sind Einen richtigen Schub erleben NoSQL Datenbanken erst seit der Entwicklung des Web 2 0 mit der Entstehung von Big Data Big Data ist der berbegriff f r rasant wach sendes Datenvolumen Einer Studie zufolge ist die weltweite Datenmenge in den letzten f nf Jahren um ein f nffaches gewachsen und so soll 2011 auch das weltweit produzierte Daten volumen auf 1 8 Zettabyte 1 8 Billionen Gigabyte ansteigen Weitere Entwicklungen in diesem Zusammenhang sind steigende Nutzerzahlen von Datenanalysen steigende Anfor derungen an die Performance von Datenauswertungen und eine wachsende Zahl an Daten quellen Zudem m ssen auch semi beziehungsweise quasistrukturierte Daten verwaltet werden Hierf r sind relationale Datenbanken nicht geeignet Eine L sung zur Verwaltung dieser Daten bieten jedoch NoSQL Datenbanken Eine optimale Datenverwaltung k nnte aus einer Kombination von relationalen und N
241. isting application with the Node js application A second way of using the child process module is to actually run external commands scripts files and other utilities that cannot directly be executed inside Node This characteristic lets external processes get well integrated with Node js A basic example of the child process module is shown in Lst 27107 The child process instance that is created in lines 1 and 2 is an event emitter that allows registering callbacks for certain events see lines 4 8 and 12 Invoking processes on a different machine across the network still requires a remote API or a distributed message bus system Moreover Kue is an example of a message queue developed in Node js which could serve as connector to the enterprise service bus Appendix 2 expands upon this module 104 Cf Joyent Inc w y a 105 Cf Teixeira P 2013 p 63 106 Cf ibid p 63 107 Taken from Joyent Inc w y a KOS content 565 OD JO Om POD 35 5 2 2 Vert x Integration In Vert x there are multiple ways to communicate with external programs Depending on the language used there are already multiple libraries that can be used to invoke child processes However these libraries usually only expose synchronous APIs so that these calls need to be done inside a worker verticle that does not block the event loop Listing 28 shows a minimal worker verticle written in Java that invokes s h usr via the Apache Com
242. iten als mit herk mmlichen Sys temen Zudem erfolgt eine erhebliche Kosteneinsparung da nunmehr nur etwas 1 5 der Kosten anfallen Als weiteres Beispiel ist die New York Times zu nennen Die Zeitungsge sellschaft plant alle Artikel zwischen den Jahren 1851 und 1922 online zu stellen Hierf r mussten 11 Millionen Bilddateien in PDF Dokumente umgewandelt werden was ein Daten volumen von ca 1 5 Terabyte ausmachte F r die Umsetzung dieses Projekts ben tigte ein einzelner Mitarbeiter mit Hilfe eines Amazon EC2 Hadoop Clusters nur 24 Stunden Zudem k nnen folgende praxisnahe Anwendungsbereiche f r Versicherungsunternehmen genannt werden Die Suche innerhalb eines Unternehmens Wikis kann durch die Realisie rung ber ein Hadoop System vereinfacht Diese semi strukturierten Daten fallen genau in Definition von Big Data und sind somit f r eine effiziente Verarbeitung mittels Hadoop geeig net Zudem ist vorstellbar dass versicherungsspezifische Auswertungen ber ein Hadoop System gestartet werden Beispielsweise k nnten Unfallmeldungen eingelesen und verarbei tet werden um Statistiken zu erstellen Mit diesen Statistiken kann beispielsweise ausgewer tet werden wie viele Versicherungsf lle welcher Art in einer bestimmten Region aufgetreten sind um so Gefahrenklassen zu erstellen 34 gl McDonald K 2011b 35 vol Chaudhri A 2011 KOS content 615 17 5 Zus tzliche Komponenten Erg nzende Systeme Hadoop kann dur
243. itstempel verwendet Dahinter werden die einzelnen Spalten User ID From User Name From User _ID_To User Name o Subject und Message deklariert und bef llt Key Spalten Name Key Name User_ID_From N N N N N Value Value Sophie Lingel V Sophie V Tana B V Tana V NoSQL V Hey 2013 01 10 bach gmx de gmx de Projekt Tana 19 20 34 Timestamp Ts Ts TS Ts Ts Ts Tab 8 Beispiel Cassandra Nach dem zu Grunde liegenden Modell k nnen die Eintr ge der Datenbank erst einmal nur nach dem Key abgefragt werden Um nach einzelnen Spalten zu Filtern muss ein Index darauf gelegt werden zum Beispiel kann ein Index auf die Spalte User Name From gelegt werden um danach zu ermitteln wie viele Nachrichten Sophie geschrieben hat Die Operati onen aus dem Beispiel k nnen aus Anhang 8 entnommen werden 8 Vgl Datastax 2012 Vgl Datastax 2012b KOS content 677 33 5 Zusammenfassung Zusammenfassend l sst sich sagen dass jeder der vier NoSQL Datenbanktypen aufgrund seiner Eigenschaften spezielle Einsatzgebiete abdeckt f r die er sich besonders eignet Somit besteht eine Begrenzung der Anwendungsgebiete dieser Datenbanken und sie k n nen deshalb keinesfalls als vollumf nglicher Ersatz f r eine relationale Datenbank angese hen werden MongoDB ist als dokumentenorientiertes Datenbanksystem besonders geeignet f r ei
244. join intensiven Daten und Anwendungen ist die Skalierung deutlich komplizierter Ein weiterer Vorteil besteht in der hohen Performance Teilweise sind Schreib Operationen sogar schneller als Leseoperatio nen was bei dokumentenorientierten oder relationalen Datenbanken beispielsweise nie vorkommt Grund daf r ist dass keine Verwaltungstabellen oder Indexe im Hintergrund aktualisiert werden m ssen sondern im besten Fall nur gepr ft werden muss ob der ge w nschte Schl ssel schon vorhanden ist und der Datensatz dann am Ende der Datenbank eingetragen werden kann Die einfache Struktur der Daten ist gut was Performance und Skalierung angeht jedoch ist diese Art der Datenbanken f r Anwendungen mit komplexen Datenstrukturen nicht sinnvoll da diese kaum geeignet abgelegt werden k nnen Ein Nach teil der Systeme ist auch dass nur ber den Schl ssel auf einen Datensatz zugegriffen werden kann und es somit nur begrenzte Abfragem glichkeiten gibt Meist muss sich der Nutzer hier auf die M chtigkeit der API verlassen und hat nicht die M glichkeit eigene kom plexe Abfragen zu schreiben Die verschiedenen Vorteile und Nachteile sind in nachfolgen der Tabelle 4 noch einmal zusammengefasst Vorteile Nachteile e gute Skalierbarkeit e begrenzte Abfragem glichkeiten e hohe Performance e Abbildung komplexer Datenstrukturen nur schwer m glich Tab 4 Vor und Nachteile einer Key Value Datenbank 42 Vgl Edlich S u
245. k nnen demnach auch mit echten Daten gef llt werden Auf diese Art und Weise lassen sich bei gro en Datenaufkommen performante Bereichsabfragen je Column Family formulieren Eine andere weit verbreitete Variante besteht in der Nutzung eines Zeit stempels als Schl ssel Monoton steigende Zeitstempel wie zeitbasierte UUIDs werden in der Regel in den Bibliotheken der jeweiligen Programmiersprache angeboten Wichtig hierbei ist nur Cassandra vorher mitzuteilen wie die Sortierung der Schl ssel der Column Family stattfinden soll Die Abfrage selbst kann ber CQL oder Konsolenkommandos erfolgen Replikation und Skalierung Replikation und Skalierung sind bei Cassandra sehr eng aneinander gekoppelt Der Cassandra Ring wird durch eine Consistent Hashing Strategie verwaltet und erlaubt dadurch kein hin und herspringen zwischen den Knoten bei welchem eine Instanz gefragt wird wel cher Knoten verantwortlich ist und demenstprechend weitergereicht wird Bei Cassandra wird der Ring ber sogenannte Tokens gesteuert die einen 2127 gro en Adressraum verteilen Jeder Knoten der den Ring erweitern soll ben tigt lediglich die Adresse eines anderen Kno tens seed node 87 Vgl Edlich S a 2010 S 71 ff 8 Vgl Edlich S a 2010 S 79 ec KOS content 668 24 Das Bootstrap Verfahren sorgt dann daf r dass eine optimale Verteilung des Wissens mit der Bekanntmachung welcher Knoten wof r verantwortlich ist stattfindet Bei der
246. klar dass ein relationales Datenbanksystem verwendet wird Allerdings gibt es auch Anwendungsbereiche bei denen eine relationale Datenbank nicht die beste L sung darstellt Vor allem wenn es sich bei den zu erfassenden Daten um eine sehr gro e Menge semi strukturierter Daten handelt Hierbei ist eine Verarbeitung mit NoSQL sinnvoller Im Folgen den werden einige Vorteile von NoSQL im Vergleich zu relationalen Datenbanken erl utert Vor allem die f r NoSQL wichtigen Suchanfragen werden bei relationalen Datenbanken viel langsamer bearbeitet als bei MapReduce Hadoop ist zudem f r nicht normalisierte semi strukturierte Daten geeignet w hrend relationale Datenbanken nur normalisierte strukturier te Daten verarbeitet Au erdem ist MapReduce f r einen einmaligen Schreibprozess und viele Leseprozesse ausgelegt w hrend herk mmliche Systeme sowohl f r viele Lese als auch viele Schreibprozesse konzipiert wurden Ein weiterer Vorteil von NoSQL ist die Sche mafreiheit Wenn bei relationalen Datenbanken Datendefinitionen ver ndert werden m ssen hat dies meistens eine berarbeitung des gesamten Schemas zur Folge wohingegen dies bei NoSQL kein Problem ist da diese Systeme mit Versionierung der Daten und Konvertie rungen im Rahmen von Hintergrundprozessen arbeitet Relationale Datenbanken sind zu dem streng am Konsistenzmodell ACID ausgelegt wonach Daten atomar konsistent isoliert und dauerhaft sein m ssen Im Gegensatz dazu m ssen
247. ksysteme e spaltenorientierte Datenbanksysteme ACID Prinzip Wie bereits erw hnt arbeiten diese Systeme gegens tzlich zu den relationalen Datenbank systemen nicht nach dem ACID Prinzip sondern nach dem BASE Prinzip Das ACID Prinzip umfasst die folgenden Eigenschaften einer Datenbank e Atomicity Atomarit t e Consistency Konsistenz e Isolation Isoliertheit e Durability Dauerhaftigkeit Atomicity bedeutet dass Transaktionen entweder ganz oder gar nicht ausgef hrt werden Consistency besagt dass eine Transaktion in einem konsistenten System ebenfalls wieder in einen konsistenten Datenzustand m ndet Isolation dr ckt aus dass Transaktionen vonei nander unabh ngig ablaufen und sich so nicht beeinflussen k nnen Durabilitiy spiegelt wider dass nach einem erfolgreichen Transaktionsabschluss die Daten garantiert langfristig gespeichert sind BASE Prinzip Das BASE Konzept umfasst im Gegensatz die anschlie enden Merkmale e Basically Available grunds tzlich verf gbar e Soft State weicher Zustand e Eventually consistent eventuelle Konsistenz Basically Available bedeutet dass eine Verf gbarkeit des Systems grunds tzlich gegeben ist es aber toleriert wird dass einzelne Teile ausfallen k nnen Soft State und Eventually con sistent besagen dass ein System am Ende ber konsistente Daten verf gt es allerding im Laufe einer Transaktion zu inkonsistenten Zust nden kommen kann welche gegebenenfalls an ein
248. l which was to develop high scaling web applications and after a short time it made their development extremely effective 152 Cf Serby P 2012 153 http venturebeat com 154 http www mongodb org 155 http clock co uk tech blogs a simple website in nodejs with express jade and stylus KOS content 584 54 Appendix 8 Benchmarking results Node js ab n10000 c50 g 200kb node dat http 192 168 178 39 8000 file 200kb This is ApacheBench Version 2 3 lt Revision 655654 gt Copyright 1996 Adam Twiss Zeus Technology Ltd http ww zeustech net Licensed to The Apache Software Foundation http ww apache org Benchmarking 192 168 178 39 be patient Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software Server Hostname Server Port Document Path Document Length Concurrency Level Time taken for tests Complete requests Failed requests Write errors Total transferred HTML transferred Requests per second Time per request Time per request Transfer rate Connection Times ms 192 168 178 39 8000 file 200kb 204800 bytes 50 23 428 seconds 10000 0 0 2050780000 bytes 2048000000 bytes 426 83 sec m
249. l mit Bing und Yahoo gearbeitet wird sind steigende Suchanfragen kein techni sches Problem e Trotz Spenden in H he von 80 der Einnahmen kann das Unternehmen bestehen Ecosia bezeichnet sich nicht als Non Profit Organisation e Das Unternehmen agiert sehr transparent e Einfache aber sehr gute Suchmaske e ECOLinks sorgen daf r dass Ecosia Provision erh lt die an das WWF Projekt abge geben wird Die Nachweise liefern die Spendenbelege e Ecosia bietet zus tzlich eine Plattform an die Blogs und Ideen bereitstellt e Personenbezogene Nutzerdaten werden nach 48 Stunden gel scht so Ecosia e Suchanfragen sollen nicht analysiert und Benutzerdaten nicht weiterverkauft wer den 4 2 2 Nachteile e Die Suchanfragen laufen weiterhin auf den gro en Servern von Microsoft die nicht ber kostrom laufen e Es wird kein Strom gespart sondern ein Teil der Einnahmen gespendet Vgl ecosia org 2013 18 Vgl de wikipedia org 2013 Q KOS content 405 e Eine konkrete Regenwaldflache pro Spendenbeitrag kann nicht angegeben werden e Die CO Emissionszertifikate werden nur gekauft um den unsauberen Strom von Microsoft auszugleichen e Laut WWF Interview wird das Geld nicht direkt f r den Schutz Kauf einer bestimmten Regenwald Fl che verwendet sondern als Gehalt f r Ranger und deren Ausr s tung e Nicht jede Suche sondern nur jeder Klick auf einen ECOLink f rdert das Projekt 4 2 3 Funktionsweise
250. led as soon as the read operation has completed and is processed in the same thread which means that there is at most one callback running at a time and the developer does not face concurrency issues The developer s task is to write lightweight event handlers that can be processed quickly as every callback is an interruption of the event processing in the event loop Memory or processor intense callbacks can lead to growing queues of unserved events which eventually results in a slow application or service 2 2 4 Technical Comparison of Asynchronous and Synchronous Processing A typical synchronous call is provided in Lst 1 The content of a file is read and displayed afterwards The program is blocked until the read operation has finished reader new FileReader content reader readAsText input txt printContent content Lst 1 Pseudocode Synchronously reading and displaying a file s content As opposed to the synchronous call Lst 2 demonstrates how the same example can be realized in an asynchronous fashion using the event driven methodology After the file was read the callback is triggered in order to display its content read_completed function content printContent content reader new FileReader reader readAsText input txt read_completed Lst 2 Pseudocode Asynchronously reading and displaying a file s content 2 5 Existing Asynchronous Frameworks The princi
251. lern vorhanden e Kontakt ber IRC m glich e Kontaktversuch per E Mail war jedoch erfolglos Vorhandensein von FAQ FAQ auf Entwickler Homepage vorhanden Marktakzeptanz Anzahl der Stakeholder Unternehmen die Lucene verwenden e AOL e Apple e Disney e IBM e Twitter e Wikipedia Insgesamt 271 Sponsoren der Apache Software Foundation u a e Google e Microsoft e HP e AMD e Citrix e IBM und ca 40 andere Unternehmen und Einzelpersonen Anzahl der Downloads keine Informationen vorhanden Traffic Rank Stand Januar 2013 Traffic Rank von apache org gesamte Apache Stiftung e Weltweit 1 353 e Deutschland 1 852 Traffic Rank von http lucene apache org nicht fest stellbar Tab 10 Bewertung des Lucene Projekts 86 Vgl The Apache Software Foundation 2012h 67 Vgl Rowe S u a 2011 68 Vgl ebenda 69 Vgl The Apache Software Foundation 2012m 70 Vgl Alexa Internet Inc 2013a KOS content 483 37 Als n chstes wird der Fokus auf die Suchmaschinen Bibliothek selbst gelegt Tab 11 Kriterium Beurteilung grunds tzliche Funktionen Codierung u Sprachunter stiitzung Lucene unterst tzt die deutschen Sonderzeichen UTF 8 Crawler e ein Crawler ist in Lucene nicht vorhanden e evtl durch Add Ons erweiterbar I ber das Toolkit Apache Tika lassen sich diverse Datei en indexieren Office Document Format PDF
252. litat plattformunabhangig mit Windows 95 bis Windows 7 kompatibel mit Mac OS Mac OS X kompatibel l uft unter Java 6 oder h her Tab 11 Bewertung von Lucene 85 Vgl The Apache Software Foundation 2012a 86 Vgl The Apache Software Foundation 2012 87 Vgl Neumann A 2012 88 Vgl The Apache Software Foundation 2012a 89 Vgl ebenda Vol The Apache Software Foundation 2012i 91 Vgl o V 2013 KOS content 486 40 4 2 Bewertung von Solr In diesem Kapitel wird das Projekt Solr der Apache Software Foundation anhand der gege benen Kriterien bewertet In Tab 12 erfolgt zun chst die reine Projektbewertung Produkt Produktalter erster Release 2004 von CNET a Apache 2 0 freie kostenlose Lizenz Plattform u Kompatibilitat Java Entwicklung damit plattformunabhangig e Windows Systeme e Linux e MacOS Mac OS X Funktionalitat exemplarisch e voll funktionsfahiger Suchserver out of the box e Volltextsuche e HTML Administrationsinterface e Hit Highlighting e Cloud Unterst tzung e Echtzeitabfrage Realtime Get e zahlreiche funktionale Erweiterungen gegen ber Lucene z B linguistische Textanalyse Facetting Caching Modularit t erweiterbar durch Vielzahl an Plugins z B e ValueSourceParser e Highlighting e SolrFragmenter e SolrFormatter e Similarity e CacheRegenerator e Analyzer 92 Vgl Klose M 2012 93 Vgl The Apache
253. lnen DataNodes verteilt Die Datei wird in zwei Bl cke geteilt die jeweils die gleiche Anzahl von W rtern beinhalten Anschlie end beginnt die Ver arbeitung mittels MapReduce Programmiermodell Auf dem jeweiligen DataNode wird in Schritt die Map Funktion ausgef hrt Jeweils ein Mapper wird auf eine Datei angesetzt Den Mappern werden dabei die auszuwertenden Key Value Paare und die Operationsan weisung derer mitgegeben In dem Beispiel wird der Mapper darauf angesetzt die absoluten SS Vgl The Apache Software Foundation 2012i KOS content 609 11 H ufigkeiten der einzelnen W rter in den Dateien zu finden Die Mapper in Schritt verar beiten die Dateien sequenziell und versehen lediglich die Key Felder also die einzelnen W rter mit dem aktuellen Value also der Anzahl Hier ist somit jedes Wort einzeln aufge f hrt mit der H ufigkeit 1 Schritt z hlt immer noch zur zweiten Phase Der Combiner f hrt die ihm angewiesene Operation aus in diesem Fall die Addition der H ufigkeiten f r jedes Wort Denkbar w re hier aber auch beispielsweise nur die Ausgabe des Wortes mit der gr ten H ufigkeit In diesem Beispiel werden jetzt die vom Mapper gelieferten Ergebnisse je weils in den einzelnen Dateien zusammengerechnet Gleiche Key Value Paare werden also zusammenaddiert Das Ergebnis der Combiner sind zusammengefasste Ausgabelisten der gemappten Daten Da in der ersten Datei das Wort World zweimal vorkommt wird es v
254. m Daten aus unterschiedlichen Tabellen zusammenzuf gen werden Joins verwendet Ein Join kombiniert zwei Tabellen miteinander wenn sich die Spalten einer Ta belle auf die Spalten einer anderen Tabelle beziehen Bei Graphendatenbanken fallen diese zeitintensiven Join Operationen durch die bereits verkn pfte Datenstruktur weg Dar ber hinaus verlangen Graphendatenbanken auch keine strenge Struktur bei der Datenablage Sie k nnen dadurch semistrukturierte Daten able gen Die bekanntesten Anwendungsbereiche von Graphendatenbanken sind soziale Netzwerke Fahr und Flugplanoptimierungen sowie Empfehlungssysteme Mit Hilfe von Graphen kann die zugrundeliegende Struktur abgebildet werden Die Kanten eines Graphen repr sentieren die Verbindung oder Beziehung zwischen den Knoten Sie k nnen gerichtet oder ungerichtet sein Eine gerichtete Kante ist eine einseitige Beziehung von einem Knoten zu einem ande ren Knoten Von einer ungerichteten Kante wird gesprochen wenn es sich um eine beidsei tige Beziehung zwischen zwei Knoten handelt Analog dazu wird auch von gerichteten und ungerichteten Graphen gesprochen Neben der Richtung einer Kante kann auch eine Ge wichtung vorgenommen werde Dazu wird der Kante ein numerischer Wert zugeordnet Anhand eines sozialen Netzwerkes werden die oben genannten Begriffe verdeutlicht die Benutzer stellen die Knoten des Graphen dar die Beziehungen zwischen den Benutzern z B kennt werden d
255. m der Kriterien gute Werte erreichen konnte und deshalb dem Feld der Poor Dogs zugeordnet wird Zwar besitzt es mit Hadoop ein sehr gro es und popul res Framework als Basis konnte aber als Suchma schinenprojekt weder einen ad quaten Nutzerkreis finden noch eine ausreichende Reife vorweisen Hinzu kommt dass Informationen zu diesem Projekt nur sp rlich verf gbar sind Als Projekt ist HSearch damit f r den Einsatz im Unternehmensumfeld kritisch zu betrachten Als n chstes werden die Meta Suchmaschinen selbst mit ihrem Funktionsumfang und ihren nichtfunktionalen Eigenschaften gegen bergestellt und bewertet Tab 20 KOS content 505 Kriterium Codierung u Sprachunter st tzung Crawler Dateiunterst tzung Cloud Unterst tzung Volltextsuche Synonyme u Korrektur Cached Results u Hinter grundinformationen Ausgabe der Suchergebnis se Skalierbarkeit Umsetzung bestehender Zugriffsrechte Anbindung an Datenquellen Wartungs und Betreu ungsmoglichkeiten Berechtigungsverwaltung Programmiersprache Performance intuitive Bedienung einfache Installation Konfi guration Kompatibilit t SUMME 59 Bewertung Gewichtung ERSE Lucene Solr Search HSearch grunds tzliche Funktionen PFLICHT JA JA JA JA 8 0 1 1 1 8 1 1 1 1 1 0 1 1 0 Suchalgorithmus PFLICHT JA JA JA JA 6 1 4 2 3 Ergebnisdarstellung 3 1 4 3 2 9
256. m is rel atively fast as the file is stored locally Assuming the network connection to the client is slow the writable stream will consequently be slow as well As a result the data has to be buffered Because data will be buffered in memory for each write command this will result in memory problems after a certain amount of requests This problem can be avoided by pausing the producer until the consumer catches up At this point Node js comes into play Readable streams in Node js can be paused and resumed which addresses exactly the described problem D Listing 3 illustrates how this is realized The data flow control process can be automated by using the stream pipe method Known implementation Transloadit is a company offering a solution for file uploading and encoding They have implemented their service in Node js and take advantage of the functionality of Node js s streams Also Yahoo uses Node ls for file uploads Lightweight network servers Asynchronous technologies are a good fit for HTTP servers and are efficient when it comes to handling many concurrent connections in a single pro cess A web server application should handle the cookie header parsing maintainance of 53 Cf Nutt M Wong B w y 54 Cf Teixeira P 2013 p 75 55 Cf ibid p 80 56 Cf ibid p 81 57 Cf ibid p 81 58 Cf ibid p 81 59 nttp transloadid com 60 Cf O Dell J 2012 KOS content 546 D JO Om P G
257. ma DHBW Duale Hochschule Baden W rttemberg Stuttgart KOS content ep O E Ergebnisse der Untersuchungen des Kompetenzzentrum Open Source der DHBW Stuttgart Fr hjahr 2013 band 2 KOS content 01 12013 INHALT BAND 2 Inhalt _ Fallstudie Versicherung Evaluation von Eclipse Plugins Evaluation of Asynchronous Server Technolo Open Source Suchmaschinen Marktanalyse und gies _ 525 Bewertung 587 NoSQL Datenbanken Hadoop und seine Einsetzbarkeit von Meta Suchmaschinen zur Abdeckung Komponenten _ 595 bestehender Suchl sungen in verschiedenen Bereichen 443 NoSQL Datenbanken Typisierung 641 Das Kompetenzzentrum Open Source KOS Ziel des Projektes Das Projekt Kompetenzzentrum Open Source der DHBW Stuttgart wurde mit der Zielsetzung ins Leben gerufen die Einsatzfelder f r Open Source Software in Unternehmen zu identifizieren und durch den Einsatz quelloffener Produkte und deren kosteng nstigen Einsatzm glichkeiten Optimierungen in ausgew hlten Gesch ftsbereichen zu erzielen Dies bedeutet konkret dass z B Open Source Software evaluiert wird um Lizenzkosten zu reduzieren bewertet wird ob sie diverse Qualit tskriterien erf llt und erfolgreich er und effizient er in Unternehmen genutzt werden kann Das Ziel des Projektes ist es hierbei allgemeing ltige L sungskonzepte f r Problemstellungen zu erarbeiten welche von den am Projekt beteiligten Unterneh men zu firmenspezifischen L sungen weiterentwickelt we
258. mall community and uncertain state of affairs do weaken its chances Moving to the Eclipse Foundation does alter this once the project has moved as this provides a very strong foundation pun intended for the future Asynchronous server technologies require careful evaluation of one s needs and wants and in particular implementation goals in order to only use the most capable solution It is key to bring the actual use cases and inappropriate use cases to mind Exceptionally good use cases are those with a high number of requests real time communciation and very important low CPU workload in order to leverage non blocking I O streams Inappropriate use cases for asynchronous technologies are CPU intensive applications e g data warehousing with ana lytics or simple CRUD HTML applications Moreover as non blocking I O is a key feature use cases that hardly encompass interaction with external resources do not set a precedent and might even be penalized It is important to point out that it is not worth using asynchronous technologies for the sake of leveraging single secondary features like the similarity of client and server side programming language in case of Node js when the overall application is not a good fit Computing intensive tasks that are handled in a single thread or a very limited number of threads jeopardize the availability of an application and there should be good reasons to work around such issues instead of using a synchron
259. mitted new JsonArray Let through messages for data synchronization JsonObject addressData new JsonObject putString address form data inboundPermitted add addressData Allow sending messages to all addresses that match this pattern new JsonObject putString address_re form data client d outboundPermitted add vertx createSockJSServer server bridge bridgeConfig inboundPermitted outboundPermitted Lst 26 Vert x event bus bridge configuration KOS content 561 31 5 Evaluation of Non functional Attributes 5 1 Maintainability Maintainability is one of the most important issues in the enterprise as developers typically switch between projects or participate only in a temporary manner Thus the time needed to become familiar with a framework and its language directly impact the development cost either because of the time needed related to the learning curve or because of resources invested in maintenance and bug fixing Node js Vert x API stability Changes frequentiy Changes rarely89 Support of dated No official policy known No official policy known versions Testing Has good test coverage Vari Has good test coverage and ous 3rd party test frameworks comes with an own testsuite applicable Established test libraries like JU nit can be used Skill transferability Coding style is similar to Depends on the used language established JavaScript guide Java co
260. mmierkenntnisse erforderlich als f r eigene Weiterentwicklungen Lucene erf llt sowohl die von der VERS BW genannten Kriterien als auch die Kriterien die aus den berlegungen der Autoren stammen Deshalb und aufgrund der gro en Bekanntheit und aktiven Community eignet sich Lucene f r die Implementierung bei der VERS BW und ist der zweite der insgesamt drei Favoriten Vgl Sitaula S 2012 http blog cloudera com blog 2012 01 hadoop for archiving email part 2 Stand 20 01 2013 s Vgl o V o J http lucene apache org core developer html Stand 19 12 2012 KOS content 420 Anforderungen der VERS Erf llt Besonderheit Gro e und aktive Community Basis f r eigene Suchmaschinen 4 7 Elastic Search Elasticsearch ist eine verteilte Verteilt Indexe k nnen in Shards aufgeteilt werden doku mentenorientierte und RESTful Suchmaschine die auf Apache Lucene aufgesetzt ist und unter den Bedingungen von Apache License 2 0 ver ffentlicht wurde Sie ist pr destiniert f r den Cloud Einsatz und wird aufgrund derselben Backend Suchmaschine Apache Lucene h ufig mit Solr verglichen ElasticSearch wurde in Java entwickelt und ben tigt als Laufzeitumgebung Java der Version 6 oder h her ElasticSearch ist auf allen Betriebssystemen die javaf hig sind einsetzbar ist schemafrei und verwendet das Datenformat JSON Die Suchmaschine ist in den drei folgenden Varianten verf gbar e Fertige Distribution
261. mmt f hrt jede Reduce Anwendung die Datei als einen separaten Prozess aus sobald der Reducer initialisiert wird Sobald der Reduce Prozess l uft wandelt er seine Key Value Paare in Zeilen um und schreibt diese in die Eingabedatei des Prozesses W hrenddessen sammelt der Reducer die zeilenweisen Ausgabeparameter aus der Ausgabedatei des Prozesses und wandelt jede Zeile in Key Value Paare um die wiederum als Ausgabeparameter des Reducers gesammelt werden Wie bereits zuvor f r die Map Anwendung beschrieben bildet der erste Teil einer Zeile bis hin zum ersten Tabstopp den Key und der Rest der Zeile ohne Tabstopp den Value des Key Value Paares Wie auch beim JAR f r den Mapper wird die gesamte Zeile als Key und der Value als null be trachtet sofern kein Tabstopp in der Zeile existiert Dieses Vorgehen bildet die Basis f r das Kommunikationsprotokoll zwischen dem MapRedu ce Framework und der Streaming Anwendung 5 3 Datenfluss Sprachen Basierend auf Hadoop gibt es drei verschiedene Datenfluss Sprachen Hive Pig CloudBase Alle drei unterscheiden sich in den Ans tzen die sie realisieren Hive stellt eine SQL hnliche Abfragesprache zur Verf gung Pig implementiert eine Art Skriptsprache mit Variab len und Funktionsaufrufen und CloudBase funktioniert hnlich wie Hive nur dass sie mehr SQL zu implementieren versucht und daf r auf Metadaten Verarbeitung verzichtet Daher wird in dieser Ausarbeitung nicht n her auf CloudBase
262. mong these worker verticles as described in section 2 5 3 KOS content 558 D JO Om P Go 28 package main import org vertx java core SimpleHandler import org vertx java core json JsonObject import org vertx java deploy Verticle public class AppStarter extends Verticle private static final String HTTP_CONF http_conf private static final int NUM PROCESSORS Runtime getRuntime availableProcessors 0 Override public void start throws Exception JsonObject httpConfig appConfig getObject HTTP_CONF container deployVerticle main Server httpConfig container deployWorkerVerticle form Calculator NUM PROCESSORS 1 Lst 22 Verticle that starts two other verticles A global configuration file is read in line 12 This configuration file is formatted as JSON string and can include settings for modules or verticles The path to the configuration file has to be provided to the vertx command upon server start to allow access to it from within the verticles The command that has to be invoked for the Proof of Concept is shown in Lst 23 vertx run main AppStarter conf app_conf json cp bin Lst 23 Command for starting the Vert x application Vert x allows either running verticles by providing the compiled Java class or by providing the source file which is then automatically compiled by Vert x However in this setup we experi enced some issues with the Vert x r
263. mons Exec library in a blocking way This worker verticle runs the command whenever it receives a message via the event bus The command to run could also be provided via the JSON object that is passed into the verticle via the event bus for higher flexibility A watchdog instantiated in line 27 is used to terminate the process after six seconds Otherwise a runaway process could block the worker thread so that it cannot be used anymore This approach might not be very satisfying as the output is not captured and execution errors aren t handled properly Luckily the Apache Commons Exec library can be used in an event driven style as well To achieve this one first needs to write a class that handles the output streams An exemplary implementation of such a class is provided in Lst 29 An instance of this class can then be provided to the executor as shown in listing 30 where the instance gets passed into a PumpStreamHandler line 21 CommandLine cmdLine new CommandLine 1s cmdLine addArgument 1h cmdLine addArgument usr DefaultExecuteResultHandler resultHandler new DefaultExecuteResultHandler public void onProcessComplete int exitValue logger info Process terminated normally public void onProcessFailed ExecuteException eil logger info Process failed E StdoutStream stdout new StdoutStream ExecuteWatchdog watchdog new ExecuteWatchdog 60 1000 timeout after 6 seconds De
264. mple of running Is Ih usr in Node js capturing stdout stderr and the exit COD ee EEN 34 Asynchronous process execution in Java 0 02002 2 eee 35 Example of running Is Ih usr in Vert x from within a worker verticle 36 Subclass of LogOutputStream as a handler for the stdout stream 36 Starting a Vert x application in cluster mode 04 39 Installing Kue via command line 2 02002 ee eee 46 HTML of the Meteor example Leaderboard n noaoo a a 48 JS of the Meteor example Leaderboard a aooaa e a 49 Benchmarking results as shown by the Apache benchmarking tool for web servers 54 KOS content 531 1 Introduction 1 1 Objectives Permanent change is a basic concept and global phenomenon in the IT industry Most recent trends include cloud computing big data social media and mobile computing The tremen dous impact of the latter one is revealed by a Cisco study which states that in 2011 the mobile data traffic doubled the fourth year in a row That enormous traffic and the nature of social media applications raised problems in the common synchronous server technologies Since 1996 the Microsoft Internet Explorer supports asynchronous content loading A popular asyn chronous technology is AJAX asynchronous JavaScript and XML It got even more attention when Google introduced a well respected deployment of standards compliant browser appli cations leveraging AJA
265. n bergeben Die vielen einzelnen Ergebnislisten der Mapper werden mit Hilfe der Reduce Funktion wieder zu einer Gesamtliste zusammenge f hrt Der Map Algorithmus stellt dann auf einem einzelnen DataNode genau die Daten zur Verf gung die vom NameNode angefragt wurden Als Abschluss der Reduce Funktion wer den die ausgewerteten Daten wieder zur ck in das Dateisystem geschrieben bei Hadoop also in das HDSF Die Parallelit t des MapReduce Programmiermodells kann sowohl durch die Aufteilung der Daten in verschiedene Eingabelisten optimiert werden als auch durch den Einsatz des Mas ter Slave Ansatzes mit NameNode und DataNodes Effizient wird das System dadurch dass mehrere Map und Reduce Prozesse mit nur einem bestimmten Teil der gesamten Daten auf bestimmten Rechnern arbeiten k nnen In Abb 2 ist der Aufbau von MapReduce anhand eines Beispiels visualisiert Dabei handelt es sich um einen schematischen Ausschnitt des eigentlichen Verarbeitungsprozesses In der Praxis handelt es sich um eine gro e Vielzahl solcher Prozesse mit Input Daten im Tera und Peta Byte Bereich Im Schritt werden die gro en Input Daten vom Framework in viele kleine Dateien gesplittet Diese werden in diesem Schritt simultan vom HSDF auf einzelne DataNodes verteilt In dem veranschaulichten Beispiel handelt es um eine Text Datei mit dem Inhalt Hello World Bye World Hello Hadoop Goodbye Hadoop Diese Datei wird in kleine Bl cke geteilt und auf die einze
266. n Apache2 Nginx Node js Vert x x axis requests y axis time in ms T T T T T J Node js Vert x 2000 4 1500 4 1000 5 500 7500 8000 8500 9000 9500 10000 Fig 11 Plot of the web server benchmark results between Node js and Vert x x axis requests y axis time in ms Scaling on a single machine Support for single machine scaling using multiple threads ex ists natively in Vert x and can be accomplished easily on a per instance basis like shown in KOS content 569 39 Lst 22 Each instance can be deployed multiple times This allows configurations like having one instance for the main event loop and 4 instances for the worker verticles so that compu tation intense tasks can be handled by a thread pool of 4 threads Vert x provides thread safe data structures that developers can use to share data between instances However these data structures are limited to immutable data types Node js is designed to run single threaded and can only scale to all available cores by using the Cluster module which is still in an experimental state This module allows to take ad vantage of a multi core system by launching a cluster of Node js processes to handle the load Basically it enables the developer to run several worker processes depending on the number of cores and create an HTTP server for each of them whereby all of them share one port Scaling on distributed machines Vert x uses Hazel
267. n be embedded in any JVM based program by including the according libraries in the path so that these applications can use the bus system as well 5 3 Scalability and Performance Both Vert x and Node js offer great performance and scalability under certain circumstances that were identified in section 3 In order to allow a comparison for a very simple use case a micro benchmark was run to collect information on request handling of Node js Vert x and the two popular web servers Apache2 and Nginx Experiment setup Each server was run isolated on a virtual machine that was assigned 4GB of memory and 4 of 8 available processors with a limited processor rate of 2 5GHz to make sure that the host system has enough free capacity A static file with 200kb has been created using dd which then had to be delivered by the web servers Requests were then sent from another virtual machine on the same host system to the run ning server using the Apache HTTP server benchmarking tool The benchmarking tool was configured to send 10 000 requests with a concurrency level of 50 50 requests in parallel Vert x and Node js were run single threaded Apache2 and Nginx were run in their default configuration All servers were run without caching Outcome The results of this benchmark confirmed the strengths of asynchronous servers described in section 3 Plotted results are shown in figures 10 and 11 Apache2 had the worst respone times that were
268. n case there was none provided In case it was left null the user is asked line two for an ID In Case it is there the ID will be sent line four and as the code above shows the ID is used as a room s name if formid null socket emit createForm prompt What is your ID else socket emit createForm formld Lst 18 Joining a specific area room Up to this stage the process of establishing a connection that enables interaction within a specific area was explained The code in Lst 19 demonstrates how to send data to the server using WebSockets As the form that is used in the Proof of Concept has INPUT fields as well as SELECT fields it is necessary to distinguish between these both Whereas the value of INPUT KOS content 556 D JO Om P Go 26 function sendToServer fieldid var JSONdata write JSON depending on INPUT or SELECT field if document getElementByld fieldid tagName SELECT JSONdata fieldId document getElementByld fieldId selectedIndex else JSONdata fieldId document getElementByld fieldId value socket emit liveform JSONdata trigger request for each key written in input select fields input type text on keyup function sendToServer this attr id II select on change function sendToServer this attr id II Lat 19 Sending dat
269. n de wiki_db Datenbanken Consistent Hashing Abruf 17 12 2012 Dokumentenorientierte Datenbanken http wikis gm fh koeln de wiki_db Datenbanken Dokumentenorie ntierteDatenbank Abruf 28 11 2012 Neo4j The Benefits of Graph Databases http www oscon com oscon2009 public schedu le detail 8364 Abruf 29 11 2012 NoSQL Jenseits der relationalen Datenbank http www freiesmagazin de ftp 2010 freiesMag azin 2010 08 pdf Abruf 17 12 2012 A Quick Introduction t the Cassandra Data Model http maxgrinev com 20 10 07 09 a quick introduction to the cassandra data model Abruf 10 12 2012 Persistent Graphs in Python with Neo4j http de slideshare net thobe persistent graphs in python with neo4j Abruf 06 12 2012 Neo4j NoSQL Datenbank mit graphentheore tischen Grundlagen http www heise de developer artikel Neo4j NoSQL Datenbank mit graphentheoretischen Grundlagen 1152559 html artikelseite 2 Abruf 17 12 2012 CAP Theorem http kwangsub blogspot de 2012 02 cap theorem html Abruf 06 12 1012 KOS content 691 Neo Technology Inc 2012 Neo4j 2012 Neo4j 2012b Project Voldemort o J Quality Unit o J Rodriguez M A 2010 Schmitt K 2008 Schnelle J 2010 47 Preisliste http www neotechnology com price list Abruf 06 12 2012 Deployment Szenarien http docs neo4j org chunked milestone deploy ment scenarios html Abruf 09 01 2013 Neo4j in Java ein
270. n dem Frankfurter Informa tiker Michael Christen im Jahr 2003 Die aktuelle Version ist 1 2 Nov 2012 Sie ist unter der GNU GPL Lizenz ver ffentlicht kostenfrei zug nglich und auf Deutsch ver f gbar Derzeit sind etwa 1 4 Milliarden Dokumente im Index es kennt ber 600 Peer Betreiber pro Monat und rund 130 000 Suchanfragen pro Tag 77 Der Name kommt aus dem Englischen von Yet another Cyberspace 7 vacy net de 2013 KOS content 407 decentralized YaCy devmac Search Page ale el ES ES m http localhost 8080 yacysearch htmi query decentrali gt yy A E D v Se Les sz Lok Qy YaCy kupferhammer decentralized YaCy devmac S Peer Administration Web Search Compare YaCy Surftips Peer Owner Profile Help Wiki Project Home P2P Web Search decentralized search again Text Olmages QAudio Ovideo Q Applications more options 1 10 of 2 238 299 local 1 939 remote 84 from 8 remote YaCy peers ES oO H H Lal DH D H D H 110 BP fi BitTorrent s Future Decentralized Search and Hosting TorrentFreak Domain Navigator BitTorrent s Future Decentralized Search and Hosting TorrentFreak http Horrentfreak com bittorrents future decentralized search and hosting 100109 en wikipedia org 21 Wed 30 Jun 2010 I 107 kbyte Metadata Parser Pictures z Complex Networks And Decentralized Search Algorithms filesharefreak com 8 freshmeat net 6 Complex Networks And
271. n der folgenden Tabelle Tab 6 dargestellt Typ Beispiel Erklarung Keyword FuBball Sucht nach allen Dokumenten die FuBball enthal ten Phrase Query Snow Crash W hlt alle Dokumente aus in denen Snow Crash vorkommt beide W rter direkt hintereinander Konkatenation Snow AND Crash Snow und Crash m ssen im Dokument vorkom men aber nicht unbedingt direkt hintereinander Disjunktion Snow OR Crash Nur einer der beiden Terme muss im Dokument enthalten sein 20 Mit nderungen entnommen aus Ziegler C 2006 S 121 21 Vgl The Apache Software Foundation 2012a KOS content 468 22 Feld Query Title Snow Crash Sucht nach Dokumenten die ein Feld namens Title enthalten in dem Snow Crash vorkommt Wildcard Sch tten Min g W hlt alle Dokumente aus die Schatten Schotten beziehungsweise Ming Mining oder Minderung enthalten Proximity Search Snow Crash 5 W hlt Dokumente aus die Snow und Crash ent halten beide Terme d rfen h chstens durch f nf W rter voneinander getrennt sein Term Boosting Snow 3 Crash Das Auftreten des Terms Snow wird dreimal so stark gewichtet wie das von Crash Tab 6 Wichtige Operatoren von Lucene Bei Lucene handelt es sich also lediglich um eine Java Programmbibliothek welche als Grundlage verwendet werden kann eine eigene Suchmaschine zu implementieren Lucene basiert auf einem invertierten Index Dadurch werden S
272. n existieren keine Relationen zwischen einzelnen Dokumenten jedes Dokument ist eine in sich geschlossene Einheit mit individuellem Sche ma und individuellen Inhalten Bei dieser Art der Datenspeicherung wird auf eine Vorgabe f r die spezifische Strukturierung der zu sichernden Daten verzichtet F r die Datenbank ist kein umspannendes Datenbankschema vorhanden es besteht die M glichkeit in jedem separaten Dokument eine andere Struktur zu verwenden 9 Vgl Datenbanken Online Lexikon 2012 11 Datenbanken Online Lexikon 2012 12 Vgl Schnelle J 2010 13 Enthalten in Datenbanken Online Lexikon 2012 14 Datenbanken Online Lexikon 2012 13 Vgl Datenbanken Online Lexikon 2012 KOS content 650 Durch die kaum vorhandenen Einschr nkungen beim Aufbau der Dokumente ergibt sich eine umfassende Gestaltungsfreiheit Jedoch folgt aus dieser Freiheit auch ein gewisser Aufwand da die Struktur der Dokumente selbst festgelegt und kontrolliert werden muss Die Tabelle 1 fasst die pr gnantesten Vorteile und Nachteile der dokumentenorientier ten Datenbanken bersichtlich zusammen Vorteile Nachteile e umfassende Gestaltungsfreiheit e Aufwand durch selbst ndige Festlegung und Kontrolle der Dokumentenstruktur e Abbildung beliebig komplizierter Datenstrukturen e gute Skalierbarkeit Tab 1 Vor und Nachteile einer dokumentenorientierten Datenbank Die Intention bei der Entwicklung
273. n forcierte Projekt Lucene betrachtet werden Dieses hat mittlerweile einen gro en Be kanntheitsgrad und konnte einen weiten Kundenkreis f r sich gewinnen Zudem werden Solr und Elasticsearch als zwei unterschiedliche Formen der Erweiterung von Lucene betrachtet Mit HSearch ist zus tzlich ein Vertreter dabei der mit dem NoSQL Konzept eine andere Richtung einschl gt und auf dem popul ren Framework Hadoop basiert 3 1 Lucene 3 1 1 Hintergrundinformationen Lucene ist ein in Java entwickeltes Open Source Projekt von Doug Cutting welches mittler weile bei der Apache Software Foundation angesiedelt und unter Apache 2 0 lizensiert ist Dieses Open Source Projekt erm glicht die Implementierung einer plattformunabh ngigen Suchmaschine mit der eine Volltextsuche m glich et Wie bei Volltextsuchen blich bildet auch bei Lucene ein invertierter Index die Basis des Algorithmus Bei diesem Index verweisen einzelne W rter auf Dokumente in denen die W r ter vorkommen Zudem besteht die M glichkeiten weitere Informationen wie die Position des Wortes innerhalb des Dokuments zu speichern Bei einer Suche kann dann mit Hilfe von Bitoperationen festgestellt werden welche Dokumente zwei oder mehr Suchw rter gleichzeitig beinhalten Diese werden dann als relevante Suchergebnisse an vorderster Stel le angezeigt Angenommen es wird eine Suchanfrage nach den W rtern Enterprise Search Engine ge startet
274. n und Datenbanken Meist ist da f r nicht viel mehr erforderlich als den Namen des Konvertierungsprogramms in die Konfigu rationsdatei einzutragen nur selten muss man ein kleines Shellskript verfassen Listing 1 Mini Konfiguration f r HTML Dateien 81 localweb conf 82 IndexDir srv www htdocs 3 IndexOnly html 4 IndexFile localweb index Abbildung 8 Listing 1 Konfiguration 4 4 4 Fazit Swish e bietet eine Reihe interessanter und n tzlicher Funktionen Es leistet mehr als eine einfache Indexsuche und erm glicht das Suchen nach Dateiformaten ber HTML hinaus Experten meinen der Umfang der Features ist dem von Nutch sehr hnlich Sehr angenehm ist dass sogar explizit Datenbanken durchsucht werden k nnen und die Suche stets schnell abl uft Sehr userfreundlich ist nicht nur die einfache Bedienung sondern auch die M glich 33 Vgl linux magazin de 2004 34 Vgl linux magazin de 2004 Ne linux magazin de 2004 Enthalten in linux magazin de 2004 KOS content 414 keit der konfigurierbaren Filter Funktion Auf der anderen Seite ist die graphische Oberfl che nicht sehr userfreundlich Experten meinen man solle hier eher ein eigenes Interface davor setzen Der Einsatz f r unternehmensinterne Seiten ist damit m glich und mithilfe von Swish e auch zu empfehlen Durch die vielen Funktionen und Konfigurationsm glichkeiten sollte es einem internen Einsatz nur entgegenkommen Dem gegen
275. ncy in the United Kingdom that builds the websites for their clients in Node js They chose Node js for several reasons First JavaScript as the underlying programming language of Node js is very beneficial Most developers at Clock have JavaScript expertise what makes it relatively easy to introduce Node js and therefore saves time and costs In addition to that Clock uses MongoDB Thus code can be used on the browser side server side and for the database as MongoDB uses JavaScript for querying data Paul says that our browser side JavaScript code improved in quality and structure Another aspect the developers at Clock appreciate is the highly active community which is useful when solving programming issues Also the developers have had large productivity gains in HTML and CSS using Jade and Stylus gt Furthermore the amount of traffic could be increased with Node js compared to PHP with Apache which was used before Clock says that using Node js and MongoDB they could scale up much better than with PHP and PostgreSQL Moreover Clock developers appreciate the many hosting options that come with Node js e g Node Joyent s SmartMachine Heroku and Nodejitsu Joyent s SmartMachine is supposed to be used for upcoming projects In conclusion Clock states that at the beginning the projects took some extra time as develop ers had to get used to Node js and the underlying concepts However Node js fitted their use case very wel
276. ndows und Unix Systeme und der vorhan denen Hardware KOS content 461 15 Jedes der aufgef hrten Kriterien wird entsprechend den gestellten Anforderungen nach Re levanz gewichtet Die Bewertung der Suchmaschinen erfolgt nach dem gleichen Schema wie auch schon in Kapitel 2 1 erf llt eine Suchmaschine ein Kriterium gar nicht erh lt es 0 Punkte erf llt eine Suchmaschine ein Kriterium erh lt es einen Punkt erf llt eine Suchmaschine ein Kriterium im Vergleich zu den anderen bewerteten Suchmaschinen in h herem Ma e quantitativ oder qualitativ bekommt es abh ngig vom relativen Erf llungsgrad 2 3 oder 4 Punkte handelt es sich um ein Pflichtkriterium wird das Feld mit JA belegt falls die Anforde rung erf llt wird und mit NEIN falls sie nicht erf llt wird Die Beurteilung der Suchmaschinenqualit t wird damit anhand nachfolgender Matrix durch gef hrt Tab 4 Alle Kriterien werden in sieben Kategorien zusammengefasst grunds tzli che Funktionen Suchalgorithmus Ergebnisdarstellung Skalierbarkeit M glichkeiten der Anbindung Administration und nichtfunktionale Anforderungen KOS content 462 16 PFLICHT 8 J 8 J 1 PFLICHT 6 10 PFLICHT eer 20 aXe atio 5 gt 2 1 6 9 7 8 6 Tab 4 Matrix zur Bewertung von Meta Suchmaschinen KOS content 463 17 3 Analyse von Open Source Suchm
277. ndung entwickelt In diesem Zusammenhang ist der Rei fegrad des Open Source Projekts ein entscheidendes Bewertungskriterium Im Folgenden werden ausgew hlte Faktoren beschrieben nach denen der Reifegrad bestimmt werden kann Die Faktoren werden dabei drei Kategorien zugeordnet Produkt Dokumentation und Support 1 Produkt e Produktalter In diesem Punkt wird das Alter des Projekts in Jahren bewertet ltere Projekte gel ten in der Regel als fortgeschrittener und reifer und sind somit h her zu bewerten e Lizenzen Open Source Lizenzen k nnen in unterschiedlichen Auspr gungen auftreten sowohl mit kostenpflichtigen Inhalten als auch komplett kostenfrei Letzteres ist bei den hier ausgew hlten Suchmaschinen zu bevorzugen Zus tzlich ist bei Lizenzen f r Fir menkunden zu ber cksichtigen welche Restriktionen bez glich der Verwendung des Codes vorliegen Es sind diejenigen Lizenzen vorzuziehen bei denen der Code m g lichst frei verwendet werden kann Grunds tzlich kann dabei nachfolgende Unter scheidung getroffen werden Tab 1 2 Vgl Golembowska A u a 2012 S 18 KOS content 449 Kombinations m glichkeit mit proprietarer Software Keine Einbindung Statisches und dynami in proprietaren sches Linken von Code Code m glich mit proprietarer Software m glich Keine Vorgaben der gesamte Code darf auch als propri et re Software wei Eigenentwicklungen d r tergegeben werden fen als
278. ne MapReduce Anfrage f r Hadoop zu programmieren sind weitreichende Java Kentnisse erforderlich Diese Ausarbeitung widtmet sich der Theorie zu Hadoop dessen Basissysteme und den zustatzlichen Komponenten Detailliertere Einblicke und die praktische Umsetzung der Anwendungen werden auf Grund des formellen Rahmens dieser Arbeit nicht beachtet Somit wird die Realisierung von aufwendigen MapReduce Algorithmen auf Java Basis in dieser Ausarbeitung nicht weiter spezifiziert Bei den zus tzlichen Komponenten in Kapitel 5 wird aber auf Systeme eingegangen mit denen Abfragen einfacher erstellt werden k nnen In weiterf hrenden Studien w re ein detailierterer Blick auf die Programmierung von MapReduce Algorithmen ein durchaus interessanter Aspekt Fehlertoleranz Um die Effektivit t von Hadoop zu gew hrleisten ist es sehr fehlertolerant Bei der Ausf h rung von Hadoop gibt es drei Arten von Fehlern Die erste ist ein Fehler des Tasks also wenn die Verarbeitung an sich fehlschl gt Dieser k nnte beispielsweise durch einen Pro grammierfehler in dem MapReduce Verfahren ausgel st werden Die JVM meldet dann dem TaskTracker dass die Verarbeitung fehlgeschlagen ist Dieser markiert daraufhin den Ver such als fehlgeschlagen und gibt den Node f r eine andere Ausf hrung frei Wenn der Task stehenbleibt wird dies ebenfalls bemerkt Dies k nnte beispielsweise durch einen Hardware fehler hervorgerufen werden Der Task wird daraufhin gel scht und
279. ne addArgument usr timeout after 6 seconds ExecuteWatchdog watchdog new ExecuteWatchdog 60 1000 DefaultExecutor executor new DefaultExecutor executor setWatchdog watchdog try executor execute cmdLine catch lOException e e printStackTrace EE Lst 28 Example of running Is Ih usr in Vert x from within a worker verticle OO oO OO JO Oo P OON _ import java util LinkedList import java util List import org apache commons exec LogOutputStream public class StdoutStream extends LogOutputStream Override protected void processLine String line int level System out printin line Lst 29 Subclass of LogOutputStream as a handler for the stdout stream KOS content 567 37 There are some more noteworthy details in Lst 30 The DefaultExecuteResultHandler which is defined in lines 5 to 13 can be used to provide callbacks for successfull termination or failure of the external process The call to executor execute line 23 automatically becomes asynchronous when a StreamHandler is set for the executor line 19 When writing verticles in Java it is also possible to make use of Javas Remote Method In vocation RMI mechanism to communicate with services that are on different machines in the network The most natural way for inter application communication is by either using the inte grated message bus or by using a separate bus system Vert x ca
280. nen Einsatz im Bereich des Dokumentenmanagements oder generell f r Aufgaben mit einem hohen Datenaufkommen In Sachen Performance kann dieses System auf jeden Fall punk ten Das entwickelnde Unternehmen bietet kommerziellen Support f r sein Produkt an und au erdem wird mittlerweile eine Vielzahl an graphischen Oberfl chen f r die Anwendung angeboten Neo4j als graphenorientiertes Datenbanksystem eignet sich f r Soziale Netzwerke Routen planung sowie Empfehlungssysteme Die Anwendung ist einfach zu implementieren und bietet eine gro e Community F r erste Testzwecke bietet das entwickelnde Unternehmen auf seiner Webseite einen LiveTry an der noch keine Installation der Datenbank erfordert Zus tzlich werden hier auch Testdatens tze zur Verf gung gestellt Auch Neo4j kann ber zus tzliche graphische Oberfl chen bedient werden Das Key Value Datenbanksystem Voldemort bietet Einsatzm glichkeiten im Bereich der Microblogging Dienste Sessionverwaltung oder auch Artikelverwaltung Der gro e Vorteil dieser Datenbanktypen liegt in der Performance und Skalierbarkeit welcher erst in einer gro en Umgebung und mit einem hohen Datensatzaufkommen richtig zur Geltung kommt Voldemort bietet viele Programmierschnittstellen an aber leider keine grafischen Oberfl chen Auch die Dokumentation ist nicht sehr ausgereift und nur auf Englisch verf gbar Ge gebenfalls bietet es sich unter diesen Umst nden an einen weiteren Vertreter der Key Value
281. ng bestehender Zu yet griffsrechte lisierbar Lucene ist nur eine Programmbibliothek und kann deswegen Anbindung an Datenquellen nicht direkt an Datenquellen angebunden werden Administration Ee pve outlive ESTATE Gel eine Monitoring Erweiterung kann eingebaut werden Add m glichkeiten On Apache LIMO e Indexdateien standardm ig f r alle lesbar und be schreibbar e die daf r zust ndige Methode kann jedoch ber Berechtigungsverwaltung schrieben werden e Berechtigungsverwaltung f r einzelne Benutzer und Gruppen m glich 77 Vgl H lsb mer S 2011 78 Vgl Rowe S u a 2011 79 Vgl Kumar B 2006 80 Vgl Schmidt J 2012 81 Vgl Lightwerk o J 82 Vgl The Apache Software Foundation 2012i 83 Vgl o V o Jc 84 gl Zend Technologies Ltd 2012 KOS content 485 Programmiersprache Performance 39 in Java geschrieben Implementierungen auch in C und C nichtfunktionale Anforderungen Indexierung 95 GB Stunde bei moderner Hard ware zum Teil sogar noch deutlich schneller siehe Anhang 2 intuitive Bedienung e zur allgemeinen Bedienung Weboberfl chen ver f gbar zur Erweiterbarkeit einfache Programmierung in Java Tutorials sind auf der Homepage vorhanden elas hSE ENTE GE Lucene ist einfach zu installieren Es muss lediglich die Pro guration grammbibliothek in Java eingebunden werden Kompatibi
282. ngreiche Funktionalit ten ist ber Module erweiterbar und dennoch im Vergleich zu anderen Suchmaschinen ein fach zu bedienen Durch die Mandatenf higkeit ist eine Nutzung f r eine unternehmensinter ne Suche mit unterschiedlichen Berechtigungsleveln m glich und der Schutz der Daten vor unberechtigtem Zugriff gew hrleistet ElasticSearch ist generell eine empfehlenswerte Suchmaschine allerdings ist f r eine benutzerspezifische Konfiguration Lucene empfeh lenswerter und Solr die ElasticSearch sehr hnlich ist bringt aufgrund der gro en Verbrei tung mehr Erfahrungswerte und eine gr ere Community mit Daher scheidet ElasticSearch als Favorit f r die VERS BW aus Vgl o V 2012 http stackoverflow com questions 10213009 solr vs elasticsearch Stand 26 12 2012 KOS content 423 Anforderungen der VERS Erf llt Besonderheit Out of the box L sung 4 8 Solr Solr basiert ebenso wie ElasticSearch auf Apache Lucene Es handelt sich hierbei um eine voll ausgewachsene in Java geschriebene Volltextsuchmaschine die f r hohe Last und Ver f gbarkeit optimiert ist Es stellt verschiedene Funktionalit ten wie z B eine verteilte Indizie rung Replikation lastausgleichende Abragen automatisierte Ausfallsicherung und Wieder herstellung sowie eine zentralisierte Konfiguration bereit 5 Solr besitzt au erdem Funktonali t ten die es in Lucene nicht gibt Dazu geh ren beispielsweise Warm up Caching und Clus tering
283. nisse geliefert werden Der Webcrawler ge langt mit Hilfe von Hyperlinks zu den verschiedenen Webseiten und die entsprechenden URLs werden in einer Liste gespeichert Dies ist dann die bereits erw hnte Datensamm lung Die in der Datensammlung gespeicherten Webseiten werden von dem Crawler akti ven in regelm igen Abst nden auf nderungen untersucht 2 Information Retrival System Das Information Retrival System hat die Aufgabe die Daten die von dem Crawler gefun den wurden so aufzubereiten dass sie sp ter m glichst schnell und effizient durchsucht werden k nnen Daf r wird der unstrukturierte Datenbestand zun chst analysiert und aufbereitet Um sp ter eine Indexierung durchf hren zuk nnen wird nach passenden Schl sselbegriffen in den Webseiten gesucht und diese dann festgelegt Danach wird ei ne einheitliche Datenstruktur erstellt die es dem Query Processor sp ter erm glicht schnell die passenden Ergebnisse zu finden und diese nach Relevanz zu sortieren Gaulke M 0 J http www suchmaschinenkompetenz de Suchdienste Suchmaschinenkompetenz htm Stand 22 12 2012 OAL 2012 http de wikipedia org wiki Webcrawler Stand 22 12 2012 To 0 J http www drisol com informationen seo lexikon crawler Stand 22 12 2012 11 Vgl Gaulke M 0 J http www suchmaschinenkompetenz de Funktionsweise Suchmaschine Suchmaschinenkompetenz htm Stand 22 12 2012 KOS content 398 3 Query Processor
284. nnen 7 Datenaustausch Eine der wichtigsten Schnittstellen f r den Datenaustausch mit Hive ist die JDBC Mit dieser Datenbankschnittstelle kann die Oberfl chen Anwendung SQuirreL genutzt werden um Da ten mit Hilfe von Hive abzufragen Mit SQuirreL ist auch ein Export der Ergebnisdaten aus Hive in Excel CSV oder XML Dateien m glich 5 3 2 Pig Pig ist hnlich wie Hive eine Plattform um gro e Datenmengen zu analysieren und abzu fragen Die verwendete Sprache Pig Latin ist eine einfache Abfragesprache mit der man Abfragen Sortierungen sowie Gruppierungen vornehmen kann Au erdem k nnen ebenso wie mit Hive einfache Funktionen und auch UDF aufgerufen werden 77 Pig eignet sich auch f r Entwickler und Nicht Entwickler die nicht viel Erfahrung mit MapRe duce haben da Pig Latin Skripte automatisch in Map Reduce Jobs bersetzt und ausgef hrt werden 2 Auch Pig ben tigt ebenso wie Hive f r die Installation nur eine JRE Version 6 und kann entweder lokal oder aber auf einem Hadoop Cluster laufen Pig Latin Die Sprache um Abfragen in Pig zu realisieren ist Pig Latin Sie besitzt folgende Eigenschaf en D Einfachheit auch parallele Ausf hrung von komplexen Abfragen auf gro en Daten mengen einfach nachvollziehbar 8 Vgl Wartala R 2012 S 110 74 Vgl The Apache Software Foundation 2012b gt Vgl Wartala R 2012 S 111 ff 7 Vgl The Apache Software Foundation 2012e 7 Vgl
285. nough to develop produc tively at least as productive as was possible with Node js at the same point Node js already established itself as the dominant technology especially if mindshare is concerned which is supported by the data from Google Theory 2 is based around technical considerations Because of the dogmatic nature of asynchronicity in the Node js framework every package available on npm is built with asynchronous calling and non blocking I O in mind Vert x on the other hand is in a curious position here Vert x itself is architecturally similar to Node js but its ecosystem of established Java libraries is not developed with these principles in mind This poses the danger of executing synchronous blocking code negating all of Vert x advantages Obviously this can limit interest from the outset Another important metric to assess the potential impact of a framework is the technical back ground and the availability of skilled developers Redmonk investigated in three consecutive years the popularity of programming languages by analyzing the usage on GitHub and Stack 13 Cf Google Inc 2013 13 Cf ibid 14 See http github com KOS content 538 Overflow As of September 2012 JavaScript was ranked first before Java PHP Python and Ruby all of which have shown a strong performance over the past three years This is an affirmative aspect with regard to the potential target audience of developers of Node js an
286. nsdatei stores xml hinterlegt Nur ber diese k nnen neue Stores angelegt und beispielsweise die Datentypen f r key und value der jeweiligen Stores hinterlegt werden Um mit der Datenbank zu arbeiten gibt es zum einen die M glichkeit die Befehle ber die Konsole einzugeben und mit dieser zu arbeiten und zum Anderen direkt aus einem Pro gramm in den Sprachen Java Ruby Python oder C auf die Datenbank zuzugreifen Eine grafische Oberfl che ist zum aktuellen Zeitpunkt nicht verf gbar F r den Prototypen selbst wurden um im Bereich der Sozialen Netzwerke zu bleiben bei spielhaft folgende Datens tze in ein Store eines Test Cluster der Datenbank eingef gt Max Max Mustermann 01 01 1988 Berlin Leo Leo Luchs 09 09 1990 K ln Marta Marta Maier 25 04 1987 Stuttgart Tab 7 Beispieldatens tze eines Voldemort Stores KOS content 675 31 Die Datens tze bilden die Speicherung von Profilinformationen zu verschiedenen Nutzern ab Als Key wird jeweils der Username verwendet Die Attribute des Userprofils werden in Form von Strings miteinander verkn pft und bilden den Value Wird die Datenbank aus einem Anwendungsprogramm heraus genutzt k nnen die jeweiligen Profilinformationen auch in Form eines Objekts abgelegt werden Da f r den Prototyp aus zeitlichen Gr nden nur die Verwendung der Konsole m glich ist k nnen jedoch lediglich Strings und keine Objekte abgelegt werden Eine Abfrage der Pro
287. ntation gemacht werden da Informationsquellen zu HSearch nur sp rlich vorhanden sind 55 Vgl Bizosys Technologies Pvt Ltd 2010b 56 Vgl ebenda KOS content 480 34 4 Einzelbewertung der Suchmaschinen Nachfolgend wird die Bewertung der Suchmaschinen nach dem Bewertungskonzept aus Kapitel 2 durchgef hrt Dabei wird jede einzelne Suchmaschine in zwei Schritten bewertet Zun chst wird das zugrundeliegende Open Source Projekt betrachtet anschlie end das Suchsystem selbst 4 1 Bewertung von Lucene In diesem Kapitel wird das Projekt Lucene der Apache Software Foundation anhand der ge gebenen Kriterien bewertet In Tab 10 erfolgt zun chst die reine Projektbewertung Produkt Produktalter e erster Release 1997 e seit 2004 l uft das Projekt bei der Apache Soft ware Foundation Lizenzen Apache 2 0 freie kostenlose Lizenz Plattform u Kompatibilitat Java Entwicklung damit plattformunabhangig unterst tzte Betriebssysteme e Windows 95 Windows 7 e Linux e Mac OS Mac OS X Funktionalit t exemplarisch e Volltextsuche e Keyword Suche e Bereichssuche e Wildcard Suche e Phrasensuche Modularitat fur Lucene sind einige Add Ons vorhanden z B e Lucene Net Lucene in C e Lucy Lucene in C e Droids Framework f r Bots Crawler 57 Vgl Walker Morgan D 2011 58 Vgl The Apache Software Foundation 2012d 59 Vgl o V 2013 Vgl The Apache Software Found
288. o 16 require http createServer function req res var rs fs createReadStream path to big file rs on data function data if res write data rs pause res on drain function rs resume H rs on end function res end ki listen 8080 Lst 3 Controlling streams in Node js sessions serving static files parsing the request body etc DI Most of these tasks are very simple and don t require much computations The Proof of Concept also shows that other protocols like WebSockets can take a particular advantage from asynchronous technolo gies In general any network server that only needs to handle a small set of tasks could be written easily using one of the mentioned frameworks Realization The realization can be seen exemplarily in listings 6 et sqq as this is part of the Proof of Concept Known implementation Connect is a well known Node js based middleware that pro vides web server functionality and is considered an industry standard For Vert x there is a web server project called mod web server which efficiently serves files and can also be configured as en event bus bridge to client side JavaScript Proxies There are two indicators that militate in favor of an asynchronous server Proxies usu ally handle a large number of requests and secondly they mainly do I O related work but no big computations A common task migh
289. o stream next to the form through the use of asynchronous server technologies 122 Cf Joyent Inc w y b 123 Cf w a 2013b 124 Cf Asay M 2013 125 Cf w a 2013b KOS content 572 42 7 Conclusion The objective of this paper was to evaluate server side asynchronous technologies with spe cial focus on enterprise readiness This paper addressed this goal by outlining basic tech nologies in web development and pointing out the different approaches of synchronous and asynchronous communication The initial market overview has shown that there is a variety of frameworks for established programming languages available which however are not always in a satisfying state of de velopment The scope of investigations within this paper was limited to two frameworks which were evaluated in detail Node js and Vert x Node js While Node js is clearly dominating the market at present it also comes with its fair share of issues especially if reliability and maintainability are concerned This is not to say that Node js is unstable and or unreliable sections 2 5 2 and 5 1 proved that but rather that its community philosophy of Update Node Upgrade code is diametrically different to the principles of enterprise software deployment Vert x Vert x certainly has a much stronger position for entering the enterprise market due to its JVM underpinnings and ease of distributed programming see section 2 5 3 however its s
290. oSQL Datenbanken bestehen Inhalt der folgenden Arbeit sind die verschiedenen Eigenschaften M glichkeiten und Formen von NoSQL Datenbanken Im zweiten Kapitel werden die allgemeinen Grundlagen und die verschiedenen Arten von NoSQL Datenbanken mit ihren m glichen Einsatzbereichen sowie den pr gnantesten Vor und Nachteilen erl utert Im n chsten Kapitel wird zu jeder Art ein Beispiel aufgef hrt und im Hinblick auf die Funkti onsweise sowie besondere Eigenschaften n her betrachtet Diese Datenbanken dienen als Grundlage f r die Prototypen die im vierten Kapitel folgen Abschlie end soll im letzten Kapitel ein Fazit gezogen werden indem die Erkenntnisse dieser Arbeit noch einmal bersichtlich zusammengefasst werden 1 vgl Edlich S u a 2010 S 1 Vgl Computerwoche 2012 KOS content 646 2 Fachliche Grundlagen 2 1 NoSQL W hrend bislang traditionelle relationale Datenbanken die L sung aller Probleme verspro chen haben r cken NoSQL Datenbanken immer mehr in den Fokus Dabei bedeutet NoSQL nicht die grunds tzliche Ablehnung von SQL sondern vielmehr nicht die ausschlie liche Anwendung von SQL wortw rtlich wiedergegeben bedeutet das K rzel Not Only SQL Diese neue Generation von Datenbanksystemen erf llt h ufig einige der folgenden Aspekte e nichtrelationales Datenbankmodell e Ausrichtung auf eine verteilte und horizontale Skalierbarkeit e System ist Open Source e Schemafreiheit oder schw c
291. oduktiven Einsatzes Seminararbeit Stuttgart o Verl Pfadsucher Suchfunktionen auf der Basis von Lucene in iX 12 2011 S 131 134 Immer flexibel Apache Solr bekommt Kon kurrenz ElasticSearch in iX 3 2012 S 67 71 Recht des Internet 6 Auflage Heidelberg M nchen Landsberg Berlin Verlagsgrup pe Huthig Jehle Rehm Volltextsuche im Kontext relationaler Daten banken am Beispiel einer systeminternen DBMS Komponente von MySQL M nchen GRIN Verlag GmbH COM Komponenten Handbuch Systempro grammierung und Scripting mit COM Komponenten M nchen Addison Wesley Enterprise Search Sebastopol USA O Reilly Media Inc Einf hrung in die Allgemeine Betriebswirt schaftslehre 24 Auflage M nchen Vahlen Suche nach Suche Apaches Lucene eigene Suche und Indizierung in iX 6 2006 S 120 123 Java Nebenl ufige amp verteilte Programmie rung Konzepte UML Modellierung Realisie rung und Testen in Java 2 Auflage Witten W3L GmbH KOS content 516 Verzeichnis der Internetquellen o V 0 J a o V 0 J b o V 0 J c o V 0 J d o V 2012a o V 2012b o V 2013 Alexa Internet Inc 2013a Alexa Internet Inc 2013b 70 Introducing JSON http www json org Abruf 05 12 2012 Lucene http lucene 472066 n3 nabble com Abruf 18 01 2013 Lucene Index Monitor http limo sourceforge net Abruf 18 01 2013 Solr http lucene 472
292. om Combiner zusammengefasst und als Key Value Paar World 2 ausgegeben Simultan kom biniert der Combiner der anderen Datei deren gemappte Daten In Phase zwei wird Schritt und somit der letzte Schritt der Verarbeitung vorgenommen das Zusammenf hren der einzelnen Dateien Diese Funktion wird vom Reducer bernommen Er fasst die beiden Da teien wieder zu einer zusammen Wie auch bei Schritt werden hier die Ergebnisse gege benenfalls nochmal zusammengefasst Am Ende steht die Ausgabe Datei mit allen Key Value Paaren der Inputdatei also alle W rter aus der Inputdatei mit den jeweiligen absoluten H ufigkeiten Bye 1 Goodbye 1 Hadoop 2 Hello 2 World 2 7 Key Value Paare Wort H ufigkeit 2 a Operation Addition Hello 1 Bye 1 World 1 Se Hello 1 gt Mapper zb Hello Bye 1 World 2 World World 1 Bye 2 Bye Goodbye 1 World Reducer Hadoop 2 Hello Hello 2 Hadoop Hello Hello 1 Goodbye 1 World 2 Goodbye Hadoop 77 Mapper Hadoop 1 mp gt Combiner padoop 2 Hadoop Goodbye Goodbye 1 Hello 1 Hadoop Hadoop 1 Schritt Schritt Schritt Schritt Abb 2 Schema MapReduce Beim praktischen Einsatz wird dieser Prozess mit einem enormen Datenvolumen der Input Datei auf einer Vielzahl von Rechnern bearbeitet Dies geschieht durch die redundante Ver teilung der Daten parallel Damit wird h chste Effizienz und Sicherheit erm glicht Das Po tenzial kann erst durch den Gro
293. om Startverzeichnis Schritt f r Schritt durch die anderen Verzeichnisse Im Folgenden wird die Konfiguration f r das Listing 1 f r HTML Dateien erkl rt Die Darstel lung erfolgt in Abbildung 1 Da es weit mehr Dateitypen als die oben genannten drei gibt muss mithilfe von Konfigurati onsdateien festgelegt werden welches Verzeichnis bearbeitet wird IndexDir wie die 31 Vgl swish e org 2013 Aussagen der Community 32 winfwiki wi fom de 2010 KOS content 413 indizierte Datei hei en soll IndexFile und auf welche Dateien sich die Indizierung be schr nken soll IndexOnly Eingeleitet wird die Indizierung durch den Befehl swish e c localweb conf F gt man dem Startbefehl noch den Zusatz v3 bei wird angezeigt was das Programm gerade genau indiziert Ruft man nun Swish e mit anderen Parametern auf kann in einem der eben erstellten Indexe gesucht werden Ein Beispiel w re der Befehl swish e f localweb index w Hallo Dieser sucht nun in dem erstellten Index localweb index nach dem Wort Hallo Sollen komple xere Suchen durchgef hrt werden muss ich mit als Wildcard und den logischen Opera toren and or und not arbeiten 2 Durch Hinzuf gen von Filtern k nnen auch andere Formate verarbeitet werden Diese Filter verwandeln den neuen Dateityp in eines der drei bekannten Formate Das funktioniert zum Beispiel mit Jpeg und Open Office aber auch mit Mailboxe
294. ongo DB Sag ja zu NoSQL va Edlich S u a 2010 S 127 f 1 Vgl Edlich S u a 2010 S 125 Alvermann M 2011 S 18 83 Vgl Edlich S u a 2010 S 115 f Edlich S u a 2010 i 65 kS Vgl Wyllie D 2011 S 6 Alvermann M 2011 S 67 Vgl Alvermann M 201 ms z 16 8 Vgl Edlich S u a 2010 S 128 KOS content 661 17 3 2 Neo4j Neo4j Community kurz Neo4j ist eine Open Source Graphendatenbank der Firma Neo Technology die seit 2003 im Produktionseinsatz ist Die Entwicklung erfolgt in der plattform unabh ngigen Sprache Java Neben der Open Source Variante gibt es zwei Erweiterungen Zum einen die Advanced Version die unter anderem durch ein Monitoring erg nzt ist und zum anderen eine Enterprise Version Letztere bietet zus tzlich zum Monitoring die M g lichkeit eines High Availability Clusterings Der Preis der Advanced Version liegt pro Instanz bei 6 000 EUR j hrlich Die Enterprise Version kostet 24 000 EUR jahrlich Die Wahl einer der kommerziellen Versionen oder des Open Source Produktes ist vom Einsatzgebiet der Graphendatenbank abh ngig F r die Entwicklung von Online Anwendungen im Gesch fts betrieb sind die kommerziellen Produkte zu bevorzugen f r Evaluations und Testzwecke der Datenbank ist die Community Version ausreichend Aufbau und Datenmodell Das Neo4j Datenmodell speichert alle Datenstrukturen in Form eines Netzwerkes
295. oop conf Die Datei hadoop env sh enth lt die Konfiguration f r die Laufzeitumgebung Hier werden alle Java spezifischen Ein stellungen vorgenommen Besonders wichtig ist es hier die Umgebungsvariable JA VA_HOME zu setzen und hadoop somit mitzuteilen welche JVM es verwenden soll Hierf r muss der Eintrag von export JAVA HOME usr lib j2sdk1 5 sun KOS content 635 37 ZU m export JAVA_HOME usr lib jvm java 7 oracle jre geandert werden Weiter geht es mit der Konfiguration des Verzeichnisses und der Adresse des HDFS Hierzu muss zuerst als Benutzer root ein lokales Verzeichnis angelegt und mit entsprechenden Rechten versehen werden sudo mkdir usr local hadoop hdfs sudo chown hadoop hadoop usr local hadoop hdfs Danach sind in der Datei core site xml folgende Eintr ge zu machen lt xml version 1 0 gt lt xml stylesheet type text xsl href configuration xs1 gt lt Put site specific property overrides in this file gt lt configuration gt lt property gt lt name gt hadoop tmp dir lt name gt lt value gt usr local hdfs hadoop hadoop lt value gt lt description gt Temporaeres Verzeichnis fuer das HDFS lt description gt lt property gt lt property gt lt name gt fs default name lt name gt lt value gt hdfs localhost 54310 lt value gt lt description gt URI des HDFS NameNode lt description gt lt property gt lt configuration g
296. ous approach It can be a valid approach to implement single functionalities like real time communication chats push notifications and KOS content 573 43 use a synchronous technology for other parts of an application Depending on the use case and environment using Node js or Vert x both could potentially be beneficial However in an enterprise context there are caveats for both frameworks due to their early stages in develop ment In conclusion it is safe to assume that this kind of technology will evolve and become mature very soon The Appendices 4 to 7 describe actual implementations that leverage the described strengths Provided the use cases are wisely chosen companies can take away great benefits since a there is a lot of programming skill that can easily applied and b this new approaches effectively address some of today s IT problems KOS content 574 Appendices 44 List of Appendices Appendix 1 Appendix 2 Appendix 3 Appendix 4 Appendix 5 Appendix 6 Appendix 7 Appendix 8 Middleware as use case for Node js 45 Kue A Message Queue Job Queue based on Node js 46 Meteor and Opa Next Generation Web Application Frameworks 47 Gase Study Linkedln 4 Ha a ra 50 Case stidy AIRCODE s sarung 232 Baer EE 51 Case Study Etherpad 52 Case Study Clock a UK web agency 2 2 2 2 m nme 53 Benchmarking results sk A842 ee a 54 KOS content 575 45 Appendix 1 M
297. ows Explorers e Start des Datenbankservers durch Auswahl der ausf hrbaren Datei im Verzeichnis C selbsterstellter Ordner mongodb win32 i386 1 8 1 bin mongod exe e Start von MongoDB durch Auswahl der ausf hrbaren Datei im Verzeichnis C selbsterstellter Ordner mongodb win32 i386 1 8 1 bin mongo exe e Verbindung zwischen Datenbankserver und MongoDB wird automatisch hergestellt und die Testdatenbank wird ge ffnet e Operationen k nnen nun direkt ber die Konsole ausgef hrt werden Mittlerweile gibt es auch einige graphische Oberfl chen f r die Datenbank welche die Da tensichtung und Datenbearbeitung erleichtern sollen Hierzu z hlen unter anderem folgende Anwendungen e UMongo als Anwendung f r Windows Mac OS X oder Linux e MongoVUE als Anwendung f r Windows e MongoHub als Anwendung f r Mac OS X Vgl 10gen Inc 201 2a 4 Vgl 10gen Inc 201 2b KOS content 673 29 4 2 Neo4j Neo4j ist unter den Betriebssystemen Linux Mac OS X sowie Windows lauff hig Es kann als eigenst ndiger Server oder auf mehreren verschiedenen Maschinen verteilt laufen Da neben besteht die M glichkeit Neo4j in die Applikation einzubinden und als Embedded Sys tem laufen zu lassen Um Neo4j zu installieren kann die aktuellste Version unter dem folgenden Link http www neo4j org download heruntergeladen werden Abh ngig vom Betriebssystem ist die entsprechende Version zu w hlen Im Folgenden wird zum einen die Einb
298. perativen Forschung Rechnung getragen wird An den Ergebnissen des Projekts partizipieren die Dualen Partner Allianz Deutschland AG die Deutsche Rentenversicherung Baden W rttemberg und die HALLESCHE Krankenversicherung a G Inhalt Projektdarstellung Duale Hochschule Baden W rttemberg wh DHBW Duale Hochschule Baden W rttemberg Stuttgart Open Source Suchmaschinen Marktanalyse und Bewertung Schriftliche Ausarbeitung im Rahmen der Lehrveranstaltung Projekt des 5 Semesters Kompetenzzentrum Open Source KOS Vorgelegt von Larissa K nigs Simon Pieper Melanie Thum am 25 01 2013 Fakult t Wirtschaft Studiengang Wirtschaftsinformatik lt WWI2010I gt KOS content 387 Inhaltsverzeichnis ADKULZUNGSVERZBICNNIS sree a a eege IV ale Mei Geer e V A HEINIEILUNG sense ee Heer 1 2 Theorie zu Suchmaschinen unse een 2 2 1 Was sind NV IK Se ee a ae a rn a a en 2 2 2 Wof r werden Suchmaschinen eimgesetzt ke 2 2 3 Verteilung von Suchmaschinen see 3 2 4 Gegentberstellung verschiedener Lizenzvarianten ernennen 5 2 5 et de EE 7 3 Kriterienkataldg un EHE 10 Marktanalyse ee deed eh 12 4 1 Gr ne Suchmaschinen sssssssessserneerrierrinrrentnintnirtnitninnitnnkrntinntren ttnn rannnen nnen n nne 12 2 e EE 13 4 2 1 Volle Beet elite ee 14 4 22 N chtelleuan u n e ee en len 14 42 3 FUNKLIONSWEISEer en a neh a a IERE 15 7 MEE VA AEEA eet 15 E dE 16 4 3 1 NEO LO EE 17 43 2 TEE 1
299. ple of asynchronous processing has existed on the client side for a long time and has also evolved on the server side This section will give a brief market overview which is followed by the introduction of two upcoming frameworks for server side asynchronous development Node js and Vert x 10 Cf Teixeira P 2013 p 16 11 Cf Hughes Croucher T Wilson M 2012 p 10 et sqq 12 Cf Teixeira P 2013 p 48 KOS content 537 2 5 1 Market Overview Table 1 shows that there is real competition from established communities namely the Ruby and Python ones An important aspect in determining the potential success of a new tech nology is measuring the interest of software developers in the newcomer Google developed Google Trends visualizes the search interest i e the amount of queries of a particular subject and related ones oe Se gt Fig 4 Google search volume of Node js twisted eventmachine and Vert x compared Looking at the graphs in Fig 4 it can be concluded that interest in Node js is very high at the moment in absolute terms as well as in relative terms when comparing it to peers at the same point in there lifecycle Interest in Vert x is comparably low considering that it s idea is very similar to Node js The gap in interest could be related to many reasons two of which will be discussed briefly thus concluding this section Theory 1 would be that by the time Vert x became complete e
300. propriet re Soft ware weitergegeben werden Beispiel Lizenz GPL LGPL MPL BSD Apache Tab 1 Arten von Open Source Lizenzen e Plattform und Kompatibilit t Hier ist zu beurteilen welche bzw wie viele unterschiedliche Plattformen hardware und betriebssystemseitig die Anwendung unterst tzt In diesem Zusammenhang spielt insbesondere die Kompatibilit t mit verschiedenen Betriebssystemen z B Windows und Unix Betriebssysteme eine wichtige Rolle e Funktionalit t Dieses Kriterium umfasst den Funktionsumfang der Meta Suchmaschine Ein umfas sendes Funktionsspektrum spricht f r eine gute Unterst tzung durch die Entwickler und f r die Qualit t des Open Source Projekts e Modularitat Unter diesem Punkt ist die M glichkeit der Erweiterbarkeit eines Produkts zu verste hen Dabei ist vor allem zu beurteilen ob Add Ons vorhanden sind Diese M glichkeit wird auch als Baukastenprinzip bezeichnet e Releaseabstande Dabei steht die Zeit im Mittelpunkt seit dem die letzte Softwareversion ver ffentlicht wurde Des Weiteren ist die Anzahl vorhandener Updates Hotfixes Patches und Service Packs sowie deren Aktualitat und Haufigkeit zu beachten Grundsatzlich spricht eine gro e Anzahl an regelm igen Updates f r eine aktive Community F r 3 Mit nderungen entnommen aus Kleijn A 2006 KOS content 450 Unternehmen ist es meist sinnvoll dass die wichtigsten Patches und Hotfixes in an
301. quests per second Time per request Time per request Transfer rate Connection Times ms 10000 requests Apache 2 2 22 192 168 178 39 80 rocco file 200kb 204800 bytes 50 488 405 seconds 10000 0 0 2050340000 bytes 2048000000 bytes 20 47 sec mean 2442 025 ms mean 48 840 ms mean across all 4099 64 Kbytes sec received concurrent requests min mean sd median max Connect 0 83 262 4 4 1008 Processing 18 2359 1455 8 2022 9009 Waiting 2 398 629 5 10 4683 Total 21 2442 1448 3 2033 9014 Percentage of the requests served within a certain time ms 50 2033 66 3007 75 3052 80 3985 90 4053 95 5052 98 6018 99 6034 100 9014 longest request Lst 35 Benchmarking results as shown by the Apache benchmarking tool for web servers KOS content 588 Lists of References List of Literature Breshears C 2009 Fettig A 2005 Holtsnider B Jaffe B D 2010 Hughes Croucher T Wilson M 2012 Nemati H R Yang L 2011 Nemeth E Snyder G Hein T R 2007 Nguyen D 2012 Richter J 2010 Riordan R M 2008 Roden G 2012 Tanenbaum A S Van Steen M 2007 Teixeira P 2013 Thomson C 2002 58 The Art of Concurrency A Thread Monkey s Guide to Writing Parallel Applications Sebastopol O Reilly Media Twisted Network Programming Essentials Developing With Python s Event driven Framework S
302. r Webseite von Terrier unter http terrier org docs current terrier_http html zu finden 4 5 4 Fazit Terrier bietet eine Reihe zus tzlicher Features die gerade im Bereich Intranet Suche von Vorteil sind Ein vordefiniertes Web Interface ist vornanden und kann verwendet werden Die hierf r erforderlichen Voraussetzungen sind ohne Probleme zu erbringen Terrier ist sehr flexibel und effizient aufgebaut und erm glicht Ver nderungen f r Indizieren gr erer Doku mentensammlungen Laut dem Innovations Report von 2005 hat diese Software auf der In ternationalen Text Retrieval Konferenz 2004 alle anderen teilnehmenden Technologien an Ra terrier org 2011 n Vgl mscerts programming4 us KOS content 417 Leistung bertroffen Die Konferenz wurde unter der Obhut des National Institute of Stan dards and Technology durchgef hrt Au erdem haben verschiedene staatliche Institutionen bekanntgegeben dass sie ein Interesse an dem Einsatz von Terrier in ihrem Intranet haben Die englische Computing Society und das italienische Ministerium f r Kommunikation be nutzten zu diesem Zeitpunkt diese Software f r ihre internen Intranet Suchen Leider gibt es derzeit keinen aktuelleren Innovationsreport zu diesem Thema Dieser w re sehr interes sant und w rde Feedback zu dem Einsatz und der Open Source Version von Terrier liefern Dennoch kann anhand dieser Aussagen und der Evaluierung der Funktionen dieser Software zusammengefasst werden dass T
303. r e HSearch hat das Unternehmen BIZOSYS Tech nologies als Sponsor e keine Informationen Uber Nutzer von HSearch verf gbar e HSearch basiert auf Hadoop e bekannte Nutzer von Hadoop sind z B Facebook AOL IBM und Yahoo Anzahl der Downloads keine Informationen vorhanden Traffic Rank Stand Januar 2013 http www hadoopsearch net e globaler Rang 17 500 584 e keine regionalen Daten feststellbar Traffic Rank f r http bizosyshsearch sourceforge net nicht feststellbar Tab 16 Bewertung des HSearch Projekts Als n chstes wird der Fokus auf HSearch selbst als Suchmaschine gelegt Tab 17 HSearch Kriterium grunds tzliche Funktionen Codierung u Sprachunter HSearch unterst tzt die deutschen Sonderzeichen st tzung UTF 8 Crawler besitzt Crawler out of the box 161 Dateiunterst tzung unterst tzt alle g ngigen Dateiformate Cloud Unterst tzung e Anwendung ist webf hig soziale Netzwerke k nnen angebunden werden 157 Vol o V 2012b 158 Vol Alexa Internet Inc 2013c 159 Vgl Bizosys Technologies Pvt Ltd 2010b 160 Vgl ebenda 161 Vgl ebenda KOS content 500 54 e Cloud Unterst tzung nicht genauer spezifiziert Suchalgorithmus Volltextsuche Volltextsuche unterstitzt Synonyme u Korrektur Begriffskl rung vorhanden unscharfe Suche eingebaut Ergebnisdarstellung e Vorschauansichten
304. rache Performance intuitive Bedienung einfache Installation Konfi guration Kompatibilitat 45 Verwaltung Uber ein Benutzer oder Gruppenkonzept z B Integration des Berechtigungskonzepts aus Active Directory m glich Java aber auch Portierungen u a nach C Python Perl nichtfunktionale Anforderungen Echtzeitsuche 50 Indexe pro Sekunde daraus folgt eine Antwortzeit von unter 50 mei zur allgemeinen Bedienung Weboberfl chen ver f gbar zur Erweiterbarkeit einfache Programmierung in Java Tutorials sind auf der Homepage vorhanden Anleitung Tutorials f r Installation und Konfiguration sind auf der Homepage mit Codeausschnitten sowie in Wiki verf gbar plattformunabh ngig mit Windows Systemen kompatibel mit Mac OS Mac OS X kompatibel Bewertung von Solr 116 Vgl Comundus 2011 117 Vgl Maas G 2012 118 Vgl The Apache Software Foundation 20121 119 Vgl Miller M u a 2012 120 Vgl Rockstar template 2013 KOS content 492 46 4 3 Bewertung von Elasticsearch In diesem Kapitel wird das Projekt Elasticsearch welches von der gleichnamigen Firma ent wickelt wird anhand der gegebenen Kriterien bewertet In Tab 14 erfolgt zun chst die reine Projektbewertung Produkt Produktalter erster Release im Februar 2010 Lizenzen Apache 2 0 freie kostenlose Lizenz Plattform u Kompatibilit t Java Entwicklung damit plattform
305. rance purchase webpage are implemented in Node js and Vert x in chapter four Having set up an exemplary Proof of Concept PoC there are additional concepts explained that are important in modern web development e g AJAX and WebSockets This implementation was furthermore taken into consideration when non functional attributes like maintainability IC w a 2012a 2 Cf Swartz A 2005 KOS content 532 integration and performance were evaluated in chapter five Chapter six provides an outlook on the future of Node js and Vert x before chapter seven concludes the main research findings 1 3 Problem Description In traditional web application development data is transmitted synchronously i e upon a GET POST request so that the result can be displayed only after transmission and processing are finished While maintaining simplicity and predictability this can cause serious latency when uploading large pieces of data most commonly complex forms for registration Naturally rich content such as images and videos cause even more delays As demand around collaborative access and media richness evolved this became a serious bottleneck essentially preventing these types of applications On the client side browser side developers were able to work around the issue of synchronous transmission using the XmlHttpRequest object which allows to request resources programmatically using JavaScript while deferring handling of the response
306. rch o J i 139 Vgl Elasticsearch o J a 140 Vgl Elasticsearch o J j KOS content 496 50 Ergebnisdarstellung Cached Results u gro e Anzahl an Analyse Tools liefert Hintergrundinformati onen f r unterschiedliche Bereiche darunter auch Cached Hintergrundinformationen j i Results reaver He unterschiedliche Front Ends implementierbar darunter Web interfaces Skalierbarkeit e verteilte Suchmaschine Skalierbarkeit e hohe Skalierbarkeit durch Indexreplikation m glich e dadurch Anfragelastverteilung und Ausfallsicher heit M glichkeiten der Anbindung LDAP Anbindung keine eingebaute Funktionalit ten zur LDAP Umsetzung bestehender Zu griffsrechte Authentifizierung Keine Anbindungsm glichkeiten out of the box aber Mo dule f r die Anbindung an Anbindung an Datenquellen en e Notes Datenbanken e webbasierte Dokumente derzeit KEINE Anbindung an Wikis m glich Administration Ete pre outlive STATT S zahlreiche Monitoring und Reporting Werkzeuge als Erwei m glichkeiten terungen verf gbar Berechtigungsverwaltung nicht implementiert e programmiert in JAVA e JSON REST API Programmiersprache nichtfunktionale Anforderungen e M glichkeiten der Echtzeitsuche und indizierung Performance e keine Informationen Uber allgemeine Laufzeiten 141 Vgl Elasticsearch o J j 142 Vgl Elasticsearch o J k 143 Vgl
307. rden k nnen Die beteiligten Unternehmen partizipieren so an den Ergeb nissen des Projekts Zusammenarbeit mit den Dualen Partnern DHBW Stuttgart Duale Partner Die Zusammenarbeit mit den Dualen Partnern gestal gt ich entlang deren Anforderungen und Bed rfnis bringt wissenschaftliche en tet A a 5 3 8 RE didaktische und Kompetenzzentrum Finanzierung sen Sie sind die Themengeber f r betriebliche Frage methodische Expertise ein Open Source stellungen die im Rahmen des Projekts untersucht Forschungskompetenz KOS S generische L sung mit werden Die DHBW steuert die wissenschaftliche di eub A E daktische und methodische Expertise und Forschungs Bereicherung der Lehre npassungsoption Schulungs und Beratungsleistungen kompetenz bei und untersucht die identifizierten The Theorie Praxis Transfer menfelder Im Rahmen des Projektes steuert die DHBW Stuttgart die wissenschaftliche Expertise und Forschungskompetenz bei zur Bearbeitung der betrieblichen Fragestellungen der Dualen Partner Es entstehen generische L sungen welche von den Partnern an Ihre Situation angepasst werden kann Im Rahmen der Arbeit entstehen generische L sungen an denen die Partner teilhaben k nnen indem sie diese auf ihre spezifische Unternehmenssituation anpassen Zudem flie en die Ergebnisse in die Arbeit der DHBW ein sodass hier dem Anspruch an eine hohe Anwendungs und Transferorientierung ganz im Sinne einer koo
308. re Beispiele aufzuf hren prophezeit die IDC dass es bald keinen IT Bereich mehr geben wird der nicht von Big Data beeinflusst ist Value Die letzte Komponente von Big Data zeigt wie sich daraus ein zus tzlicher Wert f r den Un ternehmenserfolg ableiten l sst Das bisherige Bl was hier besser als Business Analytics bezeichnet werden sollte und dessen Technologien m ssen nun auf ein gro en Ma an neuen Datentypen angewendet werden Im Business Analytics gibt es im Gegensatz zum klassischen BI nicht nur Abfragen Berichte und Analysen sondern auch beispielsweise ver wandte Felder wie das Performance Management also eine integrierte Unternehmenssteue rungsarchitektur und hnliche Analytics Umgebungen wie geografische Analysen Das Data Mining ist zwischen diesen beiden Bereichen einzuordnen Es ergeben sich f r Unternehmen somit zwei gro e Chancen mit Big Data Zum einen wer den unterschiedliche Datentypen Quellen und Zielrichtungen miteinander verkn pft wo durch das Darstellen der technischen Aspekte von Big Data erm glicht wird Zum anderen wird verdeutlicht dass die IT Abteilungen wertvolle Informationen f r das gesamte Unter nehmen bereitstellt die aus einer Vielzahl von Daten mit unterschiedlichen Datentypen und Quellen gefiltert werden m ssen Ein wichtiges Kriterium hierbei ist dass die Fachabteilun gen sehr gut mit den IT Abteilungen zusammenarbeiten m ssen Au erdem ist ein gut orga nisiertes IT
309. red 2048000000 bytes Requests per second 51 39 sec mean Time per request 972 996 ms mean Time per request 19 460 ms mean across all concurrent requests Transfer rate 10288 97 Kbytes sec received Connection Times ms min mean sd median max Connect 0 15 102 2 0 1006 Processing 1 958 1231 5 108 6404 Waiting 0 173 381 8 71 2007 Total 2 973 1235 4 109 6404 Percentage of the requests served within a certain time ms 50 109 66 1072 75 1838 80 1998 90 2665 95 3957 98 4120 99 4875 100 6404 longest request KOS content 587 57 Apache2 ab n10000 c50 g 200kb apache dat http 192 168 178 39 80 rocco file 200kb This is ApacheBench Version 2 3 lt Revision 655654 gt Copyright 1996 Adam Twiss Zeus Technology Ltd Licensed to The Apache Software Foundation http ww zeustech net http www apache org Benchmarking 192 168 178 39 be patient 1000 2000 3000 4000 5000 6000 7000 8000 9000 Completed Completed Completed Completed Completed Completed Completed Completed Completed Completed Finished 10000 requests requests requests requests requests requests requests requests requests requests Server Software Server Hostname Server Port Document Path Document Length Concurrency Level Time taken for tests Complete requests Failed requests Write errors Total transferred HTML transferred Re
310. release configurable replication level to address machine failure results in only that machine being removed and not the entire rack row in the cluster Stemming normalization stop words amp phrases synonyms 267 file extensions including HTML PDF MS Office and many more KOS content 512 66 Content and ACLs updated in real time Document boosting Configurable document boosting to aid relevancy Over nine dimensions used to compute relevancy Self learning User click based ranking to map search term to document Dynamic weightage assignment to different sources or content types For e g ranking in content creation time Similarly in case of researching a topic the source or author parameter could be assigned higher weightage relative to other parameters WWW based extraction of meaning to find alternative terms Fuzzy search Automatic extraction of hierarchical and to create a unified thesaurus like representation History of users selection of documents tagged to the search terms represents user intent and memories reflected in the Index as tacit knowledge Extraction of business entities from unstructured documents and dynamically tagging them to structured records data to exploit a host of related services based on user permissions KOS content 513 KOS content 514 68 Anhang 2 Lucene Benchmarking Jede Nacht wird dieses Benchmarking automatisch ausgef hrt Dabei wird
311. rl Modul LWP Das Problem wird beho ben indem man ncftpget installiert und cpan konfigurieren l sst Eine Indexierung ist nun 7 blog stefan macke com 2006 6 blog stefan macke com 2006 KOS content 431 m glich In diesem Beispiel verf gt das Intranet ber verschiedene Teilbereiche Eine Suche mit getrennten index Dateien ist m glich mit folgender Einstellung in der Konfigurationsdatei swishcgi conf swish_index gt srv www swish e seite1 index srv www swish e seite2 index Nun kann endg ltig mit einer ersten Websuche gestartet werden Eine detaillierte Installati onsanleitung hat Swish e bereitgestellt unter http swish e org docs install html KOS content 432 6 Bewertung 6 1 Beurteilung Die vorliegende Arbeit wurde durchgef hrt um eine Opensource Suchmaschine zu finden welche die VERS BW zur internen Suche innerhalb eines vorhandenen Wikisystems imple mentieren und nutzen kann Daher wurde auf Basis eines Kriterienkataloges eine Marktana lyse durchgef hrt Der Schwerpunkt lag dabei darin nicht nur die vorgegebenen Suchma schinen zu betrachten sondern eine gro e Bandbreite an verschiedenen Konzepten zu in tegrieren Bei der Analyse wurden Vor und Nachteile ausgew hlter Suchmaschinen aufge listet die Funktionsweise betrachtet und der Gesamteindruck sowie die Eignung zur Imple mentierung bei der VERS BW bewertet Es handelt sich mit einer Ausnahme bei allen unter suchten Maschinen um Open
312. rst Run http cloudbuzz wordpress com 2009 1 0 13 vol demort installation to first run Abruf 09 01 2013 KOS content 693
313. rywebappdev wordpress com 201 1 11 18 node js is good for solving problems i dont have retrieval 01 21 2013 Case study How amp why to build a consumer app with Node js http venturebeat com 2012 01 07 building consumer apps with node retrieval 01 20 2013 Node js processing http www aaronstannard com image axd picture nodejs 20for 20dotnet_ thumb png retrieval 01 22 2013 A Brief History of Ajax http www aaronsw com weblog ajaxhistory retrieval 01 22 2013 KOS content 593 The Apache Software Foundation 2010 The Apache Software Foundation 2013 Thornsby J 2010 w a 2012 a 2012b w a 2012c w a 2012d w a 2012e w a 2012f w a 2013a a 2013b 63 DefaultExecutor Commons Exec API http commons apache org exec apidocs org apache commons exec DefaultExecutor html retrieval 01 18 2013 Multi Processing Modules MPMs Apache HTTP Server http httpd apache org docs 2 2 mpm html retrieval 01 20 2013 Node js Moves to Joyent http jaxenter com node js moves to joyent 32530 html retrieval 01 05 2013 Cisco Visual Networking Index Global Mobile Data Traf fic Forecast Update 2011 2016 http www cisco com en US solutions collateral ns341 ns525 ns537 ns705 ns827 white_paper_c11 520862 pdf retrieval 01 22 2013 nodejitsu node http proxy https github com nodejitsu node http proxy retrieval 01 21 20
314. s Unfortunately TTM is not ev erything because equal attention needs to be given to Total Cost of Ownership TCO i e the total expenditure required including costs incurred post deployment Here Node js presents a challenge in its reliance on callback leading to hard to follow and hard to fix code driving up TCO significantly because patches become more and more difficult to write with increasing Atraunch lt gt Present especially if the code is not to be maintained by the original developers Furthermore Node js is still at an unstable stage of code maturity at time of writing the current version is 0 9 79 causing infrequent breaking changes to its APIs which usually is a no go in the enterprise The API documentation distinguishes between five stability states dep recated experimental unstable stable API frozen locked whereas the latter ones are rarely found in the documented features This is reinforced by a community mindset of Upgrade Node Update Code based on a preference for new features The unintended benefit of this is a lot of available material for Node js programmers in blogs and on StackOverflow This leads to the conclusion that the current pace of progress does not facilitate enterprise adoption although it is not a showstopper 5 1 2 Vert x maintainability Vert x offers a similar picture to Node js however some of Node s s shortcomings are more pronounced on the Vert x side of thing
315. s Whereas Node js can recruit from established web developers is Vert x suffering from a curious conundrum It is based on the JVM which has enormous amounts of talent especially in the enterprise but because of its diametrical dif 35 Cf Fox T 2013a 96 Cf Hughes Croucher T Wilson M 2012 p 10 et sqq 97 Cf Holtsnider B Jaffe B D 2010 pp 203 207 Cf w a 2013a 8 Cf Joyent Inc 201 2a 100 See www stackoverflow com KOS content 563 33 ferences to the conventional libraries it does not seem to be able to recruit interest from this pool Also its support for multiple programming languages basically every JVM language should lower the barrier for entry even more as for example Groovy already features Vert x aligned language constructs Unfortunately this means that new Vert x programmers need to be trained which increases TTM significantly Another important issue is the unstable state of the Vert x codebase Due to the rather small community issues are often detected after new versions are considered final At the time of writing there are currently 90 open issues on the project site Section 2 5 1 already mentioned the ease of calling synchronous code with Vert x although this can be worked around with by placing the code in new verticles this still requires a lot of vigilance TCO is difficult to estimate for Vert x due to a lack of success failure stories it can be said though that beca
316. safe to assume that it will not be necessary to buffer each part of the requests body but start calculating once the data submission has been completed In reality these calculations are much more complex than in this simple scenario so that they have to be done in a separate thread outside of the event loop In the implementation these long running calculations are simulated artificially for demonstration purposes Additional features in the back end can be integrated via existing modules from the repositories of Vert x or Node js KOS content 551 DB 21 4 2 1 HTTPS To create a secure application HTTPS is required To demonstrate an HTTP and HTTPS server likewise the application includes two web servers both of which serve the same func tionality It is necessary to generate a pair consisting of a private and a public key because the handshake prior to an HTTPS session follows a specific procedure 1 Client contacts the server using a secured URL 2 The server responds sending the digital certificate to the browser 3 The client certifies that the certificate is valid e g by trusted authorities 4 Once the certificate is validated the one time session key generated by the client will be used to encrypt all communication with the server 6 The client encrypts the session key with the public key of the server Only the server can decipher the data using the private key The generation of private and public keys can
317. say The Small World Phenomenon and Decentralized Search http www mathaware org mam 04 essays smallworid htm Wed 30 Jun 2010 I 6 kbyte Metadata Parser Pictures Deterministic decentralized search in random graphs Deterministic decentralized search in random graphs http portal acm org citation cfm id 1777894 Wed 30 Jun 2010 36 kbyte Metadata Parser Pictures Abbildung 5 Yacy Suchmaske bei Ausgabe eines Suchbegriffs 4 3 1 Vorteile Unabh ngigkeit kein Konzern verwaltet die Suchmaschine Dadurch gibt es keine sponsored Links und keine Werbung Unabh ngigkeit der Internetnutzer da kein Konzern zensiert oder ein bezahltes Ran king der Suchergebnisse durchf hrt Rasantes Wachstum m glich Einmal bei ein paar hundert Nutzern bekannt kann sich die Suchmaschine schnell verbreiten Mit der Verbreitung steigt die Qualit t der Suchergebnisse und die Schnelligkeit der Suche Ein Komplettausfall der Suchmaschine ist durch die dezentrale Anordnung nicht m g lich Dazu m sste jeder Nutzer offline sein was unwahrscheinlich ist Selbst Seiten aus dem Deep Web oder nicht ffentlichen Seiten werden zug nglich da die Indexierung ber den Proxy des Nutzers stattfindet Crawler von ffentlichen Suchmaschinen finden diese Daten aus verschiedenen Gr nden nicht 7 Enthalten in yacy de 2013 KOS content 408 4 3 2 4 3 3 Yacy kann als private Suchmaschine im Internet benutzt werden da jeder
318. se_search_solr html Abruf 13 12 2012 KOS content 519 McCandless M 2013 Miller M u a 2012 Neumann A 2012 Nioche J 2011 Rockstar template 2013 Rowe S u a 2011 Schmidt J 2012 Schneider T 2004 Schonschek O o J Search Technologies Corp 2013 SourceForge 2013 The Apache Software Foundation 2006 The Apache Software Foundation 2012a 73 Indexing Throughout http people apache org mikemccand lucen ebench indexing html Abruf 15 01 2013 Apache Solr http wiki apache org solr Abruf 10 01 2013 Lucene net endlich ein Apache Top Level Projekt http www heise de developer meldung Luce ne net endlich ein Apache Top Level Projekt 1669454 html Abruf 18 01 2013 Web Scale Crawling with Apache Nutch http de slideshare net hustwj web scale crawling with apache nutch Abruf 18 01 2013 Install and Configure SOLR in Mac OS X http rockstartemplate com tutorial install configure solr mac Abruf 18 01 2013 Lucene java Wiki LuceneFAQ http wiki apache org lucene java LuceneFAQ Abruf 18 01 2013 Suchen leicht gemacht Apache ver ffentlicht Lucene 4 0 und Solr 4 0 http www heise de developer meldung Suc hen leichtgemacht Apache veroeffentlicht Lucene 4 0 und Solr 4 0 1728500 html Ab ruf 18 01 2013 Anwenderhandbuch Regain http docs huihoo com regain Anwenderhan dbuch_Regain_v1 0 pdf Abruf 18 01 2013 Big Data In
319. skTracker um die Verarbeitung der MapReduce Prozesse parallel auszuf hren Die TaskTracker erzeugen anschlie end jeweils Java Virtual Machines JVM um die Map beziehungsweise Reduce Funktionen auszuf hren Der TaskTracker sollte nach M glichkeit immer auf dem DataNode mit den zu verwenden den Daten ausgef hrt werden Ist dies nicht m glich sollte ein TaskTracker im gleichen Rack ausgew hlt werden um Performanceeinbu en zu vermeiden 8 gl McDonald K 2011a KOS content 611 13 Hadoop Cluster i Abb 3 Kommunikation der Nodes in Hadoop Typischerweise sind die JobTracker auf der gleichen virtuellen Maschine realisiert wie auch der NameNode Die TaskTracker sind stets auf den DataNodes implementiert In Abb 3 ist die Kommunikation zwischen den Knoten visualisiert Die Anfrage kommt stets vom Client In diesem Szenario kommuniziert der Client mit dem JobTracker er k nnte aber auch in einem anderen Anwendungsbeispiel direkt mit dem NameNode oder einem der DataNo des kommunizieren Nachdem der Client die Anfrage an den JobTracker geschickt hat be dient dieser die jeweiligen TaskTracker der entsprechenden DataNodes mit den MapRedu ce Aufgaben Die TaskTracker bergeben dabei den Heartbeat an den NameNode Wenn ein Client eine Datei anfordert bekommt dieser vom NameNode gesagt auf welchem DataNode diese zu finden ist Der Client liest die Datei darauffolgend direkt vom
320. source Suchmaschinen da dies eine Anforderung der Auftrag geber war Diese Ausnahme wurde in die Analyse integriert um auch einen Vertreter der gr nen Suchmaschinen zu bewerten Da aktuell keine gr nen Opensource Suchmaschi nen existieren haben die Autoren auf Ecosia eine nicht opensourcebasierende Suchma schine zur ckgegriffen Die naheliegende Idee eine Nutzwertanalyse durchzuf hren wurde verworfen da eine ob jektive Bewertung nicht m glich ist Das liegt daran dass jedes Unternehmen unterschiedli che Anforderungen auch anders gewichtet Des Weiteren sind alle in der Marktanalyse auf gelisteten Suchmaschinen nicht direkt am Kunden getestet worden Aufgrund dieser unter schiedlichen Pr ferenzen und der bisher nicht durchgef hrten Tests ist es nicht m glich eine Suchmaschine als die Geeignetste oder Beste zu deklarieren Die Marktanalyse ergab au erdem dass der Funktionalit tenumfang der Suchmaschinen etwa proportional zu den notwendigen Programmierkenntnissen ist Die untenstehende Ab bildung verdeutlicht diesen Sachverhalt Man ben tigt beispielsweise f r die Standardversion von Lucene wenig Programmierkenntnise w hrend man f r ein benutzerdefiniertes Projekt auf Basis von Lucene umfangreiche Programmierkenntnisse ben tigt KOS content 433 Lucene benutzerdefiniert Funktionalit ten umfang Lucene Standard N tige Programmierkenntnisse Abbildung 13 Zusammenhang zwischen Funk
321. st tzt das flexible Prozessieren von Ausdr cken durch eine pipeline of compo nents 3 40 4 5 2 Nachteile Selbst nach intensiveren Recherchen zu Terrier konnten im Rahmen der Suchen ber die Google Suche keine Erl uterungen zu den Nachteilen gefunden werden Dies beweist aller dings im Gegenzug dass die Community noch sehr klein ist und Terrier zu den kleineren unbekannten Vertretern der Open Source Suchmachinen z hlt Dementsprechend gering wird der Support ausfallen Dieser Punkt spricht ganz klar gegen einen Einsatz in einem Un ternehmen 4 5 3 Funktionsweise Vorabinformationen F r das Web basierte Interface ben tigt man etwas h here Ressourcen als f r Terrier selbst Da mit JSPs gearbeitet wird wird anstelle der JRE das komplette JDK ben tigt Des Weiteren gilt f r Benutzer die bereits mit Terrier arbeiten dass normale Indexe nicht mit dem web basierten Interface benutzt werden k nnen da im Standard Terrier Do kumente Ausschnitte und Metadaten nicht mit gespeichert werden Deshalb muss die Sammlung ber Scratch indiziert werden Viele Punkte der Funktionsweise sind bereits in den Vorteilen enthalten Gewisse Details sind nur schwer zu verstehen und erfordern technisches Hintergrundwissen ber diverse Programmiersprachen und Betriebssysteme heraus Mit der obigen Darstellung werden alle wichtigen Punkte aufgelistet und im Rahmen unseres Verst ndnisses dargestellt Detaillier te Informationen sind auf de
322. sting re trieval 01 19 2013 KOS content 591 Joyent Inc w y a Joyent Inc w y b Klishin M 2012 Knight M 2011 Krumins P 2010 Majkowski M et al 2013 Martischka P 2011 Matejka J 2012 McCalla J 2011 McGlennon G 2007 McMahon C 2012 Nutt M Wong B w y 61 Child Process Node js v0 8 17 http nodejs org api child_process html retrieval 01 17 2013 Node Packaged Modules https npmjs org retrieval 01 18 2013 EventMachine Readme https github com eventmachine eventmachine blob b79d508532e210084a7fcda31f330a8a81bf78aa README md retrieval 01 12 2013 Message Queues in Node js http www matt knight co uk 2011 message queues in node js retrieval 01 19 2013 A HTTP Proxy Server in 20 Lines of node js Code http www catonmat net http proxy in nodejs retrieval 01 21 2013 SockJS client https github com sockjs sockjs client retrieval 01 22 2013 Wie Etherpad Lite entstand http pitapoison de wie etherpad lite entstand retrieval 01 19 2013 w t http jirimatejka cz ajax diagram retrieval 01 12 2013 Node js Cluster for multiple servers https groups google com forum fromgroups topic nodejs V4Rx09ADuGM retrieval 01 21 2013 Message Queues http www dotnetprofessional com blog file axd file CHAPTER 4 Message Queues pdf retrieval 01 15 2013 No
323. syshsearch sourceforge net Stand 28 12 2012 2 Vgl o V 2010 http bizosyshsearch sourceforge net Stand 28 12 2012 KOS content 428 gen Au erdem stellt Hsearch benutzerspezifische Schnittstellen zur Verf gung ber die sich die Nutzer einloggen k nnen P 4 9 4 Fazit Hsearch wurde entwickelt um in einer verteilten Umgebung genutzt zu werden Es eignet sich besonders f r die Nutzung durch Unternehmen da es hinsichtlich Vielseitigkeit Skalier barkeit und Sicherheit Standardanforderungen von Unternehmen erf llt Zus tzlich bietet Hsearch Unternehmen die sich nicht selber um die IT k mmern m chten gegen Bezahlung einen Support an Allerdings ist Hsearch eher f r Unternehmen geeignet die es mit un glaublich gro en Datenmengen zu tun haben was bei dem Wikisystem der VERS nicht der Fall ist Au erdem gibt es wenig Foren und nur eine kleine Community die den Entwicklern Unterst tzung bieten Es gibt nat rlich kostenpflichtigen Support doch es w re eine Ver schwendung von Ressourcen da die VERS BW selber ber ein IT Team verf gt Bei ande ren Suchmaschinen ist die VERS BW mithilfe ihres Know hows daher auf jeden Fall in der Lage diese selber zu implementieren und zu warten Bei Hsearch ist diese Sicherheit auf grund mangelnder Erfahrungsberichte nicht gegeben Anforderungen der VERS Teilweise erf llt Besonderheit Eignet sich f r Suche in Big Data Nicht weit verbreitet Vgl Bizosys T
324. systemen l uft Die Suche verl uft ber eine lokale Webseite die vom installierten Programm ausgeliefert wird In der Browserleiste erscheint localhost damit greift der User auf seinen eigenen PC zu Die Anzeige der Ergebnisse erfolgt hier wie gewohnt als HTML Seite Der Client sieht eine simple Suchmaske in welcher nun der Suchbegriff eingegeben werden kann 3 de wikipedia org 2013 4 de wikipedia org 2013 KOS content 409 Abbildung 6 Link Topologie der Yacy Nutzer Peers Die obige Abbildung zeigt die Link Topologie der einzelnen Peers Je mehr Nutzer der Suchmachine hinzukommen und je mehr Seiten insgesamt indiziert wurden desto gr er die obige Struktur und desto h her die Leistungsf higkeit der Suchmaschine im Ganzen Parallel zum P2P System kann ein Proxyserver verwendet werden der automatisch die be suchten Seiten indiziert Dies findet nicht bei Seiten statt denen via GET oder POST weite re Daten bergeben werden oder die Cookies oder HTTP Authentifizierung verwenden z B Seiten in einem Login Bereich Somit ist sichergestellt dass auch wirklich nur ffentlich zu g ngliche Daten indiziert werden Zus tzlich ist es m glich private oder ffentliche Lese zeichen zu verwalten 4 3 4 Fazit Yacy ist ein Beispiel f r eine sehr unkonventionelle Suchmaschine die zwar von der Such maske den Gro en am Markt entspricht im Kern aber ein v llig anderes Prinzip verfolgt
325. t Als n chstes muss in der Datei hdfs site xml der Replikationsfaktor wie folgt gesetzt werden lt xml version 1 0 gt lt xml stylesheet type text xsl href configuration xsi gt lt Put site specific property overrides in this file gt lt configuration gt lt property gt lt name gt dfs replication lt name gt lt value gt 1 lt value gt lt description gt Replikationsfaktor lt description gt lt property gt lt configuration gt Zum Schluss m ssen noch die Adresse und die Portnummer der JobTracker Instanz in die Datei mapred site xml eingetragen werden lt xml version 1 0 gt lt xml stylesheet type text xsl href configuration xsi gt KOS content 636 38 lt Put site specific property overrides in this file gt lt configuration gt lt property gt lt name gt mapred jop tracker lt name gt lt value gt localhost 5431 1 lt value gt lt description gt Hostname des JobTrackers lt description gt lt property gt lt configuration gt Bevor mit hadoop gearbeitet werden kann ist das HDFS zu formatieren und wird somit unter usr local hdfs nhadoop hadoop angelegt cd usr local hadoop bin hadoop namenode format Damit sind die Installation und Konfiguration des Single Node abgeschlossen und die Dae mon Prozesse k nnen gestartet werden bin start all sh Das Kommando jps zeigt alle laufenden Daemon Prozesse an In unserem
326. t 659 15 3 Vertreter 3 1 MongoDB Bei MongoDB handelt es sich um eine dokumentenorientierte Open Source Datenbank hinter der das Unternehmen 10gen steht Die L sung ist in der Programmiersprache C implementiert und f r die Betriebssysteme Windows Mac OS X und Linux erh ltlich Sowohl 32 Bit als auch 64 Bit Systeme werden unterst tzt Aufbau und Datenmodell Bei MongoDB wird im Gegensatz zu relationalen Datenbanken nicht von Tabellen gespro chen sondern von Kollektionen Dabei kann jede Kollektion Dokumente beinhalten welche im BSON Format gespeichert und ausgegeben werden und dem Javaskript Objekten sehr hneln Ein vergleichendes Beispiel des Aufbaus einer relationalen Datenbank zu einer MongoDB Datenbank enth lt der Anhang 2 BSON bedeutet bin res JSON und l sst sich durch Effizienz und Platzersparnis charakterisieren In diesem Zusammenhang ist zu be achten dass Dokumente im BSON Format auf eine Gr e von 4 MB begrenzt sind Aller dings bietet MongoDB einen speziellen Mechanismus mit der Bezeichnung GridFS welcher die Speicherung gr erer Dokumente erm glicht Zu diesem Zweck werden Dateien gesplit tet und anschlie end auf mehrere Dokumente verteilt Wie bereits erw hnt werden in Mon goDB Daten in Form von Dokumenten abgespeichert Dabei besteht ein Dokument aus einem sortierten Satz von Eigenschaften welche sich wiederum aus einem Namen und einem Wert zusammen setzen Die Dokumente k nnen
327. t be to filter a set of URLs which can be easily done with an array in Java and JavaScript Realization The requests are caught intercepted by the proxy server which then re quests the actual website and passesit back to the requesting client Other requests can be handled while the resources are being loaded There are examples of Node js show ing a proxy written on 20 lines of code These implementations could be extended to 51 Cf Teixeira P 2013 197 et seq 62 Cf O Dell J 2012 63 Cf Roden G 2012 p 145 64 Cf w a 2012f 65 Cf Krumins P 2010 KOS content 547 17 provide more sophisticated features Known implementation There is a Vert x implementation called vertx proxy as well as a Node js proxy called node http proxy both of which support HTTPS Push notification and messaging systems Asynchronous technologies are suitable for web applications and networking tools that have to handle many concurrent connections as they are event driven 6 Such applications process a high number of requests fast which in most cases means in real time At the same time the tasks are not CPU intensive and do not block the event loop Realization Such web applications or services can include chat platforms sport bets e mailing and instant messaging applications As opposed to synchronous processing the event loop keeps working while notifications are delivered to clients and potential call backs
328. t betrachteten Systeme Au erdem kann sich die Ge wichtung der einzelnen Bewertungskriterien aus Unternehmenssicht im Laufe der Zeit n dern und es k nnen neue Anforderungen hinzukommen Ebenso befinden sich die hier ana lysierten Projekte teilweise noch in einem fr hen Entwicklungsprozess sodass der weitere Entwicklungsverlauf weiterhin beobachtet werden sollte Nichtsdestotrotz zeigt diese Arbeit dass Solr die gegebenen Anforderungen am besten erf llt KOS content 509 63 Anhang Anhangverzeichnis Anhang 1 HSearch Datenblatt une eas eee en ee Anhang 2 Lucene Benchmarking era ae de KOS content 510 64 Anhang 1 HSearch Datenblatt Capability Feature Solution Tabular data extraction from HTML pages Document cover page extraction such as MS Word MS PowerPoint Adobe PDF e Interactive rich views using Ul widgets such as tables charts maps snapshots Bizosys Search Framework allows external systems to push content in real time using e REST based APIs e Java based APIs 172 Enthalten in Bizosys Technologies Pvt Ltd 2010b KOS content 511 65 Document level Access Control based on User ID Role Bizosys Search Framework allows users authenticated from enterprise LDAP User access via custom security interfaces Configurable encryption of sensitive content Scalability Single machine e configurable leveraging of multiple hard disks On demand machine acquisition and
329. t der Dokumentation SUMME Dokumentation Community und kosystem direkter Ansprechpartner Vorhandensein von FAQ SUMME Support SUMME Tab 18 Reifegradermittlung der Suchmaschinenprojekte Das Projekt von Lucene erreicht mit 2 81 Punkten den h chsten Wert Dicht dahinter steht wohl auch aufgrund der hnlichkeit der Projekte Solr mit 2 66 Punkten Einen noch zufrie denstellenden Wert erzielt Elasticsearch 2 07 w hrend Hsearch mit 0 97 Punkten mit Ab stand auf dem letzten Platz landet Insgesamt konnten bei diesem Bewertungsverfahren 4 00 KOS content 503 57 Punkte erreicht werden Die Projekte Apache Lucene und Apache Solr schneiden dabei in allen drei Kategorien hnlich gut ab Insbesondere in der Kategorie Support k nnen die Pro jekte mit 3 8 Lucene und 3 3 Solr Punkten berzeugen Elasticsearch kommt in allen drei Kategorien nicht an Lucene und Solr heran und schw chelt insbesondere in der Kategorie Dokumentation mit 1 7 Punkten Noch geringere Werte erzielt HSearch und scheint v a in den Bereichen Dokumentation und Support mit weniger als 1 00 Punkten noch sehr unaus gereift zu sein Es l sst sich zudem feststellen dass alle drei Suchmaschinenprojekte unter Apache 2 0 li zensiert sind damit vollkommen kostenlos sind und ohne Einschr nkungen verwendet wer den k nnen Ebenfalls f llt auf dass bei keinem der Projekte eine deutschsprachige Doku mentation vorhanden ist D
330. ta in vier Faktoren ein e Volume e Variety e Velocity e Value Zu Deutsch Menge Variabilitat Geschwindigkeit und Wert Diese vier Vs werden im Fol genden n her erl utert Volumen Das Volumen an strukturierten Daten die sich klassischen Datenbankfeldern zuordnen las sen umfasst derzeit lediglich etwa 20 mit abnehmender Tendenz Der Rest des Datenvo lumens besteht aus sogenannten semi oder polystrukturierten Daten Von unstrukturierten Daten kann hier nicht gesprochen werden da selbst Bilder Texte oder Voicemails eine ge wisse Struktur ausweisen Um einen Eindruck davon zu bekommen wie gro das Datenvo lumen von Big Data ist stellte die IDC eine Statistik mit dem weltweiten Datenvolumen auf Beispielsweise betrag das Volumen im Jahre 2011 bereits 1 8 Zetta Byte wobei ein Zetta Byte ber eine Milliarde Tera Byte umfasst Zudem findet ca alle zwei Jahre eine Verdopp Vgl P rner H 2011 S 28 ff 7 Wolff E 2012 S 17 Vgl Spies R 2012 S 141 f KOS content 602 lung des weltweit genutzten Volumens an Daten statt Wenn dieser Trend weiter anh lt h t te dies zur Folge dass im Jahr 2017 mehr als 14 Zetta Byte Daten genutzt werden Dieser enorme Anstieg h tte starke Auswirkungen auf unvorbereitete IT Abteilungen Da Daten viel schneller produziert als ausgewertet werden k nnen w re das zentrale Problem hierbei nicht etwa die Speicherung der vielen Daten sondern vielmehr ein sinnvoller Umgang
331. tal Cost of Ownership TIM 244 4442 4 Time to Market ON Pe User Interface URL et Uniform Resource Locator KOS content 528 List of Tables Table 1 Existing asynchronous programming frameworks Table 2 Maintainability comparison of Node js and Vert x KOS content 529 Vi List of Figures Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig Fig ee Ve Oe AD Ag 11 12 AJAX diagrami er te nd re 2 Synchronous blocking function call 0 200004 5 Asynchronous non blocking function call 5 Google search volume of Node js twisted eventmachine and Vert x com E NEE 7 Processing Node js 22 E ra De er et 10 Abstracted deployment units of Vertx 2 2 2 222 a 12 Vert x server bridge Se Int a re pe Bee 12 Usage workflow of the exemplary application 19 High level architecture of the application 0 20 Plot of the web server benchmark results all servers 38 Plot of the web server benchmark results asynchronous servers 38 Opa example code si 25 cts 5 Se 2 den rer na 48 KOS content 530 VII List of Listings Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst Lst ch E ET de Lee E E e 11 13 14 15 16 17 18 19 21 20 22
332. tation SUMME Dokumentation Community und kosystem direkter Ansprechpartner Vorhandensein von FAQ SUMME Support 20 SUMME 100 Tab 2 Matrix zur Bestimmung des Reifegrads von Open Source Projekten Der hierdurch identifizierte Reifegrad soll als Bewertungskriterium nicht isoliert betrachtet werden sondern im Zusammenhang mit einem zweiten Aspekt Marktakzeptanz analysiert werden Zur Darstellung des Zusammenhangs zwischen zwei Faktoren eignet sich die Vier Felder Matrix der Boston Consulting Group Bei dieser Matrix handelt es sich um ein Modell der Produkt Portfolio Analyse welches den Zusammenhang zwischen zwei Faktoren herstellt Als externer Faktor wird das Marktwachs tum senkrechte Achse und als interner Faktor der relative Marktanteil waagerechte Achse festgelegt Das Marktwachstum repr sentiert die derzeitige Lage eines Produkts im Produkt lebenszyklus Je niedriger dieses ist desto fortgeschrittener ist der Lebenszyklus Je h her KOS content 453 der Marktanteil eines Produkts ist umso niedriger sind dessen St ckkosten In Abb 1 wird dieser Zusammenhang dargestellt hoch E Question Marks Stars 2 o SE EE S Poor Dogs Cash Cows niedrig i Marktanteil hoch Abb 1 Vier Felder Matrix der Boston Consulting Group Innerhalb der Matrix lassen sich vier Felder erkennen zu denen die einzelnen Produkte ei nes Portfolios zugeordnet werden
333. ten von 100 generierten Testusern ist zu beach ten dass die Inhalte nicht gegen irgendwelche Beschr nkungen oder Schl sseldefinitionen versto en d rfen Hierbei muss an die korrekte Reihenfolge beim Einladen der Datens tze gedacht werden Das ndern der Strukturen ALTER kann nur mit gewissem Aufwand und nicht zur Laufzeit werden erfolgen Die Daten mit den Befehlen INSERT UPDATE und DELETE geladen bzw manipuliert Zur Abfrage der Daten wird der Befehl SELECT genutzt Dieser erm glicht eine gro e Anzahl an M glichkeiten Tabellen zu Verkn pfen Werte abzu fragen und zu aggregieren Die Daten werden zeilenorientiert abgelegt Hierbei wird eine Trennung der eigentlichen Daten und der Metadaten vorgenommen KOS content 688 Quellenverzeichnisse Literaturverzeichnis Alvermann M 2011 Boeker M 2010 Edlich S u a 2010 P rner H A 2011 Sakr S Pardede E 2011 Wolff E 2012 Wyllie D 2011 44 Einf hrung in MongoDB in JavaSPEKTRUM 2011 Nr 1 MongoDB Sag ja zu NoSQL Frankfurt am Main entwickler press NoSQL Einstieg in die Welt nichtrelationaler Web 2 0 Datenbanken Munchen Carl Hanser Verlag NoSQL Die neue alte Datenbank Generation in Computerwoche 2011 Nr 38 Graph Data Management Techniques and Applications o O Idea Group Reference NoSQL Die neue Datenbankgeneration in Computerwoche 2012 Nr 37 MySQL vs MongoDB Datenbanksysteme im
334. tent 418 4 6 2 4 6 3 Skalierbar das hei t es k nnen ohne Probleme mehr Dokumente Wikiinstanzen etc hinzugef gt werden Effiziente Suchalgorithmen unter anderem aufgrund der M glichkeit boolsche Ope ratoren und Wildcards bei der Suche einzusetzen Einfache API die es dem Entwickler erlaubt die Suchmaschine weiterzuentwickeln Wahlm glichkeit zwischen selber entwickelter Suchsyntax und den umfangreichen Standardsuchoptionen Lucene unterst tzt n tzliche Suchfunktionen wie beispielsweise Fuzzy Suche Dis tanzsuche oder auch Verst rkungsfaktoren o Fuzzy Suche bedeutet dass bei einer Suchanfrage auch nach synonymen Begriffen gesucht wird oder bei Tippfehlern des Nutzers trotzdem nach dem korrekten Begriff gesucht wird o Distanzsuche erm glicht das Suchen von mehreren Begriffen die in einem Text nicht direkt hintereinander stehen o Verstarkungsfaktoren k nnen eingesetzt werden um eine Gewichtung der Begriffe zu Erreichen Datenbank bergreifende Suchanfragen sind durchf hrbar Plattformunabh ngigkeit die Suchmaschine l uft nicht nur auf einem Betriebssystem oder Ger t sondern mit entsprechender Konfiguration auf allen Ger ten und Syste men Flexible Konfigurierbarkeit Nachteile Javaprogrammierkenntnisse sind n tig Nicht deutschsprachig Funktionsweise Vor der eigentlichen Suche wird ein invertierter Index erstellt Dabei wird eine Liste erstellt die die Informationen
335. the calculation and then returns the result via the message bus The live communication via the WebSocket Protocol is handled in a similar way As men tioned in section 2 5 3 Vert x allows access to its event bus from within the clients browser This is accomplished by using a so called bridge that forwards client messages to the server event bus and vice versa As this poses a potential security vulnerability it is recommended to set up the bridge with a filtering instance that only allows certain addresses or message con tents for inbound or outbound communication Lst 26 contains the configuration that has been used for the real time communication between clients and server in the Vert x implementation Inbound messages are allowed on the address form data and outbound messages are al lowed on all addresses that start with form data client and end with a number The variable number is used as the form key for grouping clients as described in section 4 1 Note that this is still an insecure solution as attackers could register theirselves with a large number of form keys to receive all data that is being sent Possible ways to address this issue are either encrypting submitted data or by allowing connections for authorized clients only HitpServer server vertx createHttpServer JsonObject bridgeConfig new JsonObject putString prefix eventbus JsonArray inboundPermitted new JsonArray JsonArray outboundPer
336. thmus Stand 24 01 2013 KOS content 400 3 Kriterienkatalog Um die Marktanalyse genau an die W nsche und Anforderungen der VERS anzupassen wurde ein Fragebogen erstellt der von Mitarbeitern der VERS die an diesem Projekt betei ligt sind ausgef llt wurde Desweiteren wurde ein Interview durchgef hrt bei dem noch ein mal spezifische Fragen gekl rt wurden Zun chst einmal wurde festgehalten dass das Internet von der Suche komplett ausge schlossen ist und sich die Suche lediglich auf das interne Netz und die vorhandenden Wikis bezieht Verwendet wird ein natives Wikisystem mit einer Fileablage bestehend aus einem Dokuwiki mit 14 Instanzen Das bedeutet dass keine zus tzliche Datenbank im Hintergrund arbeitet und mit dem Wikisystem verbunden ist Die relevante Datenquelle ist also das Wiki System Bisher geschieht die Suche nur ber die Suchfunktion die in dem Wiki System inte griert ist Hierbei werden aber immer nur einzelne Wikis durchsucht Ziel des Projekts ist es eine Suchmaschine einzubinden die das gesamte System durchsucht und eine zentrale Suchmaske verwendet In dieser bergeordneten Suche sollen alle relevanten Daten und Dokumente eingebunden werden Die lokale Suche f r einzelne Wikis funktioniert bisher gut und kann somit bei Bedarf neben der zuk nftig bergeordneten Suche beibehalten werden Allerdings sollte analysiert werden ob diese Suche nicht berfl ssig wird da die bergeordnete Suchmaschine d
337. tion function socket create new form socket on createForm function data console log room data socket room data socket join data II socket on liveform function data console log data io sockets in socket room emit liveform data p Lst 15 Using WebSockets to distribute form inputs in real time 10 the actual live form functionality begins Whereas the createForm function was used to establish sort of closed areas for the individual forms the liveform socket actually distributes data to the clients that have joined one form i e room Line 12 demonstrates a broadcast of data to all clients that have joined a room As the client side here is specific to socket io this part will be explained as well to provide a comprehensive understanding of how WebSockets are used First of all the JavaScript library socket io js needs to be imported as shown in Lst 16 lt script src socket io socket io js gt lt script gt Lst 16 Including the client side socket io JavaScript Afterwards a connection is established to httos localhost 4431 using the code in Lst 17 var socket io connect https localhost 4431 Lst 17 Establishing socket io connection from the client side Having established a connection the code in Lst 18 refers to the variable formid which was previously filled with the query string formid or left null i
338. tionalit ten und Programmierkenntnissen Bei einigen Suchmaschinen wurden mithilfe der Internetrecherche kaum oder keine Nachtei le gefunden Dies bedeutet nicht dass diese Maschinen keine aufweisen Die Autoren sind der Auffassung dass bei einigen Suchmaschinen aus einem geringem Bekanntheits und Nutzungsgrad eine mangelnde Literatur zu den jeweiligen Nachteilen resultiert Je weniger Menschen eine Suchmaschine nutzen desto Weniger beschweren sich dar ber oder suchen in Foren nach Hilfe bei Problemen Alle vorgestellten Suchmaschinen mit Ausnahme von Ecosia sind in der Anschaffung und in der Administation kostenfrei Ecosia kann generell nicht erworben werden da mit Bing gear beitet wird Kosten entstehen im Allgemeinen nur im Sinne von Arbeitszeit die f r die Im plementierung und Wartung aufgewendet wird Wenn ein Unternehmen hier Kosten einspa ren m chte wird zu einer Suchmaschine geraten die wenig Programmieraufwand erfordert wie z B Solr da es ein fertiges Projekt ist und daher einfach zu implementieren ist 6 2 Empfehlung und Fazit Generell ist von den untersuchten Suchmaschinen fast jede geeignet um f r unternehmens interne Suche verwendet zu werden Die Ausnahme k nnte Yacy bilden da die Suchma schine generell als langsam eingestuft wird und vorab individuell getestet werden muss Die Auswahl welche Suchmaschine f r welches Unternehmen geeignet ist h ngt immer von den Anforderungen Ressourcen und dem Know
339. tributions Vert x Recently there has been some uncertainty concerning the future development of Vert x as recent news articles indicate 1 4 This is mainly related to the reaction of VMware when Vert x foudner Tim Fox left the company Moreover there is currently no developer roadmap available that allows to infer the future development Its commit history on GitHub is another sign of a decreasing popularity which however has always been on a lower level than on GitHub but might currently be related to the unclear future It is likely that the development activity for the Vert x project starts increasing once it has completed the transition to the Eclipse foundation Evolving the Proof of Concept The Proof of Concept introduced within this paper is an initial implementation that was set up to show the potential usage of asynchronous server technologies while remaining on a moderate level of complexity However the use case that was shown real time insurance form infilling and instant price calculation based on inserted values provides great potential for companies to evolve their business model The technology enables salesmen to interact more easily with clients and transforms geographically spread conclusion of contracts to the next stage because the anonymity of web based contracts can be mitigated by real time communication that is not only limited to filling a form but instead can be extended to live web conferences with video audi
340. tudies of real implementations are provided in appendices 4 5 6 and 7 Web traffic monitoring By getting notified of every single request that arrives on an online service an asynchronous application could keep track of the current number of requests and the distribution of requests among all available resources These simple statistics could then be pushed to a Web interface frequently to allow real time monitoring of a ser vice in the browser Realization All services that should be monitored could implement a middleware that intercepts each request and fires a call to the asynchronous server However that would add a lot of overhead for the services that should be monitored Alternatively all clients that access these services could be forced to send a second request to the asynchronous server The asynchronous server instance could then handle each request by adding relevant information to an in memory database In the case of HTTP requests these information could simply be taken from the various HTTP header Helde D A second server instance could be set up to handle the online dashboard In order to allow instantly updating the dashboard all clients should be connected to this instance via a WebSocket described in section 4 2 3 Depending on the amount of visitors this could result in a large number of open connections However due to the event loop based pro cessing the server instance will always just use one thread for all connections
341. uage Compiler innerhalb der Treiber Komponente Ubersetzt eingegebene oder Uber eine standardisierte Datenbankschnittstelle wie z B Java Database Connectivity Enthalten in Cubrid 2012 Vgl Wartala R 2012 S 104 vol ebenda S 102 6 Vgl ebenda S 105 KOS content 623 25 JDBC bzw Open Database Connectivity ODBC bermittelte Befehle optimiert sie und setzt sie in Mapper Reducer Jobs um die dann an das Hadoop System bergeben wer den ber die Kommandozeile l sst sich Hive auch als Thrift Dienst starten Ein Thrift Dienst dient der Erstellung von Services die mit verschiedenen Programmiersprachen arbei ten k nnen Dadurch k nnen Thrift Clients auf Hive zugreifen die in anderen Sprachen als Java programmiert wurden Eine weitere Funktion in diesem Modus ist der Zugriff auf Hive ber JDBC oder ODBC Treiber Datenabfrage definition und manipulation Die Daten k nnen mittels einer SQL hnlichen Abfragesprache HiveQL ad hoc abgefragt und analysiert werden HiveQL erm glicht den Entwicklern die Verwendung einer Syntax die der von SQL gleicht Alternativ k nnen MapReduce Entwickler damit ihre eigenen Mapper und Reducer dort benutzen wo es umst ndlich bzw ineffizient ist diese Logik in HiveQL auszudr cken Vergleicht man Hive mit relationalen DBS so verf gt es nur ber einen Bruchteil an Befeh len die man wie folgt unterteilen kann e DDL Datenbesc
342. ubyeventmachine com 26 http www tornadoweb org 2 http effbot org librarybook asyncore htm 28 http packages debian org sid python medusa 2 http www gevent org 30 http msdn microsoft com en us data gg577609 31 http docs oracle com javase 1 5 0 docs guide nio 32 http linux die net man 4 epoll 33 http software schmorp de pkg libev html 3 http software schmorp de pkg libeio html 5 http www erlang org 36 See https github com joyent libuv KOS content 540 10 variable Every function in Node js is asynchronous which means that the current thread con tinues running and does not wait for completion see Fig 3 Exemplarily reading a file works in a way that when the read operation has finished a callback function is executed to continue working with the file s content Node js is single threaded which is why only one thing can happen at the same time Node js s asynchronous programming style is implemented through events that determine the flow of execution The events are processed within an event loop see section 2 1 2 Con sequently the code execution is thread safe and there is no issue regarding concurrency that affects the shared memory state 77 Node JS Processing Model Clients send HTTP requests 7 Client to Node JS server Event loop returns result to client Responses are sent yy e to main thread via_ callback A Event Event loop is woken up by OS p
343. uchen deutlich schneller durchgef hrt als bei einer normalen Indexierung Eine weitere Besonderheit von Lucene sind die beiden vorgelagerten Prozesse das Stopword Removal und das Stemming Die Performance der Suchmaschine wird dadurch nochmals deutlich gesteigert Es ist jedoch zu beachten dass Lucene nur eine sehr begrenzte Anzahl an Features beinhaltet Auf dem Markt ist aber eine Vielzahl an Erweiterungen vorhanden Mit diesen kann eine gro e Anzahl an Funktionen in Lucene Projekte eingebaut werden 3 2 Solr 3 2 1 Hintergrundinformationen Solr ist im Jahre 2004 als eigenst ndige Suchplattform f r CNET Networks Intranet entstan den und hat sich im Jahr 2006 zu einer Open Source Suchplattform entwickelt Um den ak tuellen Leistungsstand des Programms zu erreichen wurde das Solr Projekt im Jahre 2010 mit dem Lucene Projekt zusammengefasst Diese Verschmelzung hatte zur Folge dass eine Volltextsuchmaschine gleichwohl aber auch ein Suchframework entstanden ist Solr ist in Java geschrieben basiert auf einer REST Architektur und verwendet JSON als Datenaustauschformat REST steht f r Representational State Transfer und es handelt sich dabei um ein Designmuster zur Gestaltung dynamischer Web Inhalte REST fasst unter anderem Standards wie HTTP XML HTML JPEG und GIF zusammen Der Begriff Re 22 Mit nderungen entnommen aus Ziegler C 2006 S 123 23 Vgl Klose M 2012 24 Vgl The Apache Software Foundation 2012b KO
344. uest 212 852 ms mean Time per request 4 257 ms mean across all concurrent requests Transfer rate 46990 80 Kbytes sec received Connection Times ms min mean sd median max Connect 0 0 4 5 0 225 Processing 14 212 389 7 159 4176 Waiting 3 159 83 9 154 1970 Total 14 212 390 2 159 4176 Percentage of the requests served within a certain time ms 50 159 66 176 75 187 80 195 90 218 95 252 98 766 99 2425 100 4176 longest request KOS content 586 56 Nginx ab n10000 c50 g 200kb nginx dat http 192 168 178 39 8080 rocco file 200kb This is ApacheBench Version 2 3 lt Revision 655654 gt Copyright 1996 Adam Twiss Zeus Technology Ltd http ww zeustech net Licensed to The Apache Software Foundation http www apache org Benchmarking 192 168 178 39 be patient Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software nginx 1 2 1 Server Hostname 192 168 178 39 Server Port 8080 Document Path rocco file 200kb Document Length 204800 bytes Concurrency Level 50 Time taken for tests 194 599 seconds Complete requests 10000 Failed requests 0 Write errors 0 Total transferred 2050280000 bytes HTML transfer
345. un command when we tried to use it with the source files The issues observed were partially related to Vert x bug 44487 Due to incomplete dependency resolution not all classes were compiled so that Vert x could not find all required classes in the path at runtime These startup issues can easily be avoided by using compiled classes instead of the source files when multiple verticles need to be started programmatically The path to the compiled classes has to be provided with the cp switch as shown in Lst 23 87 see https github com vert x Vert x issues 444 KOS content 559 OO Joo P GO OO P GO 29 IER x Triggers the fee calculation based on the given form data private Handler lt HttpServerRequest gt calcHandler new Handler lt HttpServerRequest gt public void handle final HttpServerRequest req read body of request req bodyHandler new Handler lt Buffer gt Override public void handle Buffer buff JsonObject form new JsonObject buff toString trigger calculation in worker verticle eBus send form calculate form new Handler lt Message lt JsonObject gt gt public void handle Message lt JsonObject gt message req response headers put Content Type application json charset utf 8 req response end message body encode oe Lst 24 Vert x form handler public class Calculator extends Verticle IER x Instantiates an insuranceForm and
346. unabh ngig unterst tzt Unix Betriebssysteme z B Debian sowie Windows Systeme Funktionalit t exemplarisch e voll funktionsf higer Suchserver out of the box e Volltextsuche e Cloud Unterst tzung e Clustering e Indexreplikation e Gateway e Eigenschaften schemafrei dokumentorientiert verteilt 24 Modularitat e zahleiche Module als Code auf der offiziellen Homepage verf gbar darunter aktuell Uber 40 Plugins Januar 2013 e Plugins erm glichen die Integration verschiede ner Systeme und Analysewerkzeuge e es existieren zus tzlich eine Reihe an Clients z B f r PHP NET Ruby Java Python und Front Ends v a Web Front Ends e der Code f r alle Module Clients und Front Ends 121 Vgl Elasticsearch o J b 122 Vgl Elasticsearch o J a 123 Vgl Elasticsearch o J c 124 Vol Elasticsearch o J a 125 Vgl Elasticsearch o J d KOS content 493 47 ist auf github com ver ffentlicht Releaseabst nde e 49 Releases innerhalb von 2 Jahren e z T mehrere Releases innerhalb eines Monats Dokumentation EIL E S Eea Tutorials auf der Homepage verf gbar e Installationsanleitung e Konfigurationsanleitung e Anleitung zur Integration unterschiedlicher Sys teme z B Couch DB JavaScript e offizielle Videos auf Youtube Sprache der Dokumentation ausschlie lich englisch Qualit t der Dokumentation e Anleitungen nur als Tutorials auf der Homep
347. und eine Zustimmung zur Lizenzvereinbarung erteilt werden Das Anlegen aller Pfade und Variablen automatisch Im Datastax Ops Center k nnen f r die Keyspaces und Column Families mit den jeweiligen Vergleichs und Sortierungswerten ber ein Formular angegeben werden Die Bef llung der Datenbank mit Daten geschieht ber die CQL Shell oder die CLI Utility Das Hinzuf gen weiterer Knoten ber das Ops Center in die Datenbank erfordert allerdings eine Registrie rung bei Datastax KOS content 676 32 F r Forschungszwecke bleibt die Lizenz kostenfrei f r Produktionszwecke jedoch nicht Bei INSERT Operationen ist nicht von Belange welche Spalten tats chlich oder in welcher Reihenfolge sie gef llt werden Die Zuordnung erfolgt anhand des Namens der jedem Da tenwert anhaftet Neben den vorgestellten Ans tzen ist es ebenso m glich Cassandra ber andere Programmiersprachen und schnittstellen zu benutzen wie zum Beispiel PHP Py thon oder Java Hector Client Der Prototyp von Cassandra soll nun eine Datenbank darstellen die Nachrichten zwischen Benutzern in einem sozialen Netzwerk verwaltet Vorangestellt muss der Keyspace Social Network sowie die Column Family Messages erstellt werden Nachfolgend kann die CQL Shell ge ffnet und die Spalten der Datenbank deklariert werden In diesem Beispiel werden alle Informationen ben tigt die f r die Zustellung einer Nachricht ben tigt werden Als Key wird hier ein Ze
348. ung von Microsoft im Hintergrund mit den anderen Suchma schinen am Markt konkurrenzf hig Eine Integration von Ecosia in das Intranet der VERS BW kommt hier nicht in Frage da Ecosia wie bereits angesprochen nicht Open Source und damit kostenpflichtig ist ebenfalls keine Freeware 19 Vgl abenteuerdenken blogspot de 2010 20 Vgl zeitblick wordpress com 2009 KOS content 406 Anforderungen des Unternehmens nicht erf llt da kein Open Source Besonderheiten Best Practice Beispiel f r den Einsatz von Green IT Ansatz der Motivation gr ner zu denken Hochwertige und schnelle Suchen durch Bing 4 3 Yacy Im Rahmen der Marktanalyse wurde entschieden acht Suchmaschinen n her zu betrachten Normale Suchmaschinen die technisch gesehen nach dem Google Prinzip funktionieren gibt es sehr viele Im Laufe der Recherchen sind wir auf eine Suchmaschine gesto en die nach einem anderen Prinzip arbeitet dem Peer to Peer Prinzip Umso interessanter ist es zu analysieren wie dieses Verfahren umgesetzt wurde und ob es konkurrenzf hig ist Im Folgenden betrachten wir die Suchmaschine Yacy Yacy ist eine Suchmaschine die nicht wie Google und Co ber zentrale Server l uft die die Indexierung durchf hren und die Suchmaske bereitstellen Yacy arbeitet dezentral nach ei nem Peer to Peer Prinzip in welchem die Nutzer selbst die Server bereitstellen und die In dexierung durchf hren Entwickelt wurde diese Suchmaschine vo
349. urch Kanten abgebildet Vgl Sakr S Pardede E 2011 3 Vgl Edlich S u a 2010 S 1 4 Vgl Edlich S u a 2010 S 182 f S 1 KS 5 Vgl Edlich S u a 2010 P vol Edlich S u a 2010 KOS content 652 In Abbildung 3 sind alle Kanten vom gleichen Typ kennt Ein solcher Graph wird als sin gle relational Graph bezeichnet Sie werden h ufig verwendet sto en jedoch schnell an ihre Grenzen da sowohl die Kanten als auch die Knoten immer vom gleichen Typ sind Komplexe Datenstrukturen k nnen nicht dargestellt werden kennt N kennt l Kante H Knoten Abb 3 single relational Graph Mit den multi relational Graphen lassen sich diese Grenzen berwinden Ihre Kanten k n nen unterschiedliche Bedeutungen haben und die Knoten von verschiedenen Typen sein Ein Graph k nnte aus den Beziehungen zwischen Benutzern bestehen und zus tzlich die Webseiten einbeziehen die der jeweilige Benutzer h ufig besucht Die Benutzer und Web seiten sind hierbei die Knoten die Bezeichnungen kennt und besucht sind die Kanten Wird ein solcher Graph durch key value Paare erweitert ergibt sich ein Property Graph wie er in Abbildung 4 zu sehen ist 7 EEN ee 4 TT e lt x besucht kennt besucht Kante 1 Name Amazon Abb 4 Property Graph 7 Vgl Rodriguez M A 2010 8 Mit Anderungen entnommen aus Rodriguez M A 2010 Vgl Rodriguez M A
350. use Vert x requires Java hosting infrastructure there might be an associated licensing cost for application servers At present there is a discussion in the Google users group considering the future of the Vert x project which has been owned by VMWare The founder of the project and former employeee of VMWare had to transfer ownership of the GitHub project domain Gooole group and blog to VMWare after he left the company in December 2012 This turn of events has put uncertainty in the community and might have increased the entry barriers for new developers The outcome of this discussion has been that Vert x should be submitted to the Eclipse Foundation 109 5 2 Integration Vert x and Node js are supposed to be used as fully event driven standalone applications which can be extended with event driven modules However when introducing a Node js or Vert x ap plication into the current application landscape it might be desired to integrate or communicate with existing systems that are not fully event driven Furthermore integration of these tech nologies might not be limited to mere IPC but instead could establish a new middleware layer between current and new applications 5 2 1 Node js Integration Node js is not designed to handle CPU intensive tasks efficiently However there is a way a Node js process can perform such tasks without impairing the application performance Node js uses so called child processes for this provide
351. von Multimaschinen ist eine parallele Indizierung m glich das eignet sich be sonders f r gro e Datenmengen e Unterst tzt XML e Automatische Replikation das bedeutet es warden automatisch Sicherungskopien erstellt e Automatisches Sharding um die Rechenlast bzw die Indexe aufzuteilen e Verschiedene Darstellungsm glichkeiten der Suchergebnisse e Stellt viele Funktionalit ten wie z B Fuzzy Search oder die Gewichtung der Su chergebnisse zur Verf gung 4 9 2 Nachteile Aufgrund wenig vorhandener Literatur zu dieser Suchmaschine wurden keine Nachteile ge funden Dies bedeutet nicht dass es keine gibt lediglich dass diese nicht im Internet auf findbar sind 4 9 3 Funktionsweise Hsearch basiert auf der HBase Plattform Der vollst ndige Index ist in einer HBase Tabelle gespeichert und enth lt somit die Hbasefunktionalit ten Bei der Indizierung k nnen die Dokumente die hinzugef gt werden sollen aus verschiede nen Quelltypen stammen Beispielsweise aus Dateisystemen relationalen Datenbanken Mailservern Webseiten XML Dateien Dabei erlaubt das Framework den externen Syste men die Inhalte in Echtzeit ber REST basierende oder ber Java basierende Programmier schnittstellen hinzuzuf gen Die Sicherheit wird unter anderem durch eine Zugriffskontrolle auf Dokumentenebene ge w hrleistet Die Kontrolle basiert auf UserlDs Rollen Teams Organisationen oder Abteilun e Vgl o V 2010 http bizo
352. von dokumentenorientierten Datenbanken war die Speiche rung zusammengeh riger Daten an einer Stelle So bilden diese Datenbanken einen Gegen pol zu den relationalen Datenbanken bei welchen die Daten getrennt voneinander in ver schieden Tabellen abgelegt werden und eine zusammenh ngende Information erst ber die Abfrage mehrerer Tabellen generiert werden kann Durch die M glichkeit gr ere Mengen Text mit unbestimmter L nge zu speichern eignen sich dokumentenorientierte Datenbanken sehr gut f r Content Management Systeme Blogs oder Wikis Die derzeit bekanntesten dokumentenorientierten Open Source Datenbanken sind CouchDB und MongoDB Im weiteren Verlauf dieser Arbeit wird speziell auf MongoDB hinsichtlich der speziellen Eigenschaften des Datenmodells sowie der m glichen Einsatzgebiete noch n her eingegangen 16 Datenbanken Online Lexikon 2012 e Vgl Datenbanken Online Lexikon 2012 18 Vgl Wolff E 2012 S 16 13 Vgl Datenbanken Online Lexikon 2012 20 Vgl Schnelle J 2010 7 Vgl Schnelle J 2010 KOS content 651 2 3 Graphorientierte Datenbanksysteme Graphorientierte Datenbanksysteme legen ihre Daten in Form von Graphen ab Diese beste hen aus Knoten die ber Kanten miteinander verbunden sind Die Datenstruktur ist somit von Beginn an durch die definierten Kanten verbunden gejoint Im Gegensatz dazu sind relationale Datenbanken darauf spezialisiert Daten in Tabellen abzuspeichern U
353. wertung der Open Source Projekte mit Einordnung Wie schon aufgrund seines Alters und hohen Bekanntheitsgrads zu erwarten war erzielt das Projekt Apache Lucene die besten Werte sowohl beim Reifegrad als auch bei der Marktak zeptanz Damit ist dieses klar im Feld der Stars einzuordnen Ganz hnlich schneidet Apache Solr ab und findet sich aufgrund eines etwas geringeren Reifegrads knapp unter halb von Lucene und damit ebenfalls im Bereich der Stars Diese beiden Open Source Pro jekte scheinen recht ausgereift zu sein und finden auch bei einer gr eren Anzahl an An wendern und Unterst tzern anklang Rein aus der Sicht der Projektbewertung sind diese also zu bevorzugen Mit einer vergleichsweise deutlich geringeren Markakzeptanz sowie einem leicht niedrigerem Reifegrad kann Elasticsearch auf der Grenze zwischen Poor Dogs und Question Marks eingeordnet werden Die Tendenz geht jedoch eher Richtung Question Marks Das Projekt Elasticsearch ist noch sehr jung besitzt aber dennoch schon jetzt eine gewisse Reife was Produkt und Support angeht Elasticsearch hat damit durchaus Potenzial in Zukunft weiter hin zu wachsen und noch mehr Anwender und Entwickler f r sich zu gewinnen Dennoch ist eine genaue Prognose zu diesem fr hen Zeitpunkt nicht m glich sodass Elasticsearch zu Recht als unsicheres aber vielversprechendes Projekt als Question Mark eingestuft wird Schlie lich bleibt noch HSearch von Bizosys das bei keine
354. y classes One verticle serves as a web server that accepts HTTP and HTTPS requests GET requests are interpreted as file requests and are answered directly from within the verticle POST requests are interpreted as form submissions Whenever a POST requests arrives the verticle trans forms the request body to a JSON object and submits it via Vert x event bus The second verticle is a worker verticle which performs the CPU intense calculation tasks This verticle listens on the event bus for incoming messages Whenever such a message arrives it transforms the received JSON object into a form instance for validation and fee calculation The results are then sent back via the event bus when this operation has been completed so that the event loop can return the result to the client in its next iteration The third verticle serves as a starter script which programmatically starts the previously men tioned verticles and terminates afterwards as it does not define any callbacks itself see Lst 22 The actual deployment of the other verticles happen in lines 13 and 14 An important detail is the second parameter in the deployWorkerVerticle method Vert x allows deploying multiple instances of a verticle programmatically which eases scaling an application to the number of available processors of a machine In this case the main loop is single threaded and for each re maining processor there is one worker verticle Vert x automatically distributes requests a
355. ymisierte Versicherung VERS ist Europas gr ter XXXversicherer und besteht in der Form wie es sie heute gibt seit XXX Ca XXX Menschen in Deutschland sind hier versi chert Das Projekt das auf den folgenden Seiten behandelt wird wurde von der VERS angesto Ben In diesem Projekt geht es um eine Marktanalyse von Open Source Suchmaschinen Hintergrund des Ganzen ist die Suche im Intranet der VERS das aus einem Wikisystem be steht Diese Wikis sind zwar alle mit einer integrierten Suchfunktion ausgestattet allerdings ist mit dieser nur die Suche innerhalb eines Wikis m glich Ziel des Projektes ist es Such maschinen daraufhin zu untersuchen ob sie sich f r eine bergeordnete Suche ber das gesamte Wiki System eignen Bei der Auswahl der zu untersuchenden Suchmaschinen wird der Fokus auf eine m glichst gro e Bandbreite an Konzepten gelegt da eine hnliche Ar beit die ebenfalls im Rahmen dieses Projekts erstellt wurde sich mit weniger Suchmaschi nen daf r aber eher mit den technischen Anforderungen und der Umsetzung besch ftigt Das Projekt gliedert sich in drei Hauptbestandteile Zum einen soll in Zusammenarbeit mit der VERS ein Kriterienkatalog erstellt werden nach dem verschiedene Suchmaschinen im n chsten Schritt untersucht werden sollen Abschlie end soll eine Empfehlung ausgespro chen werden welche Open Source Suchmaschine sich f r die Anspr che der VERS am besten eignet 1 0 V 0 J anonymisiert KOS content
356. zeit definiert Gleichzeitig sollten 1000 Millisekunden nicht berschritten werden Die Antwortzeiten beziehen sich da bei auf Zeiten bei denen eine gr ere Anzahl an Anwendern bis 1 000 gleichzeitig Such anfragen durchf hrt e intuitive Bedienung Weiterhin ist die intuitive Bedienung mit einer schnellen und unkomplizierten Einarbeitung als wichtige Anforderung aufzuf hren Hilfreich w re in diesem Zusammenhang eine Unterstut zung bei der Einarbeitung durch die Anwendung sowie dar ber hinaus verf gbare Online Hilfe Beispiele hierf r sind Tutorials und Quick Start Guides Die Einfachheit des Systems zusammen mit der allzeit verf gbaren Hilfe sorgen daf r dass Schulungen f r die Suchma schine berfl ssig sind e einfache Installation und Konfiguration Wie auch schon bei der Bedienung ist auch bei der Installation und Konfiguration des Such servers zu ber cksichtigen dass beide Prozesse unkompliziert und ohne den Bedarf einer Schulung ablaufen Hinsichtlich der Installation sollten die Benutzereingaben minimal sein Dies kann beispielsweise dadurch erreicht werden indem optimale Einstellungen standard m ig vorbelegt werden und der Anwender den Installationsprozess mit wenigen Klicks durchlaufen kann Hier sollte die Dauer der Installation 20 Minuten nicht bersteigen e Kompatibilit t Hierzu geh rt die Kompatibilit t der verwendeten Suchmaschine mit dem im Unternehmen verwendeten Betriebssystem insbesondere Wi

Download Pdf Manuals

image

Related Search

Related Contents

Panasonic AG-HPX300 Menu Information  Kramer Electronics VP-501N All in One Printer User Manual  Bedienungsanleitung HTC Tattoo    BoomStar BT      取扱い説明書のダウロード(PDF)    Con EFECTO ARDURAPID® En base cemento color gris  

Copyright © All rights reserved.
Failed to retrieve file