Reflektiomekanismien rooli palveluorientoituneissa järjestelmissä. Seminaarityö Tom Bertell

Koko: px
Aloita esitys sivulta:

Download "Reflektiomekanismien rooli palveluorientoituneissa järjestelmissä. Seminaarityö Tom Bertell"

Transkriptio

1 Reflektiomekanismien rooli palveluorientoituneissa järjestelmissä Seminaarityö Tom Bertell

2 Sisältö 1 Johdanto Dynaamisuus palveluorientoituneiden järjestelmissä Yleistä Dynaamiset ominaisuudet Reflektio ja väliohjelmistot Reflektio yleisesti Reflektiivinen väliohjelmistomalli Open ORB-reflektiivinen väliohjelmisto Arkkitehtuuri Havaintoja Yhteenveto Lähteet...13

3 1 1 Johdanto Palveluperustainen arkkitehtuuri (Service Oriented Architecture, SOA) on jo jonkin aikaa tarjonnut pohjan nykyaikaisten liiketoimintaprosessien toteuttavien järjestelmien suunnittelulle ja toteutukselle. Palveluorientoitunut arkkitehtuuri on hajautettujen järjestelmien suunnittelu ja toteutustyyli, jonka keskeisinä periaatteina ovat löyhä kytkentä ja palvelujen dynaaminen sidonta [Wee06]. Palveluorientoituneiden järjestelmien luonteen vuoksi palveluita voidaan haluta lisätä tai poistaa, sekä niiden ominaisuuksia muuttaa jopa ajonaikaisesti. Tämän lisäksi nykyaikaiset ketterät liiketoimintamallit ovat tuoneet mukanaan uusia vaatimuksia järjestelmän dynaamisuudelle ja ajonaikaiselle mukautumiselle. Palveluperustaisten järjestelmien suunnittelu, rakentaminen ja ylläpito on erittäin haasteellista. Väliohjelmistot ovat yleisesti käytetty konsepti, jota on käytetty helpottamaan näiden monimutkaisten järjestelmien toteutusta ja toimintaa. Perinteiset väliohjelmistot eivät ole kuitenkaan tarjonneet tarpeeksi monipuolisia mekanismeja palveluperustaisten järjestelmien dynaamisten ominaisuuksien toteuttamiselle [KCB02]. Reflektiota on käytetty jo 1980-luvulta lähtien tuomaan ohjelmointikieliin kaivattua joustavuutta ja dynaamisuutta. Reflektiota voidaan käyttää dynaamisten ominaisuuksia lisäämiseen myös väliohjelmistoihin, jolloin niiden ominaisuuksiin ja käyttäytymiseen voidaan helposti ja tehokkaasti vaikuttaa ajonaikaisesti [HLM05]. Luvussa 2 esitellään palveluorientoituneiden järjestelmien yleispiirteitä ja minkälaisia dynaamisia ominaisuuksia niiden toiminnassa pitää ottaa huomioon. Luvussa 3 selvitetään mitä reflektiolla tarkoitetaan yleisesti ja miten reflektion kautta voidaan lisätä väliohjelmistojen avoimuutta ja dynaamisuutta. Luvussa 4 tutkitaan Open ORB-reflektiivisen väliohjelmiston arkkitehtuuria ja miten se mukautuu ajonaikaisiin konfiguraation muutoksiin.

4 2 2 Dynaamisuus palveluorientoituneiden järjestelmissä Tässä luvussa kuvataan palveluperustaisten järjestelmien yleiset toimintaperiaatteet. Lisäksi tuodaan esille minkälaisia dynaamisia ominaisuuksia palveluperustaisissa järjestelmissä tulisi ottaa huomioon. 2.1 Yleistä Palveluorientoituneet järjestelmät koostuvat löyhästi toisiinsa kytketyistä palveluista, jotka sidotaan toisiinsa dynaamisesti. Palvelulla tarkoitetaan jonkin liiketoiminnallisen kokonaisuuden toteuttamaa komponenttia, jolla on hyvin määritelty rajapinta. Jotta palvelu kykenee toimimaan osana palveluorientoitunutta järjestelmää, pitää sillä olla tiettyjä yhteentoimivuuden mahdollistavia ominaisuuksia. Ensinnäkin palvelulla pitää olla abstrakti kuvaus palvelun tarjoamasta rajapinnasta ja sen toiminnallisuuden. Kuvauksen tulee pitää sisällään kaikki tieto siitä mitä palvelun pyytäjä tarvitsee palvelun kutsumiseen. Toiseksi palvelun tarjoajien pitää julkaista palvelun rajapinta jossain, jotta muiden olisi mahdollista löytää palvelu ja kutsua sitä [Wee06]. Kuvassa 1 on esitetty palveluorientoituneen arkkitehtuurin osapuolet ja toiminnot. Sido Palvelun kutsuja Etsi Palvelu Julkaise Palvelurekisteri Kuva 1: SOA osapuolet

5 3 Palveluorientoituneen järjestelmän suunnittelussa ja rakentamisessa pitää ottaa huomioon monia koko järjestelmää koskevia asioita kuten pysyvyyden hallinta, tietoturva, resurssien hallinta ja synkronointi [BBC05]. Näiden asioiden toteuttaminen monimutkaisiin hajautettuihin järjestelmiin on erittäin haastavaa. Väliohjelmistokonsepti on kehitetty helpottamaan monimutkaisten hajautettujen järjestelmien kehittämistä ja käyttöä. Ne toimivat nimensä mukaisesti sovelluksen ja käyttöjärjestelmän välillä. Väliohjelmistot peittävät alempien tasojen yksityiskohdat ja käyttöjärjestelmäkohtaiset rajapinnat. Väliohjelmistoja käyttämällä ohjelmoija pystyy kirjoittamaan helposti ympäristöstä toiseen siirrettäviä sovelluksia, eikä ohjelmoijan tarvitse tuntea alla olevaa käyttöjärjestelmää. 2.2 Dynaamiset ominaisuudet Tähän mennessä kaupallisesti toteutetut palveluperustaisuuden tarjoamat väliohjelmistot ovat olleet melko staattisia. Kaikki järjestelmän toimintaa ja arkkitehtuuria koskevat valinnat ja asetukset on pitänyt tehdä järjestelmän rakentamisvaiheessa tai ne vaativat ainakin järjestelmän uudelleen käynnistyksen tullakseen käyttöön. Taulukossa 1 on lueteltu joitain järjestelmän dynaamisia ominaisuuksia, joiden muutoksiin väliohjelmistojen olisi hyödyllistä pystyä mukautumaan. Dynaaminen ominaisuus Tietoturva Selitys Todennustavan vaihtaminen. (Saattaa vaihdella riippuen kutsujasta) Suorituskyky Suorituskyvyn monitorointi. Pakkausalgoritmin muuttaminen. Dynaaminen sidonta Palvelun valinta Poikkeustilanteiden käsittely Asiakkaan sitominen palveluun vasta ajonaikana. Sopivan palvelun valinta palvelun laatukriteerien perusteella (QoS). Virhe- ja poikkeustilanteiden käsittely ja virhetilanteista toipuminen.

6 Räätälöidyn liiketoimintalogiikan kutsuminen ta suorittaa tilanteeseen räätälöityä Ennen tai jälkeen varsinaisen palvelun kutsun voidaan halu- liiketoimintalogiikkaa. Versiointi Konfiguroinnin muuttaminen Monitorointi ja lokikirjoitus Jos palvelusta on tullut uusi versio, se halutaan heti käyttöön asiakkaille. Palvelujen konfiguroinnin muuttaminen ajonaikaisesti. Monitoroinnin ja lokikirjoituksen lisääminen palvelun suorituksen eri vaiheisiin. Taulukko 1: Järjestelmän dynaamisia ominaisuuksia 3 Reflektio ja väliohjelmistot Tässä luvussa selvitetään mitä laskennallisella reflektiolla tarkoitetaan ja miten reflektiota voidaan hyödyntää väliohjelmistojen kontekstissa. 3.1 Reflektio yleisesti Laskennallisella reflektiolla tarkoitetaan ohjelman tai järjestelmän kykyä tehdä päätelmiä itsestään ja muuttaa toimintaansa näiden päätelmien perusteella. Jotta järjestelmä pystyisi näin toimimaan, pitää sillä olla käyttäytymistään ja rakennettaan kuvaava malli, joka on kausaalisesti yhdistetty itse järjestelmään. Kausaalisella yhdistämisellä tarkoitetaan sitä, että mallin muutokset heijastuvat suoraan järjestelmään ja sama pätee myös toiseen suuntaan, jos järjestelmää muutetaan [Mae87]. Reflektio ei ole uusi käsite, vaan se esiteltiin ohjelmointikielissä jo 80-luvulla. Reflektio otettiin melko nopeasti käyttöön olio-ohjelmointikielistä, joista sen käyttö laajeni käyttöjärjestelmien kautta väliohjelmistoihin [HLM05]. Esimerkiksi Java-ohjelmointikielessä reflektio on ollut mukana jo versiosta 1.2 lähtien. Reflektiota voidaan käyttää erottamaan varsinainen sovelluslogiikka muusta toiminnallisuudesta. Esimerkkinä transaktiokäsittelyn lisääminen palvelun kutsuun.

7 5 3.2 Reflektiivinen väliohjelmistomalli Samoja reflektiomekanismeja, joita käytetään ohjelmointikielissä, voidaan käyttää myös väliohjelmistoissa. Väliohjelmistojen tasolla reflektiolla tarkoitetaan sitä, että järjestelmällä on kuvaus omasta sisäisestä toiminnasta ja rakenteestaan. Järjestelmän kuvausta itsestään kutsutaan metatasoksi (meta-level) ja järjestelmää itseään perustasoksi (base-level) (kuva 2). Jotta järjestelmä olisi reflektiivinen niin näiden kuvausten pitää olla kausaalisesti yhteydessä toisiinsa eli väliohjelmiston metatasolle tehtävät muutokset heijastuvat välittömästi väliohjelmiston varsinaiseen toteutukseen perustasolle ja toisin päin jos toteutusta muutetaan, niin myös metamalli muuttuu [Mae87]. Kuva 2: Reflektiivinen järjestelmä [HLM05] Järjestelmä tarjoaa metarajapinnan tai metaolioprotokollan (metaobject protocol, MOP), jonka kautta päästään käsiksi perustason rakenteisiin. Metaolioprotokollan ominaisuuksiin kuuluvat operaatiot alla olevan alustan tutkimiseksi ja sitä kautta sen ominaisuuksien muuttamiseen. Tämä on selkeä ero perinteisiin väliohjelmistoihin verrattuna, jotka piilottavat toiminnallisuuden sisäänsä ja tarjoavat vain rajapinnat toiminnallisuuden käyttämiseen. Reflektiota on käytetty väliohjelmistoissa tarjoamaan parempaa ajonaikaista konfiguroituvuutta ja dynaamista sopeutumista, jotka helpottavat väliohjelmiston päällä toimivien palvelujen yhteentoimivuutta.

8 6 Perustasolla on väliohjelmistojen tarjoamat yleiset palvelut ja metataso tarjoaa mahdollisuuden palvelujen tutkimiseen (inspection) ja niiden toiminnan mukauttamiseen (adaptation) ympäristön muuttuessa. Osat joita järjestelmästä halutaan kuvata saattavat olla hyvinkin monimutkaisia, jolloin niiden kuvaaminen yhdellä metamallilla saattaa olla vaikeaa. Tästä syystä järjestelmän osat kuvataan yleensä useilla erillisillä metamalleilla, joista kukin tarjoaa näkymän johonkin tiettyyn järjestelmän osaan. Metamallit voidaan edelleen kuvata meta-metamalleiksi ja ketjua voidaan teoriassa jatkaa loputtomiin. Reflektiiviset väliohjelmistot tarjoavat yleisesti kaksi erilaista reflektiotapaa: rakenteeseen kohdistuvan (structural) reflektion ja käyttäytymiseen kohdistuvan (behavioural) reflektion [GGL02]. Rakenteeseen kohdistuva reflektio mahdollistaa järjestelmän sisäisen rakenteen tutkimisen ja muuttamisen. Käytökseen kohdistuva reflektion avulla voidaan järjestelmän tai sen osien toiminnallisuutta tutkia ja muuttaa. Jos järjestelmän kaikkien osien rakennetta ja toimintaa pysyttäisiin vapaasti muuttamaan, niin järjestelmä menisi helposti tilaan, jossa se ei toimisi enää ollenkaan tai se toimisi väärin. Tästä syystä järjestelmästä kuvataan metamallilla vain ne osat, joihin halutaan tehdä muutoksia. Lisäksi metamalleihin lisätään rajoitteita, jotka varmistavat, että järjestelmä toimii oikein myös dynaamisten muutosten jälkeen. Rakenteellisesta reflektiosta esimerkkinä voisi olla palveluiden komposition muuttaminen ajonaikaisesti. Reflektiivisessä väliohjelmistossa tähän riittää palvelujen sidoksia kuvaavan metamallin muuttaminen kuvaamaan uutta tilannetta. Oletetaan tilanne jossa palvelu C1 on sidottu palveluun C2, ja palvelun C2 tilalle halutaan asettaa saman rajapinnan toteuttava palvelu C3 (kuva 3). Vanha sidos (C1, C2) C2 C1 Uusi sidos (C1, C3) C3 Kuva 3: Sidoksen muuttaminen

9 7 Väliohjelmistotasolla tapahtuu seuraavaa (kuva 4): 1. Valvoja (kuvassa monitor) on väliohjelmiston metatason palvelu, joka pyytää arkkitehtuurin metatasoa luomaan uuden palvelun C3, poistamaan sidoksen palvelujen C2 ja C1 väliltä ja luomaan uuden sidoksen palvelujen C3 ja C1 välille. 2. Arkkitehtuurin metataso poistaa vanhan sidoksen palvelujen C2 ja C1 väliltä ja luo uuden sidoksen. 3. Tästä lähtien palvelun C1 kutsut menevät palvelulle C3. Kuva 4: Sidoksen muuttamisen sekvenssikaavio[bbc05] Käytökseen kohdistuvasta reflektiosta esimerkkinä voisi olla palvelun todennustavan vaihtaminen. Todennustapa voidaan haluta vaihtaa ajonaikaisesti ja se saattaa olla riippuvainen kutsuvasta palvelusta. Koska todennustapa voi vaihdella palvelun suorituskerrasta toiseen sitä ei kannata toteuttaa kiinteästi palveluun, vaan todennus voidaan lisätä palveluun dynaamisesti kutsun yhteydessä. Oletetaan, että palvelu C1 kutsuu palvelua C2 ja palvelu C1 vaatii todennuksen. Tämä voitaisiin toteuttaa reflektiivisessä väliohjelmistossa siten, että palvelun C2 metatason rajapintaan lisättäisiin todennuspalvelun kutsu ennen varsinaista palvelun kutsua.

10 8 Väliohjelmistotasolla tapahtuu seuraavaa (kuva 5): 1. Valvoja (kuvassa Monitor-palvelu) on väliohjelmiston metatason palvelu, joka on luonut sidoksen palvelun C1 ja C2 välille. 2. Valvoja luo todennuspalvelun (kuvassa PreMethodB). 3. Valvoja lisää todennuspalvelun kutsun palveluiden väliseen sidokseen. 4. Kun palvelu C1 kutsuu palvelun C2 MethodB()-metodia, niin kutsutaan ensin todennuspalvelua PreMethodB. Kuva5: Todennuksen lisäämisen sekvenssikaavio[bbc05]

11 9 4 Open ORB-reflektiivinen väliohjelmisto Tässä luvussa esitellään reflektiivistä Open ORB-väliohjelmistoa, sekä tutkitaan päällisin puolin sen arkkitehtuuria ja sitä miten se suhtautuu järjestelmältä vaadittaviin rakenteen ja toiminnallisuuden ajonaikaisiin muutoksiin. 4.1 Arkkitehtuuri Open ORB-projekti on pyrkinyt suunnittelemaan erittäin konfiguroituvan väliohjelmiston, joka tukee useita hajautetuilta järjestelmiltä toivottuja dynaamisia ominaisuuksia [GGL02]. Väliohjelmiston perustoiminnallisuus koostuu komponenteista, joista voidaan koostaa sopivan toiminnallisuuden toteuttavia komponenttikehyksiä (component framework). Komponenttikehykset sisältävät rajoitteet, joita komponenttikehyksen sisäisen rakenteen pitää noudattaa. Komponenttikehyksillä on selkeästi määritellyt riippuvuudet muihin komponentteihin, jonka avulla niistä on yksinkertaista koostaa uusia rakenteita. Määriteltyjen sääntöjen ja riippuvuuksien avulla väliohjelmisto pystyy pitämään järjestelmän sallitussa tilassa dynaamisen konfiguroinnin yhteydessä. Perustaso koostuu perinteisistä väliohjelmiston komponenteista, joiden toteutus paljastetaan metatason komponenteilla. Dynaamista konfigurointia varten järjestelmän jokaista komponenttia kohti on vähintään yksi metatason komponentti. Jokaista perustason komponenttia kohden voi olla joukko metatason komponentteja, jota kutsutaan komponentin meta-avaruudeksi [BBC05]. Väliohjelmiston metamalli on jaettu selkeiksi osiksi, jotka tarjoavat loogisen näkymän järjestelmän eri osien toteutukseen. Metamallit ovat arkkitehtuuri- (architecture), rajapinta- (interface) ja sieppausmetamalli (interception) (kuva 6).

12 10 Kuva 6: Väliohjelmiston perustaso ja metataso [KCB02] Rajapinta- ja arkkitehtuurimetamallit mahdollistavat rakenteellisen reflektion ja tekevät selkeän eron komponentin ulkoisen toiminnallisuuden (rajapinnat) ja sisäisen rakenteen välille. Rajapintametamalli paljastaa komponentin tarjoamat ja tarvitsemat rajapinnat operaatioineen. Metamalliin liittyvä metaolioprotokolla mahdollistaa elementtien listaamisen ja etsimisen, joten se mahdollistaa esimerkiksi komponentin tarjoamien palvelujen dynaamisen etsimisen. Rajapintametamalli tarjoaa siten samanlaisen toiminnallisuuden kuin Javan Reflection API, joka avulla ohjelmoija pystyy hyödyntämään komponenttien dynaamisesti löydettyjä ominaisuuksia. Arkkitehtuurimetamalli on keskittynyt nimensä mukaisesti kuvaamansa komponentin sisäiseen toteutukseen. Kuvaus jakaantuu kahteen osaan: komponenttikaavioon (component graph) ja arkkitehtuurisiin sääntöihin (architectural constraints), joista ensimmäinen kuvaa komponentin suhteen muihin komponentteihin ja toinen kuvaa säännöt joilla komponentteja voidaan yhdistellä. Komponenttikaavio on keskeinen osa mallia. Se kuvaa joukon komponentteja, jotka on yhdistetty toisiinsa paikallisilla sidoksilla (local bindings). Paikallinen sidos pitää sisällään kuvauksen komponentin rajapinnoista. Malliin liittyvä metaolioprotokolla mahdollistaa komponenttien lisäämisen, poistamisen ja korvaamisen ja sääntöjen muuttamisen. Tämä mahdollistaa dynaamisen mukautumisen. Perinteisissä

13 11 väliohjelmistoissa tämän kaltainen toiminnallisuus olisi piilossa komponentin käyttäjältä, mutta arkkitehtuurimetamallin avulla järjestelmän rakennetta voidaan tutkia ja se pystyy mukautumaan ympäristön muutoksiin ajonaikaisesti. Open ORB-väliohjelmistossa sieppausmetamalli tukee käyttäytymiseen kohdistuvaa reflektiota. Sen avulla järjestelmän komponenttien rajapintoihin voidaan lisätä dyynamisesti sieppaajia (interceptor). Sieppaajien avulla on mahdollista suorittaa uutta toiminnallisuutta ennen ja jälkeen komponenttien kutsujen. Tämän mekanismin avulla järjestelmään voidaan lisätä ajonaikaisesti esimerkiksi monitorointi-, tietoturva- ja laskutuspalveluja [GGL02]. Kuvassa 6 on vielä mukana resurssimetamalli (resource metamodel), jonka avulla olisi mahdollista päästä suoraan käsiksi järjestelmän resurssien hallintaan ja sitä kautta resursseihin. Resurssimetamallia ei kuitenkaan ole enää mukana väliohjelmiston uudemmissa versioissa, joten sen toimintaa ei käsitellä tässä sen tarkemmin. 4.2 Havaintoja Vaikka tässä luvussa esitelty reflektiivinen väliohjelmisto on vain yksi esimerkki lukuisten reflektiivisten väliohjelmistojen joukossa, niin niiden kaikkien tarjoama toiminnallisuus on hyvin samankaltainen. Kaikissa reflektiivisissä väliohjelmistoissa on yhteisenä pyrkimyksenä lisätä väliohjelmistojen joustavuutta, dynaamisuutta ja mukautuvuutta reflektion käytöllä ja siten ne tukevat yhteentoimivien järjestelmien rakentamista ja käyttöä. Open ORB-väliohjelmiston avulla olisi mahdollista toteuttaa useat palveluorientoituneiden järjestelmien taulukossa 1 mainitut dynaamiset ominaisuudet. Open ORB-väliohjelmiston avulla on onnistuneesti toteutettu mm. seuraavia ajonaikaista mukautumista tukevia järjestelmiä: Mukautuva multimediajärjestelmä: Järjestelmä pystyy mukautumaan muuttamalla puskurin kokoa ja lähetyksen laatua ympäristön mukaan. Mukautuva mobiiliväliohjelmisto: Komponenttien liikennöintitapa pystyy mukautumaan tarjolla olevien palvelujen mukaisesti.

14 12 Mukautuva verkkoarkkitehtuuri: Mahdollistaa kaikkien verkkoarkkitehtuurin kerrosten mukautumisen käyttämällä reflektiota. Tätä ominaisuutta hyödynnetään verkon kokonaislaajuisessa virheistä toipumisessa. 5 Yhteenveto Palveluorientoituneiden järjestelmien rakentaminen ja ajaminen on niiden avoimen ja dynaamisen luonteensa vuoksi haastavaa. Väliohjelmistoja on käytetty helpottamaan näiden monimutkaisten järjestelmien integraatiota. Perinteiset väliohjelmistot eivät ole mahdollistaneet järjestelmien rakenteen ja ominaisuuksien joustavaa dynaamista konfigurointia ja mukautumista ympäristön muutoksiin. Tätä varten on kehitetty reflektiivisiä väliohjelmistoja, jotka tarjoavat pääsyn järjestelmän sisäiseen rakenteeseen ja toiminnallisuuteen metarajapintojen kautta. Järjestelmän sisäisen toiminnan paljastaminen reflektion kautta mahdollistaa järjestelmien mukautumisen ympäristön muutoksiin ja täysin uusien dynaamisten ominaisuuksien lisäämistä järjestelmiin. Reflektion tarjoamia mahdollisuuksia voitaisiin hyödyntää palveluperustaisten järjestelmien toiminnassa. Koska reflektioon ja reflektiivisiin järjestelmiin liittyvät aiheet ovat melko monimutkaisia ja poikkeavat melkoisesti perinteisestä tavasta ajatella järjestelmien ominaisuuksia, niin uskon, että on vielä pitkä matka siihen, kun reflektio on yleinen ominaisuus kaupallisessa käytössä olevissa väliohjelmistoissa.

15 13 Lähteet BBC05 GGL02 HLM05 KCB02 Mae87 Wee06 N. Bencomo, G. Blair, G. Coulson, P. Grace, and A. Rashid. Reflection and aspects meet again: runtime reflective mechanisms for dynamic aspects. In AOMD '05: Proceedings of the 1st workshop on Aspect orien ted middleware development, New York, NY, USA, ACM Press. Blair Gordon, S. Coulson Geoff, Blair Lynne, Duran-Limon Hector, Grace Paul, Moreira Rui, Parlavantzas Nikos. Reflection, Self-Awareness and Self-Healing in OpenORB. WOSS '02: Proceedings of the first workshop on Self-healing systems. Gang Huang, Xuanzhe Liu and Hong Mei (2005) Towards Dependable Service-Oriented Architecture via Reflective Middleware, International J ournal of Simulation and Process Modeling, Vol.?, No.?, Fabio Kon, Fabio Costa, Gordon Blair, and Roy H. Campbell. The case for reflective middleware. Commun. ACM, 45(6):33-38, Pattie Maes. Concepts and experiments in computational reflection. In OOPSLA '87: Conference proceedings on Object-oriented programming systems, languages and applications, pages , New York, NY, USA, ACM Press. Weerawarana S., et al., Web Services Platform Architecture. Prentice Hall, 2006

Kanavatyyppien dynaamisen muuntelun tukeminen Apache ServiceMix palveluväylässä

Kanavatyyppien dynaamisen muuntelun tukeminen Apache ServiceMix palveluväylässä hyväksymispäivä arvosana arvostelija Kanavatyyppien dynaamisen muuntelun tukeminen Apache ServiceMix palveluväylässä Tom Bertell Helsinki 20.4.2013 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN

Lisätiedot

Arkkitehtuurinen reflektio

Arkkitehtuurinen reflektio Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Metatiedon hallinnan ja reflektion yhdistäminen väliohjelmistoissa

Metatiedon hallinnan ja reflektion yhdistäminen väliohjelmistoissa hyväksymispäivä arvosana arvostelija Metatiedon hallinnan ja reflektion yhdistäminen väliohjelmistoissa Janne Metso Helsinki 1. marraskuuta 2003 Seminaaritutkielma HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k 1 Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa ko. toiminnallisuuden hyödyntämisen Web-palveluna.

Lisätiedot

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

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

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri Järjestelmäarkkitehtuuri (TK081702) ja Järjestelmäarkkitehtuuri Sovellukset ovat olemassa Järjestelmien uudistaminen vie yleensä arvioitua enemmän resursseja ja kestää arvioitua kauemmin Migration (Migraatio

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Palvelusuuntautunut ohjelmistotuotanto Luento 1: Kurssin järjestelyt, palveluperustaisten järjestelmien periaatteet Toni Ruokolainen, 8.9.

Palvelusuuntautunut ohjelmistotuotanto Luento 1: Kurssin järjestelyt, palveluperustaisten järjestelmien periaatteet Toni Ruokolainen, 8.9. CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 1: Kurssin järjestelyt, palveluperustaisten järjestelmien periaatteet Toni Ruokolainen, 8.9.2009 Luennon runko

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot

Web-palvelukonsepti tarjoaa yhden tavan toteuttaa SOA. Tämä tapa perustuu Web-palvelustandardien käyttöön: palvelut kuvataan WSDL-kielen avulla ja

Web-palvelukonsepti tarjoaa yhden tavan toteuttaa SOA. Tämä tapa perustuu Web-palvelustandardien käyttöön: palvelut kuvataan WSDL-kielen avulla ja 1 Web-palvelukonsepti tarjoaa yhden tavan toteuttaa SOA. Tämä tapa perustuu Web-palvelustandardien käyttöön: palvelut kuvataan WSDL-kielen avulla ja kommunikointi toteutetaan SOAPin avulla. Näihin kieliin

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA, Järjestelmäarkkitehtuuri (TK081702) SOA SOA-arkkitehtuuri perustuu xml:ään ja Web Services teknologioihin Mahdollistaa joustavan mukautumisen tuleviin muutoksiin Kustannustehokas Toteutukset perustuvat

Lisätiedot

www.solita.fi solita@solita.fi

www.solita.fi solita@solita.fi www.solita.fi solita@solita.fi JAVA-SOVELLUSTEN RAKENTAMINEN INTEGROITUUN YMPÄRISTÖÖN Jarno Peltoniemi Solita Oy 10.5.2005 Aiheet Johdanto Portaalit, portletit Oracle Portal Java-sovelluksen rakentaminen

Lisätiedot

Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria. CASE: Metropolia. Jaakko Rannila & Tuomas Orama 1

Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria. CASE: Metropolia. Jaakko Rannila & Tuomas Orama 1 Tietojärjestelmien integroiminen hyödyntämällä palvelupohjaista arkkitehtuuria CASE: Metropolia 31.10.2012 Jaakko Rannila & Tuomas Orama 1 Aiheet Tietojärjestelmien integrointi Integrointiin liittyvät

Lisätiedot

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Moniperintä 2 Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita. Oliomallinnus TITE.2040 Hannu K. Niinimäki 1 Delegointi 1 Moniperinnän toteuttaminen

Lisätiedot

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

ohjelman arkkitehtuurista.

ohjelman arkkitehtuurista. 1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä

Lisätiedot

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

HSMT J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &... HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest). 1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.

Lisätiedot

SOA:lle on useita, jonkin verran toisistaan poikkeavia määritelmiä. Alla niistä muutamia.

SOA:lle on useita, jonkin verran toisistaan poikkeavia määritelmiä. Alla niistä muutamia. 1 Tässä esimerkki vaikkapa tyypillisestä yrityksen tietojärjestelmästä. Järjestelmään liitetään uusia osia vähitellen. Eri osat ovat eri tahojen erilaisilla teknologioilla kehittämiä. Osien välinen liitos

Lisätiedot

Tiedonsiirto- ja rajapintastandardit

Tiedonsiirto- ja rajapintastandardit Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM!

TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM! TARJOUSPYYNTÖ / LIITE 1 1 (5) TOIMIJAREKISTERIN TOTEUTUKSEN JA YLLÄPIDON HANKINTA - HANKINNAN YKSI- LÖINTI HUOM! Tällä liitteellä yksilöidään hankinnan kohteen ominaisuuksia ja toiminnallisuuksia, jotka

Lisätiedot

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

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

Kuntien Kansalliseen palveluarkkitehtuuriin liittyminen. Kunta-KaPA

Kuntien Kansalliseen palveluarkkitehtuuriin liittyminen. Kunta-KaPA Kuntien Kansalliseen palveluarkkitehtuuriin liittyminen Kunta-KaPA JUHTA 14.10.2015 Kunta-KaPA Kuntaliittoon on perustettu projektitoimisto, jonka tehtävänä on tukea ja edesauttaa Kansallisen Palveluarkkitehtuurin

Lisätiedot

Juhani Gurney Teknologiajohtaja. Peppi-projekti ja ESP (Eduix SOA Platform)

Juhani Gurney Teknologiajohtaja. Peppi-projekti ja ESP (Eduix SOA Platform) Juhani Gurney Teknologiajohtaja Peppi-projekti ja ESP (Eduix SOA Platform) Peppi-projekti Projekti aloitettu keväällä 2010 Projektin tehtävänä on määritellä, suunnitella ja toteuttaa uusi koulutuksen suunnittelutyökalujen

Lisätiedot

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

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko Ohjelmistokehykset Määritelmä & tavoitteet, taustaa & peruskäsitteitä, kehykset vs. suunnittelumallit, erikoistamisrajapinnat & kontrollinkulku, kehystyypit, kehysten rakenne ja evoluutio, esimerkki: JHotDraw,

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

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

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3 Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili 0..0 Omistaja->..3 asiakas

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Olioiden väliset yhteydet Yhteyden nimi Nimen lukusuunta pankkitili 0..10 Omistaja-> 1..3 asiakas

Lisätiedot

Palvelukuvaukset ja niiden käyttö palvelujen toteutuksessa. Seminaarityö Tom Bertell

Palvelukuvaukset ja niiden käyttö palvelujen toteutuksessa. Seminaarityö Tom Bertell Palvelukuvaukset ja niiden käyttö palvelujen toteutuksessa Seminaarityö 16.11.2006 Tom Bertell Sisältö 1 Johdanto... 1 2 Palvelun rajapinnan kuvaus... 1 2.1 WSDL 1.1... 2 2.2 WSDL käytännössä...5 3 Palvelun

Lisätiedot

UML-kielen formalisointi Object-Z:lla

UML-kielen formalisointi Object-Z:lla UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,

Lisätiedot

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta Palveluita ja sisältöä portaaliin - XML:n mahdollisuuksista XML-tietokannat ja julkishallinnon XML-sovellukset, 28.05.2002 Lasse Akselin, TietoEnator Oyj Sisällys Valtion tietotekniikan rajapintasuosituksia

Lisätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

Lisätiedot

Luokka- ja oliokaaviot

Luokka- ja oliokaaviot Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka

Lisätiedot

3. Komponentit ja rajapinnat

3. Komponentit ja rajapinnat 3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti

Lisätiedot

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat

Lisätiedot

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet ..999 DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili asiakas 0..0 Omistaja->..3

Lisätiedot

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

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

Hieman lisää malleista ja niiden hyödyntämisestä

Hieman lisää malleista ja niiden hyödyntämisestä Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Merkintöjen tulkintoja *++Pstack->top = item *Pstack->top++ = item (*Pstack->top)++ *(Pstack++)->top = item *(++Pstack)->top = item Lisää pinon toteutuksia Dynaaminen taulukko

Lisätiedot

Opetushallitus. ServiceMix POC

Opetushallitus. ServiceMix POC Opetushallitus ServiceMix POC SOA Governance Gartner: SOA governance = varmistetaan ja validoidaan, että palvelut toimivat odotetulla tavalla sekä palvelut saavuttavat halutun laatutason. SOA Governancen

Lisätiedot

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen, 14. Luento: Kohti hajautettuja sulautettuja järjestelmiä Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Johdanto Hajautettujen järjestelmien väyliä LON CAN Pienen laitteen sisäinen hajautus OpenCL Network

Lisätiedot

Ajankohtaisia SOA tutkimusteemoja

Ajankohtaisia SOA tutkimusteemoja Ajankohtaisia SOA tutkimusteemoja Paavo Kotinurmi Ohjelmistoliiketoiminnan ja -tuotannon laboratorio Sisältö Miten integraatiostandardit pohjana SOA-palveluille? Mitä on semanttinen SOA ja mitä SOAn haasteita

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus Teknologia-arkkitehtuuri ja rajapinnat/integraatiot 21.3.2019 Sisältö Alustojen asemoituminen ja pilvivalmius Arkkitehtuuriperiaatteet

Lisätiedot

Käyttökokemuksen evaluoinnista käyttökokemuksen ohjaamaan suunnitteluun. ecommunication & UX SUMMIT 18.9.2013 Eija Kaasinen, VTT

Käyttökokemuksen evaluoinnista käyttökokemuksen ohjaamaan suunnitteluun. ecommunication & UX SUMMIT 18.9.2013 Eija Kaasinen, VTT Käyttökokemuksen evaluoinnista käyttökokemuksen ohjaamaan suunnitteluun ecommunication & UX SUMMIT 18.9.2013 Eija Kaasinen, VTT 2 Hyvä käyttökokemus Laadukas käyttökokemus Ylivoimainen käyttäjäkokemus

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Microsoft Dynamics CRM 4.0. Jani Liukkonen

Microsoft Dynamics CRM 4.0. Jani Liukkonen Microsoft Dynamics CRM 4.0 Jani Liukkonen Microsoft Dynamics CRM kokonaisuus Täysi CRM toiminnallisuus ja joustavuus Vuorovaikutukset -Markkinointi Myynti -Asiakaspalvelu xrm -Prosessituki SOA -Joustava

Lisätiedot

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Tulevaisuuden Internet. Sasu Tarkoma

Tulevaisuuden Internet. Sasu Tarkoma Tulevaisuuden Internet Sasu Tarkoma Johdanto Tietoliikennettä voidaan pitää viime vuosisadan läpimurtoteknologiana Internet-teknologiat tarjoavat yhteisen protokollan ja toimintatavan kommunikointiin Internet

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Palvelujen dynaaminen valvonta

Palvelujen dynaaminen valvonta Palvelujen dynaaminen valvonta Esa Hämäläinen Palveluperustaisten ohjelmistojen suunnittelu ja kehittäminen seminaari Tuusula 18.9.2006 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Tiivistelmä Yritysten

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Liiketoimintajärjestelmien integrointi

Liiketoimintajärjestelmien integrointi Liiketoimintajärjestelmien integrointi Vierailuluento 2.3.2015 Esa Heikkinen Mystes Oy Agenda Liiketoimintajärjestelmien integrointi EAI: Enterprise Application Integration EAS: Enterprise Application

Lisätiedot

Edellä esitetty tapa toteuttaa palvelupohjaisia järjestelmiä edustaa nk. top-down lähestymistapaa. Oleellisesti siinä siis edetään systemaattisesti

Edellä esitetty tapa toteuttaa palvelupohjaisia järjestelmiä edustaa nk. top-down lähestymistapaa. Oleellisesti siinä siis edetään systemaattisesti 1 Edellä esitetty tapa toteuttaa palvelupohjaisia järjestelmiä edustaa nk. top-down lähestymistapaa. Oleellisesti siinä siis edetään systemaattisesti abstrakteimmalta tasolla tarkentaen yhä yksityiskohtaisemmalle

Lisätiedot

Rakennustietomallien hallinta linkitettynä tietona

Rakennustietomallien hallinta linkitettynä tietona Rakennustietomallien hallinta linkitettynä tietona Seppo Törmä, Jyrki Oraskari, Nam Vu Hoang Hajautettujen järjestelmien ryhmä Tietotekniikan laitos Aalto Yliopisto, Perustieteiden korkeakoulu Rakennustietomallit

Lisätiedot

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1. Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001

Lisätiedot

Viestinvälitysarkkitehtuurit

Viestinvälitysarkkitehtuurit Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Ohjelmistotekniikan menetelmät, suunnittelumalleja

Ohjelmistotekniikan menetelmät, suunnittelumalleja 582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka The administrative process of a cluster Santtu Rantanen Valvoja: Prof. Jorma Jormakka Sisällysluettelo Johdanto Yleistä HA klustereista Tietoturva klustereissa Hallintaprosessi Johtopäätökset Johdanto

Lisätiedot

Hss Consulting Oy / Teppo Sulonen 1

Hss Consulting Oy / Teppo Sulonen 1 Hss Consulting Oy / Teppo Sulonen 1 Teppo Sulonen, CV 1970 > 70 luku : Opiskelu Tampereen yliopisto Postipankki 80 luku : Ammattilainen Kaikki IT alasta Nokia Data 90 luku : Yrittäjä Avasta Transactions

Lisätiedot

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot Arkkitehtuuripankki Mallintamisen metamalli ja notaatiot 21.2.2018 Sisältö Kuvaustapa (notaatio) ja standardit Mallityypit Metamalli Muuta Kuvaustavat ja hyödynnetyt standardit JHS179 template ArchiMate

Lisätiedot

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy Oracle10 g Web Services Sisältö Service Oriented Architecture (SOA) Web Services Service Oriented Architecture Service Oriented

Lisätiedot

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö

Lisätiedot

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7 Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta 21.12.200 7 Mikä on IT arkkitehtuuri? Liiketoimintamalli määrittelee IT arkkitehtuurin IT arkkitehtuuri ottaa kantaa sovelluksen laadullisiin vaatimuksiin

Lisätiedot

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

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

6. Arkkitehtuurityylit

6. Arkkitehtuurityylit 6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit - Kerrosarkkitehtuurit - Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit - Asiakas-palvelin arkkitehtuurit - Viestinvälitysarkkitehtuurit

Lisätiedot

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit 6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit

Lisätiedot

Työeläkeyhtiö Varma. IBM Software Day 9.11.2010 Tuukka Tusa, Digia

Työeläkeyhtiö Varma. IBM Software Day 9.11.2010 Tuukka Tusa, Digia Työeläkeyhtiö Varma IBM Software Day 9.11.2010 Tuukka Tusa, Digia Varman perustehtävät Toimintamme perustuu suomalaiseen työhön ja työeläkejärjestelmän kestävyyden turvaamiseen Käsittelemme eläkkeet oikein

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

Liite 1: ServiceMix skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma

Liite 1: ServiceMix skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Liite 1: ServiceMix skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Testi Yksittäinen palvelu on ollut käytössä 6 Palvelun uusi versio on voitava

Lisätiedot

Muistimoduulit. Asiakirjan osanumero: 393521-351. Tässä oppaassa kerrotaan tietokoneen muistin vaihtamisesta ja laajentamisesta.

Muistimoduulit. Asiakirjan osanumero: 393521-351. Tässä oppaassa kerrotaan tietokoneen muistin vaihtamisesta ja laajentamisesta. Muistimoduulit Asiakirjan osanumero: 393521-351 Lokakuu 2005 Tässä oppaassa kerrotaan tietokoneen muistin vaihtamisesta ja laajentamisesta. Sisällysluettelo 1 Muistimoduulien lisääminen tai vaihtaminen

Lisätiedot

Uudet ominaisuudet. Realise Your Vision

Uudet ominaisuudet. Realise Your Vision Uudet ominaisuudet Realise Your Vision 1. Yleistä Autodesk Navisworks 2011 ohjelmistosta...2 Ohjelmistomodulit ovat uudistuneet...2 2. Asennuksessa muuttunut...2 3. Käyttöliittymän parannukset...4 Ribbon:it...4

Lisätiedot

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

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

MATINE-projekti 2500M-0069: Tietotekniset harhautukset (ICT Illusions)

MATINE-projekti 2500M-0069: Tietotekniset harhautukset (ICT Illusions) MATINE-projekti 2500M-0069: Tietotekniset harhautukset (ICT Illusions) Sampsa Rauti Turun yliopisto, Tulevaisuuden teknologioiden laitos MATINE-tutkimusseminaari, 16.11.2017 Esityksen sisältö Tiimi Taustaa

Lisätiedot

Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako?

Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako? Johtamisen haaste kokonaisarkkitehtuuri menestyksen mahdollistajako? JÄRJESTÄJÄ SAVO Q AIKA 14.11.2018 Kokonaisarkkitehtuurin määrittelyä Tekijä(t) Armour, F. & Kaisler, S. 2017. Introduction to Enterprise

Lisätiedot

Palvelulaatutietoinen väliohjelmisto

Palvelulaatutietoinen väliohjelmisto hyväksymispäivä arvosana arvostelija Palvelulaatutietoinen väliohjelmisto Pasi Vettenranta Helsinki 19.12.2003 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Ristiinopiskelun kehittäminen -hanke

Ristiinopiskelun kehittäminen -hanke Joustavia opiskelumahdollisuuksia tuetusti Exam-kevätpäivät (31.5.2018) Joustavia opiskelumahdollisuuksia tuetusti Hanke on opetus- ja kulttuuriministeriön rahoittama korkeakoulujen kehittämishanke. Tukea

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton 2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.

Lisätiedot