[go: up one dir, main page]

FI114581B - Ohjelmistokehitysympäristö - Google Patents

Ohjelmistokehitysympäristö Download PDF

Info

Publication number
FI114581B
FI114581B FI20030240A FI20030240A FI114581B FI 114581 B FI114581 B FI 114581B FI 20030240 A FI20030240 A FI 20030240A FI 20030240 A FI20030240 A FI 20030240A FI 114581 B FI114581 B FI 114581B
Authority
FI
Finland
Prior art keywords
adapter
component
software
software component
adapters
Prior art date
Application number
FI20030240A
Other languages
English (en)
Swedish (sv)
Other versions
FI20030240A0 (fi
FI20030240L (fi
Inventor
Kari Pakarinen
Juha Torkkeli
Original Assignee
Nokia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Corp filed Critical Nokia Corp
Priority to FI20030240A priority Critical patent/FI114581B/fi
Publication of FI20030240A0 publication Critical patent/FI20030240A0/fi
Priority to KR1020040009249A priority patent/KR100950212B1/ko
Priority to EP04100523A priority patent/EP1447749A3/en
Priority to US10/779,127 priority patent/US7317912B2/en
Priority to CNB2004100052515A priority patent/CN100485609C/zh
Publication of FI20030240L publication Critical patent/FI20030240L/fi
Application granted granted Critical
Publication of FI114581B publication Critical patent/FI114581B/fi

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Description

114581
Ohjelmistokehitysympäristö Keksinnön ala
Keksintö liittyy ohjelmistokehitysympäristöihin ja erityisesti ohjelmis-tokehitysympäristöihin matkaviestintään liittyviä ohjelmistoja varten.
5 Keksinnön tausta
Kuten kuviossa 1 on havainnollistettu, matkaviestintäympäristössä on useita eri tahoja, joiden välillä on tietojen siirtoa. Palveluiden käyttäjiä edustavat päätelaitteet TE. Palveluita tarjoavat palveluntarjoajat SP ja verkko MNW, esimerkiksi matkaviestinverkko. Ympäristöön voi kuulua myös sisällöntuottajia 10 CP, joiden tarjoamaa sisältöä palveluntarjoajat SP tai verkko MNW välittävät päätelaitteille TE. Eräs esimerkki on, että päätelaitteesta TE lähetetään lyhytsanoma uutisten saamiseksi matkaviestinverkkoon MNW, joka välittää sen edelleen sääpalveluntarjoajalle SP. Palveluntarjoaja SP muodostaa multime-diasanoman sääennusteita laativalta sisällöntuottajalta CP saamiensa säätie-15 tojen perusteella. Multimediasanoma välitetään matkaviestinverkkoon MNW, joka välittää sen matkaviestimelle TE. Jos matkaviestimeen TE ei saada yhteyttä, matkaviestinverkko voi tallentaa multimediasanoman sanomakeskukseen ja lähettää sen heti kun TE jälleen liittyy verkkoon. Kehitettäessä uusia palve-luita päätelaitteita TE varten, kehitettäessä uusia päätelaitteita TE tai verk- • » 20 koelementtejä ja kehitettäessä uusia toimintoja päätelaitteisiin TE tai verk-koelementteihin, on tarve testata kehitettyjen ohjelmistokomponenttien toimin-'; _ / taa.
Ohjelmistokomponentteja voidaankin testata jo kehitysvaiheessa : ohjelmistokehitysympäristössä, jolloin ei tarvita todellisia laitteita, vaan testaus • 25 voidaan suorittaa täysin ohjelmallisesti esimerkiksi yhden tietokoneen avulla.
Päätelaite-emulaattoreita on kehitetty, jotka kokonaan tai tietyiltä osin mallinta-·*· vat päätelaitteen toimintaa. Etuna tämänkaltaisista sovellusten kehitysympäris- ♦ il» töistä on, että sovelluksia ei tarvitse ladata todellisiin laitteisiin sovelluksen toi- t * * ,.· mivuuden testaamiseksi. Erästä emulaattoreita hyödyntävää sovellusten kehi- : 30 tysympäristöä on havainnollistettu US-patenttihakemusjulkaisussa nro.
20020169591. Päätelaite-emulaattori voidaan ladata ohjelmistokehitysympäris- t töön ja sitä voidaan käyttää sovelluksen toiminnan testaamiseen, esimerkiksi tarkastaa, miltä palvelun lähettämä viesti näyttää päätelaitteessa. Eri teknologioille on tyypillisesti räätälöity omat ohjelmistokehitysympäristöt, joita ei ole 35 ollut mahdollista liittää toisiinsa. Esimerkiksi eri viestintäsovelluksia varten on 2 114581 omat ohjelmistokehitysympäristöt ja Internet-selailusovelluksia varten omat ohjelmistokehitysympäristöt. Vaikka ohjelmistokehitysympäristöön voitaisiinkin ladata useita eri päätelaite-emulaattoreita, joudutaan lisäksi kehitettävän oh-jelmistokomponentin testaaminen suorittamaan erillisissä testiprosesseissa 5 jokaista päätelaite-emulaattoria varten. Esimerkkinä tästä on, että sovelluskehittäjä joutuu erikseen lataamaan jokaista puhelinmallia varten emulaattorin ja lähettämään sovelluksen muodostaman multimediaviestin erikseen jokaiseen näistä emulaattoreista.
Keksinnön lyhyt selostus 10 Keksinnön tavoitteena on siten parantaa ohjelmistokomponenttien liitettävyyttä. Keksinnön tavoite saavutetaan menetelmällä, tietojärjestelmällä, tietojenkäsittelylaitteella, ohjelmistotuotteella, tietovälineellä ja signaalilla, joille on tunnusomaista se, mitä sanotaan itsenäisissä patenttivaatimuksissa. Keksinnön edulliset suoritusmuodot ovat epäitsenäisten patenttivaatimusten 15 kohteena.
Keksintö perustuu siihen, että tietojärjestelmä käsittää sovittimia eri ohjelmistokomponentteja varten ja välityskomponentin tietojen siirtämiseksi eri sovittimien välillä, missä sovitin tarjoaa rajapinnan välityskomponenttiin ainakin yhdelle siihen liitetylle ohjelmistokomponentille ja missä välityskomponentissa 20 ylläpidetään osoitteistusinformaatiota tietojärjestelmässä olevista sovittimista.
• t ♦
Tietojärjestelmässä aktivoidaan tietojärjestelmässä ensimmäinen sovitin en-!·]’; simmäistä ohjelmistokomponenttia varten ja toinen sovitin toista ohjelmisto- • f f komponenttia varten vasteena sille, että ensimmäisen ohjelmistokomponentin ; ja toisen ohjelmistokomponentin välillä on tarve siirtää tietoja. Tietoja siirretään • · · :t<;' 25 välityskomponentissa ensimmäisen sovittimen ja toisen sovittimen välillä osoit- • » teistusinformaation mukaisesti. Sovitin viittaa yleisesti toiminnallisuuteen, joka mahdollistaa tietojen siirtämisen ohjelmistokomponentin ja välityskomponentin Välillä.
Keksinnön mukaisen järjestelyn etuna on, että tarjotaan yleinen 30 viestintäalusta, johon voidaan liittää hyvin monenlaisia eri teknologioita tukevia • » · \..t ohjelmistokomponentteja, joiden välille voidaan järjestää tiedonsiirto. Sovittimil- ia saadaan peitettyä välityskomponentin tarjoama tiedonsiirtotoiminnallisuus ohjelmistokomponenteilta ja toisaalta liitettyä eri teknologioita tukevia ohjelmis-tokomponentteja välityskomponenttiin. Kutakin ohjelmistokomponenttia varten 35 tarvitaan vain yksi sovitin. Tällöin esimerkiksi sisällönkehittäjä voi testata sisältöään erilaisissa päätelaite-emulaattoreissa käyttäen ainoastaan yhtä rajapin- 3 114581 taa välityskomponenttiin. Keksintö mahdollistaa matkaviestintäsovellusten toiminnan helpomman ja nopeamman testaamisen, koska kaikki tiedonsiirto tarvittaviin ohjelmistokomponentteihin voidaan järjestää samassa ohjelmistokehi-tysympäristössä välityskomponentin ja sovittimien kautta.
5 Keksinnön erään edullisen suoritusmuodon mukaisesti sovitin tarjo aa rajapinnan matkaviestinjärjestelmän tiedonsiirtosovellukseen, jonka kautta voidaan välityskomponentista ja sovittimesta saatu viesti välittää edelleen toiseen matkaviestimeen tai matkaviestinverkkoon. Tästä suoritusmuodosta saadaan se etu, että voidaan järjestää esimerkiksi testaus todellista laitetta käyttä-10 en tai tiedonsiirto esimerkiksi todelliseen matkaviestinverkon elementtiin oh-jelmistokehitysympäristöstä. On mahdollista testata samalla kertaa useita oh-jelmistokomponentteja, jotka voivat olla sekä todellisissa päätelaitteissa että päätelaite-emulaattoreissa.
Kuvioiden lyhyt selostus 15 Keksintöä selostetaan nyt lähemmin edullisten suoritusmuotojen yh teydessä, viitaten liitteeseen 1 ja oheisiin piirroksiin, joista:
Kuvio 1 esittää yleisesti eri osapuolia matkaviestintäympäristössä; Kuvio 2 esittää keksinnön erään edullisen suoritusmuodon mukaista ohjelmistokehitysympäristöä; : ": 20 Kuvio 3 havainnollistaa erästä tietojenkäsittelylaitetta;
Kuvio 4 havainnollistaa keksinnön erään edullisen suoritusmuodon : mukaisen sovittimen kerroksia; ’ Kuvio 5 havainnollistaa keksinnön erään edullisen suoritusmuodon . mukaisen välityskomponentin kerroksia; ja : ; 25 Kuvio 6 havainnollistaa keksinnön erään edullisen suoritusmuodon ' mukaista menetelmää.
Keksinnön yksityiskohtainen selostus
Kuvio 2 havainnollistaa keksinnön erään edullisen suoritusmuodon mukaista tietojärjestelmää 200. Tietojärjestelmä 200 voi toimia ohjelmistokehi-30 tysympäristönä, jossa eri ohjelmistokomponentteja 201 voidaan ainakin testa-ta. Ohjelmistokomponentti 201 voi olla esimerkiksi matkaviestintäsovellusten ohjelmistokehitystyökalu, päätelaite-, järjestelmä- tai palveluemulaattori, sisäl-lönkehitystyökalu, testaustyökalu, tai ulkopuolisen järjestelmän tai laitteen so- * · vellusohjelma. Tietojärjestelmä 200 käsittää useita sovittimia (Adapter) 203, 35 jotka tarjoavat liityntärajapinnan ainakin yhdelle siihen liitetylle ohjelmistokom- 4 114581 ponentille 201. Sovitin 203 erityisesti liittää (ulkopuolisen) ohjelmistokom-ponentin 201 välityskomponenttiin (Broker) 202, joka toimii sovittimien välisenä tiedonsiirto yhdyskäytävänä. Välityskomponentti 202 hoitaa kaiken tiedonsiirron sovittimien 203 ja näin ollen ohjelmistokomponenttien 201 välillä. Välitys-5 komponentti 202 on tietojärjestelmän 200 viestintäkeskus, joka huolehtii kaikesta tiedonsiirrosta sovittimien 203 välillä. Sovittimet 203 ja välityskomponentti 202 muodostavat välitystoiminnallisuuden ulkoisille ohjelmistokomponenteille 201.
Tietojärjestelmä 200 käsittää lisäksi hallintakomponentin (Daemon) 10 207, käyttöliittymäkomponentin (Console) 208, ja edullisesti suodinkomponen- tin 206 ja siihen liittyvän suodinsovittimen 205. Hallintakomponentti (Daemon) 207 hallitsee paikallisessa työasemassa suoritettavia ohjelmistokomponentteja 201, 206, välityskomponenttia 202, sovittimia 203, 205, käyttöliittymäkom-ponentteja 208, ja ylläpitää paikallista loki-tiedostoa. Käyttöliittymäkomponentti 15 208 on graafinen käyttöliittymätyökalu (GUI Tool), jonka avulla käyttäjä voi saada tietoja järjestelmästä 200 ja hallita sen toimintoja, kuten sovittimia 203, 205 ja tiedonsiirtoa välityskomponentin 202 kautta. Suodinsovitin 205 mahdollistaa välityskomponentissa 202 siirrettävien tietojen seuraamisen, analysoinnin ja mahdollisesti muuttamisen. Välityskomponentti 202 voi välittää määritet-20 tyjen sovittimien 203 välisen liikenteen suodinsovittimen 205 kautta suodin-komponentin 206 analysointia varten. Tietojärjestelmää 200 voidaan suorittaa ··· yhdessä tietojenkäsittelylaitteessa tai useissa tietojenkäsittelylaitteessa, jotka :*.,j on kytketty toisiinsa esimerkiksi TCP/IP -verkon välityksellä. On huomioitava, .··. että kuviossa 2 esitetty järjestelmä on vain eräs tapa toteuttaa keksintö, esi- 25 merkiksi käyttöliittymäkomponentin 208 ja hallintakomponentin 207 toimintoja ‘voidaan toteuttaa yhdessä komponentissa.
Kuviossa 3 on havainnollistettu tietojenkäsittelylaitetta 301, jossa toteutetaan ainakin osaa tietojärjestelmästä 200. Tietojenkäsittelylaite 301 käsit-tää muistia 302, käyttöliittymän 304, l/O-välineet 305 ulkoisen tiedonsiirron jär-:...: 30 jestämiseksi, ja yhden tai useamman prosessorin käsittävän keskusproses- :\w sointiyksikön 303 CPU (Central Processing Unit). Muistissa 302 on haihtuma- . · · ·. ton osuus keskusprosessointiyksikköä 303 kontrolloivien sovellusten ja muiden > » *·’ säilytettävien tietojen tallentamiseksi ja haihtuva osuus käytettäväksi tilapäistä datan prosessointia varten. Keskusprosessointiyksikössä 303 suoritettavilla 35 tietokoneohjelmakoodeilla voidaan aikaansaada tietojenkäsittelylaite 301 toteuttamaan kuviossa 2 ja myöhemmin kuvioiden 3, 4, 5 ja 6 yhteydessä ha- 5 114581 vainnollistettuja toimintoja, kuten yhtä tai useampaa ohjelmistokomponenttia 201, sovittimia 203, 205, hallintakomponenttia 207, käyttöliittymäkomponenttia 208 ja välityskomponenttia 202. Tietokoneohjelmakoodia voi olla tallennettuna mille tahansa yhdelle tai useammalle muistivälineelle, esimerkiksi PC.n kova-5 levylle, muistikortille tai CD-ROM-levylle, josta ne voidaan ladata niitä suorittavan laitteen 301 muistiin 302. Tietokoneohjelmakoodia voidaan myös ladata verkon kautta esimerkiksi TCP/IP-protokollapinoa (Transport Control Proto-col/lnternet Protocol) käyttäen. On myös mahdollista hyödyntää ainakin osittain kovo-ratkaisuja toteuttamaan keksinnölliset välineet.
10 On huomioitava, että kuviossa 2 havainnollistettuja toimintoja voi daan suorittaa useissa toistensa kanssa kommunikoivissa tietojenkäsittelylait-teissa 301. Tällöin tietojärjestelmä 200 voi olla hajautettu, ja esimerkiksi mat-kaviestinsovellusten kehitystä ja testausta voidaan suorittaa useissa erillisissä laitteissa 301. Tällöin välityskomponenttia 202 voivat toteuttaa eri laitteissa 15 olevat entiteetit, jotka kommunikoivat käyttäen mitä tahansa tiedonsiirtokäytäntöä, esimerkiksi TCP/IP-protokollapinoa. Hajautetussa tietojärjestelmässä voidaan järjestää etäkäyttö, jolloin ensimmäisen tietojenkäsittelylaitteen ohjelmis-tokomponentista 201, 207, 208 voidaan aktivoida toisen tietojenkäsittelylaitteen ohjelmistokomponentteja 201. Tietojenkäsittelylaite 301 voi olla mikä ta-20 hansa useita mahdollisesti suurikokoisiakin ohjelmistokomponentteja suoritta-maan kykenevä laite. Erään edullisen suoritusmuodon mukaisesti järjestel- * * · mässä 200 hyödynnetään Java-pohjaisia toimintoja, jolloin laitteessa 301 suo- ; ritetaan Java-ympäristöä (Java™ Runtime Environment). Tähän suoritusmuo- . toon on viitattu seuraavassa, on kuitenkin huomioitava, että keksintö voidaan : v. 25 toteuttaa myös muita ohjelmointitekniikoita käyttäen.
Kuviossa 4 on havainnollistettu erään edullisen suoritusmuodon mukaisen sovittimen 203, 205 kerroksia. Sovitin 203, 205 on komponentti, joka kytkee (ulkopuoliset) ohjelmistokomponentit 201, 206 välityskomponenttiin • - 202. Sovitin 203, 205 koostuu sovellusohjelmaliitännästä ohjelmistokomponen- 30 teille 201, sovituskoodista tietojen siirtämiseksi ohjelmistokomponentin 201 ja :·... sovellusohjelmaliitännän välillä, ja sovituskoodia suorittavasta osasta. Sovitin ,···. 203, 205 julkaisee rajapintoja sovituskoodin määrittämiseksi eri ohjelmisto- ”·’ komponenttien 201 ja välityskomponentin 202 välille, julkaisee järjestelmäraja- pintoja hallintakomponentin 207 ja käyttöliittymäkomponentin 208 liittämiseksi • · 35 välityskomponenttiin 202 ja ylläpitää yhteyttä välityskomponenttiin 202. Sovitin 203, 205 peittää välityskomponentin 202 toiminnallisuuden ohjelmistokom- 6 114581 ponentilta 201, 207 ja 208. Sovittimet 203, 205 voidaan toteuttaa käyttäen uudelleenkäytettäviä komponentteja sovituksen mahdollistamiseksi erilaisiin sovi-tustyyppeihin. Tällöin siis esimerkiksi eri alustoja varten muodostettavissa so-vittimissa voidaan hyödyntää samoja komponentteja.
5 Sovitin 203 käsittää sovituskerroksen, joka muodostuu kehysraja- pinnasta (Framework IF) 407, palvelurajapinnasta (Service IF) 406 ja pisteestä pisteeseen -rajapinnasta (P2P IF) 405. Sovituskerroksen alla on toteutusker-ros (Implementation Layer), joka käsittää kehyssovellusohjelmaliitännän (Framework API) 402, palvelusovellusohjelmaliitännän (Service API) 403, ja pis-10 teestä pisteeseen sovellusohjelmaliitännän (Point to Point API) 404. Toteutus-kerroksen alla on vielä kuljetuskerros (Transporter Layer), joka käsittää tiedon-siirtosovellusohjelmaliitännän (Communication API) 401. Sovituskerros 405, 406, 407 on perussovitusrajapinta ulkopuolisen ohjelmiston kytkemiseksi väli-tyskomponenttiin 202, se liittää toteutuskerroksen 402, 403, 404 kohteena ole-15 vaan teknologiaan. Sovituskerros on ainoa kerros, jota täytyy muuttaa kehitettäessä sovitinta 203 uuteen teknologiaan. Kehysrajapinta 407 on päärajapinta sovittimen 203 liittämiseksi välityskomponenttiin 202 ja sisältää yleiset sovitti-meen liittyvät toiminnat, kuten pisteestä pisteeseen rekisteröitymisen. Palvelu-rajapinta 406 hoitaa tapahtumapohjaisen (Event Based) datan, eli tapahtumi-20 en, synkronisen ja asynkronisen siirtämisen ja vastaanottamisen. Pisteestä L,.: pisteeseen -rajapinta 405 sisältää pisteestä pisteeseen -yhteyksien, eli P2P- yhteyksien hallitsemiseen liittyvät toiminnot. Se informoi sovitinta 203 kun jokin : toinen sovitin 203 haluaa avata yhteyden, se mahdollistaa sisäänmeno- ja ,'·. ulostulovirtojen avaamisen ja sulkemisen välityskomponenttiin 202 liitettyyn 25 sovittimeen 203. Sovituskerroksen lohkot 405, 406 ja 407 käyttävät vastaavasti toteutuskerroksen sovellusohjelmaliitäntöjä 404, 403, 402. Erään edullisen suoritusmuodon mukaisesti sovituskerros 405, 406, 407 on alustariippumaton Java-toteutus. Kuljetuskerros, eli tiedonsiirtosovellusohjelmaliitäntä 401 kytkee sovittimen 203 välityskomponenttiin 202. Se huolehtii yhteyksistä, yhteysvir-30 heistä ja automaattisesta yhteyksien uudelleenmuodostamisista. Erään edulli-sen suoritusmuodon mukaisesti sovittimen 203 ja välityskomponentin 202 väli-.···. nen tiedonsiirto on RMI-pohjaista (Remote Method Invocation), jolloin kuljetus- kerros piilottaa RMI-toiminnallisuuden muilta lohkoilta.
Sovitus ohjelmistokomponentin 201, 206 ja välityskomponentin 202 !.' i 35 välillä voidaan toteuttaa kahdella eri tavalla: ohjelmistosovituksella (Software
Adaptation) tai tiedonsiirtosovituksella (Communication Adaptation). Ohjelmis- 7 114581 tosovituksessa ohjelmistokomponentit 201 on integroitu suoraan sovitinrajapin-toihin ohjelmallisesti 401 - 407 käyttäen API-kutsuja (sovellusohjelmaliitäntä-kutsuja). Näin ollen sovittimen 203 sovituslogiikkaa ja kuviossa 4 havainnollistettuja toimintoja voidaan suorittaa ohjelmistokomponentin 201 prosessissa.
5 Tästä suoritusmuodosta saadaan se etu, että myös ohjelmistokomponenttia 201 on mahdollista hallita tietojärjestelmästä 200 (hallintakomponentista 207).
Tiedonsiirtosovituksessa ohjelmistokomponentti 201 kommunikoi sovittimen 203 kanssa käyttäen jotakin tiedonsiirtoprotokollaa. Sovitin 203 ja ohjelmistokomponentti 201 ovat erillisiä prosesseja ja täysin erotettuja toisis-10 taan. Kuljetusprotokolla voi olla mikä tahansa protokolla, jota alla oleva käyttöjärjestelmä ja ohjelmointikieli tukevat, esimerkiksi TCP/IP -pohjainen protokolla tai tiedostojensiirto. Tiedonsiirtosovitusta varten voidaan sovittimiin 203 määrittää lisäksi erilaisia yleisiä tiedonsiirtokomponentteja, kuten lähetyskomponentti 408 (Sender) ja vastaanottokomponentti 409 (Receiver), jotka hoitavat tietojen 15 siirtämisen ohjelmistokomponentin 201 ja sovittimen 203 välillä niiden osoitetietojen perusteella. Esimerkkeinä voivat olla määritetystä TCP/IP-portista tietoja vastaanottava vastaanottokomponentti 409 ja määritettyyn hakemistoon ja tiedostoon kirjoittava lähetyskomponentti 408. Tiedonsiirtokomponenttien lisäksi tiedonsiirtosovituksessa käytetään sisällön käsittelijäkomponenttia 410 20 (Content Handler), joka ymmärtävät määritettyä sisältöä ja hoitavat sisällön i 11 välitystä, esimerkiksi HTTP-komentojen siirtoa. Tiedonsiirtosovitus mahdollis-y taa sovittimen 203 toteuttamisen olemassa olevia komponentteja hyödyntäen ohjelmistokomponentteja 201 varten niin, ettei ohjelmistokomponenttien koo- • · .'1 *. diin tarvitse tehdä muutoksia.
• · · » 25 Mallinteen luominen on helppoa, kun ohjelmistokomponentin 201 • · ominaisuudet ovat tiedossa. Ensin määritetään sovitusmekanismi, eli onko ky- • · seessä ohjelmistosovitus vai tiedonsiirtosovitus. Tämän perusteella luodaan , mallinne, eli määritetään käytettävät elementit ja annetaan niille oletusarvot.
I l » ·;;; Tiedonsiirtosovituksessa tarvitaan eri elementtejä kuin ohjelmistosovituksessa, 30 erityisesti tarvitaan lisäksi tiedonsiirron järjestämisen mahdollistavien kompo-nenttien 408, 409 ja 410 asetukset. Mallinne integroidaan ohjelmistokompo- • .·*·. nenttiin 201 ohjelmistosovituksessa. Muodostetusta mallinteesta luodaan asennustiedostot, joilla mallinne saadaan asennettua tietojärjestelmään 200. ’;·· Pohjana voidaan käyttää esim. liitteessä 1 havainnollistettuja elementtejä, joille i 35 määritetään oletusarvot.
8 114581
Erilaisia ohjelmistokomponentteja 201, joita voidaan kutsua tuotteiksi, varten määritetään konfiguroituja sovittimia 203 mallinteiden (Template) perusteella. Mallinne esittää asennettua (ulkoista) ohjelmistokomponenttia 201 ja sisältää tarvittavaa informaatiota sen ominaisuuksista tietojen siirron järjes-5 tämiseksi. Mallinne sisältää ohjelmistokomponentin 201 integroimiseksi yleisen määrittelyn, jota voidaan käyttää sovittimen 203 konfiguroimiseksi juuri kyseistä ohjelmistokomponenttia 201 varten. Mallinne määrittää erityisesti elementtejä sovittimen identifioimiseksi ja sen ominaisuuksien määrittämiseksi, kuten palvelutyypin tunnisteen. Mallinne edullisesti käsittää myös elementin host ad-10 dress-osoitteen määrittämiseksi, jota voidaan käyttää esimerkiksi eri laitteessa olevan sovittimen aktivoimiseen. Mallinne voi myös sisältää sovittimen hallintaan liittyviä elementtejä ja tiedonsiirtosovitukseen liittyviä elementtejä, esimerkiksi elementit lähettäjän ja vastaanottajan luokkanimille. Jokainen konfiguroitu sovitin 203 identifioidaan sovitinkonfiguraatioon tallennetun tunnisteen perus-15 teella. Tämä tunniste on merkkijono, joka voi olla esimerkiksi puhelinnumero. Konfiguroitu sovitin liitetään välityskomponenttiin 202, jonka jälkeen sen kautta voidaan siirtää tietoja. Mallinnetta voidaan käyttää myös käyttöliittymäkom-ponentissa 208 esittämään käyttäjälle järjestelmään 200 asennettuja ohjelmistokomponentteja 201. Erään edullisen suoritusmuodon mukaisesti mallinne 20 sisältää yhden tai useamman informaatiota sisältävän XML-tiedoston ja sovi-. tinspesifisiä Java-luokkia ja -resursseja sisältävä JAR-tiedoston. Erilaisia oh- ; i jelmistokomponentteja varten kehitetään omat mallinteet, esimerkiksi jokaisella matkaviestinemulaattorille on oma matkaviestinmallinkohtaiset mallinteensa.
• *
Liitteessä 1 on havainnollistettu DTD-määritystä (Document Type Definition) 25 mallinteelle, eli siinä on havainnollistettu elementtejä, joita erään suoritusmuo- • * don mukainen mallinne ja siitä määritetty konfiguraatio voi käsittää. Erään edullisen suoritusmuodon mukaisesti samasta mallinteesta voidaan konfiguroida useita sovittimia 203 tietojärjestelmään 200, jolloin järjestelmään 200 voi- ···· daan järjestää esimerkiksi useita samanlaisia rinnakkaisia matkaviestinemu- 30 laattoreita.
Kuviossa 5 on havainnollistettu erään edullisen suoritusmuodon » .···. mukaisen välityskomponentin 202 kerroksia. Välityskomponentti 202 toimii viestintäalustana ohjelmistokehitysjärjestelmässä 200. Se suorittaa seuraavia *;··| toimintoja: • * · 35 - ylläpitää listaa 506 asennetuista mallinteista 9 114581 - hallitsee listaa 507 siihen liitetyistä sovittimista 203, 205 ja niiden ominaisuuksista - hallitsee sovittimien 203, 205 osoitteistusinformaatiota - hallitsee tapahtuma- ja virtapohjaista tiedonsiirtoa sovittimien 5 203, 205 välillä - tarjoaa komentorajapinnan sovittimille 203, 205 komentojen toteuttamiseksi esimerkiksi sovittimen 203, 205 sulkemiseksi tai liitettyjen sovittimien listan saamiseksi - informoi sovittimia 203, 205 muutoksista käytettävissä olevissa 10 mallinteissa, konfiguraatioissa ja sovittimien tiloissa.
Välityskomponentti 202 käsittää rajapinnat käsittävän rajapintaker-roksen, jossa on välitysrajapinta (Broker IF) 502, tapahtumakutsurajapinta (Event Callback Interface) 503, ja pisteestä pisteeseen -yhteyksien rajapinta (P2P Pipe IF) 504. Rajapinta 502 sisältää yleisiä välityskomponenttiin 202 liit-15 tyviä toimintoja, esimerkiksi lähetystoiminnon. Rajapinta 503 sisältää tapahtumapohjaisen tiedonsiirron toimintoja tapahtumapohjaisen tiedonsiirron järjestämiseksi sovittimien 203, 305 kanssa. Rajapinta 504 sisältää toimintoja si- * ; sääntulevien ja ulostulevien virtojen käsittelemiseksi. Välityskomponentin 202 toteutuskerros käsittää erään edullisen suoritusmuodon mukaisesti välittimen 20 toteutusluokat; välittimen (Broker) 501 ja pisteestä pisteeseen välitystoiminnal- lisuuden (P2P Pipe) 505. Välityskomponentin 202 konfiguraatio on tallennettu ·’: edullisesti XML-tiedostoon. Konfiguraatio sisältää yleiset välityskomponentin :"': 202 asetukset, kuten yleislähetysnumerot ja RMI-portit.
• · ·
Tyypillisesti välityskomponentti 202 reitittää viestit suoraan sovitti-25 mesta 203 toiseen. Viestit voidaan myös välittää suodinsovittimen 205 ja suo-dinkomponentin 206 kautta. Tällöin suodinkomponentti 206 voi puuttua vies- • · teihin ja esimerkiksi simuloida tiedonsiirtovirheitä siirrettäviin viesteihin. Lähet- • · i ’·· tävät ja vastaanottavat sovittimet 203 eivät havaitse suodinsovitinta 205. Väli- tyskomponentissa 202 voidaan käyttää myös staattista reititystä. Tällöin väli-.·*·. 30 tyskomponentti 202 asettaa esimerkiksi testaustilannetta varten reititystauluun i’/. merkinnän, jonka mukaisesti viestit ensimmäisestä sovittimesta 203 välitetään ' ' automaattisesti määritettyyn toiseen sovittimeen 203, jolloin siirrettävissä pake teissa ei edes tarvita kohdeosoitetta.
10 114581
Sovittimille 203, 205 määritettyjä tunnisteita voidaan käyttää viestin-täosoitteina välityskomponentissa 202. Tällöin ensimmäinen sovitin 203, 205 voi indikoida P2P-yhteyttä aktivoitaessa toisen sovittimen 203, 205 tunnisteen, jonka kanssa on tarpeen kommunikoida. Välityskomponentissa 202 voidaan 5 määrittää kohdesovitin myös siirrettävänä olevasta datakokonaisuudesta. Sovitin 203 esimerkiksi määrittää lähetettävän lyhytsanoman kohdenumerokentäs-tä kohdepuhelinnumeron. Tämä kohdepuhelinnumero asetetaan välityskom-ponentille 202 lähetettävän lyhytsanoman käsittävän datapaketin kohdeosoit-teeksi, minkä perusteella välityskomponentti 202 siirtää datapaketin sovitti-10 meen 203, 205, jonka tunnisteeksi on (listassa 507) määritetty mainittu puhelinnumero. Kuten jo mainittiin, erään suoritusmuodon mukaisesti sovittimien 203, 205 ja välityskomponentin 202 välinen tiedonsiirto toteutetaan yleisiä RMI-toimintoja käyttäen, jolloin sovittimilla 203, 205 on omat RMI-rajapintansa (loogiset portit) välityskomponenttiin 202.
15 Järjestelmä 200 voi myös käsittää yleislähetys- tai monilähetysosoit- teita. Jos viesti lähetetään yleislähetysosoitteeseen, välityskomponentti 202 lähettää kopiot viestistä kaikille toiminnassa oleville sovittimille 203. Erään edullisen suoritusmuodon mukaisesti välityskomponentti 202 ylläpitää listassa 507 myös tietoja liitettyjen sovittimien 203 ominaisuuksista (eli täten niiden 20 edustamien ohjelmistokomponenttien 201 ominaisuuksista) ja tarkastaa ohjel-:”*! mistokomponentin 201 ominaisuudet kun siihen ollaan lähettämässä tapahtu- **· maa tai muodostamassa yhteyttä. Tällöin välityskomponentti voi järjestää tieto- jen siirron vain toistensa kanssa tiedonsiirtoon kykenevien sovittimien 203 ja ♦ » .·**. ohjelmistokomponenttien 201 välille. Järjestelmässä voidaan esimerkiksi halu- :v, 25 ta lähettää viesti kaikille MMS-teknologiaa (Multimedia Messaging Service) tukeville ohjelmistokomponenteille 201. Tämänkaltaiselle ryhmälähetykselle voidaan käyttää esimerkiksi erityistä palvelutyyppispesifistä osoitetta, jonka perusteella välityskomponentti 202 tietää, että on kyse tietylle palvelutyypin ·· · ohjelmistokomponenteille kohdistuvasta ryhmälähetyksestä. Tällöin välitys- 30 komponentissa 202 tarkastetaan liitettyjen sovittimien listan 507 perusteella, minkä sovittimien 203 palvelutyypiksi on sovitinkonfiguraatiossa määritetty » .···. MMS. Tämän jälkeen välityskomponentti 202 lähettää viestin kaikille MMS- [ · ‘ palvelua tukeville sovittimille 203.
On huomioitava, että kuvioissa 4 ja 5 havainnollistetut sovittimen • i \: 35 202 ja välityskomponentin 203 toiminnot ovat eräs tapa toteuttaa ne tietojärjes telmässä 200. Kaikki kuvioiden 4 ja 5 yhteydessä esitetyt toiminnot eivät ole 11 114581 välttämättömiä ja toisaalta myös uusia toimintoja voidaan lisätä sovittimeen 202 ja/tai välityskomponenttiin 203.
Seuraavassa on havainnollistettu kuvioon 6 viitaten uuden ohjelmis-tokomponentin 201 liittämistä ohjelmistokehitysympäristön tietojärjestelmään 5 esimerkiksi sen testaamista varten. Kun uutta ohjelmistokomponenttia 201 halutaan liittää järjestelmään 200, sille luodaan konfiguroitu sovitin 203 mallinteen perusteella. Järjestelmässä 200 voidaan käyttöliittymäkomponentin 208 kautta aktivoida asennusohjelma, joka asentaa järjestelmään 200 uuden ohjelmisto-komponentin 201 ja sitä varten luodun mallinteen 601. Hallintakomponentti 10 207 havaitsee uuden mallinteen ja ilmoittaa siitä välityskomponentille 202. Väli-tyskomponentti 202 yleislähettää tiedon uudesta mallinteesta tarvittaessa käyt-töliittymäkomponenteille 208.
Käyttäjältä käyttöliittymäkomponentin 208 kautta vastaanotetun syötteen 602 perusteella voidaan mallinteesta muodostaa konfiguroitu sovitin 15 203 liittämällä 603 mallinteesta otettuun kopioon käyttäjän omat asetukset, ainakin asettamalla sovittimelle 203 tunniste. Käyttäjän mahdollisesti antamat asetukset korvaavat mallinteesta saadut oletusasetukset. Konfiguroitu sovitin 203 antaa ohjelmistokomponentille 201 tunnisteen järjestelmässä 200, siinä voi olla määritettynä erilaisia ohjelmistokomponenttiin 201 liittyviä parametreja, 20 kuten tiedostonimiä ja hakemistopolkuja. Välityskomponentti 202 tallentaa 604 : konfiguraation myöhempää käyttöä varten. Konfiguraatio tallennetaan erään edullisen suoritusmuodon mukaisesti XML-tiedostoksi (XML-muotoisesta mal- linteesta). Nyt uudelle ohjelmistokomponentille on määritetty sovitin 202, jota * käyttäen sille voidaan järjestää tiedonsiirtoyhteys välityskomponentin kautta v. 25 muihin ohjelmistokomponentteihin.
,, Konfiguroidusta sovittimesta 203 (ja sen määrittämästä ohjelmisto- '· komponentista 201) tulee osa tietojärjestelmää 200, kun sovitin 203 liitetään välityskomponenttiin 202, erityisesti sen ylläpitämään listaan 507 liitetyistä so-
I I
><·: vittimista. Tällöin sovittimeen 203 voidaan lisäksi liittää ajonaikaiset asetukset, 30 kuten sen isäntä. Käyttäjä voi käyttöliittymäkomponentin 208 kautta aikaan- saada ohjelmistokomponentin 201 käynnistämisen esimerkiksi siihen liitetyn tunnisteen 1111 perusteella, jolloin hallintakomponentille 207 välittyy komento ’·’ 605 myös sovittimen 203 liittämiseksi. Hallintakomponentti 207 käynnistää :.. >: ohjelmistokomponentin 201 ja sovittimen 203. Sovittimesta 203 voidaan tämän * · \ i 35 jälkeen lähettää välityskomponentille 202 pyyntö tunnisteella 1111 identifioidun sovittimen liittämiseksi, jolloin välityskomponentti 202 (välitin 501) hakee 606 12 114581 sovittimen konfiguraation tunnisteen 1111 perusteella. Välityskomponentti 202 välittää tunnisteeseen 1111 liitetyn konfiguraation sovittimille 203 ja lisää sovittimen 203 ylläpitämälleen liitettyjen sovittimien listalle 507, eli liittää 607 sovittimen 203 välityskomponenttiin 202.
5 Tämän jälkeen voidaan järjestää tiedonsiirto liitetyn sovittimen 203 kautta ohjelmistokomponenttiin/ohjelmistokomponentista 201. Kun on tarve siirtää tietoja liitetyn sovittimen 203 kautta vasteena siihen liitetyltä ohjelmisto-komponentilta 201 tai välityskomponentista 202 vastaanotetulle komennolle 608, aktivoidaan 609 sovitin 203. Sovitin 203 aktivoidaan tyypillisesti, kun käytti o täjä valitsee ohjelmistokomponentin 201 tarjoamassa käyttöliittymässä tiedonsiirron johonkin toiseen ohjelmistokomponenttiin. Sovittimen 203 aktivoinnissa 609 asetetaan tarvittavat resurssit, esimerkiksi P2P-rajapinta 405 vastaanot-tamaan/lähettämään tietoja. Tämän jälkeen tietoja voidaan siirtää 610 sovittimen 203 ja jonkin toisen sovittimen 203 välillä välityskomponentin 202 kautta.
15 Järjestelmän 202 käyttäjä voi jäljittää toiminnassa olevat sovittimet 203, 205 käyttöliittymäkomponentin 208 ja sovittimen 203 kehysrajapinnan 407 kautta. Tällöin välityskomponentin 202 ylläpitämän järjestelmään liitettyjen sovittimien listan 507 perusteella ilmoitetaan käytettävissä olevista sovittimista (ja/tai erityisesti niihin liitetyistä ohjelmistokomponenteista 201).
20 Seuraavassa on yksityiskohtaisemmin kuvattu eri mahdollisuuksia • ·. järjestää tiedonsiirto sovittimien 203 ja välityskomponentin 202 kautta, eli kuvi- on 6 vaiheita 609 ja 610. Kuten on jo mainittu, tiedonsiirto sovittimien 203, 205 ‘. välillä voi olla yhteydellistä tai tapahtumapohjaista eli yhteydetöntä.
Tapahtumapohjaisessa tiedonsiirrossa sovitin 203, 205 hankkii pal- ;* 25 velurajapintainstanssin 403, 406 kehysrajapinnan 407 kautta. Myös lähettävä • ♦ sovitin hankkii palvelurajapintainstanssin 403, 406, ellei sitä jo ole. Molemmat sovittimet 203, 205 lisäävät palvelurajapintaan 403, 406 kuunteluaktiviteetin tuleville tapahtumille. Sovitin 202 pakkaa ohjelmistokomponentilta 201 vas- ;:· taanotetun lähetettävän sisällön tapahtumaksi, jolla on lähetystunniste ja vas- : 30 taanottavan sovittimen 203, 205 tunniste. Tapahtuma lähetetään välityskom- ponentille 202, joka etsii ylläpitämältään listalta 507 vastaanottavan sovittimen 203 saadakseen selville, onko vastaanottava sovitin aktiivinen ja voiko se pro- sessoida tämänkaltaista tapahtumaa. Jos näin on, välityskomponentti 202 lä- hettää tapahtuman osoitetulle vastaanottavalle sovittimelle 203. Osoitettu vas- :' ·,: 35 taanottava sovitin 203 vastaanottaa tapahtuman kuuntelijan kautta ja välittää * · tapahtuman sisällön ohjelmistokomponentille 201. Jos on kyseessä synkroni- 13 114581 nen tapahtuma, vastaanottava sovitin 203 lähettää vastaustapahtuman lähettävälle sovittimelle 203.
P2P-tiedonsiirtoa varten aloittava sovitin 203 lähettää rajapinnan 407 kautta pyynnön yhteyden avaamisesta. Yhteyttä varten järjestetään P2P-5 rajapinta 405, joka esittää yhteyttä yhteyden toiseen päätepisteeseen, eli kutsuttavaan sovittimeen 203. Välityskomponentti 202 välittää toiselle sovittimelle 203 pyynnön P2P-yhteyden avaamiseksi, joka vastaanottaa sen kuunteluraja-pinnan kautta. Molempien sovittimen 203 rajapinnat 405 asetetaan lähettämään ja/tai vastaanottamaan datavirtaa. Datavirrat voivat olla erään edullisen 10 suoritusmuodon mukaisesti tavanomaisia java.io-virtoja, välityskomponentin 202 tarjoaman P2P-yhteyden kautta voidaan sinänsä kuljettaa mitä tahansa datavirtaa.
Erään suoritusmuodon mukaisesti tietojärjestelmässä 200, edullisesti hallintakomponentissa 207 toteutetaan havainnointitoimintoa, joka auto-15 maattisesti havaitsee uuden ohjelmistokomponentin 201, esimerkiksi tietojen-käsittelylaitteeseen 301 asennetun päätelaite-emulaattorin. Tämä havainnointi-toiminto voi uuden ohjelmistokomponentin havaittuaan suorittaa kuviossa 6 havainnollistettuja toimintoja ja liittää sen tietojärjestelmään 200, eli järjestää sille sovittimen 203 välityskomponenttiin 202 liittymiseksi.
20 Vielä erään suoritusmuodon mukaisesti tietojärjestelmässä 200 tar jotaan käyttöliittymäkomponentin 208 kautta käyttäjälle visuaalinen näkymä u tietojärjestelmän 200 topologiasta, erityisesti ohjeimistokomponenteista 201.
; Tällöin käyttäjälle saadaan havainnollinen kokonaisnäkymä tietojärjestelmästä I i ψ 200 graafisia ikoneita käyttäen. Käyttäjälle voidaan tarjota mahdollisuus piirtä-‘; · · * 25 mällä määrittää uusia komponentteja ja liityntöjä olemassa olevien komponent- : .·’ tien välille. Esimerkiksi jos käyttäjä piirtää viivan kahden ohjelmistokomponen- tin 201 välille, niiden sovittimet 203 voidaan automaattisesti aktivoida ja niiden välille voidaan järjestää tiedonsiirtoyhteys. Kun käyttäjä lisää uuden ohjelmis-··· tokomponentin 201 tietojärjestelmään 200 lisäämällä sen ikonin kuvaan, voi- 30 daan suorittaa kaikki ohjelmistokomponentin 201 ja sen sovittimen 203 konfi-,* guroimiseen ja liittämiseen kuuluvat toiminnot, eli suorittaa kuvion 6 vaiheet 601-607. Tämä suoritusmuoto parantaa edelleen ohjelmistokehitysympäristön <·>: käytettävyyttä, koska uusien komponenttien lisääminen ja muokkaaminen on ‘ *': käyttäjälle helppoa.
: 35 Hyvin erilaisia ohjelmistokomponentteja 201 voidaan siis liittää toi siinsa esillä olevan erään edullisen suoritusmuodon mukaisessa tietojärjestel- 14 114581 mässä 200 sovittimien 203 ja välityskomponentin 202 kautta. Seuraavassa on esitetty eräitä esimerkkejä, kuinka tiedonsiirto voidaan järjestää erilaisissa topologioissa ja kuinka edellä havainnollistettua tietojärjestelmää 200 voidaan hyödyntää erilaisissa ohjelmistokehitystilanteissa.
5 Ensimmäisessä esimerkissä tiedonsiirto järjestetään palvelimen oh jelmistokehityksen testaamisen järjestämiseksi SMS/MMS -ympäristössä (Short Message Service). Tällöin palvelimelle MMS-sovellusta kehittävä sovelluskehittäjä voi helposti testata sovelluksensa toimivuutta eri päätelaite-emulaattoreiden kautta. Päätelaite-emulaattorista lähetetään lyhytsanoma so-10 vittimen 203 kautta välityskomponenttiin 202. Välityskomponentti 202 havaitsee, että SMS-palvelinemulaatioympäristö on liitetty välityskomponenttiin 202 SMS-palvelinemulaattoriin liitetyn välittimen 203 kautta, ja reitittää viestin sille. Välityskomponentti 203 välittää lyhytsanomapalvelun SMS-palvelinemulaat-torille (SMSC emulator; Short Message Service Center), eli verkon lyhytsano-15 mapalvelua emuloivalle toiminnolle. SMS-palvelinemulaattori välittää lyhytsanoman ulkopuoliselle testattavalle MMS-sovellukselle, esimerkiksi CIMD -protokollaa (Computer Interface to Message Distribution) käyttäen. MMS-sovellus vastaanottaa indikaation lyhytsanomasta. Tässä esimerkissä sovelluslogiikka luo MMS-viestin ja lähettää sen takaisin lyhytsanoman lähettävälle päätelaite-20 emulaattorille. MMS-sovellus lähettää MMS-viestin MMS-palvelinemulaat-torille, eli MMS-toimintaa emuloivalle ohjelmistokomponentille esimerkiksi EAIF ·, -protokollaa (External Application Interface) käyttäen. MMS-palvelinemulaat- tori välittää siihen liitetyn sovittimen 203 kautta viestin välityskomponenttiin / 202. Välityskomponentti 202 välittää viestin ylläpitäneensä osoitteistustietojen » ; ‘ 25 perusteella oikealle päätelaite-emulaattorille siihen liitetyn sovittimen 203 kaut ta. Sovitin 203 (joka voi olla sama tai eri sovitin kuin lyhytsanomaa lähetettäes-sä) välittää MMS -viestin päätelaite-emulaattorille 201, jossa MMS -viesti voidaan katsoa ja tarkastaa onko se tavoitellun mukainen. Tässä suoritusmuo-: * dossa sovelluskehittäjä voi yhtäältä testata kehittämänsä sovelluksen toimintaa 30 ja etsiä virheitä siinä ja toisaalta testata sovelluksen muodostaman viestin oikeellisuutta eri päätelaitteissa samassa ohjelmistokehitysympäristössä.
*,// Toisessa esimerkissä sisällönkehittäjä voi helposti välittää sisältön- ‘ ’ sä eri päätelaite-emulaattoreille ja/tai todelliselle päätelaitteelle ja nähdä kuinka : ’' ‘: sisältö esitetään eri päätelaitteissa. Sisällöntuottajan sisällönkehitysohjelmisto- *» » 35 komponentista (201) välitetään sisältö, esimerkiksi MMS-viesti, vain yhtä raja- • · pintaa käyttäen, eli sisällönkehitysohjelmistokomponenttiin liitetyn sovittimen 15 114581 203 kautta eri päätelaite-emulaattoreille välityskomponentin 202 ja päätelaite-emulaattoreihin liitettyjen sovittimien 203 kautta. Sisältö voidaan välittää myös todelliseen langattomaan päätelaitteeseen esimerkiksi Bluetooth-ympäristöön (Bluetooth-sovellukseen) liitynnän tarjoavan sovittimen 203 kautta. Tämänkal-5 täinen sovitin muuntaa MMS-viestin Bluetooth-yhteyden kautta lähetettäväksi, minkä jälkeen sisältöä kehittäneen tietojenkäsittelylaitteen Bluetooth-sovellus voi välittää viestin todelliselle päätelaitteelle. Näin ollen on mahdollista testata samalla kertaa useita ohjelmistokomponentteja, jotka voivat olla sekä todellisissa päätelaitteissa että päätelaite-emulaattoreissa. Välityskomponenttiin 202 10 voi myös olla kytkettynä sovitin 203, jonka kautta saadaan liityntä teleoperaattorin verkkoon, esimerkiksi 3GPP-järjestelmän (Third Generation Partnership Project) MMS -välitystoiminnallisuuteen, minkä kautta sisältö voidaan välittää todelliselle päätelaitteelle TE tai matkaviestinverkkoon MNW.
Kolmannessa esimerkissä sovelluskehittäjä voi testata ja/tai simu-15 loida Bluetooth -sovellusta yhdessä tietojenkäsittelylaitteessa käyttäen päätelaite-emulaattoria, sovittimia 203, välityskomponenttia 202 ja Bluetooth-ympä-ristösimulaattoria käyttäen. Ohjelmistokehityskomponentissa (201) kehitetään Bluetooth-sovellusta. Kehitettävän sovelluksen ohjelmisto voidaan siirtää so-velluskehityskomponentin sovittimen 203, välityskomponentin 202 ja pääte-20 laite-emulaattorin sovittimen 203 kautta päätelaite-emulaattorille. Päätelaite- .· ·. emulaattorissa voidaan suorittaa vastaanotettua sovellusta ja testata sitä Blue- • · tooth -ympäristön simulaattoria ja/tai todellista Bluetooth -ympäristöä vastaan ‘. käyttäen näille järjestettyjä sovittimia 203.
Neljännessä esimerkissä kehitetään päästä päähän lyhytsanoma- > · 25 sovellusta ohjelmistokehitysympäristössä, jonka sovittimen 203 ja välityskom-; ponentin 202 kautta sovellus välitetään päätelaite-emulaattorille ja lyhytsano- ,.makeskusemulaattorille (tai palvelinemulaattorille). Tämän jälkeen viestejä voidaan välittää päätelaite-emulaattorin (asiakas) ja lyhytsanomakeskusemulaat-:· torin tai palvelinemulaattorin välillä siirretyn sovelluslogiikan mukaisesti, jolloin 30 sovelluslogiikan toimivuus voidaan testata jopa yhtä tietojenkäsittelylaitetta käyttäen.
Kuten jo edellä olevien esimerkkienkin perusteella voidaan nähdä, ;·’ keksinnön mukaisella ratkaisulla voidaan tarjota päästä-päähän sovellusten testaus käytettävissä olevista teknologioista riippumatta. Esimerkiksi Java-· ,: 35 emulaattorissa (201) suoritettava sovellus lähettää Java-rajapinnan (java API) kautta lyhytsanoman SMS, joka siirretään sovittimien (203) ja välityskom- 16 114581 ponentin 202 kautta järjestelmässä olevalle palvelulle (201). Tämä palvelu kuuntelee SMS-viestejä, ja saatuaan SMS-viestin, se muodostaa MMS-viestin, joka lähetetään palveluun liitetyn sovittimen 201 ja välityskomponentin 202 kautta ympäristössä oleville MMS-ohjelmistokomponenteille (esim. emulaatto-5 rit, MMSC, MMSC-simulaattori). Näin ollen esillä olevan keksinnön mukaisella ratkaisulla voidaan ’ketjuttaa’ sovelluksia niiden toiminnan helpoksi testaamiseksi. Sovellus voi olla luonnollisesti toteutettu myös mitä tahansa muuta ohjelmointikieltä käyttäen, kuten esimerkiksi C-, C++-, tai Pascal-kieltä käyttäen. Lyhytsanoman sijaan voidaan välittää IP-muotoisia viestejä, MMS-viestejä, tai 10 HTTP-protokollan mukaisia viestejä, eli siirtokäytäntö voi olla mikä tahansa jo olemassa oleva tai tulevaisuudessa käytettävissä oleva. Eräitä käytettävissä olevia siirtokanavia ovat lyhyen kantaman radioyhteydet, solukkoyhteydet, kuten GPRS- tai UMTS-yhteydet tai optiset yhteydet, kuten infrapuna.
Alan ammattilaiselle on ilmeistä, että tekniikan kehittyessä keksin-15 nön perusajatus voidaan toteuttaa monin eri tavoin. Keksintö ja sen suoritusmuodot eivät siten rajoitu yllä kuvattuihin esimerkkeihin vaan ne voivat vaihdella patenttivaatimusten puitteissa.
t * * t ·» > »» 17 114581
Liite 1: DTD-kuvaus <?xml version="l.O" encoding="ISO-8859-l"?> <!ELEMENT Property EMPTY> 5 <!ATTLIST Property
Id ID #IMPLIED Name CDATA #REQUIRED Value CDATA #REQUIRED
> 10 <!ELEMENT ClassName (#PCDATA)> <!ELEMENT Description (#PCDATA)> <!ELEMENT FrameworkConfiguration (AdapterConfiguration | AdapterUIConfiguration)> <!ELEMENT AdapterConfiguration (ClassName?, AdapterHosting, 15 Adapterldentification, InstanceSettings?, ServiceSupports, ProductManagement?, Property*)> <!ELEMENT AdapterHosting EMPTY> <!ATTLIST AdapterHosting
HostAddress CDATA #IMPLIED 20 Autostart (TRUE | FALSE) #REQUIRED
> <!ELEMENT InstanceSettings EMPTY>
<!ATTLIST InstanceSettings MaxCount CDATA #REQUIRED
25 ActionWhenViolated (NONE | KILL) #REQUIRED
> <!ELEMENT ServiceSupports (ServiceSupport+)> <!ELEMENT ServiceSupport (ServiceType, ServiceVersion,
ContentHandlers?, Senders?, Receivers?)> 30 <!ATTLIST ServiceSupport
ServicelD ID #REQUIRED
CanReceive (TRUE | FALSE) #REQUIRED
Filtering (TRUE I FALSE) #REQUIRED
V > 35 <!ELEMENT ServiceType (#PCDATA)> ·; <!ELEMENT ServiceVersion (#PCDATA)> >t <!ELEMENT ContentHandlers (ContentHandler+)> <!ELEMENT ContentHandler (ClassName, Property*)> <!ELEMENT Senders (Sender*)> 40 <!ELEMENT Sender (ClassName, Property*)> ; <!ELEMENT Receivers (Receiver*)> <!ELEMENT Receiver (ClassName, Property*)> <!ELEMENT Adapterldentification (AdapterGroup, AdapterType, .:, AdapterDescription, AliasIDs?)> .: 45 <!ATTLIST Adapterldentification
AdapteriD CDATA #REQUIRED
InitialCreationMethod (USER | SYSTEM) #REQUIRED
> “ <!ELEMENT AliasIDs (AliasIDRange*, AliasID*)> 50 <!ELEMENT AliasIDRange EMPTY> ;·* <!ATTLIST AliasIDRange
Min CDATA #REQUIRED Max CDATA #REQUIRED
.: > : 55 <!ELEMENT AliasID EMPTY>
<!ATTLIST AliasID
Value CDATA #REQUIRED
18 114581 > <!ELEMENT AdapterGroup (#PCDATA)> <!ELEMENT AdapterType (#PCDATA)> <!ELEMENT AdapterDescription (#PCDATA)> 5 <!ELEMENT ProductManagement (ProductStarter?, ProductStopper?,
ProductDetector?, ProductConfigurator?)> <!ELEMENT ProductStarter (ClassName, Property*)> <!ELEMENT ProductStopper (ClassName, Property*)> <!ELEMENT ProductDetector (ClassName, Property*)> 10 <!ELEMENT ProductConfigurator (ClassName, Property*)> <!ELEMENT DefaultAdapterlD (#PCDATA)> <!ELEMENT Framework (ClassName, Identification, Property*)> <!ELEMENT Identification (Description)> <!ELEMENT AdapterUIConfiguration (Component+)> 15 <!ELEMENT Component EMPTY>
<!ATTLIST Component Id ID #REQUIRED Label CDATA #REQUIRED LabelKey CDATA #IMPLIED
20 > ) » t ( t * » « ’ » » < * »

Claims (12)

114581
1. Menetelmä ohjelmistokehitysympäristön matkaviestintäsovelluk-sia toteuttavien ohjelmistokomponenttien välisen tiedonsiirron järjestämiseksi tietojärjestelmässä, joka tietojärjestelmä käsittää ainakin ensimmäisen ohjel- 5 mistokomponentin ja toisen ohjelmistokomponentin, joista ainakin yksi ohjel-mistokomponentti käsittää ohjelmakoodia matkaviestimen ohjaamiseksi, tunnettu siitä, että tietojärjestelmä käsittää sovittimia eri ohjelmistokom-ponentteja varten ja välityskomponentin tietojen siirtämiseksi eri sovittimien välillä, missä sovitin tarjoaa rajapinnan välityskomponenttiin ainakin yhdelle 10 siihen liitetylle ohjelmistokomponentille ja missä välityskomponentissa ylläpidetään osoitteistusinformaatiota tietojärjestelmässä olevista sovittimista, jossa menetelmässä aktivoidaan tietojärjestelmässä ensimmäinen sovitin ensimmäistä ohjelmistokomponenttia varten ja toinen sovitin toista ohjelmistokomponenttia 15 varten vasteena sille, että ensimmäisen ohjelmistokomponentin ja toisen ohjelmistokomponentin välillä on tarve siirtää tietoja, ja siirretään välityskomponentissa tietoja ensimmäisen sovittimen ja toisen sovittimen välillä osoitteistusinformaation mukaisesti.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, 20 että järjestetään ensimmäiselle sovittimelle ja toiselle sovittimelle raja-pinnat välityskomponenttiin yhteydellistä tai yhteydetöntä tietojen siirtoa varten : vasteena sille, että ensimmäisen ohjelmistokomponentin ja toisen ohjelmisto- komponentin välillä on tarve siirtää tietoja. : 25
3. Patenttivaatimuksen 1 tai 2 mukainen menetelmä, tunnettu ' siitä, että ylläpidetään välityskomponentissa ensimmäisen sovittimen ja toisen .sovittimien tunnisteita ja tietoja sovittimien ominaisuuksista vasteena sille, että . ensimmäinen sovitin ja toinen sovitin liitetään välityskomponenttiin, ja T 30 tarkastetaan välityskomponentissa sovittimien tunnisteiden ja omi naisuuksien perusteella voidaanko tietoja välittää ensimmäisen sovittimen ja toisen sovittimen välillä vasteena sille, että on tarve siirtää tietoja ensimmäisen , ·: . ohjelmistokomponentin ja toisen ohjelmistokomponentin välillä.
4. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, 35 tunnettu siitä, että 114581 tietojärjestelmässä on tallennettuna ainakin yksi mallinne, joka sisältää informaatiota ensimmäisen ohjelmistokomponentin ominaisuuksista sovittimen määrittämiseksi ensimmäiselle ohjelmistokomponentille, jolloin määritetään ensimmäisen sovittimen konfiguraatio mallinteen perus- 5 teella, tallennetaan ensimmäisen sovittimen konfiguraatio tietojärjestelmässä, ja haetaan ensimmäisen sovittimen konfiguraatio liitettäessä ensimmäistä sovitinta välityskomponenttiin.
5. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että järjestetään sovittimien tarjoama sovitustoiminnallisuus ohjelmis-tosovituksella, jolloin sovitinta toteutetaan ohjelmistokomponentin prosessissa, tai 15 järjestetään sovittimien tarjoama sovitustoiminnallisuus tiedonsiir- tosovituksella, jolloin sovitin toteutetaan erillisessä prosessissa ja tiedonsiirto järjestetään sovittimen ja ohjelmistokomponentin prosessin välillä jotakin tiedonsiirtoprotokollaa käyttäen.
6. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, 20 tunnettu siitä, että järjestelmä käsittää lisäksi ainakin yhden suodinsovittimen, joka on liitetty välityskomponenttiin, jolloin » • järjestetään ensimmäisen ohjelmistokomponentin ja toisen ohjelmis- : tokomponentin välinen tiedonsiirto suodinsovittimen kautta, ja : 25 kerätään suodinsovittimessa tietoa ensimmäisen ohjelmistokom ponentin ja toisen ohjelmistokomponentin välillä siirrettävästä informaatiosta.
7. Jonkin edellisen patenttivaatimuksen mukainen menetelmä, tunnettu siitä, että : ensimmäinen sovitin tarjoaa rajapinnan matkaviestinjärjestelmän ; · ’ 30 tiedonsiirtosovellukseen, joka on ensimmäinen ohjelmistokomponentti.
8. Tietojärjestelmä, joka käsittää ainakin ensimmäisen ohjelmisto-komponentin ja toisen ohjelmistokomponentin, joista ainakin yksi ohjelmisto-komponentti käsittää ohjelmakoodia matkaviestimen ohjaamiseksi, tunnettu siitä, että tietojärjestelmä käsittää lisäksi sovittimia eri ohjelmistokom- » » • 35 ponentteja varten ja välityskomponentin tietojen siirtämiseksi eri sovittimien välillä, missä sovitin tarjoaa rajapinnan välityskomponenttiin ainakin yhdelle 114581 siihen liitetylle ohjelmistokomponentille, ja missä välityskomponentti on järjestetty ylläpitämään osoitteistusinformaatiota tietojärjestelmässä olevista sovitti-mista, tietojärjestelmässä on järjestetty ensimmäisen sovittimen aktivoimi-5 nen ensimmäistä ohjelmistokomponenttia varten ja toisen sovittimen aktivoiminen toista ohjelmistokomponenttia varten vasteena sille, että ensimmäisen oh-jelmistokomponentin ja toisen ohjelmistokomponentin välillä on tarve siirtää tietoja, ja välityskomponentti on järjestetty siirtämään tietoja ensimmäisen so-10 vittimen ja toisen sovittimen välillä osoitteistusinformaation mukaisesti.
9. Tietojenkäsittelylaite, tunnettu siitä, että tietojenkäsittelylaite käsittää patenttivaatimuksen 8 mukaisen tietojärjestelmän.
10. Tietokoneohjelmatuote tietojärjestelmän yhden tai useamman tietojenkäsittelylaitteen ohjaamiseksi järjestämään tiedonsiirron ensimmäisen 15 ohjelmistokomponentin ja toisen ohjelmistokomponentin välille, joista ainakin yksi ohjelmistokomponentti käsittää ohjelmakoodia matkaviestimen ohjaamiseksi, tunnettu siitä, että tietokoneohjelmatuote käsittää ohjelmakoodiosuuden sovittimien toteuttamiseksi eri ohjelmisto-komponentteja varten, missä sovitin tarjoaa rajapinnan välityskomponenttiin 20 ainakin yhdelle siihen liitetylle ohjelmistokomponentille, ohjelmakoodiosuuden välityskomponentin toteuttamiseksi tietojen siirtämiseksi eri sovittimien välillä, joka välityskomponentti on järjestetty ylläpi-i tämään osoitteistusinformaatiota tietojärjestelmässä olevista sovittimista, : ohjelmakoodiosuuden tietojenkäsittelylaitteen ohjaamiseksi aktivoi- *: 25 maan ensimmäisen sovittimen ensimmäistä ohjelmistokomponenttia varten ja : toisen sovittimen toista ohjelmistokomponenttia varten vasteena sille, että en simmäisen ohjelmistokomponentin ja toisen ohjelmistokomponentin välillä on ,:. tarve siirtää tietoja, ja ohjelmakoodiosuuden tietojenkäsittelylaitteen ohjaamiseksi asetta-30 maan välityskomponentin siirtämään tietoja ensimmäisen sovittimen ja toisen '·· sovittimen välillä osoitteistusinformaation mukaisesti.
”11. Tietojenkäsittelylaitteen luettavissa oleva tietoväline, tunnet-tu siitä, että tietoväline käsittää patenttivaatimuksen 10 mukaisen tietokone-ohjelmatuotteen. * * · * 0 114581
12. Signaali, tunnettu siitä, että signaali käsittää patenttivaatimuksen 10 mukaisen tietokoneohjelmatuotteen. : I * » · I I · 114581
FI20030240A 2003-02-17 2003-02-17 Ohjelmistokehitysympäristö FI114581B (fi)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FI20030240A FI114581B (fi) 2003-02-17 2003-02-17 Ohjelmistokehitysympäristö
KR1020040009249A KR100950212B1 (ko) 2003-02-17 2004-02-12 이동 통신 애플리케이션들을 테스트하기 위한 소프트웨어 개발 시스템, 상기 소프트웨어 개발 시스템에서 소프트웨어 구성요소들간에 데이터를 전송하는 방법, 상기 소프트웨어 개발 시스템을 포함하는 데이터 처리 장치, 및 상기 데이터 처리 장치를 제어하는 컴퓨터 프로그램이 수록된 컴퓨터 판독가능 저장 매체
EP04100523A EP1447749A3 (en) 2003-02-17 2004-02-12 Software development environment
US10/779,127 US7317912B2 (en) 2003-02-17 2004-02-16 Software development environment
CNB2004100052515A CN100485609C (zh) 2003-02-17 2004-02-17 软件开发环境

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20030240A FI114581B (fi) 2003-02-17 2003-02-17 Ohjelmistokehitysympäristö
FI20030240 2003-02-17

Publications (3)

Publication Number Publication Date
FI20030240A0 FI20030240A0 (fi) 2003-02-17
FI20030240L FI20030240L (fi) 2004-08-18
FI114581B true FI114581B (fi) 2004-11-15

Family

ID=8565657

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20030240A FI114581B (fi) 2003-02-17 2003-02-17 Ohjelmistokehitysympäristö

Country Status (5)

Country Link
US (1) US7317912B2 (fi)
EP (1) EP1447749A3 (fi)
KR (1) KR100950212B1 (fi)
CN (1) CN100485609C (fi)
FI (1) FI114581B (fi)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895589B2 (en) * 2003-02-26 2011-02-22 International Business Machines Corporation Dynamic data-driven application integration adapters
US7698383B2 (en) * 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
KR100679865B1 (ko) * 2005-03-07 2007-02-07 아주대학교산학협력단 유비쿼터스 컴퓨팅 환경의 다양성을 지원하기 위한 시스템
US7546131B1 (en) 2006-01-20 2009-06-09 Google Inc. Emulating a messaging operation for mobile devices
US7958487B2 (en) * 2006-03-21 2011-06-07 International Business Machines Corporation Apparatus, system, and method for modifying an integration software template
CN101311903B (zh) * 2007-05-22 2011-05-18 国际商业机器公司 对基于组件的软件系统中的组件进行重用的方法和装置
US8495594B2 (en) * 2008-01-10 2013-07-23 International Business Machines Corporation Method and system for providing a componentized resource adapter architecture
US8620856B2 (en) * 2008-01-18 2013-12-31 International Business Machines Corporation Method and system for providing a data exchange service provider interface
CN101609396B (zh) * 2008-06-16 2012-12-26 成都吉锐触摸技术股份有限公司 一种触摸屏通讯协议的实现方法
US8402084B2 (en) * 2008-09-11 2013-03-19 Intel Corporation Host embedded controller interface bridge
US8699499B2 (en) 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
KR101323270B1 (ko) 2012-05-22 2013-10-30 주식회사 오비고 웹 애플리케이션 개발용 에뮬레이터를 제공하기 위한 방법, 개발자 단말 장치 및 컴퓨터 판독 가능한 기록 매체
US9588788B1 (en) 2012-08-23 2017-03-07 Amazon Technologies, Inc. Optimized communication between program components executing in virtual machines
US9912517B1 (en) * 2012-08-23 2018-03-06 Amazon Technologies, Inc. Optimized deployment and execution of programs in a distributed computing environment
CN113535135B (zh) * 2021-09-09 2022-02-15 深圳市蓝凌软件股份有限公司 软件开发方法、装置、计算机设备和存储介质
CN114466055B (zh) * 2021-12-27 2024-04-26 天翼云科技有限公司 一种业务处理方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041365A (en) 1985-10-29 2000-03-21 Kleinerman; Aurel Apparatus and method for high performance remote application gateway servers
US5619685A (en) 1994-11-04 1997-04-08 Ball Corporation Run-time dynamically adaptive computer process for facilitating communication between computer programs
US6272556B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for migrating a client-server application (#5)
JP2002530732A (ja) * 1998-11-18 2002-09-17 サガ ソフトウエア インコーポレーテッド 拡張可能な分散エンタープライズアプリケーションインテグレーションシステム
US20030018694A1 (en) 2000-09-01 2003-01-23 Shuang Chen System, method, uses, products, program products, and business methods for distributed internet and distributed network services over multi-tiered networks
US7155381B2 (en) 2001-03-12 2006-12-26 Sun Microsystems, Inc. Module for developing wireless device applications using an integrated emulator

Also Published As

Publication number Publication date
FI20030240A0 (fi) 2003-02-17
KR20040074922A (ko) 2004-08-26
EP1447749A2 (en) 2004-08-18
US7317912B2 (en) 2008-01-08
KR100950212B1 (ko) 2010-03-29
CN1523917A (zh) 2004-08-25
CN100485609C (zh) 2009-05-06
EP1447749A3 (en) 2008-09-03
US20040192277A1 (en) 2004-09-30
FI20030240L (fi) 2004-08-18

Similar Documents

Publication Publication Date Title
FI114581B (fi) Ohjelmistokehitysympäristö
US8605667B2 (en) Systems and methods for exposing different service facades of an underlying network
US7136913B2 (en) Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
CN113411215B (zh) 基于opc ua的时间敏感网络集中用户配置方法及系统
US20150038112A1 (en) Wireless Internet Gateway Limiting Message Distribution
CN109756559B (zh) 面向嵌入式机载系统分布式数据分发服务的构建及使用方法
US7228333B1 (en) Wireless internet gateway
EP1303096A2 (en) Virtual network with adaptive dispatcher
US20030174731A1 (en) Protocol stacks
EP1401169A1 (en) Method and system using a Meta service selector for deploying services over a plurality of networks
Aijaz et al. Enabling high performance mobile web services provisioning
Farjami et al. Advanced service provisioning based on mobile agents
FI111586B (fi) Siirtosovittimen hallinta yhdyskäytäväpalvelimessa
US7260618B2 (en) Method in an embedded environment for arranging functionality of a remote device
US8725864B2 (en) Communication management network system and method for managing a communication network
CN113810448B (zh) 云服务方法、部署方法、装置、电子设备和存储介质
US7007094B1 (en) Object oriented communications system over the internet
Landis et al. Reaching out to the cell phone with Jini
US20030147383A1 (en) Object communication services software development system and methods
Lyell Interoperability, standards, and software agent systems
Lakay et al. SIP-based content development for wireless mobile devices
Holmström End-to-end monitoring of mobile services
EP1734708B1 (en) Method, transmitter, receiver, computer readable medium, communications network and application development environment for providing various levels of reliable messaging between a client and a server
WO2025004063A1 (en) System and method for communication
KR20030057091A (ko) 네트워크 관리 시스템에서의 지능형 패킷 처리장치 및방법

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 114581

Country of ref document: FI

MM Patent lapsed