Väliohjelmistojen tyypit. Teemat. Väliohjelmistot /03/2004. Lea Kutvonen 1. Enterprise application anatomy. Enterprise application anatomy

Samankaltaiset tiedostot
Väliohjelmistojen tyypit. Teemat. Väliohjelmistot /03/2004. Enterprise application anatomy. Enterprise application anatomy

Sovellusarkkitehtuurit

Teemat. Järjestelmätarpeet. Distributed object model. Väliohjelmistot /04/2004. Objekti- ja komponenttiväliohjelmistot. Objektijärjestelmät

SOA SIG SOA Tuotetoimittajan näkökulma

HOJ J2EE & EJB & SOAP &...

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

in condition monitoring

HELIA 1 (14) Outi Virkki Tiedonhallinta

Integrointi. Ohjelmistotekniikka kevät 2003

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

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

HITSAUKSEN TUOTTAVUUSRATKAISUT

HSMT J2EE & EJB & SOAP &...

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

Web Service torilla tavataan!

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

OSI ja Protokollapino

7.4 Variability management

Efficiency change over time

Ylläpitäjät, järjestelmäarkkitehdit ja muut, jotka huolehtivat VMwareinfrastruktuurin

Tietojärjestelmäarkkitehtuurit

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

Group 2 - Dentego PTH Korvake. Peer Testing Report

7. Product-line architectures

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

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

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

ALUEARKKITEHTUURI WEB PALVELUITA KÄYTTÄEN. Niilo Saranummi VTT Tietotekniikka

C++11 seminaari, kevät Johannes Koskinen

Maailman ensimmäinen Plug & Go etäyhteyslaite

Ohjelmistoarkkitehtuurit. Kevät

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

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

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

Toimilohkojen turvallisuus tulevaisuudessa

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Tapahtumanhallinnan pulmakohtia ja ratkaisuja

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

Citrix NetScaler. Timo Lindfors Ironnet oy

Tapahtumanhallinnan pulmakohtia ja ratkaisuja

Visualisoi tapahtumat ja selvitä niiden kulku

Perinteisesti käytettävät tiedon (datan) tyypit

Security server v6 installation requirements

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

7 Sulautettujen järjestelmien suunnittelumallit. OhAr Marko Leppänen

POWER analytiikka-alustana

Tapahtumanhallinnan pulmakohtia ja ratkaisuja

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Teknologia-arkkitehtuurit. Valinta ja mallinnus

Encapsulation. Imperative programming abstraction via subprograms Modular programming data abstraction. TTY Ohjelmistotekniikka

JMS RIO PR1. TKTL s2008. Tekijät: Aki Valkama Lauri Savolainen Niklas Jahnsson

Tech Conference Office 365 tietoturvan heikoin #TechConfFI

KODAK EIM & RIM VIParchive Ratkaisut

OSA II: Hajautettu ympäristö. Sisältö, osa II. Ei yhteistä muistia. Sanomanvälitys. Etäproseduurikutsu. Rendezvous. Rio 2004 / Auvo Häkkinen

IT and ICT infrastructure of Smart Grids

Use of spatial data in the new production environment and in a data warehouse

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

812336A C++ -kielen perusteet,

Collaborative & Co-Creative Design in the Semogen -projects

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

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

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

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

Älykkäämmät integraatiot palveluväylän avulla

papinet -sanomastandardit

Security server v6 installation requirements

Järjestelmäarkkitehtuuri (TK081702)

REST an idealistic model or a realistic solution?

Java Platform, Enterprise Edition (Java EE)

MIHIN SUUNTAAN ARVIOINTI KEHITTYY MAAILMALLA? Didaktiikan teemapäivä, , Turun yliopisto Petri Uusikylä, Suomen arviointiyhdistys

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

KAOS 2015: Integraatioiden standardointi suunnittelumallien avulla. Ilkka Pirttimaa, Chief ICT Architect, Stockmann ICT

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

Tiedon salaaminen tallennusverkossa Luottokorttinumeroiden tokenisointi

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Office 2013 ja SQL Server 2012 SP1 uudet BI toiminnallisuudet Marko Somppi/Invenco Oy

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

Kaikki analogiset järjestelmät digitaalisiksi ja verkkokäyttöisiksi - jo tänään Kustannustekkuutta ja joustavuutta työskentelyyn

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Visualisoinnin aamu 16.4 Tiedon visualisointi. Ari Suominen Tuote- ja ratkaisupäällikkö Microsoft

Nopeutta ja Sulavuutta Analytiikkaan

IBM Iptorin pilven reunalla

Ohjelmistoarkkitehtuurit

Hajauta yhdistäen ja yhdistä hajauttaen: Web Services

Mammutti vai elefantti?

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Millainen on viihtyisä kaupunki ja miten sitä mitataan?

Älykkäämpi päätelaitteiden hallinta Juha Tujula, CTO, Enfo Oyj IBM Corporation

Azuren yleiskatsaus. eli mistä on kyse ja miten vertautuu esim. AWS:ään. AWS User Group Helsinki, Petri Raitio, Sulava Oy

ESPOO VANTAA INSTITUTE OF TECHNOLOGY. ser 0/0. Right WS-3 WS-4. Ennen QoS-määrittelyjä tehdään normaalit reititinmäärittelyt ja testataan IP-yhteys:

TIETOKANTOJEN PERUSTEET MARKKU SUNI

dupol.eu - smart home product comparison

SAP. Lasse Metso

LIIKETOIMINNAN JATKUVUUDEN VARMISTAVAT PALVELURATKAISUT Simo Leisti Myyntijohtaja, IBM teknologiapalvelut

Konesali ilman rajoja Kongressi A

Sähkönjakeluverkon hallinnan arkkitehtuuri. Sami Repo

API:Hack Tournee 2014

OUGF syysseminaari Back to Basics

Oracle 11g tietokannan päivityksen tarjoamat hyödyt ja kustannussäästöt

Sulautettu tietotekniikka Kimmo Ahola

Transkriptio:

Väliohjelmistojen tyypit Tyypit Tapahtumaorientoitu Viestiperustainen Proseduuripohjainen Objekti- ja komponenttipohjainen Arkkitehtuurimallit Palvelut Tapahtumaorientoidut väliohjelmistot Järjestelmämallin tarpeet Palvelut ja rajapinnat networking and interoperability control system administration infrastructure Sovellustilanteen arkkitehtuurimallikkeita web scripted web page Enterprise application anatomy client access business logic data access user interface application middlewear O T S ticket payment middlewear directory system mgmt security GORTON2000 Enterprise application anatomy requirements high availability (99,9-99.999 %) 24 * 7 * 365, downtime 8 h 5 min /year data integrity and consistency scalability security applications customer billing airport management system loan processing system Enterprise application anatomy services middlewear message transport, plumbing OTS = object transaction service security serivce for access control and data encryption directory service for locating services and applications in the enterprise system management service: auditing, logging, configuration, alert handling Lea Kutvonen 1

Traditional mainframe processing Anatomia network message manager request controller application database system collects transaction input constructs standard msg sends transaction output starts and commits transaction determines type of request routes request to proper appl. executes requested application Manages shared data BERNSTEIN198x? tietokantaan kohdistuvia kyselyjä ja pyyntöjä stabiili, ennustettava, korkea kuorma muutamia sovellustyyppejä reaaliaikaisuus, dataintensiivisyys transaktioiden perusominaisuudet ACID Services syncronous, asyncronous, store-and-forward, conversational communication homogeneous cross-platform naming scalability/high performance high availability (recovery, rerouting) workload management by priority management access control Palvelut: Tapahtumamonitori Kaksivaiheinen sitoutumisprotokolla Two-phase commit Transaction processing monitor Tukee ACID-ominaisuuksia atomicity kokonaan tai ei lainkaan consistency tieto vain hyvinmääritellyissä tiloissa isolation välitilanteet eivät näkyvissä, lukitus durability tapahtumien vaikutusten pysyvyys Hoidetaan toipuvilla prosesseilla (recoverable processes) 2PC kaksivaiheinen sitoutumisprotokolla Palveluaspektit sovelluskehitys suoritusympäristö hallintarajapinnat yhteydet erilaisiin tietokantoihin prepare to commit Application program commit Transaction manager commit acknowledge response abort Resource manager (RM) Rajapinta? RM TM begin commit rollback open close info start end set-commit-return set-transactiontimeout prepare commit rollback recover API interface Current{ void begin() raises(subtrunavail); void commit (in boolean report_heuristics) raises (notrans, heuristicmixed, heuristichasard); void rollback() raises (notrans); Status get_status(); string get_transaction_name(); void set_timeout (in long secs); Control get_control(); control suspend(); void resume (in Control wihch) raises (invalidcontrol); }; Pitkät transaktiot tilanteissa joissa käytetään verkon takana olevia hitaasti saatavia resursseja suoritetaan loppukäsittelyä (tulostus tms) ei halua/tarvetta odottaa transaktion todellista päättymistä ero esim pitkiin CAD-istuntoihin, joissa peruutusriski ACID-ominaisuudet osittain vaarassa kun prosessointia jätetään suoritettavaksi transaktion ulkopuolella menettely transaktio kirjoittaa varmistettuun jonoon tulokset kuten tietokantaan ikään transaktio päättyy (commit), tulokset jonossa erillinen sovellus käy purkamassa jonon (toivon mukaan transaktionaalisesti jonoa käsitellen) jononkäsittelyominaisuuksia prioriteettijärjestetyt jonot, klusteroidut jonot kuormantasausta varten non-fifo käsittely, jonon selailu Lea Kutvonen 2

Lukitseminen lukulukot ja kirjoituslukot lukkojen konfliktitaulukot lukkojen gradunariteetti -> skaalautuvuus, tiedon eheys 2PC-protokolla käsittelee myös lukot Toipuvat prosessit TM ja RM ovat toipuvia: kykenevät palauttamaan oman tilansa häiriön jälkeen TM kerää lokia transaction log RM kirjaa transaktion tilan ja datamuutokset, joita transaktio sai aikaan toipumisprosessissa toistetaan lokien tapahtumat, replay optimointimahdollisuuksia Suosituksia ja toteutuksia Optimointia: kuormantasaus Tuotteita nopeasti vanhenevaa asiaa OTMs BEA WebLogic Enterprise IBM Transarc Encina++ Iona OrbixOTM Inprise Visibroker ITS MTMs samoilta ja miksei muiltakin MOM & MQ RPC-varianttejakin Suosituksia ja kehikoita nämäkin vielä liikkuvia maaleja CORBA transaction service J2EE transactions.net transactions TIP (Transactions over Internet protocols)? clients load balancer -round robin -by client id -by type application application application fault tolerance, scalability Optimointia: tilallinen vai tilaton? mid-tier services stateless easy to recover, program, scalable stateful state not in client clients eacy to recover, program etc no persistency services available in mid-tier -> clumsy cache only read-only information Optimointia: tulosten reititys monissa yrityssovelluksissa on lähetettävä tietoa suurelle joukolle vastaanottajia dynaamiset tapahtumien valvonnan ja odotuksen tarpeet tapahtumailmoituksen lähettäjän ja vastaanottajien ei tarvitse tuntea toisiaan julkaise-tilaa-arkkitehtuuri (publishsubscribe) vrt. message-queue-malli Lea Kutvonen 3

CORBA Events & Notifications Event namespace (names and attributes) Typed events (header+body; fixed + other) Consumer event filtering, event batching, event priority, event expiration, logging, internationalization, flow control mechanism QoS properties event channel consumer1 supplier1...... consumern typed events suppliern filter n constraints Publish-subscribe viestilaatikko yhteinen, kaikki voivat lähettää, tilaajilla suotimet vastaanotettaville viesteille taataan että kaikki tilaajat saavat kaikki asiaankuuluvat viestit mallit Otsakepohjainen Aiheperustainen Ongelmat Skaalautuvuus: viestien vertailu tilausehtoihin Viestien järjestys Tapahtumaorientoituneet vo: Ongelmat ja laajennustrendit ongelmat: heterogeeniset tietomallit usein liian raskas sitoutumisprotokolla (pitkäkestoiset tai omnipotentit tapahtumat) puutteellinen siirtosyntaksin tuki trendit nested transactions mukaantulo objektiväliohjelmistoihin asiakas sovellus client DB DB coordinator DB Järjestelmämallin tarpeet Palvelut ja rajapinnat networking and interoperability control system administration infrastructure Sovellustilanteen arkkitehtuurimallikkeita Arkkitehtuurimalli asyncronous messages reliable, fault-tolerant no loss, duplication, permutation, cluttering persistent subscriptions models supported message queue request-response multicast publish-subscribe appl. A msg queue msg queue Q2 appl. B Q1 msg transfer system msg transfer system appl. C SSL tms Lea Kutvonen 4

MOM = message oriented middleware asyncronous messaging natural, syncronous communication cumbersome message queues support reliability of message transport violates access transparency, no support for data heterogenity unless in programming language mapping, no support for transactions suitable for event notifications, publish/subscribebased architectures persistent message queues support fault tolearance Perustila: client--malli, putki vrt pistoketason ohjelmointi Topics for variation and development persistent/transient msgs FIFO/priority queues translations of msgs abstractions on msg ordering multithreading, automatic load balancing msg routing (source, cost, changes in topology etc) secure transfer of msgs (at least between msg s) Services (MQSeries) 4 types of messages Datagram: one way message, no reply RequestMessage: query initiating message ReplyMessage: response to RequestMessage ReportMessage exeption report API: 11 calls Connect/disconnect queue manager, open/close queue, inquire/set (queue) attributes, get/put message from/to queue, put1 (open, put, close), commit/rollback Viestiperustaiset väliohjelmistot Konsortioita MOMA message oriented middleware association www.moma-inc.org??? BQM business quality messaging??? Välinekuvauksia IBM WebSphere MQ (MQSeries), Sun JMS, Microsoft MSMQ, BEA MessageQ, TIB http://dsonline.computer.org/middleware/projects _MOM.html http://www.ibm.com/websphere/developer/techjo urnal Rajaavampi määritelmä The term "messaging" most often refers to electronic mail systems. MOM message movers, however, differ radically from mail systems, because they are high-speed, generally connectionless and are usually deployed for concurrently executing applications with a non-blocking sender. Message-queuing middleware (MQM) is a type of MOM that combines a high-speed message mover and a queuing (message storage) service. Proseduraaliset väliohjelmistot Korhosen seminaarityö Lea Kutvonen 5

Järjestelmämallin tarpeet Palvelut ja rajapinnat networking and interoperability control system administration infrastructure Sovellustilanteen arkkitehtuurimallikkeita RPC-malli tavoitteena saantituntumaton proseduurikutsu muttei voi täysin täyttää tätä tavoitetta Nimentä, vikaantumiset, suorituskyky paljastavat Globaalit muuttujat, kontekstiriippuvat mjat, osoittimet Call-by-reference vs. call-by-value Kutsusemantiikat Maybe, at-least-once, at-most-once Exception delivery Asyncronous RPC Multicast, broadcast Muut kutsujen ominaisuudet Location transparency, migration transparency, Concurrent processing Request-Reply protocol Issues in marshalling of parameters and results input, output data representation passing pointers Distributed object references Handling failures Types of failure client unable to locate request message lost reply message lost crashes after receiving a request client crashes after sending a request Reporting failures breaks transparency Handling failures Lost request message retransmit a fixed number of times before throwing an exception Lost reply message client resubmits request choises re-execute procedure: service should be idempotent filter duplicates: should hold on to results until acknowledged Client crashes orphan detection: reincarnations, expirations Fault tolerance measures Retransmit request yes yes no Duplicate filtering not appl no yes Re-execute/ retransmit not appl re-execute retransmit reply invocation semantics maybe at-mostonce at-leastonce Lea Kutvonen 6

Replication transparent RCP RPC middleware - model client1 client2 First class - integrated with language, e.g. Java RMI Second class - language-independent IDL, e.g. CORBA availability object 1 stub replication controller stub stub binder stub stub stub multicast channel avail. obj. syncronizer multicaster multicaster 2 syncro nizer client proxy proxy XML-RPC RPC:n ongelmia Synkroninen vuorovaikutus tiukka sidonta asiakkaan ja palvelijan välillä voi olla odotustilassa pitkään johtaa monisäikeiseen ohjelmointiin Hajautustuntumattomuus ei voida peittää kaikkia ongelmia Palvelun käsite puuttuu ohjelmoija ei ole kiinnostunut palvelijasta/palvelimesta Objektittomuus kutsut funktio/proseduurikutsuja eivätkä metodi/operaatiokutsuja Proseduraaliset väliohjelmistot Lea Kutvonen 7

Järjestelmämallin tarpeet Palvelut ja rajapinnat networking and interoperability control system administration infrastructure Sovellustilanteen arkkitehtuurimallikkeita Objekti- ja komponenttiväliohjelmistoista Arkkitehtuurimalli Hajautetut objektit (distributed objects) Asiakas-palvelin Kehityskaari Käyttöjärjestelmät Laitteistoabstraktio, suoritusaikainen ympstö, peruspalvelut sovelluksille Objektijärjestelmät Komponenttijärjestelmät Objektijärjestelmät Objektialustat Objektimalli osoittaminen, rajapinnat, vuorovaikutustavat, objektien implementointi Objektimallin toteutus ja suoritusaikainen ympäristö Objektien luonti ja elinkaaripalvelut Esimerkkejä: CORBA Vertailu objektikielen ja CORBA-mallin mukaisesta ohjelmointitavasta Schmidt, Vinoski: Object Interconnection. SIGS C++ Report Magazine, May 1995. Objekti- ja komponenttimallit Eroihin johtaneita seikkoja Kommunikointi -- siirrettävyys Toiminnallisuus -- hallittavuus Palvelevuus -- uudelleenkäytettävyys Objektimallit keskittyvät operaatioiden käynnistämiseen Objects are discrete software units they contain data, and can manipulate it. There are four keys: encapsulation, inheritance, polymorphism, and instantiation. Komponenttimallit kuvaavat komponentin toimintaympäristöä Tuumaustauko Onko MOM kuollut? Onko malli ehkä näkyvissä uudella tavalla? http ja web? virukset? sulautetut järjestelmät? auton jarrut ja lukitus? miten ydinvoimalan säätö on järjestetty? Mitä tiedämme liikuteltavasta tiedosta? MOM vs tapahtumaorient. Lea Kutvonen 8