TEKNINEN MÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.1

Samankaltaiset tiedostot
TEKNINEN MÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0 (Luonnos 2)

TEKNINEN MÄÄRITTELY Virtuaaliyhteisöiden muodostaminen Versio 1.2

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

VAATIMUSMÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 4)

VAATIMUSMÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.2

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

TOIMINNALLINEN MÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

LAATUKATSELMUS LU Virtuaaliyhteisöjen muodostamien Saved

EDISTYMISRAPORTTI - T2 Virtuaaliyhteisöjen muodostaminen Versio 1.2

EDISTYMISRAPORTTI - T4 Virtuaaliyhteisöjen muodostaminen Versio 1.0

TOIMINNALLINEN MÄÄRITTELY MS

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - JÄRJESTELMÄ, PORTAL Virtuaaliyhteisöjen muodostaminen Versio 1.0

Järjestelmäarkkitehtuuri (TK081702)

PILETTI. Tekninen vaatimusmäärittely. v. 0.2

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

t P1 `UT. Kaupparek. nro Y-tunnus Hämeenlinnan. hallinto- oikeudelle. Muutoksenhakijat. 1( UiH S<

DOKUMETTIENHALLINTASUUNNITELMA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (Luonnos 1)

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

Ohjelmiston toteutussuunnitelma

Suunnitteluvaihe prosessissa

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

EDISTYMISRAPORTTI - PS Virtuaaliyhteisöjen muodostaminen Versio 1.0

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

K Ä Y T T Ö S U U N N I T E L M A Y H D Y S K U N T A L A U T A K U N T A

Ohjelmistojen suunnittelu

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

Odoo ERP, Käyttäjien määrittely

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Valppaan asennus- ja käyttöohje

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

ohjelman arkkitehtuurista.

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

YHDYSKUNTALAUTAKUNTA TALOUSARVIOEHDOTUS 2018 TALOUSSUUNNITELMA

T Projektikatselmus

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Käyttöopas. ADAP-KOOL AK-ST 500 Oy Danfoss Ab / Kylmäosasto 1

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Convergence of messaging

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Tekninen suunnitelma - StatbeatMOBILE

Ohjelmoinnin jatkokurssi, kurssikoe

Action Request System

Inspire-prosessin tilannekatsaus 01 / 2012

Johdatus rakenteisiin dokumentteihin

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

18. Abstraktit tietotyypit 18.1

Sähköpostitilin luonti

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

15. Ohjelmoinnin tekniikkaa 15.1

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

TESTAUSSUUNNITELMA Virtuaaliyhteisöjen muodostaminen Versio 1.1

L models. Tekninen määrittely. Ryhmä Rajoitteiset

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ensimmäisessä vaiheessa ladataan KGU tietokanta Hallitse tietokantoja toiminnon avulla.

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

Internet-pohjainen ryhmätyöympäristö

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

DOKUMENTTIENHALLINTASUUNNITELMA Virtuaaliyhteisöjen muodostaminen Versio 1.1

PROJEKTISUUNNITELMA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (Luonnos 5)

Avoimen ja yhteisen rajapinnan hallintamalli

T Testiraportti - integraatiotestaus

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Modulaariset tietosisältömäärittelyt Tilannekatsaus

Osallistavan suunnittelun kyselytyökalu

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

Rajapinta (interface)


EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Visma Nova Webservice Versio 1.1 /

i lc 12. Ö/ LS K KY: n opiskelijakysely 2014 (toukokuu) 1. O pintojen ohjaus 4,0 3,8 4,0 1 ( 5 ) L i e d o n a mma t ti - ja aiku isopisto

Tekstiviestipalvelun rajapintakuvaus

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

SAP. Lasse Metso

Kansallinen ASPAtietojärjestelmä

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Ristiinopiskelun kehittäminen -hanke

Visma Software Oy

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

D-Link DSL-504T ADSL Reitittimen Asennusohje ver. 1.0

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Transkriptio:

TEKNINEN MÄÄRITTELY Edited by Checked by Approved by Tuomo Marttila Luonnos 1

Tekninenmäärittely i Sisällysluettelo 1. JOHDANTO 2 1.1. Tarkoitus ja kattavuus 2 1.2. Tuote ja ympäristö 2 1.3. Määritelmät, merkintätavat ja lyhenteet 2 1.4. Viitteet 2 1.5. Yleiskatsaus dokumenttiin 3 2. JÄRJESTELMÄN YLEISKUVAUS 4 2.1. Sovellusalueen kuvaus 4 2.2. Järjestelmän liittyminen ympäristöönsä 4 2.3. Laitteistoympäristön kuvaus 4 2.4. Ohjelmistoympäristön kuvaus 4 3. ARKKITEHTUURIN KUVAUS 5 3.1. Yleistä 5 3.2. Ratkaisun "filosofia" (suunnitteluperiaatteet) 5 3.3. Tietokanta-arkkitehtuuri 6 3.4. Ohjelmistoarkkitehtuuri, moduulit ja prosessit 6 4. MODUULI KUVAUKSET 7 4.1. Yleistä 7 4.2. AMOK Wrapper-moduuli 8 4.2.1 UserServicesAmok 9 4.2.2 UiConverter 9 4.2.3 XmlAmok 10 4.3. AMOK moduuli 10 4.3.1 Amok, User ja Community 10 4.4. VYM 11 4.4.1 Vym 12 4.4.2 Muut 12 5. XML TIETORAKENTEET 13

Tekninenmäärittely ii Sisällysluettelo 5.1. Yleistä 13 5.2. DTD-määrittelyt 13 5.2.1 profile.dtd 13 5.2.2 service.dtd 13 5.2.3 community.dtd 14 5.2.4 ui.dtd 14 6. HYLÄTYT RATKAISVAIHTOEHDOT 15

1(2) Dokumentin versiot Vers Muuttaja Pvm Muutos Tarkastanut Hyväksynyt 1.0 Tuomo Marttila 3.11.2000 Ensimmäinen luonnos. Luonnos 1 1.0 Harri Kauhanen 7.11.2000 Kirjoitusvirheiden korjausta. Luonnos 2 1.1 Harri Kauhanen 7.12.2000 Suunniteltujen moduuli/luokkakuvausten lisäykset ja kommentointi. Ensimmäisen luonnoksen luokkien dokumentointia poistettu, sillä varsinainen API dokumentointi generoidaan koodista automaattisesti. Luonnos 1 1.1 Tuomo Marttila 8.12.2000 Tehty lisäyksiä. Luonnos 1 1.1 Harri Kauhanen 11.12.2000 Liästty luku 6 (XML) Harri Kauhanen

2(3) 1. JOHDANTO 1.1. Tarkoitus ja kattavuus Tässä dokumentissa määritetään VYMin rakenne moduulitasolla. 1.2. Tuote ja ympäristö Tuotteen kuvaus on määritetty dokumentissa vaatimusmäärittely [3] kohdassa 1.5. 1.3. Määritelmät, merkintätavat ja lyhenteet AMOK Käyttäjäprofiili Sääntö VYM VYMK Virtuaaliyhteisö Adapterikomponentti. AMOK on järjestelmän osa, joka tarjoaa rajapinnat ulkoisille liittymille järjestelmään ja ohjaa asiakkassovelluksen pyynnöt joko suoraan kantaan tai VYMille, riippuen pyynnön laadusta. Käyttäjäprofiili sisältää yhden käyttäjän tiedot. Profiili määritellään ensisijaisesti käyttäjän syöttämien tietojen mukaan, mutta se saattaa myös muuttua oppiessaan käyttäjän toimista. Käyttäjäprofiili on ohjelmiston kannalta ekvivalentti käyttäjän kanssa. Virtuaaliyhteisöjä muodostetaan sääntöjen avulla. Sääntöä ei tule ymmärtää välttämättä predikaattilogiikan avulla muodostettuna, vaan sääntö on mikä tahansa rajoite, jonka avulla voidaan tutkia käyttäjäprofiileja ja määrittää, kuuluuko henkilö profiilinsa perusteella ryhmään vai ei. Virtuaaliyhteisöjen muodostajakone. Keskeisin osa sovellusta, joka muodostaa virtuaaliyhteisöt käyttäjäprofiileista sääntöjen perusteella. VYMin osa, joka laskee varsinaiset yhteisöt. Virtuaaliyhteisö muodostuu joukosta käyttäjiä (käyttäjäprofiileja), joilla on samanlaisia harrastuksia ja kiinnostuksen kohteita. Virtuaaliyhteisön jäsenten tulee voida kommunikoida keskenään. Lisäksi jokaisen yhteisön jäsenen tulee voida ottaa selville, mihin yhteisöihin hän kuuluu. Sääntöjen avulla voidaan profiileista muodostaa virtuaaliyhteisöjä. Jotta virtuaaliyhteisö voisi kommunikoida, tulee virtuaaliyhteisön määrittää media ja protokolla, joiden avulla kommunikaatio voidaan suorittaa. Lisäksi tulee määrittää tapa, jolla henkilö voi ottaa selville, mihin yhteisöihin hän kuuluu. Määritelmä, joka toteuttaa edellä mainitut ehdot, on nelikko (A,B,C,D), jossa A on osajoukko kaikista käyttäjäprofiileista. A:n alkiot toteuttavat säännöstön B, joka on määritelty kullekin virtuaaliyhteisölle erikseen. C on joukko, joka koostuu kommunikaatiotavoista. C siis toisin sanoen määrittelee, millä tavoilla yhteisön sisällä kommunikoidaan. D on toiminto, jonka avulla käyttäjä voi ottaa selville, mihin yhteisöihin hän kuuluu. 1.4. Viitteet [1] Luokkakuvaus (API dokumentointi) [2] Toiminnallinen määrittely

3(4) [3] Vaatimusmäärittely 1.5. Yleiskatsaus dokumenttiin Luvussa 2 kuvataan järjestelmän eri osat hyvin yleisellä tasolla. Luvussa 3 kuvataan järjestelmän arkkitehtuuri. Tietokanta-arkkitehtuuri on kuvattu kohdassa 3.3. Luvussa 4 käsitellään eri moduulien kuvaukset. Kohdassa 4.1 on järjestelmän yleiskuva. Kohdissa 4.2 ja 4.3 käsitellään AMOK:ia ja kohdassa 4.4 VYM:iä. Luvussa 5 käsitellään määriteltyjä XML formaatteja.

4(5) 2. JÄRJESTELMÄN YLEISKUVAUS 2.1. Sovellusalueen kuvaus VYM on virtuaaliyhteisöjä muodostava kone, joka liittyy johonkin sitä tarvitsevaan palveluun. 2.2. Järjestelmän liittyminen ympäristöönsä VYM liittyy portaaliin AMOKin rajapinnan kautta. Käytännössä ensivaiheessa on kyseessä Java luokkarajapinta. 2.3. Laitteistoympäristön kuvaus VYM on täysin palvelinsovellus ja vaatii toiminnallisessa määrittelyssä [2] kuvatun laitteiston. 2.4. Ohjelmistoympäristön kuvaus VYM kirjoitetaan Javalla, ja sen tulisi toimia missä tahansa käyttöjärjestelmässä, jossa on JDK 1.2.2

5(6) 3. ARKKITEHTUURIN KUVAUS 3.1. Yleistä Arkkitehtuuriksi on valittu modulaarinen rakenne, jotta VYM voidaan helposti vaihtaa sopivampaan mahdolliseen. Eri osat toteutetaan Javaluokkina. Seuraavat moduulit ovat välttämättömiä VYM:n toiminnalle. AMOK hoitaa Admin-sovelluksen ja portaalin yhteydet varsinaiseen VYM:in ja tietokantaan. VYM-kone sisältää kaiken älykkyyden mitä tarvitaan virtuaaliyhteisöjen muodostamiseen. Tietokanta sisältää käyttäjäprofiilit, palveluprofiilit ja yhteisöprofiilit, sekä näiden väliset suhteet. Admin-sovelluksessa on käyttöliittymä jolla voidaan lisätä ja päivittää käyttäjä-, palvelu- ja yhteisöprofiileja. UserPortal on loppukäyttäjän käyttöliittymä järjestelmään. Loppukäyttäjän palveluja on luonnollisesti rajattu siten, että käyttäjä voi muuttaa vain omia tietojaan. 3.2. Ratkaisun "filosofia" (suunnitteluperiaatteet) VYM tehdään oliopohjaisena. Eri komponentit ovat Java-luokkia. Vaikka AMOK ja VYMK esitetään eri osina, ne toimivat käytännössä samassa koneessa, ja keskustelevat keskenään Java-luokkarajapinnan yli. Javan käyttö on asiakkaan vaatimus ja toteutuksen kannalta on helpompaa tehdä AMOK:sta ja VYMK:sta yhtenäinen. VYM on palvelinsovellus, eikä sillä ole varsinaista käyttöliittymää. Adminsovellus tulee palvelemaan VYMin käyttöliittymänä ylläpidolle, ja ulkoinen portaali tarjoaa käyttöliittymän käyttäjälle. Kaikki tieto moduulien välillä välitetään parametreina. Globaaleja muuttujia ei tulla käyttämään. Myös AMOKin ja VYMKin välillä tieto siirretään parametreina. Tietokantana on PostgreSQL relaatiokanta. Se on kuvattu toiminnallisen määrittelyn [2] luvussa 3. Myöhemmässä vaiheessa kanta siirretään Oracle 8 kannaksi (Comptelin standardi).

6(7) Tietoa VYM-järjestelmään voidaan syöttää tai lukea käyttäen suoraan AMOK-rajapintaa, mutta vaihtoehtoisesti dataa voidaan väliittä muös XMLkuvauksina. Tietorakenteet on esitetty luvussa 6. 3.3. Tietokanta-arkkitehtuuri Tietokannan rakenne on kuvattu toiminnallisen määrittelyn [2] luvussa 3. Koska kyseessä on tutkimusprojekti emme tässä projektissa tee suojattua ja varmistettua kantaa. Tuotantoympäristössä VYM-palvelun tarjoaja määrittää muunmuassa käytettävyystason. Käytännössä VYMin tulee toimia 24h/vrk, mikä tarkoittaa kahdennettua palvelinta. Koska kanta tulee käytännössä kasvamaan melko nopeasti, on kannan tilaa tarkkailtava, ja tarpeen vaatiessa on kanta järjestettävä uudelleen, jotta kannan rakenne pysyisi tehokkaana. 3.4. Ohjelmistoarkkitehtuuri, moduulit ja prosessit Seuraavassa luvussa on kuvattu ohjelmiston tekninen rakenne moduuli- ja luokkatasolla. Kuvauksissa on käytetty UML kaavioita ja toimintaa on kuvailtu yleisellä tasolla. Luokkien tarkka dokumentointi ei sisälly tähän määrittelyasiakirjaan, vaan luokkien tarkka tekninen kuvaus löytyy on-line versiona VYM projektin kotisivuilta osoitteesta: http://hazard.iki.fi/vym/api/ Tietovirrat luokkien välillä ovat niin selkeät, että niitä ei ole erikseen mallinnettu.

7(8) 4. MODUULI KUVAUKSET 4.1. Yleistä VYM-järjes telmä komponenttiesityksenä Kok o järjestelmän voisi jak aa periaatteessa seuraaviin k omponentteihin. Kohdat, joissa k omponenttien välinen k esk ustelu on rapapinnan (pallo) k autta, voitas periaatteessa toteuttaa jollain hajautussysteemillä. Esim. k äyttäen Corbaa. Toinen es imerk k i voisi olla VymMachine:n toteuttaminen natiivina threadina, jos Java:n tehot loppuisivatkin k esk en. A mokw rapper Amok Vy m Vy mmachine Vy m Vy mmachin e Us erservice s Adm in Tool Vy mdb Us erportal Oheisessa kuvassa on esitetty VYM järjestelmä kokonaisuudessaan moduulitasolla. Moduulien tarkempi kuvaus on esitetty seuraavissa kappaleissa. Karkeasti yksinkertaistettuna moduulien toiminta on seuraava: VymMachine: Yhteisöjen muodostamisen äly Vym: Älykkään järjestelmän rajapinta ulospäin. Yhteisöjen muodostamisen logiikka. Koneen ja kannan ohjaus VymDb: Tietokanta rajapintoineen. Amok: Muodostaa Vym:n yksinkertaisesta rajapinnasta käyttäjä-, palvelu- ja yhteisöluokat, jotka itse tietävät tilansa. Esim. käyttäjältä voidaan kysyä suoraan ne yhteisöt, joihin se kuuluu. AmokWrapper: Kokoelma luokkia, jotka laajentavat Amok moduulia. Esim. käyttäjien luonti suoraan XML kuvauksesta. AdminTool: Työkalu käyttäjien, yhteisöjen, palveluiden ja itse järjestelmän hallintaan. UserPortal: Loppukäyttäjälle suunnattu palvelu, jonka palvelut on rajattu käyttäjän itsenä muokkaamiseen.

8(9) 4.2. AMOK Wrapper-moduuli UserPo rta l ja AMOK luokat Hoitaa mm. tietoturvaa: käyttäjän salasanan tarkistukset, piilottaa om inaisuuk s ia jne. Interfac e:n perintä saattaa olla turhaa, m utta näin se ainakin "simuloi" esim. Corba rajapintatoteutusta. Tästä olisi periaatteessa helppo tehdä oikea Corba rajapinta muuttamalla Java Interface IDL kuvauks ek si. UserP ortal luokalle tarjotaan vielä oma rajapintansa. Periaatteessa UserPortal voisi k äyttää suoraan Amok:ia ja UiConverteria. Turvallisem paa olisi k uitenk in tarjota joku UserS ervices:n tapainen rajapinta päätelaiteliittym ien k ehittäjille. Amok itsessään ei ole mitenk ään suojattu, joten palikka välissä on tarpeen. UserS ervicesa m ok A m ok (from com.comptel.vym.amok) UserS ervices createus er(us erdata userdata) loginus er(s tring username, string password) getus erdata() : UserData updateus erdata(userdata userdata) getus erp rofile() : ArrayList <UiUnit> updateus erp rofile(a rray List <UiUnit>) getus ercomm unities() : ArrayLis t <CommunityData> UiConverter convertfeatures ToUi(A rraylis t <Feature> profile) : ArrayList <UiUnit> convert UiTo F eatures(arraylist < UiUni t> uiprofile) : ArrayList <Feature> Us erp ortal (from com.comptel.vym.userportal) Xm lui Osaa konvertoida eril ais ia profiileja "käyttöliittymänä es itettävään muotoon" ja päinvastoin.

9(10) AdminTool ja AMOK luokkia A dm intool voisi pärjät ä melk o pitkälle pelk ällä Amok-luok an palveluilla. Onge lm a on lähinnä miten esittää dynaam iset profiilit k äyttöliittymänä. Tiedot eri profiilik enttien/sääntöjen sallituista arvoalueista löytyy sitä varten määrätystä XML tiedostosta. U iconverter-luok an tehtävänä on muuttaa ArrayList <ProfileFeature> muotoon ArrayList <UiUnit>, jossa profiilien lisäk si o n esitetty mahdollinen arvoalue ja sopiva k äyttöliittymä voidaan siitä muodostaa lennossa. X m la m ok :n avulla voidaan k äyttäjiä ja yhteisöjä lisätä järjestelmään suoraan XML k uvauk sista. Luultavasti ensimmäinen A dm in työk alun versio osaa vain tämän ominaisuuden, mutta jatk ossakin tämä voi olla hyödyllinen ominaisuus Os aa m uodostaa käyttäjiä ja yhteisöjä niiden XM L esityst en peru steella. DatasourceXmlW riter Xm lam ok DatasourceXmlParser A dm in pääsee halutessaan käsiksi melko suoraan VYM järjestelm ään. Xm lam ok(a m ok amok) createusers(stream userxml) syncusers(sterm userxml) createcommunitites(steram communityxml) synccommunities(steram communityxml) getusers : Steram() getcommunities() : Stream A m ok (from com.comptel.vym.amok) Osaa konvertoida e rilaisia profiileja " käyt töl iittym änä e sit ett ävä än muotoon" ja päinvastoin. A dm in Tool (from com.comptel.vym.admin) UiConverter convertfeaturestoui(arraylist <Feature> profile) : ArrayList <UiUnit> convertuitofeatures(arraylist <UiUnit> uiprofile) : ArrayList <Feature> Xm lui 4.2.1 UserServicesAmok Tarjoaa rajapinnan portaalille ja välittää tiedot itse AMOK:iin. 4.2.2 UiConverter Hoitaa tietokonversion esim. käyttäjän profiilista käyttöliittymäksi ja toisinpäin. VYM-koneen profiilit ei sisällä tietoa siitä, miten tietoja tulisi kysyä esim. loppukäyttäjältä. Tämän luokka siis osaa muuttaa yksinkertaisen profiilin sellaiseksi, että mahdolliset arvoalueet on rajattu ja tiedot voidaan esittää käyttöliittymän komponentteina (esim. radiobuttonit, sliderit jne.)

10(11) 4.2.3 XmlAmok Luokka, joka osaa lukea käyttäjä-, palvelu- tai yhteisökuvauksia XML formaatissa ja luoda niistä vastaavat käyttäjät, palvelut tai yhteisöt. 4.3. AMOK moduuli AMOK ja sen tietorakenteet AMO K ja sen luok a t muodostaa "fiks umm an" ra japinnan koneen käyttöön. Comm unity ja User luokat tarjoavat sellaista toiminnallisuutta, että järjeste lm än k äytön tulisi olla helppoa. Esimerkiksi User-luok alta voidaan k ys yä suoraan mihin yhteisöihin se k uulu u ja p äinvastoin. Toiminta on myös läpinäk yvää - esim. käyttäjäprofiilin päivityk sen jälk een ei tarvits e pyytää erillistä päivitystä, vaan uudet yhteisöt voidaan kysyä samantien (toiminta ri ippuu täys in alla olevasta k oneesta). It se VYM-k one ei tarvitse näitä luokk ia. Community Data (from com.comptel.vym) Feature (from com.comptel.vym) Us erdata (from com.comptel.vym) Comm unity Us er Comm unity (CommunityData communitydata, Vym vym) getcomm unity Data() : CommunityData updatecommunitydata(communitydata communitydata) getfeatures() : ArrayList <Feature> updatefeatures(a rraylist <Feature>) getus ers () : ArrayList <User> Us er(userdata userdata, Vym vym) getus erdata() : UserData updateuserdata(userdat a userdata) getfeatures() : ArrayList <Feature> updatefeatures(a rraylist <Feature>) getcomm unities() : ArrayList <Community> Am ok c rea teus er(userdata userdata) : User rem oveu ser(user user) fi ndus er(string usernam e) : User getallusers() : ArrayList <User> c reatecommunity(community community) : Community rem ovecom munity(comm unity community) findcommun ity (S tring c omm unityname) getall Comm uni ti tes () : ArrayLi s t < Community > + vy m + vy m + vy m Vy m (from com.comptel.vym) Vy m luokat UserData jne. ei kuulu suoraan Us er luok kaan, vaan tiedot saadaam Vy m-rajapinnasta. Sama idea Comm unicaty -luokk aa. 4.3.1 Amok, User ja Community Nämä kolme luokkaa paketoivat VYM-rajapinnan sisäänsä niin, että esim. käyttäjältä voidaan suoraan kysyä mihin yhteisöihin ne kuuluvat. Toisaalta käyttäjän tietojen päivittäminen ohjataan myös suoraan VYM:in (ja sitä kautta kantaan ja varsinaiselle koneelle).

11(12) 4.4. VYM Pe rus tie to ra kente et S tring loginname S tring firstname S tring lastname UserData UserData(S tring login, St ring firstname, String lastnam e) S t ri ng communityname S tring info Com munitydata Com munitydata(string com munityname, String info, int algorithm) Strin g name int number Feature P rofilefeature(string featurename, int Number) Com munication Com mun icatio n(st ri ng na me, String value) A lgorithm A lgorithm(int type, String data) P rofiili m uodostetaan tekemällä ArrayList

12(13) VYM luokat V ym c reateuser(userdata userdata) rem oveus er(s tring us ernam e) getus erdata(s tring username) : UserData updateuserdata(us erdata userdata) getus erprofile(string username) : ArrayList <ProfileFeature> updat euserp rofil e(s t ri ng us ernam e, ArrayList <ProfileFeature>) getus ercom munities(string username) : ArrayList <String> c reatecommunity(communitydata communitydata) remo vecommuni ty(string co mm unitynam e) getcom munity Data(S tring communityname) : CommunityData upd atec om m unit ydata (Strin g com munitynam e, CommunityData) getcom munity Rules(S tring communityname) : Array Lis t <Rule> updatecommunityrules(string communityname, Array Lis t <Rule>) getcom munity Us ers(s tring communityname) : ArrayList <String> getallus ers( ) : ArrayLis t <String> g eta llc om mun it ies () : ArrayList < S tring > V ym luokat ovat k ok o yhteisön m uodos t uk sen äly ja logiik k a. It se Vym t arjoaa rajapinnan k äyttäjien ja yhteis öjen muokk aamiseen. Muutosten v aik ut uk ses t a yhteisöjen rak enne voi m uuttuua. Kaikki täm ä ta pahtuu läpi näk yvä sti eli Vym -rajapinnan k äy tt äjän ei tarvitse k äsk eä tekem ään yhteis öjen päivitystä, vaan profiilin m uut os riit tää (tämä riippuu lop puje n l opuk s i toteutettavasta koneesta - k one voi reagoida mihin tahansa k äyttäjän op eraat io on haluamallaa n tavalla). V ym luokat k äs ittelevät k äyttäjiä, profii leja, yhteisöjä ja s ääntöjä erillisinä y k s ik öi nä. V ymmachine (from com.comptel.vym.vymmachine) S tu bvy m LearningV ym B as ic Vy m E i tee mitään j ärk evää, mutta voidaan k äyttää e sim. k äy ttöliittymän a puna, k un Vym k one t ai kanta ei vie lä oik easti t oim i O ppiva sy steemi voidaan tehdä m yö hemmin. Täm ä toteutetaan ens in. DbHandler 4.4.1 Vym 4.4.2 Muut Rajapinta tarjoaa palvelut käyttäjien, palveluiden ja luokkien hallintaan. Rajapinnan toteuttavat luokat saavat käsitellä annettuja käyttäjä-, palvelu- tai yhteisötietoja haluamallaan tavalla, mutta tyypillisesti Vym-luokka ohjaa suoraan kantaa ja kun esim. uusi käyttäjä luodaan tai käyttäjäprofiili muuttuu, niin kutsutaan varsinaisesti VYM-konetta (VymMachine). DbHandler ja siitä perityt luokat hoitavat yhteyden tietokantaan. VymMachine luokat ovat erilaisia koneita, jotka osaavat liittää käyttäjiä / palveluja yhteisöihin.

13(14) 5. XML tietorakenteet 5.1. Yleistä VYM-sovellusta varten on laadittu XML kuvaukset seuraavia tietorakenteita varten: käyttäjät palvelut yhteisöt käyttöliittymä (konvertointi) Näistä kolmea ensimmäistä käytetään tilanteisiin, jolloin järjestelmään halutaan syöttää paljon dataa tai päinvastoin kun järjestelmästä halutaan siirtää dataa muihin järjestelmiin. Neljäs kuvaa sen, kuinka käyttäjien, palveluiden ja yhteisöjen profiilit esitetään käyttäjälle. Esimerkiksi profiilin elementille voidaan näin määritellä arvoalueita ja esitystapa sille, miten tieto lopulta käyttäjältä kysytään. XML kuvaukset muutetaan VYM:n sisäisiksi tietorakenteiksi ja päinvastoin tarkoitusta varten laadittavilla luokilla. 5.2. DTD-määrittelyt 5.2.1 profile.dtd <?xml version="1.0"?> <!ELEMENT PROFILELIST (PROFILE*)> <!ELEMENT PROFILE (FIRSTNAME,LASTNAME,USERID,COMMUNICATION,FEATURELIST)> <!ELEMENT FIRSTNAME (#PCDATA)> <!ELEMENT LASTNAME (#PCDATA)> <!ELEMENT USERID (#PCDATA)> <!ELEMENT COMMUNICATION (NAME (NAME,VALUE)> <!ELEMENT FEATURELIST (FEATURE+) <!ELEMENT FEATURE (NAME,NUMBER)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT VALUE (#PCDATA)> <!ELEMENT NUMBER (#PCDATA)> 5.2.2 service.dtd <?xml version="1.0"?> <!ELEMENT SERVICELIST (SERVICE*)> <!ELEMENT SERVICE (NAME,INFO,ADDRESS,FEATURELIST)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT INFO (#PCDATA)> <!ELEMENT ADDRESS (#PCDATA)> <!ELEMENT FEATURELIST (FEATURE+)> <!ELEMENT FEATURE (NAME,NUMBER)>

14(15) <!ELEMENT NUMBER (#PCDATA)> 5.2.3 community.dtd <?xml version="1.0"?> <!ELEMENT COMMUNITYLIST (COMMUNITY*)> <!ELEMENT COMMUNITY (NAME,INFO,ALGORITHM,COMMUNICATION,FEATURELIST)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT INFO (#PCDATA)> <!ELEMENT COMMUNICATION (NAME (NAME,VALUE))> <!ELEMENT VALUE (#PCDATA)> <!ELEMENT ALGORITHM (TYPE, DATA)> <!ELEMENT TYPE (#PCDATA)> <!ELEMENT DATA (#PCDATA)> <!ELEMENT FEATURELIST (FEATURE+)> <!ELEMENT FEATURE (NAME,NUMBER)> <!ELEMENT NUMBER (#PCDATA)> 5.2.4 ui.dtd <?xml version="1.0"?> <!ELEMENT UILIST (UI*)> <!ELEMENT UI (NAME,ITEM)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT ITEM (RBUTTON SLIDER TEXTFIELD)> <!ELEMENT RBUTTON ((NAME,VALUE)+)> <!ELEMENT SLIDER (INTEGER,MINTEXT,MAXTEXT)> <!ELEMENT INTEGER (#PCDATA)> <!ELEMENT MINTEXT (#PCDATA)> <!ELEMENT MAXTEXT (#PCDATA)> <!ELEMENT VALUE (#PCDATA)> <!ELEMENT TEXTFIELD (#PCDATA)>

15(16) 6. HYLÄTYT RATKAISVAIHTOEHDOT VYM-konetta ei tehdä ainakaan tässä vaiheessa neuroverkkona, sillä ei olla varmoja tulisiko se toimimaan.