Reflektiomekanismien rooli palveluorientoituneissa järjestelmissä. Seminaarityö Tom Bertell
|
|
- Hilja Sipilä
- 5 vuotta sitten
- Katselukertoja:
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ä
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ätiedotArkkitehtuurinen 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ätiedotMetatiedon 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ätiedotWeb-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ätiedotarvostelija 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ätiedotJä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ätiedotJä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ätiedotTenttikysymykset. + 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ätiedotPalvelusuuntautunut 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ätiedotOhjelmistoarkkitehtuurit 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ätiedotWeb-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ätiedotJä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ätiedotwww.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ätiedotTietojä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ätiedotJoskus 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ätiedotHOJ 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ätiedotohjelman 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ätiedotIntegrointi. 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ätiedotSovellusarkkitehtuurit
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ätiedotHSMT 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ätiedotVirtualisointiympä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ätiedotSOA: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ätiedotTiedonsiirto- ja rajapintastandardit
Tiedonsiirto- ja rajapintastandardit Viitekehys Julkishallinnon perustietovarantojen rajapinnat (PERA) työryhmän tulokset valmiit syksyllä 2011 Määrittelee teknisen arkkitehtuuriratkaisun tietovarantojen
LisätiedotOhjelmistojen 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ätiedotAlkuraportti. 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ätiedotTietokanta (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ätiedotAlkuraportti. 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ätiedotTOIMIJAREKISTERIN 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ätiedotTIE-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ätiedotKuntien 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ätiedotJuhani 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ätiedotLiite 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ätiedotTenttikysymykset. + 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ätiedotOhjelmistokehykset 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ätiedotUML: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ätiedotUutisjä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ätiedotOliosuunnitteluesimerkki: 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ätiedotJohdatus 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ätiedotArkkitehtuurikuvaus. 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ätiedotOhjelmiston 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ätiedotJä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ätiedotYhteydelle 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ätiedotPalvelukuvaukset 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ätiedotUML-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ätiedotSisä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ätiedot4.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ätiedotLuokka- 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ätiedot3. 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ätiedotPerusarkkitehtuurin 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ätiedotJohdatus 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ätiedotJä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ätiedotOhjelmistojen 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ätiedotHieman 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ätiedotOhjelmistojen 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ätiedotTietorakenteet 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ätiedotOpetushallitus. 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ätiedot14. 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ätiedotAjankohtaisia 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ätiedotjotakin 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ätiedotIoT-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ätiedotKä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ätiedotOhjelmistojen 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ätiedotMicrosoft 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ätiedotSolidity ä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ätiedotJä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ätiedotHelsingin 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ätiedotTulevaisuuden 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ätiedotTenttikysymykset. + 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ätiedotPalvelujen 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ätiedotConcurrency - 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ätiedotLiiketoimintajä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ätiedotEdellä 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ätiedotRakennustietomallien 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ätiedotSisä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ätiedotViestinvä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ätiedotYksikkö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ätiedotOhjelmistotekniikan menetelmät, suunnittelumalleja
582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman
LisätiedotOhjelmoinnin 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ätiedotThe 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ätiedotHss 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ätiedotArkkitehtuuripankki. 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ätiedotHarri 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ätiedotYhteentoimivuusalusta: 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ätiedotPaikkatietorajapinnat 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ätiedotSisä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ätiedot11/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ätiedot6. Arkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit - Kerrosarkkitehtuurit - Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit - Asiakas-palvelin arkkitehtuurit - Viestinvälitysarkkitehtuurit
LisätiedotOsittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
LisätiedotTyö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ätiedotVaatimusmää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ätiedotRajapinta (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ätiedotLiite 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ätiedotMuistimoduulit. 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ätiedotUudet 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ätiedotSisä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ätiedotMATINE-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ätiedotJohtamisen 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ätiedotPalvelulaatutietoinen 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ätiedotRistiinopiskelun 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ätiedot812347A 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