Doch myfoy.com läuft noch! Was ist der aktuelle Stand. Wir haben viel zu tun. Das Projektgeschäft der Scandio muss abgewickelt werden. SEBOL, die Lucene Suchmaschine die auch unter myfoy.com ihre Arbeit verrichtet hat einen Versionssprung gemacht. Und das Backlog von myfoy ist auch gefüllt. Wir hoffen dieses Jahr noch einen weiteren Schritt zu machen.
Hier ist es gerade etwas ruhig. Die Kollegen die im Lande sind stecken tief in Projekten der Scandio – Alle anderen sind im Urlaub. Ab Montag werden wir das Frontend erweitern und einen Import für OPML Dateien einbauen, damit man seine Feeds in einem Rutsch importieren kann. Bis dahin!
Veröffentlicht unter Neues
|
Tags opml, scandio, sebol, urlaubszeit
|
Nun verrichtet Myfoy seinen Dienst schon einige Zeit. Da ist es sicherlich sinnvoll kurz die Architektur zu beschreiben. Es steckt deutlich mehr dahinter als man aktuell sehen kann.
Beginnen wir bei der aktuellen Systemumgebung. Myfoy läuft auf einem Quad-Core Server von Hetzner. Das System hat 8GB RAM. Wir haben uns für ein Ubuntu LTS entschieden, weil wir es einfach am besten kennen.
Auf diesem System sind folgende Pakete im Einsatz:
- Apache Webserver
- PHP5
- MySQL
- Java
Das war es. Also ein relativ einfache Standardumgebung. Die Softwarearchitektur ist schon etwas komplexer:
- Feedfetcher
- Der Feedfetcher ist ein Server-Prozess, der in Java entwickelt wurde. Er ist in der Lage unsere Feed-Liste ( alle hinzugefügten Feeds ) in mehreren Threads parallel zu lesen. Die Priorisierung soll langfristig aufgrund der Publikationsfrequenz geschehen. Der Feedfetcher zerlegt der Feed in einzelne Items. Jedes Item wird in einer MySQL Datenbank abgelegt. Dies haben wir eingeführt um während der Entwicklung jederzeit neu indizieren zu können. Am Ende wird für jedes Item ein Index-Request an den SEBOL Index-Server abgesetzt. Aktuell gibt es nur einen Feedfetcher.
- Index Server
- Der Index Server ist ebenfalls ein eigener Java Prozess, der alle Requests entgegennimmt und in eine Warteschlange einstellt. Die Warteschlange ist prioisierbar und besitzt ein Journal. Muss also bei Hardwareproblemen ein Index zurückgespielt werden kann man die fehlenden Elemente über das Journal erneut in die Warteschlange aufnehmen.
- Der eigentliche Indexprozess arbeitet die Anfragen dann seriell ab. Jeder Request wird durch eine Plugin Kette geführt. Die Plugins sind sind autarke Elemente, die die Daten analysieren und manipulieren. Hier werden die Rohdaten aufbereitet und am Ende an den Lucene Kern von SEBOL übergeben und dort indiziert. Aktuell existiert eine Warteschlange und ein Index-Server. Bei höherem Datenaufkommen kann dies parallelisiert werden. Die Abarbeitungszeit ist abhängig von den eingesetzten Plugins.
- Als API gibt es eine XML-RPC sowie eine JSON Schnittstelle. Für die Programmiersprachen Java/JSP und PHP existieren Client-Bibliotheken.
- Search-Server
- Die eigentlich Suchserver ist ein autarker Java-Server, da bei großer Last der Indizierprozess von der Suche getrennt werden muss und die Suche auf mehreren Hardware-Systeme mit angeschlossenem Loadbalancing erfogen muss. Momentan greift der Search Server auf den Basis-Index zu. Sind mehrere Systeme im Einsatz erfolgt die Verteilung über das Hadoop DFS, dass in SEBOL integriert ist. Auch bei der Suche ist es möglich eine Plugin-Kette abzuarbeiten. Momentan existiert ein Plugin, dass die Suchanfrage manipuliert, um bessere Ergebnisse zu erzielen.
- Als API gibt es eine XML-RPC sowie eine JSON Schnittstelle. Für die Programmiersprachen Java/JSP und PHP existieren Client-Bibliotheken.
- Sowohl der Index- als auch der Search-Server haben die Jetty-Engine integriert.
- Web-Applikation
- Die Web-Applikation ist mit dem Zend Framework entwickelt worden und nutzt dessen MVC Elemente. Momentan gibt es die Funktionen Registrieren, Anmelden, Feed und Twitter hinzufügen und löschen. Die Suche wurde mit der PHP API entwickelt und zeigt außer dem Suchergebnis eine Tag-Cloud, und zwei Zählnavigatoren (Typ und Zeit) an. Hier wird in der nächsten Zeit noch viel passieren.
Wir haben also auf Myfoy eine gute technische Basis und wollen nun mit allen Interessierten gemeinsam an dem System arbeiten. Unser Backlog ist schon sehr lang. Wir nehmen aber gerne neue Ideen auf und diskutieren diese auch hier mit euch!
Veröffentlicht unter Entwicklung
|
Tags apache, architektur, java, jetty, lucene, MVC, myfoy, mysql, php, sebol, software, ubuntu, zend framework
|
Der erste Artikel ist immer komisch. Deswegen in aller Kürze: Im Rahmen einer Bachelor-Arbeit hat die Scandio GmbH, München, einen Feed Index erstellt. Dieser Index soll dazu dienen, besonders hochwertige Such- und Newsfunktionen zu liefern. Es gibt viele andere Ideen, aber dazu später mehr.
Realisiert wurde das Ganze mit SEBOL. SEBOL ist Software, die auf Apache Lucene aufsetzt. Diese Software wurde von der Scandio GmbH entwickelt. Was genau man damit machen kann, wird in einem der späteren Posts sicherlich noch unter die Lupe genommen. Derzeit haben wir in der Datenbank etwas mehr als 500 deutschsprachige Feeds und etwas weniger Twitter-Accounts. Wir indizieren laufend. Bereits jetzt kann man sich registrieren und seine eigenen Feeds hinzufügen. Das System ist in keiner Weise fertiggestellt. Unser Interesse ist es, ein frühes Feedback der Community einzuholen, um Anforderungen besser zu erkennen.
Den Blog haben wir eingerichtet, um zu informieren und zu diskutieren. Wir freuen uns auf eine rege Beteiligung.
Das Myfoy Team
Veröffentlicht unter Neues
|
Tags feed, feedsuche, lucene, myfoy, scandio, sebol
|