Java alkalmazások, 2011-2012-II

2. Beadandó feladat

Twitter Bányászat

Készítsünk egy egyszerű alkalmazást, ami publikusan elérhető Twitter adatokat dolgoz fel!

Twitter

Felépítés

A program tartalmaz egy kliens és egy szerveralkalmazást.

A kliens utasításokat küld a szervernek, ami végrehajtja azokat.

A szerver egy egyszerű, egyszálas szerveralkalmazás, amelyhez egy adatbázis is tartozik.

A programot objektumorientált paradigmáknak megfelelően készítsd el! Absztrahálj, készíts megfelelő adatelérési réteget, hozzá tartozó megfelelő osztályokkal!

A kliens felépítése

A kliens induláskor csatlakozik egy szerverhez a megadott portra. Ezután egy ciklusban továbbítja a konzolról beolvasott üzeneteket a szervernek, ami végrehajtja azokat.

A szerver felépítése

A szerver induláskor figyeljen a megadott porton egy kliens kapcsolódására.

Amennyiben a szervert a -init kapcsolóval indítják, inicializálja az adatbázist (hozza létre a szükséges táblákat, esetleg töltse fel minimális tesztadatokkal, stb.).

A klienstől érkező üzenetek közül a következőkre szükséges figyelni:

Tweet adatok letöltése, tárolása

Az adatbázisban a következő adatok tárolandók el:

A Twitter közetkező, régebbi, publikus REST API-ja alapján lekérdezhető egy XML formátumú fájlban egy adott felhasználóhoz tartozó legfrissebb üzenetek a user_id alapján:

http://twitter.com/statuses/user_timeline.xml?id=<user id>

Példa URL:

http://twitter.com/statuses/user_timeline.xml?id=legendi_ELTE

A felhasználóhoz tartozó kép URL címe a következő sor alapján találahtó meg:

    <profile_image_url>...</profile_image_url>

Illetve a felhasználó által írt tweetek a következő sorok alapján találahtók meg:

    <text>...</text>
Számolandó statisztika

A szerver legyen képes egy egyszerű HTML fájl előállítására, amely minimális statisztikákat tartalmaz az adatbázisban tárolt adatokról.

Ez legyen egy táblázat, amely tartalmazza minden felhasználóhoz a képét, nevét, valamint az általa írt összes bejegyzés hosszának összegét.

Technikai részletek

Példák

Az alábbiakban néhány példát láthattok a bemeneti és kimeneti fájlokra.

Példa script fájl: runme.sc

joshbloch,norvig
Kurt_Vonnegut
stats
exit

Példa HTML kimeneti fájl

Forráskód
<html>
<body>
<table border='1'>
    <tr>
        <th>Picture</th>
        <th>Id</th>
        <th>Char Count</th>
    </tr>

    <tr>
        <td><img src='http://a0.twimg.com/profile_images/2111886999/TWITTER_PROFILE_PIC_normal.jpg'/></td>
        <td>FamilyGuyonFOX</td>
        <td>2027</td>
    </tr>

    <tr>
        <td><img src='http://a0.twimg.com/sticky/default_profile_images/default_profile_5_normal.png'/></td>
        <td>norvig</td>
        <td>106</td>
    </tr>

</table>
</body>
</html>
Kinézet
Picture Id Char Count
FamilyGuyonFOX 2027
norvig 106

Továbbfejlesztési lehetőségek