Tutorial: Implementacja aplikacji biznesowych w technologii

Transkrypt

Tutorial: Implementacja aplikacji biznesowych w technologii
XIII Seminarium PLOUG
Warszawa
.ZLHFLH
Tutorial: Implementacja aplikacji
biznesowych w technologii WS-BPEL
(Konspekt)
Maciej Zakrzewicz
PLOUG
Abstrakt. 1RZRF]HVQH V\VWHP\ LQIRUPDW\F]QH V FRUD] F]
FLHM Z\WZDU]DQH Z $UFKLWHNWXU]H =RULHQWRZDQHM QD 8VáXJL ServiceOriented $UFKLWHFWXUH ]JRGQLH ] NWyU SRMHG\QF]H IXQNFMH EL]QHVRZH V LPSOHPHQWRZDQH Z SRVWDFL UR]SURV]RQ\FK VIHGHURZDQ\FK
NRPSRQHQWyZXVáXJRZ\FKQDMF]
FLHMRSDUW\FKQDWHFKQRORJLL:HE Services. Realizacja kompletnych procesów biznesowych wymaga
VNRRUG\QRZDQ\FK L G\QDPLF]Q\FK Z\ZRáD WDN ]GHILQLRZDQ\FK NRPSRQHQWyZ XVáXJRZ\FK : FHOX XSURV]F]HQLD LPSOHPHQWDFML
procesów biznesowych, konsorcjum firm BEA 6\VWHPV ,%0 L 0LFURVRIW ]DSURSRQRZDáR Z\VRNRSR]LRPRZ\ M
]\N PRGHORZDQLD
procesów WS-BPEL (Business Process Execution Language for Web 6HUYLFHV ]D SRPRF NWyUHJR SURJUDPLVWD RSLVXMH PHFKDQL]P\
koordynacji, interakcji i integracji funkcji biznesowych. 7XWRULDO SU]HGVWDZLD NRQFHSFM
]DVWRVRZDQLD M
]\ND :6%3(/ Z G]LHG]LQLH
EXGRZ\ V\VWHPyZ LQIRUPDW\F]Q\FK ]RULHQWRZDQ\FK QD XVáXJL RUD] LOXVWUXMH SURFHV LPSOHPHQWDFML DSOLNDFML :6%3(/ Z URGRZLVNX
Oracle BPEL Proces Manager + Oracle JDeveloper + Oracle Application Server.
Informacja o autorze.3UDFRZQLN,QVW\WXWX,QIRUPDW\NL3ROLWHFKQLNL3R]QDVNLHMRUD]SUH]HV=DU]GX6WRZDU]\V]HQLD3ROVNLHM*UXS\
8*\WNRZQLNyZ 6\VWHPX 2UDFOH =DLQWHUHVRZDQLD QDXNRZH REHMPXM HNVSORUDFM
GDQ\FK GDWD mining), systemy baz danych/hurtowni
GDQ\FK RUD] WHFKQRORJLH LQWHUQHWRZH 'OD NUDMRZ\FK L ]DJUDQLF]Q\FK XQLZHUV\WHWyZ RUD] SU]HGVL ELRUVWZ PLQ 1LHPF\ :LHOND
%U\WDQLD86$6áRZDFMD6áRZHQLDSURZDG]LZ\NáDG\LV]NROHQLD]]DNUHVXSURMHNWRZDQLDLLPSOHPHQWDFMLV\VWHPyZLQIRUPDW\F]Q\FK
Kieruje i doradza w projektach informatycznych realizowanych w architekturach internetowych. Autor ponad 100 publikacji z zakresu
RGNU\ZDQLD ]ELRUyZ F]
VW\FK SU]HWZDU]DQLD ]DS\WD HNVSORUDF\MQ\FK adaptatywnych serwerów WWW, technik indeksowania baz
danych, strojenia systemów baz danych, standardów -DYDGODED]GDQ\FKLGODDSOLNDFMLZLHORZDUVWZRZ\FK:VSyáWZyUFDVHULLNRQIHUH nFMLLVHPLQDULyZ3/28*VáX*F\FKWUDQVIHURZLZLHG]\LWHFKQRORJLLZUyGNUDMRZ\FKSU]HGVL
ELRUVWZLQIRUPDW\F]Q\FK
Tutorial: Implementacja aplikacji biznesowych w technologii WS-BPEL
51
Wprowadzenie
Business Process Execution /DQJXDJH %3(/ MHVW GHNODUDW\ZQ\P M
]\NLHP ]QDF]QLNyZ
;0/ VáX*F\P GR RSLVX Z\NRQDQLD SURFHVyZ EL]QHVRZ\FK NRU]\VWDMF\FK ] XVáXJ :HE ServiFHV %3(/ XPR*OLZLD UHDOL]DFM
DUFKLWHNWXU\ 62$ Service-Oriented $UFKLWHFWXUH ]D SRPRF
WHFKQLNNRPSR]\FMLLNRRUG\QDFMLXVáXJ:HE6HUYLFHV']L
NLX*\FLXM
]\ND%3(/SURVWHXVáXJL
Web 6HUYLFHVPRJE\üZ\NRU]\VWDQHGR]EXGRZDQLDXVáXJ]áR*RQ\FKSUH]HQWRZDQ\FK]DUD]HP
MDNRXVáXJL:HE6HUYLFHVZ\*V]HJRSR]LRPX
-
]\N%3(/SRZVWDáQDSRGVWDZLHGZyFKZF]HQLHMV]\FKM
]\NyZRSLVXV\VWHPyZSU]HSá\ZX
pracy (Workflow Systems): Web Services Flow /DQJXDJH:6)/M
]\NDgrafowego opracowaQHJRSU]H],%0RUD];/$1*M
]\NDEORNRZHJR]DSURMHNWRZDQHJRSU]H]Microsoft. Jego konFHSFMD QDZL]XMH UyZQLH* GR ZF]HQLHMV]\FK UR]ZL]D ] WHM G]LHG]LQ\ ebXML, BPSS, BPML,
:6&,:6&'/3LHUZV]DZHUVMDM
]\ND%3(/]RVWDáDSU]HGVWDZLRQDZVLHUSQLXURNXZHrVMD Z PDUFX URNX D Z NZLHWQLX URNX VSHF\ILNDFMD %3(/ ]RVWDáD SU]HND]DQD GR
Organization for the Advancement of Structured Information Standards (OASIS) w celu ostateczQHM VWDQGDU\]DFML 5yZQRF]HQLH SRZRáDQR NRPLWHW :HE Services Business Process Execution
Language Technical &RPPLWWHH :6%3(/ 7& NWyU\ VWDá VL
RGSRZLHG]LDOQ\ ]D NRRUG\QDFM
prac rozwojoZ\FKLSRSXODU\]DFM
UR]ZL]D
-
]\N%3(/XPR*OLZLDNRPSR]\FM
]áR*RQ\FKSURFHVyZEL]QHVRZ\FK] HOHPHQWyZ SURVW\FK
ZRSDUFLXRGZDSRGHMFLDDUDQ*DFM
XVáXJDQJRUFKHVWUDWLRQOXEFKRUHRJUDIL
XVáXJDQJchoUHRJUDSK\:UDPDFKDUDQ*DFMLXVáXJU\V]DNáDGDVL
LVWQLHQLHFHQWUDOQHJRNRPSRQHQWXQS
XVáXJL :HE 6HUYLFH NWyU\ NRRUG\QXMH Z\ZRáDQLD LQG\ZLGXDOQ\FK XVáXJ VNáDGDMF\FK VL
QD
NRPSOHWQ\SURFHVEL]QHVRZ\8VáXJLVNáDGRZHQLHPDMZLDGRPRFLXF]HVWQLF]HQLDZ]áR*RQ\P
procesie biznesowym.
XVáXJD
:HE6HUYLFH
XVáXJD
:HE6HUYLFH
NRRUG\QDWRU
XVáXJD
:HE6HUYLFH
XVáXJD
:HE6HUYLFH
XVáXJD
:HE6HUYLFH
XVáXJD
:HE6HUYLFH
XVáXJD
:HE6HUYLFH
XVáXJD
:HE6HUYLFH
5\V$UDQ*DFMDXVáXJ
5\V&KRUHRJUDILDXVáXJ
&KRUHRJUDILDXVáXJU\VQLHNRU]\VWD]NRQFHSFMLFHQWUDOQHJRNRRUG\QDWRUDOHF]]DNáDGDL*
ND*GD]XVáXJVNáDGRZ\FKSRVLDGDIUDJPHQWDU\F]QZLHG]
RVWUXNWXU]HSURFHVXEL]QHVRZHJRLVD
PRG]LHOQLHNRPXQLNXMHVL
]XVáXJDPL]DOH*Q\PL3U]HSá\ZVWHURZDQLDRGE\ZDVL
SRSU]H]Z]D
MHPQHZ\ZRáDQLDXVáXJVNáDGRZ\FK
0HWRGDDUDQ*DFMLXVáXJMHVWWUDNWRZDQDMDNRSDUDG\JPDWEDUG]LHMHODVW\F]Q\JG\*FHFKXMHVL
PLQ QDVW
SXMF\PL ]DOHWDPL XVáXJL VNáDGRZH PRJ XF]HVWQLF]\ü Z ]áR*RQ\FK SURFHVDFK
EL]QHVRZ\FKEH]NRQLHF]QRFLPRG\ILNDFMLLFKNRGX(UyGáRZHJRPR*OLZDMHVWUHDOL]DFMDVFeQDULXV]\DOWHUQDW\ZQ\FKQDZ\SDGHNDZDULLXVáXJL
'HILQLFMDSURFHVXEL]QHVRZHJRZM
]\NX%3(/SUHF\]XMHNROHMQRüZMDNLHMZ\NRQ\ZDQHV
V]HUHJRZH OXE UyZQROHJáH XVáXJL :HE 6HUYLFHV 0R*OLZH MHVW UyZQLH* GHILQLRZDQLH ]DFKRZD
ZDUXQNRZ\FKDZ\QLNLSUDF\MHGQHMXVáXJLPRJE\üSU]HND]\ZDQHMDNRDUJXPHQW\Z\ZRáDQLD
LQQHM %3(/ RIHUXMH WDN*H WUDG\F\MQH NRQVWUXNFMH S
WOL GHNODUDFMH ]PLHQQ\FK RSHUDFMH SRGVWaZLHQLDREVáXJ
Z\MWNyZLWG=Z\NOHSURFHV\EL]QHVRZH%3(/VZL]XDOL]RZDQHZIRUPLHGLagramów UML.
52
Maciej Zakrzewicz
.URNL SURFHVyZ EL]QHVRZ\FK %3(/ QD]\ZDQH V DNFMDPL DQJ DFWLYLW\ $NFMH PRJ PLHü
FKDUDNWHUSURVW\OXE]áR*RQ\%3(/RIHUXMHPR*OLZRFLRSLVXQDVW
SXMF\FKW\SyZDNFMLSURVW\FK
– Z\ZRáDQLHXVáXJL:HEService – znacznik <invoke>
– RF]HNLZDQLHQDZ\ZRáDQLHSURFHVXEL]QHVRZHJRSU]H]NOLHQWD±]QDF]QLN<receive>
– Z\JHQHURZDQLHRGSRZLHG]LQDZ\ZRáDQLHV\QFKURQLF]QH±]QDF]QLN<reply>
– podstawienie zmiennych – znacznik <assign>
– V\JQDOL]RZDQLHDZDULLLZ\MWNyZ±]QDF]QLN<throw>
– czasowe wstrzymanie wykonania – znacznik <wait>
– ]DNRF]HQLHSURFHVXEL]QHVRZHJR±]QDF]QLN<terminate>
3RZ\*V]HDNFMHPRJE\üRUJDQL]RZDQHZ]áR*RQHDOJRU\WP\SURFHVRZH]DSRPRFQDVW
SuMF\FKRSHUDFML
– XSRU]GNRZDQDVHNZHQFMDDNFML±]QDF]QLN<sequence>
– ZVSyáELH*QHZ\NRQDQLHDNFML±]QDF]QLN<flow>
– UR]JDá
]LHQLHVWHURZDQLD±]QDF]QLN<switch>
– NRQVWUXNFMDS
WOL±]QDF]QLN<while>
– Z\EyUFLH*HNDOWHUQDW\ZQ\FK±]QDF]QLN<pick>
%3(/XPR*OLZLDUyZQLH*GHILQLRZDQLHSRZL]D]XVáXJDPL]QDF]QLN<partnerLink>) oraz
deklarowanie zmiennych (znacznik <variable>). Definicja kompletnego procesu otoczona jest
znacznikami <process>.
3URFHVEL]QHVRZ\RSLVDQ\ZM
]\NX%3(/PDSRVWDüSOLNX;0/5HDOL]DFMDWDN]GHILQLRZaQHJR SURFHVX Z\PDJD X*\FLD SODWIRUP\ XUXFKRPLHQLRZHM RGSRZLHG]LDOQHM ]D LQWHUSUHWRZDQLH
SOLNX%3(/LVWRVRZQNRPXQLNDFM
]XVáXJDPL:HE6HUYLFHV±VHUZHUD%3(/1DU\QNXGRVW
pnych jest wiele propozycji takich serwerów, np. Oracle BPEL Process Manager, Microsoft BizTalk, IBM Websphere Business Integration Server Foundation, IBM BPWS4J, ActiveBPEL Engine, ActiveWebflow, OpenStorm Service Orchestrator.