Ero sivun ”Palvelukeskeinen arkkitehtuuri” versioiden välillä

[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
YonaBot (keskustelu | muokkaukset)
Renne (keskustelu | muokkaukset)
kielenhuoltoa ym. korjauksia (teksti vaatisi isommankin remontin)
Rivi 1:
'''SOA''' (''Service Oriented Architechture'') eli '''palvelukeskeinen arkkitehtuuri''' on [[ohjelmistotekniikka|ohjelmistotekniikassa]] käytetty arkkitehtuuritason suunnittelutapa, jolla eri tietojärjestelmien toiminnot ja prosessit on suunniteltu toimimaan itsenäisinä, avoimina ja joustavina palveluina. Näitä palveluita tulisi pystyä aina käyttämään avoimien standardien rajapintojen kautta. Tämän avulla pyritään aikaansaamaan erilaisten tietojärjestelmien joustava ja järjestelmäriippumaton vuorovaikutus. SOA:n nähdään olevan yksi keskeinen paradigma [[WEBWeb 2.0]] – sukupolven–sukupolven verkkopalveluiden kehityksessä.
 
SOA-arkkitehtuurin mukaan palveluita käyttävinä osapuolina toimivat esim. toiset sovellukset tai palvelut, jotka käyttävät palveluita yleensä tietoverkkojen (esim. [[Internet|Internetin]]) kautta avointen rajapintojen ja tekniikoiden (esim. [[SOAPWeb service|WebServicesWeb Services]]) avulla. SOA-arkkitehtuurin hyödyntämisellä pyritään saavuttamaan entistä avoimempien sekä helpommin integroitavien järjestelmien toteuttaminen. SOA:n odotetaan tuovan ohjelmistojen tuottamisprosesseihin tehokkuutta vähentämällä uusien järjestelmien toteuttamiseen kuluvaa aikaa ja kustannuksia. Helpommalla integroitavuudella ajetaan takaatavoitellaan sitä, että jokainen uusiuudet sovellussovellukset pystyisipystyisivät kommunikoimaan vanhojen, jo olemassa olevien sovellusten kanssa, jolloin myös tietojärjestelmien jälleenkäytettävyys voi lisääntyä.
 
SOA-arkkitehtuurin avulla voidaan saavuttaa etuja sekä (a) organisaatioiden olemassa olevien sisäisten, omien sovellusten välisessä vuorovaikutuksessa, että (b) ulkoisten sovellusten kanssa tapahtuvassa vuorovaikutuksessa. KaikkiTämän tämäon pitäisi sallia tapahtuvantarkoitus mitätoteutua erinäisimmilläriippumatta sovelluskehitystekniikoillasovelluskehitystekniikoista ([[käyttöjärjestelmä|käyttöjärjestelmät]], [[ohjelmointikieli|ohjelmointikielet]]- ja -tekniikat, jne.). jaPalveluiden palvelutpitäisi pitäisivätolla lisäksi"läpinäkyviä", ollasiten ”läpinäkyviä”;että jos niiden sisäinen toiminta muuttuu (esim.esimerkiksi palveluita kehitetään teknisesti tai uusia toimintoja lisätään), niiden käyttö tulisi säilyä entisellään eikä tarvetta muutoksien tekemiseen palveluita käyttäviin sovelluksiin tulisi olla.
 
==Tavoitteita==
 
SOA on suunniteltu ratkaisemaan samalla kertaa ainakin kaksi keskeistä ongelmaa; uusien järjestelmien nopeampi kehittäminen ja jakelu sekä eri järjestelmien välinen integrointi. Tietojärjestelmien integrointitarkoituksiin on toki ollut jo vuosikymmeniä mitä erilaisimpia tekniikoita ja ratkaisuja (mm. järjestelmäkohtaiset ratkaisut, [[COM]]/[[DCOM]], [[CORBA]], [[Java]] [[RMI]], [[XML_RPC|XML-RPC]]), mutta yleinen ja yhteisesti käytettävä ”standardi”"standardi" on puuttunut, ja järjestelmien integrointi on jäänyt oikeinkin tehtynä hyvin työlääksi, ja kalliiksi, mutta siitä huolimatta joustamattomia ratkaisuja tuottamattomaksi työksi.
 
SOA eroaa perinteisestä järjestelmien keskinäisestä integroinnista siten, että SOA-mallin mukaiset järjestelmät ovat toisiinsa heikosti sidottuja, mutta silti korkeatasoiseen, usein ”älykkääseen”"älykkääseen" vuorovaikutukseen keskenään pystyviä sovelluspalveluita. SOA-mallissa ajatellaan siten jokaisen järjestelmän sisältävän palvelurajapinnan, minkä kautta sovellus voi tarjota toimintojaan ”ulkopuolelle”"ulkopuolelle"; periaatteessa verkon kautta kaikille sallimilleen järjestelmille.
 
SOA-mallin mukaan toteutettujen järjestelmien palveluiden yhteistoiminta pohjautuu rakenteellisiin ja järjestelmäriippumattomiin palvelukuvauksiin (esim. WebServicesWeb Service -ratkaisuissa käytetyt WSDL-kuvaukset). Palveluiden kuvaukset ”piilottavat”"piilottavat" palvelun tarjoajien järjestelmä- ja tekniikkaspesifit osat; palvelun käyttäjällä ei itse asiassa pitäisi edes olla tarvetta tietää mitämillä tekniikkatekniikoilla taustallapalvelu ollaanon käytettytoteutettu. Täten SOA on täysin ”teknologianeutraali”"teknologianeutraali"; se ei ota kantaa siitä, millä tekniikoillatekniikoihin (esim. [[Java]], [[.NET]]) tai kielilläohjelmointikieliin ([[Java]], [[C_sharp|C#]], [[PHP]], [[C++]], [[Perl]], [[Ruby]], jne.). Tämä neutraalius mahdollistaa riippumattoman järjestelmien välisen vuorovaikutuksen ja lisää huomattavasti ohjelmistojen jälleenkäytettävyyttä; kerran hyvin tehtyä palvelua voidaan käyttää periaatteessa rajattomasti muissa sovelluksissa.
 
Toinen SOA:an liittyvä käsite on dynaaminen integrointi; sovelluspalvelutsovellusten pitäisi pystyä automaattisesti paikantamaan tarvitsemansa palvelut, valita sopivista palveluista käyttökelpoisin ja kytkeytyä niihinsiihen automaattisesti, palvelun sisältämää rajapintaa hyväksikäyttäen. Tähän käyttötarkoitukseen hyödynnetäänvoidaan mm.hyödyntää [[UDDI]]:inn (''Universal Description, DetectionDiscovery and integrationIntegration'') tyylisiäkaltaisia, palveluiden kuvaamiseen ja rekisteröintiin soveltuvia tekniikoita.
 
==Palveluprosessien kuvaaminen ja hallinta==
 
SOA-mallissa palvelukokonaisuuden kuvaamiseen ja hallintaan käytetään usein [[XML]]-kieleen pohjautuvaa [[BPEL]]-kieltä (''Business Process Execution Language'')-kieltä. BPEL-kielellä pyritään SOA-mallia noudattaenkuvataan yrityksen liiketoimintaprosessienliiketoimintaprosesseja kuvaamiseentietojärjestelmientietojärjestelmien palveluiden tasolla; ohjelmoimaan tietojärjestelmät vastaamaan yrityksen todellisia prosesseja ja prosesseissa tapahtuvaa tietojen käsittelyä.
 
 
==Aiheesta muualla==
* [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm SOA (Oasis.orgOASIS)]
* [http://www.w3.org/20002002/xp/Groupws/ SOAPWeb Services - W3C]
* [http://www.w3oasis-open.org/2002/wscommittees/tc_home.php?wg_abbrev=wsbpel WebServices -BPEL W3C(OASIS)]
* [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel BPEL (Oasis.org)]
* [http://searchwebservices.techtarget.com/topics/0,295493,sid26_tax299050,00.html SOA-toteutuksista]