ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ: ΡΠ΅ΡΠ²ΠΈΡΡ online ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° ΡΠΎΠ²Π°ΡΠΎΠ² Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ
ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ BPEL ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, Π² Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π²ΠΈΠ΄Π΅ web-ΡΠ»ΡΠΆΠ±Ρ (ΡΠΌ. Activity Diagram Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°). Π‘Π΅ΡΠ²ΠΈΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ: ΡΠ΅ΡΠ²ΠΈΡΡ online ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° ΡΠΎΠ²Π°ΡΠΎΠ² Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ°
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ: ΡΠ΅ΡΠ²ΠΈΡΡ online ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° ΡΠΎΠ²Π°ΡΠΎΠ² Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ
ΡΠ΅ΡΠ²ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π°ΠΊΠ°Π· ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°
Π’Π΅Π½Π΄Π΅Π½ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ, ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ — ΡΠΈΡΡΠ΅ΠΌ Ρ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ (Service-Oriented Architecture, SOA). Π Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ SOA, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ web-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². Π ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ web-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ — JAX-RPC, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ web-ΡΠ»ΡΠΆΠ±Π°ΠΌ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Java ΠΈ BPEL — ΡΠ·ΡΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ web-ΡΠ»ΡΠΆΠ±.
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° web-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π² ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ»ΡΠΆΠ±Ρ online ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΡΠΎΠ²Π°ΡΠΎΠ², ΠΎΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΡΠΎΠΌ Π·Π°ΠΊΠ°Π·Π°. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²Π»ΡΡΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π»ΡΠ±ΡΡ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ online Π·Π°ΠΊΠ°Π·Π° ΡΠΎΠ²Π°ΡΠ°.
Π ΡΡΠΎΠΉ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΊΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Web Seller ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ (ΡΠΌ. «ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°»), ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² RUP, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ»: Glossary, Vision, Activity Diagram, Use cases, Software Architecture Document ΠΈ Stakeholder Requests. Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΡΠΌ. Π°ΡΡΠ΅ΡΠ°ΠΊΡ Vision Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°).
ΠΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ BPEL, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ WSDL-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅, ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊ ΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ (ΡΠΌ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°).
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, Π³Π΄Π΅ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ΅ RUP
ΠΠ°Π½Π½ΡΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ², ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² RUP’Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π±Π½ΡΠΌ ΠΈ ΡΠ²ΠΎΠ΅ΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ Π½Π΅ ΡΡΠ°Π²ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ, ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² RUP, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠΎΡΠΎΠ½ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ (ΡΠΌ. Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ Stakeholder Requests Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°). ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π»ΠΈΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΈ Π·Π΄Π΅ΡΡ ΠΎΡΡΡΠΎ Π²ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΈΡΠΊΠ°ΠΌΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΡΡΠΌ. Π ΡΠ²ΡΠ·ΠΈ ΡΠΎ Π²ΡΠ΅ΠΌ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ (ΡΠΌ. Activity Diagram Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»ΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ (Business Use Cases). Π£ΠΆΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°Π±ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² RUP, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ Vision, Supplementary Specification, Use Cases, Software Architecture Document, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π½Π΅ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»ΡΠ»ΠΎΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ — ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠ΅ΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ RUP. ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΡΠ΅ΡΠΈΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅) Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ waterfall lifecycle (ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π°) — ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠ°ΠΏΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈ RUP. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ Π² Ρ ΠΎΠ΄Π΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π±ΠΎΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΎΡΠ΅Π½Ρ Π²Π΅Π»ΠΈΠΊΠ°. ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° RUP, ΡΡΠΎ ΡΡΡΠ΄Π΅Π½Ρ ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ Π²ΡΠ΅ ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΠΉ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡ — ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡ Π½Π° ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ΄Π°ΠΏΡΠ°ΡΠΈΡ RUP ΠΊ ΡΡΠ΅Π±Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ — ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠ°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ. Π Π°Π·Π²Π΅ΡΠ½ΡΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠ΅ΡΠ΅Π΄Π΅Π½ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π°ΡΡΠ΅ΡΠ°ΠΊΡΠ΅ Use Cases (ΠΊΠ°ΡΠ°Π»ΠΎΠ³ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°).
Π ΠΈΡΡΠ½ΠΎΠΊ 1 ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ΠΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΊΠ°Π·
§ ΠΠΊΡΠ°Π½Ρ: ΠΠ½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ)
§ ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠ° Π²Ρ ΠΎΠ΄ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ°Π·Π° ΡΠΎΠ²Π°ΡΠ°. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΡΠΌΠΌΠ° Π·Π°ΠΊΠ°Π·Π° Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΌΠΌΡ N, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π·Π°ΠΊΠ°Π·, ΡΡΠΎΡ Π·Π°ΠΊΠ°Π· ΡΡΠ°Π²ΠΈΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ» ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΠ» Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΈΡΡΠ΅ΠΊΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, Π·Π°ΠΊΠ°Π· ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ Π·Π°ΠΊΠ°Π·
§ ΠΠΊΡΠ°Π½Ρ: ΠΠ½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΡΠΎΠ΄Π°Π²Π΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°)
§ ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ (ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΎΡΠΎΡΠΌΠΈΠ²ΡΠΈΠΉ Π·Π°ΠΊΠ°Π·) ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΏΡΠΈ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΊΠ°Π·Π°. ΠΡΠΎΠ΄Π°Π²Π΅Ρ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π·Π°ΠΊΠ°Π·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ Π·Π°ΠΊΠ°Π·.
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ΠΡΠΌΠ΅Π½ΠΈΡΡ Π·Π°ΠΊΠ°Π·
§ ΠΠΊΡΠ°Π½Ρ: ΠΠ½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ), ΠΡΠ΅ΠΌΡ
§ ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π°, ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉ Π·Π°ΠΊΠ°Π·. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΡΠ°ΡΡ Π·Π°ΠΊΠ°Π· ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ΠΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π·Π°ΠΊΠ°Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
§ ΠΠΊΡΠ°Π½Ρ: ΠΠ½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ, ΠΡΠΎΠ΄Π°Π²Π΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°)
§ ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠΊΡΠ°Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°ΠΊΠ°Π·Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠΊΠ°Π·Π°Π² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π·Π°ΠΊΠ°Π·Π°.
Π’Π΅ΡΠΌΠΈΠ½Ρ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π³Π»ΠΎΡΡΠ°ΡΠΈΠΈ; ΡΠΌ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ.
Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ ΡΠ»ΡΠΆΠ± Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π΄Π²Π΅ ΡΠ»ΡΠΆΠ±Ρ — ΡΠ»ΡΠΆΠ±Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² (WebSellerDB) ΠΈ ΡΠ»ΡΠΆΠ±Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠΎΠ±ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° (WebSeller), ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ web-ΡΠ»ΡΠΆΠ±, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π½Π΅ ΡΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π΄Π°Π½Π½ΡΡ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» «Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° XML-ΡΡ Π΅ΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°») ΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ (SOAP over HTTP).
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π΄Π²Π° ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ/ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ web-ΡΠ»ΡΠΆΠ± (WSDL), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π² Π»ΡΠ±ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
Π‘Π΅ΡΠ²ΠΈΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°ΠΊΠ°Π·ΠΎΠ² (WebSellerDB)
ΠΡΠΎΡ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°ΠΊΠ°Π·Π° (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°). Π€ΠΎΡΠΌΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π° ΠΎΠΏΠΈΡΠ°Π½ XML-ΡΡ Π΅ΠΌΠΎΠΉ domain.xsd. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² Ρ ΡΠ°Π½ΡΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Apache Xindice, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ².
Π‘Π΅ΡΠ²ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ² (WebSeller)
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΎΡΠΎΠ±ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΡΠΎΠ²Π°ΡΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ» ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ ΠΈΠΌ Π·Π°ΠΊΠ°Π·, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ΄Ρ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈ ΠΎΠΏΠ»Π°ΡΠΈΠ² ΠΏΠΎΠΊΡΠΏΠΊΡ. ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΠΎΡΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ°Π·Π° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΉΠΌΠ°ΡΡΠ° (ΡΠΌ. Activity Diagram Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°).
ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ BPEL ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, Π² Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π²ΠΈΠ΄Π΅ web-ΡΠ»ΡΠΆΠ±Ρ (ΡΠΌ. Activity Diagram Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°). Π‘Π΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ActiveBPEL Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² — ΠΏΡΠΈΠΌΠ΅Ρ Loan Approval, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ Π΄ΠΈΡΠΊΠ΅ (ΡΠΌ. all.tar.gz/loan_approval Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°).
Π‘Ρ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ
Apache Xindice ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» «Apache Xindice»). ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Π² ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΠ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π½Π°Π±ΠΎΡ ΡΠ°Π±Π»ΠΈΡ, Π·Π΄Π΅ΡΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠ΅ΠΉ ΠΈ ΡΠΈΠΏΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΠ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΡΠ±ΠΎΡΠΊΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ. Π‘Ρ Π΅ΠΌΠ° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ (Π ΠΈΡΡΠ½ΠΎΠΊ 2 Π‘Ρ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ ΠΠ).
Π ΠΈΡΡΠ½ΠΎΠΊ 2 Π‘Ρ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ ΠΠ
ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
XML-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ XML ΠΈΠ³ΡΠ°Π΅Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ»Ρ. ΠΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, ΡΠ²ΡΠ·Π°Π½Ρ Ρ XML. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°ΠΊΠ°Π·Π°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΡ Π΅ΠΌΠΎΠΉ XML (domain.xsd). ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² web-ΡΠ»ΡΠΆΠ± — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ WSDL, ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ XML. ΠΠ°ΠΆΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ([XINDICE]) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π° Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ XPath ΠΈ XUpdate ([XUPDATE]). Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊ XSLT ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ Apache Ant Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ant ΡΠΊΡΠΈΠΏΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. ΠΠ°Π΄Π°Π½ΠΈΡ Ant (Ant Targets).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌΠΈ W3C.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Web-ΡΠ»ΡΠΆΠ±
WSDL
WSDL ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΈΠ°Π»Π΅ΠΊΡ XML Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ web-ΡΠ»ΡΠΆΠ±. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ WSDL ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ° ΡΠ»ΡΠΆΠ±Π° — ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ — ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ web-ΡΠ»ΡΠΆΠ±Π΅ (ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, HTTP, SMTP ΠΈ Ρ. Π΄.) — ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΈ Π³Π΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ web-ΡΠ»ΡΠΆΠ±Ρ, ΠΊΠ°ΠΊΠΎΠΉ Ρ Π½Π΅Π΅ URL — Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ .
JAX-RPC
ΠΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ JAX-PRC Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎΡ API ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ WSDL ΠΎ ΡΠΈΠΏΠ°Ρ ΠΏΠΎΡΡΠΎΠ² Π² Java ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ», ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ Π½ΠΈΠΆΠ΅.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Java Π² WSDL
§ ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ Java ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΡ Π΅ΠΌΡ XML (Boolean, String, Integer, ΠΈ Ρ. Π΄.)
§ ΠΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ (Holder) ΠΊΠ»Π°ΡΡΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ java.lang.Object, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ int, byte ΠΈ Ρ. Π΄.)
§ ΠΠ»Π°ΡΡΡ JavaBean ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ ΡΡ Π΅ΠΌΡ XML
§ ΠΡΡΠ΅ΡΠ°ΠΊΡΡ Java ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ WSDL (ΠΠ°ΠΊΠ΅Ρ — ΠΠΎΠΊΡΠΌΠ΅Π½Ρ WSDL, ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — PortType, ΠΠ΅ΡΠΎΠ΄ — ΠΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ — ΠΡΠΈΠ±ΠΊΠ°)
§ Java-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΡΠΈΡΡΡΡ java.rmi.Remote, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ java.rmi.RemoteException.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ WSDL Π² Java
§ ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΡ Π΅ΠΌΡ XML ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ Java
§ Π‘ΡΡΡΠΊΡΡΡΡ XML ΠΈ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² JavaBean
§ ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² public static final ΠΌΠ΅ΡΠΎΠ΄Ρ
§ ΠΡΡΠ΅ΡΠ°ΠΊΡΡ WSDL ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ Java
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ
ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ web-ΡΠ»ΡΠΆΠ±Ρ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π² Π½Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ.
JAX-RPC ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ javax.xml.rpc.Service. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Service ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ web-ΡΠ»ΡΠΆΠ±Ρ.
ΠΡΡΡ Π΄Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΈΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° web-ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Service. ΠΠ΄ΠΈΠ½ — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ proxy-ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² getPort () ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Service. ΠΡΠΎΡ proxy-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ web-ΡΠ»ΡΠΆΠ±Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡ ΡΠΈΠΏ ΠΏΠΎΡΡΠ° ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° WSDL Π² Java. ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ javax.xml.rpc.Call. ΠΠ±ΡΠ΅ΠΊΡ Call ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ² web-ΡΠ»ΡΠΆΠ±Ρ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Π°, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡ.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ web-ΡΠ»ΡΠΆΠ± ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΎΠ±ΠΌΠ΅Π½Π΅ XML-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Java, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ XML Π² ΠΎΠ±ΡΠ΅ΠΊΡΡ Java. Π Π΅Π΅ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² (public TypeMappingRegistry javax.xml.rpc.Service.getTypeMappingRegistry ()) ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π»ΠΎ web-ΡΠ»ΡΠΆΠ±Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ XML-ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (ΡΠΈΠΏΠ°), Java-ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΡ Π΄ΡΡΠ³ Π² Π΄ΡΡΠ³Π°. ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠ°ΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Serializer ΠΈ Deserializer. Serializer ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ Java-ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΡΡΡΠΎΠΊΡ XML, Π° Deserializer Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ JAX-RPC ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ String, Integer, Boolean ΠΈ Ρ. Π΄. Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π½Π°ΡΠ΅ΠΉ web-ΡΠ»ΡΠΆΠ±Ρ, Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ. Π ΠΏΠ°ΠΊΠ΅Ρ Apache Axis, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»Π°ΡΡΡ BeanSerializer ΠΈ BeanDeserializer Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² JavaBean Π² XML ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
JAX-RPC ΠΈ SOAP
JAX-RPC API Π±ΡΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° web-ΡΠ»ΡΠΆΠ±. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ web-ΡΠ»ΡΠΆΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ SOAP Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π²ΡΠ·ΠΎΠ²Π°. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ JAX-RPC Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JAX-RPC ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ SOAP.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ web-ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ SOAP ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΈΠ»ΠΈ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠ΄ΠΈΠ½ ΡΡΠΈΠ»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΈΠ»Π΅ΠΌ rpc, Π° Π΄ΡΡΠ³ΠΎΠΉ — ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΡΠΈΠ»Π΅ΠΌ (document style). ΠΠΊΡΠ°ΡΡΠ΅ ΡΡΠΈΠ»Ρ rpc ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² web-ΡΠ»ΡΠΆΠ±Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ XML web-ΡΠ»ΡΠΆΠ±Π΅, Π° Π² ΠΎΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ XML.
ΠΠΎΠ²Π΅ΡΡ ΡΡΠΈΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ SOAP: ΠΎΠ΄ΠΈΠ½ — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ SOAP ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ SOAP, Π° Π΄ΡΡΠ³ΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π±ΡΠΊΠ²Π΅Π½Π½ΡΠΌ XML (literal XML). ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΡΠΊΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ (ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ) Π²Ρ Π½Π΅ ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ , Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΠΏΠΎΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ XML Π² ΡΠ΅Π»ΠΎ SOAP.
ΠΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ: web-ΡΠ»ΡΠΆΠ±Ρ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ RPC-ΡΡΠΈΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ SOAP ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ Ρ Π±ΡΠΊΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ XML. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ JAX-RPC ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π»ΡΠ±Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ API ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π° Π΄Π²Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ, Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ API Π² ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π»ΡΡ, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ web-ΡΠ»ΡΠΆΠ±Ρ Π² ΠΎΠ±ΠΎΠΈΡ ΡΡΠΈΠ»ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ WSDL, Π² ΡΠΈΠΏ Java. ΠΠ΄ΠΈΠ½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ — ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ ΡΡ Π΅ΠΌΠ° XML ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ»Π°, ΡΡΠΎΠ±Ρ Π°ΡΡΠΈΠ±ΡΡΡ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° XML. ΠΡΡΠΈΠ±ΡΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π² ΡΠΈΠΏΡ Java. Π ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ XML.
SOAP Handlers
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ SOAP Handlers ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ SOAP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π² ΡΠ΅ΠΏΠΎΡΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°.
Axis ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ org.apache.axis.Handler. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
Π’Π°Π±Π»ΠΈΡΠ° 1 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° org.apache.axis.Handler
SOAP Handlers ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π·Π°Π΄Π°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ SOAP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Handler ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ generateWSDL (MessageContext), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ WSDL ΡΠ΅ΡΠ²ΠΈΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Π±ΡΠ°Π² Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ + «?wsdl»).
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ SOAP Handlers
Π€Π°ΠΉΠ» deployment descriptor ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, , ΠΈ (http://ws.apache.org/axis/java/reference.html). Π‘ΠΌ. ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ant-ΡΠ΅Π»ΠΈ axis-wsdl2java-server (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ» ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (deployment descriptor) ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ SOAP Handler’Π°Ρ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ XSLT-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅).
ΠΠΎΡΠΎΡΠΊΠΎ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ Apache
Apache Software Foundation
Apache Software Foundation (ASF, [APACHE]) — ΡΡΠΎ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ open source ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ASF, ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΠ ASF — Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΏΠΎΠ΄ ΡΡΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Π² ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π»ΡΡ .
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ASF Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ°Π·Π½ΡΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΠ, ΠΎΡ XML ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΄ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.
Π ΡΡΠΎΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ASF — ΡΡΠΎ:
1. Jakarta Tomcat — ΡΡΠ°Π»ΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Java Servlet ΠΈ JSP;
2. Apache Axis Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Apache Axis Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ Π² ActiveBPEL Engine (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» «BPEL Engine, ActiveBPEL, ActiveWebflow Professional»). ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Axis (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠ»ΡΠΆΠ±) Π·Π΄Π΅ΡΡ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌΠΈ. — «ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ» Π΄Π»Ρ web-ΡΠ»ΡΠΆΠ±;
3. Apache Xindice — XML-«Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ »;
4. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ API ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — Apache Ant, Log4j ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠΎΡΠΎΡΠΊΠΎ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ².
Jakarta Tomcat
Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ActiveBPEL Engine ΠΈ Apache Axis Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π² web-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Jakarta Tomcat ([TOMCAT]) — ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΡΠ°ΠΊΠΎΠ³ΠΎ web-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Jakarta Tomcat Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΡΠΌ. [TOMCAT]) ΠΈΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, [TOMCATBOOK].
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Tomcat ΠΈ ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅, Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ %CATALINA_HOME% ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΡΠ½Π΅Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ, ΠΊΡΠ΄Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Tomcat.
Π‘ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°:
Β§ %CATALINA_HOME%/shared — Π·Π΄Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Π² web-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ jar’ΠΎΠ², ΡΠΎ ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ /lib, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Java-ΠΊΠ»Π°ΡΡΡ (*.class), ΡΠΎΠ³Π΄Π° Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ /classes;
Β§ %CATALINA_HOME%/webapps — Π·Π΄Π΅ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Tomcat Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ (ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Ρ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΏΠ°ΠΏΠΊΡ webapps — Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ). ΠΡΠΌΠ΅ΡΠΈΠΌ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ.
Β§ %CATALINA_HOME%/bpr — ΠΎΠ± ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ «Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ (deployment) Web-ΡΠ»ΡΠΆΠ±».
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠ½ΡΡΠ½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» «Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ»).
Apache Axis
Axis — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° SOAP. Axis ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JAX-RPC ΠΈ
ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Axis ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΉΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ.
Axis ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ standalone ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΡΠ΅Π»Π΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π₯ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Jakarta Tomcat.
Apache Xindice
Apache Xindice — ΡΡΠΎ XML-«Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ». ΠΠ½Π° Ρ ΡΠ°Π½ΠΈΡ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅Ρ ΡΠΆΠ°ΡΡΠ΅ XML Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΊ ΡΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ. ΠΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ»Π° Π·Π°Π΄ΡΠΌΠ°Π½Π° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ². Π Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°Ρ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°Ρ Xindice ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ FAQ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ (http://xml.apache.org/xindice/faq.html).
Xindice ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ XML: DB API (http://xmldb-org.sourceforge.net).
Xindice Ρ ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΌΠ΅, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Xindice ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ·ΡΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² XPath (http://www.w3.org/TR/xpath) Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ·ΡΠΊ XUpdate (ΡΠΌ. XML: DB API), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Xindice ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Tomcat) Π² Π²ΠΈΠ΄Π΅ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (WAR). ΠΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ — ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ — ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ URI Π²ΠΈΠ΄Π°:
xmldb:xindice://localhost:8080/xindice/db/orders. ΠΠ΄Π΅ΡΡ xmldb: xindice — ΠΈΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, localhost:8080 — ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΏΠΎΡΡ, /xindice — ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Xindice, /db — Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ (ΠΊΠΎΡΠ½Π΅Π²Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ), orders — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
Π ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΏΡΠΈΡΠ΅ΠΌ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠ°ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ.
Xindice ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Π½Π°Π±ΠΎΡΠ° API:
1. XML: DB XML Database API — Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Xindice-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java;
2. Xindice XML-RPC API — Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Xindice-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ;
3. Core Server API — API ΡΠ΄ΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°.
XML:DB API ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ JDBC ΠΈ ODBC Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ .
XML:DB API ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡ ΡΠ΅ΡΡΡΡΡ. ΠΠΎΠΎΠ±ΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ΅ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ: XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, blob-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ, Π½ΠΎ Xindice ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±ΠΎΡΡ Ρ XML-ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ — ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΡΠΎΡΡΡ — XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ.
Xindice ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ XML: DB API Core Level 1: ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ XPathQueryService (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ XPath Π·Π°ΠΏΡΠΎΡΠΎΠ²), Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅XUpdateQueryService (Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² XUpdate) ΠΈ
CollectionManagementService (Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ).
Π’Π°ΠΊΠΆΠ΅ Xindice ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ , ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡΠΎΠ²: DatabaseInstanceManager (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ) ΠΈ CollectionManager (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°). Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ «Π‘Ρ Π΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ » ΠΈ «ΠΠ»Π°ΡΡ XindiceHelper».
ΠΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Apache
Π ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Apache, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Apache Ant ([ANT]) ΠΈ Log4j ([LOG4J]).
Apache Ant ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° GNU make. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΎΡΠΌΠ»ΡΡΡ ΡΠΈΠΏΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ±ΠΎΡΠΊΠ΅ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ build. xml) ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ: «ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅/ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²/ΠΏΠ°ΠΏΠΎΠΊ/Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ/ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΎΠΊ», «Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ», «Π·Π°ΠΏΡΡΠΊ JUnit-ΡΠ΅ΡΡΠΎΠ²», «ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Java-ΠΊΠ»Π°ΡΡΠΎΠ²», «Π²ΡΠ·ΠΎΠ² XSLT-ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°» ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π ΡΠΎΠΌΡ ΠΆΠ΅, Ant ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π·Π°Π΄Π°Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Axis ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡ Java2WSDL, WSDL2Java ΠΈ AdminClient.
Log4j — API, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π»ΠΎΠ³ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Π°, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π―Π·ΡΠΊ BPEL
Π―Π·ΡΠΊ BPEL (Business Process Execution Language) — ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ XML ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° web-ΡΠ»ΡΠΆΠ±Π°Ρ .
Π―Π·ΡΠΊ BPEL ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² Π΄ΡΡΠ³ΠΈΡ web-ΡΠ»ΡΠΆΠ± (invoke/receive/reply), ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (scope), ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (scope/compensate), Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΠΌΠΈ (throw/catch), Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (sequence/flow) ΠΈ Π΄Ρ.
ΠΠ° ΡΠ°Π΄Ρ Ρ ΡΡΠΈΠΌΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠΌΠΈ Π² ΡΠ·ΡΠΊ BPEL Π²Π²Π΅Π΄Π΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ it/then/else, while, switch ΠΈ Ρ. Π΄.
ΠΠ°Π±ΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ΅ΠΉ BPEL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°Π½ΡΡΠ΅, BPEL-ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ΅ΠΉ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΡΠ²ΡΠ·ΡΠΌΠΈ (link). (ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, Π½ΠΎ ΠΎΠ½Π° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠ΅ΠΉ.) ΠΡΡΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ ΡΠ²ΡΠ·ΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (expressions).
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ°ΡΡΠΎΠ²ΡΠΌΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠΌΠΈ; Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° createInstance ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² «yes». ΠΠΎΠ³Π΄Π° ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠΎΠ²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ correlation sets. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
BPEL ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π½Π°Π±ΠΎΡΠ΅ Π΄ΡΡΠ³ΠΈΡ web-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ WSDL 1.1, XML Schema 1.0, XPath 1.0, ΠΈ WS Addressing.
BPEL Engine, ActiveBPEL, ActiveWebflow Professional
ΠΡΠΎΡΠ΅ΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ BPEL, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ΅Π΄Ρ, Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠ° ΡΡΠ΅Π΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ BPEL Engine.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ BPEL Engine, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ , ΡΠ°ΠΊ ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ActiveBPEL ([AEBPEL]). ΠΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Apache Axis (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» «Apache Axis»), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π² ActiveBPEL Engine ΠΊΠ°ΠΊ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ web-ΡΠ»ΡΠΆΠ±Ρ.
ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠΎΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ActiveWebflow Professional ([AEWEBFLOW]). ActiveWebflow ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠ°ΠΊ plug-in Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Eclipse; c Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ BPEL ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π² ΡΡΠΈΠ»Π΅ WYSIWYG. Π’Π°ΠΊΠΆΠ΅, ActiveWebflow ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ»ΡΠΆΠ±Ρ Π² ActiveBPEL Engine.
ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° XML-ΡΡ Π΅ΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°
ΠΠΎΠΊΡΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ°Π·Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
§ orderID — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π° Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅, ΡΠΎ Π·Π° Π΅Π³ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ, Π° Π½Π΅ Π²Π½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°;
§ state — ΡΡΠ°ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅; ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π° ΡΠ΅ΡΠ΅Π· BPEL-ΠΏΡΠΎΡΠ΅ΡΡ;
§ customer — ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅; ΠΏΠΎ Π½Π΅ΠΉ BPEL-ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ² Π½ΠΎΠΌΠ΅Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ Π»ΠΈΡΠ½ΠΎΡΡΠΈ — personalID — ΠΈ ΠΈΠΌΡ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ — customerName, ΠΊΠ°ΠΊ ΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ BPEL-ΠΏΡΠΎΡΠ΅ΡΡ Loan Approval, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ. Π’Π°ΠΊ ΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π·Π°ΠΊΠ°Π·Ρ (ΡΠ΅ΡΠ²ΠΈΡ WebSellerDB), Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅. Π’ΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΄Π»Ρ ΡΠΎΠ²Π°ΡΠΎΠ² Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΡ Π΅ΠΌΡ product/productID, ΡΠΌ. Π½ΠΈΠΆΠ΅.
§ cart — ΠΊΠΎΡΠ·ΠΈΠ½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ; ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², Π² Π½Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠΌΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° — shopName, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ ΡΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ°Π·Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π°Π½Π½ΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ°Π·Π½ΡΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ², ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΈ Π½Π°ΡΡΡΠΎΠΈΠ² Π΅Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·;
§ product — ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°; Π² Π½Π΅Π³ΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ productID (ΡΠΌ. Π²ΡΡΠ΅), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ price ΠΈ description, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ½ΠΎΠΉ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ Loan Approval.
XML-ΡΡ Π΅ΠΌΠ°, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ Π΄Π°Π½Π½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ°Π·Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ domain.xml (ΡΠΌ. websellerwsdldomain.xsd Π² Π°ΡΡ ΠΈΠ²Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΠΎΠ΅ΠΊΡ WebSeller Π΄Π»Ρ Eclipse 3.1.1», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°).
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° WSDL-ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ
WSDL-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ web-ΡΠ»ΡΠΆΠ± ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. Π½ΠΈΠΆΠ΅:
Π ΠΈΡΡΠ½ΠΎΠΊ 3 WSDL-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ
Π€Π°ΠΉΠ» webseller-definitions.wsdl ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, Π³Π΄Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠΈΠΏΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠΈΠΏ webseller: Fault ΠΈ Π΄Π²Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠΈΠΏΠ° — webseller: orderProcessingFault Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π² BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈ webseller: storageFault ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· web-ΡΠ»ΡΠΆΠ±Ρ.
ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ web-ΡΠ»ΡΠΆΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ document/literal ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΠ
Apache Xindice ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ XML Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ web-ΡΠ»ΡΠΆΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΊΠ»Π°ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΡΠ·ΡΠΊ Java). Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Java Π² XML ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π’Π°ΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ JAX-RPC — JAX-RPC ΠΈ SOAP. Π ΡΠΎΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ SOAP Handlers ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ SOAP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° MessageContext.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, SOAP Handler ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ Π·Π²Π΅Π½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΠ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Java Π² XML-Π²ΠΈΠ΄Π΅ Π² ΠΠ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡ SOAP-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅). Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡΠΊΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π², Π΄Π΅Π»Π°Ρ Π²ΡΠ±ΠΎΡΠΊΡ ΠΈΠ· ΠΠ ΠΈ ΡΠΎΡΠΌΠΈΡΡΡ Π½Π° ΡΡΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΠ²Π΅ΡΠ½ΠΎΠ΅ SOAP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠ»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΠ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² SOAP-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠ° web-ΡΠ»ΡΠΆΠ±Ρ.
ΠΠ»Π°ΡΡ XindiceHelper
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ net.sf.dmitrygusev.webseller.data.XindiceHelper ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΠ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ org.xmldb.api.modules.XPathQueryService, org.xmldb.api.modules.XUpdateQueryService ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ org.xmldb.api.base.Collection ΠΊΠ°ΠΊ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ° SQL — select/insert/update/delete, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ° Π²ΡΠ±ΠΎΡΠΊΠΈ Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ XPath, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ — XUpdate.
ΠΠ»Π°ΡΡ WebSellerDBHandler
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ SOAP Handler’ΠΎΠΌ Π΄Π»Ρ web-ΡΠ»ΡΠΆΠ±Ρ WebSellerDB, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ»ΡΠΆΠ±Ρ, ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΠ ΠΊΠ»Π°ΡΡΡ XindiceHelper, ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ SOAP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠΎΠ»Π½ΡΡ ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π° Π² ΠΠ ΠΈ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΡΠ·ΠΎΠ² web-ΡΠ»ΡΠΆΠ±Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ Π·Π°Π³Π»ΡΡΠΊΠΈ Π² ΡΠ»ΡΡΠ°Π΅ JAX-RPC ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π»ΠΈΠ±ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ invoke ΡΠ·ΡΠΊΠ° BPEL);
public static Order createOrder ()
{
Customer customer = new Customer («testCustomerID», «testPersonalID» ,
" Test Customer Name");
CartItem[] cartItems = {
new CartItem (
new Product («testProductID1» ,
new BigDecimal (10), «testDescription1»), 1),
new CartItem (
new Product («testProductID2» ,
new BigDecimal (29), «testDescription2»), 2)
};
Cart cart = new Cart («Test Shop Name», cartItems);
Order order = new Order («fakedOrderID» ,
OrderState.fromString (OrderState._PENDING), customer, cart);
return order;
}
…
//ΠΡΠ·ΠΎΠ² web-ΡΠ»ΡΠΆΠ±Ρ
String orderID = getWebSellerDB ().addOrder (new SingleOrderBox (createOrder ()));
ΠΠ΄Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΊΠ°Π·Π° Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ addOrder ().
ΠΡΠΎΡ Π²ΡΠ·ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½ SOAP Handler’ΠΎΠΌ WebSellerDBHandler. ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ addOrder () Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΡΠΎΡ ΠΊΠΎΠ΄:
if (!isJustDebug () && «addOrder» .equals (operationName))
{
Node singleOrderBoxNode = requestMessage. getSOAPBody ().getFirstChild ();
Node orderNode = singleOrderBoxNode. getFirstChild ();
String orderXml = orderNode. toString ();
String resourceID = addOrder (orderXml);
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈΠ· SOAP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°, ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ WebSellerDBHandler. addOrder () — Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π° Π² ΠΠ:
private String addOrder (String orderXml) throws XMLDBException
{
//Add this order to the database
String resourceID = XindiceHelper. getInstance ().insert (orderXml);
updateOrderState (resourceID, OrderState. PENDING);
return resourceID;
}
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°ΡΡ XindiceHelper, Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΠ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠ°Π»Π΅Π΅ ΡΡΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ SOAP-Π·Π°ΠΏΡΠΎΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ web-ΡΠ»ΡΠΆΠ±Ρ WebSellerDBSoapBindingImpl. addOrder ():
orderXml = replaceWithRealOrderID (orderXml, resourceID);
replaceSoapBody (requestMessage, boxOrderXml («singleOrderBox», orderXml));
ΠΠ°Π»Π΅Π΅ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ SOAP Handler’ΠΎΠ² ΠΈ Π΄ΠΎΠΉΠ΄Π΅Ρ Π΄ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° web-ΡΠ»ΡΠΆΠ±Ρ:
public String addOrder (SingleOrderBox orderBox)
throws RemoteException, StorageFault
{
//The order is already stored in the database with WebSellerDBHandler.
//OrderBox.getOrder ().getOrderID () is the order database real ID now.
return orderBox. getOrder ().getOrderID ();
}
Π ΠΈΡΠΎΠ³Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²Π΅ΡΠ½Π΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΠΠ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° updateOrderState () Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ addOrder ():
private String addOrder (String orderXml) throws XMLDBException
{
//Add this order to the database
String resourceID = XindiceHelper. getInstance ().insert (orderXml);
updateOrderState (resourceID, OrderState. PENDING);
return resourceID;
}
ΠΠ΅ΡΠΎΠ΄ updateOrderState () Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°, Π²ΡΠΏΠΎΠ»Π½ΡΡ XUpdate Π·Π°ΠΏΡΠΎΡ ΠΊ ΠΠ:
public static void updateOrderState (String orderID, OrderState newOrderState)
throws XMLDBException
{
String xupdate =
"
" xmlns: xu="http://www.xmldb.org/xupdate" «+
" >" +
" «+
newOrderState.getValue () +
" «+
" «;
XindiceHelper.getInstance ().update (orderID, xupdate);
}
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΠ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° SOAP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎ ΡΡΡΠΈ, Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π²ΡΡΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ:
private String getOrdersByCustomerID (String customerID)
throws XMLDBException, Exception
{
StringBuffer orderSequence = new StringBuffer ();
QName[] namespaces = null;
String xpath = «//order[customer/customerID='» + customerID + «']» ;
ResourceIterator results = XindiceHelper. getInstance ().select (xpath, namespaces);
while (results.hasMoreResources ()) {
Resource res = results. nextResource ();
String orderXml = getCleanOrderXml ((String) res. getContent ());
orderSequence.append (orderXml);
}
return boxOrderXml («multipleOrderBox», orderSequence. toString ());
}
ΠΠ»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ XPath. ΠΠ΄Π΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ getCleanOrderXml () ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ XML-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ SOAP-ΠΎΡΠ²Π΅Ρ.
BPEL-ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° WebSeller
BPEL-ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° WebSeller ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΡΠΈ ΡΠ°ΡΡΠΈ:
1. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
2. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ
3. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π·Π°ΠΊΠ°Π·Π°
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ .
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΠΌΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ, Π² Π½ΠΈΡ Π²Ρ ΠΎΠ΄ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ, Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ°Π·Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΠ. ΠΡΠ΅ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Flow.
Π ΠΈΡΡΠ½ΠΎΠΊ 4 ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Ρ ΡΡΠΌΠΌΠ° Π·Π°ΠΊΠ°Π·Π°, ΠΏΠΎΡΡΠΈΡΠ°Π½Π½Π°Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅, ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, 10 000).
Π ΠΈΡΡΠ½ΠΎΠΊ 5 ΠΡΠ·ΠΎΠ² Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠ»ΡΠΆΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ (ApproveLoan)
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π²ΡΠ·ΠΎΠ² ΡΠ»ΡΠΆΠ±Ρ ApproveLoan, ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ°ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π° Π² ΠΠ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΠ»ΡΠΆΠ±Π° ApproveLoan Π²Π΅ΡΠ½Π΅Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ, ΡΠΎ Π΅ΡΡΡ Π² ΠΊΡΠ΅Π΄ΠΈΡΠ΅ ΠΎΡΠΊΠ°Π·Π°Π½ΠΎ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ orderProcessingFault Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π‘ΠΌ. ΡΠ°Π·Π΄Π΅Π» «ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ» Π½ΠΈΠΆΠ΅.
Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ loanProcessFault, ΡΠΎ ΠΎΠ½ΠΎ Π»ΠΎΠ²ΠΈΡΡΡ ΡΡΡ ΠΆΠ΅ ΠΈ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° orderProcessingFault Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π·Π°ΠΊΠ°Π·Π°
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ ΡΡΠ°ΠΏΠΎΠ², Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π½Π΅ Π±ΡΠ»ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅: ΡΡΠ°ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΠΠ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ Π½Π° OrderState. WAITING ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠΉ:
1. ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π°
2. ΠΡΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ°Π·Π°
3. Π’Π°ΠΉΠΌΠ°ΡΡΠ°
4.
Π ΠΈΡΡΠ½ΠΎΠΊ 6 Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°
Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ» Π·Π°ΠΊΠ°Π· (ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° WebSeller. confirmOrder (orderID)), ΡΡΠΎΡ Π·Π°ΠΊΠ°Π· ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΠΠ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΠΏΠ° orderProcessingFault Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π½Π°ΡΡΡΠΏΠΈΠ²ΡΠ΅ΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ.
Correlation Set
BPEL-ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ web-ΡΠ»ΡΠΆΠ±Π°, Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ. Π Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΡ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΈΡΠ»ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» ΠΊΠ»ΠΈΠ΅Π½Ρ, Π² BPEL ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ BPEL Engine’Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (instances) ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ — ΡΡΠΎ Correlation Sets.
ΠΠ»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°Π±ΠΎΡΠ° ΡΠ°ΠΊΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π° (orderID). ΠΠ°Π±ΠΎΡΡ Correlation Set ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π² WSDL-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ web-ΡΠ»ΡΠΆΠ±Ρ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° BPEL Π΄Π»Ρ WSDL (ΡΠ°ΠΉΠ» properties.wsdl):
propertyName="tns:orderID" query="/webseller:cancelOrderID" />
propertyName="tns:orderID" query="/webseller:confirmOrderID" />
Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ· BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ°:
portType="order-processing:WebSeller" variable="confirmOrderMessage" >
operation="deleteOrder" outputVariable="processVoidReply"
partnerLink="OrderStorageLink" portType="data:WebSellerDB" />
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΌ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π΄Π²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°:
Π ΠΈΡΡΠ½ΠΎΠΊ 7 ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ° WebSeller
Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Ρ ΡΠΈΠΏΠΎΠΌ orderProcessingFault, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΠΠ ΡΠ°Π½Π΅Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π·Π°ΠΊΠ°Π·. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² BPEL ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ compensate, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ compensationHandler ΡΠ΅Π³ΠΈΠΎΠ½Π° (Scope), ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π’Π°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π΅ ScopeOrder (ΡΠΌ. Π ΠΈΡΡΠ½ΠΎΠΊ 4 ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠ°). ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ — ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π²ΡΠ·Π²Π°Π²ΡΠ΅ΠΌΡ ΡΠ»ΡΠΆΠ±Ρ WebSeller.
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ (deployment) Web-ΡΠ»ΡΠΆΠ±
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ (ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ) ΡΠ΅ΡΠ²ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌΠΈ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ ant (ΡΠΌ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. ΠΠ°Π΄Π°Π½ΠΈΡ Ant (Ant Targets)). Π£ΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈ ΡΠΈΠΏΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ Ant, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
1. ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°;
2. ΠΠ»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ web-ΡΠ»ΡΠΆΠ± ΠΈ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²);
3. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ².
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» Π°ΡΡ ΠΈΠ²Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π² ActiveBPEL Engine: webseller/wsr/webseller.wsr — web-ΡΠ»ΡΠΆΠ±Π° WebSellerDB. ΠΡΡ ΠΈΠ² BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ° WebSeller — webseller/bpr/webseller.bpr — ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ActiveWebflow Professional.
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (webseller/ant/ — ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³):
ant build
ΠΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ — ΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π°ΡΡ ΠΈΠ²ΠΎΠ² ΡΠ»ΡΠΆΠ± Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ %CATALINA_HOME%/bpr. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ant deploy
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:
ant deploy-junit
ant test
Π’Π΅ΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ ΡΡΠΎΡ ΡΠ΅ΡΠ²ΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π½Π°Π±ΠΎΡ JUnit-ΡΠ΅ΡΡΠΎΠ² (ΠΊΠ»Π°ΡΡ net.sf.dmitrygusev.webseller.test.TestWebSeller).
ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΡ ΡΠ°Π±ΠΎΡΡ
Π ΠΊΠ»Π°ΡΡΠ΅ TestWebSeller ΡΠΌΡΠ»ΠΈΡΡΡΡΡΡ ΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π° Π²ΡΠ·ΠΎΠ²Π° ΡΠ»ΡΠΆΠ±Ρ:
1. ΠΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (ΠΌΠ΅ΡΠΎΠ΄ testOrderProcessingConfirm ());
2. ΠΡΠΌΠ΅Π½Π° ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π° (ΠΌΠ΅ΡΠΎΠ΄ testOrderProcessingCancel ());
3. Π’Π°ΠΉΠΌΠ°ΡΡ (ΠΌΠ΅ΡΠΎΠ΄ testOrderProcessingTimeout ()).
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ° Ρ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠΌ
Π ΠΈΡΡΠ½ΠΎΠΊ 8 ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΡΠ΅ΡΡΠ΅ Ρ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠΌ
Π ΠΈΡΡΠ½ΠΎΠΊ 9 ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘Π΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ (Service-Oriented Architectures, SOA) ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ. Π₯ΠΎΡΡ SOA Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ web-ΡΠ»ΡΠΆΠ± Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ web-ΡΠ»ΡΠΆΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ SOA. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π½Π° ΡΡΠ΄Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ web-ΡΠ»ΡΠΆΠ± Π² ΡΠ·ΡΠΊΠ°Ρ ΠΠΠ (JAX-RPC/SAAJ/JAXM, Π΅ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ·ΡΠΊΠ° Java) ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ . ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΉ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ·ΡΠΊ BPEL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌ Ρ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ·ΡΠΊΠΎΠ² ΠΠΠ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ·Π½Π΅Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°ΠΌ, Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ SOA, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ BPEL, Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π·Π° ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π½ΠΈ ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ, ΠΏΡΠΎΡΠΈΠ² ΠΌΠ΅ΡΡΡΠ΅Π² ΠΈ Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π° ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ JAX-RPC/SAAJ/JAXM.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
1. [AEBPEL]ActiveBPEL, LLC — ΡΡΠΎ ΡΠΎΡΡΠ²Π΅ΡΠ½Π°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Π² open source, ΠΊΠΎΡΠΎΡΠ°Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΡΠ΅Ρ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ActiveBPEL™ engine. ActiveBPEL engine — ΡΡΠΎ runtime environment, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Business Process Execution Language for Web Service (BPEL4WS, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ BPEL) Π²Π΅ΡΡΠΈΠΈ 1.1. (http://activebpel.org/)
2. [AEWEBFLOW]ΠΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ°Ρ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ 100% ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ BPEL 1.1. ActiveWebflow ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ActiveWebflow Professional) ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ BPEL ΡΡΠΎΠ²Π½Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ (ActiveWebflow Enterprise). Π Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ , Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ActiveWebflow Professional ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ BPEL-ΠΏΡΠΎΡΠ΅ΡΡΡ, Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ActiveWebflow Enterprise. (http://www.active-endpoints.com/products/index.html)
3. [ANT]Apache Ant — ΡΡΠΎ Java-based build tool. (http://ant.apache.org/)
4. [AXIS]Apache Axis — ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ SOAP («Simple Object Access Protocol»), ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ W3C. (http://ws.apache.org/axis/)
5. [JAVA]Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Java (http://java.sun.com/)
6. [TOMCAT]ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠ°Π»ΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Servlet 2.4 ΠΈ JavaServer Pages 2.0. (http://jakarta.apache.org/tomcat/index.html)
7. [XINDICE]Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ XML-«Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ». (http://xml.apache.org/xindice/)
8. [XUPDATE]Π―Π·ΡΠΊ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ². (http://xmldb-org.sourceforge.net/xupdate/)
9. [APACHE]ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Apache Software Foundation, (www.apache.org)
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°
Π ΠΈΡΡΠ½ΠΎΠΊ 10 Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°
Β§ «ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ» — ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» «ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ»).
Β§ «ΠΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ (WebSeller)» — ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΠΊΠ»ΡΡΠ°Ρ:
o «ΠΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΠΊΠ°» — ΡΡΠ° ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΠΊΠ°;
o «ΠΠ»Π°ΠΊΠ°ΡΡ» — ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠ΅ΠΆΠΈ ΠΈ ΠΏΠ»Π°ΠΊΠ°ΡΡ;
o «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP» — ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ RUP;
o «ΠΡΠΎΠ΅ΠΊΡ WebSeller Π΄Π»Ρ Eclipse 3.1.1» — Π°ΡΡ ΠΈΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° WebSeller.
Β§ «ΠΠ°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Tomcat» — ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Tomcat, Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° WebSeller.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ
ΠΡΡΠ΅ΡΠ°ΠΊΡ ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ Π΄ΠΈΡΠΊΠ΅, ΡΠΌ. Glossary Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ «ΠΡΡΠ΅ΡΠ°ΠΊΡΡ RUP», ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΈΡΠΊΠ°