Ohjelmistoarkkitehtuurit

Samankaltaiset tiedostot
OA:n kanoninen malli I

Oppimistavoitteet. Sovellusaluemalli Domain Model. Esimerkkiohjelmisto Yinzer 1. Sovellusaluemallin käyttö. Sovellusaluemallin käyttö 24.9.

Integrointi. Ohjelmistotekniikka kevät 2003

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Arkkitehtuurityylejä ja suunnittelutaktiikoita

Ohjelmistojen suunnittelu

Palveluperustaiset arkkitehtuurityylit

Suunnitteluvaihe prosessissa

Ohjelmistojen mallintaminen, sekvenssikaaviot

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Oppimistavoitteet. Arkkitehtuurityylejä. Microservices. Microservices. Microservices LISÄÄ ARKKITEHTUURITYYLEJÄ. Arkkitehtuurityylejä

Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu. Poissulkeminen moduulin sisällä?

Etäproseduurikutsu. Etäproseduurikutsu, Remote Procedure Call (RPC)

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

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

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Tietojärjestelmäarkkitehtuurit

Järjestelmäarkkitehtuuri (TK081702)

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

Etäproseduurikutsu. RPC Toteutus Virhesemantiikka. Andrews 8.1, 10.3, Stallings 13.3

6. Arkkitehtuurityylit

Tulevaisuuden Internet. Sasu Tarkoma

HOJ J2EE & EJB & SOAP &...

Hammastankohissin modernisointi. Heikki Laitasalmi

Ohjelmistoarkkitehtuurit, syksy

Sovellusarkkitehtuurit

6. Arkkitehtuurityylit

Ohjelmistotekniikan menetelmät, UML

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

OSI ja Protokollapino

Ohjelmistotuotanto, s

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko

Monitoimittajaympäristö ja SIAM, haasteet eri toimijoiden näkökulmasta

Suomi.fi-palveluväylä

Ohjelmistoarkkitehtuurit kevät

Sovellusalue- ja suunnittelumallit Domain Model, Design Model

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

Kuluttajaverkkolaskutus ja esilläpitopalvelu Suomessa

EUREFin vaikutukset organisaatioiden tietojärjestelmiin

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Liiketoimintajärjestelmien integrointi

Netvisor matkalaskuliittymä

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

SOA & Ajax Sanahelinää vai toimivaa käytäntöä sähköisessä asioinnissa? Fenix hankejohtaja Harri Juuti Projektipäällikkö Teemu Karvonen

Liiketoimintajärjestelmien integrointi

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurit

Tietoliikenne II (2 ov)

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

ETL-DEMO. Esimerkki ETL-kuvauskielen käyttöstä

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Avoimen MaaS-ekosysteemin työpaja

Toimittaja Looginen väylärakenne + kirjastot. Kalle Launiala, ProtonIT Oy kalle.launiala@protonit.net

Tiedonsiirto- ja rajapintastandardit

JUnit ja EasyMock (TilaustenKäsittely)

Ohjelmistoarkkitehtuurit, syksy

Tikon ostolaskujen käsittely

Etäproseduurikutsu, Remote Procedure Call (RPC) Etäproseduurikutsu. Poissulkeminen moduulin sisällä?

Mikä on EN81-28? Jumittunut hissiin?

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Tikon ostolaskujen käsittely

Algoritmit 1. Luento 3 Ti Timo Männikkö

HSMT J2EE & EJB & SOAP &...

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

XDW-projektissa rakennetut palvelut

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Uutta Fortnox ohjelmistossa:

Tietojärjestelmän osat

Opetus- ja koulutusyhteistyöhön liittyvä korkeakoulujen tietojärjestelmien yhteentoimivuuden kehittäminen ja arkkitehtuurityö

Monipuolinen esimerkki

Ohjelmistoarkkitehtuurit, syksy

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

Vesisika. metsiemme työmyyrä.

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Referenssit ja näytteenotto VLBI -interferometriassa

Tietoliikenne II (2 ov)

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Sisällysluettelo. Johdanto Dot NET Microsoft.NET -alusta Käyttäjämallit Ohjelmien kehitys.net-alustalla...

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)

KIEKUN TUKI KUSTANNUSLASKENNALLE. Juho Ajo, ratkaisupäällikkö Valtiokonttori, Kieku

Kutakin koulutusmoduulia voi vastata n. määrä koulutusmoduulin toteutuksia. Koulutusmoduulin toteutus on voimassa tietyn ajan.

Lisää reititystä. Tietokoneverkot 2009 (4 op) Syksy Futurice Oy. Lisää reititystä. Jaakko Kangasharju

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Lisää reititystä. Tietokoneverkot 2008 (4 op) Syksy Teknillinen korkeakoulu. Lisää reititystä. Jaakko Kangasharju

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka

Suomi.fi-palveluväylä

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Koodimalli Code Model

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

HELIA TiKo-05 1 (10) Outi Virkki ICT03D Tieto ja tiedon varastointi yrityksessä

suomi.fi Suomi.fi-palveluväylä

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Projekti, projektinhallinta ja projektiliiketoiminta. Projektin ympäristö, päämäärä, tavoitteet, elinkaari, laajuus ja työn ositus

Suomi.fi-palveluväylä. Palvelulupaus ja tiekartta

Tuotemallipohjaisen toimintaprosessin mallintaminen

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

Transkriptio:

Ohjelmistoarkkitehtuurit Konnektorit ohjelmistoarkkitehtuurissa 18.9.2012 1 Konnektorit (connectors) Konnektori (connector) (liitos) Arkkitehtuurielementti, jonka tehtävänä on mahdollistaa ja hallita komponenttien vuorovaikutusta Konnektorien vastuulla Kontrollin siirto Tiedon siirto Tuki- ja alustapalvelut (facilities) esim. toiminnon käynnistys, viestinvälitys, transaktiot, persistenssi, jne 18.9.2012 2 Harri Laine 1

Konnektorien tehtäviä Mahdollisia palveluita Kommunikointi tiedonsiirto (communication) esim. sanomanvälitys Koordinointi kontrollin siirto (coordination) esim. yksinkertainen proseduurikutsu - monimutkainen kuormantasauslliittymä Konversio komponenttien vuorovaikutustapojen yhteensovitus (conversion) esim. tietomuotokonversiot, kääreet (wrappers) Toiminnan mahdollistaminen tukitoiminta (facilitation) esim. ajastus, samanaikaisuuden hallinta Konnektori voi tarjota useita palveluita Yhdestä tai useammasta yllä mainitusta luokasta Ainakin yksi palvelu 18.9.2012 3 Konnektorit arkkitehtuurissa Ohjelmistojen toteutuksessa konnektoreilla Ei usein ole omaa koodia eikä identiteettiä Ei käännösyksikkövastaavuutta toteutus on hajautettu useaan moduuliin ja useaan vuorovaikutusmekanismiin Käsitteellisellä tasolla Keskeisiä identiteetin omaavia arkkitehtuurielementtejä Kuvaavat kaiken vuorovaikutuksen komponenttien välillä Tarvitsevat omat määritykset Komponentit sovelluskohtaisia palveluita, konnektorit sovellusriippumattomia vuorovaikutustapoja 18.9.2012 4 Harri Laine 2

Konnektoriesimerkki A on yhteydessä B:hen Unix-putken kautta Unix -putki: vapaamuotoinen yksisuuntainen nimetön tietovuo, välittää merkkitietoa yksi lähettäjä - yksi vastaanottaja lähettäjä ja vastaanottaja eivät tiedä toisistaan tietovuon puskurointi - rajattu puskurikoko - puskurin täyttyessä lähettäjä odottaa 18.9.2012 5 Konnektorit Yksinkertaiset yksinkertainen perusmekanismi komponenttien liittämiseen Monimutkaiset koostuvat monista yksinkertaisemmista liitännöistä ja kokoamisen toteuttavista ulkoisista komponenteista 18.9.2012 6 Harri Laine 3

Konnektorityypit Konnektorityypit (1) Proseduurikutsu (procedure call) Tapahtuma (event) Tietokytkös (data access) Linkitys (linkage) Tietovuo (stream) Välittäjä (arbitrator) Sovitin (adaptor) Välityspalvelu (distributor) (1)Mehta, Medvidovic, Phadke: Towards a Taxonomy of Software Connectors, 2000 18.9.2012 7 Konnektorityypit Proseduurikutsu (procedure call) Koordinointi Kontrollin siirto kutsutulle Kommunikointi Parametrit ja paluuarvot Esim. metodikutsut, fork, exec, callback kutsut, käyttöjärjestemäpalvelujen kutsut Osana koosteliitoksia esim. etäproseduurikutsussa Kutsuja in out Parametrinvälitys (sama muistiavaruus) Siirtää kontrollin Kutsuttava 18.9.2012 8 Harri Laine 4

Proseduurikutsu Proseduurikutsun muuntelutekijöitä (Taylor) 18.9.2012 9 Tapahtumat Tapahtumaliitokset Vaikuttavat kontrollin siirtymiseen (epäsuora aktivointi) Tapahtumat syntyvät toiminnan tuloksena Tapahtumaliitos välittää ilmoituksen tapahtumasta kaikille kiinnostuneille komponenteille ja siten aktivoi tapahtumakäsittelijän Tapahtumaan voi liittyä tietoja (kommunikointiaspekti) Tapahtuma Informointimekanismi aktivointi tarkkailu Lähde rekisteröityminen Käsittelijä 18.9.2012 10 Harri Laine 5

Tapahtumat Tapahtumaliitosten muuntelutekijöitä (Taylor): 18.9.2012 11 Tietokytkös Tietokytkös (data access) pääsy tietovarastoon (komponentti), esitysmuotokonversiot pysyväisluonteinen tieto/ tilapäinen tieto käyttäjä Tietopalvelu tietovarasto 18.9.2012 12 Harri Laine 6

Tietokytkös Muuntelutekijöitä 18.9.2012 13 Linkitys Linkitys (linkage) Komponenttien kytkeminen yhteen kommunikaatiota tai kontrollinsiirtoa varten Muuntelutekijöitä (Taylor): 18.9.2012 14 Harri Laine 7

Tietovuo Tietovuo (stream) Suurten tietomäärien siirto prosessien välillä Tulosten siirto asiakas palvelin järjestelmissä Esim. unix putket, TCP/UDP pistokkeet, asiakas-palvelin protokolla Lähde tietovuo Kohde 18.9.2012 15 Tietovuo Tietovuo muuntelutekijöitä (Taylor): 18.9.2012 16 Harri Laine 8

Sovittelija Sovittelija (arbitrator) komponenttien yhteistoiminnan hallinta, palvelupyyntöjen (kontrollin siirron) ohjaus Komponentit tietävät toistensa olemassaolon mutta eivät yksityiskohtaisia tarpeita Samanaikaisuuden hallinta, palvelutason hallinta, turvallisuuspalvelut, kuormantasaus, virhetilanteet osallinen osallinen sovittelija 18.9.2012 17 Sovittelija Muuntelutekijöitä 18.9.2012 18 Harri Laine 9

Sovitin Sovitin Mahdollistaa vuorovaikutuksen sellaisten komponenttien välillä, joiden ei ole suunniteltu olevan vuorovaikutuksessa keskenään 18.9.2012 19 Sovitin muuntelutekijät 18.9.2012 20 Harri Laine 10

Välityspalvelu -distributor Vuorovaikutusreittien tunnistus ja kommunikaation ja kontrollin reititys 18.9.2012 21 Välityspalvelu välityspalvelu osapuoli osapuoli Tiedon / kontrollin siirto 18.9.2012 22 Harri Laine 11

Koosteliittymät Esimerkki monimutkaisesta koosteliitoksesta: Asiakas - palvelin tyyppinen tiedonjakeluliitäntä Rakenneosat: proseduurikutsu, tietokytkös, tietovuo,välityspalvelu Toiminta käynnistys synkronisella etäproseduurikutsulla tiedonhaku/muokkaus tietokytköstä hyväksikäyttäen Haettu tieto pakataan tietovuoksi, joka toimitetaan tcp/ip protokollan mukaisina pakkauksina palautettava tieto paluuarvona välityspalvelu hakee palvelun osoitteen nimipalvelusta 18.9.2012 23 Edellä esitellyt konnektorityypit ovat, huolimatta niihin liittyvistä kuvailumahdollisuuksista, liian epämääräisiä esimerkiksi arkkitehtuurin automaattiseen analysointiin, simulointiin tai koodingeneroinnin pohjaksi. Täsmällisempiäkin konnektori- ja komponenttimalleja on julkaistu Esim SOFA (nyk. SOFA2, Distributed software architecture group,charles university, Praha, 2005->) esittelee hierarkkisista komponenteista koostuvan komponenttimallin ja primitiivisistä tai koosteisista konnektoreista muodostuvan konnektorimallin, jossa konnektorien rakenne ja käyttäytyminen on täsmällisesti määriteltävissä 18.9.2012 24 Harri Laine 12

Etäproseduurikutsu konnektori logging srole crole stub skeleton 18.9.2012 25 reqmgr Send/rec Send/rec srvmgr marshaller marshaller stub skeleton 18.9.2012 26 Harri Laine 13