1. TAMPEREEN TEKNILLINEN KORKEAKOULU
Tietotekniikan osasto
TIMUR KÄRKI, ANTTI LEINONEN, TOMMI TARKIAINEN
HAJAUTETTU SISÄLLÖNHALLINTAJÄRJESTELMÄ INTERNET-VERKOSSA
Aihe hyväksytty osastoneuvoston kokouksessa 12.11.1997.
Tarkastajat:
professori Ilkka Haikala, Tampereen teknillinen korkeakoulu
tekn.lis. Jukka Helin, Sonera Oy
2. ii
Alkulause
Diplomityössä kuvattu sisällönhallintajärjestelmä toteutettiin ohjelmistoprojektina
Soneran Medialaboratoriossa. Projekti alkoi kesäkuussa 1997. Haluamme kiittää
laboratorion silloista johtajaa Arto Urataipaletta sekä nykyistä johtajaa Jukka Heliniä
tuesta ja luottamuksesta projektia kohtaan. Loppuvuodesta 1997
sisällönhallintajärjestelmästä päätettiin tehdä tämä diplomityö.
Diplomityön syntymiseen ovat vaikuttaneet useat henkilöt. Kiitokset kaikille niille, jotka
lukivat tämän diplomityön ja antoivat arvokasta palautetta. Erityisesti haluamme kiittää
työmme tarkastajia, professori Ilkka Haikalaa ja tekniikan lisensiaatti Jukka Heliniä.
Tampereella 24.2.1999
Timur Kärki
Pajakatu 11 as 5
33100 TAMPERE
puh. 040-5369677
Antti Leinonen
Arkkitehdinkatu 34 D 32
33720 TAMPERE
puh. 040-5369688
Tommi Tarkiainen
Opiskelijankatu 4 F 336
33720 TAMPERE
puh. 040-5369686
3. iii
Tiivistelmä
TAMPEREEN TEKNILLINEN KORKEAKOULU
Tietotekniikan osasto, Ohjelmistotekniikka
KÄRKI, TIMUR - LEINONEN, ANTTI - TARKIAINEN, TOMMI:
HAJAUTETTU SISÄLLÖNHALLINTAJÄRJESTELMÄ INTERNET-
VERKOSSA
Diplomityö, 103 sivua, 5 liitesivua
Tarkastajat: prof. Ilkka Haikala, tekn. lis. Jukka Helin
Rahoittaja: Sonera Oy
Maaliskuu 1999
Avainsanat: CORBA, hajautettu ohjelmisto, Internet, Java, multimedia, sisällönhallinta
Soneran multimediapalvelun pilottivaihe käynnistettiin vuonna 1995. Palvelun
tarkoituksena on helpottaa multimediamateriaalin jakelua Internetissä. Pilottivaiheesta
saatujen kokemusten pohjalta käynnistettiin kesällä 1997 Soneran Medialaboratoriossa
ohjelmistoprojekti, jonka tavoitteena oli luoda uusi järjestelmä, joka korjaisi vanhan
järjestelmän ongelmat ja helpottaisi uusien palveluiden kehitystä. Projektin edetessä
ohjelmisto muotoutui sisällönhallintajärjestelmäksi, joka esitellään tässä työssä.
Sisällönhallintajärjestelmä on hajautettu ohjelmisto, joka koostuu sisällöntuottajan ja
ylläpitäjän työkaluista sekä palvelinohjelmistosta. Ohjelmisto on toteutettu Javalla ja
CORBAlla. Lisäksi järjestelmässä käytetään ulkopuolisten ohjelmatoimittajien ohjelmia,
kuten RealNetworksin ja Xing Technologiesin striimaavia1
multimediapalvelimia.
Sisällönhallintajärjestelmä on tällä hetkellä käytössä Tampere Media Cityssä
(www.tmc.tampere.fi), joka on ensimmäinen järjestelmän avulla rakennettu sovellus.
Järjestelmä otetaan käyttöön myös muissa Soneran Internet-multimediapalveluissa.
1
Engl. termille streaming ei ole olemassa vakiintunutta suomennosta. Tässä työssä käytetään
koeluontoisesti suomennosta "striimaus".
4. iv
Abstract
TAMPERE UNIVERSITY OF TECHNOLOGY
Department of Information Technology, Software Systems Laboratory
KÄRKI, TIMUR - LEINONEN, ANTTI - TARKIAINEN, TOMMI:
DISTRIBUTED CONTENT MANAGEMENT SYSTEM IN THE INTERNET
Master of Science Thesis, 103 pages, 5 enclosure pages
Supervisors: Prof. Ilkka Haikala and Tech. Lic. Jukka Helin
Funding: Sonera Ltd
March 1999
Keywords: content management, CORBA, distributed computing, Internet, Java,
multimedia, streaming
Sonera Ltd started a multimedia pilot service in 1995. The purpose of this pilot was to
make it easier for the content providers to use streaming multimedia on the Internet. Based
on the experiences of the pilot it was decided that a new system was needed to better
address the needs of the content providers. In the summer of 1997 Sonera Medialab started
a software project the goal of which was to create a new system that would not have the
shortcomings of the old service and would enable Sonera to create new kind of
multimedia services. This thesis describes the content management system which is the
result of the project.
The content management system is a distributed system that consists of three parts. These
parts are content provider tools, administrator tools and server software. The system was
developed using Java and CORBA. The system also makes extensive use of 3rd
party
software e.g. RealNetworks and Xing Technologies streaming media servers.
The content management system is currently being used in Tampere Media City
(www.tmc.tampere.fi), which is the first application built on top of this system. The
content management system will also be used in other Sonera’s Internet multimedia
services.
7. Sisällysluettelo
vii
6.2.3 ServerManagerAgent ..........................................................................................79
6.2.4 ServerConfigAgent..............................................................................................80
6.2.5 PropertyEditorAgent...........................................................................................81
6.2.6 QueueManagerAgent ..........................................................................................81
7 Sisällönhallintajärjestelmä ja Sonera MediaNet -sovellukset................................82
7.1 SISÄLLÖNHALLINTAYDIN TUOTANTOKÄYTÖSSÄ ........................................................82
7.1.1 On-Demand.........................................................................................................84
7.1.2 Live......................................................................................................................86
7.1.3 TMC ....................................................................................................................86
7.2 ASIAKASOHJELMA......................................................................................................87
7.2.1 On-Demand.........................................................................................................88
7.2.2 Live......................................................................................................................92
7.2.3 Tampere Media City............................................................................................93
8 Sisällönhallintajärjestelmän jatkokehitys................................................................97
8.1 JÄRJESTELMÄN RAKENTEEN JA PALVELUIDEN JATKOKEHITYS....................................97
8.2 MEDIANET-SOVELLUSTEN JATKOKEHITYS .................................................................99
9 Yhteenveto ................................................................................................................101
Lähdeluettelo...................................................................................................................104
Liite I - Portaalit .............................................................................................................106
Liite II - Käyttöliittymäesimerkit..................................................................................108
8. viii
Termejä
Asiakasohjelma Sisällöntuottajan työkalu, jolla käytetään
sisällönhallintaytimen toimintoja.
Enkooderi Laite tai ohjelma, joka muuntaa lähdemateriaalin muotoon,
josta se voidaan palauttaa alkuperäisen kaltaiseksi.
(engl. encoder)
Erityispalvelu Sisällönhallintaytimen palvelu, joka suorittaa MediaNet-
sovelluskohtaisia toimintoja.
Liityntäpalvelu Liityntäpalvelut toimivat sisällönhallintaytimen rajapintana
ulkopuolisiin ohjelmiin. Liityntäpalvelut ovat
erityispalveluita.
Loppukäyttäjä Selailee ja katselee sisältöjä loppukäyttäjäohjelman avulla.
Loppukäyttäjäohjelma Sisällön katsomiseen tarkoitettu ohjelma. Tällaisia ohjelmia
ovat mm. selaimet sekä erilaiset mediasoittimet.
MediaNet-sovellus MediaNet-tuote, joka on toteutettu sisällönhallintajärjestelmän
avulla.
MediaNet-tuote MediaNet-tuoteperheen jäsen. Soneran medialaboratoriossa
kehitetty palvelukonsepti.
Medianimike Medianimike koostuu yhdestä tai useammasta
mediatiedostosta.
Mediasoitin Multimediamateriaalin toisto-ohjelma.
(engl. media player)
Mediatiedosto Medianimikkeeseen liittyvä yksittäinen fyysinen tiedosto.
Muunnosohjelma Ohjelma, joka muuntaa materiaalin muodosta toiseen.
(engl. converter)
Muuntaminen Materiaalin muuntaminen muodosta toiseen. Muuntamiseen
liittyy usein materiaalin pakkaaminen.
(engl. convert)
Palvelu Sisällönhallintaytimeen kuuluva ohjelma, joka toteuttaa
TFService-rajapinnan.
9. Termejä
ix
Peruspalvelu Sisällönhallintaytimen palvelu, joka on tarkoitettu muiden
sisällönhallintaytimen palveluiden käyttöön. Peruspalveluita
ei voi käyttää sisällönhallintaytimen ulkopuolisista ohjelmista.
Serialisointi Javan toiminto, jonka avulla olioiden sisältämät tiedot voidaan
muuttaa tietovirraksi ja tietovirrasta takaisin olioksi.
(engl. serialize)
Sisällönhallintajärjestelmä Asiakasohjelman, ylläpito-ohjelman ja sisällönhallintaytimen
muodostama kokonaisuus.
Sisällönhallintaydin Sisällönhallintaydin sisältää sisällönhallintajärjestelmän
palvelut, tiedonhallinnan ja sisältöpalvelimet.
Sisällöntuottaja MediaNet-tuotteen asiakas, joka välittää
sisällönhallintajärjestelmän avulla sisältöä loppukäyttäjälle.
Sisältö Sisältöpalvelimella sijaitseva materiaali, joka on
loppukäyttäjän katsottavissa.
Sisältöpalvelin Sisällönhallintaytimeen liitetty palvelin, jonka tehtävänä on
varastoida ja jakaa sisältöä.
Sovelluskehys Osittain toteutettu järjestelmäarkkitehtuuri, johon voidaan
liittää uusia toimintoja.
(engl. framework)
Striimata Materiaalin välittäminen tietoverkon avulla siten, että
materiaalia voidaan käyttää sitä mukaa, kun se siirtyy
loppukäyttäjän tietokoneelle.
(engl. streaming)
Ylläpito-ohjelma Ylläpito-ohjelman avulla ylläpitäjä voi hallita ja valvoa
sisällönhallintaytimen toimintaa.
10. x
Lyhenteitä
ACL Access Control List
AFC Application Foundation Classes
API Application Programming Interface
AWT Abstract Windowing Toolkit
CGI Common Gateway Interface
CORBA Common Object Request Broker Architecture
CUG Closed User Group
DCOM Distributed Component Object Model
FIFO First-In-First-Out
FTP File Transfer Protocol
HTML HyperText Markup Language
HTTP HyperText Transfer Protocol
IDL Interface Definition Language
IFC Internet Foundation Classes
IIOP Internet Inter-ORB Protocol
IOR Interoperable Object Reference
IP Internet Protocol
ISP Internet Service Provider
JAR Java Archive
JDBC Java Database Connectivity
JDK Java Development Kit
JFC Java Foundation Classes
OMA Object Management Architecture
OMG Object Management Group
ORB Object Request Broker
OSP Online Service Provider
RMI Remote Method Invocation
SMTP Simple Mail Transfer Protocol
SQL Standard Query Language
12. 1
1 Johdanto
Loppuvuodesta 1995 Soneran Medialaboratorio aloitti MediaNet1
-kokeilun, jonka
tavoitteena oli luoda multimedian jakelujärjestelmä Internetiin. Sisällöntuottajille tarjottiin
ohjelmistot, joiden avulla voitiin siirtää digitoitua mediamateriaalia Soneran palvelimelle.
Palvelimella materiaali muunnettiin sopivaan muotoon ja asetettiin loppukäyttäjän
saataville.
Kokeilua käynnistettäessä tavoitteena oli löytää uusia käyttötarkoituksia Soneran
tietoverkoille ja saada tietoa multimedian levittämisen teknisistä vaatimuksista. Haluttiin
myös saada tietoa siitä, kuinka sisällöntuottajat ja loppukäyttäjät suhtautuvat näihin uusiin
teknologioihin.
Sonera toteutti tällaisen palvelun ensimmäisenä maailmassa ja saavutti paljon mainetta.
Soneraa kehuttiin nopeasta teknologioiden omaksumiskyvystä, ja MediaNet sai vuonna
1996 Data Communications International -lehden arvostetun Hot Products -palkinnon.
Kokeilussa luotu palvelu kaupallistettiin keväällä 1997. Kesäkuussa 1997 todettiin, että
puolitoista vuotta aikaisemmin luotu järjestelmä oli hankala ylläpitää ja laajentaa.
Päätettiin tehdä järjestelmä kokonaan uudelleen, painottaen ohjelmistoteknisiä ratkaisuja.
1
MediaNet on Soneran käytössä ollut tuotenimi, jonka Helsinki Media on sittemmin rekisteröinyt itselleen.
Tekstissä käytetään vanhaa MediaNet-nimeä, koska uusi tuotenimi ei ollut työtä kirjoitettaessa vielä selvillä.
13. 1 Johdanto
2
Haluttiin saada järjestelmä, joka olisi helposti laajennettavissa ja soveltuisi monenlaisen
materiaalin levittämiseen. Järjestelmän tuli myös mukautua erilaisiin ympäristöihin ja
tehovaatimuksiin.
Alkoi kolmen hengen ohjelmistoprojekti, jonka toteutukseen Medialaboratorio antoi
varsin vapaat kädet. Työ alkoi uuden järjestelmän tarpeiden selvittämisellä ja
ominaisuuksien määrittelemisellä. Tärkeä osa työtä oli selvittää eri ohjelmistotekniset
toteutusvaihtoehdot. Näiden vaiheiden jälkeen syksyllä 1997 alkoi toteutus.
Loppuvuodesta 1997 päätimme kirjoittaa diplomityömme tästä varsin laajaksi kasvaneesta
ohjelmistoprojektista. Työn aiheena olevaa ohjelmistokokonaisuuden osaa ryhdyttiin
kutsumaan sisällönhallintajärjestelmäksi.
Diplomityön luvussa 2 luodaan pikainen katsaus multimedian käyttöön Internet-
tietoverkossa ja esitellään lyhyesti MediaNet-tuotteita. Luvun tarkoituksena on
perehdyttää lukija ympäristöön, jossa sisällönhallintajärjestelmää tullaan käyttämään.
Luvussa 3 esitellään sisällönhallintajärjestelmä siihen kohdistuvien tarpeiden ja
vaatimusten muodossa. Luvussa 4 käsitellään vaihtoehtoisia menetelmiä
sisällönhallintajärjestelmän totettamiseksi. Tässä luvussa käydään läpi lyhyesti
järjestelmän hajautuksessa käytetyt työkalut ja menetelmät. Lisäksi käsitellään
järjestelmän käyttöliittymien toteutuksessa käytettyjä välineitä. Luvussa 5 esitellään
toteutetun sisällönhallintajärjestelmän rakenne ja toiminnot. Rakenteen kuvauksessa
esitetään toteutukseen vaikuttaneet keskeiset suunnitteluperiaatteet. Tässä luvussa
esitellään myös muita teknologiaratkaisuja. Luvussa 6 esitellään järjestelmään liittyviä
käyttöliittymiä. Luvussa 7 kuvataan kuinka sisällönhallintajärjestelmää hyödynnetään
MediaNet-tuotteissa. Lopuksi luvussa 8 arvioidaan järjestelmän jatkokehitystarpeita ja
-mahdollisuuksia.
14. 3
2 Sonera MediaNet -tuotteet
Internetin käyttäjämäärät jatkavat edelleen kasvuaan. Loka-marraskuussa vuonna 1998
540 000 suomalaista käytti Internetiä päivittäin. Vuotta aikaisemmin vastaava luku oli
313 000. Mahdollisia käyttäjiä onnistuneelle sisältöpalvelulle tulee siis koko ajan lisää.
[Ta99a]
2.1 Sisältöpalvelut Internetissä
Useat Internet-yhteyden tarjoajat eli ISP:t (Internet Service Provider) haluavat nykyään
tarjota asiakkaalle kokonaisvaltaista palvelua. Internet-yhteyden ja sen peruspalveluiden
lisäksi tarvitaan lisäarvopalveluita. Tällaisia palveluita voivat olla esimerkiksi erilaiset
uutispalvelut, hakemistopalvelut, keskustelupalstat, virtuaaliset yhteisöt ja
multimediapalvelut. Tarkoitus on, että käyttäjät eivät samoilisi satunnaisesti Internetissä,
vaan mahdollisimman moni käyttäisi juuri tämän ISP:n tuottamia, ylläpitämiä tai
valitsemia palveluita.
ISP-käsitteen rinnalle on noussut OSP (Online Service Provider), joka pitää sisällään niin
perinteisen ISP-toiminnan, kuin myös sisältöpalveluiden tarjoamisen. Tarjoamalla
houkuttelevia palveluita ja laadukasta sisältöä saadaan palveluille käyttäjiä. Käyttäjien
määrä taas innostaa mainostajia ostamaan mainospaikkoja palveluista. Näin saadaan
taloudelliset edellytykset luoda yhä parempia palveluita ja ostaa yhä laadukkaampaa ja
kattavampaa sisältöä.
15. 2 Sonera MediaNet -tuotteet
4
OSP:n koostama sisältö ei välttämättä ole tarjolla ainoastaan kyseisen OSP:n kautta
Internetiin yhteydessä oleville, vaan myös muille Internetin käyttäjille. Tällöin
mahdollinen yleisö sisällölle on huomattavasti suurempi. Tavoitteena on, että käyttäjät
aloittaisivat WWW-selailunsa juuri kyseisen OSP:n koostamista sivuista. Tällaista
WWW-kokonaisuutta, josta käyttäjä aloittaa selailun ja jonne hän palaa aina uudelleen
kutsutaan portaaliksi (engl. portal).
Sisältö portaaliin hankitaan yleensä muualta. Tyypillisesti portaaleissa on jäsenneltynä
tietoa tekstilinkeillä aihealueittain. Tällaisesta hyvä esimerkki on America Onlinen
(www.aol.com) etusivu, josta löytyy kuva liitteestä I. Lisäksi tarjolla on ajankohtaista
tietoa kuten uutisia, säätiedotuksia ja pörssikursseja. Portaaleissa on usein myös muita
sovelluksia, kuten WWW-pohjainen sähköposti, kauppapaikka, keskustelupalstoja,
ilmoitustauluja ja yhteisöjä.
Sisältöpalveluiden käyttäjiltä voidaan vaatia rekisteröitymistä, jolloin käyttäjien seuranta
on varsin helppoa. Näin saadaan tarkat tilastot siitä millaiset käyttäjät käyttävät mitäkin
palvelua. Tämä on mainostajien kannalta mielenkiintoista tietoa, koska mainosten
kohdentaminen oikeille ihmisille on täten varsin helppoa. Myös palveluita voidaan
muokata asiakaskohtaisesti rekisterin perusteella.
Käyttäjälle tarjotaan usein mahdollisuus muokata aloitussivua. Sivulle voidaan valita
esimerkiksi pörssikursseja, tietyn kaupungin säätiedotus tai vaikka tietyn uutistoimiston
uutisia. Eräs tällainen on Exciten (www.excite.com) asiakaskohtainen aloitussivu, josta on
kuva liitteessä I.
Tulevaisuudessa yhä useammat käyttäjät omistavat nopean Internet-yhteyden, ja niinpä
multimedian välittämisen tekniset vaikeudet helpottuvat. Tammikuussa 1999 muutamat
suuret yhdysvaltalaiset portaalit ilmoittivat julkaisevansa oman version nopeille
yhteyksille [Ka99]. Nopeat yhteydet mahdollistavat huomattavasti monimuotoisemman
sisällön tarjoamisen.
16. 2 Sonera MediaNet -tuotteet
5
Sonera on Suomen johtava Internet-yhteyksien tarjoaja. Soneran iNET Keskuskatu
(www.inet.fi) on Suomen suosituin WWW-palvelu [Ta99b]. Johtavan aseman säilyminen
ei kuitenkaan ole selviö, vaan asiakkaille tarjottavia palveluja ja sisältöä on jatkuvasti
parannettava.
2.2 Multimedia Internetissä
Multimedian välittäminen Internetissä voidaan katsoa tietokone-, tietoliikenne- ja
medialiiketoiminnan yhdistelmäksi. Multimedian välittäminen verkossa vaatii kaikkien
näiden osa-alueiden yhteistyötä. Tämä yhdistelmä on mielenkiintoinen, sillä tällä uudella
liiketoiminnalla on mahdollisuus olla varsin merkittävä taloudellisesti. Tätä asiaa on
havainnollistettu kuvassa 2-1. [He98]
Multimedian välittäminen Internetissä on hankalaa, sillä multimediaa sisältävät tiedostot
ovat isoja. Tämä aiheuttaa muutamia teknisiä vaatimuksia. Multimediamateriaali tulee
muuntaa sellaiseen muotoon, että se pystytään välittämään käytössä olevan
verkkokapasiteetin puitteissa parhaalla mahdollisella laadulla. Loppukäyttäjällä on
Kuva 2-1 Tietoliikennetoiminnan siirtyminen kohden multimediaa luo liiketoiminnalle lisäarvoa [He98].
Tietokone
13 miljardia mk
1996
Media
16 miljardia mk
1996
Multimedia
Tietoliikenne
10 miljardia mk
1996
17. 2 Sonera MediaNet -tuotteet
6
mahdollisesti käytössään hidas modeemiyhteys tai hänellä voi olla käytössään nopea
lähiverkko. Samaa sisältöä pitäisi pystyä katsomaan yhteyden nopeudesta riippumatta.
Tähän kehitetään jatkuvasti uusia pakkausmenetelmiä, joiden oikea valinta vaatii
asiantuntemusta.
Multimediamateriaalin tulee myös sijaita sellaisella palvelimella, jonka resurssit
kykenevät palvelemaan lukuisia yhtäaikaisia käyttäjiä. Samoin palvelimen tulisi olla
ympäri vuorokauden käytettävissä. Multimediamateriaali vaatii myös paljon
tallennuskapasiteettia.
Multimediaa välitetään Internetissä kahdella toisistaan selvästi poikkeavalla tavalla.
Perinteinen tapa on siirtää multimediaa sisältävä tiedosto kokonaisuudessaan ensin
palvelimelta loppukäyttäjän tietokoneen kovalevylle. Tämän jälkeen tiedosto voidaan
soittaa mediasoittimella.
Toinen tapa on käyttää striimaavaa tekniikkaa. Tämä tarkoittaa sitä, että
multimediamateriaali soitetaan mediasoittimella sitä mukaa kun se siirtyy palvelimelta.
Striimauksesta on se hyöty, että soittaminen voidaan aloittaa välittömästi loppukäyttäjän
esitettyä pyynnön palvelimelle. Haittapuolena on se, että varsinkin modeemiyhteyksillä
multimediamateriaalin toiston taso laskee melko alhaiseksi, koska toistossa voidaan
käyttää vain yhteyden sallimia bittinopeuksia.
Ei-striimaavaa teknologiaa käytettäessä soiton alkamiseen tulee viive materiaalin
siirtyessä kovalevylle. Tätä teknologiaa kannattaa kuitenkin käyttää, mikäli laatu on
ehdottoman tärkeää, tai tilanteessa, jossa käyttäjällä on nopea, mutta aikaperusteisesti
laskutettu yhteys. Multimediamateriaalista syntyy kopio loppukäyttäjän kovalevylle.
Niinpä käyttäjä voi halutessaan katsella ja kuunnella materiaalia useaan kertaan. Ei-
striimaavaa teknologiaa käytettäessä tekijänoikeuskysymykset ovat hankalampia kuin
striimauksessa.
18. 2 Sonera MediaNet -tuotteet
7
2.3 Sonera MediaNet -tuoteryhmä
Sonera MediaNet -tuoteryhmän tuotteet on suunnattu sisällöntuottajille. Ne mahdollistavat
multimediasisällön hallinnan, muokkaamisen, jakelun ja käyttötilastoinnin Internetissä.
Sisällöntuottajat voivat tarjota sekä tallenteita että reaaliaikaisia tapahtumia. Mahdollisia
loppukäyttäjiä ovat kaikki Internetin käyttäjät.
Tuotteita tällä hetkellä ovat Sonera MediaNet On-Demand ja Sonera MediaNet Live.
Pilottivaiheessa ovat Tampere Media City, Sonera MediaNet Community ja Sonera Voice
Hotel.
Sonera MediaNet On-Demand
Sonera MediaNet On-Demand helpottaa multimediatallenteiden levittämistä tietoverkossa.
Kuvassa 2-2 on esitetty sisällöntuottajan ja loppukäyttäjän roolit palvelussa.
Sisällöntuottaja toimittaa materiaalin Soneran mediatuotantoon joko analogisessa
muodossa tai valmiiksi digitoituna verkon välityksellä suoraan MediaNet-järjestelmään.
MediaNet-palvelimella lähdemateriaali muunnetaan sopivaan muotoon ja siirretään
sisältöpalvelimelle, josta loppukäyttäjä katsoo sitä loppukäyttäjäohjelman avulla.
MediaNet-järjestelmä tarjoaa sisällöntuottajalle työkalut materiaalin siirtämiseen
järjestelmään ja jo järjestelmässä olevan materiaalin seurantaan ja hallintaan.
Sisällöntuottajan näkökulmasta digitoitu lähdemateriaali muuntuu MediaNet-
järjestelmässä muutamaksi URL-osoitteeksi, joista materiaali on katsottavissa. Tämän
jälkeen sisällöntuottaja voi sisällyttää linkin omille HTML-sivuillensa. Loppukäyttäjä ei
välttämättä havaitse ollenkaan, että materiaali tuleekin MediaNet-sisältöpalvelimelta. Tätä
ominaisuutta kutsutaan palvelun läpinäkyvyydeksi. Sisällöntuottaja saa myös käyttöönsä
tilastoja katsotusta materiaalista.
On-Demand -palvelun hyöty sisällöntuottajalle on se, että sisällöntuottajan ei itse tarvitse
hankkia ohjelmistoja, joilla materiaali muunnetaan sopivaan muotoon. Sisällöntuottajalla
ei tarvitse olla myöskään tietämystä siitä, mihin muotoon materiaali kannattaa muuntaa.
19. 2 Sonera MediaNet -tuotteet
8
Valmis materiaali sijaitsee suorituskykyisellä palvelimella, jolta on riittävä
tietoliikenneyhteys Internetiin. Näin mediamateriaali siirtyy loppukäyttäjälle
mahdollisimman nopeasti kaikkina vuorokaudenaikoina.
Sonera MediaNet Live
Sonera MediaNet Live -palvelun avulla voidaan audio- ja videomateriaalia toimittaa
reaaliaikaisesti Internetiin. Sovelluskohteet jakautuvat kahteen luokkaan, jatkuvat
lähetykset sekä tapahtumat. Jatkuvat lähetykset soveltuvat esimerkiksi radio- ja TV-
kanaville. Tapahtuma voi taas olla vaikkapa konsertti tai lehdistötilaisuus. Sisällöntuottaja
saa URL-osoitteen, josta lähetystä voi seurata. Loppukäyttäjän kannalta Live-lähetyksen
seuraaminen on täysin samanlaista kuin On-Demand -sisällön katsominen.
Tampere Media City ja MediaNet Community
Tampere Media City (TMC) on digitaalinen yhteisö, joka esittelee Pirkanmaan alueen
digitaalisen median osaajia Internetissä. Yhteisön jäsenet luovat palveluun kuuluvalla
asiakasohjelmalla itselleen WWW-sivuston. Luoduista sivustoista muodostuu yhtenäinen
Kuva 2-2 On-Demand -tuote yksinkertaistettuna.
Sisällöntuottaja
- Yritys
-Yhteisö
- Yksityinen
henkilö
Loppukäyttäjä
- Internetin
käyttäjä
Käyttäjäpalaute
Pyyntö
MediaNet-
palvelimet
Käyttötilastot
Hyperlinkit
Käsittelemätön
sisältö
Käsitelty
sisältö
20. 2 Sonera MediaNet -tuotteet
9
kokonaisuus, joka löytyy yhdestä osoitteesta. Näin yrityksillä ja oppilaitoksilla on
mahdollisuus markkinoida tuotteitaan ja osaamistaan. TMC:n tarkoitus on luoda
kaupallisia yhteyksiä myös ulkomaisten sidosryhmien ja pirkanmaalaisten digitaalista
mediaa tuottavien yritysten sekä yhteisöjen välille.
Teknisessä toteutuksessa on yritetty saada järjestelmä mahdollisimman
helppokäyttöiseksi. Asiakasohjelmalla luodaan rakenteinen dokumentti, johon valitaan
erikseen jokin taittomalleista. Näin siis sivuston asiasisältö ja ulkoasu on erotettu
toisistaan. Sivustot voivat sisältää tekstiä, kuvaa, ääntä ja videota. TMC on rakennettu
sisällönhallintajärjestelmän päälle.
TMC-palvelun koordinaattori on Tampereen seudun osaamiskeskus ja tekninen toteuttaja
Sonera Oy. Osa toteutuksesta teetettiin alihankintana Mediayhtiö Sansibar Oy:ssä.
Tampere Media Cityä luotaessa syntyi myös runko yleiselle digitaalisen yhteisön
palvelukonseptille, jota kutsutaan MediaNet Communityksi. Ideana on tehdä tuote, jonka
avulla uuden digitaalisen yhteisön perustaminen olisi mahdollisimman helppoa. MediaNet
Communityn toiminta on esitetty kuvassa 2-3.
Kuva 2-3 Community-tuote yksinkertaistettuna.
Sisällöntuottaja
- Yhteisön jäsen
Loppukäyttäjä
- Internetin
käyttäjä
Käyttäjäpalaute
Pyyntö
MediaNet-
palvelimet
Käyttötilastot
- Teksti
- Kuvat
- Audio
- Video
Generoidut
WWW-sivut
21. 10
3 Toisen sukupolven MediaNet
Ensimmäinen MediaNet-toteutus syntyi vähitellen tutkimustyön ja pilottivaiheen kautta
kaupalliseksi tuotteeksi. Ohjelmakokonaisuus koostui monista eri aikoina tehdyistä
ohjelman osista. Syntymistavasta johtuen ohjelmiston ylläpidettävyys ja laajennettavuus
olivat huonoja. Järjestelmä oli myös liian sidottu tietyntyyppisen multimediamateriaalin
käsittelyyn. Laitteistojen ja ulkopuolisten ohjelmistojen kehittyessä oli tullut
mahdolliseksi käsitellä monimuotoisempia materiaalikokonaisuuksia, mitä mahdollisuutta
haluttiin hyödyntää. Sisällöistä ei myöskään ollut olemassa keskitettyä tietokantaa, vaan
jokaisen medianimikkeen ominaisuuksia ja sisältöä kuvaavat lisätiedot olivat omassa
ASCII-tiedostossaan. Tämä tiedosto sijaitsi järjestelmän WWW-palvelimella. Edellä
mainittujen puutteellisuuksien ja tarpeiden seurauksena alettiin suunnitella toisen
sukupolven MediaNet-järjestelmää.
3.1 Yleiskäyttöinen alusta
MediaNet-tuoteperheen tuotteet liittyvät siis yleensä tavalla tai toisella multimedian
jakeluun Internetissä. Niinpä oleellinen osa niitä on mediamateriaalia hoitava järjestelmä.
Toisen sukupolven MediaNetin toteutus päätettiinkin aloittaa järjestelmästä, joka huolehtii
mediamateriaalin hallinnasta. Toteutettava järjestelmä nimettiin
sisällönhallintajärjestelmäksi.
Jo projektin alkuvaiheessa oli nähtävissä, että sisällönhallinnan tarpeet tulevat kasvamaan
ajan kuluessa. Uusia ideoita, vaatimuksia ja toiveita tuli esiin tasaisin väliajoin. Tästä
syystä erääksi keskeisistä tavoitteista nousi modulaarisuus. Ideana oli pyrkiä erottamaan
22. 3 Toisen sukupolven MediaNet
11
yleisesti sisällönhallintaan liittyvät tarpeet ja toisaalta haluttavat tuotteet toisistaan. Näin
uudet tuotteet voidaan tulevaisuudessa rakentaa olemassa olevan perustan päälle.
Perustaan tulevaisuudessa mahdollisesti vaadittavat muutokset yritettiin pitää
mahdollisimman vähäisinä. Myös syntyvät tuotteet pyrittiin rakentamaan niin, että niitä
voidaan tarvittaessa käyttää perustana korkeammille tasoille. Tässä vaiheessa päädyttiin
kuvan 3-1 mukaiseen järjestelyyn. Siinä on esitetty tuotteiden ja
sisällönhallintajärjestelmän suhde. Alimmalla tasolla on itse sisällönhallintajärjestelmä,
joka toteutetaan siten, että se voidaan jakaa selkeisiin osiin. Näitä osia sopivasti
yhdistelemällä voidaan rakentaa erilaisia sovelluksia.
Kuvassa 3-1 näkyvät tällä hetkellä sisällönhallintajärjestelmän avulla toteutetut tuotteet.
Näistä MediaNet On-Demand, Live ja Community on toteutettu suoraan
sisällönhallintajärjestelmän päälle. Sen sijaan TMC noudattaa edellä mainittua tuotteen
päälle rakennettua tuotetta eli se siis pohjautuu MediaNet Communityyn.
3.2 Sisällönhallintajärjestelmän liittyminen ympäristöönsä
MediaNetin välityksellä tapahtuvassa multimedian jakelussa on osallisena kolme
osapuolta, sisällöntuottaja, ylläpitäjä ja loppukäyttäjä (kuva 3-2).
Sisällönhallintajärjestelmä tarjoaa sisällöntuottajalle työkalun, jolla hän voi hallita omia
Kuva 3-1 Tuotteiden liittyminen sisällönhallintajärjestelmään.
Community On-Demand Live ...
TMC
Sisällönhallintajärjestelmä
...
23. 3 Toisen sukupolven MediaNet
12
sisältöjään. Samoin ylläpitäjällä on ohjelma, jolla järjestelmää valvotaan ja hallitaan.
Loppukäyttäjä käyttää sisällönhallintajärjestelmää aina jonkin loppukäyttäjäohjelman
kautta. Nämä ohjelmat ovat yleensä kolmansien osapuolien valmistamia. Tällaisia voivat
olla esimerkiksi selaimet tai erilliset mediasoittimet.
3.3 Toiminnalliset tavoitteet
MediaNet-tuotteiden yksi päätavoitteista on madaltaa kynnystä liittää
multimediamateriaalia erilaisiin verkkoon tuotettaviin kokonaisuuksiin. Tarkoituksena on
luoda kokonaisvaltainen ratkaisu, jossa sisällöntuottajan huoleksi jää
yksinkertaisimmillaan ainoastaan materiaalin siirtäminen sisällönhallintajärjestelmään
sekä sisällönhallintajärjestelmän käsittelemän materiaalin käyttäminen osana omia
kokonaisuuksiaan.
3.3.1 Helppokäyttöisyys
Sisällöntuottajan tulee voida mahdollisimman helposti siirtää materiaaliansa
sisällönhallintajärjestelmän käsiteltäväksi. Halutessaan tietyn materiaalin katseltavaksi
Internetiin sisällöntuottaja toimittaa sen aluksi digitaalisessa muodossa
Kuva 3-2 Sisällönhallintajärjestelmän liittyminen ympäristöönsä.
LoppukäyttäjäSisällöntuottaja
Ylläpitäjä
Loppukäyttäjä-
ohjelma
Sisällönhallintajärjestelmä
24. 3 Toisen sukupolven MediaNet
13
sisällönhallintajärjestelmään. Tämän jälkeen tapahtuvasta materiaalin käsittelystä
sisällöntuottajan ei välttämättä tarvitse välittää, mutta kuitenkin pyritään siihen, että
käsittelyn kulkua voidaan haluttaessa myös seurata. Käsittelyn jälkeen sisällöntuottajalle
lähetetään sähköpostin välityksellä tieto siitä, että materiaali on valmista verkossa
jaettavaksi sekä ne URL-osoitteet, joista materiaali on katseltavissa. Näitä URL-osoitteita
sisällöntuottaja voi sitten käyttää osana omia kokonaisuuksiaan. Uuden materiaalin
siirtämistä ja järjestelmään jo siirretyn materiaalin käsittelemistä varten sisällöntuottajalle
luodaan erillinen asiakasohjelma.
Järjestelmää käyttävät hyvin erilaiset sisällöntuottajat, joiden tarpeissa on suuria
eroavaisuuksia. Tämän lisäksi eri sisällöntuottajat ovat mahdollisesti myös eri sovellusten
käyttäjiä. Asiakasohjelman tulee pystyä tarjoamaan erilaisille sisällöntuottajaryhmille
erikseen valitut toiminnot ja käyttömahdollisuudet.
Asiakasohjelma pyritään toteuttamaan siten, että kaikille sisällöntuottajille voidaan jakaa
tämä sama ohjelma, joka sitten mukautetaan käyttäjätietojen avulla halutun kaltaiseksi.
Sisällöntuottajalle näytetään vain ne ominaisuudet, joiden käytöstä on sovittu. Näin
voidaan esimerkiksi antaa sisällöntuottajalle mahdollisuus ostaa asiakasohjelmaan uusia
lisäominaisuuksia vain kulloisenkin tarpeen mukaisesti. Asetukset haetaan palvelimelta
järjestelmään sisäänkirjoittautumisen yhteydessä. Näin myös mahdollistetaan erilaisten
toimintojen ja ominaisuuksien dynaaminen lisääminen sisällöntuottajan
asiakasohjelmaan. Käytännössä tämän kaltaista käyttäjään perustuvaa dynaamista
asiakasohjelman muokkausta ei kuitenkaan aluksi suunnitella erityisen
yksityiskohtaisesti, vaan siihen ainoastaan varataan mahdollisuus mikäli
käyttökokemukset osoittavat sen tarpeelliseksi.
Asiakasohjelman mukautuvuuden avulla pyritään myös siihen, että eri MediaNet-
sovellukset voivat käyttää samaa ohjelmaa. Esimerkiksi On-Demand- ja TMC-
sisällöntuottajille voidaan jakaa samaa asiakasohjelmaa, jonka toiminnot mukautetaan
kulloinkin käytettävän sovelluksen mukaisiksi.
25. 3 Toisen sukupolven MediaNet
14
3.3.2 Materiaalin jakelu
Järjestelmän tehtävänä on hoitaa materiaalin muuntaminen Internetissä helposti
levitettävissä olevaan muotoon, kulloinkin käytössä olevan tietoliikenneyhteyden mukaan
skaalautuvaksi. Käytännössä tämä tarkoittaa sitä, että materiaalista tehdään valmiiksi
tietyille kiinteille nopeuksille sovitettuja versioita, joista voidaan valita sopivin.
Käsiteltyään tiedostoja sisällönhallintajärjestelmä siirtää mediamateriaalin palvelimille
odottamaan loppukäyttäjää. Järjestelmä tarjoaa myös säilytystilan materiaalille ja
loppukäyttäjän ohjelmille rajapinnan, jonka avulla tätä materiaalia voidaan katsella.
Sisältöpalvelimet voidaan helposti sijoittaa riittävän nopeiden verkkoyhteyksien taakse,
mikä ei yleensä ole yksittäiselle sisällöntuottajalle taloudellisesti kannattavaa. Koska
sisällöntuottajan materiaalin toimitus sisällönhallintajärjestelmään on kertaluontoinen
toimenpide, sisällöntuottajalle riittävät suhteellisen hitaat yhteydet. Tämä säästää
kustannuksia.
3.3.3 Loppukäyttäjäryhmät
Materiaalille tulee voida määrittää myös erilaisia katselurajoituksia. Näiden avulla
voidaan määrittää erillisiä ryhmiä, joilla on katseluoikeus materiaaliin. Nämä rajoitukset
palvelevat useita erillisiä tarkoituksia. Rajoitusten avulla voidaan toteuttaa myös
maksullinen materiaali. Haluttuun materiaaliin voidaan antaa katseluoikeus ainoastaan
maksaville loppukäyttäjille. Katselurajoitusten valvomisesta vastaavat materiaalin
jakelujärjestelmät eli käytännössä sisältöpalvelimet.
Katselurajoitusten ansiosta yritykset voivat käyttää sisällönhallintajärjestelmää yrityksen
sisäisen tai muutoin salaisen materiaalin säilyttämiseen. Materiaalille voidaan antaa
käyttöoikeus ainoastaan kyseisen yrityksen työntekijöille. Tästä on se etu, että samaa
fyysistä sisällönhallintajärjestelmää voidaan käyttää sekä yleisessä jakelussa olevan
materiaalin jakeluun että täydentämään yritysten intranet-ratkaisuja. Näin fyysistä
sisällönhallintajärjestelmää ei tarvitse asentaa yritysten omiin tiloihin. Katselurajoitusten
avulla voidaan toteuttaa myös suljetut käyttäjäryhmät.
26. 3 Toisen sukupolven MediaNet
15
3.3.4 Raportointi ja laskutus
Raportointi on tärkeä osa verkossa tapahtuvaa multimedian jakelua. Sisällöntuottajat
haluavat luonnollisesti palautetta siitä, kuinka paljon mitäkin heidän materiaaleistaan on
katseltu. Tämän tiedon avulla he voivat kehittää omia sisältöjään kiinnostavammiksi
loppukäyttäjille.
Laskutusmahdollisuus kuuluu oleellisena osana multimediamateriaalin välittämiseen
Internetissä. Laskutus jakautuu kahteen eri osa-alueeseen eli loppukäyttäjän ja
sisällöntuottajan laskuttamiseen. Sisällöntuottajia pitää tarvittaessa voida laskuttaa heidän
käyttämästään kapasiteetista, joten järjestelmästä tulee saada tietoa jokaisen
sisällöntuottajan sisällön määrästä sisällönhallintajärjestelmässä. Edellisen lisäksi
sisällöntuottajille tulee mahdollistaa heidän asiakkaidensa eli loppukäyttäjien laskutus.
Sisällönhallintajärjestelmän avulla pitää siis voida asettaa materiaalille hintaparametreja.
Hinnoittelumahdollisuudesta puolestaan seuraa se, että järjestelmän tulee mahdollistaa
loppukäyttäjien sisällön katselumahdollisuuden rajaaminen, jolloin ainoastaan maksavat
asiakkaat saavat oikeuden tietyn materiaalin katsomiseen.
3.3.5 Tietojen säilytys
Varsinaista sisältöä säilytetään ainoastaan sitä jakelevilla palvelimilla eli sen säilytys on
hajautettu eri puolille sisällönhallintajärjestelmää. Kaikki muu tieto pyritään säilyttämään
keskitetysti yhdessä tai useammassa tietokannassa. Järjestelmän tietokantoja voivat
tarvittaessa käyttää myös sellaiset MediaNet-tuotteet, joiden ei itse tarvitse käsitellä
varsinaisia mediatiedostoja. Tämä on otettava huomioon tietokannan rakennetta
suunniteltaessa. Esimerkiksi asiakastietokannasta voidaan etsiä tietoa asiakkaista ilman,
että ollaan kiinnostuneita kyseisen asiakkaan mediatiedostoista. Tietokannan avulla
huolehditaan myös sisällöntuottajien tunnistamisesta, todentamisesta ja käyttäjäkohtaisten
tietojen hallinnasta.
27. 3 Toisen sukupolven MediaNet
16
3.4 Tekniset tavoitteet
Keskeisimpänä teknisenä tavoitteena uudelle järjestelmälle on yhtenäisen ohjelmiston
aikaansaaminen. Järjestelmä toteutetaan ohjelmistoprojektina, jonka tarkoituksena on
tuottaa dokumentoitu ja helposti ylläpidettävä kokonaisuus. Keskeisenä tavoitteena on
myös tietokantaan perustuva keskitetty tiedonhallinta.
3.4.1 Ympäristöriippumattomuus
Sisällönhallintajärjestelmän tulee toimia mahdollisimman monissa erityyppisissä
ympäristöissä. Tämä tarkoittaa sitä, että järjestelmän eri osien suunnittelussa ei nojauduta
minkään laite- tai käyttöjärjestelmäympäristön omiin erityispiirteisiin. Edellä mainitusta
joudutaan kuitenkin poikkeamaan joidenkin järjestelmän apuna käytettävien kolmansien
osapuolten valmistamien ohjelmistojen ja ohjelmakirjastojen osalta. Näitä ei luonnollisesti
aina ole saatavissa kaikkiin haluttuihin ympäristöihin. Erityisesti erilaisten
tiedostoformaattien välisten muunnosten kohdalla joudutaan tukeutumaan ulkopuolisiin
tuotteisiin. Varsinaisessa toteutuksessa eri järjestelmien erityispiirteitä pyritään toki
mahdollisuuksien rajoissa ottamaan huomioon. Näin voidaan helpottaa toteutusta ja
parantaa suorituskykyä. Järjestelmän sisältämien palvelimien osalta pyritään käytännössä
ottamaan huomioon Windows NT-, Linux- ja Solaris-käyttöjärjestelmien piirteitä.
Teoriassa jokainen yksittäinen sisällönhallintajärjestelmän osa voi sijaita eri laite- ja
käyttöjärjestelmäympäristössä.
Ympäristöriippumattomuudesta seuraa useita etuja. Kun sisällönhallintajärjestelmästä
asennetaan uusi kopio, voidaan tarvittaessa hyödyntää jo olemassa olevaa laite- ja
käyttöjärjestelmäympäristöä. Tämä tietysti vaatii, että tietyt tehokkuuskriteerit
saavutetaan. Järjestelmä voidaan siirtää uusille tehokkaammille tai halvemmille
laitealustoille näiden ilmestyessä markkinoille.
Selkeä ympäristöriippumattomuudella saavutettu etu on myös mahdollisuus tarvittaessa
hyödyntää monia hyvin erilaisia kolmansien osapuolten toimittamia ohjelmia ja
ohjelmakirjastoja järjestelmän apuna. Tavoitteena on tukea mahdollisimman monia
28. 3 Toisen sukupolven MediaNet
17
tiedostoformaatteja. Ideaalisessa tilanteessa sisällöntuottajan ei tarvitse lainkaan ajatella,
minkä tyyppistä materiaalia hän sisällönhallintajärjestelmään syöttää, vaan kaikki osataan
muuntaa haluttuihin kohdeformaatteihin.
Uusien tiedostoformaattien ilmestyttyä niitä voidaan alkaa tukea välittömästi
ensimmäisten kaupallisten muunnosohjelmien ilmestyttyä markkinoille riippumatta siitä,
mille alustoille muunnosohjelmat ensimmäisenä julkaistaan. Samoin uusia ja
tehokkaampia muunnosohjelmia voidaan ottaa tarvittaessa heti käyttöön osaksi
järjestelmää. Olemassa oleva laitekanta voidaan myös näin haluttaessa lähes
kokonaisuudessaan hyödyntää, mikäli tehokkuuskriteerit sen sallivat.
3.4.2 Hajautettavuus ja skaalautuvuus
Sisällönhallintajärjestelmän suunnittelun eräänä peruslähtökohtana on voimakas
hajautettavuus. Järjestelmä pyritään suunnittelemaan siten, että se koostuu useista
erillisistä osasista, joista jokainen hoitaa ainoastaan yhtä juuri sille ominaista tehtävää.
Järjestelmän jaossa tulee kuitenkin huomioida se, ettei näiden osien välisen keskinäisen
kommunikaation tuottaman ylimääräisen verkkoliikenteen osuus kasva kohtuuttomaksi
suoritusrasitteeksi. Järjestelmä on tarvittaessa voitava hajauttaa maailmanlaajuiseksi.
Sisällöntuottajalla pitää olla mahdollisuus siirtää materiaaliaan samanaikaisesti eri maissa
sijaitseville sisältöpalvelimille.
Järjestelmän pienintä yksikköä kutsutaan palveluksi. Jokaisen palvelun tulee voida sijaita
omalla tietokoneella. Eri koneilla sijaitsevien palveluiden on kyettävä vaihtamaan tietoa
toistensa kanssa ainakin IP-protokollan välityksellä. Tämän lisäksi voidaan tehokkuuden
parantamiseksi käyttää myös muita mahdollisia tiedonvälitysmenetelmiä, kuten
esimerkiksi jaettuja levyjä.
Sisällönhallintajärjestelmä sopii luonteeltaan hyvin hajautettavaksi. Järjestelmä suorittaa
ylemmällä tasolla useita toisiinsa nähden rinnakkaisia toimintaketjuja. Esimerkkinä
voidaan mainita tilanne, jossa moni eri sisällöntuottaja siirtää samanaikaisesti tiedostojaan
sisällönhallintajärjestelmään käsiteltäväksi ja siirrettäväksi sisältöpalvelimille. Eri
29. 3 Toisen sukupolven MediaNet
18
sisällöntuottajilta tulevat tiedostojen siirrot ja muunnokset eivät riipu toisistaan mitenkään.
Tarkasteltaessa yhtä yksittäistä siirtoprosessia voidaan havaita, että sekin jakautuu
selkeisiin osiin. Tällaisen ketjun voi muodostaa vaikka siirto sisällönhallintajärjestelmän
tiedostopuskuriin odottamaan toimenpiteitä, toimenpideketjun muodostaminen, muunnos
ja siirto sisältöpalvelimelle. Nämä osat tulee luonnollisesti suorittaa ajallisesti oikeassa
järjestyksessä, mutta osien suoritusajankohdalla ei itsessään ole merkitystä.
Järjestelmä voidaan siis rakentaa siten, että tapahtumat seuraavat toisiaan selkeinä osina.
Jokaisen toteutuneen osan jälkeen tutkitaan, mitä seuraavaksi tulee tehdä ja etsitään tämän
toiminnan toteuttava palvelu. Mikäli sopivaa palvelua ei ole vapaana, voidaan jäädä
odottamaan sellaisen vapautumista. Sisällönhallintajärjestelmän ei tarvitse tässä vaiheessa
toteuttaa mitään erikoista täydellisen reiluuden takaavaa jonotusmenetelmää. Järjestelmä
luottaa siihen, että pyynnöt tulevat toisiinsa nähden siinä määrin satunnaisesti, että
jokainen pyytäjä saa jossain vaiheessa vuoron. Järjestelmän ylläpitäjälle jätetään vastuu
siitä, että järjestelmässä on toisiinsa nähden sopiva määrä eri tyyppisiä palveluita, jotta
suuresti hidastavia osia ei pääse syntymään.
Teoriassa olisi mahdollista tehdä järjestelmä myös siten, että jos yksikään järjestelmän
palveluista ei pysty toteuttamaan haluttua palvelua, jäädään odottamaan tällaisen
ilmestymistä. Asiasta voitaisiin periaatteessa myös ilmoittaa samalla järjestelmän
ylläpitäjälle. Esimerkkinä voidaan mainita tiedoston muuntaminen muotoon, jota yksikään
järjestelmän palveluista ei tunne. Tämän kaltaisia ominaisuuksia ei kuitenkaan toteuteta
ainakaan järjestelmän tähän versioon.
Sisällönhallintajärjestelmän hajautettavuudella pyritään osaltaan parantamaan järjestelmän
skaalautuvuutta. Kuten jo aiemmin on tullut ilmi, voidaan järjestelmän suorituskykyä
parantaa kasvattamalla laitteiston tehoa. Suorituskykyä voidaan kasvattaa myös
hajautettavuutta hyväksikäyttäen. Olemassa olevien palveluiden rinnalle käynnistetään
uusia palveluita suorittamaan samoja tehtäviä. Tästä on etuna myös se, ettei järjestelmää
tarvitse ajaa alas päivitystä varten, vaan päivitys voidaan suorittaa järjestelmän toimiessa
muilta osin normaalisti. Lisättäessä uusia palveluita on kuitenkin aina muistettava pitää
30. 3 Toisen sukupolven MediaNet
19
järjestelmän tarjoamien palveluiden suhteet järkevinä toisiinsa nähden, jotta voidaan
välttää eri palveluiden ruuhkaantumista.
Hajauttaminen pyritään toteuttamaan myös siten, että järjestelmään saadaan
mahdollisimman selkeät ja laajat rajapinnat erilaisiin kolmansien osapuolien toimittamiin
muunnos- ja palvelinohjelmistoihin. Tavoitteena on, että järjestelmä pystyy tarvittaessa
hyödyntämään kaikkia olemassa olevia komentorivipohjaisia muunnosohjelmia.
3.4.3 Toimintavarmuus ja turvallisuus
Sisällönhallintajärjestelmä ei ole niin kriittinen ohjelmisto, että sille pitäisi määritellä
kiinteä suurin sallittu käyttökatkosaika tai muu tarkka toimintavarmuusehto.
Sisällönhallintajärjestelmän hetkellisestä toimimattomuudesta johtuvat menetykset ovat
lähinnä taloudellisia. Tämä on kuitenkin luonnollisesti riittävä syy pyrkiä mahdollisimman
lyhyisiin käyttökatkosaikoihin. Pääsääntöisesti pyritään siihen, että järjestelmä yrittää
toipua virheistä itse.
Järjestelmä pyritään toteuttamaan siten, ettei yksikään yksittäinen palvelu itsessään ole
korvaamaton. Tämä on mahdollista käynnistämällä samoja toimintoja varten useita
erillisiä palveluita. Tällöin saavutetaan tilanne, jossa yhden yksittäisen palvelun
ajautuminen toimintakyvyttömään tilaan ei lamauta koko järjestelmää, vaan sille löytyy
aina jokin toimintakuntoinen korvaava palvelu. Yksittäisen palvelun ei yleensä tarvitse
pystyä toipumaan virhetilanteista. Toipumisasioita on toki syytä harkita vielä
palvelukohtaisestikin.
Sisältöpalvelimet muodostavat toimintavarmuuden osalta oman erityisryhmänsä, koska ne
näkyvät loppukäyttäjille. Varmatoimiset sisältöpalvelimet ovat tärkeä edellytys
sisällöntuottajien saamiseksi järjestelmän piiriin. Tähän voidaan vaikuttaa lähinnä
arvioimalla erilaisia saatavilla olevia palvelimia ja valitsemalla saatujen tulosten
perusteella käyttöön otettavat.
31. 3 Toisen sukupolven MediaNet
20
Sisällönhallintajärjestelmään ei toteuteta erillisiä varmuuskopiointimekanismeja.
Tarvittaessa varmuuskopiointi hoidetaan ulkoisia järjestelmiä hyväksikäyttäen. Järjestelmä
suunnitellaan siten, että ulkoinen varmuuskopiointi on mahdollista. Minimivaatimuksena
tulee kyetä varmuuskopioimaan sisältöpalvelinten sisältö ja tietokanta.
Sisällönhallintajärjestelmän toteutuksessa pitää ottaa huomioon useita erilaisia ja
eritasoisia turvallisuusseikkoja. Sisällöntuottajille tulee voida antaa riittävät takeet siitä,
että asiattomat tahot eivät pääse tutkimaan järjestelmän sisältämää materiaalia. Tämä on
erityisen tärkeää silloin, kun järjestelmää käytetään yrityksen sisäisen materiaalin
säilyttämiseen. Myös maksullista aineistoa voidaan yrittää käyttää ilmaiseksi. Joidenkin
sisältötyyppien osalta on myös määritelty, että niitä voi katsella vain striimattuina eli
suoraan reaaliajassa verkosta. Loppukäyttäjällä ei ole oikeutta tallentaa näitä tiedostoja
omalle kovalevylleen.
Ehkä todennäköisin kohta, josta mahdollisia murtautumisyrityksiä järjestelmään tullaan
tekemään, ovat erilaiset sisältöpalvelimet. Näille palvelimille on luonnollisesti oltava
yhteys Internetistä, joten niitä vastaan on erityisen helppo tehdä hyökkäyksiä. Erityisesti
loppukäyttäjäohjelmille näkyvät rajapinnat on toteutettava huolellisesti. Nämä rajapinnat
muodostuvat suurimmaksi osaksi kolmansilta osapuolilta tulevista ohjelmistoista, joten
sisältöpalvelimien toteutusvaiheessa potentiaaliseksi ongelmaksi muodostuu lähinnä
näiden ohjelmistojen tarkoituksenmukainen asentaminen.
Sisällönhallintajärjestelmä sisältää Internetiin useita liityntäkohtia, joihin kohdistuu
potentiaalisia uhkia. Sisällönhallintajärjestelmän palvelut muodostavat hyvin kiinteän
kokonaisuuden, joiden ei tarvitse kommunikoida muiden osien kanssa muutoin kuin
muutamien rajapintojen kautta. Näitä ovat asiakasohjelma-, ylläpitäjä- ja
sisältöpalvelinrajapinnat. Tästä johtuen voidaan luottaa siihen, että nämä palvelut voidaan
sijoittaa suojattujen verkkoyhteyksien taakse. Tulevaisuutta varten järjestelmä toteutetaan
kuitenkin niin, että tarvittaessa kaikki tiedonsiirto voidaan helposti muuttaa salatuksi.
Edellä mainituista rajapinnoista haavoittuvin on asiakasohjelmarajapinta. Tämän
rajapinnan kautta on mahdollisuus käsitellä kaikkea järjestelmään siirrettyä sisältöä.
32. 3 Toisen sukupolven MediaNet
21
Käyttäjän autentikointi on siis tehtävä huolella. Autentikoinnissa tulee käyttää kryptaavaa
eli salaavaa protokollaa.
3.4.4 Ylläpidettävyys ja käytettävyys
Järjestelmästä pyritään tekemään mahdollisimman ylläpidettävä. Ylläpidettävyyden
parantaminen oli yksi niistä perussyistä, joiden takia olemassa olevia järjestelmiä haluttiin
kehittää. Ylläpidettävyyttä varten järjestelmästä kirjoitetaan kattava dokumentointi.
Sisällöntuottajan kannalta järjestelmän tulee olla mahdollisimman helppokäyttöinen ja
toimintavarma. Järjestelmän käytettävyyden kannalta tämä tarkoittaa sitä, että suurin
huomio kohdistuu asiakasohjelmaan. Sisällönhallintajärjestelmän palvelimille ja ylläpito-
ohjelmalle ei aseteta erityisiä käytettävyysvaatimuksia.
Multimedian levittäminen verkossa on tällä hetkellä voimakkaasti kehittyvä tietotekniikan
osa-alue. Tästä johtuen sisällönhallintajärjestelmä pyritään toteuttamaan niin, että
päivittäminen on tulevaisuudessa helppoa. Modulaarinen rakenne tukee selvästi tätä
pyrkimystä. Yksittäinen palvelu voidaan tarvittaessa vaihtaa toiseen saman rajapinnan
toteuttavaan versioon. Järjestelmässä voidaan samanaikaisesti käyttää myös useita
erilaisia toteutuksia samasta palvelusta.
3.4.5 Versionhallinta
Sisällönhallintajärjestelmää joudutaan todennäköisesti päivittämään suhteellisen paljon.
Tästä syystä versionhallinnan järkevä toteuttaminen on tärkeätä. Perusperiaatteena
pyritään siihen, että erilaisia versioita olisi käytössä mahdollisimman vähän.
Versionhallinnan yksinkertaistamiseksi toteutetaan sekä asiakasohjelmaan että ylläpito-
ohjelmaan automaattinen päivitysmekanismi. Kun sisällöntuottaja ottaa yhteyden
sisällönhallintaytimeen, tarkistetaan, onko asiakasohjelmasta uudempaa versiota. Mikäli
näin on, voidaan suorittaa asiakasohjelman automaattinen päivittäminen.
33. 3 Toisen sukupolven MediaNet
22
Asiakasohjelman päivitysmekanismin ansiosta myös palvelinta voidaan tarvittaessa
helpommin uudistaa. Kaikkia vanhoja käytössä olevia asiakasohjelman versioita varten ei
tarvitse erikseen pitää näiden kanssa yhteensopivia palvelimen osia.
34. 23
4 Toteutusteknologiat
Sisällönhallintajärjestelmä on laaja ohjelmisto. Laajuudesta johtuen ohjelmiston
suunnittelussa pyrittiin siihen, että toteutuksessa hyödynnettäisiin mahdollisimman paljon
valmiita ohjelmakirjastoja, apuohjelmia ja kehitystyökaluja. Kolmannessa luvussa
käsitellyt ohjelmistolle asetetut vaatimukset rajoittavat työkalujen ja toteutusvaihtoehtojen
valintaa. Lisäksi ohjelmointikielen valinta vaikuttaa oleellisesti tehtäviin ratkaisuihin.
Ohjelmiston toteutuksesta voidaan erottaa osia, joihin löytyy useita valmiita ratkaisuja.
Nämä osat ovat ohjelmiston hajautus, käyttöliittymät ja tietokantaliittymä. Järjestelmässä
käytetään myös muita ulkopuolisia ohjelmistoja, jotka eivät varsinaisesti vaikuta
ohjelmiston rakenteeseen.
4.1 Hajautus
Ohjelmiston hajautuksen toteutusta varten tutustuimme kolmeen eri ratkaisuun. Nämä
ovat Sun Microsystemsin Remote Method Invocation (RMI), Object Management
Groupin (OMG) Common Object Request Broker Architecture (CORBA) ja Microsoftin
Distributed Component Object Model (DCOM). Näistä kaksi jälkimmäistä ovat
ohjelmointikielistä riippumattomia ratkaisuja ja RMI puolestaan on rajoittunut vain ja
ainoastaan Java-ohjelmointikieleen. Kaikki ratkaisut ovat ainakin periaatteessa
ympäristöriippumattomia malleja. Niiden käyttö ei esimerkiksi edellytä mitään tiettyä
käyttöjärjestelmää.
35. 4 Toteutusteknologiat
24
4.1.1 Remote Method Invocation
RMI-luokat lisättiin Javan perusluokkiin JDK:n (Java Development Kit) versiossa 1.1.
RMI on saatavissa myös JDK:n versiolle 1.0.2 erillisenä kirjastona. RMI on riippuvainen
useista Javan muista ominaisuuksista, kuten olioiden serialisoinnista, Java-luokkien
binääriyhteensopivuudesta virtuaalikoneiden välillä ja liityntärajapinnoista. RMI:n avulla
Java-ohjelman on mahdollista kutsua eri virtuaalikoneessa sijaitsevien olioiden metodeja
ja muuttaa edellä mainittujen olioiden muuttujia. Virtuaalikoneet voivat sijaita joko
samalla fyysisellä koneella tai eri koneilla, jotka ovat yhteydessä toisiinsa IP-protokollaa
käyttävän tietoverkon avulla. Sovellusohjelmoijalle metodikutsut näyttävät käytännössä
samalta riippumatta siitä, sijaitseeko kutsuttava olio samalla vai eri koneella. [Cu97]
RMI:ssä on suppea URL-pohjainen rekisterijärjestelmä, johon olioviitteitä voidaan
tallentaa. Kullakin oliolla on oma symbolinen nimensä. Olioviitteet tallennetaan rekisteriin
symbolisten nimien kanssa, joten oliot kykenevät löytämään toisensa käyttämällä edellä
mainittuja symbolisia nimiä. Rekisteriä voidaan verrata Internetissä käytettävään
nimipalvelujärjestelmään (Domain Name System, DNS). DNS:ssä käsitellään koneen
nimiä, kun taas RMI:n rekisterissä käsitellään olioiden nimiä.
Sunin pyrkimyksenä on ollut lähentää Javaa ja CORBAa. Tästä on osoituksena se, että
Sunilla on oma toteutus CORBA yhteensopivasta Object Request Brokerista (ORB), joka
tulee JDK:n versiossa 1.2 perusluokkien mukana. Lisäksi tällä hetkellä on jo olemassa
esiversio RMI-IIOP -toteutuksesta, jossa RMI:n oman protokollan asemesta käytetään
OMG:n määrittelemää Internet Inter-ORB Protocol -protokollaa (IIOP). RMI-IIOP:n
ansiosta RMI:tä käyttävät ohjelmat kykenevät kommunikoimaan muilla ohjelmointikielillä
tehtyjen CORBA-olioiden kanssa [Su99].
4.1.2 Common Object Request Broker Architecture
Object Management Group (OMG) on 1989 perustettu kansainvälinen järjestö, jonka
tavoitteena on kehittää oliopohjaisiin hajautettuihin järjestelmiin liittyvää teoriaa ja
käytäntöä. OMG:n toiminnassa on nykyään mukana yli 800 yritystä ja organisaatiota.
36. 4 Toteutusteknologiat
25
OMG:n tavoitteena on vähentää ohjelmistokehityksen monimutkaisuutta ja alentaa
kehityskustannuksia sekä nopeuttaa uusien ohjelmistojen kehitysprosessia. OMG pyrkii
standardoimaan hajautettujen ohjelmistojen kehityksessä käytettäviä menetelmiä.
Object Management Architecture (OMA) on OMG:n määrittelemä viitemalli. OMA on
OMG:n näkemys kokonaisesta hajautetusta järjestelmästä. OMA jakautuu sovellus-,
järjestelmä- ja vertikaalisovellussuuntautuneisiin segmentteihin. Sovellussegmentti
koostuu yleisistä sovellustoiminnoista (engl. Common Facilities), kuten tulostus-,
tietokanta- ja sähköpostitoiminnot. Näiden sovellustoimintojen standardoinnin tavoitteena
on luoda yleiskäyttöisiä ohjelmakomponentteja, joiden toiminnot ovat käyttäjien
muokattavissa tarpeitansa vastaaviksi. Järjestelmäsegmentti sisältää hajautetun
järjestelmän infrastruktuurin muodostavat komponentit. Näitä ovat ORB ja oliopalvelut
(engl. Object Services). Vertikaalisovellukset ovat jonkin tietyn sovellusalueen käyttöön
tarkoitettuja rajapintoja. Esimerkiksi lääketiede muodostaa oman
vertikaalisovellusalueensa. [OMG99]
OMA koostuu viidestä komponentista, jotka ovat Object Request Broker (ORB), Object
Services, Common Facilities, Domain Interfaces ja Application Objects. Kuvassa 4-1 on
esitetty OMG-viitemalli. Viitemallista on nähtävissä OMAn komponentit ja niiden suhteet
toisiinsa. OMAn selkärankana toimii Object Request Broker (ORB). ORB toimii
välittäjänä hajautetun järjestelmän eri olioiden välillä. Object Services -komponentti
sisältää olioiden elinkaaren hallintaan tarvittavia toimintoja. Kuten edellä todettiin,
Common Facilities -komponentti sisältää rajapintamäärittelyt yleisille
sovellustoiminnoille. Domain Interfaces -komponentti koostuu vertikaalisovellusten
rajapintamäärittelyistä. Application Objects -komponentti koostuu sovellusmäärittelyistä.
Tyypillisesti nämä sovellusmäärittelyt hyödyntävät muiden OMAn komponenttien
rajapintoja. [OMG99]
Common Object Request Broker Architecture (CORBA) on OMAn määrittelemä
ORB. CORBA, jota kutsutaan myös nimellä Object Bus, on OMAn määrittelemä
komponentti, joka mahdollistaa olioiden välisen kommunikoinnin. CORBA on
määrittelynä riippumaton ohjelman ajoympäristöstä ja kehitysvälineistä. CORBA
37. 4 Toteutusteknologiat
26
määrittelee järjestelmän, joka mahdollistaa olioiden välisen vuorovaikutuksen
heterogeenisessa, hajautetussa ympäristössä.
OMG Object Model määrittelee käsitteistön, jolla voidaan kuvata
toteutusriippumattomalla tavalla olioiden ulospäin näkyvät piirteet. Object Model perustuu
muutamiin peruskäsitteisiin. Nämä käsitteet ovat olio, operaatio, tyyppi ja johdettu tyyppi.
Olio voi mallintaa mitä tahansa käsitettä, kuten ihmistä, eläintä, dokumenttia, konetta yms.
Oliot edustavat aina määrättyä tyyppiä. Tyypin voi käsittää eräänlaisena muottina, josta
uusi olio luodaan. Tyyppi määrittelee siitä luotujen olioiden käyttäytymisen kuvaamalla
operaatiot, jotka oliot toteuttavat. Tyyppien välillä voi olla erilaisia suhteita. Tyypit voivat
olla perittyjä yhdestä tai useammasta muusta tyypistä. Perittyjä tyyppejä kutsutaan
alityypeiksi.
Kuva 4-1 OMG-viitemalli [OMG99].
Object Request Broker (ORB)
Object Services
Domain Interfaces Common FacilitiesApplication Objects
38. 4 Toteutusteknologiat
27
Interface Definition Language (IDL) on OMG Object Modelin mukaisten olioiden
rajapintojen määrittelyyn tarkoitettu kieli. IDL-kielisistä rajapintakuvauksista käännetään
IDL-kääntäjän avulla kohdekielelle tyngät (engl. stub) ja rungot (engl. skeleton).
Kohdekieli voi olla esimerkiksi C++ tai Java. Kohdekieli riippuu käytetystä IDL-
kääntäjästä.
Tynkä on ohjelma, jonka tehtävä on toimia asiakasolion rajapintana palvelinolioon. C++:n
ja Javan tapauksessa tynkä on luokka, jolla on sama rajapinta kuin palvelinoliolla. Tynkä
huolehtii kutsujen välittämisestä palvelinoliolle yhteistyössä ORBin ja rungon kanssa.
Runko yksinkertaistaa palvelinolion toteutusta, koska se sisältää ORBin kanssa
kommunikoimiseen tarvittavat toiminnot.
ORB toimii eräänlaisena välittäjänä olioiden välillä näiden kutsuessa toisten olioiden
metodeja. Kuvassa 4-2 on havainnollistettu tyngän, rungon ja ORBin rooli hajautetussa
ohjelmassa. Kuvassa asiakasolio kutsuu CORBAn avulla palvelinolion metodia.
Vasemman puoleinen kuva esittää tilannetta, jossa sekä asiakasolio että palvelinolio
käyttävät samaa ORBia. Oikean puoleinen kuva on tilanteesta, jossa asiakasolio ja
palvelinolio ovat kiinnittyneet eri ORBeihin. Tällöin asiakasolion ORB välittää kutsun
tietoverkon kautta IIOP-protokollan avulla palvelinolion ORBille.
Kuva 4-2 Kutsun välittäminen asiakasoliolta palvelinoliolle CORBAn avulla [Si96 luku 2].
Runko
Palvelinolio
Tynkä
ORB
Asiakasolio
Runko
Palvelinolio
Tynkä
ORB
Asiakasolio
ORB
IIOP
Kutsu
Kutsu
39. 4 Toteutusteknologiat
28
4.1.3 Distributed Component Object Model
Tämä kohta perustuu Developer.com-nimisessä WWW-palvelussa (www.developer.com)
julkaistuun artikkeliin [Al98]. Microsoftin ratkaisu hajautettujen ohjelmistojen tekemiseen
on DCOM. DCOM on laajennus Microsoftin Component Object Modeliin (COM), joka
muodostaa Windows-käyttöjärjestelmien perusarkkitehtuurin. DCOM mahdollistaa eri
ohjelmointikielillä tehtyjen ohjelmakomponenttien välisen kommunikaation tietoverkon
välityksellä.
DCOMin käytöstä seuraavat edut johtuvat sen tiiviistä sitomisesta itse Windows-
käyttöjärjestelmään. DCOMin avulla omissa sovelluksissa voi hyödyntää useita Windows-
alustan palveluita, kuten Microsoft Transaction Serveriä tai Microsoftin Internet
Information Serveriä. Lisäksi DCOM toimii Windowsin turvallisuusmallin alaisuudessa,
joten turvallisuusnäkökohdat on myös otettu huomioon. Jokaiselle DCOM-komponentille
voidaan määrittää oma Access Control List (ACL), jolla määrätään ketkä käyttäjät ja
mitkä ohjelmat saavat kyseistä komponenttia käyttää.
DCOMin ongelmana on, että se on teknologiana vielä kohtuullisen uusi. Työkalut eivät
olleet vielä kesällä 1997 kovinkaan kehittyneitä. DCOM ei myöskään ole
ympäristöriippumaton ratkaisu. Sisällönhallintajärjestelmän suunnitteluvaiheessa
DCOMia ei ollut saatavilla muille alustoille kuin Intel-pohjaisille PC -koneille, joiden
käyttöjärjestelmänä oli Windows. Nykyään DCOM löytyy jo useammille laitealustoille
kuten Sunin Solarikselle ja Linuxille.
4.1.4 Menetelmän valinta
CORBAn etuna on vahva yritysten tuki. Myös CORBAn avoimuus on positiivinen asia.
CORBA-työkaluja valmistavia yrityksiä on useita, joten työkaluja löytyy useille
laitealustoille, käyttöjärjestelmille ja ohjelmointikielille. Nämä työkalut ovat kuitenkin
olleet perinteisesti hyvin kalliita, mutta nykyään on saatavilla edullisia jopa ilmaisia
ratkaisuja. CORBAn ongelmana on ollut muun muassa se, että eri valmistajien ORBit
40. 4 Toteutusteknologiat
29
eivät välttämättä ole kyenneet kommunikoimaan keskenään. Tähän on pyritty saamaan
parannus CORBA-määrittelyä [OMG98] tarkentamalla.
Microsoftin DCOM on piirteidensä puolesta vertailukelpoinen CORBAan nähden. DCOM
oli vielä vuoden 1997 kesällä suhteellisen uusi teknologia, joten DCOMin käyttöön
tarvittavat työkalut eivät olleet kovinkaan kehittyneitä. Lisäksi DCOMin Windows-
sidonnaisuus oli eräs suurimmista ongelmista. DCOMin valinta olisi myös käytännössä
sulkenut pois mahdollisuuden käyttää Javaa toteutuskielenä. Ainoa keino hyödyntää
DCOMia Javasta olisi ollut käyttää Microsoftin tekemää virtuaalikonetta.
Sisällönhallintajärjestelmälle asetettu vaatimus ympäristöriippumattomuudesta olisi tällöin
jäänyt saavuttamatta, koska kyseistä virtuaalikonetta ei ole saatavilla kuin Windows-
ympäristöön.
Java RMI on huomattavasti yksinkertaisempi ratkaisu kuin Microsoftin DCOM ja OMG:n
CORBA. RMI on lähinnä lisäys Javaan, kun taas DCOM ja CORBA pyrkivät
määrittelemään kokonaisen hajautetun järjestelmän palveluineen. RMI soveltuu lähinnä
pienimuotoisiin hajautettuihin järjestelmiin, koska se ei tarjoa kovin monipuolisia
palveluita. RMI:n suurin vahvuus on käytön helppous. Tämä on seurausta siitä, että RMI
on suunniteltu ainoastaan Javan kanssa käytettäväksi. RMI:n käyttö on lähes läpinäkyvää
sovellusohjelmoijalle. RMI:n suurin vahvuus on myös sen suurin heikkous. RMI:n valinta
hajautuksen toteutukseen olisi sitonut projektin tiukasti Javan ympärille ja muiden
ohjelmointikielten käyttäminen olisi ollut hyvin hankalaa, ellei peräti joissain tapauksissa
mahdotonta.
Ohjelmistojen välinen kommunikaatio päätettiin toteuttaa CORBA-yhteensopivan ORBin
avulla [OMG98]. Koska tässä projektissa ohjelmistot toteutetaan Javalla, CORBA-
työkaluna käytetään Ionan OrbixWeb 3:a. Koska käytössä on vain yhden valmistajan
ORB, ei ORBien välinen kommunikaatio muodostu ongelmaksi. Toteutuksessa pyritään
nojautumaan mahdollisimman paljon IDL to Java Mapping -määrittelyn mukaisiin
rajapintoihin [OMG97]. Tällöin on ainakin periaatteessa mahdollista vaihtaa käytettävä
ORB toisen valmistajan ORBiin, jos tämä tulee tarpeelliseksi.
41. 4 Toteutusteknologiat
30
4.2 Ohjelmointikieli
Sisällönhallintajärjestelmän toteutusta varten valittiin ohjelmointikieleksi Java.
Toteutuksen aloitushetkellä uusin versio JDK:sta oli 1.1.3, joten
sisällönhallintajärjestelmän toteutuksessa päätettiin tukeutua JDK 1.1:een.
Järjestelmää tultaisiin käyttämään monissa erilaisissa laitteistoympäristöissä, joten
järjestelmästä oli saatava mahdollisimman ympäristöriippumaton. Järjestelmän
suunnitteluhetkellä käytössä olivat Windows NT-, Linux- ja Sun Solaris-
käyttöjärjestelmät. Kaikille näille oli saatavissa Java-virtuaalikone. Käytettäessä Javaa
voidaan käyttää samoja ohjelmabinäärejä kaikissa koneissa, joihin löytyy yhteensopiva
Java-virtuaalikone.
Javan eduksi voidaan laskea myös se, että sille oli olemassa kohtuullisen hintaisia tai jopa
ilmaisia CORBA ORBeja. Projektin alussa käytimme Sun Microsystemsin ilmaista
esiversiota heidän tekemästään Java IDL -ORBista. Myöhemmin siirryimme kuitenkin
käyttämään Ionan OrbixWebia, koska tämä oli oleellisesti vakaampi ohjelma ja toteutti
OMG:n IDL to Java Mapping -määrittelyn [OMG97] toisin kuin Sunin toteutus.
Javan ongelmana on tehottomuus verrattuna muihin ohjelmointikieliin. Alusta alkaen oli
kuitenkin selvää, että järjestelmän pullonkaulana ei tulisi olemaan varsinainen sisältöjen
hallinta vaan sisältöjen muuntaminen. Koska muuntaminen suoritetaan kolmannen
osapuolen toimittamilla ohjelmistoilla, ei Javan valitseminen ohjelmointikieleksi vaikuta
oleellisesti järjestelmän suorituskykyyn.
Javan valintaan vaikutti myös omalta osaltaan se, että projektiryhmällä oli jo kokemusta
ohjelmoinnista kyseisellä kielellä. Tietyt Javan piirteet kuten serialisointi ja kattavat
perusluokkakirjastot houkuttelivat myös valitsemaan Javan toteutuskieleksi.
Vaikka ohjelmointikieleksi valittiinkin Java, ei tämä suinkaan tarkoita sitä, että kaikki
järjestelmään liittyvät ohjelmat olisi tehtävä Javalla. Koska sovelluksen toteutuksessa
käytetään CORBAa, voidaan Javan rinnalla käyttää tarpeen vaatiessa myös muita kieliä.
42. 4 Toteutusteknologiat
31
Esimerkiksi paljon laskentaa suorittavat ohjelmat voidaan toteuttaa muun muassa C++:lla
ja liittää ne järjestelmään CORBAn avulla. Käytännössä kaikki sellaiset kielet, joille
löytyy CORBA-määrittelyn [OMG98] mukainen ORB, joka kykenee toimimaan yhdessä
Ionan OrbixWebin kanssa, ovat käytettävissä sellaisenaan. Voidaan myös toimia siten, että
tehdään halutulla ohjelmointikielellä erillinen ohjelma, joka suoritetaan Java-
virtuaalikoneen avulla. Tämä suoritettava ohjelma voi tietysti olla myös kolmannen
osapuolen valmistama. Näin voidaan liittää melkein mitä tahansa ulkopuolisia ohjelmia
järjestelmään käyttäen Javaa ja CORBAa. Muun muassa järjestelmään liittyvät
muunnosohjelmat on toteutettu edellä mainitulla tavalla.
4.3 Käyttöliittymät
Sisällönhallintajärjestelmän käyttöliittymistä haluttiin tehdä ympäristöriippumattomia.
Sun Microsystemsin kehittämä ohjelmointikieli Java tarjoaa tähän mahdollisuuden, koska
se on alusta alkaen suunniteltu laitteisto- ja käyttöjärjestelmäriippumattomaksi.
4.3.1 Ympäristöriippumattomuuden toteutustavat
Ympäristöriippumattomuus käyttöliittymäkirjastoon Javassa voidaan saada aikaan ainakin
kahdella toisistaan selvästi poikkeavalla tavalla. Yleinen ratkaisu tähän on rakentaa
rajapinta ympäristökohtaisten käyttöliittymäkomponenttien päälle. Tällöin ohjelma kutsuu
aina samaa rajapintaa riippumatta ympäristöstä. Toinen vaihtoehto on suorittaa
komponenttien piirto käyttöliittymäkirjaston sisäisesti, jolloin ympäristökohtaisia
komponentteja ei käytetä lainkaan.
Ympäristökohtaisten komponenttien päälle rakennettu rajapinta käyttää siis kunkin
ympäristön omia komponentteja. Niinpä käyttäjä saa aina eteensä tutun näköisen ja
oloisen käyttöliittymän. Useat tietokoneen käyttäjät ovat erittäin tarkkoja siitä, että
sovellus näyttää sellaiselta, johon on tottunut. Myös ohjelmistoalan ihmiset ovat usein
varsin tarkkoja siitä, että esim. Unix-käyttöjärjestelmässä ajettu ohjelma käyttäytyy Unix-
ohjelman tavoin, eikä esimerkiksi Macintosh- tai Windows-ohjelman tavoin. Nykyään on
43. 4 Toteutusteknologiat
32
markkinoilla ohjelmia, esimerkiksi selaimia, jotka ovat samanlaisia kaikissa
ympäristöissä. Vielä muutama vuosi sitten tämä oli erittäin harvinaista.
Saman rajapinnan kautta kutsuttu ympäristökohtainen komponentti saattaa olla täysin eri
näköinen eri ympäristöissä. Myös niiden looginen toiminta saattaa vaihdella. Ohjelmoijan
tuleekin tällöin olla tarkkana ja testata ohjelmansa kaikissa mahdollisissa ympäristöissä.
Käytännössä tämä on osoittautunut erittäin hankalaksi. Itse käyttöliittymäkirjastosta tulee
helposti rajoittunut komponenttivalikoimaltaan. Mukaan voidaan ottaa ainoastaan
komponentit, joita löytyy jokaisesta kohdeympäristöstä, ja joiden toiminta on jokseenkin
samankaltaista. Jotta rajapinnan kirjoittaminen olisi mahdollista, joudutaan siis toimimaan
“pienimmän yhteisen nimittäjän” -periaatteella. Tämä rajaa pois kaikki vähänkään
monimutkaisemmat ja omintakeisemmat komponentit.
Yhtenäisen ulkonäön aikaansaamiseksi komponenttien piirto kirjaston sisäisesti lienee
ainoa vaihtoehto. Kun komponentteja ei lainatakaan systeemiltä, vaan hoidetaan
piirtäminen itse, voidaan määritellä tarkalleen komponenttien ulkonäkö ja toiminta.
Tällöin ohjelmoija voi rauhassa kirjoittaa käyttöliittymän luottaen siihen, että käyttäjä
näkee ja kokee käyttöliittymän halutulla tavalla. Kirjaston suunnittelijalle tämä antaa myös
vapauksia, koska näin liikutaan korkeammalla abstraktiotasolla kuin käyttöjärjestelmän
rajapinta normaalisti tarjoaa. Näin ei olla rajoittuneita minkään systeemin tarjoamiin
komponentteihin.
4.3.2 Javan käyttöliittymäkirjastot
Kun käyttöliittymäkirjaston valintaa vuoden 1997 kesällä ryhdyttiin miettimään, oli
ainoastaan kaksi varteenotettavaa kirjastovaihtoehtoa valittavana. Sun Microsystemsin
Abstract Windowing Toolkit (AWT) ja esiversiossaan ollut Microsoftin Application
Foundation Classes (AFC). Myöhemmin törmättyämme vaikeuksiin valitsemamme AFC:n
kanssa tutustuimme myös tuolloin vasta suunnitteilla olleeseen Sun Microsystemsin Java
Foundation Classes (JFC) -kirjastoon.
44. 4 Toteutusteknologiat
33
Abstract Windowing Toolkit
AWT on Sunin alkuperäinen graafisten Java-käyttöliittymien toteutukseen tarkoitettu
kirjasto. Näihin päiviin asti pääosa Javalla tehdyistä käyttöliittymistä on tehty AWT:llä.
AWT sisältyy kaikkiin jo julkaistuihin JDK:hin. JDK 1.1 uudisti AWT:ta varsin paljon.
Tärkein muutos oli täysin uudenlainen tapahtumienkäsittely.
Java esiteltiin vuonna 1995, ja sen käyttöliittymäkirjasto AWT olisi varmasti tullut
hylätyksi, mikäli ihmisten konservatiivisuutta käyttöliittymien suhteen ei olisi otettu
huomioon. Niinpä AWT toimiikin ympäristökohtaisten komponenttien
ympäristöriippumattomana rajapintana. Aluksi tätä pidettiin varsin onnistuneena
ratkaisuna. Olihan ennenkuulumatonta, että sama tavukoodi ajettuna eri ympäristöissä
tarjosi käyttäjille aina kuitenkin ympäristökohtaisen käyttöliittymän.
Ongelmia ilmeni kuitenkin varsin nopeasti. Ohjelmoijat olivat tyytymättömiä niin
komponenttivalikoimaan kuin komponenttien toimivuuteenkin. Kuten kuvasta 4-3 voidaan
Kuva 4-3 Vasemmalla on kuva on SunOS 5.4 -käyttöjärjestelmään tehdyn Java-virtuaalikoneen
tuottamasta ikkunasta, kun taas oikealla oleva on Windows 95 -käyttöjärjestelmään tehdyn
virtuaalikoneen näkemys samasta ikkunasta (X-server ensimmäisen kuvan ikkunassa on Windows-
koneessa). Käyttöliittymäkirjastona on AWT.
45. 4 Toteutusteknologiat
34
havaita, täysin sama tavukoodi näyttää jo näinkin yksinkertaisessa esimerkissä melko
erinäköiseltä. Ohjelmoija saattaa tehdä ohjelmoidessaan oletuksen, että radiopainikkeen
otsikko on aina kiinni painikkeessa, vaikka todellisuudessa sitä ei ole määritelty, vaan se
riippuu ympäristökohtaisesta toteutuksesta.
Java Foundation Classes
JFC syntyi Sunin, Netscapen ja IBM:n päätöksestä tehdä uusi AWT:n korvaava
käyttöliittymäkirjasto. Jo pitkään ollaan oltu sitä mieltä, että AWT ei ole riittävä ratkaisu
Java-käyttöliittymiin. Netscape olikin kehitellyt omaa Internet Foundation Classes (IFC)
-kirjastoa. Tämän kirjaston tarkoitus oli olla selaimessa mukana, ja niinpä sovelmissa
(engl. applet) olisi voitu käyttää näitä uusia käyttöliittymäkomponentteja ilman, että niitä
tarvitsisi ladata palvelimelta. Ideana oli nimenomaan tehdä kaikki komponenttien
piirtäminen kirjaston sisäisesti, jolloin kirjaston kehittäjillä olisi vapaat kädet
komponenttien suunnitteluun. Kirjaston kehittely alkoi loppuvuodesta 1996. Idea oli hyvä,
mutta IFC ei milloinkaan saanut suurta suosiota lukuisten teknisten ongelmien vuoksi.
Kun Sun sitten vihdoin uskoi itsekin, että AWT ei riitä kovin pitkälle, se alkoi kehitellä
omaa kirjastoaan IFC:n pohjalta. Ilmoitus tästä annettiin Java-maailmalle huhtikuussa
1997. JFC:n ensimmäinen versio valmistui helmikuussa 1998.
JFC:n eräs hieno piirre on sen vaihdettavissa oleva ulkonäkö ja tuntu (engl. pluggable look
and feel). Ohjelmoija voi siis päättää, haluaako hän ohjelmansa näyttävän esimerkiksi
Windows-ohjelmalta vai joltakin muulta. Tällä hetkellä valittavissa on Windows-, Motif-
ja Metal-tyylit. Näistä Metal on Sunin oma tätä tarkoitusta varten kehittämä tyyli.
Ohjelmoija voi myös jättää käyttäjälle sopivan tyylin valitsemisen annetuista
vaihtoehdoista. Myös oman tyylin luominen on mahdollista. Tämä oli siis Sunin varsin
elegantti ratkaisu käyttäjien konservatiivisuusongelmaan. Eri tyyleistä on esimerkkejä
liitteessä II.
Tällaisen muita järjestelmiä matkivan kirjaston pitäminen ajan tasalla saattaa muodostua
ongelmaksi. Hyvänä esimerkkinä tästä on Windowsin tiedoston avaus- ja talletusdialogi.
46. 4 Toteutusteknologiat
35
JFC:n sisältämän komponentin Windows - look and feel -toteutus on valitettavan eri
näköinen kuin Windows NT 5:n esiversion vastaava.
JFC on oikeastaan AWT:n laajennus. Kaikki JFC:n uudet komponentit, kuten myös
AWT:n komponentit, perivät AWT:n Component-luokan. Tästä seuraa täydellinen AWT-
yhteensopivuus. JFC-komponentteja voikin näin asettaa monien AWT-komponenttien
päälle.
JFC:n ohjelmointimalli on tietokeskeinen. Tämä tarkoittaa sitä, että jokainen JFC-
komponentti osoittaa johonkin tietomallirajapintaan. Ohjelmoija voi käyttää komponentin
oletustietomallia tai laajentaa sitä haluamallaan tavalla. Hän voi myös vaihtaa sen
kokonaan, kunhan uusi luokka toteuttaa kyseisen komponentin tietomallille määrätyn
rajapinnan. Vaihtaminen voidaan tehdä myös ajon aikana. Tällä tavoin komponentit ovat
dynaamisempia kuin perinteiset kiinteällä tietomallilla toimivat komponentit.
Tietokeskeinen lähestymistapa on monille käyttöliittymäohjelmoijille uusi. JFC:ssä on
esitelty myös muita uusia konsepteja. JFC:n toteuttajat eivät ole kunnioittaneet vanhoja
käsityksiä käyttöliittymäkirjastoista, vaan ovat luoneet uusia lähestymistapoja. Tämä voi
aiheuttaa monille kokeneillekin ohjelmoijille ylimääräistä päänvaivaa.
JFC:n edistykselliset komponentit eivät ole kaikkein helpoimpia käyttää. Esimerkiksi
puukomponentti omaa monia eri luokkia ja rajapintoja, joiden avulla puu luodaan ja sitä
käsitellään. Perinteisesti käyttöliittymäkirjasto tarjoaisi yhden luokan, joka sisältäisi
tarvittavat tietorakenteet, mutta JFC tarjoaa eräänlaisen sovelluskehyksen (engl.
framework) näihin kehittyneisiin komponentteihin. Tämä ominaisuus tuo monipuolisuutta,
mutta myös hankaloittaa yksinkertaisten käyttöliittymien tekoa. Pienissä ja
yksinkertaisissa sovelluksissa koodin määrä tulee usein suuremmaksi, kuin perinteisiä
kirjastoja käyttämällä.
47. 4 Toteutusteknologiat
36
Application Foundation Classes
AFC on Microsoftin ratkaisu Javan käyttöliittymäkirjastoksi. Kyllästyneenä AWT:n
heikkouksiin Microsoft ilmoitti tammikuussa 1997 kehittelevänsä AFC:tä. Microsoft olisi
halunnut Sunin ottavan AFC:n käyttöönsä, mutta huhtikuussa Sun ilmoittikin aloittavansa
JFC:n kehityksen. Tästä alkoi katkera kilpailu Javan käyttöliittymien tulevaisuudesta.
Microsoft sai kuitenkin noin kuuden kuukauden etumatkan kirjastonsa kehittämisessä.
Ensimmäinen näytösversio AFC:stä oli valmis huhtikuussa ja lopullinen versio oli valmis
lokakuussa 1997.
AFC korvaa täysin AWT:n. AFC-komponentit eivät siis peri AWT:n Component-luokkaa.
AFC:n suunnittelijat perustelivat tätä AWT:n Component -luokan raskaudella. AFC
pohjautuu UIComponent-luokkaan, jonka on tarkoitus käyttää vähemmän muistia kuin
Component-luokka. Tämän seurauksena AFC-komponentteja ei voi suoraan asettaa AWT-
komponentteihin. Tätä tarkoitusta varten AFC sisältää erityiset AWT-yhteensopivat
luokat, jotka toimivat siltana AFC:n ja AWT:n välillä.
AFC:n ohjelmointimalli on komponenttikeskeinen ja hyvin samankaltainen AWT:n
kanssa. Ohjelmoiminen on hyvin suoraviivaista ja helppoa tottuneelle AWT-ohjelmoijalle.
Useimmat komponenteista perivät UIContainer-luokan, jonka päälle saa asettaa
UIComponent-luokan. Niinpä komponenttien päällekkäin asettelu on melko vapaata.
Esimerkiksi List-komponentti on vain paneeli, johon on lisätty komponentteja allekkain ja
asetettu pohjaväriksi valkoinen.
AFC:n komponenttien ulkonäkö on tuttu Windows-käyttöliittymästä. Myös
komponenttien toiminnallisuus on samanlaista. AFC:llä pystyykin tekemään varsin
vaikuttavia Windows-ohjelmalta näyttäviä ja tuntuvia Java-käyttöliittymiä.
AFC:stä on kaksi versiota: JDK 1.0.2 sekä JDK 1.1 -yhteensopiva. Ensin mainittu on
tarkoitettu käytettäväksi sovelmissa, ja se on pyritty saamaan toimimaan kaikissa JDK
1.0.2 -yhteensopivissa virtuaalikoneissa. Jälkimmäinen on JDK 1.1 -yhteensopiva, mutta
toimii vain Microsoftin omalla virtuaalikoneella.
48. 4 Toteutusteknologiat
37
4.3.3 Yhteenveto ja kirjastojen tulevaisuus
Javan käyttöliittymäkirjastot ovat muutaman vuoden aikana kehittyneet todella huimasti.
Komponenttivalikoima uusissa kirjastoissa on hyvin laaja. Varsinkin JFC tarjoaa jo
peruskirjastossaan sellaisia ominaisuuksia, joita on yleensä totuttu saamaan vain erillisillä
kirjastoilla. Tämä ei ole kaikkien mielestä hyvä asia, koska näin myös luokkakirjaston
koko kasvaa, ja yleensä koko kirjasto toimitetaan sovellusten mukana.
Microsoft toimittaa AFC-kirjastoa Internet Explorer 4:n mukana, niinpä uudet Windows-
käyttöjärjestelmät pitävät kirjaston sisällään. AFC:n JDK 1.1 -yhteensopiva versio
vaikuttikin voittajalta aina sen viimeiseen esiversioon saakka. Silloin vielä AFC toimi
myös Sunin virtuaalikoneella. Varsinaisen version ilmestyttyä lokakuussa 1997 ilmeni,
ettei kirjastoa voikaan enää käyttää muilla kuin Microsoftin virtuaalikoneilla. Se oli estetty
kirjastossa joillakin ympäristökohtaisilla kutsuilla. Microsoft julkaisi erikseen JDK 1.0.2
-yhteensopivan version, joka sitten toimi myös Sunin virtuaalikoneella. Niinpä JDK 1.1
-yhteensopivaa sovellusta ei voitu tehdä ympäristöriippumattomaksi käyttäen Microsoftin
AFC:tä. AFC:n suurin vihollinen taitaakin olla Microsoft itse estämällä erinomaisen
kirjaston käyttämisen muulta Java-maailmalta. Vaikuttaisi siltä, että jossain vaiheessa kun
kirjasto oli jo melkein valmis, Microsoft päättikin, ettei AFC:stä tehdäkään yleiseen
käyttöön käyttöliittymäkirjastoa kun kerran Sun ei sitä hyväksynytkään. Microsoft on
muutoinkin alkanut tehdä omista Java-kirjastoistaan yhä enemmän ja enemmän
ympäristöriippuvaisia huomioiden ainoastaan Windows-käyttäjät.
JFC on täysin JDK 1.1 -yhteensopiva. Niinpä myös Microsoftin virtuaalikone suorittaa
JFC-sovelluksia ongelmitta. JFC on tällä hetkellä ainoa järkevä vaihtoehto JDK 1.1
-pohjaisiin sovelluksiin. Sitä vastoin sovelmissa JFC:tä ei kannata käyttää, koska
käyttäjillä ei yleensä ole tuota kirjastoa koneillansa. Microsoft on ilmoittanut, ettei se aio
laittaakaan sitä selaintensa tai käyttöjärjestelmiensä Java-luokkiin mukaan. JDK 1.1
-yhteensopivassa selaimessa sitä ei tarvitse ollakaan, sillä JFC ei kuulu varsinaiseen Javan
luokkakirjastoon. Juuri valmistunut Sun Microsystemsin JDK 1.2 pitää sisällään JFC:n.
Niinpä selaimien, jotka väittävät olevansa JDK 1.2 –yhteensopivia, tulisi sisältää myös
tämä upea käyttöliittymäkirjasto.
49. 4 Toteutusteknologiat
38
Asiakasohjelma toteutettiin aluksi Microsoftin AFC-kirjaston esiversioita käyttäen. Kun
AFC:n varsinainen versio ei sitten toiminutkaan muilla kuin Microsoftin virtuaalikoneella,
päätettiin asiakasohjelma ohjelmoida uudelleen Sun Microsystemsin JFC-kirjastoa
käyttäen. JFC-kirjaston kehitys oli jatkossa varsin myönteistä, joten kirjaston vaihtaminen
kohtuullisen aikaisessa vaiheessa osoittautui järkeväksi päätökseksi.
4.4 Muut valitut teknologiat
Järjestelmässä käytetään myös sellaisia ulkopuolisia ohjelmia, jotka eivät oleellisesti
vaikuta ohjelmiston rakenteeseen suunnittelu- ja toteutusvaiheessa. Nämä ohjelmat ovat
kuitenkin tarpeellisia sisällönhallintajärjestelmän käyttöönotossa ja käytössä. Tällaisia
ohjelmia ovat esimerkiksi InstallShield for Java ja SourceGuard.
Järjestelmän ohjelmat, jotka vaativat asennusta, asennetaan InstallShield-ohjelman avulla.
Asiakasohjelma, ylläpito-ohjelma ja sisällönhallintaydin ovat kaikki asennettavissa
InstallShieldin avulla. SourceGuard on ohjelma, jonka avulla voidaan muuttaa Java-
luokkatiedostojen rakennetta siten, että niitä ei enää ole mahdollista saada takaisin
lähdekoodimuotoon. Tätä prosessia kutsutaan obfuskoinniksi (engl. obfuscate).
SourceGuardia tarvitaan suojaamaan ohjelmistossa syntyneitä Java-luokkatiedostoja, joita
jaetaan ulkopuolisille tahoille kuten asiakkaille.
Sisällönhallintajärjestelmä käyttää tietojen tallentamiseen tietokantaa. Koska järjestelmän
palvelut toteutetaan Javalla, on luontevaa käyttää Java Database Connectivity (JDBC)
-rajapintaa tietokannan liittämiseksi sisällönhallintajärjestelmään. JDBC:n avulla Java-
ohjelmat kykenevät suorittamaan SQL-kielisiä kyselyitä ja päivityksiä tietokantaan.
Järjestelmän tietokantana toimii Solid WebEngine 2.3. Koska järjestelmän toteutuksessa
käytetään JDBC-rajapintaa ja SQL-kieltä, voidaan siirtyä käyttämään jotain toista
tietokantaa tarvittaessa. JDBC-kirjaston mukana toimitetaan myös JDBC-ODBC -silta,
joka mahdollistaa sellaisten tietokantojen käytön, joille ei löydy JDBC-tukea.
51. 40
5 Sisällönhallintaydin
Tässä ja seuraavassa luvussa sisällönhallintajärjestelmään viitataan sanalla järjestelmä.
Järjestelmä koostuu kolmesta osasta: asiakasohjelmasta, sisällönhallintaytimestä ja
ylläpito-ohjelmasta. Sisältöpalvelimet ovat osa sisällönhallintaydintä. Kuvassa 5-1 on
havainnollistettu järjestelmän osia ja niiden suhteita toisiinsa.
Asiakasohjelman avulla sisällöntuottaja voi hallita järjestelmässä olevia sisältöjään ja
näihin liittyviä tietoja. Sekä ylläpito- että asiakasohjelma on pyritty pitämään
mahdollisimman yksinkertaisina. Ohjelman varsinainen toiminnallisuus pyritään pitämään
Kuva 5-1 Sisällönhallintajärjestelmän rakenne.
Sisältöpalvelin
Sisältöpalvelin
Sisältöpalvelin
Sisältöpalvelin
Ylläpito-ohjelma
Asiakasohjelma
Loppukäyttäjä
Sisällöntuottaja
Ylläpitäjä
Loppukäyttäjä-
ohjelma
Loppukäyttäjä-
ohjelma
Loppukäyttäjä-
ohjelma
Sisällönhallintajärjestelmä
Sisällönhallintaydin
52. 5 Sisällönhallintaydin
41
mahdollisimman pitkälle palvelinohjelmiston, tässä tapauksessa sisällönhallintaytimen,
sisällä. Tällöin ylläpito- ja asiakasohjelmat toimivat lähinnä käyttöliittyminä
sisällönhallintaytimen eri toiminnoille. Tehokkuussyistä tästä periaatteesta on tosin
jouduttu joissain kohdissa tinkimään.
Sisällönhallintaydin sisältää järjestelmän tarvitsemat tiedot sekä toiminnot, jotka
mahdollistavat sisältöjen hallinnan keskitetysti asiakasohjelmalla. Sisällönhallintaytimen
tehtävänä on pitää kirjaa kaikista järjestelmän sisällöistä, käyttäjistä sekä näihin liittyvistä
tiedoista. Sisällönhallintaytimessä on tarvittavat ohjelmat järjestelmään siirretyn
materiaalin käsittelyyn ja siirtämiseen halutuille sisältöpalvelimille. Sisältöpalvelimien
tehtävänä on toimia järjestelmässä varastoina, joihin sisällöt tallennetaan.
Sisältöpalvelimet huolehtivat myös sisältöjen levittämisestä loppukäyttäjäohjelmille.
5.1 Rakenne
Sisällönhallintaydin on hajautettu ohjelmisto, jonka pienin itsenäinen ohjelmayksikkö on
palvelu. Palvelut voidaan jakaa perus- ja erityispalveluihin. Peruspalvelut ovat
yleishyödyllisiä palveluita, joita muut sisällönhallintaytimen palvelut käyttävät.
Peruspalveluita ei käytetä suoraan järjestelmän ulkopuolelta. Erityispalveluita ovat kaikki
muut kuin peruspalvelut. Käytännössä erityispalveluita käytetään vain joidenkin tiettyjen
MediaNet-sovellusten yhteydessä. Liityntäpalvelut ovat erityispalveluita, jotka toimivat
sisällönhallintaytimen ja ytimen ulkopuolisten ohjelmien välisinä rajapintoina.
Palvelut muodostavat järjestelmän toimintoja suorittavan osan. Palveluiden suorittamisen
ja hallinnan apuna käytetään palvelimia. Palvelin on alusta, jonka avulla voidaan tehostaa
palveluiden suoritusta ja yksinkertaistaa niiden hallintaa.
53. 5 Sisällönhallintaydin
42
5.1.1 Palvelut
Palveluksi kutsutaan sellaista ohjelmaa tai ohjelman osaa, joka toteuttaa TFService-
nimisen CORBA-rajapinnan ja jonkin palvelukohtaisen rajapinnan. Palvelu koostuu
yhdestä tai useammasta CORBA-oliosta. Koska rajapinta määritellään IDL:n avulla,
voidaan palvelu toteuttaa periaatteessa millä tahansa ohjelmointikielellä, jolle on olemassa
IDL-kääntäjä ja CORBA-määrittelyn [OMG98] mukainen ORB. Kommunikointi
palveluiden kanssa tapahtuu CORBA-määrittelyssä esitetyn IIOP-protokollan mukaisesti.
Kaikki järjestelmän tähän mennessä toteutetut palvelut on tehty Javalla.
Kuvassa 5-2 on kuvattu palveluiden ja CORBAn välistä suhdetta. CORBA toimii
välittäjänä palveluiden välisessä kommunikaatiossa. Kuvassa ClientC-niminen palvelu
käyttää muita sisällönhallintaytimen palveluita (UserManager, FileManager ja
Kuva 5-2 Palvelut kommunikoivat CORBAn avulla.
CORBA
User
Manager
Code
Repository
File
Manager
ClientC
54. 5 Sisällönhallintaydin
43
CodeRepository). Koska CORBA huolehtii kutsujen välittämisestä palvelulta toiselle, ei
palveluiden toteutuksessa tarvitse huolehtia siitä, miten kutsu käytännössä välitetään.
TFService-rajapinta sisältää palveluiden hallintaan sekä niiden tilan seurantaan liittyviä
metodeja. Hallintaan kuuluvia asioita ovat palvelun tilan muuttamiseen liittyvät metodit,
palvelupyyntö, viestien vastaanotto ja palveluiden ominaisuudet. Palveluiden toteutuksen
helpottamiseksi on luotu palvelu-sovelluskehys. Uudet palvelut voivat periä
TFServiceServant-nimisen luokan, joka sisältää suurimman osan palveluille tarpeellisista
toiminnoista. TFService-rajapinnan lisäksi jokaisella palvelulla on oma palvelukohtainen
rajapinta, joka määrittelee palvelun toteuttamat metodit ja attribuutit.
Palveluihin liittyy tilakäsite. Palvelut ovat kullakin hetkellä jossain ennalta määritellyssä
tilassa. Palvelu voi olla ajossa, pysäytetty, käynnistymässä tai lopettamassa toimintaansa.
Suurin osa palveluiden toiminnoista on käytettävissä vain silloin, kun ne ovat ajossa-
tilassa.
Palvelupyynnön avulla voidaan kysyä palvelukohtaisilla parametreilla, voiko palvelu
suorittaa halutun toimenpiteen. Esimerkiksi tiedostojen hallinta -palvelulle (FileManager)
voidaan lähettää palvelupyyntö, jonka avulla voidaan selvittää, mahtuuko halutun
kokoinen tiedosto FileManagerin levylle. Sisällönhallintaytimen Locator-palvelu käyttää
palvelupyyntöä hakiessaan sopivaa palvelua. Locator on eräänlainen hakukone, jonka
avulla palvelut voivat etsiä muita sisällönhallintaytimen palveluita, jotka täyttävät halutut
ehdot.
Ominaisuuksien (engl. property) avulla voidaan määritellä palvelun toimintaan
vaikuttavia parametreja. Ominaisuudet ovat merkkijonopareja. Parin merkkijonoista
ensimmäinen on tunniste ja toinen on ominaisuuden arvo. Ominaisuuksia voidaan verrata
esimerkiksi useissa käyttöjärjestelmissä käytettyihin ympäristömuuttujiin. Ominaisuuksien
arvot otetaan käyttöön aina palvelun käynnistymisen yhteydessä. Tästä syystä
ominaisuuksia muutettaessa ajon aikana täytyy palvelu käynnistää uudestaan, jotta uudet
asetukset tulevat voimaan. Palveluiden kantaluokka TFServiceServant määrittelee kaikille
55. 5 Sisällönhallintaydin
44
palveluille yhteisiä ominaisuuksia, minkä lisäksi kukin palvelu voi määritellä itselleen
tarpeellisia ominaisuuksia.
Peruspalvelut
Peruspalvelut tuottavat yleishyödyllisiä palveluita sisällönhallintaytimen muille
palveluille. Peruspalvelut toimivat eräänlaisena pohjana, jonka päälle varsinaisten
sovellusten vaatima toiminnallisuus perustuu. Peruspalveluihin kuuluvat muun muassa
tiedostojen hallintaa, käyttäjien hallintaa, tietokannan käsittelyä ja palveluiden hallintaa
suorittavat palvelut. Taulukossa 5-1 on lueteltu sisällönhallintaytimen peruspalvelut ja
annettu lyhyt kuvaus niiden toiminnasta.
Peruspalveluille on tyypillistä, että ne käyttävät apunaan jotain ulkopuolista ohjelmaa tai
että ne tarjoavat muille sisällönhallintaytimen palveluille mahdollisuuden käyttää suoraan
ulkopuolista ohjelmaa. Esimerkiksi sisällönhallintaytimen tietokantapalveluista huolehtiva
DBC-palvelu tarjoaa mahdollisuuden suorittaa SQL-kielisiä hakuja ja päivityksiä
tietokantaan. Mailer-palvelu puolestaan mahdollistaa sähköpostin lähettämisen
palveluista.
Kaikki palvelut ovat tasa-arvoisia keskenään, mikä tarkoittaa sitä, että mikä tahansa
palvelu voi käyttää toista palvelua apunaan. Palvelut voivat olla niin riippuvaisia toisten
palveluiden tarjoamista toiminnoista, että ne eivät pysty suorittamaan omia toimintojaan
ilman toisen palvelun apua. Locator-palvelu on hyvä esimerkki sellaisesta palvelusta, jota
ilman muut palvelut eivät voi suorittaa omia toimintojaan. Locatorin avulla palvelut
hakevat viitteitä haluamiinsa muihin palveluihin. Jos sisällönhallintaytimessä ei ole
käynnissä Locator-palvelua, eivät palvelut löydä toisiaan. Tilanne on hieman saman
tapainen, jos sisällönhallintaytimessä ei ole DBC-palvelua. Tämä johtuu siitä, että monet
palveluista on toteutettu siten, että ne käyttävät tietokantaa omien palvelukohtaisten
tietojensa säilyttämiseen. Esimerkiksi nykyiset Log-, ProcessQueue- ja ErrorHandler-
palveluiden toteutukset käyttävät tietokantaa.
56. 5 Sisällönhallintaydin
45
Erityispalvelut
Erityispalveluiden tehtävänä on suorittaa MediaNet-sovellusten tarvitsemia toimintoja.
Nämä toiminnot ovat luonteeltaan lähempänä käyttäjää kuin peruspalveluiden tuottamat
palvelut. Erityispalveluita ovat muun muassa yksittäiset muunnosohjelmat ja
transaktiopalvelut. Taulukossa 5-2 ovat nähtävissä sisällönhallintaytimen erityispalvelut.
Taulukko 5-1 Peruspalvelut
Palvelu Kuvaus
ServiceManager Palveluiden hallinta yksittäisellä palvelimella tapahtuu tämän
palvelun avulla.
Locator Locatorin avulla voidaan hakea viitteitä muihin palveluihin.
Mailer SMTP-palvelu, jonka avulla sisällönhallintaydin voi lähettää
sähköpostia.
DBC Tietokantapalvelu, jonka avulla voidaan käyttää tietokantaa
SQL:llä.
UserManager Käyttäjien hallinta järjestelmässä.
FileManager Tiedostopalvelu, jolla hallitaan sisällönhallintaytimen tiedostoja.
Activator Locatorin apupalvelu, joka voi tarvittaessa käynnistää
järjestelmän tarvitsemia palveluita.
EventManager Mahdollistaa sen, että palvelut voivat lähettää toisilleen viestejä.
Log Tämän avulla palvelut voivat kirjoittaa lokiin tietoja
toiminnastaan.
ProcessQueue Jonopalvelu, jonka avulla käsittelyä tarvitsevat sisällöt kirjataan
jonoon.
ErrorHandler Palvelut voivat ilmoittaa sattuneista virhetilanteista
ErrorHandlerille.