Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
PRINCIPI SOAInformacioni sistemi 2
dr Miloš CVETANOVIĆdr Miloš CVETANOVIĆdr Vladimir BLAGOJEVIĆ
Aplika‐centričnopMali broj korisnikaOgraničeni poslovni procesi
Poslovni kontekst
Finansije
I t i Vezano zaNabavka
Integraciona Arhitektura
Vezano zaEAI proizvođača
RedudansaDistribucijaProizvodnja
Preklopljeni resursiPreklopljeni proizvođači
Poslovna funkcionalnost je dupliciranak j lik iji k j j ht
EAI “dovodi do pojave” aplikacionih silosauz nedostatak dadolazi do redudanse u podacima i funkcionalnosti.
u svakoj aplikaciji koja je zahteva.
Servi‐centričnoVeći broj korisnika servisaVeči broj poslovnih procesa
Poslovni kontekst
Servis
ServisFinansije
Servisna arhitektura
Servis
Servis
NabavkaDeljeni servisi
DistribucijaProizvodnja
Više diskretnih resursaViše servis proizvođača
Servis virtuelizuje kako se određena usluga sprovodi, kao i to, gde i od strane koga su resursi obezbeđeni, i time omogućava da veći broj proizvođača i korisnika učestvuju u deljenim poslovnim aktivnostima.
SOA strukturira posao i njegove sistemekao skup usluga koje se nude kao servisi, organizovanih u vidu servisne arhitektureorganizovanih u vidu servisne arhitekture
Zašto SOA?Omogućava fleksibilnu federaciju poslobnih procesa
Omogućava virtuelnu federaciju učesnika koji sarađuju u poslovnom procesu
Omogućava alternativne implementacije
Omogućavaponovnu upotrebu servisa
koji sarađuju u poslovnom procesu
Identifikacija Preuzimanje
Servis
ServisNarudžbina
Maloprodaja
Servis
Servis
MagacinLogistika
Proizvodnja D
Servis Servis
Servis
Servis Servis Servis
Omogućavavirtuelizaciju poslovnih resursa
Omogućavaagregaciju od većeg broja proizvođača
Proizvodnja Dostupnost
Zašto SOA? Omogućava optimizaciju poslovnih procesa i kompaniju u realnom vremenu (RTE)
BPM izražen u vidu servis proizvođača i korisnika
Celokupan proces
proizvođača i korisnika
Servisi od većeg broja dobavljačaKompanijaServisi ka većem broju korisnika
Pametni uređaji
Prodavnica ‐ POSMobilni
Agenti posrednici
Interni sistemiStandardizovani servisimplementiran od većeg broja dobavljača
Jedan servis
Portal
implementiran od većeg broja dobavljačaImplementiran za veći broju korisnika
Zašto SOA? Omogućava strukturalna poboljšanja
ERP X Proces Z Partner A Proces Y
Servis
Mogućnost standardizacije Konzistentnost infromacija
Konzistentost polisanpr. ServisDetalji korisnikaj _
Konsolidacija/Proces odabira
Smanjenje uticajaprilikom promene
Enkapsulacijaimplementacionekompleksnosti
CRM CRM Proizvodni npr Veći broj izvoraERP Z CRMSistem 2
CRMSistem 1
ProizvodniSistem
Racionalizacija polisa i njihova evolucija
npr. Veći broj izvora za detalje o koirsniku
Virtuelizacija resursa
Definicija SOA
• SOA je model softverske arhitekture– kod koje su poslovne funkcionalnosti logičkikod koje su poslovne funkcionalnosti logički grupisane i enkapsulirane u vidu:
• samostalnih, različitih i ponovo upotrebljivih jedinicanazvanih servisi od kojih svaki
• predstavlja poslovni koncept visokog nivoa• može biti distribuiran preko računarske mreže• može biti distribuiran preko računarske mreže• može biti ponovo upotrebljneradi kreiranja nove poslovne aplikacija
• sadrži ugovor sa specifikacijom namene, funkcionalnosti, interfejsa (grubo granulisan), ograničenja, upotrebe
... neke poslovne funkcionalnostiServisi su autonomne, diskretne i ponovno upotrebljiive jedinice poslovnih funkcionalnosti koje svoje mogućnosti izlažu u vidu svojih potpisa (ugovora). Servisi mogu biti nezavinosno razvijani, premeštani, skalirani čak i u vreme izvršavanja.
Šta je servisna arhitektura?• Kolekcija servisa servisi
• Klasifikovanih u tipove tip tiptip
• Organizovanih u slojeve• Organizovanih u slojeve
• Usmereni arhitekturnimobrascima i polisama
SOA je evolutivni korak
• u pogledu: 1. ponovne upotrebljivosti
K
Distribuirani objekti
Servisi
p p j
Moduli
Komponente
b i i
Servisi
2. mogućnosti komunikacije
Zaštićena tehnologija
Web servisi
Servisna magistrala
3. distribucije komunikacije
Centralizovano
Servisna magistrala
Svako sa svakim
SOA organizovana u vidu slojeva
Razlozi za postojanje slojeva Primer slojevap j j j1. Fleksibilna kompozicija.2. Ponovna upotreba. 3. Funkcionalna standardizacija u nižim slojevima4 Laka prilagodljivost u višim slojevima
Prezentacija i poslovni tokovi
4. Laka prilagodljivost u višim slojevima5. Razdvajanje odgovornosti.6. Polise mogu varirati zavisno od sloja.
Kompozitni servisi
Osnovni servisi
Dostupni APIp
Osnovni tipovi servisa
• Osnovni servisi:Data centrični i logi centrični servisi– Data‐centrični i logi‐centrični servisi
– Enkapsuliraju ponašanje podataka, modela podataka i obebeđuju konzistentnost podataka (samo na jednom mestu).
– Osnovni servisi su bez konteksta (stateless) sa visokim stepenom– Osnovni servisi su bez konteksta (stateless) sa visokim stepenom ponovne upotrebljivosti.
– Predstavljaju osnovu za zrelost SOA i obično se grade na osnovu postojećih APIp j
• Kompozitni servisi:– Omogućavaju harmonizovani pristup
promenljivim tehnologijama osnovnih servisa p j g j(posredinici, adapteri, fasade, servisi za dodatne funkcionalnosti).
– Enkapsuliraju specifične poslovne tokove ili orkestriraju druge servise.
SOA principi
• Standardizovani potpisi (ugovori) servisa• Nezavinost (Loose Coupling)• Apstrakcija (Abstraction)• Apstrakcija (Abstraction)• Ponovna upotrebljivost (Reusability)• Samostalnost (Autonomy)• Bez konteksta (Statelessness)• Mogućnost otkrivanja (Discoverability)• Mogućnost kombinovanja (Composability)• Mogućnost kombinovanja (Composability)
Standardizovani potpis servisap p
• “Services within the same service inventory are in l h h dcompliance with the same contract design
standards." S i i k i t t i i k k bi• Servisi koriste potpis servisa kako bi:– Izrazili svoju namenuIzrazili svoje mogućnosti– Izrazili svoje mogućnosti
• Koristiti formalne, standardizovani servisne potpise• Fokus na oblasti poput:• Fokus na oblasti poput:
– Funkcionalni iskaz– Reprezentacija podatakaReprezentacija podataka– Polise
Nezavisnost
• “Service contracts impose low consumer coupling requirements and are themselves decoupled from their surrounding environment."
• Kreirati specifične tipove odnosa unutar i van granica servisa sa konstantnim naporom da se smanji (“popusti”) zavisnost među njima– Potpis servisa– Implementacija servisa– Korisnici servisa
Apstrakcijap j
• “Service contracts only contain essential information and y finformation about services is limited to what is published in service contracts”
• Izbegavati proliferaciju nepotrebnih informacija o servisu(meta‐podaci).(meta podaci).
• Sakriti detalje implementacije servisa što je moguće više.– Omogućava i očuvava nezavinosnost odnosa– Igra značajnu ulogu u pozicioniranje i dizajn kompozicija servisa
Ponovna upotrebljivostp j
• “Services contain and express agnostic logic and can be positioned as reusable enterprise resources."
• Ponovno upotrebljivi servisi imaju sledeće karakteristike:karakteristike:– Definisani uz agnosticizam funkcionalnog konteksta– Logika je veoma generičkaLogika je veoma generička– Imaju generički i proširiv potpisMože im se pristupati konkurektno– Može im se pristupati konkurektno
Samostalnost
• "Services exercise a high level of control over their underlying runtime execution environment."
• Predstavlja mogućnost servisa da obavi svoju funkcionalnost nezavinosno od uticaja okruženja
• Da bi postigli samostalnost, servisi moraju biti izolovani
• Primarne koristi– Povećana pouzdanost– Predvidivost ponašanja
Bez konteksta
• "Services minimize resource consumption by deferring the management of state information when necessary."
• Uključiti proširenja za odloženo upravljanje stanjima u okviru dizajna servisastanjima u okviru dizajna servisa
• CiljeviPovećana skalabilnost servisa– Povećana skalabilnost servisa
– Podrška dizajnu agnostičke logike i poboljšanje ponovne upotrebljivostponovne upotrebljivost
Mogućnost otkrivanja
• "Services are supplemented with communicative
g j
meta data by which they can be effectively discovered and interpreted."
• Potpis servisa sadrži odgovarajuće meta‐podatke za oktrivanje koji takođe služeza oktrivanje koji takođe služeda korisnicima pojasne namenu i mogučnosti
• Čuvati meta‐podatke u registru servisa• Čuvati meta‐podatke u registru servisaili profilu dokumenata
Mogućnost kombinovanjag j
• "Services are effective composition participants, regardless of the size and complexity of theregardless of the size and complexity of the composition."
• Obezbediti da servisi mogu da učestvujuObezbediti da servisi mogu da učestvujuu višestrukim kompozicijama u cilju rešavanja većeg broja složenijih problemaP i i blji i• Povezano sa principom ponovne upotrebljivosti
• Izvršavanje servisa treab da bude efikasno u smislu prilagođenosti individualnog izvršavanjaprilagođenosti individualnog izvršavanja
• Fleksibilnost u potpisima servisa kako bi bili podržani zahtevi za razmenom različitih tipova podataka za slične funkcije
Primena SOA ‐ vođenjej Vođenje je program koji omogućava da ljudi rade ono što “treba”
U skaldu sa softverom vođenje kontroliše razvoj i funkcionisanje softvera
Cilj U t iti đ j SAO i ij (SOA db ) k ji ć lj ti
U skaldu sa softverom, vođenje kontroliše razvoj i funkcionisanje softvera.
Cilj: Uspostaviti vođenje SAO organizacije (SOA odbor) koji će upravljati SOA naporima i dekomponovati usluge na disjunktne servise
Primena SOA ‐ vođenjej
• PoliseDefinisanje pravila regulacija dobrih praksi– Definisanje pravila, regulacija, dobrih praksi
– Mora biti pokriven celokupni životni vek servisa• Procesi
– Uspostaviti polise– Proes vođen sistemom (verzionisanje, testiranje...)– Proces vođen ljudima (zahtevi, procene rizika...)Proces vođen ljudima (zahtevi, procene rizika...)
• Metrike– Mere ponovne upotrebljivosti servisa, saglasnost sa polisamapolisama
– Organizacija– Vođenje mora biti od strane SAO odboara koji mora imati predstavnike iz različitih organizacionih jedinicaimati predstavnike iz različitih organizacionih jedinica
Primena SOA ‐ izazovi
• Servisna orjentisanost• Ponovna upotreba• Deljenje odgovornosti• Deljenje odgovornosti• Povećana kompleksnot!
Poslovna funkcionalnost treba da bude dostupna u vidu servisa. Potpis servisa treba da bude fiksiran.
Implementirani servis mora da bude dizajniran uzimajući u obzir ponovnu upotrebu. Ovo dovodi do povećanog opterećenja.
Potencijalni korisnici servisa moraju biti uključeni u proces di j i i i i i j di j idizajna i time imati uticaj na dizajn servisa.
Zaključakj
• Ako se uradi korektno, SOA nije “samo još jedna arhitekturalna priča”
• SOA pokušava da prebrodi razliku između biznisa i tehnologije promovišući poslovnu odgovornost (sve se vrti oko upravljanja promenama)
• SOA– Je kompleksna– Zahteva vođenje– Zahteva da se menadžment uključi– Zahteva posvećenost resursa (ljudstvo i novac)