BPEL - त्वरित गाइड
SOA या सेवा उन्मुख वास्तुकला एक वास्तुशिल्प दृष्टिकोण है, जो व्यावसायिक प्रक्रियाओं को पुन: प्रयोज्य सेवाओं के रूप में प्रस्तुत करने के लिए प्रौद्योगिकी का उपयोग करता है।
यह व्यवसाय पर केंद्रित है और एकीकरण, विज़ुअलाइज़ेशन, निगरानी और अनुकूलन के नए स्तरों में प्रक्रिया परिवर्तन को सक्षम बनाता है।
यह एक प्रौद्योगिकी नहीं है, यह एक अवधारणा है और व्यावसायिक स्वचालन समाधान बनाने के लिए प्रौद्योगिकियों का उपयोग करने की रणनीति है।
अब हम देखेंगे कि BPEL क्या है और यह SOA में कैसे मदद करता है।
BPEL क्या है?
बिजनेस प्रोसेस इंजीनियरिंग लैंग्वेज एसओए आर्किटेक्चर में प्रोग्राम बनाने के लिए इस्तेमाल की जाने वाली तकनीक है।
BPEL प्रक्रिया सेवा घटक जोड़ना
BPEL प्रक्रिया सेवा घटक जोड़ने के लिए इन चरणों का पालन करें -
एप्लिकेशन नेविगेटर से, फ़ाइल> नया> एप्लिकेशन> SOA एप्लिकेशन चुनें।
यह SOA एप्लिकेशन विज़ार्ड बनाएँ शुरू करता है।
अनुप्रयोग नाम संवाद में, अनुप्रयोग नाम फ़ील्ड में एक आवेदन नाम दर्ज करें।
निर्देशिका क्षेत्र में, SOA समग्र अनुप्रयोग और प्रोजेक्ट बनाने के लिए एक निर्देशिका पथ दर्ज करें।
अगला पर क्लिक करें।
प्रोजेक्ट नाम संवाद में, प्रोजेक्ट नाम फ़ील्ड में एक नाम दर्ज करें।
अगला पर क्लिक करें।
प्रोजेक्ट SOA सेटिंग संवाद में, BPEL प्रक्रिया के साथ समग्र का चयन करें।
समाप्त पर क्लिक करें।
BPEL कम्पोजिट में फाइलें
BPEL कम्पोज़िट में निम्न फ़ाइलें हैं -
composite.xml - यह फ़ाइल सेवाओं, सेवा घटकों, संदर्भों और तारों की संपूर्ण समग्र विधानसभा का वर्णन करती है।
.bpel - इस फ़ाइल में प्रक्रिया में जोड़े गए गतिविधियों का समूह शामिल है।
.componentType - यह फ़ाइल BPEL प्रक्रिया सेवा घटक के लिए सेवाओं और संदर्भों का वर्णन करती है।
.wsdl - यह फ़ाइल इस BPEL प्रक्रिया प्रवाह, समर्थित क्लाइंट इंटरफ़ेस और संचालन, और अन्य सुविधाओं के लिए इनपुट और आउटपुट संदेशों को परिभाषित करती है।
BPL प्रक्रिया में उपयोग की जाने वाली अवधारणाएँ
इस खंड में, हम BPL प्रक्रिया में शामिल विभिन्न अवधारणाओं को जानेंगे।
वाद्य-स्थान
-
आमतौर पर निजी व्यावसायिक प्रक्रियाओं में उपयोग किया जाता है।
एक केंद्रीय प्रक्रिया (जो दूसरी वेब सेवा हो सकती है) इसमें शामिल वेब सेवाओं का नियंत्रण होता है।
ऑपरेशन में शामिल वेब सेवाओं पर विभिन्न कार्यों के निष्पादन का निर्देशन करता है।
- शामिल वेब सेवाओं को "पता" नहीं है (और यह जानने की आवश्यकता नहीं है) कि वे एक रचना प्रक्रिया में शामिल हैं और वे एक उच्च-स्तरीय व्यवसाय प्रक्रिया में भाग ले रहे हैं।
ऑर्केस्ट्रेशन के केवल केंद्रीय समन्वयक को इस लक्ष्य के बारे में पता है, इसलिए ऑर्केस्ट्रेशन को संचालन की स्पष्ट परिभाषाओं और वेब सेवाओं के आह्वान के आदेश के साथ केंद्रीकृत किया गया है।
नृत्यकला
एक केंद्रीय समन्वयक पर भरोसा नहीं करता है।
कोरियोग्राफी में शामिल प्रत्येक वेब सेवा को ठीक से पता होता है कि कब अपने संचालन को अंजाम देना है और किसके साथ बातचीत करनी है।
कोरियोग्राफी में शामिल प्रत्येक वेब सेवा को ठीक से पता होता है कि कब अपने संचालन को अंजाम देना है और किसके साथ बातचीत करनी है।
कोरियोग्राफी में सभी प्रतिभागियों को व्यवसाय प्रक्रिया, निष्पादन के लिए संचालन, संदेशों को आदान-प्रदान करने और संदेश के आदान-प्रदान के समय के बारे में पता होना चाहिए।
इस अध्याय में, हम विभिन्न गतिविधियों के बारे में जानेंगे जो बिल्डिंग ब्लॉक्स को बनाते हैं। BPEL प्रोसेस सर्विस कंपोनेंट के बिल्डिंग ब्लॉक्स।
Oracle BPEL डिज़ाइनर में ऐसी गतिविधियाँ शामिल होती हैं जिन्हें आप BPEL प्रक्रिया सेवा घटक में खींचते हैं और इसकी विशेषताओं और गुण मानों को परिभाषित करने के लिए किसी गतिविधि पर डबल-क्लिक करते हैं।
गतिविधि निर्दिष्ट करें
गतिविधि करना
गतिविधि प्राप्त करें
आइए अपने बाद के अनुभाग में चालान गतिविधि के बारे में अधिक जानें।
गतिविधि करना
आह्वान गतिविधि एक ऑपरेशन को निर्दिष्ट करने के लिए सक्षम करती है जिसे सेवा के लिए लागू किया जाना है (इसके साथी लिंक द्वारा पहचाना गया)। ऑपरेशन सेवा द्वारा प्रदान किए गए पोर्ट पर एक तरफ़ा या अनुरोध-प्रतिक्रिया हो सकती है। चर को स्वचालित रूप से एक आह्वान गतिविधि में बनाया जा सकता है। एक आह्वान गतिविधि एक तुल्यकालिक सेवा को आमंत्रित करती है या एक अतुल्यकालिक वेब सेवा शुरू करती है।
डेटा भेजने और प्राप्त करने की प्रक्रिया में चालान गतिविधि एक पोर्ट खोलती है। इस पोर्ट का उपयोग आवश्यक डेटा जमा करने और प्रतिक्रिया प्राप्त करने के लिए किया जा सकता है। सिंक्रोनस कॉलबैक के लिए, भेजने और प्राप्त दोनों कार्यों के लिए केवल एक पोर्ट की आवश्यकता होती है।
पार्टनर लिंक को उन सभी पक्षों के बीच संचार आदान-प्रदान के रूप में परिभाषित किया जाता है, जिसके साथ BPEL प्रक्रिया करती है।
वे वास्तविक कार्यान्वयन के संदर्भ हैं, जिसके माध्यम से बीपीईएल प्रक्रिया बाहरी दुनिया के साथ बातचीत करती है।
साझीदार कड़ियाँ
ये BPEL प्रक्रिया द्वारा लागू की जाने वाली सेवाओं के लिंक हैं।
क्लाइंट पार्टनर लिंक
ये उन सेवाओं के लिंक हैं जो BPEL प्रक्रिया को लागू कर सकते हैं।
सहयोगी लिंक गुण
पार्टनर लिंक प्रॉपर्टी एडिटर आपको अपनी BPEL प्रक्रियाओं के लिए पार्टनर लिंक स्थापित करने की अनुमति देता है। पार्टनर लिंक प्रॉपर्टी एडिटर के साथ, आप निम्नलिखित निर्दिष्ट कर सकते हैं -
Name - इनवोक तत्व का नाम निर्दिष्ट करता है।
WSDL File - पार्टनर लिंक के साथ जुड़े डब्लूएसडीएल फ़ाइल को इंगित करता है।
Partner Link Type - WSDL में परिभाषित पार्टनर लिंक प्रकार को इंगित करता है।
My Role - व्यवसाय प्रक्रिया की भूमिका को स्वयं इंगित करता है।
Partner Pole - पार्टनर की भूमिका का संकेत देता है।
Documentation - गुण विंडो पर पहुँचा।
पार्टनर लिंक को .bpel फ़ाइल में परिभाषित किया गया है।
एक BPEL सेवाओं के साथ निम्नलिखित तीन तरीकों से बातचीत कर सकता है -
- BPEL प्रक्रिया को लागू करने वाली सेवाएँ
- BPEL प्रक्रिया द्वारा लागू की गई सेवाएँ
- ऐसी सेवाएँ जो दोनों तरह से कार्य करती हैं
इस अध्याय में, हम सीखेंगे कि पार्टनर लिंक कैसे बनाएं।
पार्टनर लिंक बनाने के लिए नीचे दिए गए चरणों का पालन करें -
SOA समग्र संपादक में, BPEL प्रक्रिया सेवा घटक को डबल-क्लिक करें।
सेवा घटक पर क्लिक करने पर, Oracle BPEL डिज़ाइनर प्रदर्शित होता है।
घटक पैलेट में, BPEL सेवा का विस्तार करें।
एक पार्टनर लिंक को उपयुक्त पार्टनर लिंक स्विमलेन में खींचें।
इस लिंक के लिए फ़ील्ड्स को पूरा करें जैसा कि पार्टनर लिंक प्रॉपर्टीज़ में ऊपर बताया गया है।
एडेप्टर फ़ाइल सिस्टम, एफ़टीपी सर्वर, डेटाबेस टेबल, डेटाबेस कतार, सॉकेट, जावा संदेश सेवा (जेएमएस), एमक्यू और ओरेकल ई-बिजनेस सूट तक पहुंच के साथ बीपीईएल प्रक्रिया सेवा घटक को एकीकृत करने में सक्षम करते हैं। यह विज़ार्ड BPEL प्रक्रिया सेवा घटक के साथ उपयोग के लिए नीचे दिए गए चित्र में दिखाए गए एडेप्टर के प्रकारों को कॉन्फ़िगर करने में सक्षम बनाता है -
एडाप्टर प्रकार
निम्न छवि विभिन्न एडेप्टर प्रकारों को दिखाती है -
उन्नत कतार (AQ)
एक कतार के साथ बातचीत के लिए। AQ भाग लेने वाले अनुप्रयोगों के बीच द्विदिश, अतुल्यकालिक संचार के लिए एक लचीला तंत्र प्रदान करता है।
ओरेकल बिजनेस एक्टिविटी मॉनिटरिंग (BAM)
Oracle BAM सर्वर में डेटा ऑब्जेक्ट के लिए डेटा प्रकाशित करने के लिए।
डेटाबेस
JDBC और Oracle Business Intelligence (जो कि एक विशेष डेटा स्रोत प्रकार है) के माध्यम से Oracle और गैर-Oracle डेटाबेस के साथ सहभागिता के लिए।
एफ़टीपी और फ़ाइल
स्थानीय फ़ाइल सिस्टम और दूरस्थ फ़ाइल सिस्टम (फ़ाइल स्थानांतरण प्रोटोकॉल (FTP) के उपयोग के माध्यम से) पर फ़ाइल विनिमय (पढ़ने और लिखने) के लिए।
जावा मैसेजिंग सर्विस (JMS)
जेएमएस के साथ बातचीत के लिए। JMS आर्किटेक्चर कई मैसेजिंग सर्वर आर्किटेक्चर में एक क्लाइंट इंटरफ़ेस का उपयोग करता है।
संदेश कतार (MQ)
WebSphere MQ कतार प्रणाली के साथ संदेश विनिमय के लिए।
Oracle अनुप्रयोग
ओरेकल एप्लीकेशन के एकीकृत व्यापार अनुप्रयोगों के सेट के साथ बातचीत के लिए।
ओरेकल बी 2 बी
मेटाडेटा सेवा (एमडीएस) रिपॉजिटरी में बी 2 बी मेटाडाटा ब्राउज़ करने और दस्तावेज़ परिभाषा का चयन करने के लिए।
कुर्सियां
टीसीपी / आईपी सॉकेट पर संचार के लिए मानक या गैर-मानक प्रोटोकॉल मॉडलिंग के लिए।
एडाप्टर सेवा का नाम
सेवा नाम विंडो एक नाम दर्ज करने का संकेत देती है, जब एडेप्टर प्रकार फूस से चुना जाता है। इस उदाहरण के लिए,File Adapterचुना गया। जब विज़ार्ड पूर्ण हो जाता है, तो BPEL प्रक्रिया सेवा घटक के लिए अनुप्रयोग नेविगेटर में इस सेवा नाम से एक WSDL फ़ाइल दिखाई देती है (इस उदाहरण के लिए, नामReadFile.wsdl)। सेवा का नाम प्रोजेक्ट के भीतर अद्वितीय होना चाहिए। इस कॉन्फ़िगरेशन फ़ाइल में इस विज़ार्ड के साथ निर्दिष्ट एडाप्टर कॉन्फ़िगरेशन सेटिंग्स शामिल हैं। अन्य कॉन्फ़िगरेशन फ़ाइलें (जैसे हेडर फ़ाइलें और एडेप्टर के लिए विशिष्ट फ़ाइलें) भी बनाई जाती हैं। इन फ़ाइलों को अनुप्रयोग नेविगेटर में प्रदर्शित किया जाता है।
ओरेकल BPEL डिज़ाइनर में BPEL प्रक्रिया मॉनिटर को Oracle BPEL डिज़ाइनर के शीर्ष पर मॉनिटर का चयन करके कॉन्फ़िगर किया जा सकता है।
इस स्तर पर, Oracle BAM एडाप्टर को कॉन्फ़िगर करने की आवश्यकता है।
क्लाइंट BPEL प्रोसेस सेवा BPEL प्रक्रिया को एक संदेश भेजता है और सेवा BPEL प्रक्रिया को नीचे दिए गए चित्र में दिखाए अनुसार उत्तर देने की आवश्यकता नहीं है -
क्लाइंट BPEL प्रक्रिया को एक मान्य भागीदार लिंक और एक इनवोक गतिविधि की आवश्यकता है।
सेवा BPEL प्रक्रिया एक प्राप्त गतिविधि की आवश्यकता है।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है। WSDL फ़ाइल नीचे दी गई है।
<wsdl:portType name = "BPELProcess">
<wsdl:operation name = "process">
<wsdl:input message = "client:BPELProcessRequestMessage" />
<wsdl:output message = "client:BPELProcessResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
क्लाइंट BPEL प्रक्रिया सेवा BPEL प्रक्रिया (नीचे दिए गए आंकड़े में d1) के लिए एक अनुरोध भेजती है, और एक तत्काल उत्तर (नीचे के आंकड़े में d2) प्राप्त करती है। उदाहरण के लिए, एक उपयोगकर्ता कॉलेज में प्रवेश के लिए ऑनलाइन आवेदन पत्र के लिए सदस्यता का अनुरोध करता है और तुरंत ईमेल पुष्टि प्राप्त करता है कि उनका अनुरोध स्वीकार कर लिया गया है।
क्लाइंट BPEL प्रोसेस को एक इनवोक गतिविधि की आवश्यकता है। क्लाइंट साइड पर पोर्ट अनुरोध भेजता है और उत्तर प्राप्त करता है।
WSDL में परिभाषित सेवा बीपीएल प्रक्रिया को आने वाले अनुरोध को स्वीकार करने के लिए एक गतिविधि की आवश्यकता होती है, और अनुरोधित जानकारी या एक त्रुटि (एक त्रुटि (नीचे के चित्र में F1)) को वापस करने के लिए एक उत्तर गतिविधि की आवश्यकता होती है।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है। WSDL फ़ाइल नीचे दी गई है।
WSDL File
<wsdl:portType name = "BPELProcess">
<wsdl:operation name = "process">
<wsdl:input message = "client:BPELProcessRequestMessage" />
<wsdl:output message = "client:BPELProcessResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
क्लाइंट BPEL प्रक्रिया सेवा BPEL प्रक्रिया (नीचे दिए गए चित्र में d1) के लिए एक अनुरोध भेजती है, और सेवा के उत्तर देने तक इंतजार करती है (नीचे दिए गए चित्र में d2)।
उदाहरण के लिए, उपयोगकर्ता कॉलेज में प्रवेश के लिए ऑनलाइन आवेदन पत्र के लिए सदस्यता का अनुरोध करता है और जब तक यह प्रवेश कार्यालय में स्वीकार नहीं किया जाता है तब तक अनुरोध की पुष्टि नहीं की जा सकती है।
क्लाइंट BPEL प्रोसेस को अनुरोध भेजने के लिए एक इनवोक गतिविधि की आवश्यकता होती है और उत्तर प्राप्त करने के लिए एक गतिविधि प्राप्त होती है।
सेवा BPEL प्रक्रिया को आने वाले अनुरोध को स्वीकार करने के लिए एक प्राप्त गतिविधि की आवश्यकता होती है और अनुरोधित जानकारी या गलती को वापस करने के लिए एक आह्वान गतिविधि होती है।
Note - सिंक्रोनस और अतुल्यकालिक BPEL प्रक्रिया से प्रतिक्रिया के बीच का अंतर यह है कि सिंक्रोनस सेवा क्लाइंट को जवाब देने के लिए एक उत्तर गतिविधि का उपयोग करती है और एक एसिंक्रोनस सेवा एक इनवोक गतिविधि का उपयोग करती है।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है। WSDL फ़ाइल नीचे दी गई है।
WSDL File
<wsdl:portType name = "BPELProcess">
<wsdl:operation name = "process">
<wsdl:input message = "client:BPELProcessRequestMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name = "BPELProcessCallback">
<wsdl:operation name = "processResponse">
<wsdl:input message = "client:BPELProcessResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
क्लाइंट BPEL प्रक्रिया सेवा BPEL प्रक्रिया (नीचे दिए गए आंकड़े में d1) के लिए एक अनुरोध भेजती है, और सेवा के जवाब देने या एक निश्चित समय सीमा तक पहुंचने तक इंतजार करती है, जो भी पहले आता है। (नीचे के आंकड़े में d2)।
उदाहरण के लिए, उपयोगकर्ता किसी कॉलेज में प्रवेश के लिए ऑनलाइन आवेदन पत्र के लिए सदस्यता का अनुरोध करता है और यदि उपयोगकर्ता को एक निश्चित समय के भीतर पुष्टिकरण उत्तर नहीं मिलता है तो अनुरोध रद्द कर दिया जाता है।
क्लाइंट BPEL प्रक्रिया को अनुरोध भेजने के लिए एक चालान गतिविधि की आवश्यकता होती है और दो शाखाओं के साथ एक पिक गतिविधि - a onMessage शाखा और ए onAlarmडाली। यदि समय सीमा समाप्त होने के बाद उत्तर आता है, तो संदेश मृत पत्र कतार में चला जाता है।
सेवा BPEL प्रक्रिया को आने वाले अनुरोध को स्वीकार करने के लिए एक प्राप्त गतिविधि की आवश्यकता होती है और अनुरोधित जानकारी या गलती को वापस करने के लिए एक आह्वान गतिविधि होती है।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है।
इस अध्याय में, हम एक अधिसूचना टाइमर के साथ अतुल्यकालिक बातचीत के बारे में जानेंगे। अतुल्यकालिक बातचीत से संबंधित निम्नलिखित बिंदुओं पर विचार करें -
क्लाइंट BPEL प्रक्रिया सेवा BPEL प्रक्रिया के लिए एक अनुरोध भेजती है और एक उत्तर की प्रतीक्षा करती है, हालांकि एक टाइमर समाप्त होने के बाद एक अधिसूचना भेजी जाती है।
क्लाइंट BPEL प्रक्रिया टाइमर समाप्त होने के बाद भी सेवा BPEL प्रक्रिया से उत्तर की प्रतीक्षा करना जारी रखती है।
क्लाइंट BPEL प्रक्रिया को अनुरोध भेजने के लिए एक चालान गतिविधि वाली एक गुंजाइश गतिविधि की आवश्यकता होती है, और उत्तर स्वीकार करने के लिए एक गतिविधि प्राप्त होती है। onAlarm स्कोप गतिविधि के हैंडलर की समय सीमा होती है और टाइमर समाप्त होने पर क्या करना है, इस पर निर्देश होते हैं।
उदाहरण के लिए, 60 सेकंड प्रतीक्षा करें, फिर एक संकेत भेजें कि यह प्रक्रिया अपेक्षा से अधिक समय ले रही है।
सेवा BPEL प्रक्रिया को आने वाले अनुरोध को स्वीकार करने के लिए एक प्राप्त गतिविधि की आवश्यकता होती है और अनुरोधित जानकारी या गलती को वापस करने के लिए एक आह्वान गतिविधि होती है।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है।
इस अध्याय में, हम वन रिक्वेस्ट और मल्टीपल रिस्पॉन्स की अवधारणा के बारे में जानेंगे।
क्लाइंट BPEL प्रक्रिया सेवा BPEL प्रक्रिया के लिए एक एकल अनुरोध भेजती है और बदले में कई प्रतिक्रियाएं प्राप्त करती है।
उदाहरण के लिए, अनुरोध किसी उत्पाद को ऑनलाइन ऑर्डर करने के लिए हो सकता है, और पहली प्रतिक्रिया अनुमानित प्रसव के समय, दूसरी प्रतिक्रिया भुगतान की पुष्टि और तीसरी प्रतिक्रिया एक अधिसूचना हो सकती है जिसे उत्पाद ने भेज दिया है। इस उदाहरण में, संख्या और प्रकार की प्रतिक्रियाएँ अपेक्षित हैं।
क्लाइंट BPEL प्रक्रिया को अनुरोध भेजने के लिए एक चालान गतिविधि की आवश्यकता होती है, और तीन प्राप्त गतिविधियों के साथ एक अनुक्रम गतिविधि।
सेवा बीपीईएल प्रक्रिया को क्लाइंट से संदेश स्वीकार करने के लिए एक गतिविधि प्राप्त करने की आवश्यकता होती है, और तीन आह्वान गतिविधियों के साथ एक अनुक्रम विशेषता, प्रत्येक उत्तर के लिए एक।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है।
इस अध्याय में, हम एक अनुरोध की अवधारणा और दो संभावित प्रतिक्रियाओं में से एक के बारे में जानेंगे।
क्लाइंट BPEL प्रक्रिया सेवा BPEL प्रक्रिया के लिए एक एकल अनुरोध भेजती है और दो संभावित प्रतिक्रियाओं में से एक प्राप्त करती है।
उदाहरण के लिए, अनुरोध किसी उत्पाद को ऑनलाइन ऑर्डर करने के लिए हो सकता है, और पहली प्रतिक्रिया या तो इन-स्टॉक संदेश या आउट-ऑफ-स्टॉक संदेश हो सकती है।
क्लाइंट BPEL प्रक्रिया को निम्नलिखित की आवश्यकता है -
अनुरोध भेजने के लिए एक सक्रिय गतिविधि।
दो शाखाओं के साथ एक पिक गतिविधि: इन-स्टॉक प्रतिक्रिया के लिए एक ऑनमैसेज और इन-स्टॉक संदेश प्राप्त होने पर क्या करना है, इस पर निर्देश।
आउट-ऑफ-स्टॉक प्रतिक्रिया के लिए एक दूसरा ऑनमैसेज और आउट-ऑफ-स्टॉक संदेश प्राप्त होने पर क्या करना है पर निर्देश।
सेवा BPEL प्रक्रिया को क्लाइंट से संदेश स्वीकार करने के लिए एक गतिविधि प्राप्त करने की आवश्यकता होती है, और दो शाखाओं के साथ एक स्विच गतिविधि, एक इनवोक गतिविधि के साथ स्टॉक में संदेश भेजती है यदि आइटम उपलब्ध है, और एक दूसरी गतिविधि भेजने वाली गतिविधि के साथ आइटम उपलब्ध नहीं होने पर स्टॉक से बाहर का संदेश।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है।
इस अध्याय में, हम एक अनुरोध, एक अनिवार्य प्रतिक्रिया और एक वैकल्पिक प्रतिक्रिया की अवधारणा को समझेंगे।
ग्राहक BPEL सेवा सेवा BPEL प्रक्रिया के लिए एक एकल अनुरोध भेजता है और एक या दो प्रतिक्रियाएँ प्राप्त करता है।
यहां, उत्पाद ऑनलाइन ऑर्डर करने का अनुरोध किया गया है। यदि उत्पाद में देरी होती है, तो सेवा एक संदेश भेजती है जिससे ग्राहक को पता चलता है। किसी भी मामले में, सेवा हमेशा आइटम जहाजों के लिए एक अधिसूचना भेजता है।
क्लाइंट BPEL सेवा को अनुरोध भेजने के लिए इनवोक गतिविधि वाली एक गुंजाइश गतिविधि की आवश्यकता होती है, और अनिवार्य उत्तर स्वीकार करने के लिए एक गतिविधि प्राप्त होती है। वैकल्पिक संदेश के लिए,onMessageयदि वैकल्पिक संदेश प्राप्त होता है (उदाहरण के लिए, आपको सूचित किया जाता है कि उत्पाद में देरी हो गई है) तो क्या करना है, इस निर्देश के साथ स्कोप गतिविधि का हैंडलर सेट किया गया है। क्लाइंट BPEL प्रक्रिया अनिवार्य उत्तर प्राप्त करने के लिए प्रतीक्षा करती है। यदि अनिवार्य उत्तर पहले प्राप्त होता है, तो BPEL प्रक्रिया वैकल्पिक उत्तर की प्रतीक्षा किए बिना जारी रहती है।
सेवा बीपीईएल प्रक्रिया को एक गुंजाइश गतिविधि की आवश्यकता है जिसमें प्राप्त गतिविधि और अनिवार्य शिपिंग संदेश भेजने के लिए एक गतिविधि है, और गुंजाइश है onAlarm हैंडलर वैकल्पिक विलंबित संदेश भेजने के लिए यदि एक टाइमर समाप्त हो जाता है (उदाहरण के लिए, यदि आइटम 24 घंटे में शिप नहीं किया गया है तो विलंबित संदेश भेजें)।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है।
अब, हम BPEL में आंशिक प्रसंस्करण की अवधारणा सीखेंगे।
क्लाइंट BPEL प्रक्रिया सेवा BPEL प्रक्रिया के लिए एक अनुरोध भेजता है और एक तत्काल प्रतिक्रिया प्राप्त करता है, लेकिन सेवा पक्ष पर प्रसंस्करण जारी रहता है।
इस पैटर्न में कई शॉट कॉलबैक भी शामिल हो सकते हैं, इसके बाद लंबी अवधि के प्रसंस्करण भी हो सकते हैं।
उदाहरण के लिए, ग्राहक एक छुट्टी पैकेज खरीदने के लिए अनुरोध भेजता है, और सेवा खरीद की पुष्टि करने के लिए तत्काल उत्तर भेजती है, फिर होटल, उड़ान, किराये की कार और इतने पर बुकिंग जारी रखती है।
क्लाइंट BPEL प्रक्रिया को प्रत्येक अनुरोध के लिए एक आह्वान गतिविधि की आवश्यकता होती है और अतुल्यकालिक लेनदेन के लिए प्रत्येक उत्तर के लिए एक गतिविधि प्राप्त होती है, या प्रत्येक तुल्यकालिक लेनदेन के लिए बस एक आह्वान गतिविधि होती है।
सेवा BPEL प्रक्रिया को क्लाइंट से प्रत्येक अनुरोध के लिए एक गतिविधि प्राप्त करने की आवश्यकता है, और प्रत्येक प्रतिक्रिया के लिए एक चालान गतिविधि है। एक बार जब प्रतिक्रियाएं समाप्त हो जाती हैं, तो सेवा BPEL प्रक्रिया सेवा के रूप में अपने प्रसंस्करण के साथ जारी रख सकती है, लेन-देन में एकत्रित जानकारी का उपयोग करके ग्राहक से किसी भी अन्य इनपुट के बिना आवश्यक कार्य करने के लिए।
सभी भागीदार गतिविधियों के साथ, वेब सेवाएँ विवरण भाषा (WSDL) फ़ाइल सहभागिता को परिभाषित करती है।
हम इस अध्याय में BPEL के साथ कई एप्लिकेशन इंटरैक्शन के बारे में जानेंगे।
जब एक लेनदेन में दो से अधिक अनुप्रयोग शामिल होते हैं।
यह ए-टू-बी-टू-सी-टू-ए लेनदेन पैटर्न एक ही समय में कई लेनदेन को संभाल सकता है। इसलिए, संदेश कहाँ जाता है, इस पर नज़र रखने के लिए एक तंत्र की आवश्यकता होती है।
WS- एड्रेसिंग या सहसंबंध सेट का उपयोग करके इसे संभाला जा सकता है।
हमने पिछले अध्यायों में से एक में चर्चा की है कि सिंक्रोनस वेब सेवा एक है, जो एक आह्वान को तत्काल प्रतिक्रिया प्रदान करती है।
नीचे दिखाए गए स्क्रीनशॉट में, हमने एक सिंक्रोनस BPEL प्रक्रिया बनाई है जिसमें उपयोगकर्ता से अनुरोध स्वीकार करने के लिए एक गतिविधि प्राप्त होती है। उत्तर गतिविधि एक साथ प्रतिक्रिया वापस भेजती है।
जैसा कि एसिंक्रोनस वेब सेवा से पहले चर्चा की गई है, जो अन्य वेब सेवा के लिए अनुरोध भेजती है और प्रतिक्रिया का इंतजार करती है।
नीचे दिखाए गए स्क्रीनशॉट में, हमने एसिंक्रोनस बीपीईएल प्रक्रिया बनाई है जिसमें उपयोगकर्ता से अनुरोध स्वीकार करने के लिए एक गतिविधि प्राप्त होती है। असाइनमेंट गतिविधि आगे अनुरोध में विभिन्न तत्वों को मान प्रदान करती है।
इसके बाद, आह्वान गतिविधि हैलोवर्ल्ड एप्लिकेशन को आमंत्रित करती है जो एक साथ प्रतिक्रिया भेजती है और जिसे प्राप्त गतिविधि में कब्जा कर लिया जाता है।
इसके अलावा, हमारे पास कॉलबैक गतिविधि है जो अंततः आउटपुट उत्पन्न करती है और एसिंक्रोनस रूप से प्रतिक्रिया भेजती है।
यदि आप डबल क्लिक करते हैं receiveInput या callbackClient, आप देखेंगे कि उनमें से प्रत्येक के पास केवल एक चर है।
receiveInput → inputVariable
callbackClient → outputVariable
इस अध्याय में, हम समझेंगे कि बीपीईएल में समानांतर प्रवाह कैसे काम करता है।
फ्लो गतिविधि क्या है?
एक प्रवाह गतिविधि में आमतौर पर कई अनुक्रम गतिविधियां होती हैं, और प्रत्येक अनुक्रम समानांतर में किया जाता है। एक प्रवाह गतिविधि में अन्य गतिविधियाँ भी हो सकती हैं।
उदाहरण के लिए, दो एसिंक्रोनस कॉलबैक समानांतर में निष्पादित होते हैं, ताकि एक कॉलबैक को दूसरे को पहले पूरा करने के लिए इंतजार न करना पड़े। प्रत्येक प्रतिक्रिया को एक अलग वैश्विक चर में संग्रहीत किया जाता है।
प्रवाह गतिविधि में, बीपीईएल कोड समानांतर शाखाओं की संख्या निर्धारित करता है। हालांकि, अक्सर उपलब्ध जानकारी के आधार पर आवश्यक शाखाओं की संख्या अलग होती है।
फ्लोएन गतिविधि क्या है?
फ्लोएन गतिविधि एन के मूल्य के बराबर कई प्रवाह बनाता है, जो प्रक्रिया के भीतर उपलब्ध डेटा और तर्क के आधार पर रन टाइम पर परिभाषित होता है। सूचकांक चर वृद्धि हर बार एक नई शाखा बनाई जाती है, जब तक कि सूचकांक चर एन के मूल्य तक नहीं पहुंचता।
फ्लोएन गतिविधि डेटा तत्वों की एक मनमानी संख्या पर गतिविधियां करती है। जैसे ही तत्वों की संख्या में परिवर्तन होता है, बीपीईएल प्रक्रिया तदनुसार समायोजित हो जाती है।
फ्लोएन द्वारा बनाई गई शाखाएं समान गतिविधियां करती हैं, लेकिन विभिन्न डेटा का उपयोग करती हैं। प्रत्येक शाखा इनपुट चर को देखने के लिए सूचकांक चर का उपयोग करती है। सूचकांक चर का उपयोग उस शाखा के लिए विशिष्ट डेटा प्राप्त करने के लिए एक्सपीथ अभिव्यक्ति में किया जा सकता है।
BPEL सशर्त शाखाओं के माध्यम से विकल्प बनाने के लिए तर्क लागू करता है। सशर्त शाखाओं पर आधारित दो अलग-अलग क्रियाएं नीचे दी गई हैं -
गतिविधि स्विच करें
इस पद्धति में, आप दो या अधिक शाखाएँ स्थापित करते हैं, प्रत्येक शाखा के साथ एक XPath अभिव्यक्ति के रूप में। यदि अभिव्यक्ति सही है, तो शाखा निष्पादित होती है। यदि अभिव्यक्ति गलत है, तो BPEL प्रक्रिया अगली शाखा की स्थिति में चली जाती है, जब तक कि यह या तो एक वैध शाखा की स्थिति नहीं पाती है, अन्यथा शाखा का सामना करती है, या शाखाओं से बाहर निकल जाती है। यदि एक से अधिक शाखा की स्थिति सत्य है, तो BPEL पहली सच्ची शाखा को क्रियान्वित करता है।
जबकि गतिविधि
आप दो कार्यों के बीच चयन करने के लिए थोड़ी देर के लूप बनाने के लिए थोड़ी देर की गतिविधि का उपयोग कर सकते हैं।
यह समझने के लिए कि फॉल्ट हैंडलिंग का उपयोग कैसे किया जाता है, हमें Oracle SOA सूट में एक सर्विस कंपोजिट की बुनियादी वास्तुकला को सीखना होगा।
Service components- बीपीईएल प्रोसेस, बिजनेस रूल, ह्यूमन टास्क, मध्यस्थ। इनका उपयोग SOA समग्र अनुप्रयोग के निर्माण के लिए किया जाता है।
Binding components - एक SOA समग्र और बाहरी दुनिया के बीच संबंध स्थापित करें।
Services - एसओए समग्र आवेदन के लिए एक प्रवेश बिंदु प्रदान करता है।
Binding - एसओएपी / एचटीटीपी, जेसीए अडैप्टर आदि जैसी सेवा से संवाद करने वाले प्रोटोकॉल को परिभाषित करता है।
WSDL - एक वेब सेवा की सेवा परिभाषा को परिभाषित करता है।
References - बाहरी सेवाओं को संदेश भेजने के लिए SOA समग्र अनुप्रयोग सक्षम करता है
Wires - सेवा घटकों के बीच कनेक्शन को सक्षम करता है।
दोष के प्रकार
आइए अब हम विभिन्न प्रकार के दोषों को देखते हैं।
व्यावसायिक दोष
तब होता है जब एप्लिकेशन THROW गतिविधि या एक चालान निष्पादित करता है, प्रतिक्रिया के रूप में गलती प्राप्त करता है। दोष का नाम BPEL प्रक्रिया सेवा घटक द्वारा निर्दिष्ट किया गया है। फ़ॉल्ट नाम और फ़ॉल्ट वैरिएबल का उपयोग करने वाला फ़ॉल्ट हैंडलर इस फ़ॉल्ट को पकड़ लेता है।
रनटाइम दोष
यह सिस्टम द्वारा फेंका गया है। ये दोष जुड़े हुए हैंRunTimeFaultMessage और में शामिल हैं
http://schemas.oracle.com/bpel/extensionnamespace।
दोष से निपटने के तरीके
इस खंड में, हम दोष से निपटने के विभिन्न तरीकों के बारे में जानेंगे।
गतिविधि फेंको
गतिविधि को स्पष्ट रूप से फेक फेंको। कैच ब्लॉक इस गलती को पकड़ता है और इसी क्रिया को इसी तरह निष्पादित किया जाता है।
थ्रो एक्टिविटी का उपयोग करके, आप व्यावसायिक दोष और निर्मित दायरे में फेंक सकते हैं, आप इस दोष को पकड़ सकते हैं और कॉल करने वाले (उपभोक्ता) को कार्रवाई करने के लिए पुनर्निर्देशित कर सकते हैं।
उपर्युक्त दृष्टिकोण के बजाय, आप बनाए गए दायरे की कैच गतिविधि में पकड़े गए समान दोष को फेंक देते हैं। मुख्य दायरे में, आप कैटचेल गतिविधि का उपयोग करके इस दोष को पकड़ सकते हैं।
त्रुटि हैंडलर फ्रेमवर्क (EHF)
EHF में उपयोग की जाने वाली 2 मुख्य फाइलें हैं -
- Fault-Policy.xml
- Fault-Bindings.xml
जब भी BPEL प्रक्रिया में कोई त्रुटि होती है, EHF जाँच करेगा कि त्रुटि Fault-Bindings.xml फ़ाइलों में मौजूद है या नहीं। यदि ऐसा है, तो फाल्ट-पॉलिसी। Xml फ़ाइल में कार्रवाई की जाएगी। यदि कार्रवाई नहीं मिली, तो दोष फेंक दिया जाएगा और इसे पकड़ ब्लॉक में संभाला जाएगा।
फॉल्ट मैनेजमेंट फ्रेमवर्क (फॉल्ट-पॉलिसी.एक्सएमएल और फॉल्ट-बिंडिंग्स.एक्सएमएल) को एक एसओए कंपोजिट के अंदर रखा गया है।
फॉल्ट-हैंडलर्स जैसे कैच और कैटचेल सभी दोषों को पकड़ने के लिए BPEL के अंदर हैं, लेकिन fault policies will only be executed when an invoke activity fails.
इस अध्याय में, हम एक दोषपूर्ण प्रक्रिया के पुनर्जीवन से संबंधित विभिन्न परिदृश्य देखेंगे।
परिदृश्य ए
BPEL कोड एक गलती-नीति का उपयोग करता है और "ora-human-हस्तक्षेप" गतिविधि का उपयोग करके एक दोष को नियंत्रित किया जाता है। फिर गलती को पुनर्प्राप्त करने योग्य के रूप में चिह्नित किया जाता है और उदाहरण स्थिति "रनिंग" पर सेट की जाती है।
परिदृश्य बी
BPEL कोड एक गलती-नीति का उपयोग करता है और एक गलती को पकड़ा जाता है और "ora-rethrow-गलती" कार्रवाई का उपयोग करके फिर से फेंक दिया जाता है। फिर गलती को पुनर्प्राप्त करने योग्य के रूप में चिह्नित किया जाता है और उदाहरण स्थिति "दोषपूर्ण" पर सेट होती है; बशर्ते गलती एक ठीक हो (जैसे URL उपलब्ध नहीं था)।
बीपीईएल प्रक्रियाओं में जावा और जावा ईई कोड को शामिल करने के कई तरीके हैं। कुछ महत्वपूर्ण तरीके निम्नलिखित हैं -
एक साधारण ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP) सेवा के रूप में लपेटें
Bpelx - निष्पादित टैग के साथ बीपीईएल प्रक्रिया में जावा कोड स्निपेट एम्बेड करें
DOM मैनिपुलेशन को सरल बनाने के लिए XML facade का उपयोग करें
Bpelx का उपयोग करें - अंतर्निहित विधियों को निष्पादित करें
सर्विस इंटरफेस में लिपटे जावा कोड का इस्तेमाल करें
जावा एंबेडिंग गतिविधि हमें बीपीईएल प्रक्रिया में गतिविधियों को जोड़ने की अनुमति देती है। हम मानक JDK पुस्तकालयों, BPEL API, कस्टम और 3rd पार्टी जावा कक्षाओं का उपयोग करके जावा स्निपेट लिख सकते हैं, जो कि SCA कंपोजिट (SCA-INF / lib निर्देशिका में) में तैनात JAR फाइलों में शामिल हैं और SOA के लिए Classpath पर उपलब्ध जावा क्लासेस और लाइब्रेरीज़ सूट चलाने का समय।
जावा एंबेडिंग का अर्थ है कि अंदर छिपी हुई कार्यक्षमता, न कि बहुत ही कमतर तरीके से। जावा कोड को बनाए रखना मुश्किल है। बीपीईएल (एक्सएमएल संचालित) में जावा को एम्बेड करके, हमने प्रौद्योगिकी को मिश्रण करना शुरू कर दिया है, जिसमें विभिन्न कौशल के साथ-साथ महंगे XML से लेकर जावा ऑब्जेक्ट की आवश्यकता है।
जावा एंबेडिंग के लिए सबसे अच्छा उपयोग मामले उन्नत लॉगिंग / ट्रेसिंग के लिए या विशेष सत्यापन / परिवर्तनों के लिए लगता है। हालांकि, बीपीईएल इंजन की क्षमताओं के साथ-साथ एसओए सूट 11 जी में अन्य घटकों और इसके साथ आने वाले एडाप्टरों को बदलने के लिए नहीं।
XPath मुख्य रूप से BPEL प्रक्रिया में XMLs में हेरफेर करने के लिए उपयोग किया जाता है। कुछ मूल्यवान Xpath फ़ंक्शन हैं जिनका उपयोग XML में हेरफेर करने के लिए किया जा सकता है। नीचे दिए गए कार्यों को देखते हैं।
bpel: getVaribleData (varName, partName, xpathStr)
यह एक चर से तत्वों का एक सेट निकालने के लिए इस्तेमाल किया जा सकता है, एक XPath अभिव्यक्ति का उपयोग करके।
<bpel:copy>
<bpel:from>
<![CDATA[count(bpel:getVariableData(‘$Variable','$partName')/ns:return)]]>
</bpel:from>
<bpel:to variable = "itemNumber">
</bpel:to>
</bpel:copy>
bpel: getLinkStatus ()
इसका उपयोग एक बूलियन का मूल्यांकन करने और वापस करने के लिए किया जा सकता है चाहे कोई विशेष लिंक सक्रिय या निष्क्रिय हो।: getVariableProperty (स्ट्रिंग, स्ट्रिंग)
यह चर में गुण निकालने में सहायक है।: DoXSLTTransform ()
यह XSLT रूपांतरण करता है।स्ट्रिंग ()
इसका उपयोग / पाठ () का उपयोग करके तत्वों से बाहर पाठ सामग्री निकालने के लिए किया जा सकता है।स्ट्रिंग लंबाई()
इस फ़ंक्शन का उपयोग स्ट्रिंग की लंबाई की गणना करने के लिए किया जाता है। लेकिन! = ऑपरेटर इस फ़ंक्शन से आउटपुट के साथ काम नहीं करता है। तो आप उपयोग कर सकते हैं> या <बल्कि का उपयोग कर! = =।बूलियन मान
आप XPath बूलियन फ़ंक्शन के साथ बूलियन मान निर्दिष्ट कर सकते हैं।
<assign>
<!-- copy from boolean expression function to the variable -->
<copy>
<from expression = "true()"/>
<to variable = "output" part = "payload" query="/result/approved"/>
</copy>
</assign>
दिनांक या समय निर्दिष्ट करना
आप क्रमशः Oracle BPEL XPath फ़ंक्शन getCurrentDate, getCurrentTime या getCurrentDateTime का उपयोग करके किसी दिनांक या समय फ़ील्ड का वर्तमान मान असाइन कर सकते हैं।
<!-- execute the XPath extension function getCurrentDate() -->
<assign>
<copy>
<from expression = "xpath20:getCurrentDate()"/>
<to variable = "output" part = "payload"
query = "/invoice/invoiceDate"/>
</copy>
</assign>
कॉनटेटनेटिंग स्ट्रिंग्स
एक स्ट्रिंग चर (या चर भाग या क्षेत्र) के मूल्य को दूसरे में कॉपी करने के बजाय, आप पहले स्ट्रिंग हेरफेर कर सकते हैं, जैसे कि कई तारों को समतल करना।
<assign>
<!-- copy from XPath expression to the variable -->
<copy>
<from expression = "concat('Hello ',
bpws:getVariableData('input', 'payload', '/p:name'))"/>
<to variable = "output" part = "payload" query = "/p:result/p:message"/>
</copy>
</assign>
स्ट्रिंग लिटरल्स असाइन करना
आप BPEL में एक चर के लिए स्ट्रिंग शाब्दिक निर्दिष्ट कर सकते हैं।
<assign>
<!-- copy from string expression to the variable -->
<copy>
<from expression = "'GE'"/>
<to variable = "output" part = "payload" query = "/p:result/p:symbol"/>
</copy>
</assign>
न्यूमेरिक वैल्यूज़ असाइन करना
आप XPath अभिव्यक्तियों में संख्यात्मक मान निर्दिष्ट कर सकते हैं।
<assign>
<!-- copy from integer expression to the variable -->
<copy>
<from expression = "100"/>
<to variable = "output" part = "payload" query = "/p:result/p:quantity"/>
</copy>
</assign>
Note - एक्सएमएल दस्तावेज़ को बदलने के लिए कुछ XSLT फ़ंक्शन का उपयोग किया गया था।
BPEL सहसंबंध एक विशिष्ट प्रक्रिया उदाहरण के साथ इनबाउंड संदेशों से मेल खाता है। जब आपको किसी विशिष्ट प्रक्रिया के विशिष्ट डेटा को संबद्ध करने की आवश्यकता होती है, तो आप सहसंबंध का उपयोग करते हैं।
उदाहरण के लिए, एक प्रक्रिया बनाते समय जो खाता संख्या की पुष्टि करता है और खाता की क्रेडिट सीमा की जांच करता है। जब सत्यापित किया जाता है, तो प्रक्रिया इन्वेंट्री की जांच करने के लिए किसी अन्य सिस्टम पर कॉल करती है और यदि आइटम स्टॉक में है, तो खरीद आदेश उत्पन्न करता है। खरीद आदेश कैसे पता करता है कि किस खाते में डेबिट किया जाना है? इस प्रश्न का उत्तर सहसंबंध है।
सहसंबंध सेट
सहसंबंध सेट का उपयोग विशिष्ट रूप से पहचान की घटनाओं के लिए किया जाता है। आप एक अद्वितीय नाम के साथ प्रत्येक सहसंबंध सेट प्रदान करते हैं और फिर इसे एक या अधिक गुणों द्वारा परिभाषित करते हैं। प्रत्येक संपत्ति का एक नाम और एक प्रकार है (उदाहरण के लिए, स्ट्रिंग या पूर्णांक)।
संपत्ति उपनाम
सहसंबंध सेट में प्रत्येक संपत्ति के लिए संपत्ति उपनाम को परिभाषित करने की आवश्यकता है। एक संपत्ति उपनाम एक मानचित्रण है जो संपत्ति को इनपुट या आउटपुट मानों के साथ बांधता है।
महत्वपूर्ण बिंदु
से संबंधित निम्नलिखित महत्वपूर्ण बिंदुओं पर विचार करें Correlation Sets and Message Aggregation -
एक प्रक्रिया जिसमें एक से अधिक प्राप्त या गतिविधि होती है, का सहसंबंध सेट होना चाहिए।
सहसंबंध सेट प्रक्रिया इनबाउंड या आउटबाउंड संदेशों से मूल्यों के साथ आरंभ किए जाते हैं।
यदि आपके पास संदेशों के समूह हैं जो एक विशिष्ट प्रक्रिया के साथ जुड़े हुए हैं, तो आप संभाल करने के लिए एक या अधिक सहसंबंध सेट कर सकते हैं।
अतुल्यकालिक वेब सेवाएं आमतौर पर प्रतिक्रिया देने के लिए एक लंबा समय लेती हैं और इस तरह, एक बीपीईएल प्रक्रिया सेवा घटक को निश्चित समय के बाद बाहर निकलने या प्रतीक्षा करने में सक्षम होना चाहिए, और शेष प्रवाह के साथ जारी रखना चाहिए। आप बीपीईएल प्रवाह को कॉन्फ़िगर करने के लिए पिक गतिविधि का उपयोग कर सकते हैं या तो समय की एक निर्दिष्ट राशि पर प्रतीक्षा करें या अपने कर्तव्यों का पालन करना जारी रखें। समय के लिए एक समाप्ति अवधि निर्धारित करने के लिए, आप प्रतीक्षा गतिविधि का उपयोग कर सकते हैं। संदेश का प्रबंधन करने के लिए, घटनाओं का विशेष रूप से उपयोग किया जा सकता है जब व्यापार प्रक्रिया पार्टनर वेब सेवाओं से कॉलबैक की प्रतीक्षा कर रही है।
आयोजन
BPEL दो प्रकार की घटनाओं का समर्थन करती है -
संदेश घटनाएँ
इन घटनाओं को पोर्ट प्रकारों पर ऑपरेशन आह्वान के माध्यम से आने वाले संदेशों द्वारा ट्रिगर किया जाता है।
अलार्म इवेंट
ये घटनाएँ समय से संबंधित हैं और एक निश्चित अवधि के बाद या एक विशिष्ट समय पर शुरू होती हैं।
अक्सर, हालांकि, एक से अधिक संदेशों की प्रतीक्षा करना अधिक उपयोगी होता है, जिनमें से केवल एक ही होगा।
जब आप एक निश्चित समय के लिए कॉलबैक की प्रतीक्षा करने की प्रक्रिया चाहते हैं, तो अलार्म ईवेंट उपयोगी होते हैं, जैसे कि 15 मिनट।
यदि कोई कॉलबैक प्राप्त नहीं होता है, तो डिज़ाइन के अनुसार प्रक्रिया प्रवाह जारी रहता है।
जहां आप हर समय उपलब्ध होने वाली वेब सेवाओं पर भरोसा नहीं कर सकते हैं, जहाँ आप कपल्स की सेवा उन्मुख आर्किटेक्चर में उपयोगी हैं।
गतिविधि चुनें
पिक गतिविधि की 2 शाखाएँ हैं -
onMessage - टाइमआउट जोड़े जाने से पहले प्रतिक्रिया प्राप्त करने के लिए इस शाखा का कोड कोड के बराबर है।
onAlarm - इस स्थिति में एक मिनट के टाइमआउट के लिए कोड होता है।
प्रतीक्षा गतिविधि
प्रतीक्षा गतिविधि किसी प्रक्रिया को किसी निश्चित समयावधि तक या समय सीमा पूरी होने तक प्रतीक्षा करने की अनुमति देती है। वास्तव में समाप्ति मानदंडों में से एक को निर्दिष्ट किया जाना चाहिए।
BPEL प्रक्रिया को अधिसूचना सेवा के लिए उपयोग किया जा सकता है। इस प्रक्रिया को निम्नलिखित भेजने के लिए डिज़ाइन किया जा सकता है -
- ध्वनि संदेश
- त्वरित संदेश (IM), या
- लघु संदेश सेवा (एसएमएस) सूचनाएं
ऊपर वर्णित सेवाओं के लिए, आप आने वाले और बाहर जाने वाले संदेश के लिए चैनल को कॉन्फ़िगर कर सकते हैं।
SOA एप्लिकेशन के भीतर समग्र सेंसर संदेशों पर ट्रैक करने योग्य फ़ील्ड्स को परिभाषित करने की क्षमता प्रदान करता है और आपको संदेश के भीतर फ़ील्ड या फ़ील्ड्स की खोज करके एक विशिष्ट समग्र उदाहरण खोजने में सक्षम बनाता है। उदाहरण के लिए, एक सेंसर को एक संदेश के भीतर एक आदेश संख्या के लिए परिभाषित किया जा सकता है, इस प्रकार हमें उस उदाहरण को खोजने की अनुमति मिलती है जहां प्रश्न में आदेश संख्या पाई जाती है।
समग्र सेंसर को कई घटकों में SOA अनुप्रयोग के भीतर परिभाषित किया जा सकता है -
सेवा घटक (उजागर सेवा)
संदर्भ घटक (बाहरी संदर्भ)
मध्यस्थ या बीपीईएल घटक जो एक व्यावसायिक घटना के लिए सदस्यता ले चुके हैं (किसी घटना को प्रकाशित करना सेंसर नहीं हो सकता है)
कम्पोजिट सेंसर को परिभाषित करने के विभिन्न तरीके
एक समग्र सेंसर को परिभाषित करने के विभिन्न तरीके हैं -
- एक मौजूदा चर को सेंसर के रूप में निर्दिष्ट करके।
- अभिव्यक्ति बिल्डर की सहायता से एक अभिव्यक्ति द्वारा।
- गुणों का उपयोग करके (जैसे संदेश हेडर गुण)।
एंटरप्राइज मैनेजर में सेंसर
एक सेंसर को परिभाषित करने से EM कंसोल में एक समग्र उदाहरण के भीतर डेटा की त्वरित खोज की अनुमति मिलती है।
EM कंसोल डैशबोर्ड में, एक उपयोगकर्ता सेंसर नाम और मूल्य के उदाहरणों की खोज कर सकता है।
"फ्लो इंस्टेंस" टैब में, आप ड्रॉपडाउन से सेंसर का चयन कर सकते हैं और सेंसर मूल्य के लिए वाइल्डकार्ड जैसे मूल्यों का उपयोग कर सकते हैं।
2.0 में नई गतिविधियां जोड़ी गई हैं जिन्होंने 1.1 में प्रतिस्थापित किया है।
<Foreach>
यह गतिविधि गतिविधियों के सेट को दोहराने में मदद करती है। गतिविधि BPEL 1.1 संस्करण में FlowN गतिविधि की जगह लेती है।
<RepeatUntil>
यदि किसी गतिविधि के शरीर को कम से कम एक बार प्रदर्शन किया जाना चाहिए, तो यह गतिविधि उपयोग में आती है। रिपीट यूटिल एक्टिविटी में एक्सपीथ एक्सप्रेशन कंडीशन का मूल्यांकन एक्टिविटी के पूरा होने के बाद किया जाता है।
<यदि> - <elseif> - <बाकी>
यह गतिविधि BPEL 2.0 में स्विच गतिविधि की जगह लेती है। गतिविधि आपको दो या अधिक शाखाओं के बीच निर्णय लेने के लिए विशिष्ट गतिविधियों के लिए सशर्त व्यवहार को परिभाषित करने में सक्षम बनाती है। शाखाओं के एक सेट से निष्पादन के लिए केवल एक गतिविधि का चयन किया जाता है।
<CompensateScope>
यह गतिविधि निर्दिष्ट चाइल्ड स्कोप की भरपाई करने में मदद करती है।
<Rethrow>
इस गतिविधि को गलती संचालकों में जोड़ा गया है। यह आपको मूल रूप से तुरंत गलती करने वाले हैंडलर द्वारा कब्जा कर लिया गया एक गलती को फिर से उखाड़ फेंकने में सक्षम बनाता है।