IT-Voice

Thursday, June 15, 2006

BPEL mogućnosti

Tolike godine čekamo interoperabilnost da sam od početka sumnjao u primenljivost BPEL-a. Međutim, za primer iz prethodnog posta je dovoljan skup dalje navedenih funkcionalnosti (ikone su preuzete iz BPEL Designer-a - plugin-a za Eclipse).

Svaki proces počinje sa , a završava sa .
Ulaz u proces (novonastali ws):
Ukoliko postoji potreba za izlazom, koristi se element
Da bi se mogla postići interoperabilnost, svi podaci moraju biti u obliku xml-a. Tako postoje input i output promenljive koje predstavljaju ulazne i izlazne podatke i generiše ih sam Eclipse prilikom inicijalnog pravljenja projekta. Rezultati pozivanja servisa i drugih operacija se moraju čuvati u promenljivama koje su takođe xml podaci. Na taj način je moguće koristiti podatke iz heterogenih sistema, jednostavnim kliktanjem miša u stilu: iz input-a uzmi parametar ProductID i prosledi ga u parametar metode Order web servisa StockWS. Mogu se praviti nove promenljive (lokalne i globalne) proizvoljne strukture, ali treba imati u vidu da tip promenljive zapravo predstavlja ta struktura (šema). BPEL je tipiziran jezik. Naredba kojom se vrši dodela vrednosti promenljivama i izvršavanje operacije nad istim se zove assign. Postoje ugrađene funkcije a mogu se koristiti i XPath i XQuery izrazi.
Naredba assign je predstavljena sa: .
Switch naredba za ispitivanje uslova:
Svaka operacija ima svoja svojstva. Tako naredba invoke koja služi za pozivanje metode ws-a ima svojstva kao što su input i output promenljive. Ukoliko metoda prima samo jedan parametar, jednostavno ćemo popuniti svojstvo input. Ukoliko to nije slučaj, najpre ćemo kreirati promenljivu koja je istog tipa kao i kompleksni tip koji predstavlja ulaz metode, komandom assign popuniti vrednost te promenljive i u input svojstvo upisati naziv promenljive.
Poziv ws-u se prikazuje sa:
Jako korisne su i komponente za petlje. Mogu se koristiti ako u slučaju kada dobijamo niz stavki, gde za svaku pojedinačnu stavku treba izvršiti određene operacije (npr. pozvati ws). Tu su i ekstenzije za notifikaciju (e-mail, sms, fax, ...). Prisutne su i komponente za upravljanje greškama. Ukoliko ovo nije dovoljno, moguće je pisati i Java kod iz kog se može pristupati okruženju (npr. promenljivama)!
Svaki klijent dobija svoju instancu procesa. Svaki proces je perzistentan što znači da se njegovo stanje čuva u bazi podataka. Tako da je moguće napraviti proces koji će 3 meseca mirovati i po isteku perioda proveriti da li je kupac izvršio uplatu!

0 Comments:

Post a Comment

<< Home