Načela SOA (storitveno usmerjena arhitektura)

Anonim

Storitveno usmerjena arhitektura (SOA) je arhitekturni vzorec pri oblikovanju računalniške programske opreme, pri katerem komponente aplikacije prek komunikacijskega protokola, običajno po omrežju, nudijo storitve drugim komponentam. Načela usmerjenosti k storitvam so neodvisna od katerega koli izdelka, prodajalca ali tehnologije.

SOA samo olajša delo programskih komponent prek različnih omrežij.

Spletne storitve, ki so zgrajene po arhitekturi SOA, ponavadi postanejo bolj neodvisne. Spletne storitve si lahko izmenjujejo podatke med seboj in zaradi temeljnih načel, na katerih so ustvarjene, ne potrebujejo kakršne koli človeške interakcije in tudi ne spreminjajo kode. Zagotavlja, da lahko spletne storitve v omrežju nemoteno komunicirajo med seboj.

SOA temelji na nekaterih ključnih načelih, ki so navedena spodaj

  1. Standardizirana pogodba o storitvah - storitve se držijo opisa storitve. Storitev mora imeti nekakšen opis, ki opisuje, za katero storitev gre. Tako odjemalske aplikacije lažje razumejo, kaj storitev počne.
  1. Loose Coupling - Manj odvisnosti drug od drugega. To je ena glavnih značilnosti spletnih storitev, ki pravi le, da mora biti med spletnimi storitvami in odjemalcem, ki prikliče spletno storitev, čim manj odvisnosti. Torej, če se funkcionalnost storitve kadar koli spremeni, odjemalske aplikacije ne sme prekiniti ali ustaviti njenega delovanja.
  1. Abstrakcija storitev - storitve skrivajo logiko, ki jo zajemajo, pred zunanjim svetom. Storitev ne sme izpostaviti, kako izvaja svojo funkcionalnost; odjemalski aplikaciji naj pove le, kaj počne, in ne, kako to počne.
  1. Ponovna uporabnost storitve - Logika je razdeljena na storitve z namenom čim večje ponovne uporabe. V vsakem razvojnem podjetju je ponovna uporabnost velika tema, ker očitno človek ne bi želel znova in znova porabiti časa in truda za izdelavo iste kode v več aplikacijah, ki jih potrebujejo. Ko je koda za spletno storitev napisana, mora torej imeti možnost dela z različnimi vrstami aplikacij.
  1. Avtonomija storitve - storitve bi morale imeti nadzor nad logiko, ki jo zajemajo. Storitev ve vse o tem, katere funkcije ponuja, zato bi morala imeti tudi popoln nadzor nad kodo, ki jo vsebuje.
  1. Apatridnost storitve - V idealnem primeru bi morale biti storitve brez državljanstva. To pomeni, da storitve ne smejo zadrževati informacij iz ene države v drugo. To bi morali storiti bodisi v odjemalski aplikaciji. Primer je lahko naročilo na spletnem mestu za nakupovanje. Zdaj lahko imate spletno storitev, ki vam določi ceno določenega izdelka. Če pa so artikli dodani v nakupovalni voziček in spletna stran preusmeri na stran, na kateri plačujete, spletna storitev ne bi smela prevzeti odgovornosti za ceno izdelka, ki se prenese na plačilno stran. Namesto tega mora to storiti spletna aplikacija.
  1. Odkrivanje storitve - storitve je mogoče najti (običajno v registru storitev). To smo že videli v konceptu UDDI, ki izvaja register, ki lahko vsebuje informacije o spletni storitvi.
  1. Sestavljivost storitev - storitve velike težave razdelijo na majhne. Nikoli ne bi smeli vgraditi vseh funkcij aplikacije v eno samo storitev, temveč jo razdeliti na module, vsak z ločeno poslovno funkcionalnostjo.
  1. Interoperabilnost storitve - storitve bi morale uporabljati standarde, ki različnim naročnikom omogočajo uporabo storitve. V spletnih storitvah se za zagotovitev skladnosti s tem načelom uporabljajo standardi XML in komunikacija prek HTTP.