JOHDANTO Vliohjelmistot Lea Kutvonen Johdanto agenda n n

  • Slides: 35
Download presentation
JOHDANTO Väliohjelmistot - Lea Kutvonen

JOHDANTO Väliohjelmistot - Lea Kutvonen

Johdanto - agenda n n n Mitä väliohjelmistolla tarkoitetaan? Väliohjelmistojen rooli ja tehtävät Väliohjelmiston

Johdanto - agenda n n n 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 Väliohjelmistot - Lea Kutvonen 2

Mitä väliohjelmistolla tarkoitetaan? hajautettu sovellus väliohjelmisto (middleware) käyttöjärjestelmä laitteisto Väliohjelmistot - Lea Kutvonen 3

Mitä väliohjelmistolla tarkoitetaan? hajautettu sovellus väliohjelmisto (middleware) käyttöjärjestelmä laitteisto Väliohjelmistot - Lea Kutvonen 3

Middleware definition 1 Software that is used to move information from one program to

Middleware 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 communication protocols, operating systems, and hardware platforms. Campbell et. al. Väliohjelmistot - Lea Kutvonen 4

Middleware definition 2 Middleware is a class of software technologies designed to help manage

Middleware definition 2 Middleware 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 application program that provides a common programming abstraction across a distributed system. Bakken 2001 Väliohjelmistot - Lea Kutvonen 5

Host 1 Host 2 Distributed application Middleware API Middleware Operating System API communication processing

Host 1 Host 2 Distributed application Middleware API Middleware Operating System API communication processing storage Operating system network Väliohjelmistot - Lea Kutvonen 6

Väliohjelmiston tehtävä -abstraktiokuilun kurominen application generators level of abstraction 3 GL with middleware 3

Väliohjelmiston tehtävä -abstraktiokuilun kurominen application generators level of abstraction 3 GL with middleware 3 GL with operating system machine code Väliohjelmistot - Lea Kutvonen 7 frankel: mda

Väliohjelmiston rooli ja tehtävä • Määritelmät kaksijakoisia • • tarjoaa ohjelmoijalle käsitteet • tarjoaa

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) • application servers, … Väliohjelmistot - Lea Kutvonen 8

Väliohjelmistoihin siirtyy n n toistuvia malleja sovelluksista, ohjelmointikehyksistä Yhteensulautuvia malleja väliohjelmistoista Ohjelmistotyökalut Sovellusalusta KäyttöjärjestelmäTietoliikennepalvelut

Väliohjelmistoihin siirtyy n n toistuvia malleja sovelluksista, ohjelmointikehyksistä Yhteensulautuvia malleja väliohjelmistoista Ohjelmistotyökalut Sovellusalusta KäyttöjärjestelmäTietoliikennepalvelut Väliohjelmistot - Lea Kutvonen 9

Väliohjelmistoihin siirtyy n Käyttöjärjestelmä- ja tietoliikennepalveluja n n n Prosessointiin liittyviä lisäpalveluja n n

Väliohjelmistoihin siirtyy n Käyttöjärjestelmä- ja tietoliikennepalveluja n n n Prosessointiin liittyviä lisäpalveluja n n Esitystapa- ja istuntokerrokset pois sovelluksista Teknisen suorittamisen välineet: säikeet, aktivointi ja passivointi Skaalautuvuustuki, esim kuormantasaus Joustavuus, vikasietoisuus, siirtyvyys Heterogeenisuus: laitteisto (little/big-endian), käyttöjärjestelmät, ohjelmointikielet Sovellustason toistuvia protokollia Väliohjelmistot - Lea Kutvonen 10

Sovelluskerroksen protokollat palvelutarjousten välitys sovellusprotokollat 7 7 informaation tulkinta rikkeet ja toipuminen 6 5

Sovelluskerroksen protokollat palvelutarjousten välitys sovellusprotokollat 7 7 informaation tulkinta rikkeet ja toipuminen 6 5 esitystapa keskustelun rakenne 4 3 2 1 siirto: loogiset viestit reititys verkossa datan virheettömyys fyysinen signalointi Väliohjelmistot - Lea Kutvonen 6 5 4 3 2 1 11

Väliohjelmiston rakentaminen n n väliohjelmistoteknologian käyttökelpoisuuteen vaikuttaa käytetty tuotantoprosessi ja prosessia tukevat menetelmät kaikki

Väliohjelmiston rakentaminen n n 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 Väliohjelmistot - Lea Kutvonen 12

Työkalut, sovellusalustat, sovellukset Prosessi SE tuote Menetelmät & työkalut - UML - OOE Teknologia

Työkalut, sovellusalustat, sovellukset Prosessi SE tuote Menetelmät & työkalut - UML - OOE Teknologia - Java - CORBA CS Teoria - formaalit kielet - tietokantateoria - suorituskykyanalyysi Väliohjelmistot - Lea Kutvonen IJH/25. 8. 2000 13

Työkalut, sovellusalustat, sovellukset n n Toteutus- ja suoritusaikaiset maailmat eivät erillisiä vaan tukevat toisiaan

Työkalut, sovellusalustat, sovellukset n n Toteutus- ja suoritusaikaiset maailmat eivät erillisiä vaan tukevat toisiaan esimerkiksi nykyisissä adaptiivisissa sovelluksissa n n 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) Väliohjelmistot - Lea Kutvonen 14

Arkkitehtuurimallit virittämässä väliohjelmiston tukemia käsitteitä n n Architectural style - architectural design pattern system

Arkkitehtuurimallit virittämässä väliohjelmiston tukemia käsitteitä n n Architectural style - architectural design pattern system = components & connectors n n n Component: client, server, filters, layers, databases Connector: procedure call, event broadcast, database, protocols, pipes some styles n n n 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) Väliohjelmistot - Lea Kutvonen 15

Arkkitehtuurimallit virittämässä väliohjelmiston tukemia käsitteitä n n Example: Event-based, implicit invocation Component: (active) object,

Arkkitehtuurimallit virittämässä väliohjelmiston tukemia käsitteitä n n Example: Event-based, implicit invocation Component: (active) object, capsule, module, … n n n 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. n n n Offers one-to-one, one-to-many, many-to-one connections; Asynchronous event broadcast. (Synchronous event post & await reply => call-and-return. ) Väliohjelmistot - Lea Kutvonen 16

Väliohjelmiston valinnasta n n n Mikä on sovellusalueen kannalta luonteva arkkitehtuurityyli? Millainen kommunikointisemantiikka tarvitaan?

Väliohjelmiston valinnasta n n n 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? Väliohjelmistot - Lea Kutvonen 17

Väliohjelmistojen kehitysvaiheet multimedia adaptiivisuus web services Qo. S PBM/WF mobiilit EAI komponentit B 2

Väliohjelmistojen kehitysvaiheet multimedia adaptiivisuus web services Qo. S PBM/WF mobiilit EAI komponentit B 2 Bi objektiväylät yleiskäyttö-väliohjelmisto tapahtumamonitorit hajautettu kj standardirajapinta, standardiprotokollat RPC tietokannan etäkäsittely Väliohjelmistot - Lea Kutvonen 18

Väliohjelmisto-termin synty n n termi syntyi 1980 -luvun lopulla vielä 1990 -luvun puolivälissä n

Väliohjelmisto-termin synty n n termi syntyi 1980 -luvun lopulla vielä 1990 -luvun puolivälissä n n n väliohjelmisto-termi liitettiin etupäässä relaatiotietokantoihin nykyiset väliohjelmistot kulkivat nimillä network operating systems, distributed computing environments merkittäviä järjestelmiä n n Cronus, Clouds, Eden RPC by Birel &Nelson -84, ONC (SUN), NCS (Apollo), DCE (X/Open) Väliohjelmistot - Lea Kutvonen 19

Väliohjelmistojen alkuajat n Hajautetun käyttöjärjestelmän tehtävänä tuottaa illuusio yhdestä tietokoneesta n Hajautettu prosessien hallinta

Väliohjelmistojen alkuajat n Hajautetun käyttöjärjestelmän tehtävänä tuottaa illuusio yhdestä tietokoneesta n Hajautettu prosessien hallinta n n Hajautettu resurssien hallinta n n n Prosessien elinkaari, allokointi, prosessien välinen kommunikointi ja synkronointi RPC, viestit resurssien varaus, suojaus lukkiumien havaitseminen Hajautetut palvelut n n hajautettu tiedostojärjestelmä, muisti hierarkkinen globaali nimentä Väliohjelmistot - Lea Kutvonen 20

Haasteita ja ratkaisutapoja n Haasteita järjestelmäarkkitehtuurille n n Haasteita järjestelmien toteuttajille n n Yrityksen

Haasteita ja ratkaisutapoja n Haasteita järjestelmäarkkitehtuurille n n Haasteita järjestelmien toteuttajille n n Yrityksen tietojärjestelmän integrointi Ohjelmiston siirto uuteen järjestelmään Ratkaisumalli: n Standardoidut ohjelmointirajapinnat n n n Ohjelmointikielen tuettava peruspalveluita (kutsut jne) Kielen ulkopuolella järjestelmärajapinnat (tietokannat, protokollien käyttö, jne) Standardoidut protokollat Väliohjelmistot - Lea Kutvonen 21

Väliohjelmistot vakiintuvat n 1990 -luvun loppupuolella väliohjelmisto erottuu muista ratkaisuista n n n yleiskäyttöinen

Väliohjelmistot vakiintuvat n 1990 -luvun loppupuolella väliohjelmisto erottuu muista ratkaisuista n n n 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ä n DCE, COM, CORBA Väliohjelmistot - Lea Kutvonen 22

Haasteita ja ratkaisutapoja n Haasteita järjestelmäarkkitehtuurille ja järjestelmien toteuttajille n n n Erillisten sovellusten

Haasteita ja ratkaisutapoja n Haasteita järjestelmäarkkitehtuurille ja järjestelmien toteuttajille n n n Erillisten sovellusten yhteistoiminta yrityksen sisällä asiakasportaalit Ratkaisumalli: n n Standardoidut muodot tiedon esitystavalle Standardoidut väliohjelmistorajapinnat Standardoidut tavat esitellä sovelluksia käytettäväksi Sovelluspalvelimet (application servers), “hotellit” Väliohjelmistot - Lea Kutvonen 23

Perinteiset väliohjelmistot n Perusmalleja n n Tietokantojen hajautus, tapahtumamonitorit Hajautettu kj tai verkkokj Objektiväylät,

Perinteiset väliohjelmistot n Perusmalleja n n Tietokantojen hajautus, tapahtumamonitorit Hajautettu kj tai verkkokj Objektiväylät, objektikielten toteutus Sovellusalueita n n n Pankkijärjestelmät Sairaalan tietojärjestelmä Verkkopalvelut ja dokumenttien siirto Väliohjelmistot - Lea Kutvonen 24

Väliohjelmistot nykyisin n Vaativammat sovellusalueet n Multimediajärjestelmät n n Reaaliaikajärjestelmät n n Vikasietoisuus, järjestelmien

Väliohjelmistot nykyisin n Vaativammat sovellusalueet n Multimediajärjestelmät n n Reaaliaikajärjestelmät n n Vikasietoisuus, järjestelmien suoritusaikainen päivittäminen Sähköinen liiketoiminta n n n Reaaliaikaskedulointi, sopimukset, resurssienvaraus Telecom n n Tietovirtojen siirtäminen (streams) jatkuvaa valvontaa vaativaa Järjestelmien globaalisuus Turvallisuusnäkökohdat avoimessa verkossa Adaptiiviset järjestelmät n Personoitavissa, paikkatietoiset, laitteistoon sopeutuvat, ubiquitos computing Väliohjelmistot - Lea Kutvonen 25

Väliohjelmistot nykyisin n n Nykyaikainen väliohjelmisto tarjoaa standardoidut välineet käsitellä prosessointiyksiköitä ja niiden välistä

Väliohjelmistot nykyisin n n Nykyaikainen väliohjelmisto tarjoaa standardoidut välineet käsitellä prosessointiyksiköitä ja niiden välistä vuorovaikutusta Aikaisempaa abstraktimpia ja voimakkaampia ohjelmointikäsitteitä n n objektit ja komponentit palvelun kuvaus ja toteuttaja erotetaan metadatan käyttö sijainti- ja pääsytuntumattomuus, muut tuntumattomuuspalvelut Väliohjelmistot - Lea Kutvonen 26

Väliohjelmistot nykyisin n Objektit ja komponentit n n n Loogiset vs. fyysiset Miten kuvautuvat

Väliohjelmistot nykyisin n Objektit ja komponentit n n n 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? Väliohjelmistot - Lea Kutvonen 27

Väliohjelmistot nykyisin n palvelun kuvaus ja toteuttaja erotetaan n n Tarpeita sekä suoritus- että

Väliohjelmistot nykyisin n palvelun kuvaus ja toteuttaja erotetaan n n Tarpeita sekä suoritus- että toteutusaikana Kommunikoinnin laatu -> eriytetyt tuntumattomuuspalvelut Väliohjelmistot - Lea Kutvonen 28

Väliohjelmistot nykyisin n metadatan käyttö n n n Nimet yms. paikantamistavat Palvelun laatu –sopimukset

Väliohjelmistot nykyisin n metadatan käyttö n n n Nimet yms. paikantamistavat Palvelun laatu –sopimukset (Qo. S jne) Informaation rakenne Rajapinta-, komponentti- ja palvelukuvaukset Ohjelmistoarkkitehtuuri, konfiguraatiot Väliohjelmistot - Lea Kutvonen 29

Haasteita ja ratkaisutapoja n Haasteita järjestelmien toteuttajille n n Laajan ohjelmiston tuottaminen tai koostaminen

Haasteita ja ratkaisutapoja n Haasteita järjestelmien toteuttajille n n Laajan ohjelmiston tuottaminen tai koostaminen Ratkaisumalli: n n Informaation käsittely: data+metadata Standardoitu, adaptiivinen väliohjelmistorajapinta Ilmaisuvoimaiset välineet kuvata palveluja Toteutusten osittainen generointi palvelukuvauksista Väliohjelmistot - Lea Kutvonen 30

Väliohjelmistojen tulevaisuus n Haasteita järjestelmäarkkitehtuureille n n Järjestelmien toteuttajille n n n Organisaatiorajat ylittävä

Väliohjelmistojen tulevaisuus n Haasteita järjestelmäarkkitehtuureille n n Järjestelmien toteuttajille n n n Organisaatiorajat ylittävä palvelujen integrointi Laajan ohjelmiston koostaminen Palvelumarkkinoiden toteuttaminen Ratkaisumalli: n n Standardoitujen metainformaatiopalveluiden käyttö Globaali arkkitehtuurimalli? n Erilaiset arkkitehtuurityylit ja komponenttimallit yhteensovitettavissa? Väliohjelmistot - Lea Kutvonen 31

Väliohjelmistotyyppejä n Tapahtumaorientoitu vo. (Transactional mw) n n Viestiperustainen vo. (Message oriented middleware, MOM)

Väliohjelmistotyyppejä n Tapahtumaorientoitu vo. (Transactional mw) n n Viestiperustainen vo. (Message oriented middleware, MOM) n n IBM MQSeries, Sun Java Message Queue Proseduuripohjainen vo. (Procedural mw) n n IBM CICS, BEA Tuxedo, Transarc Encina RPC kaikkine variaatioineen Objekti- ja komponenttipohjainen vo. n CORBA, DCOM, Java RMI, EJB, SOAP, . NET Väliohjelmistot - Lea Kutvonen 32

Host 1 Host 2 Distributed application Middleware API Middleware Operating System API communication processing

Host 1 Host 2 Distributed application Middleware API Middleware Operating System API communication processing storage Operating system network Väliohjelmistot - Lea Kutvonen 33

Väliohjelmistotyyppejä n eri tyypit ottavat eri aspektit huomioon n n distributed tuples: communication, storage,

Väliohjelmistotyyppejä n eri tyypit ottavat eri aspektit huomioon n n distributed tuples: communication, storage, limited in processing MOM: communication, no processing, limited storage RPC: communication, processing, no storage distributed objects: communication, processing, and storage Väliohjelmistot - Lea Kutvonen 34

Väliohjelmistotasot • sovellusalueen palveluja: lennon navigointialgoritmeja, potilastietokantamalleja • yleispalveluja: ilmoitukset, turvallisuus, transaktiot, kuormantasaus, tietovirrat,

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 Väliohjelmistot - Lea Kutvonen CACM 45, 6 pp 45 35