Programiranje

Kaj je storitveno usmerjena arhitektura?

Storitveno usmerjena arhitektura (SOA) se je pojavila v začetku tega stoletja kot razvoj porazdeljenega računalništva. Pred SOA, storitve so bili razumljeni kot končni rezultat postopka razvoja aplikacij. V SOA je sama aplikacija sestavljena iz storitev. Storitve se lahko izvajajo posamezno ali v kombinaciji kot večji sestavljeni servis.

Storitve komunicirajo prek žice s pomočjo protokola, kot sta REST ali SOAP (Simple Object Access Protocol). Storitve so ohlapno sklopljen, kar pomeni, da je vmesnik storitve neodvisen od osnovne izvedbe. Razvijalci ali sistemski integratorji lahko v aplikacijo sestavijo eno ali več storitev, ne da bi nujno vedeli, kako se posamezna storitev izvaja.

Ta članek je pregled Java SOA in ključnih značilnosti storitveno usmerjene arhitekture, ki se izvaja s pomočjo spletnih storitev na osnovi SOAP. Prav tako bom na kratko primerjal SOA in mikro storitve in razpravljal o razliki med spletnimi storitvami RESTful in SOAP v Javi.

SOA in spletne storitve

SOA in spletne storitve se pogosto povezujejo, vendar niso isto. SOA je arhitektura, ki razvijalcem omogoča združevanje več aplikacijskih storitev v večjo, sestavljeno storitev. SOA je mogoče implementirati s pomočjo spletnih storitev na osnovi SOAP ali API-jev REST ali včasih s kombinacijo obeh. Pomembno je razumeti, da v SOA, a storitev je kateri koli vir na daljavo, ki se lahko odzove na zahteve. A spletna storitev se izvaja s posebnimi protokoli.

Zakaj v storitve usmerjena arhitektura?

SOA obravnava tri pogoste podjetniške izzive:

  • Hitro se odzovite na poslovne spremembe.
  • Izkoristite obstoječe naložbe v infrastrukturo.
  • Podpirajte nove kanale za interakcijo s strankami, partnerji in dobavitelji.

Podjetniška infrastruktura je različna med operacijskimi sistemi, aplikacijami, sistemsko programsko opremo in aplikacijsko infrastrukturo. Posledično so številni podjetniški sistemi sestavljeni iz zapletenih in nedoslednih aplikacij, ki ponujajo vrsto medsebojno odvisnih storitev. Obstoječe aplikacije, ki izvajajo trenutne poslovne procese, so ključnega pomena, zato je začetek od začetka ali njihovo spreminjanje občutljiv predlog. Toda podjetja morajo biti sposobna spreminjati in širiti tehnično infrastrukturo, da ustrezajo poslovnim zahtevam.

SOA in mikro storitve

Microservices je arhitekturni slog, razvit iz SOA. Obe sta porazdeljeni arhitekturi in obe ponujata ločeno paradigmo. Medtem ko je storitveno usmerjena arhitektura težja za infrastrukturo, mikro storitve ponujajo prožnejši in lažji razvojni slog. Oboje ima prednosti in slabosti, oboje pa se pogosto uporablja. Na splošno SOA pogosteje izvajajo ali vzdržujejo uveljavljena podjetja, ki imajo sredstva za podporo več formalnosti. Mikroservice pogosto nagovarjajo nove ali rastoče organizacije, ki zahtevajo gibčnost.

V primerjavi z monolitno arhitekturo je zaradi ohlapno povezane narave SOA razmeroma nemoteno priklopiti nove storitve ali nadgraditi obstoječe storitve za nove poslovne potrebe. Ponuja tudi možnost, da se storitve porabijo po različnih kanalih in da se stare aplikacije razkrijejo kot storitve, s čimer se zaščitijo naložbe v infrastrukturo.

Ker so komponente SOA tesno povezane, jih je mogoče zamenjati z minimalnim vplivom na druge komponente. Komponente lahko arhitekturi dodamo tudi na standardiziran način in jih lahko prilagodimo obremenitvi.

Kot primer razmislite, kako lahko podjetje uporabi nabor obstoječih aplikacij za ustvarjanje nove, sestavljene aplikacije dobavne verige. Medtem ko so obstoječe aplikacije raznolike in porazdeljene po različnih sistemih, je njihova funkcionalnost izpostavljena in dostopna s standardnimi vmesniki.

Matthew Tyson

Ključne značilnosti SOA

SOA je lahko tako preprost kot posamezna komponenta, ki porablja storitve, ki jih zagotavlja druga komponenta, ali tako dovršen kot nabor komponent, ki medsebojno delujejo prek poslovnega servisnega vodila, kot je MuBeSoft ESB. Ne glede na obseg je ključ do uspešne implementacije SOA uporaba čim manj zapletenosti za doseganje vaših ciljev. Vaše prvo in zadnje vprašanje mora biti vedno: Ali ta zasnova ustreza našim poslovnim zahtevam?

Ne glede na obseg ali kompleksnost je vzorec storitveno usmerjene arhitekture bolj ali manj enak:

  • Ponudniki storitev izpostavijo končne točke in opišejo razpoložljiva dejanja na vsaki končni točki.
  • Potrošniki storitev izdajajo zahteve in porabijo odgovore.
  • Ponudniki storitev ustvarjajo sporočila za obdelavo zahtev.

Izvajanje storitveno usmerjene arhitekture

Za implementacijo SOA začnete z osnovno arhitekturo storitve, nato zagotovite infrastrukturo, kar pomeni protokole in druga orodja, ki omogočajo komunikacijo in interoperabilnost. Slika 2 prikazuje diagram tipične arhitekture storitev.

Matthew Tyson

V tem diagramu se trije potrošniki sklicujejo na storitve tako, da sporočila pošljejo v servisno vodilo podjetja, ki sporočila pretvori in usmeri v ustrezno izvedbo storitve. A motor poslovnih pravil vključuje poslovna pravila v storitev ali med storitvami. A plast upravljanja storitev upravlja dejavnosti, kot so revidiranje, obračunavanje in beleženje.

Komponente v tej arhitekturi so ohlapno povezane, zato jih je mogoče izklopiti ali posodobiti z relativno minimalnim vplivom na aplikacijo kot celoto. To podjetju omogoča prilagodljivost dodajanja ali posodabljanja poslovnih procesov po potrebi. Spremembe posameznih storitev večinoma ne bi smele močno vplivati ​​na druge storitve.

SOAP vs RESTful spletne storitve

Možno je sprejeti slog SOA in ga implementirati z REST, na primer z uporabo API-ja JAX-RS ali Spring Boot Actuator, vendar ta razprava za ta članek ne spada v področje uporabe. Glejte "SOAP vs REST vs JSON" za koristno primerjavo spletnih storitev SOAP vs RESTful. Obstaja tudi nekaj prekrivanja med spletnimi storitvami RESTful in bolj lahkim slogom, povezanim z mikro storitvami.

Spletne storitve na osnovi SOAP

Spletne storitve, ki se izvajajo z uporabo SOAP, so še vedno bolj toge kot RESTful spletne storitve ali mikro storitve, vendar veliko bolj prilagodljive kot zgodnji časi SOA. Tu si bomo ogledali samo protokole na visoki ravni, potrebne za spletne storitve, ki temeljijo na SOAP.

SOAP, WSDL in XSD

SOAP, WSDL in XSD so temeljna infrastruktura izvajanja spletnih storitev na osnovi SOAP. WSDL se uporablja za opis storitve, SOAP pa je transportni sloj za pošiljanje sporočil med porabniki in ponudniki storitev. Storitve komunicirajo s sporočili, ki so formalno določena s pomočjo sheme XML (XSD). WSDL si lahko predstavljate kot vmesnik storitve (ohlapno analogen vmesniku Java). Izvajanje poteka v razredih Java, komunikacija po omrežju pa poteka prek SOAP-a. Funkcionalno bi potrošnik poiskal storitev, dobil WSDL za to storitev in nato poklical storitev s pomočjo SOAP.

Varnost spletnih storitev

Specifikacija WS-I Basic Profile 2.0 naslavlja varnost sporočil. Ta specifikacija se osredotoča na izmenjavo poverilnic, celovitost sporočil in zaupnost sporočil.

Odkrivanje spletnih storitev

Ko je temelj odkrivanja spletnih storitev, je UDDI (Univerzalni opis, definicija in integracija) izginil v zgodovino. Danes je običajno, da spletno storitev, ki temelji na SOAP, razkrijete tako, kot bi katero koli drugo storitev, prek URL-ja končne točke. Kot primer lahko uporabite vmesnik končne točke storitve JAX-WS in njegove @WebService in @WebMethod opombe.

Izdelava in uvajanje spletnih storitev

Razvijalci Java imajo več možnosti za izdelavo in uvajanje spletnih storitev, ki temeljijo na SOAP, vključno z Apache Axis2 in Spring-WS; standard Java pa je JAX-WS, Java API za spletne storitve XML. Glavna ideja JAX-WS je ustvariti razrede Java in jih pripisati, da ustvarijo zahtevane artefakte. Pod pokrovom JAX-WS uporablja več paketov Java, vključno z JAXB, splošno namensko knjižnico za vezavo razredov Java na XML.

JAX-WS razvijalcu skriva osnovno zapletenost in protokole, s čimer poenostavi postopek definiranja in uvajanja storitev SOAP na osnovi Jave. Sodobni IDE Java, kot je Eclipse, vključujejo popolno podporo za razvoj spletnih storitev JAX-WS. Specifikacija JAX-WS je bila izbrana tudi za nadaljnji razvoj v Džakarti EE.

Zaključek

Storitveno usmerjena arhitektura, implementirana s spletnimi storitvami, ki temeljijo na SOAP, zahteva bolj toge in formalne definicije storitev kot spletne storitve ali mikro storitve RESTful. Nekatere večje organizacije pa še naprej podpirajo bolj formalni slog, ki ga uveljavlja SOAP. Veliko obsežnih starih sistemov je prav tako zgrajenih na SOAP, nekateri B2B in notranji sistemi pa izberejo spletne storitve, ki temeljijo na SOAP, za bolj formalno opredeljene pogodbe o API. Ne glede na to, ali razvijate ali vzdržujete obsežen poslovni sistem, vam bo razumevanje vzorca SOA in sposobnost ocenjevanja možnosti njegovega izvajanja koristili v vaši programski karieri.

Ta zgodba "Kaj je storitveno usmerjena arhitektura?" je prvotno objavil JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found