• Ei tuloksia

Information Hiding in DX 200 -Software System

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Information Hiding in DX 200 -Software System"

Copied!
100
0
0

Kokoteksti

(1)

Sami Tilander

TIEDON KÄTKEMINEN DX 200 -OHJELMISTOJÄRJESTELMÄSSÄ

Työn valvoja

Professori Eljas Soisalon-Soininen

Työn ohjaaja

Section Manager Jukka Seppänen, Nokia Telecommunications Oy

TEKNILLINEN KORKEAKOULU

TIETOTEKNIIKAN TALON KIRJASTO ¡ KONEMIEHENTIE 2

. 02150 ES EOO

(2)

Sami Tilander 91

Työn nimi:

Tiedon kätkeminen DX 200 -ohjelmistojärjestelmässä

Päivämäärä:

16.09.1999

Osasto:

Tietotekniikka

Professuuri:

Tik-106 Ohjelmistojärjestelmät

Työn valvoja:

Eljas Soisalon-Soininen

Työn ohjaaja:

Jukka Seppänen

Tiivistelmä:

Diplomityössä tarkastellaan DX 200 -puhelinkeskuksien välitystekniikoita sekä erityisesti niihin liittyviä resursseja. DX 200 -järjestelmässä on tähän asti käytetty menestyksekkäästi piirikytkentäistä TDM (Time Division Multiplexing) - välitystekniikkaa. Uuden kolmannen sukupolven matkapuhelinjärjestelmän välitystekniikaksi on valittu pakettivälitteinen asynkroninen toimintamuoto (ATM).

Kahden eri välitystekniikan tuominen lukuisiin DX 200 -järjestelmän osiin aiheuttaisi huomattavasti päällekkäisyyttä sekä toteutuksessa että ylläpidossa. Diplomityössä tarkastellaan näiden välitystekniikoiden fyysisten resurssien kätkemistä sovellusohjelmilta, jolloin sama sovellusohjelma voi toimia molempien välitystekniikoiden päällä tietämättä fyysisen laitteiston tekniikkaa.

Ohjelmistojärjestelmässä tiedon kätkemisellä tarkoitetaan järjestelmän osan tarpeettomien tietojen piilottamista muilta järjestelmän osilta. Olemassa olevista tiedonkätkemistekniikoista tarkastellaan abstraktioita, kapselointia, olio-ohjelmointia, rajapintamäärittelyjä sekä moduuleja. Näistä olio-ohjelmointi ei sovellu suoraan DX 200 -järjestelmään, koska Nokian ohjelmistokehitysympäristöön ei ole saatavilla olio-ohjelmointityökaluja. Olio-tekniikan ideoita voidaan kuitenkin soveltaa DX 200 -järjestelmän suunnittelu-ja toteutusvaiheissa.

DX 200 -ohjelmistojärjestelmässä käytetään Nokian kehittämää TNSDL (Telenokia Specification and Definition Language) -ohjelmointikieltä. Diplomityössä tarkastellaan eri tiedonkätkemistekniikoiden soveltamista TNSDL -kielelle toteuttamalla resurssien hallinnan ohjelmalohko. Toteutettua ohjelmalohkoa tullaan käyttämään Nokian ensimmäisessä ATM -pohjaisessa keskuksessa.

Avainsanat:

tiedon kätkeminen, moduuli, kapselointi, abstraktio, rajapinta, välitysjärjestelmä, asynkroninen toimintamuoto, ATM, aikajakokanavointi, TDM, TNSDL___________

ii

(3)

A

lkulause

Tämä diplomityö on tehty Nokia Telecommunications^ Switching Platforms- yksikössä. Se on osa tutkimus- ja kehitystyötä, joka liittyy ATM- ja TDM-tekniikoiden yhteensovittamiseen.

Haluaisin kiittää professori Eljas Soisalon-Soinista tämän diplomityön valvonnasta.

Lisäksi professori Esko Nuutila ansaitsee kiitokset toimiessaan Soisalon-Soinisen sijaisena. Hänen kiinnostuksensa diplomityön aiheeseen on edesauttanut työn edistymistä.

Haluaisin kiittää jaospäällikkö Jukka Seppästä mahdollisuudesta tehdä tämä diplomityö hänen jaoksessaan. Erityiskiitokset haluaisin antaa Jukalle diplomityön ohjaamisesta.

Hänen tietämyksestään DX 200 -välitysjärjestelmästä on ollut runsaasti apua diplomityön kirjoittamisessa. Kiitokset myös Jyri Peltoselle, joka on ollut apuna suunnittelutyössä ja tuonut omalta osaltaan tietämystä TDM-tekniikasta diplomityöhön.

Lisäksi koko ATM-osasto ansaitsee erityismaininnan ATM-tekniikan asiantuntemuksesta.

Merkittävänä seikkana on myös Nokia Telecommunications taloudellinen tuki, jota ilman tämän diplomityön tekeminen ei olisi ollut mahdollista.

Espoossa 16.09.1999

Sami Tilander

(4)

S

isällysluettelo

tiivistelmä... II ALKULAUSE... III SISÄLLYSLUETTELO... IV SYMBOLI- JA LYHENNELUETTELO... VI

1 JOHDANTO... 1

2 VÄLITYSJÄRJESTELMÄ...4

2.1 Rakenne... 4

2.2 Puhelunresurssit... 6

2.3 Puhelunmuodostaminen...7

2.4 Välitettäväinformaatio...8

2.5 Kytkentä...10

2.5.1 Piirikytketty... 10

2.5.2 Pakettivälitys... 13

2.5.3 Kytkentätekniikoiden käsitteistä... 15

2.6 Ohjelmistoarkkitehtuuri... 17

2.6.1 Välitysjärjestelmän luonne... 17

2.6.2 Välitysjärjestelmän vaatimukset... 18

2.6.3 Perinteinen arkkitehtuuri... 18

2.6.4 Parannettu arkkitehtuuri...21

2.6.5 DX 200 -ohjelmistoarkkitehtuuri...23

2.6.6 Palvelinpohjainen välitysjärjestelmä...28

3 TIEDON KÄTKEMINEN...30

3.1 Taustaa...30

3.2 Ohjelmistosuunnittelu... 31

3.2.1 Vaatimukset... 32

3.2.2 Suunnittelu... 34

3.2.3 Ylläpito... 40

3.3 Ohjelmointitekniikka...41

3.3.1 Symbolinen konekieli...42

3.3.2 Korkean tason ohjelmointikielet...42

3.3.3 Aliohjelma... 44

IV

(5)

3.3.4 Moduuli... 47

3.3.5 Abstrakti tietotyyppi...50

3.3.6 Olio... 53

3.3.7 Komponentti... 55

3.4 Tiedonkätkeminen TNSDL:llä...55

3.4.1 Lohkorakenne...55

3.4.2 Kielioppi... 57

4 RESURSSIEN HALLINTA...63

4.1 Johdanto... 63

4.1.1 Käsitteet... 63

4.2 Nykyisenjärjestelmänongelmia...64

4.3 Uusi järjestelmä...65

4.3.1 Arkkitehtuuri... 65

4.4 Tiedonkätkeminen...68

4.4.1 Abstraktiot... 69

4.4.2 Modulaarisuus...72

4.4.3 Puhelun resurssien looginen malli... 72

4.4.4 Looginen resurssi... 74

4.5 Toiminnankuvaus...77

4.5.1 Resurssin varaus...78

4.5.2 Resurssin kytkentä... 78

4.5.3 Resurssin vapautus... 78

4.5.4 Virkistys... 79

5 TULOSTEN TARKASTELU...80

5.1 V ÄLITYSJÄRJESTELMÄ...80

5.2 Tiedonkätkeminen... 81

5.2.1 Tiedon kätkeminen TNSDLrllä... 82

5.3 Resurssienhallinta... 82

5.4 DX 200 -OHJELMISTOJÄRJESTELMÄN EVOLUUTIO...83

6 YHTEENVETO...85

LÄHDELUETTELO...86

LIITE 1. TNSDLrN KIELIOPPI...90

(6)

S

ymboli

-

jalyhenneluettelo ADT Abstract Datatype

abstrakti tietotyyppi

API Application Program Interface sovellusohjelmaliitäntä

ATM Asynchronous Transfer Mode asynkroninen toimintamuoto

Toimintamuoto, jossa tieto on jaettu soluihin: se on asynkronista siinä merkityksessä, etteivät tietyltä käyttäjältä tulevat, tietoa sisältävät solut välttämättä tule säännöllisesti.

В-ISDN Broadband Integrated Services Digital Network laajakaistainen monipalveluverkko

Monipalveluverkko, jossa hyödynnetään ATM -tiedonsiirtotekniikkaa.

ССГГТ Comité Consultatif International Télégraphique et Téléphonique

Kansainvälinen neuvoa-antava lennätin- ja puhelinkomitea. Nykyinen nimi ITU-T.

CD VT Cell Delay Variation Tolerance soluviiveen varianssin toleranssi СШ Channel Identifier

kanavatunniste CLR Cell Loss Ratio

solujen katoamissuhde CTD Cell Transfer Delay

solun siirtoviive

GSM Global System for Mobile Communications GSM-järjestelmä

HLR Home Location Register kotirekisteri

vi

(7)

ITU

ITU-T

MBS

MCR

MFC

PCM

PCR

SCR

SDL

SS7

TDM

Matkaviestinverkon tietokanta, joka sisältää pysyvät perustiedot verkkoon rekisteröidyistä matkaviestintilaajista.

International Telecommunication Union Kansainvälinen Televiestintäliitto

ITU Telecommunication Standardization Sector ITU:n telestandardisointisektori

Maximum Burst Size purskeen maksimikoko Minimum Cell Rate minimi solunopeus Multifrequency Code monitaajuuskoodi Pulse Code Modulation pulssikoodimodulaatio

Prosessi, jossa signaalista otetaan näytteitä ja jossa kunkin näytteen arvo muista näytteistä riippumatta kvan ti soidaan ja muunnetaan koodaamalla digitaaliseksi signaaliksi.

Peak Cell Rate maksimi solunopeus Sustainable Cell Rate pysyvä solunopeus

Specification and Definition Language SDL -kieli

Suunnittelu- ja määrittelytyöhön tarkoitettu, ССГГТ:п standardoima kuvauskieli.

Signalling System No. 7

CCITTm merkinantojärjestelmä nro 7 Time Division Multiplexing

aikajakokanavointi

(8)

Kanavointi, jossa ajallisesti lomitetaan useita signaaleja siirrettäväksi yhteisessä kanavassa.

TNSDL Telenokia-SDL

NTC:n kehittämä suunnittelu- ja kuvauskieli, joka perustuu ITU-T:n suosituksiin.

VC Virtual Channel virtuaalikanava

VCI Virtual Channel Identifier virtuaalikanavan tunniste

VCCE Virtual Channel Connection Endpoint virtuaalikanavayhteyden päätepiste VP Virtual Path

virtuaaliväylä

VPI Virtual Path Identifier virtuaaliväylän tunniste

VPCE Virtual Path Connection Endpoint virtuaaliväyläyhteyden päätepiste VSI Virtual Switch Interface

virtuaalivälitysjärjestelmän rajapinta WAN Wide Area Network

suuralueverkko

viii

(9)

1 J

ohdanto

Välitysjärjestelmä muodostaa perinteisen puhelinkeskuksen ytimen: sen tehtävänä on ohjata tuleva kutsu lähtöporttiin [McD90]. Tähän yksinkertaiseen periaatteeseen perustuu koko Nokia Telecommunicationsin DX 200 -välitysjärjestelmä. Ensimmäiset välitysjärjestelmät pystyivät muodostamaan kahden tilaajan välille siirtotien, jossa pystyttiin välittämään puhesignaalia. Vuosien varrella puhelinverkkoon on lisätty runsaasti erilaisia ominaisuuksia, jotka välitysjärjestelmien täytyy toteuttaa.

Lukuisat ominaisuudet ja monet kansalliset versiot ovat tehneet tämän päivän DX 200 - välitysjärjestelmästä hyvin monimutkaisen sulautetun järjestelmän. DX 200 -järjestelmä sisältää laajan ohjelmistojärjestelmän, jonka suunnittelu ja ylläpito ovat ohjelmistoteknisesti erittäin haastavia [NTC99]. DX 200 -ohjelmistojärjestelmän kehitystyö on jatkunut kiivaana 1970-luvun ensimmäisistä versioista aina tähän päivään asti. Uusien visioiden ja ominaisuuksien tulo vaatii kehitystyön jatkamista tulevaisuudessakin.

Välitysjärjestelmien ohjelmistoilta vaaditaan tehokkuuden ja joustavuuden lisäksi myös pitkää käyttöikää. Nämä ominaisuudet vaativat ohjelmistolle kattavan ylläpidon sekä pakottavat huomioimaan ohjelmiston helpon muuttamisen jo suunnitteluvaiheessa.

Laajan ohjelmiston hallinta ja ylläpito ovat hyvin vaikeita ja vaativat erityistä suunnittelua. Tehtävää vaikeuttavat alati vaihtuva henkilöstö ja puutteellinen dokumentaatio.

DX 200 -välitysjärjestelmä on suurten muutosten kohteena, kun kolmannen sukupolven matkapuhelinjärjestelmä tuo aivan uuden välitystekniikan: asynkronisen toimintamuodon (ATM) [Vet95]. Uusi välitystekniikka tarvitsee paljon uutta ohjelmistoa varsin lyhyessä ajassa, mikä aiheuttaa paineita olemassa olevan ohjelmiston uudelleenkäytölle. Runsas uuden ohjelmiston tekeminen aiheuttaa päällekkäisyyksiä nykyisen ohjelmiston kanssa, mikä vaikeuttaa mm. ylläpitoa ja jatkokehitystyötä.

(10)

Tiedon kätkeminen on ohjelmistotekniikan käsitteenä jo vanha, mutta unohdettu [Lis86], Tiedon kätkemisellä tarkoitetaan tarpeettomien yksityiskohtien piilottamista muilta osapuolilta. Tiedon kätkemiseen voidaan käyttää useita erilaisia tekniikoita (abstrahoinnista viipalointiin) ohjelmistotuotannon kaikissa vaiheissa (määrittelystä ylläpitoon).

Tiedon kätkeminen DX 200 -ohjelmistojärjestelmän eri tasoilla helpottaa sekä koko ohjelmistoarkkitehtuurin että yksittäisten ohjelmistomoduulien hallintaa. Ihanteellisissa tapauksissa asiakasohjelmilta voidaan kätkeä eri välitysjäijestelmien spesifiset resurssit, jolloin tullaan toimeen yhdellä, geneerisellä asiakasohjelmistolla. Tiedon kätkeminen ja erityisesti riippumattomuus välitystekniikasta alentaa kynnystä toteuttaa uusia visioita (esimerkiksi palvelinpohjainen, hajautettu arkkitehtuuri [MSF98a]) olemassa olevaan järjestelmään.

Tämä diplomityö keskittyy välitysjärjestelmän ja eri välitystekniikoiden tarkasteluun kirjallisuuslähteiden [Sch87][Coo97][Vet95] avulla. Ohjelmistoteknisenä tarkastelun kohteena on tiedon kätkemisen eri tekniikat ja niiden suhde ohjelmistosuunnitteluun.

Tavoitteena on kokeilla eri tiedonkätkemistekniikoiden soveltamista DX 200 - välitysjärjestelmän ohjelmistossa. Työssä suunnitellaan ohjelmalohko, looginen resurssirajapinta, jonka tehtävänä on kätkeä fyysiset resurssit asiakasohjelmilta.

Tärkeänä osana diplomityötä on tarkastella Nokia Telecommunicationsin ohjelmointiympäristön (erityisesti TNSDL -kielen [Lin95][Ruo93]) soveltuvuutta tiedon kätkemiseen.

DX 200 -ohjelmistojärjestelmän kannalta tärkein tavoite ovat yhteiset, geneeriset merkinanto- ja puhelunohjausohjelmistot. Looginen resurssirajapinta vie meidät askeleen lähemmäs tätä tavoitetta.

Diplomityön sisältö jakautuu kolmeen erilliseen osioon. Kappaleessa 2 tarkastellaan lyhyesti välitysjärjestelmää sekä siinä yleisesti käytettäviä välitystekniikoita. Pääpaino tarkastelussa on välitysjärjestelmien ohjelmistoissa ja niiden arkkitehtuureissa. Kappale

(11)

3 tarkastelee tiedon kätkemistä ohjelmistosuunnittelussa sekä ohj elmointi tekni i koi den mahdollisuuksia. Kappaleessa 4 kuvataan toteutettu ohjelmalohko sekä tarkastellaan tiedon kätkemisen periaatteiden soveltuvuutta DX 200 -ohjelmistojärjestelmään.

(12)

2 VÄLITYSJÄRJESTELMÄ

Tässä luvussa tarkastellaan välitysjärjestelmää [NTC99] ja määritellään sen keskeiset ominaisuudet. Erityinen huomio kiinnitetään välitysjärjestelmien ohjelmistojen arkkitehtuuriin sekä DX 200 -välitysjärjestelmän kannalta keskeisiin välitystekniikoihin.

2.1 Rakenne

Puhelinverkon tehtävänä on kytkeä kaksi tai useampi toisistaan fyysisesti erillään olevaa osapuolta siten, että nämä voivat kommunikoida keskenään [NTC99], Puhelinverkko muodostuu puhelinkoneista, puhelinkeskuksista sekä näitä yhdistävistä johdoista.

Puhelinverkon käyttäjiä kutsutaan tilaajiksi. Tilaajat tuottavat ja vastaanottavat tietoa, tyypillisesti puhesignaalia. Jokaisella tilaajalla on tietyn numeroalueen sisällä yksikäsitteinen tilaajanumero, jonka perusteella tiedon välittäminen tapahtuu. Puhelun aloittavaa tilaajaa kutsutaan А-tilaajaksi sekä tilaajaa, jolle puhelu kytketään, B- tilaajaksi.

Puhelinkeskusten tehtävänä on muodostaa kytkentä siten, että tilaajat voivat kommunikoida keskenään. Kahden tilaajan välinen kytkentä voi vaatia useamman puhelinkeskuksen osallistumisen tapahtumaan, jos tilaajat ovat maantieteellisesti kaukana toisistaan.

Välitysjärjestelmä on elektroninen tai digitaalinen järjestelmä, joka ohjaa tulevan kutsun lähtöporttiin. Tuleva kutsu voi tulla А-tilaajalta suoraan tai toisesta puhelinkeskuksesta.

Lähtöportti tarkoittaa porttia kytkentäkentässä, johon puhelu ohjataan. Kuvassa 1 on esitetty välitysjärjestelmän pääosat.

4

(13)

Puhelinkeskus

Puhelinkeskus

Tilaajat

Tilaajajohdot Yhdysjohdot

Oheis­

laitteet

Puhelunohjaus Merkinanto Käytönohjaus

Kytkentäkenttä

Kuva 1: Välitysjärjestelmän pääosat.

Kytkentäkenttä on laitteisto, jossa jokaiselle keskukseen tulevalle ja keskuksesta lähtevälle johdolle on oma pisteensä. Näiden pisteiden välille voidaan muodostaa fyysinen kytkentä ohjauksen mukaisesti. Tätä kutsutaan puheteiden kytkemiseksi tai läpikytkemiseksi.

Tilaajat ovat kytketty tilaajajohdoilla kytkentäkenttään. Puhelinkeskus liittyy muihin keskuksiin yhdy s johdoilla. Näissä johdoissa välitetään tilaajien puheen lisäksi myös erilaisia merkinantoja.

Merkinantojen avulla välitetään puheluun liittyvää ohjausinformaatiota tilaajien ja puhelinkeskusten välillä. Tilaajan ja puhelinkeskuksen välisestä merkinannosta käytettään nimitystä tilaajamerkinanto. Tilaajamerkinanto muodostuu erilaisista äänimerkeistä (esim. varattu-ääni) sekä valintainformaatiosta. Puhelinkeskusten välistä merkinantoa kutsutaan yhdysjohtomerkinannoksi. Yhdysjohtomerkinanto välittää tietoa mm. А-ti laajasta sekä laskutuksesta.

(14)

Puhelunohjaus ohjaa puhelun kytkentää välitysjärjestelmässä. Se pyytää kytkentäkenttää tekemään kytkennän vastaanotetun merkinannon sekä keskukseen talletetun tiedon perusteella.

Käytönohjauksen tarkoituksena on tarjota järjestelmän ylläpitäjälle, verkko- operaattorille, työkalut välitysjärjestelmän hallintaan ja ylläpitoon. Käytönohjauksen avulla voidaan esimerkiksi luoda uusia tilaajia tilaajatietokantaan.

Välitysjärjestelmät luokitellaan niiden toimintatavan mukaisesti analogisiin ja digitaalisiin järjestelmiin. Luokittelu pohjautuu käytettyyn välitystekniikkaan.

Ohjelmateknisesti kiinnostavia ja haastavia ovat nimenomaan nykyaikaiset digitaaliset välitysjärjestelmät, joita DX 200 -järjestelmä edustaa.

2.2 Puhelun resurssit

DX 200 -järjestelmässä jokainen puhelu on yksikäsitteisesti tunnistettavissa puhelutunnisteen (call_id) avulla [NTC99]. Puhelutunnistetta käytetään mm. puhelun resurssien hallinnassa, jotta tiedetään mitä resursseja kyseessä olevalle puhelulle on varattu.

Normaalia puhelua varten välitysjärjestelmästä täytyy varata tulo- ja lähtöjohdot.

Tulojohto tarkoittaa А-tilaajan puoleista tilaaja- tai yhdysjohtoa. Vastaavasti lähtöjohto on В-tilaajan puoleinen johto. Johtojen kytkeminen toisiinsa eli läpikytkennän tekeminen muodostaa tilaajien välille fyysisen siirtotien, jota pitkin puhesignaali voidaan välittää tilaajalta toiselle.

Puhelun eri vaiheissa tarvitsee liittää erilaisia palveluja puheluun. Esimerkiksi äänimerkkien tuottaminen tapahtuu erillisen laitteen, äänigeneraattorin (TG), avulla.

Tämä laite on kytkettävä tulo- tai lähtöjohdolle kytkentäkentän kautta, jotta äänimerkki saadaan kuulumaan tilaajan puhelimesta. Muita puheluun liittyviä palveluja ovat mm.

6

(15)

näppäinvalinnan vastaanotin (PBRU), MFC-merkinanto (MFCU), tiedonannot (VANG) sekä neuvottelulaitteet (CNFC).

Tulojohto Låhtöjohto

Puhelu (call id)

Palvelut

PBRU MFCU CNFC

Kuva 2: Puhelun resurssit.

Yllä olevassa kuvassa on esitetty puheluun liittyvät resurssit. Esimerkin puhelu (piirretty kuvassa katkoviivalla) saapuu toisesta puhelinkeskuksesta järjestelmään ja päättyy tämän keskuksen alla olevaan tilaajaliittymään. Lisäksi puheluun on kytketty äänigeneraattori tuottamaan tarvittavia ääni merkkejä.

DX 200 -järjestelmässä käytetään sisäisiä johtoja liitettäessä jokin palvelu tulo- tai lähtöjohtoon. Esimerkiksi äänigeneraattorissa on jokaiselle erilaiselle äänimerkille oma johtonsa, johon kytkentä tehdään.

2.3 Puhelun muodostaminen

Jotta ymmärtäisimme paremmin edellisessä kappaleessa esiteltyjen resurssien käyttöä, tarkastellaan tarkemmin normaalin puhelun muodostamista yhden puhelinkeskuksen sisällä. Puhelun muodostaminen koostuu kolmesta päävaiheesta: muodostusvaihe, ylläpitovaihe sekä purkuvaihe [NTC99].

(16)

Muodostusvaihe alkaa kun А-tilaaja nostaa luurin. Puhelinkeskuksen merkinanto huomaa tämän ja käynnistää puhelunohjauksen. Puhelunohjaus pyytää tarvittavia kytkentöjä kytkentäkentältä А-tilaajan valinnan vastaanottamiseksi. Normaalisti tilaajalle kytketään myös valinta -merkkiääni.

Tilaajan valitsemat numerot analysoidaan puhelunohjauksessa, joka päättää minne tuleva kutsu välitetään. Molemmille tilaajille kytketään soitonmeno -ääni indikoimaan puhelun muodostamisen etenemistä. В-tilaajan nostaessa luurin puhelunohjaus pyytää kytkentäkentältä läpikytkentää. Puhelu on nyt muodostettu ja siirtyy ylläpitovaiheeseen.

Ylläpitovaiheessa puhelunohjaus tarkkailee yhteyden tilaa. Purkupyynnön havaittuaan puhelunohjaus purkaa kytkennät ja vapauttaa varaamansa resurssit.

2.4 Välitettävä informaatio

Digitaalinen välitysjärjestelmä käsittelee kaiken informaation digitaalisessa muodossa.

Perinteiset puhelinkeskukset on suunniteltu välittämään puhesignaalia tilaajalta toiselle.

Tilaajan tuottama analoginen puhesignaali täytyy digitoida, jotta se voidaan välittää järjestelmän läpi.

Puheen digitoimiseen on useita eri tekniikoita. Tässä tarkastellaan lyhyesti DX 200 - järjestelmässä käytettyä pulssikoodimodulaatiota (PCM). Samat periaatteet ovat käytössä myös muissa puheenkoodausmenetelmissä.

Analogisesta puhesignaalista otetaan näytteitä tietyn aikavälin välein. Tätä taajuutta kutsutaan näytteenottotaajuudeksi. Näytteenottotaajuuden pitää olla kaksi kertaa suurempi kuin analogisen signaalin taajuuskaista. Puhesignaalin siirtämiseksi riittää noin 4000 Hz:n taajuuskaista, joten puhelintekniikassa käytetään yleisesti 8000 Hz:n näytteenottotaajuutta [McD90], PCM-menetelmässä näytteet kvantisoidaan ja koodataan muista näytteistä riippumatta. PCM-menetelmä tuottaa vakionopeuksista

8

(17)

bittivirtaa. Jos kvantisoitu näyte koodataan kahdeksalla bitillä, niin puhesignaali vaatii 64.000 bps siirtokapasiteetin.

Digitaalinen tiedonsiirto käsittää yleensä myös erilaisia virheenkoijausmenetelmiä, jotka lisäävät bittivirtaa. Edellä lasketussa luvussa ei ole huomioitu virheenkorjauksen

vaatimia lisäbittejä.

Välitettävällä informaatiolla on kaksi kuvaavaa piirrettä: kapasiteetti ja viive.

Kapasiteetilla tarkoitetaan informaation vaatimaa bittivirran nopeutta (esimerkiksi PCM-menetelmän 64kbps). Viive tarkoittaa välitysjärjestelmän aiheuttamaa aikaeroa A- ja В-tilaajien välillä. Puhesignaalia siirrettäessä viive saa olla noin sekunnin luokkaa, jotta viiveestä ei ole haittaa tilaajille.

Normaali puhesignaali sisältää keskimäärin 50% hiljaisuutta, koska yleensä ihmiset eivät puhu toistensa päälle. Tämä on tärkeää huomata eri kytkentätekniikoita arvioitaessa. Pyrittäessä tehokkaaseen tiedonsiirtoon tällaisen nollainformaation välittämistä pitää välttää [McD90].

Uusien puhelinkeskusten täytyy pystyä välittämään muutakin informaatiota kuin puhesignaalia. Esimerkiksi puhelinverkkoon liitetyt tietokoneet tarvitsevat nopeaa ja muuttuvakapasiteettista tiedonsiirtoa erilaisille datapalveluille. Datapalveluihin kuuluvat erilaiset tiedonsiirtomenetelmät, joille ominaista ovat muuttuva luonne sekä erilaiset kapasiteetti- ja viivevaatimukset. Esimerkiksi sähköposti vaatii pienen kapasiteetin (muutaman sadan tavun) varsin lyhyeksi ajaksi. Lisäksi hyväksyttävä viive voi olla jopa minuuttiluokkaa. Toisessa ääripäässä on videoneuvottelu, joka vaatii reaaliaikaisen liikkuvan kuvan siirtämistä.

Nykyaikaisen puhelinkeskuksen on pystyttävä tarjoamaan erilaisia resursseja tilaajien vaihteleviin tarpeisiin.

(18)

2.5 Kytkentä

Välitystekniikalla tarkoitetaan tapaa, jolla tuleva informaatio välitetään lähtöporttiin.

Välitystekniikat jaetaan yleisellä tasolla kahteen eri tyyppiin: piirikytkentäiseen ja pakettivälitteiseen tiedonsiirtoon.

Perinteisesti välitysjärjestelmä sisältää vain yhden välitystekniikan, mutta tämän päivän visioissa esiintyy myös järjestelmiä, joissa on käytössä useita erilaisia tekniikoita.

Vaikka tässä esitetyt välitystekniikat ovat hyvin erilaisia, niillä on kuitenkin paljon yhteisiä piirteitä, joita kannattaa hyödyntää välitysjärjestelmien ohjelmiston suunnittelussa.

2.5.1 Piirikytketty

Piirikytketyssä tekniikassa nimensä mukaisesti muodostetaan polku tai linja kahden tilaajan välille. Tämä polku on olemassa koko puhelun ajan ja mahdollistaa täten pieniviiveisen tiedonsiirron [Sch87], Piirikytketty tekniikka soveltuu täten hyvin puheinformaation siirtämiseen tilaajalta toiselle.

Puhelinkeskusten piirikytkentäiset kentät jaetaan tila- ja aikajakoisiin kytkentäkenttiin.

Tilajakoisissa kytkentäkentissä fyysiset tilaajajohdot kytketään toisiinsa, jolloin tilaajien välille muodostuu yhtenäinen fyysinen siirtotie. Tilajakoinen kytkentäkenttä pystyy välittämään sekä analogista että digitaalista informaatiota [Sch97].

10

(19)

lähtevät tilaajajohdot

tulevat tilaajajohdot

12 3 4

kytkentäkenttä

• = ristikytkentäpiste X = kytkentä

Kuva 3: Tilajakoinen kytkentäkenttä.

Kuvassa 3 on esitetty tilajakoinen 4x4-kytkentäkenttä. Kenttä koostuu tulevien ja lähtevien johtojen muodostamasta matriisista. Johtojen risteyskohtia kutsutaan risti kytkentäpisteiksi. Jos esimerkiksi tulojohto 3 halutaan kytkeä lähtöjohdolle 2, niin ko. johtojen ristikytkentäpisteeseen tehdään kytkentä. Kytkettävien johtojen lukumäärän kasvaessa kasvaa myös kentän koko ja kompleksisuus: esimerkiksi 100.000 tilaajajohtoa vaatii 1010 ristikytkentäpistettä, mikä on jo teknisesti vaikea toteuttaa.

Aikajakoisissa kytkentäkentissä (Time Division Multiplexing TDM) eri tilaajilta tulevat signaalit voidaan limittää samaan johtoon siten, että johdossa kulkee vuorotellen signaaleja eri tilaajilta [Sch87], Näitä limitettyjä osia kutsutaan aikaväleiksi.

(20)

kehys kehys

-ж-

tulojohto aikaväli

lähtöjohto aikaväli

1^2 3X 32 1 2 3

aika 31 32

kehys 4^ kehys

\

4 4

В A

-H-

В A

-M- aika

Kuva 4: Aikajakoinen kytkentäkenttä.

Kuvassa 4 on kuvattu kytkentä aikajakoisessa kytkentäkentässä. Kuvan johdot on jaettu 125/xs:n mittaisiin kehyksiin, jotka sisältävät jokainen 32 aikaväliä. Näissä aikaväleissä voidaan välittää eri tilaajien informaatioita. Esimerkiksi kuvan tulojohdossa siirretään aikaväleissä 1 ja 3 kahden eri tilaajan (A ja B) informaatioita. Aikajakoisessa kytkentäkentässä aikavälit kirjoitetaan puskuriin, josta ne kopioidaan lähtöjohdolle oikeisiin aikaväleihin (kuvassa aikavälit 4 ja 1).

DX 200 -järjestelmässä käytetään 32 aikaväliä yhdessä kehyksessä [NTC99], Näytteenottotaajuuden ollessa 8000 Hz yhden kehyksen pituudeksi tulee 1/8000 = 125jus. Tästä voidaan myös laskea, että kopiointi aikavälistä toiselle saa kestää korkeintaan 3,9/ts (= 125/zs / 32), jotta yhteen johtoon voidaan limittää tarvittava määrä tilaajajohtoja. Käytettäessä 32 aikaväliä saadaan johdon kokonaiskapasiteetiksi 2,048 Mbps.

Nykyaikaisissa digitaalisissa puhelinkeskuksissa käytetään peräkkäin sekä aikajakoisia että tilajakoisia kytkentäkenttiä tehokkaan kytkentäkentän muodostamiseksi.

12

(21)

2.5.2 Pakettivälitys

Pakettivälitys perustuu paketteihin, jotka sisältävät tiedon (hyötykuorma) lisäksi otsikkotietoja (esim. vastaanottajan osoitteen). Nämä otsikkotiedot vähentävät pakettikytkennän tehokkuutta. Toisaalta paketteja välitetään vain silloin kun todellista tietoa lähetetään, joten esim. puhesignaalin tyhjät kohdat voidaan jättää siirtämättä [Coo97],

Paketit välitetään yksitellen vastaanottajan osoitteen perusteella. Alla olevassa kuvassa tilaajajohdolta tuleva paketti talletetaan ensiksi puskuriin. Puskurista paketti siirretään osoitetiedon osoittamaan lähtöpuskuriin, ja sieltä edelleen toiselle tilaajajohdolle.

kytkentäkenttä

Kuva 5: Pakettivälitteinen kytkentäkenttä.

Pakettivälitys mahdollistaa samasta lähteestä peräisin olevien pakettien reitittämisen eri reittejä esim. verkon kuormitustilanteen mukaan. Tämä lisää verkon käyttöastetta, vaikkakin monimutkaistaakin toteutusta (esim. paketit täytyy järjestellä oikeaan järjestykseen vastaanottopäässä) [McD90].

Seuraavassa kappaleessa tarkastellaan DX 200 -välitysjärjestelmän kannalta merkittävää pakettivälitteistä tekniikkaa, asynkronista toimintamuotoa (ATM).

(22)

2.5.2.1 Asynkroninen toimintamuoto (ATM)

Asynkroninen toimintamuoto (engl. Asynchronous Transfer Mode) on välitystekniikka, jonka kehittäminen on aloitettu 1980-luvulla. Tuolloin ССГГТ teki ATM -standardin WAN-verkkoja varten [Coo97], ATM:n kehitys- ja standardointityö on jatkunut tähän päivään asti vilkkaana. Kehitystyön tarkoituksena on muodostaa laajakaistainen monipalveluverkko (engl. Broadband Integrated Services Digital Network В-ISDN). B- ISDNrn pitäisi soveltua nykyisille ja tuleville tele- ja datapalveluille mahdollistaen puheen, videokuvan sekä datan siirron samassa verkossa [ГГО93].

Kuten nimikin jo kertoo, ATM on asynkroninen tekniikka. Asynkronisuus mahdollistaa huomattavasti monipuolisemmat käyttömahdollisuudet kuin synkroniset tekniikat.

Erityisesti yhteyden aikana voimakkaasti muuttuva bittivirta on edullista toteuttaa asynkronisesti. Esimerkiksi tietokoneiden dataliikenne on tyyppiesimerkki asynkronisesta tiedonsiirrosta.

ATM-tekniikassa yhdistyy piirikytketyn ja pakettivälitteisen tiedonsiirron edut:

piirikytkennän yksinkertaisuus ja yhteydellisyys (yhteyden muodostus- ja purkuvaiheet [Coo97]) sekä pakettivälityksen joustavuus. Yksinkertainen kytkentätekniikka mahdollistaa laajakaistaisen ja nopean välityksen samalla kun pakettivälitys tuo kaikki tele- ja datapalvelut samaan verkkoon. ATM-standardissa ei määritellä käytettävää fyysistä siirtotekniikkaa.

ATM:n tiedonsiirto perustuu kiinteän kokoisiin paketteihin, soluihin [Coo97]. Kaikki liikenne pilkotaan 53 oktetin (tavun) kokoisiin soluihin, joiden hyötykuorma on 48 oktettia. Pienten solujen ansiosta paketointi viive on hyvin pieni ja stabiili. Kuvassa 6 on esitetty ATM-solun rakenne.

14

(23)

bitti

2So

8 7 6 5 4 3 2 1

1 GFC VPI

2 VPI VCI

3 VCI

4 VCI PT CLP

5 НЕС

6

Hyötykuorma 53

GFC Generic Flow Control VPI Virtual Path Identifier VCI Virtual Channel Identifier PT Payload Type CLP Cell Loss Priority НЕС Header Error Control

Kuva 6: ATM-solun rakenne [ITU95].

ATM-solun otsikossa virtuaaliväylän tunniste (VPI) ja virtuaalikanavan tunniste (VCI) määrittelevät sen virtuaaliyhteyden, jonne solu pitää välittää. ATM-välitysjärjestelmä välittää paketit otsikon määräämään osoitteeseen. Välitys hoidetaan laitteistollisesti, jotta päästäisiin mahdollisimman tehokkaaseen kytkentään.

ATM:ssä tavoitteena on ollut verkon mahdollisimman tehokas käyttö. Tähän päästään varaamalla kapasiteettia vain tarpeen mukaan, mikä on suuri etu verrattuna piirikytkentäisten tekniikoiden kaistan vakioleveyteen. Lisäksi tietoa välitetään vain silloin kun asiakasohjelmistot sitä lähettävät, eikä esimerkiksi puhesignaalin hiljaisia kohtia siirretä ollenkaan.

Tiedonsiirto ATMissä tapahtuu virtuaaliyhteyksiä pitkin [ГГШба]. Jokaisessa ATM- solussa on kyseisen virtuaaliyhteyden tunniste (VPI/VCI). Virtuaaliyhteys vastaa resurssien hallinnan mielessä piirikytkentäistä johtoa. Virtuaaliyhteydet mahdollistavat kuitenkin joustavamman reitityksen ja verkonhallinnan virtuaalisen luonteensa vuoksi.

2.5.3 Kytkentätekniikoiden käsitteistä

Eri kytkentätekniikoissa käytetään samankaltaisia käsitteitä. Geneeriselle resurssien hallinnalle on oleellista muodostaa yksiselitteinen käsitteistö, jota voidaan käyttää kaikissa kytkentätekniikoissa. Alla olevassa kuvassa on esitetty TDM- ja ATM- tekniikoiden käsitteet sekä näille tekniikoille yhteiset loogiset käsitteet.

(24)

Loogiset

• numerot

• suunta

• tie

-<^7 SUUNTA ~U>-

TDM ATM

• väylä • VPCE ryhmä

• johto • VCCE ryhmä

• VP

• VC

Kuva 7: Välitystekniikoiden käsitteet.

Numerot

Perinteisesti puhelu ohjataan oikeaan tilaajaliittymään А-tilaajan valitsemien numeroiden perusteella. Numeroanalyysissä valituista numeroista päätellään suunta, jonne puhelu ohjataan.

Suunta

Suunta on sellaisten kytkentäresurssien joukko, joilla on sama muodostusmerkinanto ja suuntaus. Tyypillisesti yhdestä puhelinkeskuksesta lähtee useita suuntia toisiin keskuksiin. Suunta on resurssien kuulostuksen lähtökohta.

Väylä ia ryhmät

Väylöityksen hallinnan kannalta suunta jaetaan pienempiin, hallittavampiin kokonaisuuksiin. TDM-tekniikassa suunta koostuu enintään kahdeksasta väylästä, kun taas ATM-tekniikassa käytettään virtuaaliyhteyden tason mukaan joko virtuaaliväyläyhteyksien (VPC) tai virtuaalikanavayhteyksien (VCC) päätepisteiden ryhmiä.

Johto ia virtuaaliyhteydet

Johto ja virtuaaliyhteydet muodostavat resurssien hallinnan perusyksikön. TDM- välitystekniikassa käytetään johto-nimitystä puhelun siirtämiseen käytettävästä resurssista. ATM-terminologiassa vastaava käsite on virtuaaliyhteyden tasosta riippuen joko virtuaalikanava (VC) tai virtuaaliväylä (VP).

16

(25)

2.6 Ohjelmistoarkkitehtuuri

Tässä kappaleessa tarkastellaan välitysjärjestelmien ohjelmistoja niiden keskeisten piirteiden ja vaatimusten kautta. Erityistä huomiota kiinnitetään erilaisiin arkkitehtuurisiin vaihtoehtoihin.

2.6.1 Välitysjärjestelmän luonne

Yksi vallitseva piirre välitysjärjestelmissä on alusta asti ollut hajautettu toteutus. Tähän on päädytty mm. taloudellisista näkökohdista. Esimerkiksi välitysjärjestelmän laajennettavuus paranee käytettäessä hajautettuja pienempiä moduuleja [McD90].

Välitysjärjestelmä voidaan hajauttaa usealla eri tasolla. Korkeimmalla tasolla puhelinverkko koostuu hajallaan sijaitsevista puhelinkeskuksista, jotka itsenäisesti toimivat osana välitysjärjestelmää. Tämän kaltainen hajautus on ollut mukana välitysjärjestelmien kehityksen alusta alkaen. Myös yksittäisten puhelinkeskusten tasolla on mahdollista käyttää hajautettua arkkitehtuuria. Puhelinkeskusten ohjelmistot ovat laajoja, joten niiden pilkkominen pienempiin kokonaisuuksiin ja hajauttaminen eri tietokoneyksiköihin on luonnollista.

Tulevaisuudessa hajautettu arkkitehtuuri tulee laajenemaan myös yksittäiseen puhelinkeskukseen siten, että keskuksen hallintaohjelmisto voidaan sijoittaa eri verkkoelementtiin kuin kytkentäohjelmisto ja kytkentäkenttä. Kappaleessa 2.6.6 on esitetty eräs toteutus hajautuksesta, palvelinpohjainen välitysjärjestelmä (engl. Server Based Switching). Hajautettuun toteutukseen liittyy ohjausohjelmiston geneerisyys.

Samalla ohjelmistolla on pystyttävä ohjaamaan erilaisia kytkentätekniikoita hyödyntäviä välitysjärjestelmiä.

DX 200 -järjestelmä on digitaalinen välitysjärjestelmä, joka on tähän asti käyttänyt piirikytkettyä välitystekniikkaa. Digitaalinen tekniikka mahdollistaa mm. kanavoinnin sekä puhe- ja datayhteyksien samanaikaisen välityksen, mutta on joustamaton (kiinteät

(26)

bittinopeudet). Nykypäivän tietoliikenneyhteydet ovat luonteeltaan transientteja ja niiden välittämiseen soveltuu paremmin pakettivälitteinen tekniikka.

2.6.2 Välitysjärjestelmän vaatimukset

Välitysjärjestelmän monipuoliset ja reaaliaikaiset toiminnot vaativat paljon käytettävältä ohjelmistolta. Ohjelmistoarkkitehtuurin suunnittelun keskeisiksi tavoitteiksi ovat muodostuneet [McD90] :

• lisääntynyt modulaarisuus (ohjelmiston jakaminen pienempiin, hallittavampiin moduuleihin, ks. kappale 3.2.2.1),

• parantunut joustavuus (erilaisten ohjelmistojen kokoaminen samoista moduuleista, helpompi muokattavuus),

• vähentynyt ylläpito.

Ohjelmistosuunnittelussa on huomioitava myös asiakkaan tarpeet ja vaatimukset.

Välitysjärjestelmällä on kuitenkin kaksi erilaista asiakaskuntaa, ylläpitäjät ja tilaajat, joiden tarpeet ja vaatimukset eroavat toisistaan. Järjestelmän ylläpitäjälle, verkko- operaattorille, jäijestelmän luotettavuus ja hallittavuus ovat ensisijaisen tärkeitä.

Tilaajalle on taas tärkeää että puhelimesta kuuluu valintaääni, kun luuri nostetaan, sekä se että puhelu yhdistyy ensimmäisellä yrityksellä oikeaan numeroon. Tilaajan vaatimukset liittyvät puhelun resursseihin: välitysjärjestelmän resurssien hallinta pitää hoitaa siten että resursseja on aina saatavilla ja kytkentä hoituu riittävän nopeasti.

2.6.3 Perinteinen arkkitehtuuri

Tarkastellaan McDonald:n [McD90] esittelemän välitysjärjestelmän arkkitehtuuria seuraavan kuvan avulla.

18

(27)

Tulosteohjelmat Syöleohjelmat

Aloitus Numeroanalyysl Soitto & vastaus Katkaisu

Tulostepuskurit Syötepinot

Kuva 8: Välitysjärjestelmän arkkitehtuuri.

Ohjelmiston arkkitehtuurissa käytetään kronologista moduulijakoa, joka mukailee puhelun eri vaiheita (ks. kappale 2.3). Ohjelmistossa on selkeä tapahtumajärjestys (kuvassa vasemmalta oikealle), joka toimiikin normaalin puhelun tapauksessa hyvin.

Tapahtumien kulkua ohjaavat syöteohjelmilta tulevat signaalit, eli ohjelmisto on syöteajettu.

Tieto on hajautettuna kaikkialla ohjelmistossa eikä selkeää tiedonhallintaa ole. Kaikki ohjelmiston moduulit (ks. kappale 3.3.4) joutuvat käsittelemään samoja puhelutietoja, mikä aiheuttaa ohjelmamoduulien välille tarpeettomia riippuvuuksia. Näistä riippuvuuksista johtuen koko ohjelmisto on kokonaisuus, jossa kaikki osat tietävät toisistaan eikä yhden osan poistaminen ole mahdollista.

2.6.3.1 Vertikaalipalvelut

Vertikaalipalvelulla McDonald [McD90] tarkoittaa palvelua, joka vaikuttaa puheluun sen eri vaiheissa. Tyypillinen esimerkki vertikaalipalvelusta on neuvottelupuhelu, joka

(28)

joutuu tarkkailemaan puhelun kaikissa vaiheissa signaaleja syöteohjelmilta. Sen lisäksi että alkuperäinen puhelu pitää hallita, täytyy myös hallita tilaajien liittäminen (poistaminen) neuvottelupuheluun (-puhelusta).

Edellisessä kappaleessa esiteltyyn arkkitehtuuriin on vertikaalipalvelun lisääminen todella vaikeaa, koska palvelu vaikuttaa useisiin eri paikkoihin järjestelmässä.

Vertikaalipa!velut lisäävät arkkitehtuurin riippuvuuksia eivätkä välitysjärjestelmälle asetetut tavoitteet toteudu. Vertikaalipalvelun vaikutuksia perinteiseen ohjelmistoarkkitehtuuriin on kuvattu seuraavassa kuvassa.

Syöteohjelmat

Syötepinot

Aloitus Numeroanalyysi Katkaisu

Lähtöpulssit

Tulostepuskurit

Tulosteohjelmat

(~vp^) = vertikaalipalvelu (2) = signaalit (lt) = laitteisto

Kuva 9: Vertikaalipalvelun vaikutus ohjelmistoon.

20

(29)

Vertikaalipalvelu (VP) ohjaa esimerkiksi aloitusta ja numeroanalyysia, sekä vastaanottaa signaaleja puhe- ja katkaisu -lohkoista. Vertikaalipalvelulla on tieto edellä mainittujen ohjelmamoduulien olemassaolosta sekä niiden tilasta. Lisäksi vertikaalipalvelun sovittaminen arkkitehtuurin kronologiseen tapahtumaketjuun on erittäin vaikeaa. Palvelu joutuu päättelemään puhelun tilan ja toimimaan oikein kaikissa mahdollisissa tilanteissa.

Tämän kaltainen arkkitehtuuri ei selvästikään kykene täyttämään nykypäivän välitysjärjestelmälle asetettuja vaatimuksia.

2.6.4 Parannettu arkkitehtuuri

Ohjelmistoarkkitehtuurin keskeisin vaatimus on modulaarisuus (ks. kappale 3.2.2.1) ja sen avulla saavutettava joustavuus [McD90]. Edellä kuvatussa mallissa järjestelmä sisältää tarpeettomia riippuvuuksia moduulien välillä, eli moduulijako on tehty huonosti eikä tarvittavaa joustavuutta saavuteta.

Parannuksena tiedostettuihin ongelmiin McDonald [McD90] esittää 'ideaalisen' arkkitehtuurin, joka tarjoaa välitysjärjestelmän toiminnot. Seuraavassa kuvassa esitetty malli voi toimia missä tahansa ympäristössä, joten se on geneerinen.

(30)

Ominaisuus- prosessori

Signaalien tulkinta

Tehtävä prosessori Tietokanta-

manageri

Oheislaite- rajapinta

Laitteisto

Kuva 10: Parannettu arkkitehtuuri.

Kuvan arkkitehtuurissa moduulijako on tehty toiminnallisuuksien mukaan siten, että jokaista toimintaa hoitamassa on oma moduuli. Kaikki järjestelmään tallennettu tieto on keskitetty erityisen tietokantamanagerin hallintaan. Ohjelmiston jakaminen pieniin, hallittaviin moduuleihin parantaa testattavuutta, toteutettavuutta sekä muutettavuutta.

Tarpeettomat yksityiskohdat on abstrahoitu (yksityiskohtaisesta tiedosta on poistettu asiakkaan kannalta tarpeettomat yksityiskohdat, ks. kappale 3.2.2.2), jolloin esimerkiksi moduuleista saadaan vähemmän alttiita muutoksille. Lisäksi puhelunohjaukseen liittyvät moduulit on erotettu toisistaan, sekä niiden väliset rajapinnat ovat hyvin määriteltyjä.

Laitteisto on kätketty käyttäjiltä erityisen oheislaiterajapinnan taakse. Näin laitteiston käsittelyrutiineja ei tarvita kaikissa moduuleissa, vaan ainoastaan tässä

(31)

hallintamoduulissa. Sopivilla rajapintamäärityksillä voidaan peittää laitteiston yksityiskohdat ja tarvittaessa vaihtaa esimerkiksi välitystekniikka ilman muutoksia muihin moduuleihin.

Moduulijaon myötä ohjelmisto voidaan hajauttaa moniprosessorijäijestelmiin (esimerkiksi oma prosessori jokaista moduulia kohti). Lisäksi esitetyn mallin kaltainen moduulijako minimoi ristiriippuvuudet moduulien välillä. Tämä helpottaa testaamista ja uusien ominaisuuksien toteuttamista.

McDonaldin [McD90] esittämällä arkkitehtuurilla saavutetaan seuraavia etuja:

• moduulien monimutkaisuus vähenee (moduulit toteuttavat loogisen toiminnon),

• abstraktio (ks. kappale 3.2.2.2) mahdollistaa ohjelmiston käytön erilaisissa välitysjärjestelmissä,

• soveltuu sekä yksi- että moniprosessorijärjestelmille.

2.6.5 DX 200 -ohjelmistoarkkitehtuuri

Tarkastellaan seuraavaksi nykyisen DX 200 -järjestelmän ohjelmistoarkkitehtuuria MCDonaldin [McD90] 'ideaalisen' arkkitehtuurin valossa. Nokia Telecommunicationsin DX 200 -välitysjärjestelmän ohjelmistoarkkitehtuurin keskeiset ominaisuudet [Kos98]

[Tör95] ovat:

• modulaarisuus (ks. kappale 3.2.2.1),

• kommunikaatio (ohjelmamoduulien sanoman välitys),

• redundanssi (vikasietoisuuden parantaminen redundanteilla yksiköillä),

• varianssi (useita eri versioita samasta ohjelmistosta).

DX 200 -järjestelmän ohjelmisto koostuu useista löyhästi kytketyistä, itsenäisistä komponenteista (esimerkiksi prosessiperheet, tiedostot ja kirjastot). Ohjelmisto on erittäin modulaarinen.

(32)

Kommunikaatiota tarvitaan ohjelmistomoduulien keskinäiseen tiedonvälitykseen. DX 200 -järjestelmässä on erityinen sanomaväylä, jonka kautta eri tietokoneyksiköissä sijaitsevat ohjelmistomoduulit voivat kommunikoida sanomien välityksellä.

Modulaarisuuden ja kommunikaation seurauksena järjestelmä on helposti skaalattavissa ja hajautettavissa.

Redundanssilla tarkoitetaan tässä yhteydessä ohjelmiston varmennusta kahdentamisella.

DX 200 -järjestelmässä voi olla aktiivi- ja varaohjelmistot eri tietokoneyksiköissä, joilla taataan järjestelmän selviytyminen vikatilanteista.

Varianssi tarkoittaa ohjelmiston versioi tumista. Eri asiakkaat tarvitsevat hieman poikkeavia toteutuksia samasta ohjelmistosta, joten yhdestä ohjelmistomoduulista voi olla kymmeniä ylläpidettäviä versioita. Nykyinen suuntaus ohjelmistosuunnittelussa pyrkii mahdollisimman yleiskäyttöisiin ohjelmamoduuleihin, jotta ohjelmiston ylläpidettävyys helpottuisi.

2.6.5.1 DX 200 -ohjelmiston kerrosmalli

DX 200 -ohjelmistosuunnittelun tavoitteena on kehittää kuvan 11 kaltainen kerroksiin jaettu arkkitehtuuri [Kos98]. Ideaalitapauksessa kuvan kerrokset ovat itsenäisiä, toisistaan riippumattomia loogisia kokonaisuuksia, joiden välillä on selkeät, hyvin määritellyt rajapinnat.

Järjestelmäalustojen muodostamassa kerrosmallissa kukin kerros tuottaa palveluja (synkronisia ja/tai asynkronisia) ylempien kerroksien käyttöön. Kerrosten välinen rajapinta koostuu (ideaalitapauksessa) palvelumäärittelyistä sekä niiden ympäristömäärittelyistä.

24

(33)

Kuva 11: DX 200 -ohjelmiston kerrosmalli.

Alimmaisena kerroksena on DX 200 -laitteisto. Laitteisto koostuu vikasietoisista ja redundansseista tietokoneyksiköistä, jotka kommunikoivat keskenään erityisen sanomaväylän avulla.

Laskentajärjestelmäalustan (engl. Computing Platform) muodostavat laitteistonhallintaohjelmistot, jotka tarjoavat selkeän rajapinnan DX 200 -laitteistoon.

Laskentajäijestelmäalusta tarjoaa ylempien kerroksien käyttöön mm. käyttöjärjestelmän, I/O-rutiinit, tiedostojärjestelmän sekä tietokannat. Yksi tärkeä osa laskentajärjestelmäalustaa on vikasietoisuuden hallinta: vikojen havaitseminen sekä aktiivi-ja varapuolien hallinta.

Välitysjärjestelmäalusta (engl. Switching Platform) koostuu perusvälityspalveluista kuten kytkentä, väylöitys ja laskenta. Välitysjärjestelmäalusta tarjoaa sovellusohjelmille vakaan loogisen näkymän keskuksen toiminnallisuuteen, mikä helpottaa sovellusohjelmien kehitystyötä.

Edellä mainitut kerrokset muodostavat DX 200 -järjestelmäalustan. Tämä kokonaisuus on kaikille sovellusohjelmille yhteinen. Erilaisilla sovellusohjelmilla DX 200 - järjestelmästä voidaan tehdä erilaisia verkkoelementtejä sekä kiinteisiin että

langattomiin puhelinverkkoihin.

(34)

Ohjelmistosuunnittelun kannalta DX 200 -järjestelmän kerrosmalli mahdollistaa samanaikaisen ohjelmistokehityksen ja sitä kautta myös lyhyemmän tuotekehitysajan.

Kerrosmalli ei tämän hetken DX 200 -ohjelmistossa vielä toteudu, koska vuosien tuotekehityksen aikana ohjelmistoon on syntynyt pystyriippuvuuksia eikä selkeitä kerroksia ole voitu määritellä. Ohjelmistokehitys suuntaa kuitenkin koko ajan kohti parempaa arkkitehtuuria.

Tiedon kätkemisen kannalta kerrosmalli mahdollistaa esimerkiksi laitteiston yksityiskohtien abstrahoinnin (ks. kappale 3.2.2.2) välitysjärjestelmäalustalta.

2.6.5.2 DX 200 -ohjelmiston lohkorakenne

Kerrosmallin lisäksi DX 200 -ohjelmistossa on erityinen lohkorakenne [Tör95], joka noudattelee TNSDL -kuvauskielen [Lin95] mukaista mallia. DX 200 -järjestelmä on abstrahoitu (ks. kappale 3.2.2.2) käyttämällä lohkorakennetta sekä ohjelmiston toteutukseen että ympäristöön.

Lohkorakenne koostuu jäijestelmälohkoista, palvelulohkoista sekä ohjelmalohkoista kuvan 12 mukaisesti. Lisäksi jokainen ohjelmalohko voi koostua useammasta moduulista (prosessi, tiedosto, yms.). Tämä hierarkkinen rakenne kätkee alempien tasojen yksityiskohdat ylemmiltä tasoilta.

26

(35)

Puhelunohjaus Verkon

hallinta

Signalointi

Peruskytkentäpalvelut Järjestelmän

hallinta

Ohjelmalohkot

Järjestelmälohkot

Palvelulohkot

Kuva 12: DX 200 -ohjelmiston lohkorakenne.

Järjestelmälohko (engl. system block, SYB) on DX 200 -järjestelmän ohjelmiston ylimmän tason lohko, joka tarjoaa tietyt toisiinsa liittyvät palvelut ja toteuttaa tietyn joukon toimintoja.

Palvelulohko (engl. service block, SEB) on jäijestelmälohkon toteutuksen osa, joka tarjoaa määrätyn määrän jäijestelmälohkon muille taijoamista palveluista sekä joukon järjestelmälohkon sisäisiä palveluja.

Ohjelmalohko (engl. program block, PRB) on palvelulohkon toteutuksen osa, joka tarjoaa tietyn määrän palvelulohkon muille taijoamista palveluista sekä joukon palvelulohkon sisäisiä palveluja.

2.6.5.3 DX 200 -ohjelmiston palvelumalli

DX 200 -välitysjärjestelmän ohjelmissa käytetään erityistä palvelumallia [Kos98], Ohjelmiston yksittäiset moduulit taijoavat palveluja muille moduuleille. Nämä palvelut on kuvattu tarkoin palvelumäärityksissä.

(36)

Palvelumääritykset kuvaavat moduulien ulkoiset rajapinnat ja kätkevät toteutuksen yksityiskohdat asiakasmoduuleilta. Palvelut määritellään palvelulohkotasolla ja yhden palvelun toteutukseen käytetään tyypillisesti yhdestä kolmeen ohjelmalohkoa.

2.6.6 Palvelinpohjainen välitysjärjestelmä

Uusimmissa välitysjäijestelmien visioissa ohjelmiston hajautusta on viety vielä pidemmälle. Palvelinpohjaisessa välitysjärjestelmässä (engl. Server Based Switching) [MFS98a] puhelunohjaukseen liittyvät toiminnallisuudet on keskitetty erilliseen ohjauskompleksiin.

Multiservice Switching Forumin (MSF) mallissa älykkyys (esim. puhelunohjaus, laskutus sekä GSMin kotirekisteri HLR) keskitetään palvelinklustereihin, jotka ovat erillään välitystekniikasta. Tämän mallin mukainen arkkitehtuuri [MSF98a] on esitetty kuvassa 13.

Ohjauskompleksi Media

Gateway ohjain

IP/MPLS ohjain

Puhe/SS7

Avoin protokolla ja rajapinta

Välityskompleksi

Välitysjärjestelmä

Hallintataso

Adaptaatio- Video

Kuva 13: Multiservice Switching Forumm järjestelmä

28

(37)

Puhelunohjaustasolla ovat eri tekniikoiden hallintaohjelmistot. Ohjaustaso käsittää standardit merkinanto- ja väylöitysprotokollat, joiden tehtävänä on liikenteen väylöitys sekä resurssien varaus. Esimerkiksi puhesignaalin välittämistä varten (SS7-merkinantoa käyttäen) on Puhe/SS7 -ohjain. Ohjaustaso tarjoaa sovellusohjelmille standardit sovellusohjelmaliitynnät (API) sekä protokollaliitynnät.

Välitystaso vastaa välitystoiminnallisuudesta. MSF [MSF98a] käyttää välitykseen ATM-pohjaista kytkentäkenttää, mutta jättää mahdollisuuden käyttää myös muunlaisia kytkentätekniikoita. Välitystaso tarjoaa geneerisen hallintarajapinnan kaikille ohjaustason lohkoille.

Adaptaatiotaso tarjoaa fyysiset liitynnät tilaajiin sekä toisiin verkkoelementteihin.

Adaptaatiotason tehtävänä on muuttaa puhe-, data- ja videovirrat solumuotoon, jotka välitystaso pystyy välittämään. Adaptaatiotaso myös erottelee merkinannot datavirroista ja lähettää ne oikeille ohjaimille.

Välityksen ja ohjauksen erottaminen vaatii hyvin määritellyn avoimen rajapinnan. MSF on määritellyt tätä varten Virtual Switch Interfaces (VSI) [MSF98b], joka mahdollistaa välitysjärjestelmän hallinnan ohjauskompleksista käsin. Avoin rajapinta tekee mahdolliseksi eri valmistajien komponenttien käyttämisen toteutuksessa. Välityksen ja ohjauksen erottaminen eri komplekseihin mahdollistaa myös eri osien itsenäisen riippumattoman skaalautuvuuden. Yksi ohjauskompleksi voi hallita myös useampaa välityskompleksia.

(38)

3 Tiedonkätkeminen

Tässä luvussa tarkastellaan tiedon kätkemistä ohjelmistosuunnittelun eri vaiheissa.

Lisäksi tarkastellaan tiedon kätkemisen periaatteiden soveltuvuutta eri ohjelmointitekniikoihin.

3.1 Taustaa

Tiedon kätkemisellä tarkoitetaan tarpeettomien yksityiskohtien piilottamista käyttäjiltä.

Tiedon kätkeminen sai alkunsa 1970-luvun alkupuolella, jolloin ensimmäiset abstrahointitekniikat (ks. kappale 3.2.2.2) kehitettiin [Par72a]. Oikeastaan jo 1950- luvun symboliset konekielet olivat ensimmäinen askel kohti nykyisiä olio-tekniikoita.

Jos jotain tietoa ei tarvita, siihen ei pitäisi olla pääsyä [Bud91], Tähän periaatteeseen kulminoituu tiedon kätkeminen. Ihmisaivoilla on rajallinen kyky käsitellä tietoa.

Suurten ohjelmistojen tarvitsema kapasiteetti on paljon enemmän kuin ihmisaivot voivat taijota. Tästä johtuen Guttagin [Gut77] mielestä avainongelma suurten ohjelmistojen suunnittelussa ja toteutuksessa on monimutkaisuuden ja yksityiskohtien vähentäminen.

Ohjelmistotekniikassa tiedon kätkeminen tuo välineitä tämän ongelman ratkaisemiseksi.

Miksi ohjelmistot ovat sitten niin monimutkaisia? Wirfs-Brooksin [Wir90] mukaan ohjelmistojen monimutkaisuus johtuu sitä, että ne mallintavat oikean maailman monimutkaisuutta. Sama asia tapahtuu ihmisaivoissa koko ajan: ihmiset muodostavat eräänlaisia mentaalimalleja ympäröivästä maailmasta, jotta pystyisivät paremmin ymmärtämään sitä. Ihmisen ei tarvitse tietää tarkalleen miten joku asia toimii, vaan mitä se tekee. Tiedon kätkemisen perusajatuksena on esittää asiat ihmisen semantiikan mukaisesti, jotta pystyisimme käsittämään ja ymmärtämään asiat helpommin.

Ghezzi [Ghe91] osoittaa että 17% ohjelmistojen ylläpitokustannuksista johtuu tiedon esitystavan muutoksista. Esitystavan kätkemistä voidaan pitää hyvänä esimerkkinä

30

(39)

tärkeästä tiedon kätkemisestä. Tiedon kätkemisen ideana on kätkeä esimerkiksi ohjelmamoduulin asiakkaalta tarpeettomat yksityiskohdat. Ohjelmien suunnitteluvaiheessa tulee esiin vaikeita päätöksiä, jotka tulevat suurella todennäköisyydellä muuttumaan suunnittelun edetessä. Ohjelmistomoduulit tulisi suunnitella siten, että ne kätkevät tällaiset päätökset sisälleen ja tarjoavat stabiilin rajapinnan abstraktion (ks. kappale 3.2.2.2) avulla [Ghe91].

3.2 Ohjelmistosuunnittelu

Ross [Ros75] tarkastelee ohjelmistosuunnittelua kolmesta eri näkökulmasta: prosessi, periaatteet ja tavoitteet. Nämä näkökulmat muodostavat kokonaisuuden, jonka voidaan ajatella koostuvan pienistä osasista, 'rakennuspalikoista'. Ross esitteli nämä rakennuspalikat jo vuonna 1975, mutta ne ovat edelleen käyttökelpoisia. Tämän päivän ohjelmistosuunnittelun rakennuspalikoihin täytyy kuitenkin lisätä yksi uusi periaate (geneerisyys) ja yksi uusi tavoite (uudelleenkäyttö).

Kuvaan 14 on kerätty tiedon kätkemisen kannalta keskeisimmät rakennuspalikat.

Seuraavissa kappaleissa tarkastellaan näiden palikoiden merkitystä ohjelmistosuunnittelun eri vaiheissa. Erityisesti kiinnitetään huomiota tiedon kätkemisen periaatteisiin näissä eri vaiheissa.

Prosessi

Periaatteet -<

M ODULA M4ISUI S

ABSTF AKTIO

KÄTKE MINEN

GENEERISYYS

f

4 2>i

3D

S 1

* 1

I

1

I

Tavoitteet

Kuva 14: Tiedon kätkemisen rakennuspalikat.

(40)

Ohjelmistosuunnittelu voidaan jakaa vaiheisiin usealla eri tavalla. Tässä työssä tarkastelun perustana on yleisesti tunnettu Roycen vesiputousmalli, joka koostuu seuraa vista vaiheista [Dav97]:

• vaatimukset (järjestelmälle asetetut vaatimukset ja tavoitteet),

• suunnittelu (vaatimusten mukaisen ohjelmiston suunnittelu),

• toteutus ja testaus (suunnitellun järjestelmän toteutus ja testaus),

• järjestelmän integrointi,

• ylläpito.

Tiedon kätkemistä voidaan soveltaa ohjelmistosuunnittelun kaikissa vaiheissa määrittelystä ylläpitoon. Seuraavissa kappaleissa tarkastellaan näitä vaiheita tarkemmin.

3.2.1 Vaatimukset

Ohjelmistosuunnittelun ensimmäisessä vaiheessa on tarkoitus määritellä järjestelmälle asetetut tavoitteet ja vaatimukset. Ohjelmistojärjestelmälle tiedon kätkemisen kannalta tärkeät tavoitteet on esitetty kuvassa 14.

3.2.1.1 Ymmärrettävyys

Ymmärrettävyys tarkoittaa järjestelmän selkeyttä kahdesta eri näkökulmasta.

Ensinnäkin ohjelmiston yksittäiset moduulit on voitava ymmärtää ympäristöstä eristettynä. Toisaalta ohjelmiston arkkitehtuurin täytyy koostua loogisesta moduulijaosta, jotta ohjelmisto voidaan ymmärtää kokonaisuutena ilman yksittäisten moduulien yksityiskohtien tuntemusta.

Ohjelmiston ymmärrettävyys on tärkeä tavoite erityisesti välitysjärjestelmien ohjelmistoissa, koska niiden elinkaari on pitkä ja ohjelmistot ovat laajoja. Kymmenien vuosien ylläpitovastuu asettaa omat vaatimuksensa ohjelmiston ymmärrettävyydelle.

Vaihtuva henkilöstö tekee tästä vielä tärkeämmän tavoitteen.

32

(41)

Ymmärrettävyyttä tarvitaan monella tasolla järjestelmäsuunnittelusta koodiin asti.

Tiedon kätkemisellä esimerkiksi modulaarisuuden (ks. kappale 3.2.2.1) ja abstraktioiden (ks. kappale 3.2.2.2) kautta on suuri vaikutus juuri ymmärrettävyyteen.

Sopivalla moduulijaolla ja abstrakteilla käsitteillä saavutetaan järjestelmä, jonka yksittäisiä osia voi ymmärtää tuntematta muuta järjestelmää [Ghe91].

3.2.1.2 Muokattavuus

Muokattavuus tarkoittaa ohjelmiston ohjattua muutosta, jonka avulla päästään haluttuun päämäärään. Usein ohjelmistojärjestelmään tehdään parannuksia ja vikojen korjauksia, jotka muuttavat alkuperäistä ohjelmistoa. Helposti muokattavaan järjestelmään

tämänkaltaisten muutosten tekeminen on helppoa ja lopputulos on ennustettavissa.

Muutoksien vaikutusta järjestelmään on kuitenkin vaikea ennustaa: pienellä muutoksella yhdessä moduulissa voi olla arvaamattomia vaikutuksia aivan toisaalla ohjelmistossa. Muokattavuuden parantuminen on ymmärrettävyyden eräs tärkeä saavutus [Ros75]. Ohjelmiston pitkän elinkaaren aikana suunnittelijat voivat vaihtua.

Tällöin ymmärrettävyyden pitää olla hyvä ohjelman jatkokehityksen ja ylläpidon turvaamiseksi ja ylimääräisten ongelmien välttämiseksi [Lis86].

3.2.1.3 Uudelleenkäyttö

Uudelleenkäyttö ei esiinny Rossin [Ros75] rakennuspalikoissa, mutta sen merkitys on kasvanut tämän päivän ohjelmistosuunnittelussa. Uudelleenkäytöllä tarkoitetaan olemassa olevien ohjelmistokomponenttien hyödyntämistä uuden ohjelmiston osana.

Modulaarinen (ks. kappale 3.2.2.1) ohjelmistojärjestelmä sisältää tietyn moduuliavaruuden. Ohjelmiston hallinnan kannalta erilaisia kokoonpanoja voidaan rakentaa ottamalla sopiva leikkaus moduuliavaruudesta. Tällainen järjestelmän rakentaminen onnistuu, jos moduulit ovat geneerisiä.

(42)

Ohjelmiston ylläpitoon vaikuttaa paljon ohjelmiston uudelleenkäytettävyys. Jos muutokset aiheuttavat aina uusia versioita järjestelmään ja eri tuotteet tarvitsevat eri versioita samasta geneerisestä moduulista, ohjelmiston koko kasvaa eksponentiaalisesti ja ylläpidettävyys vaikeutuu.

Myös uusien ominaisuuksien toteutuksessa vanhan ohjelmiston uudelleenkäytöstä on hyötyä: kehitystyö nopeutuu ja saadaan jo osittain testattu järjestelmä. Toisaalta muutoksien vaikutusta on vaikea ennustaa, eli testausta ei pidä tämän takia jättää tekemättä.

3.2.2 Suunnittelu

Kun järjestelmän vaatimukset ovat selvillä, voidaan järjestelmän suunnittelu aloittaa.

Suunnittelun tarkoituksena on kuvata järjestelmä riittävän tarkasti, jotta toteutus on mahdollista tehdä suoraviivaisesti ilman suunnittelijan apua. Suunnittelu on erinomainen esimerkki tiedon kätkemisestä: suunnitelma voidaan ajatella toteutuksen abstraktioksi.

Seuraavissa kappaleissa tarkastellaan suunnitteluperiaatteita, jotka ovat hyödyllisiä tiedon kätkemisen kannalta.

3.2.2.1 Modulaarisuus

Ohjelmistotekniikassa ongelman jakaminen rekursiivisesti pienemmiksi osaongelmiksi on ollut klassinen ongelmanratkaisuperiaate. Tähän tapaan sisältyy myös tärkeä periaate: modulaarisuus. Modulaarisuudella tarkoitetaan monimutkaisen ohjelmiston jakamista pienempiin hallittaviin kokonaisuuksiin, moduuleihin.

Ghezzin [Ghe91] mukaan modulaarisuuden suurin etu ilmenee kahdessa eri vaiheessa.

Ensiksi toteutuksen yksityiskohdat kätketään moduulin sisälle. Toiseksi integroidaan koherentti järjestelmä näistä yksittäisistä moduuleista. Näiden vaiheiden järjestyksestä

34

(43)

riippuen puhutaan bottom- up (ensiksi moduulit ja sitten integrointi) tai top-down suunnittelusta (ensiksi arkkitehtuuri ja sitten yksityiskohdat).

Modulaarisuus mahdollistaa ongelman ratkaisun myös olemassa olevia moduuleja käyttämällä. Tämä piirre on keskeinen pyrittäessä helposti uudelleenkäytettävään ohjelmistoon. Ohjelmiston jakaminen pienempiin itsenäisiin osioihin mahdollistaa myös rinnakkaisen kehitystyön [Lis86],

Modulaarisuus parantaa myös ohjelmiston ymmärrettävyyttä. Ohjelmisto tulisi jakaa moduuleihin siten, että moduulit suorittavat jonkin tietyn loogisen toiminnon [Ros75], Hyvin suunniteltu looginen moduulijako mahdollistaa ensinnäkin tarkastelun pelkästään yhden moduulin sisällä tuntematta muita moduuleita. Toisaalta tällaisessa ohjelmistossa kokonaisuutta voidaan tarkastella moduulitasolla tuntematta moduulien toteutuksien yksityiskohtia.

Rossin [Ros75] mukaan modulaarisuuden tarkoituksena on edellisten lisäksi parantaa luotettavuutta, geneeristen suunnitelmien ja ohjelmistojen monikäyttöä sekä ohjelmiston muokattavuutta. Kaiken kaikkiaan ohjelmiston modulaarisuus auttaa ohjelmiston hallinnassa ja ylläpidossa.

Ghezzin [Ghe91] mukaan ohjelmistosuunnittelun kulmakivinä ovat korkea koheesio ja vähäinen kytkentä. Korkean koheesion ohjelmistossa vahvasti toisiinsa liittyvät asiat on kerätty samaan moduuliin. Vähäinen kytkentä tarkoittaa moduulien välisien riippuvuuksien vähyyttä. Hyvin määritelty modulaarisuus edellyttää selkeitä rajapintoja ja selkeästi määriteltyjä kokonaisuuksia, toiminnallisuuksia, jotta moduulijako olisi luonteva ja toimiva [Ros75]. Moduulien väliset riippuvuudet on kuitenkin huomioitava, jotta kokonaisuus olisi toimiva.

Muutosten hallinnassa modulaarisuus mahdollistaa muutoksien rajaamisen pienempiin kokonaisuuksiin. Esimerkiksi sopivalla moduulijaolla voidaan rajata laitteistoriippuvuus yksittäisiin moduuleihin. Tällöin laitteistomuutokset eivät näy koko ohjelmistossa, vaan

(44)

vain pienessä osassa sitä. Modulaarisuudesta on myös hyötyä vikatilanteissa, jos virhekoodin perusteella voidaan suoraan löytää oikea ohjelmamoduuli [Par72b], Tämä vähentää vianetsintään käytettävää aikaa.

3.2.2.2 Abstraktio

Kuuluisa tiedemies, Edsger Dijkstra [Dij72], on sanonut että ihmisaivot pystyvät käsittelemään huomattavasti pienemmän määrän monimutkaisuutta kuin tekemänsä ohjelmat sisältävät. Ohjelmistojen suunnittelun ja toteutuksen suurin ongelma on monimutkaisuuden vähentäminen. Abstraktio on eräs keino tähän ongelmaan [Gut77]

[Sha84].

Abstraktiolla tarkoitetaan yleisten, keskeisten ominaisuuksien löytämistä, määrittelemistä ja tunnistamista [Ros75]. Abstraktio voidaan käsittää kuvan 15 kaltaiseksi prosessiksi, missä lähtötiedoista poistetaan tarpeettomat yksityiskohdat.

Abstrahointiprosessissa pitää päättää mitkä tiedot ovat tärkeitä ja mitkä eivät [Sha84].

oleelliset tiedot lähtötiedot

Abstrahoitui

yksityis­

kohdat

Kuva 15: Abstrahointiprosessi.

Abstraktio ei ole yksikäsitteinen, vaan samoista lähtötiedoista voidaan tehdä erilaiset abstraktiot eri käyttötarkoituksiin [Ghe91]. Toisaalta abstraktiolla voidaan yhdistää erilaiset lähtötiedot yhdeksi käsitteeksi [Ros75].

Abstraktiota esiintyy ohjelmistosuunnittelussa kaikkialla: ohjelmointikielissä, ohjelmissa, ohjelmistotuotteissa sekä prosesseissa [Ghe91]. Abstraktio voidaan jakaa monella eri tavalla. Zimmerin [Zim85] mallissa ohjelma koostuu suunnitelluista toimenpiteistä tietoon. Tällöin ohjelmistosuunnittelussa pitää abstrahoida sekä

36

(45)

operaatiot että tieto. Liskov [Lis86] tuo jaotteluun mukaan iteraation abstraktion (ks.

kappale 3.3.5.1). Bishop [Bis86] jakaa abstraktion kolmeen osaan: ohjelman, tiedon sekä mallinnuksen abstrahointi.

Liskov jakaa abstraktion toteutuksen vielä kahteen eri tapaan: parametrisointiin ja määrittelyyn. Parametrisointi tarkoittaa ohjelmointikielten tarjoamaa mahdollisuutta välittää tietoa parametreinä. Esimerkiksi lokaalisti määritelty taulukko a voidaan välittää proseduurille parametrinä. Aliohjelma (ks. kappale 3.3.3) käsittelee taulukkoa omalla nimellä, jolloin se soveltuu myös muun nimisten taulukoiden muokkaamiseen.

Abstraktio ja modulaarisuus liittyvät vahvasti toisiinsa: modulaarisuus on eräs tapa abstrahoida tietoa. Tarpeettomien yksityiskohtien kätkeminen palvelun käyttäjiltä tekee palvelua käyttävistä ohjelmamoduuleista yksinkertaisempia ja ymmärrettävämpiä.

Abstraktiolla voidaan myös rajata muutoksia: hyvin määritelty abstrakti käsite säilyy todennäköisemmin muuttumattomana kuin paljon yksityiskohtia sisältävä käsite. Tämä kannattaa huomioida erityisesti rajapintojen suunnittelussa.

Määrittelyllä erotetaan esimerkiksi aliohjelman runko sen toiminnallisuuden kuvauksesta. Näin saadaan abstrakti määrittely, joka kuvaa aliohjelman toimintaa ottamatta kantaa sen toteutukseen. Määrittelyssä voidaan käyttää lukuisia eri tekniikoita, mutta on tärkeää että toteutusta voidaan verrata määrittelyyn ja todeta niiden vastaavan toisiaan [Sha84], Määrittelyn on oltava niin selkeä, että sen käyttäjät tekevät samat tulkinnat kuin määrittelyn tehnyt suunnittelija on tarkoittanut [Zim85].

Geneerisyys voidaan saavuttaa oikeanlaisella abstrahoinnilla. Jos suunniteltu moduuli käsittelee abstrakteja käsitteitä tietämättä alemman tason yksityiskohtia, se soveltuu myös useampien eri järjestelmien ylempien tasojen moduuleiksi.

Viittaukset

LIITTYVÄT TIEDOSTOT

Ja äiti täyty pest !aste kil'ja\'at pyhäks, mut ensin1äiscs lööteris ain enstiks LVl valkose palokunnajaku, ettei vaa mukulai kirjavist olis painunu siä- .hee

- J a jos em mää ROLV \PPlUWl ny einee väistää, ni PDLWRNDQQXP me olis sälättäny päi yhtee, ja taas olis ollu uuttinc lehdis, QLlWämmäi k ahteetörmäykses

Jalm ari m uutti K euruulle vuonna 1919 Marian- päivän aamuna, jolloin hän sanoi jääneensä junasta H u ttu la n pysäkille.. M uuton syynä olivat vuoden 1917

2OL nähkääs VHPPRVHV PXOWL ODWHUDDOLVHV YDKHWXVNDXSDV saanu NXXV särkee siit hyväst, NR se VlU kelä itte&#34; oli kuus vuat madostanu mee SLKDV +lQH PLlOHVWlV lankes sit

Artikkelissa ”Inkeriläiset ja heidän suomen taitonsa mediassa” (Martikainen 2018) analysoidaan sitä, miten media esit- tää inkeriläiset paluumuuton loppuvai- heessa ja

Finnisch-ugrische Forschungen XXXI (Helsinki 1953) s.. kyseessä on nimenomaan pyydystävän verkon merkki, niin tällainen merkki, kuvas, oli ainakin yhtä tarpeellinen

Dagen palaa yhä uudestaan siihen, että länsimaisten taiteilijoiden primiti- vistinen visuaalinen ilmaisu ei joitakin harvoja poikkeuksia lukuun ottamatta perustu mihin- kään

Rupesin kuitenkin lukemaan hänen väitöskirjaansa ja löysin sieltä samoja naisia, jotka kuuluivat myös joko Jyväskylän Naisyhdistykseen tai Suomalaisen naisliiton