http://www.eumelnet.de:8080/cloud/NNTP.servlet.html
Es hat die HTTP-Servlet Classes bekommen, erwartet Parametereingaben und ruft zum Schluss per Systemcall das Hadoop auf., nachdem es alle Artikel der gewuenschten Gruppe abgeholt hat.
Wir koennten die Servlet-Klasse in /usr/local/apache-tomcat-6.0.26/webapps/cloud/WEB-INF/classes kompilieren:
javac -cp /usr/local/share/java/gnumail.jar:/usr/local/share/java/gnumail-provider
s.jar:/usr/local/share/java/inetlib.jar:/usr/local/apache-tomcat-6.0.26/lib/servlet-api.jar NNTP.java
Aber dann muessten wir gnumail.jar und inetlib.jar als CLASSPATH in die catalina.sh schreiben, aber es geht auch anders: Die benoetigten jars einfach ins Tomcat-Lib-Verzeichnis unter /usr/local/apache-tomcat-6.0.26/lib/ kopieren.
In /usr/local/apache-tomcat-6.0.26/webapps/cloud/WEB-INF/web.xml machen wir das Servlet fuer den Browser sichtbar:
<servlet>
<servlet-name>NNTP</servlet-name>
<servlet-class>NNTP</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>NNTP</servlet-name>
<url-pattern>/NNTP</url-pattern>
</servlet-mapping>
Nach dem Tomcatneustart koennte das Servlet schon funktionieren, wenn wir es mit den Parametern direkt fuettern. Stattdessen bauen wir noch eine schicke Java-Server-Page fuer die Eingabe:
http://www.eumelnet.de:8080/cloud/mrnt.jsp.html
Die Ausgabe holen wir uns von dieser Server-Page ab:
http://www.eumelnet.de:8080/cloud/load.jsp.html
Wir haben also Daten-Eingabe/-Ausgabe und -Verarbeitung gut entkoppelt. Jedoch krankt unsere Webanwendung gleich an mehreren Stellen:
- Only one Single-Thread. Parallele Verarbeitung und mehrere gleichzeitige Benutzer nicht moeglich.
- Abholen der News dauert bei grossen Gruppen sehr lange. Hier wuerde ein Background-Job besser laufen
- Ausgabe der Artikelanzahl nicht begrenzt (bei 5000 Artikeln gibt es eine Art von Timeout)
- Eingabe wird nicht ueberprueft (eher ein fehlendes Sicherheitsfeature)
- Hadoop wird direkt aufgerufen und nicht als Jobconf im Hadoop-Cluster. Deswegen laeuft Hadoop auch noch relativ lang
Das Ergebnis des Projekts gibt es erstmal hier:
http://www.eumelnet.de:8080/cloud/mrnt.jsp
