ohjelman arkkitehtuurista.



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

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

T Harjoitustyöluento

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

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmistojen suunnittelu

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

T Harjoitustyöluento

1. Olio-ohjelmointi 1.1

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

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

SEPA - Design Patterns

Algoritmit 1. Luento 1 Ti Timo Männikkö

Projektiportfolion valinta

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

KADA (Drupal 7) migraatio uuteen (versioon) webiin

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Uudelleenkäytön jako kahteen

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Web service interoperability (WS-I)

Ylläpito. Ylläpidon lajeja

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

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

T SEPA - päiväkirja: Design Patterns. ETL työkalu

Tietotekniikan valintakoe

Tikli-projektin avausseminaari

Algoritmit 1. Luento 2 Ke Timo Männikkö

Ohjelmistojen mallintaminen, mallintaminen ja UML

Johdantoluento. Ohjelmien ylläpito

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

Automaattinen yksikkötestaus

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Kiinteistöjen paloturvallisuuden ajankohtaispäivät 2016 Muuttuva ympäristö ja teknologian haasteet Palontorjunnan laitteistot Lauri Lehto,

Järjestelmäarkkitehtuuri (TK081702)

Harjoitustehtävät ja ratkaisut viikolle 48

Software product lines

KUNTIEN JA HUS:N ASIAKAS- JA POTILASTIETOJÄRJESTELMÄN HANKINTA

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

AutoCAD-natiiviobjektin toteutus

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

Opintosuunnitelma. Suunta: Tietoliikenneohjelmistot ja -sovellukset Pääaine: Tietoliikenneohjelmistot Sivuaine: Yritysturvallisuus

8/20: Luokat, oliot ja APIt

Tulevaisuuden Internet. Sasu Tarkoma

HSL-tietoisku: Uusi Avoin reittiopas ja pysäkkikuulutukset. Kerkko Vanhanen, VAMPO-seminaari

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

P e d a c o d e ohjelmointikoulutus verkossa

ESTEETÖN NAVIGOINTI. Ari Virtanen

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Integrointi. Ohjelmistotekniikka kevät 2003

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

Ohjelmointi 1. Kumppanit

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Koodimalli Code Model

Tarjoussuunnitteluun työkalu

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

T SEPA - päiväkirja: Design Patterns. ETL työkalu

Tässä kertauksena SOA ja palvelu.

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

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

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen

Julkishallinnon tunnistuksen ohjauspalvelun kehityshanke mitä PoC-vaihe on opettanut? Manne Miettinen, Henri Mikkonen ja Arto Tuomi

Yhteistyöllä yhteisiä yhdenvertaisia palveluja. Tammikuu 2019

Liite 6: Palvelukuvaus. Enterprise Advantage Program (EAP)

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Taltioni teknisen alustan arviointi

Algoritmit 1. Luento 10 Ke Timo Männikkö

Pelastakaa sosiaalinen media markkinoinnilta!

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Avoimen ja yhteisen rajapinnan hallintamalli

811312A Tietorakenteet ja algoritmit I Johdanto

Tietovarannot. Anna Eteläaho. Analyysi ja yhteenveto avoimen datan innovaatiokilpailun kilpailutöistä. Intressiryhmän 2. kokous 27.2.

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Johdatus historiatieteeseen

J u k k a V i i t a n e n R e s o l u t e H Q O y C O N F I D E N T I A L

MS-A0402 Diskreetin matematiikan perusteet

Ohjelmistotekniikan menetelmät, kevät 2008

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Algoritmi on periaatteellisella tasolla seuraava:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Liiketoimintasovellusten modernisointi - Anna sovelluksillesi uusi elämä. Sofor varmistaa investointiesi tehokkaan hyödyntämisen

PERUSASIAT KUNNIAAN HEITON OPETTAMINEN

Algoritmit 2. Luento 1 Ti Timo Männikkö

TIEKE katsaus. johtava asiantuntija Pertti Lindberg, Energiateollisuus ry

TIETOJENKÄSITTELYTIETEIDEN LAITOS

4.2 Yhteensopivuus roolimalleihin perustuvassa palvelussa

17/20: Keittokirja IV

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

Lineaarinen yhtälöryhmä

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

PUISTO-projekti koululaiset suunnittelun osallisina Lapset kaupungissa -seminaari , Eini Vasu arkkitehti SAFA

Transkriptio:

1

Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä saattaa olla puutteellista. Sana legacy itsessään tarkoittaa jotain perittyä ja arvokasta. Nämä ominaisuudet pätevät myös legacy-järjestelmiin. Legacy-järjestelmien modifiointi on usein erittäin vaikeaa eikä useinkaan kannattavaa. Syitä tähän on monia: -järjestelmät on toteutettu vanhoilla ohjelmointikielillä -suurella todennäköisyydellä ko. järjestelmien arkkitehtejä, suunnittelijoita ja koodaajia on vaikea tavoittaa (sikäli kun käytettyjen ohjelmointikielten osaajia ylipäätään on mahdollista löytää) -mikäli modifiointeja tarvitaan, niin ne (erityisesti arkkitehtuuritason muutokset) käytännössä vaativat niin paljon työtä, että usein voi olla helpompaa rakentaa uusi järjestelmä -usein legacy-järjestelmän statuksen saavuttaneet järjestelmät toimivat kohtuullisesti (koska niiden elinikä on osoittautunut odotettua pidemmäksi) eikä suuret rakenteelliset tai toiminnalliset muutokset ole aina välttämättömiä. -esimerkiksi proseduraalisten ohjelmien konvertoiminen oliopohjaisiksi on osoittautunut usein huonoksi ideaksi: vaikka uusi oliopohjainen ratkaisu toimisikin, (a) se saattaa olla hitaampi tai (b) ohjelmoijat yksinkertaisesti hylkäävät uuden ratkaisun, koska se ei vastaa heidän ymmärrystään algoritmien rakenteesta tai 2

ohjelman arkkitehtuurista. 2

Edellä mainituista syistä legacy-järjestelmien korvaaminen uusilla tai muilla olemassa olevilla järjestelmillä on usein varsin riskialtista. Lisäksi erityisesti uuden järjestelmän rakentaminen on usein hyvin aikaa vievää ja näin ollen kallista. Tämän vuoksi se ei aina ole edes realistinen vaihtoehto. Vanhoja legacy-järjestelmiä ei näin ollen käytännössä haluta useinkaan heittää pois vaan ne halutaan tavalla tai toisella käytettäväksi uudessa muuttuneessa ympäristössä. Usein paras tapa on kääriä (wrap) ne. Kääriminen edellyttää vain hyvin suhteellisen pieniä muutoksia ko. ohjelmaan, sallii olemassa olevan toiminnallisuuden ja toteutuksen käytön ja erottaa toteutetut ominaisuudet niiden käyttäjistä. Käärimistekniikoita käsitellään tarkemmin kurssilla Ohjelmien ylläpito ja evoluutio. 3

Jotta kääriminen olisi varteenotettava vaihtoehto, edellytetään myös käärittävältä ohjelmalta tiettyjä ominaisuuksia. Käärittävän ohjelman tulee ensinnäkin olla käärimisen arvoinen. Sillä tulee toisin sanoen olla tarpeeksi arvokkaita (esimerkiksi luotettavuuden tai tehokkuuden näkökulmasta) ominaisuuksia, joita halutaan käyttää jatkossakin. Käärittävän ohjelmalla tulee myös olla riittävän hyvä ja käytettävä API ja käytettävät ominaisuudet tulee olla selkeästi identifioitavissa ja kutsuttavissa ko. APIa käyttäen. Näiden lisäksi verrattaessa vaihtoehtoisiin ratkaisuihin, kuten ohjelman uudelleen kirjoittaminen tai sen korvaaminen toisella ohjelmalla, käärimisen tulee paras ratkaisu arvioitaessa työmäärää ja hyötyä sekä niiden suhdetta (cost-benefit). 4

Käärimisen ei välttämättä aina haluta tarjoavan täsmälleen vastaavaa rajapintaa kuin alkuperäinen ohjelma, erona vain käytettävä kieli (esim. SOAP-rajapinta C++ - ohjelmalle). Voidaan esimerkiksi haluta, että uuden rajapinnan kutsuttava operaatio käyttää legacy-ohjelman useampaa operaatiota. Tällöin rajapinnassa tai tarkemmin ottaen interaktiokerroksessa voidaan käyttää ns. mukauttajia tai välittäjiä, jotka tekevät tarvittavat muutoksen. Mukauttajien käyttöä edellyttää myös tilanteet, joissa asiakasohjelman käyttämät tietorakenteet voivat erota legacy-ohjelman käyttämistä tietorakenteista. Kääreen erottaminen legacy-ohjelmasta - tai yleisemmin interaktiokerroksen erottaminen liiketoimintalogiikasta kannattaa suunnitella joustavaksi ratkaisuksi. Tähän tarkoitukseen voi käyttää esimerkiksi Façade, Wrapper, Adapter ja Bridge suunnittelumalleja. XML-kääre aiheuttaa käytännössä hitautta, koska se esimerkiksi edellyttää aina myös XML-jäsentäjän käyttöä. Toisaalta XML-kääreellä on etunsakin. Käärittäessä ohjelma esimerkiksi Internetiä hyödyntäväksi Web-palveluksi, voidaan sitä käyttää laajalti muista ohjelmista käsin. 5