Modelovanje servisnoorijentisane integracije sistema Prof dr Angelina Njegu

  • Slides: 36
Download presentation
Modelovanje servisnoorijentisane integracije sistema Prof. dr Angelina Njeguš Redovni profesor na Univerzitetu Singidunum anjegus@singidunum.

Modelovanje servisnoorijentisane integracije sistema Prof. dr Angelina Njeguš Redovni profesor na Univerzitetu Singidunum anjegus@singidunum. ac. rs Beograd, 2019/2020.

BPM i SOA § Usvajanje SOA principa rezultira u: Fleksibilnosti i agilnosti u BPM

BPM i SOA § Usvajanje SOA principa rezultira u: Fleksibilnosti i agilnosti u BPM životnom ciklusu Automatizaciji procesa korišćenjem kompozicije servisa § Kompozicija servisa ili procesa se može objasniti kao proces: uređivanja (sequencing) sklapanja (assembling) definisanja izvršnog toka servisa pozivanje servisa kako bi se implementirao poslovni proces visokog nivoa • Kompozicija servisa zahteva: • Standarde za izvršavanje procesa (npr. WS-BPEL) • SOA i SOI principe za integraciju sa različitim servisima zahtevanih od poslovnog procesa • Standarde za definisanje interfejsa servisa (npr. WSDL) • Monitoring i analiza • Qo. S (Quality of Service) karakteristike (bezbednosni aspekti, kao što su autentikacija, pouzdanost podataka, politika 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 …

Kompozicija servisa Orkestracija vs koreografija servisa § Orkestracija (Orchestration) Workflow, interni procesi, privatni procesi,

Kompozicija servisa Orkestracija vs koreografija servisa § Orkestracija (Orchestration) Workflow, interni procesi, privatni procesi, obično sadržani u jednoj particiji (Pool) automatsko izvršavanje toka posla (workflow) workflow se izvršava pomoću izvršnog jezika npr. BPEL Orkestracija == Izvršni procesi § Koreografija (Choreography) Kolaboracija, globalni procesi, B 2 B procesi, obično definisani interakcijama između particija (Pools) Opis koordinisanih interakcija između dva ili više partnera Koreografija == Saradnja između više strana

BPEL § Izvršni jezik poslovnog procesa (Business Process Execution Language, BPEL) predstavlja jezik za

BPEL § Izvršni jezik poslovnog procesa (Business Process Execution Language, BPEL) predstavlja jezik za definiciju i opis izvršavanja poslovnih procesa § Prvobitno je kreiran od strane BEA, IBM, Microsoft, SAP i Siebel Systems, da bi danas bio u nadležnosti OASIS konzorcijuma koji inače razvija, održava i promoviše standarde kao što su eb. XML, SGML, UDDI i dr. Slika: Istorija razvoja standarda

BPEL – definicija pojma § BPEL je XML zasnovan jezik “orkestracije” što znači da

BPEL – definicija pojma § BPEL je XML zasnovan jezik “orkestracije” što znači da opisuje načine povezivanja servisa kako bi se implementirali složeniji servisi § BPEL može da integriše spoljne servise, kao i interakcije ljudi § BPEL se fokusira na kreiranje poslovnih procesa i opisuje kontrolnu logiku § Interpretira se i izvršava od strane BPEL engine-a

BPEL proces § BPEL definiše model i gramatiku za opisivanje ponašanja poslovnih procesa koji

BPEL proces § BPEL definiše model i gramatiku za opisivanje ponašanja poslovnih procesa koji se zasnivaju na interakcijama između procesa i njihovih partnera Interakcije sa partnerima se odvijaju podsredstvom interfejsa veb servisa, a sama struktura relacije je enkapsulirana u tzv. partner. Link-u BPEL uvodi i mehanizme koji se bave poslovnim izuzecima i obradama grešaka § BPEL koristi nekoliko XML specifikacija: WSDL, XML Schema, XPath i XSLT WSDL poruke i XML Schema definicije tipa obezbeđuju model podataka XPath i XSLT obezbeđuju podršku za obradu podataka

Interakcije sa poslovnim partnerima § Poslovni procesi moraju da komuniciraju sa drugim entitetima van

Interakcije sa poslovnim partnerima § Poslovni procesi moraju da komuniciraju sa drugim entitetima van samog procesa § Npr. , aplikacija davanja kredita mora da povlači izveštaj od kreditnog biroa Partneri predstavljaju spoljne entitete sa kojima poslovni proces komunicira

BPEL osnovne aktivnosti § Aktivnost Receive čeka poruku – § Aktivnost Invoke izvršava operacije

BPEL osnovne aktivnosti § Aktivnost Receive čeka poruku – § Aktivnost Invoke izvršava operacije koje obezbeđuje poslovni partner – poziva drugi ova aktivnost može da započne novi proces tek kada prihvati tj. kada pristigne poruka WSDL servis i prikuplja odzivne poruke • • § Aktivnost Assign ažurira vrednosti varijable § Aktivnost Reply vraća poruku odziva na kraju poslovnog procesa Uvođenje (deploying) BPEL proces podrazumeva objavljivanje servisa konkretnog procesa BPEL proces prikazuje implementaciju operacija servisa

BPEL strukturne aktivnosti sa prikazanim mapiranjem BPMN u BPEL § Neke strukturne aktivnosti su:

BPEL strukturne aktivnosti sa prikazanim mapiranjem BPMN u BPEL § Neke strukturne aktivnosti su: flow Sadrži aktivnosti koje se paralelno izvršavaju if then else Selekcija jedne grupe aktivnosti iz skupa sequence Sadrži aktivnosti koje se izvršavaju sekvencijalno

BPEL strukturne aktivnosti sa prikazanim mapiranjem BPMN u BPEL pick while repeat. Until Čekanje

BPEL strukturne aktivnosti sa prikazanim mapiranjem BPMN u BPEL pick while repeat. Until Čekanje na odgovarajuću poruku – zavisi od rezultata događaja i ispunjava se samo jedan uslov Sadrži aktivnosti čije se izvršavanje ponavlja sve dok je zadovoljen dati uslov Iteracija aktivnosti dok nije zadovoljen dati uslov

BPEL osnovne aktivnosti (nastavak) throw Generisanje greške unutar poslovnog procesa exit Trenutni prekid izvršavanja

BPEL osnovne aktivnosti (nastavak) throw Generisanje greške unutar poslovnog procesa exit Trenutni prekid izvršavanja instance poslovnog procesa wait Čekanje na neki definisani vremenski period ili dok taj period ne istekne compensate Pokretanje undo koraka kod aktivnosti koje su se već izvršile ü validate Validacija XML podataka u variablama for. Each Sadrži aktivnosti koje se izvršavaju sekvencijalno ili paralelno kontrolisano preko brojača scope Povezivanje aktivnosti sa lokalnim varijablama, obvrađivačima grešaka i obrađivačima događaja

Ugnježdavanje strukturianih aktivnosti <sequence> sequence <receive. . . /> <flow> receive <sequence> flow <invoke.

Ugnježdavanje strukturianih aktivnosti <sequence> sequence <receive. . . /> <flow> receive <sequence> flow <invoke. . . /> <while. . . > sequence invoke receive <assign>. . . </assign> </while> </sequence> <sequence> while <receive. . . /> <invoke. . . > assign </sequence> </flow> <reply> </sequence> reply invoke

Primer

Primer

Partner Links § Partneri definišu različite strane koje su u interakciji sa poslovnim procesom

Partner Links § Partneri definišu različite strane koje su u interakciji sa poslovnim procesom Servis A Servis P Servis B receive invoke A WSDL Partner Link Type P WSDL B WSDL Partner Link Type

BPEL proces kao veb servis

BPEL proces kao veb servis

BPEL - primer flow risk. Analiza. PT odobrenje. Kredita. PT iznos < 10000 invoke

BPEL - primer flow risk. Analiza. PT odobrenje. Kredita. PT iznos < 10000 invoke receive rizik = “visok" iznos >= 10000 invoke Analiza rizik= “nizak" assign reply odobren = “da" odobren = “ne" 1. Klijent podnosi zahtev za kredit koji sadrži podatke o klijentu i zahtevanom iznosu kredita 2. Dva servisa su uključena: a) Analiza rizika koja definiše stepen rizika b) Odobravanje kredita koji proverava ime i odobrava ili neodobrava zahtev za kredit 3. Odgovor se vraća klijentu loan approver

WS-BPEL alati/engine § Microsoft Biz. Talk Server § Oracle BPEL Process Manager § IBM

WS-BPEL alati/engine § Microsoft Biz. Talk Server § Oracle BPEL Process Manager § IBM Web. Sphere Business Integration Server Foundation § IBM alpha. Works • IBM Web. Sphere Process Server 6. 0 § BEA Web. Logic Integration • Open. Link Virtuoso Universal Server § Open. Storm Service Orchestrator • Open. Storm Choreo. Server § Active Endpoints Active. Webflow Server • Parasoft BPEL Maestro § Active. BPEL Engine (open source) • bexee BPEL Execution Engine (open source) • Cape Clear Orchestrator • Five. Sight PXE • See. Beyond e. Insight BPM • Twister (open source) …

BPMN vs BPEL Fokus BPMN-a: § Fokus je na povezivanju sistema pre nego na

BPMN vs BPEL Fokus BPMN-a: § Fokus je na povezivanju sistema pre nego na njihovom izvršavanju § Fokus je na probleme na višim nivoima § Fokus na to koje informacije se prenose nego na detalje oko implementacije i podršku softverskog sistema § Vide kompanije u terminima poruka i raspoloživih servisa § Omogućava kreiranje razumljivih tokova podataka, koji mogu biti ugnježdeni u druge tokove, a mogu se i objaviti (publikovati) kao novi veb servisi Glavne prednosti BPMN-a: § Raznoliki poslovni procesi se mogu jasno predstaviti i lako mogu biti promenjeni § Fokus je na interfejsima i porukama i ne bavi se implementacijom servisa Fokus na interfejse je veoma bitan, jer kako sistemi sazrevaju, više se vremena i truda troši na povezivanje postojećih sistema nego na izmenu algoritama unutar tih sistema § Osnovna tvrdnja BPM modelovanja je da je to odgovor na probleme i zahteve za fleksibilnom i brzom integracijom sistema

BPMN vs BPEL § Jedan od nekolicine konkurentnih programskih jezika koji obrađuju informacije u

BPMN vs BPEL § Jedan od nekolicine konkurentnih programskih jezika koji obrađuju informacije u modelima poslovnih procesa § BPEL povezuje veb servise kompanije i omogućava njihov međusoban rad, ali na jedan razumljiv i ponovo upotrebljiv način § Softver koji izvršava pojedinačne poslovne tokove (workflow) se zove Business Process Manager – ovaj program čita BPEL fajlove u izvršnom okruženju kako bi izvršio svaki korak ili aktivnost u workflow i određuje koja informacija treba da bude prosleđenja narednom procesu ili veb servisu § Neki vendori (npr. IBM) razdvajaju alate za modelovanje (BPM) od alata za izvršavanje poslovnih procesa (npr. BPEL) – iz razloga što obezbeđuju alate sa pogledom na korporativne tokove i simuliraju efekte menjanja različitih tokova bez potrebe da ih svaki put izvršavaju

Servisno-orijentisana integracija (SOI) § § Koreografija servisa omogućava fleksibilne i adaptibilne implementacije procesa na

Servisno-orijentisana integracija (SOI) § § Koreografija servisa omogućava fleksibilne i adaptibilne implementacije procesa na integracionoj infrastrukturi – takva infrastruktura se zasniva na SOI (service-oriented integration) infrastrukturi SOI uključuje integraciju višestrukih internih i spoljnih sistema kako bi se zadovoljili poslovni ciljevi Integracija informacija – uključuje podatke kompanije i dr. izvora Integracija procesa – podrazumeva integraciju kroz koreografiju procesa i servisa sa višestrukim interfejsima Integracija aplikacija - uključuje razvoj novih interfejsa Integracija sistema – podrazumeva povezanost heterogenih i legacy sistema Spektar koreografije servisa

Kako se realizuje SOI? § Integraciju heterogenih sistema i servise za posredovanje između njih,

Kako se realizuje SOI? § Integraciju heterogenih sistema i servise za posredovanje između njih, omogućava magistrala poslovnih servisa (Enterprise Service Bus, ESB). § ESB nudi posredničke servise koji obezbeđuju : Integraciju baza podataka i legacy sistema Mapiranje servisa Pretvaranje komunikacionih protokola Mapiranja između jezika interfejsa kod poziva servisa Inteligentno rutiranje Provera poruka, Qo. S, logovanje, merenje, monitoring i druge funkcionalnosti

Šta je Enterprise Service Bus (ESB)? § ESB je infrastruktura za fleksibilno povezivanje i

Šta je Enterprise Service Bus (ESB)? § ESB je infrastruktura za fleksibilno povezivanje i integraciju aplikacija i servisa § ESB smanjuje broj, veličinu i složenost interfejsa koji služe za povezivanje heterogenih sistema § ESB izvršava sledeće zadatke između učesnika: Rutira (Routs) poruke između zahtevaoca i servisa Konvertuje (Converts) protokole za prenos podataka Transformiše (Transforms) formate poruka Rukuje (Handles) poslovnim događajima

ESB omogućava SOI

ESB omogućava SOI

ESB primer

ESB primer

ESB § ESB se ponaša kao posrednik (proxy) između korisnika i provajdera

ESB § ESB se ponaša kao posrednik (proxy) između korisnika i provajdera

Prošireni pogled ESB-a § Modeli poruka – opisuju poruke koje se razmenjuju (ESB podržava

Prošireni pogled ESB-a § Modeli poruka – opisuju poruke koje se razmenjuju (ESB podržava višestruke modele poruka, industrijske i § Tokovi posredovanja – ESB podržava niz medijacionih paterna, kao što su Servisi virtuelizacije (konverzija između § Komunikacioni protokoli – omogućavaju osnovnu povezanost učesnika i utiču na Qo. S (npr. pouzdana isporuka, kastomizovane modele) komunikacionih protokola i paterna interakcije, transformacija između modela poruka, rutiranje između provajdera ili različitih formi), distribucija i agregacija, obrada složenih događaja, filtriranje poruka i dr. transakcije), snabdevaju paterne interakcije (npr. zahtev/odziv (request/reply), publish/subscribe …)

Mediation services § Postoji nekoliko osnovnih paterna za posredovanje: Protocol switch: Sposobnost prihvatanja jednog

Mediation services § Postoji nekoliko osnovnih paterna za posredovanje: Protocol switch: Sposobnost prihvatanja jednog tipa protokola i komuniciranja kroz drugi protokol sa provajderom servisa - omogućava da korisnik servisa pošalje svoju poruku korišćenjem različitih protokola ili API-ja, kao što su SOAP/HTTP, JMS (Java Message Service) i MQ Integrator (MQI). Na primer: XML/HTTP -> RMI/IIOP, SOAP/JMS -> IIOP … Transform: prevodi sadržaj poruke iz šeme korisnika u šemu provajdera - Sposobnost konvertovanja strukture i formata pristiglih zahteva poslovnih servisa na strukturu i format provajdera servisa. Na primer: XML -> COBOL, Object -> XML … 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 § Posrednički servisi treba da zadovolje zahteve za kvalitetom servisa (Qo. S):

Posrednički servisi § Posrednički servisi treba da zadovolje zahteve za kvalitetom servisa (Qo. S): § 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:

Studija slučaja (ponovljeno radi realizacije primera) Potreba za automatizacijom procesa “Odobravanje kredita”

Studija slučaja (ponovljeno radi realizacije primera) Potreba za automatizacijom procesa “Odobravanje kredita”

Studija slučaja Proces “Odobravanje kredita” (nastavak)

Studija slučaja Proces “Odobravanje kredita” (nastavak)

Koreografija servisa • Životni ciklus BPM zavisi od sposobnosti ponovnog sklapanja i ponovonog uvođenja

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

Koreografija servisa i SOI § ESB posreduje pozivima servisa tako što ih preusmerava na

Koreografija servisa i SOI § ESB posreduje pozivima servisa tako što ih preusmerava na korektnog provajdera servisa

Service mediations kao deo poslovnih procesa

Service mediations kao deo poslovnih procesa

Nova rola: Integration Developer § Radi u “razvojnom prostoru” (ali ne u razvojnom okruženju

Nova rola: Integration Developer § Radi u “razvojnom prostoru” (ali ne u razvojnom okruženju aplikacija) § Razume semantiku poslovnih procesa koji treba da budu integrisani § Omogućava realizaciju poslovnih ciljeva § Fokusira se na konstrukciju modula za posredovanje (mediation module)