Transcript Slide 1

Razvoj aplikacija sa servisnoorijentisanom arhitekturom (SOA)
Prof. dr Angelina Njeguš
SOA koncept
Osnovni zadatak svake ozbiljnije softverske arhitekture je da omogući maksimalnu
fleksibilnost i proširivost
Fleksibilnost i proširivost znantno pojednostavljuju životni ciklus poslovnih aplikativnih
sistema za sve zainteresovane strane (stakeholders) koji u njemu učestvuju (krajnji
korisnici, naručioci, softverski arhitekte, razvojni inženjeri, testeri i dr.)
Pojednostavljenje životnog ciklusa ogleda se u mogućnosti brze reakcije na promene
u poslovnim zahtevima, modularnosti, konfigurabilnosti, robusnosti i dr.
Servisno-orijentisana arhitektura (Service-Oriented Architecture, SOA) predstavlja
rezultat evolucije softverske industrije na području postizanja maksimalne
fleksibilnosti i proširivosti.
Postoje različite definicije SOA koncepta, mada se većina slaže da servisnoorijentisana arhitektura predstavlja arhitekturalni stil koji promoviše primenu
labavo povezanih servisa kako bi osigurao maksimalnu poslovnu fleksibilnost
na interoperabilan i tehnološki nezavisan način.
SOA koncept
Važno je primetiti odnos između fleksibilnosti i ponovne upotrebljivosti s jedne strane,
i količine programskog koda koji se bavi povezivanjem i komunikacijom sa druge
strane
–
–
Takav programski kod je, u većini slučajeva, vezan za određenu tehnologiju, komplikovan i
teško se održava, što drastično smanjuje fleksibilnost, interoperabilnost i ponovnu
upotrebljivost
Noviji tehnološki koncepti donose smanjenje količine programskog koda koji se bavi
povezivanjem i komunikacijom kroz dislociranje koda u infrastrukturne komponente –
čime su komponente poslovne logike oslobođene detalja koji ne pripadaju poslovnoj logici,
što ih čini ponovo upotrebljivim u više različitih poslovnih procesa
Iz navedenog je jasno kako SOA predstavlja arhitekturalnu paradigmu primarno
vezanu uz softverski dizajn, a ne uz tehnologiju
Prihvatanje SOA koncepta vodi ka promeni prstupa u pisanju aplikacija
–
Pojam aplikacije evoluira u koncept kompozicije i grupisanja labavo povezanih, usko
definisanih i na standardima utemeljenih servisa u veće i složenije celine
SOA se temelji na servisima kao osnovnim gradivnim jedinicama, a servisi su
poslovna kategorija (npr., obrada platnog naloga, autorizacija plaćanja
kreditnom karticom, generisanje fakture itd.)
Zašto SOA?
U prošlosti, kompanije su imale linearne poslovne procese,
dok danas isti ti poslovni procesi su razbijeni i odvijaju se
na različitim mestima (npr. klijent popunjava porudžbenicu
preko Web-a; poslovne servise dele različita odelenja u
kompaniji; dobavljač upravlja zalihama kompanije; ili
isporučivanje su autsorsing (outsourcing) itd.)
Zašto sistemi treba da budu fleksibilni?
– Ekonomija – globalizacija tržišta, nova tržišta, nova radna snaga
i novi konkurenti neminovno dovode do toga da kompanije
moraju brzo da se prilagođavaju (nekada su kompanije retko
menjale svoje poslovne procese, a danas su te promene
mesečne ili čak nedeljne ili pak dnevne)
– U prošlosti su menadžeri bili fokusirani uglavnom na smanjenje
troškova, dok se danas CEO suočava sa problemom
povećanja odzivnosti na sve veći rast potreba klijenata,
odnosno fokus je na povećanju prihoda (ne znači da je danas
smanjenje troškova izgubilo važnost, već se pronalazi način da
se postojeća investicija najbolje upotrebi, tj. razmatra se
ponovna upotrebljivost)
SOA omogućava tu fleksibilnost i ona postaje krucijalna za
tzv. On Demand Business.
– On Demand Business podrazumeva da preduzeće čiji su
poslovni procesi – integrisani kroz odelenja kompanije i sa
ključnim partnerima, dobavljačima i klijentima – mogu brzo
i agilno da se odazivaju novim ili promenljivim zahtevima
klijenata, prilikama na tržištu i spoljnim pretnjama.
– Poslovanje koje fleksibilno reaguje na zahteve svog okruženja
zove se On Demand Business.
Koje su barijere poslovne fleksibilnosti i
ponovne upotrebljivosti?
Poslovna fleksibilnost danas zahteva IT
fleksibilnost
– IT fleksibilnost je vrlo teška i skupa sa
današnjim postojećim sistemima
– Na primer, na slici se vidi infrastrukutra
nekog sistema, koji organizaciono i
haotično raste bez jasnih i prepoznatljivih
standarda, konekcije između delova su
nefleksibilne, teško ih je izmeniti, skupe su,
a njihove izmene zahtevaju dosta vremena
– Rešenje je prelazak na SOA
Barijere su:
– Nedostatak standarda u poslovnim
procesima
– Ograničene arhitekturalne politike i procesi
– Redundantni linije poslovnih potreba nabavka više poslovnih rešenja dovodi do
dupliranja procesa u organizaciji
Fleksibilan biznis zahteva fleksibilan IT
Vaše poslovanje je fleksibilno onoliko koliko je fleksibilan vaš IT! – IT podržava sve što vaša
komanija radi i ukoliko se on ne može brzo i efikasno promeniti, onda ne može ni vaš biznis.
Danas ne možete da priuštite da budete nefleksibilni!
–
–
–
prvo možete početi sa jednim potpunim pogledom na vaše poslovanje
Slomite vaše poslovanje na komponente i odlučite koje komponente su troškovno efektivne
Optimizujte prioritetne procese tako što ćete ih distribuirati najboljim provajderima servisa (service providers)
SOA premošćava ovaj jaz i omogućava da koristite IT investiciju na jedan fleksibilan način.
Evolucija preduzeća
Arhitekturalna evolucija u preduzećima se kreće prema On Demand Business i tehničkoj agilnosti
–
–
–
–
–
–
Monolitna arhitektura – podaci, UI, obrada sve se nalazi na jednom sistemu. Npr., mainframe ili DOS koji siromašno radi sa više
korisnika
Podrutine i pozivi udaljenim procedurama – npr. RPC (inicira klijent tako što šalje poruku sa zahtevom poznatom udaljenom serveru
da izvrši određenu proceduru koristeći date parametre, a zatim se odziv šalje klijentu gde aplikacija nastavlja sa svojim procesom)
Pozivanje udaljenih objekata – uvođenje koncepta poslovnih objekata – delova koda koji uključuju podatke i ponašanja koji mogu da
menjaju u zavisnosti od konteksta.
Procesiranje poruka – objektne tehnologije su uglavnom usko spregnute te su razvijene tehnologije messaging za slabo spregnute
aplikacije
Enterprise Application Integration, EAI – integracija skupa računarskih aplikacija preduzeća korišćenjem softverskih arhitekturalnih
principa. Obuhvata metodologije kao što su OO programiranje, komunikacija distribuiranih programa korišćenjem brokera poruka (npr.
CORBA, COM+), modifikacija ERP rešenja da reflektuju nove ciljeve, distribuiranje podataka preko XML-a, middleware, message
quiuing i drugi pristupi
SOA – omogućana otvorenim standardima
Šta je servisno-orjentisana arhitektura?
Arhitekturalni stil i princip projektovanja kod razvoja i integracije aplikacija
Uključuje:
–
–
–
–
Arhitekturu koja podstiče otvorene standarde i prikaz softverskih elemenata kao servisa
Fokus je na sklapanju (assembly) aplikacije pre nego na detaljima implementacije
Objektno-orjentisane, proceduralne, centrirane oko podataka pristupe za implementaciju
rešenja (servisi su obično implementirani korišćenjem neke od ovih tehnologija)
Set arhitekturalnih principa i paterna kao što su modularnost, enkapsulacija, labava
spregnutost, ponovna upotrebljivost, kompozitna implementacija itd.
Različite SOA perspektive
Sa biznis perspektive, SOA je skup poslovnih
IT servisa
Sa perspektive IT arhitekture, servisi su deo
celokupne arhitekture koju čine provajder
servisa (service provider), konzumator
(consumer) i opis interfejsa servisa (interfacebased service description)
Sa perspektive implementacije, ovi servisi su
implementirani upotrebom otvorenih standarda
i protokola kao što su Web servisi
SOA teži da približi biznis i IT – perspektive arhitekture i implementacije
omogućavaju fleksibilno i agilno korišćenje poslovnih servisa
Šta je servis?
Servis predstavlja diskretnu jedinicu ponovo upotrebljive poslovne (ili
tehničke) funkcije
Servisi su:
– Kompozitni (composable)
– Slabo spregnuti (loosely coupled) – servisi su definisani interfejsima nezavisnih od
implementacije. Konzumer servisa će zavisiti samo do interfejsa kod poziva servisa. Labava
spregnutost promoviše fleksibilnost u izmeni implementacije servisa bez uticaja na
konzumera servisa
– Lokaciono transparentni (location transparent)
– Interoperabilni i pristupačni nezavisno od implementacije ili protokola prenosa –
konzumeri i provajderi servisa će biti implementirani na različitim platformama, komunikacioni
protokoli koji podržavaju interakcije servisa treba da budu kompatibilni sa različitim
platformama, što ističe ulogu otvorenih standarda (npr. XML ili konkretne WebSphere MQ
komunikacione tehnologije)
Servisi su:
– Ponuđeni od strane provajdera servisa (Service Providers)
• Objavljuju interfejse i politike
– Korišćeni od strane konzumera servisa (Service Consumers)
• Pouzdani, bezbedni
– Posredovani od strane medijatora servisa (Service mediators)
• Obezbeđuju proširivo otkrivanje, selekciju, merenje, nadgledanje i dr.
Opis servisa
Servisi su opisani korišćenjem standardizovanih interfejsa (metapodaci)
–
–
Definiše servis, njegove operacije, ulazne i izlazne parametre
Definiše kako se servis preuzima i njegovu lokaciju (service endpoint)
Postojećoj aplikaciji se može dodeliti servis ‘façade’
–
Façade izlaže funkcionalnost aplikacije kao servis
Web Services Description Language (WSDL) je standard koji se koristi za opisivanje
Web servisa
–
–
WSDL je baziran na XML-u
WSDL je jedan od mogućih standarda za opisivanje servisa
Registar servisa
Registar servisa (service registry) omogućava
organizacijama da objavljuju (publish) i pronalaze
(discover) servise
Organizacije mogu da objave (register) skup servisa tako
da ih njihovi interni ili spoljni poslovni partneri mogu
pronaći
Registar servisa je jedan repozitorijum publikovanih
servisa (slično Yellow Pages koji omogućava pretragu
usluga)
Na slici desno je prikazan dijagram koji se koristi za
opisivanje SOA
– SOA definiše tri ključne role: Service Provider, Service
Consumer i Service Registry i operacije koje treba da
izvršavaju
– SOA ne definiše određeni skup tehnologija. Prikazani na
dijagramu SOAP, WSDL i UDDI, opisuju jednu moguću
implementaciju SOA – implementaciju koja koristi Web
servise.
Universal Discovery, Description, Integration (UDDI)
registar omogućava organizacijama da publikuju i
pronalaze Web servise
– UDDI je jedan framework koji je nezavisan od platforme i služi
za opisivanje servisa, otkrivanje poslovanja i integrisanje
poslovnih servisa preko Interneta
– Karakteristike su:
•
•
•
direktorijum za skladištenje informacija o Web servisima
Podrška za otkrivanje servisa
Sredstvo za uspostavljanje relacije između provajdera i konzumera
Tipovi servisa u SOA
Servisi su osnova SOA (key building blocks)
Servisi se mogu kategorizovati prema svrsi (softver, infrastruktura ili biznis) i domenu
(granularnost ili nivo apstrakcije poslovne funkcionalnosti)
Mogući tipovi servisa su:
–
Servisi poslovnih procesa (business process services)
•
•
–
Servisi poslovnih transakcija (business transaction services)
•
–
Predstavljaju poslovne funkcije koje menjaju stanje poslovanja, kao na primer, nabavka materijala ili
servisa od dobavljača ili snimanje nove transakcije klijenta. Takvi servisi mogu uključiti orderStock ili
transferFunds i sl.
Servisi poslovnih funkcija (business function services)
•
–
Poslovni procesi predstavljaju sekvence aktivnosti koji ispunjavaju jedan poslovni cilj. Takav jedan
proces se može predstaviti kao servis. Na primer, proces prijave za dobijanje kredita od banke se
može predstaviti kao servis poslovnog procesa. Servis poslovnog procesa može biti i
kreiranjePorudžbine (createStockOrder), izmirenjeRačuna (reconcileAccount) i sl.
Servisi poslovnih procesa se mogu sastojati i iz drugih servisa (choreographed)
Servisi poslovnih funkcija predstavljaju poslovne funkcije koji ne menjaju stanje poslovnih procesa ili
vraćaju podatke ili izvršavaju jednostavnija izračunavanja, npr. calculateDollarValueFromYen ili
getStockPrice
Servisi tehničkih funkcija (technical function services)
•
Ovi servisi su ponovo upotrebljivi, ali ne obezbeđuju poslovne funkcije, već obezbeđuju tehničke ili
infrastrukturne funkcije koje se zahtevaju radi podrške interakcija servisa u IT sistemima, npr.
auditEvent, checkUserPassword ili checkUserAuthorization.
Upravljanje poslovnim procesima
Upravljanje poslovnim procesima (Business Process Management,
BPM) kombinuje poslovne procese, informacije i IT resurse,
približavajući ključne faktore organizacije – ljude, informacije,
tehnologije i procese – radi kreiranja jednog integrisanog pogleda sa
real-time inteligencijom
Faze BPM-a su:
–
–
–
–
–
–
–
Identifikacija procesa
Modeliranje procesa – modeliranje tekućeg stanja poslovnih procesa
Analiza procesa – ispituju se uska grla, redundantnost procesa itd.
Poboljšanje procesa – modeliranje željenog stanja procesa
Implementacija procesa – dodaje se IT detalji implementacije
Izvršavanje procesa – uvođenje i izvršavanje procesa
Nadgledanje i kontrola procesa – radi redefinisanja procesa
Slojevi u BPM
Na najvišem nivou
razmatra se optimizacija
procesa u okviru koje se
procenjuju modeli procesa i
uz pomoć simulacije
predviđa potencijalno
unapređenje sistema
Upravljanje procesima
nadgleda performanse u
odnosu na IT sloj
Workflow ili automatizacija
procesa gde koordiniraju
sekvence aplkacija i niži
nivoi IT servisa
Na donjem sloju postoje
različiti IT servisi i
podržana infrastruktura
Potreba za automatizacijom procesa –
studija slučaja
Potreba za automatizacijom procesa –
studija slučaja (nastavak)
Izazovi kod manuelnog sistema
Predugo traje
Uključene su različite tehnologije:
– Legacy sistemi
– Aplikacioni serveri
– Email aplikacije
Integracija ljudi, procesa i informacija je teška
Ukoliko deo procesa ne uspe da se realizuje, administrator mora da
uradi seriju reverznih manuelnih koraka
Teško se reaguje na promene poslovnih pravila
BPM i SOA
Usvajanje SOA principa rezultira u:
–
–
Fleksibilnosti i agilnosti u BPM životnom ciklusu: identifikacija, modelovanje, implementacija,
monitoring poslovnih servisa i procesa
Automatizaciji procesa korišćenjem koreografije (choreographies) servisa
Koreografija servisa ili procesa se može definisati kao proces sklapanja (assembling),
uređivanja (sequencing) i definisanja izvršnog toka servisa i pozivanja servisa kako bi
se implementirao poslovni proces visokog nivoa
Koreografija servisa (ili orkestracija) zahteva:
–
–
–
–
–
–
–
–
–
Standarde za definisanje procesa (npr. WS-BPEL)
SOA i SOI principe za integraciju sa različitim servisima zahtevanih od poslovnog procesa
Korišćenje standarda za definisanje interfejsa servisa (npr. WSDL)
Podršku više nivoa apstrakcije procesa
Monitoring i funkcije analize
Quality of Service karakteristike (bezbednosni aspekti, kao što su atuentikacija, pouzdanost
podataka, politiku i menadžment poverenja; pouzdano slanje poruka; transakcioni integritet)
Kontrolu Workflow-a, konkurentnost uključujući i podršku za poslovna pravila
Upravljanje stanjima
Korelacija instanci procesa sa klijentima
Koreografija servisa
Životni ciklus BPM
zavisi od
sposobnosti
ponovnog
sklapanja i
ponovonog
uvođenja poslovnih
procesa
Koreografija
servisa omogućava
brzo, dinamičko
ponovno sklapanje
servisa radi
optimizovanja
poslovnog procesa
Zateva fleksibilnu i
slabo spregnutu
integracionu
infrastrukturu koja
se zasniva na SOA
principima
Servisno-orijentisana integracija
Koreografija servisa podržava BPM tako što omogućava fleksibilne i adaptibilne implementacije procesa na
integracionoj infrastrukturi – takva infrastruktura mora da se zasniva na SOI (service-oriented integration)
infrastrukturi
SOI uključuje integraciju višestrukih internih i spoljnih aplikacija kako bi se zadovoljili poslovni ciljevi
–
–
–
–
Integracija aplikacija - uključuje razvoj novih interfejsa
Integracija informacija – uključuje podatke kompanije i dr. izvora
Integracija procesa – podrazumeva integraciju kroz koreografiku aplikacijai servisa sa višestrukim interfejsima
Integracija sistema – podrazumeva povezanost heterogenih i legacy sistema i integraciju aplikacija
Na slici su prikazana tri integraciona pristupa u odnosu na to kako rešenje reaguje na promene u poslovnom
okruženju
Posrednički servisi
Različite posredničke servise (mediation services) nudi ESB: semantički interfejs ka
zahtevaocima servisa, interfejs sa konzumerima servisa implementiranih u
heterogenim jezicima i platformama, rukovanje protokolom prevođenja,
obezbeđivanje transparentnosti lokacije, rukovanje sa prevođenjem formata
podataka, obezbeđivanje sigurne isporuke i rukovanje greškama, bezbednost itd.
Enterprise Service Bus, ESB koncept opisuje mehanizam interakcije servisa sa
konzumerima i sa drugim servisima, tj. obezbeđuje komunikacionu infrastrukturu
–
Povezuje i integriše IT poslovne aplikacije organizacije
ESB nudi posredničke servise koji obezbeđuju mnoge prednosti:
–
–
–
–
–
–
–
–
–
Integraciju baza podataka i legacy aplikacija
Mapiranje servisa
pretvaranje protokola
Mapiranja između jezika interfejsa kod poziva servisa
Inteligentno rutiranje
Agregacija i korelacija poruka i servisa
Provera poruka
Logovanje, merenje, monitoring i dr. funkcionalnosti
QoS
Mediation services - nastavak
Postoji nekoliko osnovnih paterna za posredovanje:
–
–
–
–
–
–
–
Protocol switch: omogućava da konzumer servisa pošalje svoju poruku korišćenjem različitih interakcionih
protokola ili API-ja, kao što su SOAP/HTTP, JMS (Java Message Service) i MQ Integrator (MQI)
Transform: prevodi sadržaj poruke iz šeme konzumera u šemu provajdera
Enrich: povećava sadržaj poruke dodajući informacije iz spoljnih izvora podataka, kao što su kastimizirani
parametri definisani npr. upitom baze podataka i sl.
Route: izmena rute poruke birajući između provajdera servisa koji podržavaju sadržaj zahtevaoca servisa
Distribute: distribuiranje poruke ka zainteresovanim stranama
Monitor: posmatranje poruka da prolaze kroz posredničke servise nepromenjeni
Correlate: uključuje pravila za identifikaciju paterna i pravila
Posrednički servisi treba da zadovolje zahteve kvaliteta servisa (QoS):
–
–
–
–
Enkripcija i dekripcija
Pouzdanost slanja poruka
Kontrola pristupa, praćenje i politike autentifikacije
Rukovanje greškama
Posrednički servisi se mogu kombinovati kako bi se realizovala složenija posredovanja:
Koreografija servisa i SOI

ESB posreduje pozivima servisa tako što ih preusmerava na korektnog provajdera servisa
SOA – slojevi arhitekture
(migracija OO sistema u SOA)
Web servis
Web servis je jedna određena implementacija servisa
Mogu se koristiti određene tehnologije i otvoreni standardi iz tri ključne
oblasti:
– XML-based description format - kao što je WSDL koji se koristi za definisanje,
opisivanje i mogućnost pronalaženja servisa
– Application messaging protocol - kao što je SOAP
– Collection or transport protocol - kao što su SMTP, HTTP
Standardni stekovi Web servisa
Organizacije, u fazama, usvajaju protokole i standarde Web servisa, gde svaka doprinosi celokupnom rešenju
Danas organizacije razmenjuju jednostavnije transakcije i informacije koristeći osnovne, dokazane standarde protokola
Da bi prevazišli jednu od njihovih primarnih barijera u korišćenju Web servisa, organizacije počinju da usvajaju WSSecurity
Organizacije će zatim da počnu da implementiraju složenija transakciona ponašanja i orkestraciju višestrukih servisa –
tako da već postoji povećano interesovanje za BPEL koji je već podržan u nekoliko proizvoda
Prethodni korak prati upotreba sigurnosnih protokola koji će podržati takav ujedinjeni scenario koji uključuje više
učesnika, kao i dinamičko rutiranje zahteva učesnicima koristeći adresiranje
Sa sve većim ujedinjavanjem servisa, dovodi do potrebe pažljivog nadgledanja i upravljanja, koristeći WSDM
Nakon svega organizacije će početi da ugrađuju sve više autonomnih ponašanja u svoje sisteme
Odnos Web servisa i SOA
SOA se može realizovati kroz upotrebu Web servisa i tehnologija Web servisa, ali nije
obavezno
–
–
Jedna od opcija implementacije SOA bez Web servisa bi bila kroz CORBA ili WBI
(WebSphere Business Integration) Message Broker
Web servisi su vodeća tehnologija današnjice
Cilj SOA je da se ključni poslovni procesi grupišu u komponente kako bi im se lakše
upravljalo i menjalo
SOA omogućava modelovanje poslovnih problema u terminu diskretnih servisa
–
Ovi modelovani servisi su implementirani kao Web servisi
Ključni elementi SOA uključuju servise i interfejse
Primeri servisa
Poslovne vrednosti SOA
Maksimalna agilnost poslovanja
–
Sposobnost brzog odziva na
promene u zahtevima
Integracija poslovnih procesa kroz
preduzeće
–
IT i poslovne jedinice preduzeća
rade kao jedinka
Integracija poslovnih procesa sa
partnerima, dobavljačima i
potrošačima
–
–
–
Partnerima je lakše da posluju sa
vama
Potrošačima je lakše da pronađu
vaše servise
Dobavljačima je lakše da obezbede
servise
Bolja vidljivost i transparentnost IT
troškova, IT vrednosti poslovanja i
poboljšana poslovna inteligencija
Mogućnost da netehničko osoblje
sklapa softverska rešenja bez
ulaženja u detalje kodiranja sistema
SOA referentna arhitektura
SOA životni ciklus
1.
SOA razvoj – uloge i aktivnosti
Biznis analitičar (Business Analyst)
–
–
Identifikuje i analizira poslovne procese
Odgovoran za poznavanje poslovnih procesa i njihovo modelovanje
Developer integracije (Integration Developer)
–
–
Integriše funkcionalne komponente kroz organizaciju u jednu bezbednu, kompozitnu SOA
aplikaciju organizacije
ESB je važan alat u dostizanju ove integracije
Arhitekta softvera (Software Architect)
–
Identifikuje i projektuje servise i SOA arhitekturu
Developer aplikacija (Application Developer)
–
–
Implementira komponente servisa identifikovane u dizajnu
Identifikuje scenarija koja se mogu ponovo upotrebiti i razvija komponente koje će se koristiti
kroz preduzeće
Administrator sistema (System Administrator)
–
–
Uvodi, konfiguriše, usklađuje i upravlja kompozitnim aplikacijama
Uvodi gotove aplikacije u proizvodno okruženje (obično koristi WebSphere Process Server) i
nadgleda proces izvršavanja (obično pomoću WebSphere Business Monitor)
Pregled SOA proizvoda

SOA životni ciklus
Uvod u SOA životni ciklus
U SOA arhitekturi servisi i poslovne komponente preduzeća su međusobno povezani činjenicom da
poslovne komponente realizuju servise, odnosno odgovorne su za realizaciju njihove funkcionalnosti i
održavanje kvalitetne usluge
Tokovi poslovnih procesa realizovani su komponovanjem servisa, tj. kreiranjem kompozitnih
aplikacija
SOA definiše nekoliko arhtekturalnih slojeva: sloj operacionih sistema, sloj komponenata preduzeća,
sloj servisa, sloj poslovnih procesa i kompozitnih aplikacija, prezentacioni sloj, integracioni sloj, SOA
Governance, upravljanje podacima itd.
Spomenuti arhitekturalni slojevi dele zajedničku infrastrukturnu osnovu u obliku integrisane
infrastrukture povezivanja čiji je osnovni zadatak osiguranje usluga usmeravanja poruka,
posredovanja (konverzije komunikacionih protokola između tehnološki raznorodnih servisa),
transformacije prenesenih sadržaja itd.
Infrastruktura povezivanja, kao deo SOA paradigme, realizovana je primenom Enterprise Service Bus
(ESB) koncepta
Osim ESB platforme, koncept koji je zajednički svim servisima jeste mogućnost nadzora njihovog
funkcionaisanja i svojstvo upravljivosti
Nadzor i upravljivost su ključne tačke u osiguranju željenog nivoa kvaliteta usluga i zadovoljenja
nefunkcionalnih zahteva postavljenih pri izgradnji kompozitnih sistema
Faze SOA životnog ciklusa
Postupak razvoja rešenja utemeljenih na SOA paradigmi i prikazanoj
referentnoj arhitekturi podrazumeva iteriranje kroz nekoliko faza SOA
životnog ciklusa
SOA životni ciklus:
–
Model – faza modeliranja obuhvata prikupljanje poslovnih zahteva, modeliranje, dizajniranje,
simuliranje i optimizovanje željenih poslovnih procesa
•
•
–
Assemble – kada su poslovni procesi optimizovani, u fazi sklapanja razvojni inženjeri
realizuju i vrše koreografiju servisa i izvršavaju odgovarajuće testove i na kraju faze
pripremaju rešenje za transfer u izvršno okruženje
•
–
izvršavanje ovih aktivnosti pripada domenu odgovornosti poslovnih analitičara, softverskih arhitekata i
razvojnih inženjera
IBM, kao jedan od lidera na području SOA pruža podršku za izvođenje aktivnosti ove faze unutar alata
WebSphere Architect
sistem se implementira sklapanjem novo kreiranih i ponovo upotrebljivih postojećih servisa kako bi se
formirala kompozitna aplikacija
Deploy – faza uvođenja podrazumeva uvođenje kompozitnih aplikacija u jedno bezbedno i
integrisano okruženje. Cilj je da se osigura bezbednost svih ključnih elemenata kompanije,
kao i to da rade zajedno kao celina
•
U okiru ove faze odvija se interakcija kompozitne aplikacije (tj. poslovnog procesa) sa ljudima i drugim
procesima (tj. kompozitnim aplikacijama) - integracija ljudi, procesa i informacija
Faze SOA životnog ciklusa (nastavak)
Manage – faza upravljanja podrazumeva upravljanje i nadgledanje svih aktivnosti i interakcija u
SOA okruženju, odnosno upravljanje kompozitnim aplikacijama
–
–
–
Informacije koje se prikupljaju u ovoj fazi se koriste za sticanje realnog pogleda na poslovne procese što
dovodi do boljih poslovnih odluka kao i za prosleđivanje informacija nazad u sistem radi kontinualnog
poboljšanja procesa
Ova faza je ključna za životni ciklus SOA rešenja jer omogućava povratnu vezu i zatvaranje životnog
ciklusa
Informacije koje su dobijene nadzorom i praćenjem služe poslovnim analitičarima kako bi mogli da
realizuju nove iteracije modeliranja nad izgrađenim rešenjem i na taj način poboljšati njegove
performanse, ukloniti eventualne nelogičnosti u izbođenju poslovnoga procesa itd.
Iterativan pogled na životni ciklus SOA rešenja, nasleđen je iz dokazanih i pouzdanih razvojnih
metodologija (Rational Unified Process), jer se osigurava konstantno unapređivanje sistema
Prikaz faza SOA životnog ciklusa sadrži i element koji se proteže kroz sve faze, a naziva se
SOA Governance čiji je zadatak obezbeđivanje finansijske, poslovne, organizacione i IT
kontrole nad SOA okruženjem kroz uvođenje niza pravila i procesa koje treba sprovoditi u svim
fazama živtonog ciklusa
SOA Foundation
Governance (upravljivost) i proces, najbolje prakse i edukacija su osnova za uspešno
implementiranje SOA
Governance i proces pomažu u uspostavljanju SOA strukture tako što uvode SOA
centar, koriste RUP i biblioteku IT infrastrukture koja obezbeđuje centralnu lokaciju za
sve vaše servise
–
–
–
Governance je ključni faktor uspeha SOA – “ljudska strana SOA” koja predstavlja kolektivno
iskustvo SOA lidera kao što je npr. IBM
SOA najbolje prakse, kao što su SOA paterni i IBM Redbooks
Edukacija kao nezaobilazni deo uspešne primene SOA
Faza modeliranja – WebSphere Business Modeler
WebSphere Business Modeler
– Koriste ga biznis analitičari
(businesss analysts)
– Dizajniraju se poslovni procesi
– Obezbeđuje vizuelnu prezentaciju
poslovnih procesa, organizacije,
resursa i performansi
– Mogućnost importovanja bilo kog
statičkog dijagrama prethodno
kreiranih u Microsoft Visio
– Uključuje alate simulacije za
analizu procesa i testiranje (ove
analize se koriste za optimizovanje
biznis dizajna)
– Eksportuje poslovne (biznis)
modele u WebSphere Integration
Developer ili Rational Software
Architect
Faza modeliranja – Rational Software Architect
Rational Software Architect (RSA) je
razvojni alat za modeliranje
komponentata softverskih aplikacija
– Koriste ga Software Architect-e
– Zasnovan na UML2 notaciji i semantici
– Koristan za prevođenje poslovnih
modela, razvijenih u WebSphere
Business Modeler-u, u SOA servisne
specifikacije i detaljan dizajn komponenti
u UML-u, koje dalje developeri razvijaju i
implementiraju
– RSA nudi podršku za plug-in dizajn
paterne koji automatizuju razvoj i
promovišu ponovnu upotrebljivost
(podržava klasične paterne opisane u
knjizi Design Patterns: Elements of
Reusable Object-Oriented software,
autora Erich Gamma, Richard Helm i
John Vlissides (često nazivanih Gang of
Four ili GoF)
– Sadrži mehanizme za razvoj sopstvenih
paterna i njihove ponovne upotrebljivosti
Faza sklapanja – WebSphere Integration
Developer
WebSphere Integration Developer
(WID) je projektovan tako da kreira
tokove poslovnih procesa, stanje
mašina i poslovna pravila
–
–
–
Predstavlja okruženje za
modeliranje poslovnih procesa
Omogućava prihvatanje interakcija
human-to-process, process-tohuman i human-to-human
Podržava Service Component
Architecture (SCA) i Common
Event Infrastructure (CEI)
WID ima punu podršku za
Business Process Execution
Language (BPEL) jezik
Common Event Infrastructure
(CEI) je IBMova impelementacija
konzistetnih i unificiranih skupova
APIja i infrastrukture radi kreiranja,
transmisije, perzistentnosti i
distributivnosti širokog opsega
poslovanja, sistema ...
Faza sklapanja – Rational Application
Developer
Rational Application Developer (RAD) je
integrisano razvojno okruženje za J2EEE
programiranje
Kao i prethodni Rational alati i ovaj se zasniva
na Eclipse framework-u, te se može integrisati
sa bilo kojim Eclipse alatom radi obezbeđivanja
potpune tranzicije od modelovanja, do
arhitekture, razvoja softvera, debagovanja itd.
RAD pokriva osnovno java programiranje,
Enterprise Java programiranje prema J2EE,
Portal Server programiranje...
Sadrži potpuno integrisani debug alat i
predefinisano okruženje za testiranje za
WebSphere Application Server za kreiranje EJB
poslovnih servisa
Važno je napomenuti da WebSphere Integration
Developer sadrži sve funkcionalnosti Rational
Application Developer alata tj. developeri mogu
da kreiraju Web servise, Web i EJB
komponente u WebSphere Integration
Developer na isti način kao u RAD-u.
Faza uvođenja – WebSphere Process
Server i WebSphere Application Server
WebSphere Process Server je primarno izvršno
okruženje za poslovne procese
–
–
–
–
Uključuje podršku za BPEL tokove procesa kao i
biznis stanje mašina
Podržava integrisanje poslovnih pravila u selekciji
procesa i servisa
Process Server je prvi proizvod u IBM suite koji nudi
direktnu podršku za Service Component Architecture
SOA model programiranja
Integriše se sa WebSphere portalom radi kreiranja
portala koji podržavaju zadatke ljudi u poslovnim
procesima (zadaci ljudi su definisani kao aktivnosti
unutar definicije procesa koje obavljaju ljudi delegiranje zadataka, vremensko raspoređivanje i dr.)
WebSphere Application Server obavlja dve uloge u
SOA:
–
–
Hostuje okruženje za osnovne SOA biznis servise –
prevashodno one koje su implementirane u J2EEE
Enterprise JavaBeans EJBs (ovi servisi mogu biti
prikazani WSDL-om i integrisani kroz standardne
protokole Web servisa i enkodiranja ili se mogu
integrisati na tradicionalni način kroz Remote Method
Invocation/InterORB Protocol (RMII/IIOP) bindings.
Služi i kao izvršna platforma za WebSphere Portal,
WebSphere Process Server, WebSphere Enterprise
Service Bus i dr. – što omogućava njihovo tesno
povezivanje
Faza uvođenja – ESB podrška
WebSphere Enterprise Service Bus (WESB) instancira ESB arhitekturalni patern obezbeđujući
osnovu za transparentnu međupovezanost servisa kroz distribuiranu mrežu preduzeća
–
–
Podržava service bus mediations (posrednike) koji umanjuju nekoherentnosti koje se mogu dogoditi između
servisa
Predstavlja implementaciju ESB paterna omogućavajući posredničke servise, transformisanje, rutiranje,
logging i mnoge druge meta servise
WebSphere MQ omogućava Simple Object Access Protocol (SOAP) interakcije poruka između
konzumera servisa i provajdera sa potpuno integrisanom podrškom Web Service standarda
–
–
–
–
Omogućava optimalan transport i pouzdanost i praćanje servisa koji se konektuju na ESB
Povezuje aplikacije sa različitih platformi – podržava oko 80 različitih konfiguracija platformi
Omogućava pouzdan JMS (Java Message Service) messaging kao osnovu za ESB uvođenje i kao standard
za asinhroni messaging
Podržava Web servise, CICS, IMS, DB2, .Net, J2EE i dr.
WebSphere Message Broker
–
–
–
Proširuje mogućnosti ESB tako što obezbeđuje podršku za prenos poruka koje nisu XML tipa, kao što su:
AL3, HL7, Swift, HIPAA, EDI i dr.
Treba koristiti tamo gde je potrebno obraditi kompleksne događaje i transformacije, a potom koristiti
WebSphere ESB za optimizovanje međupovezanosti između XMLa i standardnih SOA servisa
Obezbeđuje napredne mogućnosti ESBa kao što je univerzalna povezanost i transformacija tipa “any-to-any”
Faza uvođenja – WebSphere Portal i
DataPower
WebSphere Portal je okruženje za hostovanje portal aplikacija
DataPower XI50 Integration Appliance – omogućava rad sa procesiranjem Web
servisa
–
Ponaša se kao ruter koji na osnovu Web servis zahteva izvršava transformisanje poruka,
funkcije integracije i rutiranja.
DataPower XA35 Acceleration Appliance
–
Omogućava XML procesiranja kao što su parsiranje, validacije šema i XSLT transformacije
XML dokumenta
DataPower XS40 XML Security Gateway
–
Vrši autentifikaciju i autorizaciju zahteva servisa pre nego što se odu na hosting servere
Faza upravljanja – WebSphere Business
Monitor i Tivoli Performance Viewer
Komentari, demo, izvori ...
http://demos.dfw.ibm.com/on_demand/Demo/en/IBM_Demo_The_Fr
ont-End_to_SOA-May07.html?S=index
http://demos.dfw.ibm.com/on_demand/Demo/en/IBM_Demo_WebS
phere_Business_Modeler-Mar07.html?S=SWCAT
http://download.boulder.ibm.com/ibmdl/pub/software/dw/demos/WB
MinSOA1/WBMinSOA1.htm?S_TACT=105AGY50&S_CMP=DEMO
S
http://www.youtube.com/watch?v=OIj1wbP8RcY (part 1)
http://www.youtube.com/user/InfoWorld (part 2)