Johdanto - agenda JOHDANTO. Middleware definition 2. Middleware definition 1. Väliohjelmisto /09/2007. Lea Kutvonen

Samankaltaiset tiedostot
Sovellusarkkitehtuurit

Integrointi. Ohjelmistotekniikka kevät 2003

Kurssin sisältö. Kurssin sisältö. Luentoaikataulu karkeasti. Esseiden aikataulu. Aihe-ehdotuksia esseille. Aihe-ehdotuksia esseille

7. Product-line architectures

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

Tietojärjestelmäarkkitehtuurit

HOJ J2EE & EJB & SOAP &...

Ohjelmistoarkkitehtuurit

HSMT J2EE & EJB & SOAP &...

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

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

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

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Security server v6 installation requirements

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

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

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

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

Security server v6 installation requirements

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Virtualisoi viisaasti paranna palvelua. Iikka Taanila Systems Architect IBM Systems and Technology Group

6. Arkkitehtuurityylit

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu

Toimilohkojen turvallisuus tulevaisuudessa

Palveluperustaiset arkkitehtuurityylit

Web Service torilla tavataan!

Visual Basic -sovelluskehitin Juha Vitikka

2 Ohjelmistoarkkitehtuurien kuvaus

Ohjelmistoarkkitehtuurit kevät

Järjestelmäarkkitehtuuri (TK081702)

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

IP-verkkojen luotettavuus huoltovarmuuden näkökulmasta. IPLU-II-projektin päätösseminaari Kari Wirman

3. Komponentit ja rajapinnat

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

Hajautettu prosessointi. Stallings, Luvut Sisältöä luento 18

Sisältöä luento 18. Hajautettu prosessointi. Stallings, Luvut Esimerkkejä: homogeenisia hajautettuja arkkitehtuureja

Tulevaisuuden Internet. Sasu Tarkoma

6. Arkkitehtuurityylit

J2EE vs..net Olli Sakari

SOA SIG SOA Tuotetoimittajan näkökulma

/ ta. Osaa kvalitatiivisella tasolla arvioida sovelluksen hajauttamisen hyötyjä ja haittoja.

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

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

in condition monitoring

Suunnitteluvaihe prosessissa


Liiketoimintajärjestelmien integrointi

HAJAUTETUT JA KESKITETYT RATKAISUT YRITYSTOIMINNASSA

SOA emergence. Palveluorientoituneisuus yritysjärjestelmiin. Avoin seminaari SOAMeS

Liiketoimintajärjestelmien integrointi

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

7.4 Variability management

Teemu Kerola Orientointi Syksy 2018

Johdatus rakenteisiin dokumentteihin

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

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

Koodimalli Code Model

9. Muunneltavuuden hallinta

Distribution issues, global state, clusters, CORBA, etc. Distributed objects

KODAK EIM & RIM VIParchive Ratkaisut

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

Viestinvälitysarkkitehtuurit

Verkkojen verkko - maailmankylä. Hajautetut järjestelmät yhteistyön ongelmallinen maailma. Hajautettuja järjestelmiä. Hajautusta!. miksi oikeastaan?

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Tavoitteena yhdistää eri tavoin toteutetut ja eri tavoin toimivat järjestelmät; integration & interoperability.

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

TCAP - Transaction Capabilities Sovellusosaa käyttävät

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

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Integraatiotekniikan valinta - tie onnistumiseen.

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

Collaborative & Co-Creative Design in the Semogen -projects

TURVALLISEN TEKNIIKAN SEMINAARI Laitteiden etähallinta tietoverkkojen välityksellä Jani Järvinen, tuotepäällikkö

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistoarkkitehtuurit. Syksy 2010

Johdanto. Videoneuvottelu. Järjestelmät. Laitteisto. Monipisteneuvottelut. Ryhmäneuvottelut

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Teknologinen muutos ja yliopistojen tulevaisuus. Tievie-seminaari Helsinki Antti Auer

Hieman lisää malleista ja niiden hyödyntämisestä

Ohjelmistoarkkitehtuurit. Kevät

OHJ-5010 Hajautettujen järjestelmien perusteet

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Tietojärjestelmän osat

Microsoft Visual J++ ohjelmointiympäristö

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

- Jarjestelmaasiantuntija Markku Jaatinen

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Käyttöjärjestelmät: prosessit

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

API:Hack Tournee 2014

CUDA. Moniydinohjelmointi Mikko Honkonen

Liikenteen hankeaihioita

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Transkriptio:

Johdanto - agenda JOHDANTO Mitä väliohjelmistolla tarkoitetaan? Väliohjelmistojen rooli ja tehtävät Väliohjelmiston haasteet ja syntymekanismit Väliohjelmistojen kehitysvaiheet haasteet ja trendit Väliohjelmistojen kategorisointia 11.9.2007 Väliohjelmistot - 2 Mitä väliohjelmistolla tarkoitetaan? laitteisto hajautettu sovellus väliohjelmisto (middleware) laitteisto 11.9.2007 Väliohjelmistot - 3 definition 1 Software that is used to move information from one program to other program in a distributed environment, shielding the developer from dependencies on protocols, operating systems, and hardware platforms. Campbell et.al. 11.9.2007 Väliohjelmistot - 4 definition 2 is a class of software technologies designed to help manage the complexity and heterogeneity inherent in distributed systems. It is defined as a layer of software above the operating system but below the program that provides a common programming abstraction across a distributed system. Bakken 2001 Host 1 Host 2 network käyttöjärjestelmä käyttöjärjestelmä 11.9.2007 Väliohjelmistot - 5

Väliohjelmiston tehtävä -- abstraktiokuilun kurominen generators 3GL with middleware 3GL with operating system machine code with operating system machine code Väliohjelmiston rooli ja tehtävä Määritelmät kaksijakoisia tarjoaa ohjelmoijalle käsitteet tarjoaa mekanismin tiedon siirtoon Sovelluskehityksessä ohjelmointikieli & sovelluskehitin, tarjoaa abstraktit/deklaratiiviset, voimakkaat kommunikointiprimitiivit Ohjelmointikäsitteet: objektit, komponentit, RPC, transaktio, operaatiokutsu Kuvauskielet:IDL, UML; kuvauksista generoitavissa osittaisia toteutuksia frameworks Suoritusaikana käsitetasoa kohottava palvelukerros käyttöjärjestelmän ja tietoliikennepalvelujen päällä, kutsuttavaksi suorituskelpoisista sovellusohjelmista infrastruktuuripalvelut (vrt. globaali nimipalvelu yms) servers, 11.9.2007 Väliohjelmistot - frankel:mda 7 11.9.2007 Väliohjelmistot - 8 Väliohjelmistoihin siirtyy toistuvia malleja sovelluksista, ohjelmointikehyksistä Yhteensulautuvia malleja väliohjelmistoista Sovellusalusta Käyttöjärjestelmä- Tietoliikennepalvelut palvelut Ohjelmistotyökalut level of abstraction 11.9.2007 Väliohjelmistot - 9 Väliohjelmistoihin siirtyy Käyttöjärjestelmä- ja tietoliikennepalveluja Esitystapa- ja istuntokerrokset pois sovelluksista Teknisen suorittamisen välineet: säikeet, aktivointi ja passivointi Prosessointiin liittyviä lisäpalveluja Skaalautuvuustuki, esim kuormantasaus Joustavuus, vikasietoisuus, siirtyvyys Heterogeenisuus: laitteisto (little/big-endian), käyttöjärjestelmät, ohjelmointikielet Sovellustason toistuvia protokollia 11.9.2007 Väliohjelmistot - 10 Sovelluskerroksen protokollat 7 6 5 palvelutarjousten välitys sovellusprotokollat informaation tulkinta rikkeet ja toipuminen esitystapa keskustelun rakenne 4 siirto: loogiset viestit 3 reititys verkossa 2 datan virheettömyys 1 fyysinen signalointi 11.9.2007 Väliohjelmistot - 11 6 5 4 3 2 1 7 Väliohjelmiston rakentaminen väliohjelmistoteknologian käyttökelpoisuuteen vaikuttaa käytetty tuotantoprosessi ja prosessia tukevat menetelmät kaikki kolme oltava teoreettisesti eheällä pohjalla väliohjelmistot ja niitä tukevat välineet rakennetaan primitiivisemmin, eri paradigmaa noudattavin välinein Sykli ideasta tuettuun prosessiin > 10 vuotta 11.9.2007 Väliohjelmistot - 12

SE CS Työkalut, sovellusalustat, sovellukset Teknologia -Java -CORBA Prosessi Teoria - formaalit kielet - tietokantateoria - suorituskykyanalyysi tuote Menetelmät & työkalut -UML - OOE IJH/25.8.2000 11.9.2007 Väliohjelmistot - 13 Työkalut, sovellusalustat, sovellukset Toteutus- ja suoritusaikaiset maailmat eivät erillisiä vaan tukevat toisiaan esimerkiksi nykyisissä adaptiivisissa sovelluksissa Tavoite: Adaptiiviset sovellukset muuntuvat suoritusaikana Edellytys: Komponenttien kyky tulla korvatuksi toisilla Ohjelmointikäsite: Myöhäinen sidonta (late binding) Infrastruktuuripalvelu: Palvelujen paikantaminen ominaisuuksien perusteella (meklaus) 11.9.2007 Väliohjelmistot - 14 Arkkitehtuurimallit virittämässä väliohjelmiston tukemia käsitteitä Architectural style - architectural design pattern system = components & connectors Component: client, server, filters, layers, databases Connector: procedure call, event broadcast, database, protocols, pipes some styles Dataflow (Pipes and filters, Batch sequential) Data-centered (Repository) Virtual Machine (Interpreter, Rule-based system) Call and Return (Main program and subroutine, Object-oriented, Layered) Independent Components (Communicating processes, Client/server, Event systems with implicit or explicit invocation) Arkkitehtuurimallit virittämässä väliohjelmiston tukemia käsitteitä Example: Event-based, implicit invocation Component: (active) object, capsule, module, Can be an instance of a class, an active class, or simply a module (non-oo). Have at their interface, methods and ports. Connector: connector, channel, binding, callback. Offers one-to-one, one-to-many, many-to-one connections; Asynchronous event broadcast. (Synchronous event post & await reply => call-and-return.) 11.9.2007 Väliohjelmistot - 15 11.9.2007 Väliohjelmistot - 16 Väliohjelmiston valinnasta Mikä on sovellusalueen kannalta luonteva arkkitehtuurityyli? Millainen kommunikointisemantiikka tarvitaan? Synkronisuus, transaktionaalisuus, tietovirta, monilähetys, globaali tietovarasto, portaalitaustajärjestelmä, Mitä järjestelmäpalveluita kommunikointisemantiikan tukemiseen on tarjolla? Entä komponentin pysyvyyden, rinnakkaisuuden, tilallisuuden yms tukemiseen? Mitä ohjelmointikielitason ilmaisuja voidaan käyttää? Mitä lisäpalveluita kääntäjistä, kirjastoista, kehittimistä, olio- tai komponenttikehyksistä on saatavissa? 11.9.2007 Väliohjelmistot - 17 tapahtumamonitorit Väliohjelmistojen kehitysvaiheet RPC tietokannan etäkäsittely multimedia adaptiivisuus web services QoS PBM/WF mobiilit EAI komponentit B2Bi objektiväylät yleiskäyttö-väliohjelmisto hajautettu kj standardirajapinta, standardiprotokollat 11.9.2007 Väliohjelmistot - 18

Väliohjelmisto-termin synty termi syntyi 1980-luvun lopulla vielä 1990-luvun puolivälissä väliohjelmisto-termi liitettiin etupäässä relaatiotietokantoihin nykyiset väliohjelmistot kulkivat nimillä network operating systems, distributed operating systems, distributed computing environments merkittäviä järjestelmiä Cronus, Clouds, Eden RPC by Birel &Nelson -84, ONC (SUN), NCS (Apollo), DCE (X/Open) 11.9.2007 Väliohjelmistot - 19 Väliohjelmistojen alkuajat Hajautetun käyttöjärjestelmän tehtävänä tuottaa illuusio yhdestä tietokoneesta Hajautettu prosessien hallinta Prosessien elinkaari, allokointi, prosessien välinen kommunikointi ja synkronointi RPC, viestit Hajautettu resurssien hallinta resurssien varaus, suojaus lukkiumien havaitseminen Hajautetut palvelut hajautettu tiedostojärjestelmä, muisti hierarkkinen globaali nimentä 11.9.2007 Väliohjelmistot - 20 Haasteita ja ratkaisutapoja Haasteita järjestelmäarkkitehtuurille Yrityksen tietojärjestelmän integrointi Haasteita järjestelmien toteuttajille Ohjelmiston siirto uuteen järjestelmään Standardoidut ohjelmointirajapinnat Ohjelmointikielen tuettava peruspalveluita (kutsut jne) Kielen ulkopuolella järjestelmärajapinnat (tietokannat, protokollien käyttö, jne) Standardoidut protokollat Väliohjelmistot vakiintuvat 1990-luvun loppupuolella väliohjelmisto erottuu muista ratkaisuista yleiskäyttöinen (vrt. sovellusaluekohtainen framework) tarjoaa hajautettuja palveluja eri laitteisto-, kj- ja verkkoympäristöihin toteutettu tukee standardoituja siirtoprotokollia ja tarjoaa standardi-api:n merkittäviä järjestelmiä DCE, COM, CORBA 11.9.2007 Väliohjelmistot - 21 11.9.2007 Väliohjelmistot - 22 Haasteita ja ratkaisutapoja Haasteita järjestelmäarkkitehtuurille ja järjestelmien toteuttajille Erillisten sovellusten yhteistoiminta yrityksen sisällä asiakasportaalit Standardoidut muodot tiedon esitystavalle Standardoidut väliohjelmistorajapinnat Standardoidut tavat esitellä sovelluksia käytettäväksi Sovelluspalvelimet ( servers), hotellit Perinteiset väliohjelmistot Perusmalleja Tietokantojen hajautus, tapahtumamonitorit Hajautettu kj tai verkkokj Objektiväylät, objektikielten toteutus Sovellusalueita Pankkijärjestelmät Sairaalan tietojärjestelmä Verkkopalvelut ja dokumenttien siirto 11.9.2007 Väliohjelmistot - 23 11.9.2007 Väliohjelmistot - 24

Vaativammat sovellusalueet Multimediajärjestelmät Tietovirtojen siirtäminen (streams) jatkuvaa valvontaa vaativaa Reaaliaikajärjestelmät Reaaliaikaskedulointi, sopimukset, resurssienvaraus Telecom Vikasietoisuus, järjestelmien suoritusaikainen päivittäminen Sähköinen liiketoiminta Järjestelmien globaalisuus Turvallisuusnäkökohdat avoimessa verkossa Adaptiiviset järjestelmät Personoitavissa, paikkatietoiset, laitteistoon sopeutuvat, ubiquitos computing 11.9.2007 Väliohjelmistot - 25 Nykyaikainen väliohjelmisto tarjoaa standardoidut välineet käsitellä prosessointiyksiköitä ja niiden välistä vuorovaikutusta Aikaisempaa abstraktimpia ja voimakkaampia ohjelmointikäsitteitä objektit ja komponentit palvelun kuvaus ja toteuttaja erotetaan metadatan käyttö sijainti- ja pääsytuntumattomuus, muut tuntumattomuuspalvelut 11.9.2007 Väliohjelmistot - 26 Objektit ja komponentit Loogiset vs. fyysiset Miten kuvautuvat lopulta suorittaville prosesseille? Granulariteetti? Kommunikointimuodot, rajapintojen lkm? Mallin odottama kommunikointituki? Myöhäinen sidonta Miten loogista objektia vastaavaa fyysistä konfiguraatiota hallitaan? palvelun kuvaus ja toteuttaja erotetaan Tarpeita sekä suoritus- että toteutusaikana Kommunikoinnin laatu -> eriytetyt tuntumattomuuspalvelut 11.9.2007 Väliohjelmistot - 27 11.9.2007 Väliohjelmistot - 28 metadatan käyttö Nimet yms. paikantamistavat Palvelun laatu sopimukset (QoS jne) Informaation rakenne Rajapinta-, komponentti- ja palvelukuvaukset Ohjelmistoarkkitehtuuri, konfiguraatiot Haasteita ja ratkaisutapoja Haasteita järjestelmien toteuttajille Laajan ohjelmiston tuottaminen tai koostaminen Informaation käsittely: data+metadata Standardoitu, adaptiivinen väliohjelmistorajapinta Ilmaisuvoimaiset välineet kuvata palveluja Toteutusten osittainen generointi palvelukuvauksista 11.9.2007 Väliohjelmistot - 29 11.9.2007 Väliohjelmistot - 30

Väliohjelmistojen tulevaisuus Haasteita järjestelmäarkkitehtuureille Organisaatiorajat ylittävä palvelujen integrointi Järjestelmien toteuttajille Laajan ohjelmiston koostaminen Palvelumarkkinoiden toteuttaminen Standardoitujen metainformaatiopalveluiden käyttö Globaali arkkitehtuurimalli? Erilaiset arkkitehtuurityylit ja komponenttimallit yhteensovitettavissa? 11.9.2007 Väliohjelmistot - 31 Väliohjelmistotyyppejä Tapahtumaorientoitu vo. (Transactional mw) IBM CICS, BEA Tuxedo, Transarc Encina Viestiperustainen vo. (Message oriented middleware, MOM) IBM MQSeries, Sun Java Message Queue Proseduuripohjainen vo. (Procedural mw) RPC kaikkine variaatioineen Objekti- ja komponenttipohjainen vo. CORBA, DCOM, Java RMI, EJB, SOAP,.NET 11.9.2007 Väliohjelmistot - 32 Host 1 Host 2 network Väliohjelmistotyyppejä eri tyypit ottavat eri aspektit huomioon distributed tuples:,, limited in MOM:, no, limited RPC:,, no distributed objects:,, and 11.9.2007 Väliohjelmistot - 34 Väliohjelmistotasot sovellusalueen palveluja: lennon navigointialgoritmeja, potilastietokantamalleja yleispalveluja: ilmoitukset, turvallisuus, transaktiot, kuormantasaus, tietovirrat, vikasietoisuus objektien ja komponenttien välinen kommunikointi (RMI, CORBA) yhtenäinen näkemys käyttöjärjestemä- ja kommunikointipalveluihin 11.9.2007 Väliohjelmistot - CACM 45, 6 pp 45 35