Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit



Samankaltaiset tiedostot
6. Arkkitehtuurityylit

6. Arkkitehtuurityylit

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Ohjelmistoarkkitehtuurit

Arkkitehtuurityylejä ja ratkaisumalleja

Viestinvälitysarkkitehtuurit

Ohjelmistoarkkitehtuurit Kevät 2016 Arkkitehtuurityylit, osa 1

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Arkkitehtuurityylejä ja patterneja

Ohjelmistoarkkitehtuurit, syksy

Oppimistavoitteet. Arkkitehtuurityylejä ja patterneja. Tyylien ja patternien käytöstä. Kolmitasoarkkitehtuuri (N-Tier) Kolmitasoarkkitehtuuri (N-Tier)

Ohjelmistoarkkitehtuuri

Viestinvälitysarkkitehtuurit Lähtökohta:

10. Muunneltavuuden hallinta: variaatiopisteet

HOJ J2EE & EJB & SOAP &...

9. Muunneltavuuden hallinta

Ohjelmistoarkkitehtuurit. Kevät

HSMT J2EE & EJB & SOAP &...

Ohjelmistoarkkitehtuurit. Kevät

10. Muunneltavuuden hallinta: variaatiopisteet

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Palveluperustaiset arkkitehtuurityylit

Ohjelmistoarkkitehtuurit. Kevät 2014 Kertausta

Muunneltavuuden hallinta (Variability management):

Suunnitteluvaihe prosessissa

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

Tiedonsiirto- ja rajapintastandardit

JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 9. Virtualisointi ja pilvipalvelut teknologia-arkkitehtuurin suunnittelussa

Liiketoimintajärjestelmien integrointi

3. Komponentit ja rajapinnat

Järjestelmäarkkitehtuuri (TK081702)

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

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

Arkkitehtuurityylit ohjelmarakenteen perustana

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Liiketoimintajärjestelmien integrointi

Ohjelmistoarkkitehtuurit Kevät 2014 Arkkitehtuurityylit vol 2

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Tietoliikenne II (2 ov)

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Tietoliikenne II (2 ov)

SAP. Lasse Metso

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen suunnittelu

10. Tuoterunkoarkkitehtuurit

Kari Rouvinen Johtaja, Technology Products & Solutions. Oracle Finland Oy

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

Harjoitustehtävät ja ratkaisut viikolle 48

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

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


Hintatiedotus ja tietojen välitys. Loppuraportti

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

Ohjelmistoarkkitehtuurit

Tässä kertauksena SOA ja palvelu.

12. Kehysarkkitehtuurit

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Muunneltavuuden hallintaa Kevät 2016 Samuel Lahtinen. Ohjelmistoarkkitehtuurit 2016

SOA SIG SOA Tuotetoimittajan näkökulma

Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia

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

Ohjelmistoarkkitehtuurit Muunneltavuuden hallintaa, Ylläpidosta kevyesti, Vähän rääppeitä aiemmilta kerroilta

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

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

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

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

Tiedon suojaaminen ja hallinta. Sytyke seminaari

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

A Service-Oriented Architecture (SOA) View of IHE Profiles

Tekninen suunnitelma - StatbeatMOBILE

Ohjelmistoteknologioiden koulutus: Web-sovelluskehitys, Java Server. Infotilaisuus klo 10:00

Teemu Kerola Orientointi Syksy 2018

Ohjelmistokehykset (software frameworks)

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Ohjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko

UNA PoC-yhteenveto CGI Aino Virtanen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Tekninen suunnitelma - StatbeatMOBILE

Web Services tietokantaohjelmoinnin perusteet

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Integrointi. Ohjelmistotekniikka kevät 2003

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

9 Edistynyt PHP-ohjelmointi

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

Sovellusarkkitehtuurit

in condition monitoring

7. Tuoterunkoarkkitehtuurit

Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa:

Transkriptio:

6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit Erikoisarkkitehtuurityylit MVC arkkitehtuurit Tulkkiarkkitehtuurit Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Mitä ovat arkkitehtuurityylit? Arkkitehtuurityyli = yleinen malli, joka kertoo miten järjestelmä organisoidaan ylimmällä abstraktiotasolla, määräten järjestelmän yleisen teknisen luonteen Arkkitehtuurityylit eivät sulje toisiaan pois! Kysymyksiä, jotka voivat johtaa arkkitehtuurityylin valintaan: - Koostuuko järjestelmä komponenteista, jotka ovat selvästi eri käsitetasoilla? - Onko järjestelmän päätarkoitus jalostaa tietoa? - Jaetaanko järjestelmässä jotain resurssia tai tietoa erillisille sovelluksille? - Koostuuko järjestelmä joukosta komponentteja, jotka kommunikoivat keskenään etukäteen tuntemattomilla tavoilla? Ovatko komponentit usein vaihtuvia? Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 2

Kerrosarkkitehtuurit Kerrosarkkitehtuuri: Järjestelmän organisointi käsitetasoltaan nouseviin kerroksiin.. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 3

Abstraktiotasojen rikkominen ja ohitus Ohitus käyttää toteuttamiseen Abstraktiotasojen rikkominen Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 4

Takaisinkutsut kerrosarkkitehtuurissa Sovelluskerros normaali kutsu takaisinkutsu Alustakerros Takaisinkutsulla voidaan rikkoa kerrosarkkitehtuurin periaatetta ilman, että alempi kerros riippuu ylemmästä Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 5

Kerrosarkkitehtuurien kuvaus: hampurilainen Ei ohituksia Ohituksia Ohituksia Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 6

Kerrosten rajapinnat Kerros A Comp1 Comp2 Comp3 Kerros B Comp4 Comp5 Comp6 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 7

Esimerkki: tyypillinen liiketoimintajärjestelmä Käyttöliittymä Sovelluskohtainen logiikka Sovellusaluekohtainen logiikka Tietokanta Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 8

Kerrosarkkitehtuuri voi olla moniulotteinen Core GUI Default GUI App GUI GUI Käyttöliittymä Core Logic Default Logic App Logic Logic Core Support Default Support App Support Support Peruspalvelut Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 9

Kerrosarkkitehtuuri voi olla moniulotteinen Core GUI Default GUI App GUI Core Logic Default Logic App Logic Core Support Default Support App Support Yleiskäyttöinen Tuotekohtainen Core Default App Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 10

rivikerros riippuu sarakeker Kerrosten riippuvuusanalyysi P1 P2 P3 P4 P5 P1 X X P2 X X P3 X X OK, ohitusaste = 1 P1 P2 P3 P4 P5 P4 X P5 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 11

row depends on col Kerrosten riippuvuusanalyysi P1 P2 P3 P4 P5 P1 X X P2 X Ei OK, mitä tehdä? P1 P2 P3 P4 P5 P3 X X X P4 X P5 Vaihdetaan P2:n ja P3:n paikat, jos P2 ei ole selvästi korkeammalla käsitetasolla Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 12

row depends on col Kerrosten riippuvuusanalyysi P1 P2 P3 P4 P5 P1 X X P2 X X Ei OK, mitä tehdä? P1 P2 P3 P4 P5 P3 X X X P4 X Yhdistetään P2 ja P3? P5 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 13

Kerrosten riippuvuusnanalyysi Kerros P2 Yksittäisten komponenttien vaihto Comp1 Comp2 Comp3 Kerros P3 OK, jos ei käsitetason ristiriitaa Comp4 Comp5 Comp6 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 14

Kerrosten riippuvuusnanalyysi Kerros P2 Yksittäisten komponenttien vaihto Comp1 Comp2 Comp3 EI OK Kerros P3 Comp4 Comp5 Comp6 Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 15

Kerrosarkkitehtuurin suunnittelu Määrittele kerrosjaottelun peruste Määrää kerrokset, niiden nimet ja karkeat vastuut Määrittele kerrosten tarjotut ja vaaditut rajapinnat Varmista, että nämä rajapinnat ovat yhteensopivia Sijoita kuhunkin kerrokseen komponentit ja määrittele niiden riippuvuudet Varmista, ettei alempi kerros riipu ylemmästä ja ettei ylempi kerros riipu alemman toteutuksesta Tarkenna ja korjaa arkkitehtuuria, jos on tarvis Suunnittele poikkeusten käsittely Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 16

Harjoitus Suunnittele kerrosarkkitehtuuri seikkailupelille. Järjestelmään kuuluvat seuraavat osat: - Yleinen seikkailupelilogiikka (AL) - Tietokanta (DB) - Pelikäyttöliittymä (GUI) - Graafinen tuki seikkailupeleille (GS) - Pelitietokantapalvelut (GB) - Pelin logiikka (GL) - Yleinen graafinen kirjasto (G) Sijoita nämä osat kerroksiin. Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 17

GUI GL AL GB GS DB G Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 18

Kerrosarkkitehtuurien edut ja ongelmat Etuja Melkein aina sovellettavissa Tukee järjestelmän ymmärtämistä ja hallintaa Vähentää riippuvuuksia (ylläpidettävyys, muunneltavuus) Helppo liittää yrityksen organisaatioon Tukee uudelleenkäyttöä (tuoterunkoarkkitehtuurin pohjana) Ongelmia Suorituskyky voi heikentyä (epäsuoruus) Saattaa johtaa tarpeettomaan/moninkertaiseen laskentaan Poikkeusten käsittely Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 19

Tietovuoarkkitehtuurit Tietovuoarkkitehtuuri koostuu komponenteista (filter), jotka tuottavat ja kuluttavat tietoalkioita, ja tietoalkioita komponentilta toiselle kuljettavista väylistä (pipe). filter pipe filter pipe filter pipe pipe filter pipe filter Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 20

Tyypillistä tietovuoarkkitehtuurille Prosessointiyksiköt toimivat toisistaan riippumattomasti (eivät jaa tilatietoa) Prosessointiyksiköt eivät tunne toisiaan, ainoastaan väylien vaatiman tietoformaatin Tieto voidaan prosessoida paloittain Yksiköt ovat tilattomia Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 21

Erikoistapaus: liukuhihna (pipeline) pipe pipe filter filter filter Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 22

Kontrollin toteutus liukuhihnassa: työntävä tapa Source Filter1 Filter2 Sink push(data) process push(data) process push(data) push(data) process Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 23

Kontrollin toteutus liukuhihnassa: vetävä tapa Source Filter1 Filter2 Sink pull data pull pull process data process data pull Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 24

Rinnakkaiset yksiköt: puskurointi Puskuri filter filter Kukin yksikkö omassa prosessissaan Hitain yksikkö määrää kokonaisajan Puskurien koko on kriittinen tekijä Puskuri on tyypillisesti jonorakenne Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 25

Esimerkki: äänenkäsittelyjärjestelmä Raaka äänidata Lataaja Käsittelyyksikkö... Kaiuttimet Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 26

Esimerkki: yksivaihekääntäjä Selaaja Jäsentäjä Koodin generointi merkkejä tekstialkioita kielen rakenteita koodi ongelma: ohjelmatekstin kontekstisidonnainen käsittely ratkaisu: (i) tietoa kerätään globaaliin symbolitauluun (data) (ii) jäsentäjä toimii pääohjelmana (kontrolli) Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 27

Tietovuoarkkitehtuurien edut ja ongelmat Etuja: Mutkikas tiedon käsittelyprosessi voidaan jakaa helpommin hallittaviin palasiin Tukee uudelleenkäyttöä: prosessointiyksiköitä voidaan kombinoida eri tavoin Tukee ylläpitoa: prosessointiyksikköä voidaan helposti muuttaa Tukee rinnakkaisuutta Ongelmia: Ei sovi interaktiivisille järjestelmille Tiedon tulkinnasta tulee suorituskykyrasitetta Virhetilanteiden käsittely voi olla vaikeaa Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 28

Palveluihin perustuvat arkkitehtuurityylit Oliot (1970-luku) olio lista lisää Käyttävä yksikkö poista Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 29

Palveluihin perustuvat arkkitehtuurityylit Komponentit (1980-luku) Suomenkielen tavutus komponentti Tavutusrajapinta Tekstijärjestelmä Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 30

Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin (1990-luku) Palvelun pyytäjä Palvelun tarjoaja Palvelun pyytäjä Esim. EJB verkko Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 31

Palveluihin perustuvat arkkitehtuurityylit Service-Oriented Architecture (SOA) (2000-luku) kysyy palvelua Palvelurekisteri verkko rekisteröityy Palvelun pyytäjä palvelun saaminen Palvelun tarjoaja Esim. Web services Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 32

Palveluihin perustuvat arkkitehtuurityylit Palveluväylä (Enterprise Service Bus, ESB) Sovellus Sovellus Sovellus Sovellus Sovitin Sovitin Sovitin Sovitin Väylä - sovellukset tarjoavat palvelujaan väylän kautta - idea: viestin reititys riippuu viestistä -> ei synny riippuvuuksia sovellusten välille Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 33

Cloud computing Yleinen palveluinfrastruktuuri verkossa Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 34

Asiakas-palvelin arkkitehtuurit Asiakas-palvelin arkkitehtuuri: järjestelmä koostuu jotakin resurssia kontrolloivista ja siihen liittyviä palveluja tarjoavista palvelimista (server) ja palveluja tarvitsevista asiakkaista (client). Erityisominaisuuksia: Palvelut tarjotaan istunnoissa, tiettyyn kokonaisuuteen kuuluvat palvelut annetaan saman yhteyden aikana kontrolloidusti (transaktioina) Asiakkaat ja palvelimet toimivat omissa prosesseissaan, tyypillisesti hajautettuina Asiakkaat ovat tyypillisesti omia sovelluksia, jotka eivät tunne toisiaan Palvelimet eivät tunne asiakkaita Palvelimet tyypillisesti hallinnoivat jotain resurssia tai tietovarastoa Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 35

Esimerkkejä Tietovarastopalvelimet Sovelluspalvelimiin perustuvat järjestelmät Sähköpostipalvelimet, Web palvelimet Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 36

Tietovarastopalvelimet ja sovelluspalvelimet Asiakas Asiakas Käyttöliittymä Sovelluskohtainen logiikka Sovellusaluekohtainen logiikka Palvelin Käyttöliittymä Palvelin Sovelluskohtainen logiikka Sovellusaluekohtainen logiikka Tietokanta Tietokanta Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 37

Asiakas-palvelin arkkitehtuurien edut ja ongelmat Etuja Helpottaa yhteisen resurssin hallintaa (esim. tietoturva) Helpottaa ylläpitoa ja muunneltavuutta (esim. palvelimen vaihto) Hyvä teknologinen tuki Ongelmia Verkkoliikenteestä johtuvat suorituskykyongelmat Palvelinkeskeisyys: kriittisen palvelimen vikaantuminen Poikkeusten käsittely Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 38

Yhteenvetoa Kerrosarkkitehtuuri osittaa järjestelmän abstraktiotasojen mukaan Tietovuoarkkitehtuuri osittaa järjestelmän työstämisvaiheiden mukaan Palvelupohjaiset järjestelmät ovat kehittyneet olioohjelmoinnista lähtien kohti palveluväyläratkaisuja Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 39