AS-0.3200 Automaatio- ja systeemitekniikan projektityöt A09-05 OSGi IRC Bot For Coffee Maker Henri Nieminen Juha Sironen 1
Sisältö: 1. Tavoitteiden kertaus 2. Tuloksien esittely 3. Sovelluksen demo 4. Projektin kulku 5. Projektin analysointi 6. Päätös 2
1. Tavoitteiden kertaus Projektin tavoitteena on saada ohjattua kahvinkeitintä IRC:n (Internet Relay Chat) kautta. Tavoitteena on luoda IRC-botti, joka vastaa IRC-kanavalle annettuihin käskyihin. IRC-botti ottaa yhteyden automaattisesti IRC-kanavaan ja pysyy kanavalla. Jos yhteys katkeaa tulee Botin ottaa automaattisesti yhteys uudestaan. Botti välittää käskyt Coffeemaker sovellukselle ja palauttaa sieltä saadut tiedot IRC-kanavan käyttäjälle. Lisäksi Botin tulee osata hallita käyttäjiä, jottei kuka tahansa voi liittyä IRC-kanavalle ja keittää kahvia. Käyttäjien hallinta toteutetaan ensin alkuun käyttäjä rekisterillä, joka luodaan käsin. Lisätavoitteena on luoda Bottiin ominaisuus joka voi päivittää rekisteriä IRC-kanavan kautta. 3
2. Tuloksien esittely Tuloksena Bundle, ajetaan OSGi alustassa. Sovelluksen avulla IRC:n kautta voi ohjata kahvinkeitintä Bundle luotu Javalla Neljä Java-luokkaa: BotActivator, CoffeeBot, BotListener ja UserList CoffeeBot luokan pohjana käytetty Jibble:n PircBot luokkaa Botti liitetään halutulle serverille ja kanavalle Botti kommukoi IRC-kanavan ja Coffee Maker Bundlen välillä Botti reagoi jokaiseen kanavalle tehtyyn viestiin. Jos viesti alkaa!- merkillä, tutkii botti viestin sisällön, muuten ei vastaa mitään Botti osaa kertoa häntä kutsuvalle ohjeet, kuinka käyttää bottia Botti havaitsee jos se menettää yhteyden. Parametreillä aseteltavissa yhteyden uudelleen muodostus Viikon ajan 5 minuutin välein yrittää muodostaa yhteyttä uudelleen Lisäominaisuuksina tehty käyttäjä rekisterin ylläpito IRC:n kautta. 4
3. Sovelluksen demo Keitetään kahvit 5
4. Projektin kulku 1. IRC / OSGi / Bot / Bundle teoriaan tutustuminen 2. Projektisuunnitelman luonti 3. Suunnitelman esitys 4. IRC:n harjoittelu 5. IRC-Bottiin tutustuminen 6. Knopflerfish-alustaan tutustuminen 7. IRC-kanavan luonti 8. Alkeellisen IRC-botin luonti 9. Simulaattorin rajapintaan tutustuminen 10. Java sovelluksen luonti 11. Väliraportointi 12. Lisäominaisuudet 13. Dokumentointi 14. Loppuraportointi 6
4. Projektin kulku Aikataulu suunnitelma 7
4. Projektin kulku Aikataulu suunnitelma & toteutuma 8
4. Projektin kulku Kustannukset Budjetoitu: 4 * 26,7 h/henkilö = 106,8h 120 Projektin tunnit 100 h/henkilö 80 60 40 Suunniteltu kumulatiivinen 20 0 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Viikko 9
4. Projektin kulku Kustannukset Budjetoitu: 4 * 26,7 h/henkilö = 106,8h Toteuma: 124 h/henkilö Projektin tunnit 140 120 h/henkilö 100 80 60 Suunniteltu kumulatiivinen Toteutunut kumulatiivinen 40 Väliraportointi 20 0 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Viikko 10
4. Projektin kulku Päiväkirja 08.09.2009 (1h) Tehtävän antoon tutustuminen kentällä 16.09.2009 (2h) Esimateriaalin lukeminen 17.09.2009 (2h) Esimateriaalin lukeminen 18.09.2009 (3h) Projektisuunnitelman luonti 20.09.2009 (3h) Aloitusraportointi 21.09.2009 (2h) Aloitusraportointi 24.09.2009 (2,5h) Irc-kanana, OSGi-alustan asennus, Irc-bot 25.09.2009 (2h) Simplebundle 30.09.2009 (6h) PircBot 06.10.2009 (3h) PircBot 14.10.2009 (3h) PircBot 15.10.2009 (3h) PircBot 19.10.2009 (5h) PircBot 03.11.2009 (8h) Väliraportointi, simulaattoriin tutustuminen, sovellus 10.11.2009 (11h) Sovellus 11.11.2009 (4h) Sovellus 12.11.2009 (10.5h) Sovellus 13.11.2009 (7h) Sovellus 15.11.2009 (5h) Sovellus 18.11.2009 (4h) Lisäominaisuuksia 19.11.2009 (4h) Lisäominaisuuksia 24.11.2009 (5h) Lisäominaisuuksia 25.11.2009 (6h) Lisäominaisuuksia 26.11.2009 (2h) Asiakaspalaute muutoksia 27.11.2009 (4h) Asiakaspalaute muutoksia 27.11.2009 (6h) Dokumenttointi 02.12.2009 (3h) Dokumenttointi 03.12.2009 (6h) Dokumenttointi 08.12.2009 (1h) Loppuraportointi 11
5. Projektin analysointi Tavoitteet saavutettiin myös lisätavoitteet saavutettiin Projekti eteni vaikeuksista huolimatta Ylläpidettiin päiväkirjaa Pidettiin tiiviisti yhteyttä asiakkaaseen Kustannukset ylittivät hieman budjetoidun Pysyttiin aikataulussa viimeiseen viikkoon asti Sairastapaus viivästytti raportointia kahdella päivällä Työ valmis aikataulussa Riskit hallittiin 12
5. Projektin analysointi Riskit 13
6. Päätös Projekti oli kaiken puolin mielenkiintoinen Todellinen laitteista toi siihen mielenkiintoa Kehitti Java taitoja Opetti IRC:stä sekä OSGi:sta Vähemmän projekti työskentelystä 14
6. Päätös KYSYTTÄVÄÄ? KIITOS 15