Mikä on SOA? Palvelukeskeinen Architecture Periaatteet
Mikä on SOA (palvelukeskeinen Architektuuri)?
Palvelukeskeinen Architecture (SOA) on arkkitehtoninen malli tietokoneohjelmistojen suunnittelussa, jossa sovelluskomponentit tarjoavat palveluita muille komponenteille viestintäprotokollan kautta, tyypillisesti verkon kautta. Palvelulähtöisyyden periaatteet ovat riippumattomia tuotteesta, toimittajasta tai teknologiasta.
SOA vain helpottaa ohjelmistokomponenttien yhteistyötä eri verkkojen kanssa.
SOA-arkkitehtuurin mukaisesti rakennetuilla verkkopalveluilla on taipumus tehdä verkkopalvelusta itsenäisempiä. Verkkopalvelut itse voivat vaihtaa tietoja keskenään, ja niiden luomisen taustalla olevista periaatteista johtuen ne eivät tarvitse minkäänlaista inhimillistä vuorovaikutusta eivätkä myöskään koodimuutoksia. Se varmistaa, että verkon verkkopalvelut voivat olla vuorovaikutuksessa toistensa kanssa saumattomasti.
Palvelukeskeiset Architecture (SOA) -periaatteet
SOA-suunnitteluperiaatteita on 9 tyyppiä, jotka on mainittu alla
1. Standardoitu palvelusopimus
Palvelut ovat palvelukuvauksen mukaisia. Palvelulla täytyy olla jonkinlainen kuvaus, joka kuvaa palvelusta. Näin asiakassovellusten on helpompi ymmärtää, mitä palvelu tekee.
2. Löysä kytkin
Less riippuvuus toisistaan. Tämä on yksi verkkopalveluiden pääominaisuuksista, joka vain sanoo, että verkkopalveluiden ja verkkopalvelua kutsuvan asiakkaan välillä tulisi olla mahdollisimman vähemmän riippuvuutta. Joten jos palvelun toiminnallisuus muuttuu milloin tahansa, sen ei pitäisi rikkoa asiakassovellusta tai estää sitä toimimasta.
3. Palvelun abstraktio
Palvelut piilottavat logiikkansa ulkomaailmalta. Palvelu ei saa paljastaa, kuinka se suorittaa toiminnallisuutensa; sen pitäisi vain kertoa asiakassovellukselle, mitä se tekee, ei miten se tekee sen.
4. Palvelun uudelleenkäytettävyys
Logiikka on jaettu palveluihin, joiden tarkoituksena on maksimoida uudelleenkäyttö. Missä tahansa kehitysyrityksessä uudelleenkäytettävyys on iso aihe, koska ei tietenkään halua käyttää aikaa ja vaivaa saman koodin rakentamiseen yhä uudelleen useissa niitä vaativissa sovelluksissa. Näin ollen, kun verkkopalvelun koodi on kirjoitettu, sen pitäisi pystyä toimimaan erilaisten sovellustyyppien kanssa.
5. Palveluiden autonomia
Palveluilla tulisi olla hallintaansa koteloituun logiikkaan. Palvelu tietää kaiken tarjoamistaan toiminnoista, ja siksi sillä pitäisi olla myös täydellinen hallinta sen sisältämään koodiin.
6. Palvelun kansalaisuudettomuus
Ihannetapauksessa palvelujen pitäisi olla kansalaisuudettomat. Tämä tarkoittaa, että palvelut eivät saisi salata tietoja valtiosta toiseen. Tämä on tehtävä joko asiakassovelluksesta. Esimerkkinä voi olla ostossivustolla tehty tilaus. Nyt sinulla voi olla verkkopalvelu, joka antaa sinulle tietyn tuotteen hinnan. Mutta jos tuotteet on lisätty ostoskoriin ja web-sivu siirtyy sille sivulle, jolla maksat, ei verkkopalvelun tule kantaa vastuuta maksusivulle siirrettävän tuotteen hinnasta. Sen sijaan verkkosovelluksen on tehtävä se.
7. Palvelun löydettävyys
Palvelut voidaan löytää (yleensä palvelurekisteristä). Olemme jo nähneet tämän UDDI:n konseptissa, joka suorittaa rekisterin, joka voi sisältää tietoja verkkopalvelusta.
8. Palvelun koostettavuus
Palvelut jakavat suuret ongelmat pieniksi. Sovelluksen kaikkia toimintoja ei koskaan pidä upottaa yhteen palveluun, vaan sen sijaan palvelu jaetaan moduuleiksi, joissa jokaisessa on erillinen liiketoimintatoiminto.
9. Palvelujen yhteentoimivuus
Palveluissa tulee käyttää standardeja, jotka mahdollistavat palvelun käytön eri tilaajille. Verkkopalveluissa standardit kuten XML ja HTTP:n kautta tapahtuvaa viestintää käytetään sen varmistamiseksi, että se on tämän periaatteen mukainen.