Sisältö. Tapahtumienhallinta. Tapahtumat (transaktiot) Kaupallinen tapahtuma (transaktio)

Samankaltaiset tiedostot
Java Platform, Enterprise Edition (Java EE)

Sovellusarkkitehtuurit

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

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

J2EE vs..net Olli Sakari

HSMT J2EE & EJB & SOAP &...

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

SOA SIG SOA Tuotetoimittajan näkökulma

HOJ J2EE & EJB & SOAP &...

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

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Maiju Mykkänen Susanna Sällinen

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

P e d a c o d e ohjelmointikoulutus verkossa

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

SAP. Lasse Metso

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

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

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

Integraatiotekniikan valinta - tie onnistumiseen.

Integrointi. Ohjelmistotekniikka kevät 2003

P e d a c o d e ohjelmointikoulutus verkossa

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Ympäristöystävällinen IT

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

Hajauta yhdistäen ja yhdistä hajauttaen: Web Services

Palvelun toteuttaminen hajautetussa palvelualustassa

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

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

6. Arkkitehtuurityylit

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

Tietokanta (database)

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

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

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

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.

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

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

ZENworks Application Virtualization 11

Sovelluspalvelin terveydenhuollon sovellustuotannossa ja sovel Iusintegraat iossa, Juha Rannanheimo, Kuopion YO

Tekniset vaatimukset Tikon 6.4.1

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

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

ohjelman arkkitehtuurista.

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

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

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

Osaa käyttää työvälineohjelmia, tekstinkäsittelyä taulukkolaskentaa ja esitysgrafiikkaa monipuolisesti asiakasviestintään.

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari

Hintatiedotus ja tietojen välitys. Loppuraportti

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


Xerox Device Agent, XDA-Lite. Pika-asennusopas

6. Arkkitehtuurityylit

RDBMS - Yhteyskäytännöt

Tekniset vaatimukset Tikon 6.5.0

Rajattomat tietoverkot ja niiden rooli pilvipalveluissa. Jukka Nurmi Teknologiajohtaja Cisco Finland

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Johannes Koskinen. Osittavat arkkitehtuurityylit

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

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

Ohjelmistoarkkitehtuurit kevät

Tikon Ostolaskujenkäsittely versio SP1

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

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

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

Tietojärjestelmän osat

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

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

PIKAOPAS NOKIA PC SUITE Copyright Nokia Oyj Kaikki oikeudet pidätetään

Hallintatyökaluja Fujitsu-työasemille

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

Järjestelmäkehitys EJB komponenttien avulla

ISACA Finland OWASP The OWASP Foundation. Timo Meriläinen Antti Laulajainen.

Vaivattomasti parasta tietoturvaa

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Pedacode Pikaopas. Web Service asiakasohjelman luominen

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

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

Tässä kertauksena SOA ja palvelu.

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Tekninen suunnitelma - StatbeatMOBILE

in condition monitoring

Toimilohkojen turvallisuus tulevaisuudessa

Toteutusvaihe T3 Digi-tv: Edistymisraportti

Mitä muutoksia pilvipalvelut tulevat aikaansaamaan tietoteknisten ratkaisujen hankinta- ja toimitusmalleissa? Miten pilvipalvelut muokkaavat

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

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

Käyttöjärjestelmät: prosessit

Tekninen suunnitelma - StatbeatMOBILE

Transkriptio:

Sisältö Janne Kuha Descom Oy Tapahtumat ja ACID-ominaisuudet. Tapahtumamonitorit ja niiden kehitys. Java2 Enterprise Edition lyhyt esittely. Tapahtumanhallinta ja J2EE. IBM WebSphere sovelluspalvelin - tapahtumanhallinnan mekanismit käytännössä. Kaupallinen tapahtuma (transaktio) Tapahtumat (transaktiot) Kaupallinen tapahtuma (transaktio) tarkoittaa palvelun, tuotteen tai informaation valintaa, sen ostamista ja ostetun palvelun sekä siitä maksettavien vastikkeiden vaihtoa tapahtuman eri osapuolten kesken. 1

Tekninen tapahtuma (transaktio) Yleisesti Tapahtuma on joukko operaatiota, jotka muuttavat sovelluksen tilaa. Esimerkiksi muutos tietokannan tietoihin. Tekniseltä kannalta ACID-ominaisuudet (selv. myöh.) täyttävä joukko operaatiota. Esimerkiksi tilisiirtoon liittyvät toiminnot ovat kaikki osa samaa tapahtumasarjaa, esim. Ensimmäisen tilin saldon vähennys, toisen tilin saldon kasvattaminen ja lokien kirjoittaminen tilisiirrosta. Sovelluksen tila Sovelluksen tila pitää sisällään mm. muistissa olevat tiedot, massamuisteissa, ja tietokannoissa olevat tiedot Tarkoittaa siis kaikkea sitä tietoa, jonka sovellus tietää Häiriötilanteesta johtuvan uudelleenkäynnistyksen yhteydessä halutaan varmistaa, että sovelluksen tila voidaan palauttaa tapahtumankäsittely Sovelluksen tilan muutokset Sovelluksessa on yleensä tiettyjä sääntöjä, jotka määrittelevät tiedon oikeellisuutta, esimerkiksi, postinumeron täytyy olla kuusi merkkiä pitkä. Sekä sääntöjä, jotka liittyvät tilamuutoksiin, esimerkiksi tilin saldon muuttuminen pitää kirjata myös tilikirjaan. Sovelluksen tila on johdonmukainen ja eheä, silloin kun kaikkia em. säännöt otetaan huomioon. ACID ACID ominaisuudet ovat Atomicity Kaikki työhön kuuluvat alioperaatiot onnistuvat tai ne kaikki peruutetaan takaisin (roll-back). Consistency Tapahtuman jälkeen järjestelmän tila on tunnettu. Isolation Kukin tapahtuma toimii omassa ympäristössään vaikuttamatta muihin tapahtumiin. Tapahtumat näyttävät näin ollen serialisoiduilta. Durability Tapahtuman aiheuttama tilamuutos on pysyvä. 2

ACID esimerkkejä Rahan nostaminen automaatista (A) Joko rahat saa automaatista ja tilin saldoa vähennetään, tai kumpaakaan ei tehdä. (C) Automaatista saatu rahamäärä ja tililtä vähennettävä rahamäärä vastaavat toisiaan. (I) Samaa tiliä voidaan käsitellä samanaikaisesti toisesta tapahtumasta (esim. joku tallettaa tilille rahaa). (D) Saldomuutos tallentuu pysyvästi pankkitietoihin. Tapahtumamonitorit Tapahtumanmonitorit Tapahtumamonitorin tarkoituksena on hallinnoida, ohjata ja toteuttaa teknisiä tapahtumia. TM-ohjelmaa käytettäessä sovelluksen kehittäjä voi jättää tapahtumankäsittelyyn liittyvät toiminnot TM-ohjelman huoleksi. Tapahtumamonitorin määritelmä Transaction processing monitor (TP monitor). Name for a class of products typified by CICS, ACMS, Pathway, and Tuxedo, which provide a transaction execution environment on top of conventional (basic) operating systems. Roughly speaking, TP monitors encompass the functionality of both the transaction processing operating system and the transaction processing services. Jim Gray ja Andreas Reuter [Gray,Transaction processing, 1993] 3

Perinteisen TM-ohjelmiston rakenne Tapahtumamonitorit Presentation Services TP Monitor Communication Manager Service Request/ Response Send/Receive Dispatch Finish Business Application Program Transaction Manager Application Designer designs and codes. Service Call Join Transaction Resource Managers Log Manager Log Records Transaction Processing (TP) Monitors Tapahtumamonitoreilla on noin 35- vuotinen historia takanaan. Tapahtumamonitoriympäristön ohjelmat on kirjoitettu käyttäen proseduraalisia kieliä, kuten COBOLia tai C:tä. Erittäin järeitä ja luotettavia järjestelmiä. Jim Gray ja Andreas Reuter [Gray,Transaction processing, 1993] Tapahtumamonitorien palvelut Tarjoaa ohjelmointi- ja ajoympäristön transaktionaalisten ohjelmistojen toteuttamiselle Tarjoaa valmiita palveluja kuten käyttöoikeuksien hallinta, kuorman tasaus, konfiguroinnin hallinta, jne. Hallitsee monien eri samanaikaisten käyttäjien tapahtumien käynnistämistä, ajamista ja päättämistä. Eristää eri käyttäjät siten, etteivät he päivitä saman resurssin tietoja samanaikaisesti. Kokonaiskuva TM-ohjelmistojen kehitykseen Mainframe Mini/WAN PC/LAN Client/ Server Internet/ Intranet 1960s - 1970s 1970s - 1980s 1980s - 1990s 1990s - 2000s Perinteiset tapahtumamonitoriohjelmistot Komponentti (/olio) tapahtumamonitoriohjelmistot Kehittyneemmät (Proseduraaliset) tapahtumamonitoriohjelmistot 4

Perinteiset tapahtumamonitorit Syynä rakentamiseen tarve toteuttaa ensimmäisiä lentolippujen varausjärjestelmiä, pankkijärjestelmiä, jne. Erittäin suljettuja järjestelmiä (yhden alustan - käyttöjärjestelmän ja laitteiston - järjestelmiä). Yksiosaisia eli ohjelmistoja ja niiden osia ei voida juurikaan erotella toisistaan Palvelimina keskuskoneet, sovellusten ohjelmointikielinä Cobol, Assembler Käytössä ei ollut yleisesti käytettyjä tapahtumanhallinnan standardeja. Esimerkiksi: CICS ja IMS Proseduraaliset tapahtumamonitorit 1/2 Proseduraaliset tapahtumamonitoriohjelmistot tällä hetkellä pitkän kehityksen tulos. Ne ovat tunnettuja luotettavuudestaan ja hyvyydestään monimutkaisten tapahtumien hallinnassa. Kalliita Ohjelmistojen toteuttaminen vaatii tavallisesti vaativampaa osaamista Tuotettavat ohjelmat proseduraalisia, käytetyt ohjelmointikielet mm. Cobol, C, C++ Proseduraaliset tapahtumamonitorit 2/2 Usein rajattu joukko käyttöjärjestelmä/laite-alustoja, joille ohjelmistoja saatavilla (usein järeämmille laitealustoille). Tyypillisiä järjestelmiä mm. pankki-, raha-automaatti-, palkanmasku-, vakuutus-, lennonyhtiöiden lennonvarausjärjestelmät. Standardeina esimerkiksi LU 6.2 ~ APPC ~ CPIC Esimerkkinä BEA Tuxedo Komponenttitapahtumamonitorit 1/3 Kehittymisen syyt Historiallinen kehitys: Internet-teknologioiden kehittyminen. Verkottuminen: Heterogeeniset järjestelmät, pienten järjestelmäalustojen käytön yleistyminen, hajauttaminen (esim. CORBA). Oliopohjaisten ohjelmointikielien sekä Komponenttiteknologioiden kehittyminen. Pitää saada tehdä e-business-järjestelmiä ohjelmoimalla olioita ja tuottaa uudelleenkäytettäviä komponentteja. Järjestelmä pitää pystyä hajauttamaan ja pitää saada ohjelmoida Javalla. Niin. ja pitäisi varmaankin niitä tapahtumiakin hallita. 5

Komponenttitapahtumamonitorit 2/3 Komponenttitapahtumamonitorit (Component Transaction Monitors - CTM) ovat kahden eri teknologian yhteenliittymiä Tapahtumamonitorit ja tapahtumankäsittely Hajautetut oliojärjestelmät ja hajautetut viestinvälitysjärjestelmät (ORB) Komponenttitapahtumamonitorit perusosat Hajautetut oliot (tai komponentit) infrastruktuuri, sisältäen tapahtumanhallinnan Palvelimella ajettava komponenttimalli (sovelluskohtainen) Komponenttitapahtumamonitorit 3/3 Useiden CORBA-pohjaisten järjestelmien ongelma Kommunikaatio ja hajautusteknologioista on sovittu, mutta ei sopimusta palvelimen päässä olevasta komponenttimallista (jokaisella oma) Vastauksena tähän ongelmaan kehitettiin mm. Enterprise JavaBeans standardi Samoja sovelluksia voidaan käyttää eri valmistajien sovelluspalvelinten sisällä. Yhteenveto Proseduraaliset tapahtumamonitoriohjelmistot: Ohjelmointikieli, aika ajanut ohitse toteutustavoista, osaajien löytäminen hankalampaa. Ei ole suunniteltu internet-maailman ehdoilla. Ohjelmistojen kehitystyö tasaantunut - luotettavuus hyvä. Isot olemassa olevat järjestelmät toteutettu hyvin pitkälti tälle pohjalle. Komponenttitapahtumamonitoriohjelmistot: Uudehkoja järjestelmiä, kehitystyö nopeaa - luotettavuus huonompi. Nykyiset muodissa olevat sovellusten kehitystavat, osaajien löytäminen helpompaa. Java2 Enterprise Edition - lyhyt esittely 6

Mikä on J2EE? Java 2 Platform, Enterprise Edition (J2EE) technology tarjoaa komponenttipohjaisen lähtötavan sovelluksien suunnitteluun, kehittämiseen, koostamiseen ja ajoympäristöön viemiseen. Mitä J2EE tarjoaa? J2EE-alusta tarjoaa Hajautetun ja monitasoisen sovellusmallin. Mahdollisuuden komponenttien uudelleenkäyttöön Yhtenäistetyn turvallisuusmallin. Joustavan tapahtumanhallinnan. J2EE-arkkitehtuurin tasot FAT-client Thin-client ASIAKAS JAVA GUI Asiakasohjelma PDA, jne Selain Asiakastaso Tapahtumanhallinta ja J2EE Servletit & JSP-sivut Web-taso PALVELIN EJBkomponentit Liiketoimintataso TIETOKANTAPALVELIN tai LEGACYJÄRJESTELMÄT Tietokannat Legacyjärjestelmät EIS-taso 7

Tapahtumat J2EE-alustalla Tapahtumat voivat olla hajautettuina usean eri komponentin, palvelimen ja tietokannan välillä. Tapahtuman epäonnistuessa kussakin tapahtumaan kuuluvassa osasessa perutaan muutokset kyseiseen järjestelmään (jos mahdollista) Tapahtumaan liittyvän kontekstin ja kokonaisuuden pitää hallussa tapahtumahallitsija (transaction manager) Kullakin järjestelmään kuuluvalla osalla on oma resurssihallitsija. Tapahtumanhallintaan liittyvät osat Transaction Manager tarjoaa kaikki peruspalvelut, joita tarvitaan tapahtumanhallinnan yhteydessä Transaction Processing Monitor (TP-Monitor) tarjoaa tapahtumainfastruktuurin Resource Manager tarjoaa tapahtumaan osallistuvat resurssit järjestelmän käyttöön (esimerkiksi tietokantapalvelin) Tapahtumalokeihin kirjoitetaan tieto kustakin tapahtumasta ja niiden tilasta (ACID). Tapahtumakonteksti välitetään kullekin samaan transaktioon osallistuvalle komponentille. Hajautettu tapahtuma Tapahtumanhallitsijan tehtävät Transaktio konteksti Sovelluspalvelin 1 Sovelluspalvelin 2 Resurssi Resurssi Transaktio Tietokanta 2 Resurssi Tietokanta 1 Resurssi Tapahtumanhallitsijan (transaction manager) tehtävänä on huolehtia Tapahtuman tarkasta rajaamisesta, siten että sillä on tietty alku ja loppu (demarcation). Tapahtumakontekstin luomisesta Huolehtia 2-osaisen varmistuksen suorittamisesta (2-phase commit / 2PC) Tapahtumaan liittyvät kolme komentoa aloita (begin) transaktion aloittaminen toteuta (commit) kaikki transaktioon liittyvät muutokset toteutetaan ja niistä tulee pysyviä peruuta (rollback) kaikki transaktioon liittyvät muutokset perutaan 8

Tapahtumahallinnan käytännössä IBM WebSphere sovelluspalvelin Tapahtumanhallinnan mekanismit käytännössä Transaktioon kuuluvat osaset toimivat ACID-periaatteiden mukaisesti. EJB-komponenttien yhteydessä voidaan transaktiot määritellä kahdella tapaa Deployment descriptorissa (asennuskuvain, käytönkuvain) tapahtuma Java Transaction APIn avulla erikseen käsittelemällä ohjelmallisesti transaktioita Tapahtuma-asetusten määrittely Esimerkki tapahtuma-asetusten määrittelystä Seuraavat transaktioattribuutit voivat esiintyä deployment descriptorissa REQUIRED REQUIRES_NEW SUPPORTS MANDATORY NOT_SUPPORTED NEVER BEAN_MANAGED Sovelluspalvelimen tehtäväksi jää huolehtia transaktioon liittyvistä asioista (aloitus, toteutus ja peruutus), mikäli transaktiot määritellään deployment descriptorissa. <container-transaction> <method> <ejb-name>searchmanager</ejb-name> <method-intf>local</method-intf> <method-name>listcompanies</method-name> <method-params> <method-param>fi.descom.searchkey</method-param> </method-params> </method> <trans-attribute>required</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>searchmanager</ejb-name> <method-intf>local</method-intf> <method-name>listdepartments</method-name> <method-params> <method-param>fi.descom.searchkey</method-param> </method-params> </method> <trans-attribute>requiresnew</trans-attribute> </container-transaction> 9

2-osainen varmistus (2-phase commit) 2-osainen varmistus (2-phase commit) 2-osainen varmistus on protokolla, jonka avulla hoidetaan tapahtumaeheys järjestelmissä, joihin liittyy enemmän kuin yksi resurssihallitsija 2-osaisella varmistuksella pidetään huoli siitä, että mikä tahansa tapahtumaan kuuluva osa (tietokanta, jne.) voi määrätä koko transaktion vedettäväksi takaisin (roll-back) Kukin samaan tapahtumaan liittyvä resurssihallitsija ilmoittautuu osaksi tapahtumaa 1. 2-osaisessa varmistuksessa transaktiosta vastaava kysyy ensin kaikilta osa-puolilta onko kyseinen tapahtuma niille mahdollinen ja sen jälkeen päättää voidaanko transaktiossa edetä. 2. Jos transaktiossa voidaan edetä, ilmoitetaan kaikille osapuolille että niiden tulee toteuttaa (commit) kyseinen tapahtuma. 3. Vielä tässäkin vaiheessa mikä tahansa osa voi ilmoittaa ettei kykene hoitamaan transaktion vaatimuksia, jolloin kaikille osapuolille ilmoitetaan perumisesta (abort / roll-back). Tietokanta 2 1. valmistaudu 2. valmis 3. Toteuta tai keskeytä Resurssi Transaktio WebSphere 2PC / XA Kysymyksiä? lähde:http://www.jroller.com/page/pyrasun/20040105#xa_exposed 10