Forum » Programiranje » Kaj je SOA?
Kaj je SOA?
dronyx ::
Ali mi zna kdo prosim na enostaven način razložiti, kaj je to SOA? Morda še najbolje kdo, ki se s tem v praksi tudi ukvarja, ker wiki definicijo znam prebrati, ne razumem pa vsega.
Kakor jaz razumem tole, gre bolj za filozofijo, kako naj aplikacija deluje (podpora storitvam) in tu ne gre za to, da bi to lahko enostavno kupil kot nek produkt (recimo application server).
Ne vem pa, če vzamem neko aplikacijo, napisano v poljubnem razvojnem okolju, kaj so tisti kriteriji, po katerih lahko rečeš, da je ta aplikacija pa tipa SOA?
Jaz povsod o tem nekaj poslušam, ampak v praksi pa tega še nisem videl.
Kakor jaz razumem tole, gre bolj za filozofijo, kako naj aplikacija deluje (podpora storitvam) in tu ne gre za to, da bi to lahko enostavno kupil kot nek produkt (recimo application server).
Ne vem pa, če vzamem neko aplikacijo, napisano v poljubnem razvojnem okolju, kaj so tisti kriteriji, po katerih lahko rečeš, da je ta aplikacija pa tipa SOA?
Jaz povsod o tem nekaj poslušam, ampak v praksi pa tega še nisem videl.
- spremenil: dronyx ()
b0j3 ::
Ti dam kar PR naše firme:
SOA lahko razumemo kot nadaljevanje iskanja "sveteg grala" informatike
- to je ponovnega recikliranja že narejenih zadev (v primeru SOA so
to servisi, pri OOP pa objekti). Mnogi pod SOA razumejo neke vrste RPC
("remote procedure call"), ki uporablja večinoma spletne servise (npr.
izračun neke vrednosti, dostavo podatkov, izvedbo neke aktivnosti
itd), SOA pa lahko tudi opredelimo da deluje po vzorcu
"request-and-replay". S tega vidika je SOA značilno usmerjena na
dekompozicijo poslovnih funkcij, ki jih nato lahko ponovno uporabimo v
drugih procesih (npr. izločimo servis/storitev za izračun bonitete
stranke in iz tega naredimo servis). SOA lahko pojmujemo tudi kot
sinhroni "command-and-control" vzorec.
Če se išče močno povezavo v poslovnih procesih, torej v situacijo, ko
so vsi koraki poslovnega procesa jasni in morajo biti pod enotno
kontrolo, potem je SOA vzorec postavitve arhitekture zelo primeren.
SOA arhitektura je učinkovita tudi v naslednjih primerih:
* Vertikalno interakcijo med različnimi hiarhijami pri funkcionalni
dekompoziciji
* Funkcijske procese tipa "request-and-reply", kot npr. uporabnik čaka
na odgovor
* Procese, ki so transkacijske narave in zahtevajo "commit" in
"rollback" funkcionalnosti
* Dodajanje vsebine v podatke/sporočila ("data enrichment"), da se
popolni vsebina do zahtevanega, formalnega nivoja
Če povzamem - s SOA filozofij oz. arhitekturo želijo podjetja
pridobiti strateško prednost, saj jim omogoča a) večkratno
koriščenje servisov v različnih poslovnih procesih (beri znižajo se
stroški razvoja) in b) hitrejše prilagajanje spremembam v poslovnem
okolju, saj se skrajša čas razvoja (najpomembnejši vzrok je
največkrat) nižja kompleksnost sistema.
Poleg SOA koncepta je pomemben še EDA (event driven arhitecture), ki
pa ima svoje prednosti in uporabo.
Pri nas verjamemo, da je SOA smiselno uvajati v moderne organizacije, vendar
je najpomembnejše, da se tej arhitekturi prilagodi celotna organizacija in da SOA ni samo nov IT "buzzword" ali marketinški izraz.
Če te zanima kaj bolj podrobno, pa pod zasebno.
SOA lahko razumemo kot nadaljevanje iskanja "sveteg grala" informatike
- to je ponovnega recikliranja že narejenih zadev (v primeru SOA so
to servisi, pri OOP pa objekti). Mnogi pod SOA razumejo neke vrste RPC
("remote procedure call"), ki uporablja večinoma spletne servise (npr.
izračun neke vrednosti, dostavo podatkov, izvedbo neke aktivnosti
itd), SOA pa lahko tudi opredelimo da deluje po vzorcu
"request-and-replay". S tega vidika je SOA značilno usmerjena na
dekompozicijo poslovnih funkcij, ki jih nato lahko ponovno uporabimo v
drugih procesih (npr. izločimo servis/storitev za izračun bonitete
stranke in iz tega naredimo servis). SOA lahko pojmujemo tudi kot
sinhroni "command-and-control" vzorec.
Če se išče močno povezavo v poslovnih procesih, torej v situacijo, ko
so vsi koraki poslovnega procesa jasni in morajo biti pod enotno
kontrolo, potem je SOA vzorec postavitve arhitekture zelo primeren.
SOA arhitektura je učinkovita tudi v naslednjih primerih:
* Vertikalno interakcijo med različnimi hiarhijami pri funkcionalni
dekompoziciji
* Funkcijske procese tipa "request-and-reply", kot npr. uporabnik čaka
na odgovor
* Procese, ki so transkacijske narave in zahtevajo "commit" in
"rollback" funkcionalnosti
* Dodajanje vsebine v podatke/sporočila ("data enrichment"), da se
popolni vsebina do zahtevanega, formalnega nivoja
Če povzamem - s SOA filozofij oz. arhitekturo želijo podjetja
pridobiti strateško prednost, saj jim omogoča a) večkratno
koriščenje servisov v različnih poslovnih procesih (beri znižajo se
stroški razvoja) in b) hitrejše prilagajanje spremembam v poslovnem
okolju, saj se skrajša čas razvoja (najpomembnejši vzrok je
največkrat) nižja kompleksnost sistema.
Poleg SOA koncepta je pomemben še EDA (event driven arhitecture), ki
pa ima svoje prednosti in uporabo.
Pri nas verjamemo, da je SOA smiselno uvajati v moderne organizacije, vendar
je najpomembnejše, da se tej arhitekturi prilagodi celotna organizacija in da SOA ni samo nov IT "buzzword" ali marketinški izraz.
Če te zanima kaj bolj podrobno, pa pod zasebno.
noraguta ::
Ne vem pa, če vzamem neko aplikacijo, napisano v poljubnem razvojnem okolju, kaj so tisti kriteriji, po katerih lahko rečeš, da je ta aplikacija pa tipa SOA?
tko na hitr
večinoma gre tu za princip , da so deli aplikacije šibko povezani ob enem pa omogočajo enostaven in standardizirano komunikacijo(spletne storitve) med njimi. tipičen primer poslovna logika kot servis(web servis) komunikacija z klijenti ter drugo poslovno logiko pa poteka prek SOAPa.
Pust' ot pobyedy k pobyedye vyedyot!
Tody ::
SOA ni aplikacija oz tip aplikacije ampak je večji sistem aplikaciji povezan med sabo. Podobno kot pri računalnikih, ne moreš reči da je procesor PC, ampak skupaj z ramom,matično in ostalo periferijo tvorijo skupaj PC.
Prav tako ta arhitektura daja navodila kako bi se morale aplikacije povezovat med seboj. Praktično katerokoli aplikacijo lahko spremeniš v SOA če ji dodaš možnost sporočanja in sprejemanja.
Tipične SOA arhitekture srečaš pri vseh online nakupih, najlepši primer je pri letalskih kartah. Ko ti zahtevaš letalsko karto, se sistem seveda ne poveže na bazo in naredi query in vidi če je zadeva prosta in koliko stane, ampak da zahtevo drugemu sistemu, ki potem naredi poizvedbo v svojem okolju in kot rezultat vrne željene vrednosti torej cena karte in ali je zadeva prosta ali ne.
Ta povezava med tema dvema sistemoma se imenuje SOA. Seveda je vzadaj še marsikaj ampak tko za občutek.
Prav tako ta arhitektura daja navodila kako bi se morale aplikacije povezovat med seboj. Praktično katerokoli aplikacijo lahko spremeniš v SOA če ji dodaš možnost sporočanja in sprejemanja.
Tipične SOA arhitekture srečaš pri vseh online nakupih, najlepši primer je pri letalskih kartah. Ko ti zahtevaš letalsko karto, se sistem seveda ne poveže na bazo in naredi query in vidi če je zadeva prosta in koliko stane, ampak da zahtevo drugemu sistemu, ki potem naredi poizvedbo v svojem okolju in kot rezultat vrne željene vrednosti torej cena karte in ali je zadeva prosta ali ne.
Ta povezava med tema dvema sistemoma se imenuje SOA. Seveda je vzadaj še marsikaj ampak tko za občutek.
DavidJ ::
To, kar opisuje Tody, so spletne storitve (web services). Spletne storitve so (trenutno edini) način implementiranja SOA, vendar sam SOA koncept ni na to vezan in je lahko realiziran tudi na drugačen način, čeprav tega še nisem videl.
Ravno v članku, ki sem ga polinkal zgoraj, se avtor "sprašuje", ali je SOA le to -- spletna storitev ali nekaj več. Navednice so uporabljene ravno zato, da avtor pokaže razliko med "navadnimi" spletnimi storitvami in SOA.
Ravno v članku, ki sem ga polinkal zgoraj, se avtor "sprašuje", ali je SOA le to -- spletna storitev ali nekaj več. Navednice so uporabljene ravno zato, da avtor pokaže razliko med "navadnimi" spletnimi storitvami in SOA.
Poslovni informacijski sistemi so bili v preteklosti največkrat načrtovani funkcionalno. Takšni sistemi, včasih imenovani tudi silosi, vsebujejo velike količine podatkov in množico funkcionalnosti. Njihov osnovni problem je v tem, da naslavljajo podporo določeni funkciji oz. aktivnosti, ne pa celotnemu poslovnemu procesu.
Celoviti poslovni procesi morajo torej delovati nad več takšnimi aplikacijami - silosi. S
tehničnega vidika to pomeni integracijski problem, kjer je potrebno ustrezno povezati različne
aplikacije, izdelane v različnih tehnologijah in poskrbeti za ustrezno zaporedje izvajanja. Pri
tem ne gre pozabiti, da je tudi funkcionalnost takega poslovnega procesa razpršena med več
obstoječih sistemov - z drugimi besedami, funkcionalnost je fragmentirana in tesno sklopljena.
Izhajajoč iz tega spoznanja je očitno, da je že razvoj poslovnih procesov, ki morajo povezati
množico obstoječih sistemov, zamuden in kompleksen. Enako velja za dopolnjevanje in spreminjanje. Več kot očitno je, da na tak način informatiki ne moremo zadostiti potrebam po
fleksibilnih in hitro spreminjajočih se poslovnih procesih.
Storitvene arhitekture ponujajo odgovor na ta problem in ponujajo načine razvoja in
integracije poslovnih aplikacij na osnovi modularnih, šibko sklopljenih storitev. Ključni
poudarek storitvenih arhitektur je torej na definiciji načina integracije avtonomnih obstoječih
ali novo razvitih aplikacij - imenovanih storitev - v celovit sistem s posebnim poudarkom na
modelu komunikacije, podpori različnih transportnih mehanizmov, zagotavljanju varnosti in
transakcijske identitete, zanesljivosti sporočanja ter koordinaciji in kompoziciji.
S tehnološkega vidika storitvene arhitekture niso nič posebnega. So le posebna vrsta
porazdeljenih sistemov, pri katerih so komponente sistema storitve.
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')
- Yoda ('The Empire Strikes Back')
dronyx ::
Mene ob besedi integracija vedno zaboli glava, ker to običajno pomeni samo težave in visoke stroške, da to sploh deluje. Za firme, ki se s tem ukvarjajo, je pa to jasno dober posel, ker dela nikdar ne zmanjka zaradi naglega razvoja IT in potrebe po stalnem prilagajanju različnih aplikacij, ki morajo med seboj komunicirati.
To, da razbiješ informacijske "silose" na manjše, lažje obvladljive module, ki "okolju" potem ponujajo logično zaključene storitve (tako, kot imaš pri objektno orientiranem programiranju objekte, public in private funkcije, procedure, lastnosti...), je po moje v redu, ampak samo če je vse skupaj tako standardizirano, da se ti potem ne rušijo domine, ko nekaj spremeniš v sistemu. Namreč SOA, če preberem na hitro in površno, se prebere kot ena sama integracija na N-to potenco.
To, da razbiješ informacijske "silose" na manjše, lažje obvladljive module, ki "okolju" potem ponujajo logično zaključene storitve (tako, kot imaš pri objektno orientiranem programiranju objekte, public in private funkcije, procedure, lastnosti...), je po moje v redu, ampak samo če je vse skupaj tako standardizirano, da se ti potem ne rušijo domine, ko nekaj spremeniš v sistemu. Namreč SOA, če preberem na hitro in površno, se prebere kot ena sama integracija na N-to potenco.
Zgodovina sprememb…
- spremenil: dronyx ()
noraguta ::
je po moje v redu, ampak samo če je vse skupaj tako standardizirano, da se ti potem ne rušijo domine, ko nekaj spremeniš v sistemu.temu se reče Loose coupling @ Wikipedia .
Pust' ot pobyedy k pobyedye vyedyot!
slitkx ::
Ima morda kdo članek, ki je bil včasih dosegljiv na zgornji povezavi http://lisa.uni-mb.si/~juric/SOA_ss.pdf?
Majkl ::
@pixel:
Poskusi če je celotna vsebina na:
http://cot.uni-mb.si/cotl/pomlad2005/ju...
Če pa daš iskalni niz: Celoviti poslovni procesi morajo torej delovati nad več takšnimi aplikacijami - silosi.
najdeš tudi malo plagiata ;). Pa še citirala ga ni.
http://eprints.fri.uni-lj.si/1058/1/Ba%...
Poskusi če je celotna vsebina na:
http://cot.uni-mb.si/cotl/pomlad2005/ju...
Če pa daš iskalni niz: Celoviti poslovni procesi morajo torej delovati nad več takšnimi aplikacijami - silosi.
najdeš tudi malo plagiata ;). Pa še citirala ga ni.
http://eprints.fri.uni-lj.si/1058/1/Ba%...
FMPOV
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Sons of Anarchy - serija (strani: 1 2 )Oddelek: Sedem umetnosti | 22659 (1855) | Likalnik |
» | Domena kupljena, kako naprej?Oddelek: Omrežja in internet | 4999 (4099) | Rokic |
» | Vpis DNS strežnika v vrhnji DNSOddelek: Omrežja in internet | 8966 (7457) | kronik |
» | arnesovo preverjanje domenOddelek: Pomoč in nasveti | 2211 (2009) | jsmith |
» | DNS ne delujejo?!Oddelek: Omrežja in internet | 1584 (1346) | Bakunin |