/ / क्या NoSQL द्वारा समर्थित बीपीएम के लिए एक परिपक्व जावा वर्कफ़्लो इंजन है? - जावा, नोस्कल, वर्कफ़्लो, बीपीएम

क्या बीएसएम के लिए नोएसक्यूएल द्वारा समर्थित परिपक्व जावा वर्कफ़्लो इंजन है? - जावा, नोस्कल, वर्कफ़्लो, बीपीएम

मैं शोध कर रहा हूं कि एक सामान्य कैसे बनाया जाएबिल्डिंग वर्कफ़्लो-केंद्रित अनुप्रयोगों को सक्षम करने के लिए एप्लिकेशन या माइक्रोस्कोयर। मैंने ढांचे के बारे में कुछ शोध किया है (नीचे देखें), और सबसे आशाजनक उम्मीदवार वर्कफ़्लो को स्टोर करने और जेपीए-एनोटेटेड इकाइयों के साथ संयुक्त राज्य को संसाधित करने के लिए आरडीबीएमएस पर कठोर निर्भरता साझा करते हैं। मेरी राय में, यह एक सामान्य, डेटा संचालित वर्कफ़्लो माइक्रोस्कोप को डिजाइन करने की संभावना को नुकसान पहुंचाता है। ऐसा लगता है कि जेएसओएन या एक्सएमएल में डेटा ऑब्जेक्ट्स और नियमों को संग्रहीत करके मोंडो डीबी या कैसंड्रा जैसे नोएसक्यूएल समाधानों पर वास्तव में सामान्य वर्कफ़्लो सिस्टम बनाया जा सकता है। ये इकाइयों को पुनर्प्राप्त करने और सहेजने के लिए एक या दो साधारण जावा ऑब्जेक्ट्स का उपयोग करते समय प्रकार या स्कीमा को लागू करने के लिए कोड निष्पादित करने की अनुमति देंगे। जैसा कि मैंने इसे देखा है, यह एक ही एप्लिकेशन को विभिन्न डोमेन के लिए नियंत्रक के रूप में तैनात किया जा सकता है "संशोधन के बिना मॉडल-व्यू जोड़े (स्वीकार्य रूप से एक बहुत चालाक इंटरफ़ेस दिया गया है)।

मैंने वर्कफ़्लो इंजन / बीपीएम फ्रेमवर्क खोजने की कोशिश की है जो नोएसQL बैकएंड का समर्थन करता है। मैंने पाया सबसे नज़दीक है Activiti-Neo4J, जो एक त्याग परियोजना प्रतीत होता है जो गतिविधि और नियो 4 जे के बीच एक कनेक्टर को सक्षम बनाता है।

क्या जावा वर्क इंजन / बीपीएम फ्रेमवर्क है जो नोएसQL बैकएंड का समर्थन करता है और विशिष्ट पीओजेओ इकाइयों की आवश्यकता के बिना डेटा ऑब्जेक्ट्स को सामान्य करता है?

अगर मैं अपने आदर्श, जादुई सामान्य समाधान पर छोड़ देना चाहता था, तो शायद मैं एक ढांचा चुनूंगा jBPM तथा गतिविधियों चूंकि उनके पास शानदार फीचर सेट हैं और परिपक्व हैं। अन्य उम्मीदवारों को खोजने की कोशिश में, मुझे छोड़कर परियोजनाओं का एक वास्तविक कब्रिस्तान मिला है जावा-Source.net पर यह एक.

उत्तर:

उत्तर № 1 के लिए 1

मुझे लगता है कि वर्कफ़्लो इंजन अक्सर क्यों होते हैंआरडीबीएमएस के आधार पर डेटाबेस स्कीमा नहीं है बल्कि एक लेन-देन-सुरक्षित डेटा स्टोर में संयोजन है। ट्रांजैक्शनल मजबूती वर्कफ़्लो इंजनों के लिए एक महत्वपूर्ण कारक है, खासतौर पर लंबे समय से चलने वाले या घोंसले वाले लेनदेन के लिए जो जटिल वर्कफ़्लोज़ के लिए विशिष्ट हैं। तो हो सकता है कि यह एक कारण है कि अधिकांश इंजन (जैसे सक्रिय) डेटा-संचालित दृष्टिकोण पर ध्यान केंद्रित नहीं करते थे। (मैं यहां डेटा प्रतिकृति के बारे में बात नहीं कर रहा हूं जो ज्यादातर मामलों में नोएसक्यूएल डेटाबेस द्वारा कवर किया गया है)

यदि आप एक नज़र डालें इमिक्स-वर्कफ़्लो प्रोजेक्ट आपको जावा पर आधारित एक अलग दृष्टिकोण मिलेगाEnterprise। यह इंजन एक सामान्य डेटा ऑब्जेक्ट का उपयोग करता है जो किसी भी प्रकार के क्रमिक डेटा मानों का उपभोग कर सकता है। डेटा पुनर्प्राप्ति की समस्या लुसीन सर्च टेक्नोलॉजी के साथ हल हो जाती है। प्रत्येक ऑब्जेक्ट को वर्चुअल दस्तावेज़ में प्रत्येक आइटम के लिए नाम / मान जोड़े के साथ अनुवादित किया जाता है। यह संसाधित व्यावसायिक डेटा के माध्यम से खोजना आसान बनाता है और स्थिति की जानकारी या प्रक्रिया मालिकों जैसे संरचित वर्कफ़्लो डेटा से पूछताछ करता है। तो यह एक संभावित समाधान है।

इसके अलावा, आपके पास हमेशा विकल्प होता हैअपने व्यापार डेटा को नोएसक्यूएल डेटाबेस में स्टोर करें। यह एक चल रहे प्रक्रिया उदाहरण के वर्कफ़्लो डेटा से स्वतंत्र है जहां तक ​​आप दोनों ऑब्जेक्ट्स को एक साथ जोड़ते हैं। लेनदेन संबंधी मजबूती के पहलू पर वापस जाना प्रक्रिया प्रक्रिया में आपके नोएसक्यूएल डेटा स्टोरेज के संदर्भ को स्टोर करना एक अच्छा विचार है, जो लेनदेन को जागरूक है। एक नज़र डालें यहाँ.

तो एकमात्र समस्या जिसे आप चला सकते हैं वह तथ्य हैकि एक ईजेबी / जेपीए से एक "बाहरी" नोएसक्यूएल डेटाबेस में लेनदेन संदर्भ को सिंक्रनाइज़ करना बहुत मुश्किल है। उदाहरण के लिए: जब आपका डेटा सफल हो गया तो आपका डेटा आपके नोएसQL डेटा स्टोरेज (जैसे केसनाड्रा) में सहेजा गया, लेकिन लेनदेन वर्कफ़्लो इंजन विफल रहता है और रोल-बैक ट्रिगर होता है?


जवाब के लिए 0 № 2

एक्टिविटी प्रोजेक्ट के डिजाइनरों में भी हैआपके द्वारा बताई गई समस्या से अवगत है, लेकिन पता था कि यह ऐसी लचीलापन को लागू करने के लिए काफी पुनः लिखना होगा, जो तर्कसंगत रूप से, शुरुआत से ही परियोजना में डिजाइन किया जाना चाहिए था। जैसा कि आप नीचे दिए गए लिंक में देखेंगे, समस्या इंटरफेस की कमी रही है जिस पर एक रिलेशनल डेटाबेस के अलावा अलग-अलग कार्यान्वयन को कोड करना है। संस्करण 6 के साथ वे आगे बढ़े और बैंडएड को फटकारा और फ्रेमवर्क को दोबारा दोहराया इंटरफेस का सेट जिसके लिए विभिन्न कार्यान्वयन (लगता है कि नियो 4 जे, मोंगोडीबी या जो भी अन्य दृढ़ता तकनीक आप कल्पना करते हैं) को लिखा और प्लग किया जा सकता है।

नीचे दिए गए लिंक में, वे कुछ प्रदान करते हैंउपर्युक्त इंटरफेस के एक सरल इन-मेमोरी कार्यान्वयन के लिए कोड उदाहरण। बहुत अच्छा लग रहा है और लगता है कि शायद आप ठीक से क्या चाहते हैं।

https://www.javacodegeeks.com/2015/09/pluggable-persistence-in-activiti-6.html