Što je SOA? Orijentiran na usluge Archiprincipi strukture

Što je SOA (Service Oriented Architekstura)?

Orijentiran na usluge Archistruktura (SOA) je arhitektonski obrazac u dizajnu računalnog softvera u kojem komponente aplikacije pružaju usluge drugim komponentama putem komunikacijskog protokola, obično preko mreže. Načela uslužnog usmjerenja neovisna su o bilo kojem proizvodu, dobavljaču ili tehnologiji.

SOA samo olakšava međusobni rad softverskih komponenti preko raznih mreža.

Web usluge koje su izgrađene prema SOA arhitekturi teže učiniti web uslugu neovisnijom. Same web-usluge mogu međusobno razmjenjivati ​​podatke, a zbog temeljnih načela na kojima su stvorene, nije im potrebna nikakva ljudska interakcija niti su im potrebne bilo kakve izmjene koda. Osigurava da web usluge na mreži mogu besprijekorno međusobno komunicirati.

Uslužno orijentirano Archinačela tecture (SOA).

Postoji 9 tipova SOA principa dizajna koji su navedeni u nastavku

1. Standardizirani ugovor o pružanju usluga

Usluge se pridržavaju opisa usluge. Usluga mora imati neku vrstu opisa koji opisuje o čemu se radi. To klijentskim aplikacijama olakšava razumijevanje što usluga radi.

2. Labav spoj

Less ovisnost jedni o drugima. Ovo je jedna od glavnih karakteristika web usluga koja samo kaže da treba biti što je moguće manje ovisnosti između web usluga i klijenta koji poziva web uslugu. Dakle, ako se funkcionalnost usluge promijeni u bilo kojem trenutku, to ne bi trebalo prekinuti klijentsku aplikaciju ili zaustaviti njen rad.

3. Apstrakcija usluge

Usluge skrivaju logiku koju sažimaju od vanjskog svijeta. Usluga ne bi trebala otkrivati ​​kako izvršava svoju funkcionalnost; trebalo bi samo reći klijentskoj aplikaciji što radi, a ne kako to radi.

4. Mogućnost ponovne upotrebe usluge

Logika je podijeljena na usluge s namjerom maksimiziranja ponovne upotrebe. U bilo kojoj razvojnoj tvrtki ponovna upotrebljivost je velika tema jer očito nitko ne želi trošiti vrijeme i trud na izgradnju istog koda uvijek iznova u više aplikacija koje ih zahtijevaju. Dakle, kada je kôd za web uslugu napisan, trebao bi imati mogućnost rada s različitim vrstama aplikacija.

5. Autonomija usluge

Usluge bi trebale imati kontrolu nad logikom koju enkapsuliraju. Usluga zna sve o funkcionalnosti koju nudi i stoga bi također trebala imati potpunu kontrolu nad kodom koji sadrži.

6. Služba bez državljanstva

U idealnom slučaju, usluge bi trebale biti bez statusa. To znači da službe ne bi trebale uskratiti informacije iz jedne države u drugu. To bi trebalo učiniti iz klijentske aplikacije. Primjer može biti narudžba postavljena na mjestu za kupovinu. Sada možete imati web uslugu koja vam daje cijenu određenog artikla. Ali ako se artikli dodaju u košaricu za kupnju i web stranica vodi do stranice na kojoj vršite plaćanje, odgovornost za prijenos cijene artikla na stranicu za plaćanje ne bi trebala preuzeti web usluga. Umjesto toga, to mora učiniti web aplikacija.

7. Vidljivost usluge

Usluge se mogu otkriti (obično u registru usluga). To smo već vidjeli u konceptu UDDI, koji izvodi registar koji može sadržavati informacije o web servisu.

8. Sastavljivost usluge

Usluge rastavljaju velike probleme u male probleme. Nikada ne treba ugrađivati ​​sve funkcije aplikacije u jednu uslugu, već umjesto toga rastaviti uslugu na module od kojih svaki ima zasebnu poslovnu funkciju.

9. Interoperabilnost usluga

Usluge bi trebale koristiti standarde koji omogućuju različitim pretplatnicima korištenje usluge. U web uslugama, standardi kao XML a komunikacija preko HTTP-a koristi se kako bi se osiguralo da je u skladu s ovim načelom.