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

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

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

Liiketoimintajärjestelmien integrointi

Netvisor matkalaskuliittymä

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

Liiketoimintajärjestelmien integrointi

Ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurit

Tietoliikenne II (2 ov)

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

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?

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?

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

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

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

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

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