Ohjelmistoarkkitehtuurit. Kevät 2014



Samankaltaiset tiedostot
Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Kevät

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Viestinvälitysarkkitehtuurit

Abstraktiotason nostoa, mallipohjainen ohjelmistokehitys. Samuel Lahtinen Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Refaktorointia, ohjelmien ylläpitoa ja evoluutiota. Kevät 2016


Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistoarkkitehtuurit. Syksy 2008

Tietojärjestelmäarkkitehtuurit

Sähköpostiohjeet. Tehokas ja huoleton sähköposti

Ohjelmistoarkkitehtuurit. Syksy 2007

HTML5 - Vieläkö. Antti Pirinen

Ohjelmistoarkkitehtuurit. Syksy 2010

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Liiketoimintajärjestelmien integrointi

Windows Live SkyDrive - esittely

Sonera Hosted Mail -palvelun käyttöohje

Pilvipalvelujen tietoturvasta

Liiketoimintajärjestelmien integrointi

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

in condition monitoring

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

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

SKYPE-RYHMÄN LUOMINEN

Integrointi. Ohjelmistotekniikka kevät 2003

Veto-visualisointityökalu

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

HOJ J2EE & EJB & SOAP &...

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Suomen avoimien tietojärjestelmien keskus COSS ry

Johdatus rakenteisiin dokumentteihin

HSMT J2EE & EJB & SOAP &...

Interfacing Product Data Management System

Turvallisuustoimijoiden ekosysteemi Alustat - tilaaja toimittaja-vuoropuhelutilaisuus Sami Kilkkilä Liiketoimintajohtaja

Message Broadcasting. Käyttöympäristö. Message Broadcasting -laajennuksen asentaminen. Viestien luominen

Viestinvälitysarkkitehtuurit

Toimialan ja yritysten uudistuminen

Tekninen suunnitelma - StatbeatMOBILE

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Javan asennus ja ohjeita ongelmatilanteisiin

Järjestelmäarkkitehtuuri (TK081702)

AJOK/KEAJ/IAJOK. Koetallennus

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Työtapaturman ilmoittaminen 2016-> Uusi sähköinen lomake, täyttäminen esimies ja palkkahallinto

-versiot) Mozilla Firefox Safari Chrome. selaimista. Windows. Windows. Vista. Windows

W3C ja Web-teknologiat

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

MODERNIT TOIMINTATAVAT KUNNOSSAPIDOSSA URAKOITSIJAN JA TILAAJAN YHTEINEN ETU

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Mobiiliturva Palvelun käyttöönotto

Harjoitustehtävät ja ratkaisut viikolle 48

Viestintäsuunnitelma Student Lifen ohjausryhmä

Tech Conference Windows 10 viimeinen Windowsversio? Sami Laiho Senior Technical Fellow, MVP. #TechConfFI

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Avoimia liiketoimintamahdollisuuksia? Liiketoiminta ja avoin paikkatieto -talviseminaari Torstaina

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

SUOMALAISET PK-YRITYKSET EIVÄT LUOTA PILVIPALVELUIHIN

KODAK EIM & RIM VIParchive Ratkaisut

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

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Tekninen suunnitelma - StatbeatMOBILE

Integraatiotekniikan valinta - tie onnistumiseen.

Dynaaminen hankintajärjestelmä. Kuntatalo Katariina Huikko Lakimies, Suomen Kuntaliitto

MARA-ALAN LIIKETOIMINNAN TIETOTURVALLISUUSUHAT

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

Taltioni teknisen alustan arviointi

Tiedätkö millainen mielikuva asiakkaalla on yrityksestäsi?

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

Viestinvälitysarkkitehtuurit Lähtökohta:

Käyttöjärjestelmät: Virtuaalimuisti

Ohjelmistoarkkitehtuurit

Helpottuuko sovellusten välinen integraatio XML:n avulla - kokemuksia ja ratkaisuja, teknologiajohtaja Sauli Tujunen, atbusiness Communications Oyj

Verkkokauppaalustojen oppimäärä. LADEC Verkkokaupan ABC Jussi Kujansuu / Head of ecommerce / Solita

Käyttöönotto-ohje. DNA Sähköposti

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou

7.4 Variability management

Lisää segmenttipuusta

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

Kiekun arkkitehtuuri ja tekniikka. Ghita von Gerdten projektipäällikkö

MISSÄ MENNÄÄN TIETOMALLINNUKSESSA?

YKSILÖLLINEN ELÄMÄNSUUNNITTELU

Ohjelmistoarkkitehtuurit kevät

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

Mat Systeemien identifiointi

Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

3. Komponentit ja rajapinnat

Avoimen lähdekoodin ohjelmien ylläpito ja evoluutio

PLA Mobiiliohjelmointi. Mika Saari

6. Arkkitehtuurityylit

TIE Ohjelmistojen suunnittelu

Teollisuusautomaation tietoturvaseminaari

Transkriptio:

Ohjelmistoarkkitehtuurit Kevät 2014 Samuel Lahtinen http://www.cs.tut.fi/~ohar/ 1

Infoa Vierailuluentojen korviketehtävä kotisivuilla Viikkoharkkojen bonustehtävä julkaistu Tarvittaessa voit myös tehdä lisäbonuksena viikkoharkkojen lisätehtävän korvaamaan lisää puuttuvia vierailuluentoja (tai päinvastoin) Seuraavilla viikoilla viikkoharkoissa neuvontapäivystyssettiä (TTY) 2

Tänään ohjelmassa Ohjelmistoekosysteemeistä Miten vaikuttavat arkkitehtuuriin? Mitä oman ekosysteemin suhteen kannattaa miettiä Viestipohjaisia yritysjärjestelmäpatterneita Esimerkki tavasta dokumentoida asioita Jotain normaalin ohjelmistoarkkitehtuurin ja yritysjärjestelmämallien jne. väliltä. 3

Ekosysteemijuttuja

Mikä ekosysteemi? Ohjelmistoalusta ja yhteisö, joka tuottaa sovelluksia alustalle Laajentavat alustaa, tekevät alustalla toimivia sovelluksia, voivat olla avoimia/suljettuja Alunperin käyttöjärjestelmä ja sen palvelut Siihen päälle ajureita, apupalveluita Sovelluksia, niitä hyödyntäviä muita sovelluksia jne. Ei tehdä enää pelkästään oman firman sisällä, laajentuminen organisaation ulkopuolelle mukana sosiaalinen ekosysteemipuoli (community) 5

Määritelmää David G. Messerschmitt and Clemens Szyperski (Software ecosystems kirja): A set of businesses functioning as a unit and interacting with a shared market for software and services, together with relationships among them. These relationships are frequently underpinned by a common technological platform and operate through the exchange of information, resources, and artifacts. Lungu : A collection of systems, which are developed and co-evolve in the same environment (company/social/technical) Jan Bosch: Software ecosystems take various forms but typically consist of a company providing a software platform and a community of external developers providing functionality that extends the basic platform. 6

Ekosysteemiajatelma, muutakin kuin käyttöjärjestelmätaso Ekosysteemiajattelua Tarjotaan kehitystyökalut (+rajataan asioita) Tarjotaan valmiita ratkaisumalleja, näin ohjelma jaetaan esim. MVC:n, MVVM:n mukaisesti/active record, näin käsittelet asian x Sovelluskauppa/sovellusten keskitetty haku & hallinta Vaatimukset, mitä sovellus saa/ei saa tehdä Käyttöliittymävaatimuksia ja toiminnallisia vaatimuksia (mitä tapahtuu mistäkin napista, mitä tapahtuu, kun ohjelmasta poistutaan jne.) Mahdollinen ohjelmistojen verifiointi 7

Käyttöjärjestelmä ja sen vaatimuksia 8

Esimerkkejä ekosysteemeistä Facebook, Google, Windows 8, Android, Linux eri versioineen, i- tuotteet, konsolit Raspberryt, Arduinot (alusta ja fyysisiä & ohjelmistokomponentteja, yhteisöä) Pilvimaailman tuotteet 9

Pilvinen ekosysteemi esimerkki http://www.cloudel.com/dell-launches-new-version-of-openstack-poweredcloud-solution/ 10

Taksonomiaa Entä nykyaikaistettuna? Software Ecosystem Taxonomy (Bosch, 2009) 11

Alusta ja ekosysteemi ohjaavat arkkitehtuuria Sovellusten kehittämisessä ajateltu käytettävän tiettyjä ratkaisutapoja ohjaa toteutettavan ohjelman arkkitehtuurin tähän suuntaan. Helpottaa suunnittelua, mutta jos yritetään tehdä jotain ajatellun muotin ulkopuolelle ulottuvaa, asiat monimutkaisempia Ekosysteemin valintaa, tuki, stabiilius, jatkokehitys, soveltuvuus Useat ekosysteemit ja niiden yhteensovittaminen 12

Sopimuksia, vaatimuksia Vaatimuksia: valmiina annettu arkkitehtuuri, työkalujen mahdollisuudet, aihealuerajoitteet, UI, toiminnallisuus, sisältö, teknologia/laitteiston käyttö ( mitä sovellus voi tehdä) http://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx https://developer.apple.com/app-store/review/ https://developer.apple.com/design/tips/ 13

Oma ekosysteemi? Esimerkki: Tehdään universaali kalenterisovellus, jossa voi ripustella muistilappuja jne. Kalenterioikeuksien jako, Facebook-yhteydet jne. Tietojen säilöntä palvelinpäässä (pilvessä tms.) Alustat: puhelimet (i-sellaiset, Win, Android), tabletit, läppärit/pöytäkoneet Samoja toimintoja, ilmettä, mutta noudatettava kohdealustan sääntöjä Mitä huomiota, mistä osasta tulisi järjestelmän ekosysteemiosio? 14

Oman ekosysteemin osia Varsinaiset sovellukset, front-end, käyttöliittymäpuoli Yhteinen osa, tiedon käsittely, tallennus, haku jne. Tämä osa voidaan toteuttaa & suunnitella omien halujen mukaan Käytetyt tekniikat, kielet, toimintatavat, arkkitehtuuriratkaisut 15

Sovelluskohtaiset osat, vaatimuksia? Mitä erilaisia vaatimuksia/mahdollisuuksia erikoistettujen osien toteuttamisessa tulee vastaan? Käyttöliittymä ja sujuvuus myyntivaltteina, erikoistetut versiot joka alustalle Tekniikka- ja kieli (millä kielellä käyttäjän osa toteutetaan osaaminen (HTML5, JavaScript, Obj-C, Java, C#, C++ ) Käyttöliittymäpuoli: yhtenäisyys vs. eri alustojen omat vaatimukset Ulkopuoliset kehittäjät/community: rajapintojen dokumentointi, esimerkit, tietoturvallisuus, varmennetaanko ulkopuolinen ohjelmisto jne. Voidaanko tehdä jotain geneeristä yhteistä osaa, jota kaikissa järjestelmissä voitaisiin hyödyntää? esim. Tiedonsiirto, käsittely, paketointi 16

Yhteenvetoa Ekosysteemi ajatusmalli (muutakin kuin kasa tarjottua koodia) yhteisö Ekosysteemit ja sovelluskehitys, vaatimukset & hyödyt, ekosysteemi ja oletusarkkitehtuuri Ekosysteemiajattelu omissa projekteissa? 17

Viestipohjaisten yritysjärjestelmien suunnittelumallit

Yritystietojärjestelmiä Erilaisia tapoja yhdistellä bisnes, kehitystyö, lopputuote ja toisaalta kuvata järjestelmän osia, kommunikaatiota Yritystietojärjestelmät/muutokset niihin, joku tekee esim. business process management tyyppistä tutkailua Enterprise messaging systems, strukturoidut viestit, yhtenäiset protokollat, huomioalueita (turvallisuus, reititys, metadata, tilaajamalli, oikeudet (policy) viestisisältö ja otsikkotiedot eriytettyinä 19

Yritystietojärjestelmiä Taustamateriaalia, perusperiaatteet valideja, uusimmat alustat/tekniikat puuttuvat esimerkeistä: Enterprise Integration Patterns: http://www.eaipatterns.com/ Patterns of Enterprise Application Architecture by (Martin Fowler with Dave Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford) http://architects.dzone.com/articles/enterprise-integration http://technet.microsoft.com/en-us/library/hh393531.aspx Mallintaminen jne. työkaluja ja mallinnustekniikoita tarjolla, esimerkki Enterprise systems architect: http://www-03.ibm.com/software/products/en/ratisystarch 20

Viestinvälitykseen perustuvat yritysjärjestelmät Peruselementit: Viesti Kanava Reititys Muunnos Sovellus Sovellus Sovitin Sovitin Hallinta ja monitorointi (Hohpe & Woolf: Enterprise Integration Patterns. Addison-Wesley 2004) 21

Esimerkki: Tilausten käsittely Asiakkaat Varasto Vaatimuksia: Jälleenmyyjä TKS Valmistajat Kuljetusliike - Asiakkaat voivat lähettää tilauksia webin kautta tai sähköpostiilla - Tilaus käsitellään monessa vaiheessa: varastotarkistus, toimitus, laskutus - Integrointi olemassaoleviin sovelluksiin: web-client, sähköpostiijärjestelmä, laskutus-, toimitus-, ja varastojärjestelmät Ohjelmistoarkkitehtuurit 2014 25.4.2014 22

Tilausten vastaanotto Viesti Kanava Reititys Muunnos Sovellus Sovellus Sovitin Sovitin Hallinta ja monitorointi Ohjelmistoarkkitehtuurit 2014 25.4.2014 23

Tilausten vastaanotto: useita lähteitä Web- GUI Viestiportti Kahdenvälinen kanava Viestimuuntaja Web -> Kanoninen sähköposti Kanavasovitin Julkaisija-tilaaja kanava Viestimuuntaja sähköposti-> Kanoninen Ohjelmistoarkkitehtuurit 2014 25.4.2014 24

Viestiportti (Messaging Gateway) Synkroninen, blokkaava: Sovellus Viestiportti Viestijärjestelmä - erottaa sovelluslogiikan viestinvälityksestä - tarjoaa sovellusaluekohtaisen API:n sovelluksen käyttöön - helposti vaihdettavissa - asynkroninen tapa: esim. sovellus jatkaa ja pollaa viestiportin tulosviestejä palvelupyyntö viestin lähetys tuloksen vastaanotto prosessointi Ohjelmistoarkkitehtuurit 2014 25.4.2014 25

Tilausten vastaanotto: useita lähteitä Web- GUI Viestiportti Kahdenvälinen kanava Viestimuuntaja Web -> Kanoninen sähköpostin vastaanottaja Kanavasovitin Julkaisija-tilaaja kanava Viestimuuntaja sähköposti-> Kanoninen Ohjelmistoarkkitehtuurit 2014 25.4.2014 26

Kanavasovitin (Channel Adapter) Löyhä sovitinliitos: Sovitin ei integroidu suoraan sovellukseen vaan välillisesti esim. - sovelluksen yleisen API:n kautta - tarkkailemalla sovelluksen aiheuttamia tapahtumia - tarkkailemalla sovelluksen tuottamia tiedostoja tai tietokantoja (esim. tietokantatriggeri) Ohjelmistoarkkitehtuurit 2014 25.4.2014 27

Tilausten vastaanotto: useita lähteitä Web- GUI Viestiportti Kahdenvälinen kanava Viestimuuntaja Web -> Kanoninen sähköpostin vastaanottaja Kanavasovitin Julkaisija-tilaaja kanava Viestimuuntaja sähköposti -> Kanoninen Ohjelmistoarkkitehtuurit 2014 25.4.2014 28

Kahdenvälinen kanava (Point-to-Point Channel) Voi olla useita potentiaalisia vastaanottajia, mutta kanava itse takaa, että vain yksi vastaanottaja saa kunkin viestin Mahdollisesta vastaanottajan valinnasta huolehtii kanava, vastaanottajien ei tarvitse koordinoida keskenään Ohjelmistoarkkitehtuurit 2014 25.4.2014 29

Tilausten vastaanotto: useita lähteitä Web- GUI Viestiportti Kahdenvälinen kanava Viestimuuntaja Web -> Kanoninen sähköpostin vastaanottaja Kanavasovitin Julkaisija-tilaaja kanava Viestimuuntaja sähköposti -> Kanoninen Ohjelmistoarkkitehtuurit 2014 25.4.2014 30

Kanoninen tietomalli (Canonical Data Model) tiedon esitys, joka on riippumaton sovelluksista sovellusriippuvat esitykset muunnetaan kanoniseen jos sovelluksen esitysmuoto muuttuu, riittää muuttaa muuntaja X kanoninen tai kanoninen X 31

Viestimuuntaja (Message Translator) Muuttaa formaatin tai rakenteen muuttamatta informaatiota Erillinen komponentti Viestimaailman Sovitin (Adapter): muuttaa viestiformaatin XML-pohjaisten viestien muuntaminen keskenään: XSLT XML <-> jokin muu formaatti: XML jäsentäjät ym. 32

Tilausten vastaanotto: useita lähteitä Web- GUI Viestiportti Kahdenvälinen kanava Viestimuuntaja Web -> Kanoninen sähköposti vastaanottaja Kanavasovitin Julkaisija-tilaaja kanava Viestimuuntaja sähköposti -> Kanoninen Ohjelmistoarkkitehtuurit 2014 25.4.2014 33

Julkaisija-tilaaja kanava (Publisher-Subscriber Channel) Viesti Tilaaja Julkaisija Julkaisijalta tuleva viesti kopioidaan kaikille tilaajille Kukin tilaaja saa jokaisen viestin kerran Tilaajat eivät tunne toisiaan eivätkä julkaisijaa Julkaisija ei tunne tilaajia Tarkkailija-suunnittelumallin idea viestimaailmassa (tapahtumaviestejä) Voi olla myös monta julkaisíjaa Tilaaja Tilaaja Ohjelmistoarkkitehtuurit 2014 25.4.2014 34

Kysyttävää?

Reititys Viesti Kanava Reititys Muunnos Sovellus Sovellus Sovitin Sovitin Hallinta ja monitorointi Ohjelmistoarkkitehtuurit 2014 25.4.2014 36

Tilausten käsittely tarkista varasto tarkista asiakas [OK] Poikkeusten käsittely toimita tavara lähetä lasku Ohjelmistoarkkitehtuurit 2014 25.4.2014 37

Tilausten käsittely Asiakashallinta Sisältöperustainen reititin kelvollinen tilaus Julkaisijatilaaja Julkaisijatilaaja Laskutus Toimitus Varastohallinta Yhdistäjä epäkelpo tilaus Ohjelmistoarkkitehtuurit 2014 25.4.2014 38

Yhdistäjä (Aggregator) Tilallinen komponentti Kerää koosteita sisääntulevista viesteistä Pitää yllä vaillinaisia koosteita Jos uusi viesti tekee jostakin vaillinaisesta koosteesta täydellisen, koosteviesti lähetetään eteenpäin Kooste ei ole välttämättä unioni (esim. valitaan paras tai ensimmäinen sopiva, muut unohdetaan) Ohjelmistoarkkitehtuurit 2014 25.4.2014 39

Tilausten käsittely Asiakashallinta Sisältöperustainen reititin kelvollinen tilaus Laskutus Varastohallinta Yhdistäjä Toimitus alihankkija/muu toimittaja epäkelpo tilaus Ohjelmistoarkkitehtuurit 2014 25.4.2014 40

Sisältöperustainen reititin (Content-based Router) Vastaanottaja/kanava määrätään viestin sisällön perusteella (esim. jonkin kentän arvo tai esiintyminen) Ongelma: reititin tuntee vastaanottajat ja riippuu niistä Mahdollinen ratkaisu: vastaanottajat informoivat (dynaamisesti) reititintä millaisia viestejä haluavat (Dynamic Router) 41

Hallinta ja monitorointi Viesti Kanava Reititys Muunnos Sovellus Sovellus Sovitin Sovitin Hallinta ja monitorointi Ohjelmistoarkkitehtuurit 2014 25.4.2014 42

Älykäs Edustaja (Smart Proxy) Sovellus1 Pyyntö Vastaus1 Älykäs Edustaja Pyyntö Palvelun tarjoaja Sovellus2 Vastaus2 Vastaus Sovellukset lähettävät palvelupyyntöjä Smart Proxy toimii palvelun pyytäjien ja tarjoajan välissä SP pitää kirjaa pyytäjistä ja ohjaa vastauksen oikealle sovellukselle (Correlation Identifier antaa tunnisteen pyynnölle) SP voi kerätä metatietoa viesteistä (esim. käsittelyaika) ja lähettää sen valvontayksikölle Kontrolli Metatieto Ohjelmistoarkkitehtuurit 2014 25.4.2014 43

Yhteenveto Erillisiä osajärjestelmiä, niiden integrointia Tiedon välitys, tiedon käsittely ja vaiheet olennaisia Missä muodossa tietoa käsitellään, tietomalli? 44

Kysyttävää?