Mis on SOA? Teeninduskeskne Architecture põhimõtted

Mis on SOA (teenusele orienteeritud Architektuur)?

Teenustele orienteeritud ArchiTektuur (SOA) on arvutitarkvara kujundamise arhitektuurne muster, milles rakenduse komponendid pakuvad sideprotokolli kaudu teenuseid teistele komponentidele, tavaliselt võrgu kaudu. Teenusele orienteerituse põhimõtted ei sõltu tootest, müüjast ega tehnoloogiast.

SOA lihtsustab erinevate võrkude kaudu tarkvarakomponentide omavahelist koostööd.

SOA arhitektuuri järgi üles ehitatud veebiteenused kipuvad muutma veebiteenuse sõltumatumaks. Veebiteenused ise saavad omavahel andmeid vahetada ning nende loomise aluspõhimõtete tõttu ei vaja nad mingit inimlikku suhtlust ega vaja ka koodimuutusi. See tagab, et võrgus olevad veebiteenused saavad üksteisega sujuvalt suhelda.

Teenusele orienteeritud ArchiTecture (SOA) põhimõtted

Allpool on mainitud 9 tüüpi SOA disainipõhimõtteid

1. Standardiseeritud teenusleping

Teenused vastavad teenuse kirjeldusele. Teenusel peab olema mingisugune kirjeldus, mis kirjeldab teenuse sisu. Nii on kliendirakendustel lihtsam mõista, mida teenus teeb.

2. Lahtine ühendus

Less sõltuvus üksteisest. See on veebiteenuste üks peamisi omadusi, mis lihtsalt ütleb, et veebiteenuste ja veebiteenust kutsuva kliendi vahel peaks olema võimalikult väiksem sõltuvus. Nii et kui teenuse funktsionaalsus mingil ajahetkel muutub, ei tohiks see klientrakendust rikkuda ega takistada selle töötamist.

3. Teenuse abstraktsioon

Teenused varjavad välismaailma eest loogikat, mida nad kapseldavad. Teenus ei tohiks paljastada, kuidas see oma funktsioone täidab; see peaks lihtsalt ütlema kliendirakendusele, mida see teeb, mitte aga sellest, kuidas ta seda teeb.

4. Teenuse korduvkasutatavus

Loogika on jagatud teenusteks, mille eesmärk on maksimeerida taaskasutamist. Igas arendusettevõttes on korduvkasutatavus suur teema, sest ilmselgelt ei tahaks inimene kulutada aega ja vaeva, et luua sama koodi ikka ja jälle mitmes seda vajavas rakenduses. Seega, kui veebiteenuse kood on kirjutatud, peaks see olema võimeline töötama erinevate rakenduste tüüpidega.

5. Teenuse autonoomia

Teenustel peaks olema kontroll loogika üle, mida nad kapseldavad. Teenus teab kõike, milliseid funktsioone see pakub, ja seega peaks tal olema täielik kontroll selles sisalduva koodi üle.

6. Teenuse kodakondsusetus

Ideaalis peaksid teenused olema kodakondsuseta. See tähendab, et teenused ei tohiks varjata teavet ühest riigist teise. Seda tuleks teha kas kliendirakendusest. Näiteks võib tuua ostusaidil tehtud tellimuse. Nüüd saate kasutada veebiteenust, mis annab teile konkreetse kauba hinna. Kui aga kaubad on ostukorvi lisatud ja veebileht liigub lehele, kus tasute, siis ei peaks makselehele kantava kauba hinna eest vastutama veebiteenus. Selle asemel peab seda tegema veebirakendus.

7. Teenuse leitavus

Teenused on leitavad (tavaliselt teenuseregistrist). Oleme seda juba näinud UDDI kontseptsioonis, mis teostab registrit, mis võib hoida teavet veebiteenuse kohta.

8. Teenuse koostatavus

Teenused jagavad suured probleemid väikesteks probleemideks. Kunagi ei tohiks manustada rakenduse kõiki funktsioone ühte teenusesse, vaid selle asemel jagada teenus mooduliteks, millest igaühel on eraldi ärifunktsioon.

9. Teenuste koostalitlusvõime

Teenused peaksid kasutama standardeid, mis võimaldavad erinevatel abonentidel teenust kasutada. Veebiteenustes on standardid nagu XML ja selle põhimõtte järgimise tagamiseks kasutatakse sidet HTTP kaudu.

Võta see postitus kokku järgmiselt: