Skip to content
Language:hu Author:Laborci Gergely
architecture

SOA: szolgáltatásorientált architektúra

Célok

A lecke végére el tudod magyarázni, mit jelent a SOA, miben hasonlít és miben tér el a mikroszervizektől, és miért tartják a szolgáltatásokra bontás történeti előzményének.

Miért kell a SOA-t ismerni?

A „szolgáltatás” mint építőelem nem a mikroszervizekkel jelent meg. A SOA volt az első széles körben elterjedt kísérlet arra, hogy különálló, hálózaton elérhető képességekből nagyobb rendszereket állítsanak össze. Aki a mikroszervizeket érteni akarja, annak látnia kell, mit tartottak a SOA problémájának.

Mi a SOA?

A SOA (service-oriented architecture, szolgáltatásorientált architektúra) az OASIS (Organization for the Advancement of Structured Information Standards, szabványügyi szervezet) referenciamodellje szerint „elosztott képességek szervezésének és használatának paradigmája”, amelyek különböző tulajdonosi tartományok alatt lehetnek. A szolgáltatás az a mód, amellyel a fogyasztó igénye és a szolgáltató képessége összekapcsolódik. A modell három kulcsfogalma a látási kapcsolat (visibility), az interakció és a valós hatás (real world effect).

A SOA tehát elsősorban szemlélet, nem egyetlen konkrét technológia. A gyakorlatban a vállalati SOA-t gyakran egy központi üzenetközvetítővel (ESB, enterprise service bus), szabványos protokollokkal és központilag irányított szolgáltatásszerződésekkel valósították meg.

flowchart LR
  A["Alkalmazás A"] --> E["Központi közvetítő (ESB)"]
  B["Alkalmazás B"] --> E
  E --> S1["Szolgáltatás 1"]
  E --> S2["Szolgáltatás 2"]

Hogyan viszonyul a mikroszervizekhez?

Fowler és Lewis szerint a mikroszerviz-stílus nagyon hasonlít ahhoz, amit a SOA hívei is javasoltak, a „SOA” szó azonban sokféle dolgot jelent. A különbség jellemzően a megvalósítás helyén van:

Szempont Jellemző vállalati SOA Mikroszervizek
Hol van az „okosság”? A központi közvetítőben (útválasztás, átalakítás, szabályok) A végpontokban; a csatorna egyszerű („smart endpoints, dumb pipes”)
Irányítás Központi, szabványosított szerződések Elosztott, csapatonként
Szolgáltatás mérete Gyakran nagy, vállalati képesség Egy üzleti képesség, kis csapat birtokolja
Adat Gyakran közös adattárak Szolgáltatásonkénti adat

Fowler és Lewis kritikája szerint a SOA-implementációk a komplexitást gyakran az ESB-be rejtették, a központi szabványok pedig „kimondottan lélegzetelállító” bonyolultságot értek el. Ez a központi közvetítő egyszerre lett szűk keresztmetszet és változtatási akadály.

Szempontok szerint

Szempont Jellemző SOA
Csatolás Szerződéses, de a közvetítőn át erős függés alakulhat ki
Deployolhatóság Szolgáltatásonként, de a központi réteg közös kiadási pont
Adatkezelés Gyakran közös adat
Hibakezelés A központi közvetítő egyetlen hibapont lehet
Költség Magas szervezeti és eszközköltség

Gyakori tévhitek

Állítás Pontosítás
„A SOA egyenlő a webszolgáltatásokkal.” A SOA szemlélet; a webszolgáltatás csak egy lehetséges megvalósítás.
„A SOA mindig ESB-t jelent.” Gyakori megvalósítás, de nem szükségszerű.
„A SOA elavult, a mikroszerviz teljesen más.” A két stílus közös gyökerű; a különbség a központosítás mértéke.

Röviden

  • A SOA elosztott képességek szolgáltatásokon át történő szervezésének szemlélete.
  • A vállalati megvalósítások gyakran központi közvetítőre (ESB) és központi szabványokra épültek.
  • A mikroszerviz-stílus a SOA elveit decentralizáltabban valósítja meg.
  • A központi réteg szűk keresztmetszet és változtatási akadály lehet.

Ellenőrző kérdések

  1. Mit jelent az, hogy a SOA szemlélet, nem technológia?
  2. Hol van az „okosság” egy ESB-s SOA-ban, és hol egy mikroszerviz-rendszerben?
  3. Miért válhat a központi közvetítő szűk keresztmetszetté?

Források

Prerequisites (2)

  • monolit
  • minőségi jellemzők

Teaches (1)

  • SOA