क्या कोर्बा विरासत है?


79

एक वितरित कंप्यूटिंग परियोजना के लिए, आज से 0 विरासत घटकों के साथ, कोर्बा में देखने के लिए कोई अच्छे कारण हैं?


27
सच कहूँ तो, मुझे यकीन नहीं है कि वे कभी भी अच्छे कारण थे - यह एक भयानक तकनीक है। मैं यहाँ एक पूर्व CORBA प्रोग्रामर के रूप में बोल रहा हूँ।

2
अच्छा कारण यह था कि जब कोर्बा पहली बार चारों ओर था, कोई व्यवहार्य विकल्प नहीं था (जब तक कि आप डीसीओएम या डीसीई नहीं कर सकते थे)।
स्केफमैन

@skaffman विकल्प थे - उदाहरण के लिए TIBCO जैसी चीजें।

ज़रूर, लेकिन यह उतना ही बदसूरत था, महंगा उल्लेख करने के लिए नहीं।
स्केफमैन

3
@Skaffman आप मजाक कर रहे हैं! TIBCO Rendezvous, CORBA की तुलना में कम से कम 10x उपयोग में आसान है। व्यय के रूप में, मैं इस सामग्री का उपयोग करने वाले आईबी को आंक सकता हूं। या कम से कम वे कर सकते थे, फिर वापस।

जवाबों:


46

अभी भी ऐसी परिस्थितियाँ हैं जहाँ CORBA एक अच्छा उत्तर हो सकता है:

  • जब आप एक वितरण प्रणाली बना रहे हैं जिसमें कई प्रोग्रामिंग लैंग्वेज और कई प्लेटफॉर्म शामिल हैं,
  • जब आपका सिस्टम जटिल डेटा संरचनाएँ भेजना चाहता है ... और SOAP इसे काटता नहीं है,
  • जब आपके पास संदेश भेजने की उच्च दर है ... और HTTP इसे काटता नहीं है, या
  • जब आपको मौजूदा कोर्बा ग्राहकों और / या सेवाओं के साथ बातचीत करनी होगी।

लेकिन यह कहते हुए कि, ऐसे विकल्प हैं जो कि CORBA करते हैं, केवल बेहतर हैं ... या इसलिए वे दावा करते हैं। उदाहरण के लिए ZeroC का ICE

EDIT @fnieto कहने के लिए (या मतलब है कि ICE) मुक्त नहीं है, लेकिन TAO है।

यह गलत और भ्रामक है

  1. ICE GPL'ed सॉफ्टवेयर है, और मुफ्त डाउनलोड के लिए उपलब्ध है। आपको केवल ICE के लिए भुगतान करने की आवश्यकता है यदि आप / आपकी कंपनी GPL की शर्तों के साथ रहने के लिए तैयार नहीं है। (या यदि आपको समर्थन की आवश्यकता है)
  2. मैंने CORE के विकल्प के एक उदाहरण के रूप में ICE का उपयोग किया । TAO CORBA है। ICE लेखक एक विश्वसनीय मामला बनाते हैं कि क्यों वे CORBA के अनुरूप न होकर बेहतर प्रदर्शन प्राप्त कर सकते हैं।
  3. TAO का कोई मतलब नहीं है केवल मुक्त / खुला स्रोत CORBA कार्यान्वयन। मैं अपने सिर के ऊपर से 3 अन्य लोगों के बारे में सोच सकता हूं।

ICE का डाउन-साइड, CORBA मिडलवेयर स्टैक के साथ इंटरऑपरेबिलिटी की कमी है, लेकिन मेरे अनुभव में विभिन्न CORBA इम्प्लीमेंटेशन की इंटरऑपरेबिलिटी भी समस्याग्रस्त हो सकती है। (उस क्षेत्र में चीजें बेहतर हो सकती हैं ... लेकिन मैंने ~ 2002 के बाद से कोई भी कोर्बा कार्य नहीं किया है, इसलिए मैं थोड़ा सा संपर्क से बाहर हूं।)


बिंदु 1 के बारे में - मैं एक क्रॉस-प्लेटफॉर्म और क्रॉस-भाषा परिप्रेक्ष्य से CORBA और वेब सेवाओं के कमोबेश बराबर होने की उम्मीद कर रहा था। प्रत्येक में कमजोर धब्बे होंगे जिन्हें वे कवर नहीं करते हैं, लेकिन कुल मिलाकर मुझे बहुत अंतर नहीं दिखता है। इस गैर-विरासत परिदृश्य के लिए मुझे नहीं लगता कि यह एक मुद्दा है।
djna

@djna: लेकिन विचार करें कि आज की गैर-विरासत ऐप कल की विरासत ऐप है। बहु-भाषा / बहु-प्लेटफ़ॉर्म मिडलवेयर तकनीक का उपयोग करके आज आप 5-10 वर्षों में मदद कर सकते हैं जब आप अगली पीढ़ी के एंटरप्राइज़ ऐप्स के साथ एकीकृत होते हैं।
स्टीफन सी

@ स्टीफन। आईसीई के साथ एकमात्र समस्या कीमत है, टीएओ मुफ्त है।
फनीटो - फर्नांडो नीटो

3
ख़ूब कहा है। वास्तव में जावा एक सबसे विशिष्ट मुक्त CORBA कार्यान्वयन है। और तथ्य यह है कि J2EE अपने परिवहन के रूप में IIOP को अनिवार्य करता है इसका मतलब है कि CORBA शायद पहले से कहीं अधिक व्यापक और 'वर्तमान' है।
user207421

33

मौजूदा उत्तरों से, यह लगभग एक धार्मिक विषय हो जाता है। कोर्बा आधे-खाली / आधे-पूर्ण ग्लास की तरह ही देख सकता है: एक तरफ, कॉर्बेट को विरासत में मिलाया जाता है, और दूसरी ओर यह कई कार्यान्वयन उपलब्ध है और "आप जानते हैं कि शैतान" के साथ अपेक्षाकृत स्थिर है।

मेरे काम की लाइन में, मैं देखता हूं कि CORBA को एम्बेडेड सिस्टम, रियल-टाइम सिस्टम (CORBA में RT एक्सटेंशन), ​​और इस तरह तैनात किया गया है। वहाँ कई विकल्प AFAIK नहीं हैं।

CORBA का एक और "लाभ" विभिन्न लाइसेंसिंग और समर्थन मॉडल के साथ कई उच्च-गुणवत्ता वाले खुले स्रोत कार्यान्वयन, जैसे, TAO, MICO, JacORB, आदि की उपलब्धता है। अभी भी व्यावसायिक संस्करण उपलब्ध हैं।

जावा में "सबसे" CORBA एप्स को लागू करने के संबंध में - मेरे अनुभव में ऐसा नहीं है। जबकि कोरबा के लिए जावा के लिए भाषा मानचित्रण सबसे अच्छा में से एक है (जो कि ज्यादा कुछ नहीं कह सकता है), जावा में पहले से ही एक बहुत अच्छा वितरित कंप्यूटिंग मॉडल है जो कॉर्ब से परे समृद्धि प्रदान करता है, और सभी-जावा एप्लिकेशन उस कॉर्ब से अधिक का उपयोग करते हैं। कॉर्बा विकास का अधिकांश हिस्सा मैंने C ++ में देखा है (जो कि सबसे खराब भाषा मानचित्रण भी है)।

अंत में, कोर्बा एएमआई के रूप में मानकीकृत अतुल्यकालिक क्लाइंट-साइड इनवोकेशन प्रदान करता है, लेकिन सर्वर साइड पर एसिंक्रोनस हैंडलिंग की पेशकश कभी नहीं की। TAO एक गैर-मानक सर्वर-साइड कार्यान्वयन प्रदान करता है जिसे AMH कहा जाता है।


20

मेरा मानना ​​है कि कोरबा मूल EJB कल्पना द्वारा पुनर्जीवित किया गया था, क्योंकि EJB को आसानी से थोड़ा सा विन्यास करके CORBA सेम में बदल दिया जा सकता है। मुझे संदेह है कि ज्यादातर कोरबा की तैनाती वास्तव में जावा में लागू की गई थी।

लोकप्रियता के रूप में, मुझे लगता है कि कई दशकों तक कुछ उच्च अंत की तैनाती हो सकती है लेकिन अधिकांश लोगों के लिए कोरबा मर चुका है।

एक ही सामान करने के लिए बहुत सारे सेक्सी तरीके हैं (ऊपर बताए गए उच्च अंत को छोड़कर)।

  • क्लाउड कंप्यूटिंग (वेब ​​सेवाएं, स्केलेबल कंप्यूटिंग, ढीली युग्मन, कतारबद्ध)।
  • बाकी सेवाएँ (वेब-सेवाएँ लाइट)।
  • SOAP सेवाएं (वेब-सेवाएं भारी)।
  • ग्रिड / क्लस्टर कंप्यूटिंग (कतार लगाना, नक्शा कम करना और समान)

लेकिन निश्चित रूप से आपके मिलेंगे मई वारि।


15

जाहिर है यह सर्वर और इंटरप्रोसेस संचार के प्रकार पर निर्भर करता है, जिस पर आप विचार कर रहे हैं। और मुझे लगता है कि स्टीफन सी और क्रिस क्लेलैंड ने कोरबा की सकारात्मकता को अच्छी तरह से कवर किया है।

हमारे आवेदन ने 10 साल से अधिक के लिए CORBA (Orbix) का उपयोग किया है इसलिए अब यह विरासत है। और यह कैसे लिखा जाता है कि कोर्बा एक अच्छी तकनीक है। हालाँकि अगर मैं शुरू कर रहा था तो मैं शायद CORBA का उपयोग नहीं करूंगा:

  • यह जटिल है और मेरे संगठन में बहुत ही कम लोग इसे अच्छी तरह से जानते हैं, परिणामस्वरूप सभी कठिन समस्याओं को हल करने के लिए उन पर गिर जाते हैं।
  • भर्ती कर्मचारियों को एक समस्या हो सकती है। CORBA बस किसी भी अधिक शांत नहीं है और कूलर नहीं हो रही है, हालांकि आयरलैंड में C ++ डेवलपर्स जमीन पर भी थोड़ा पतले हैं।
  • अधिकांश परामर्श फर्म एकीकरण कार्य के लिए वेब सेवाओं का उपयोग करना चाहते हैं, इसलिए यदि आप चाहते हैं कि 3 पक्ष एकीकरण करें तो आपको वैसे भी वेब सेवाओं की आवश्यकता होगी।

अब मैं चाहता था कि संचार के प्रकार पर निर्भर करता है:

  • कई छोटे संदेशों के लिए प्रोटोकॉल बफ़र्स (मुझे पता है कि मुझे परिवहन प्रदान करना होगा)
  • कम बड़े संदेशों के लिए वेब सेवाएँ

यह कर्मचारियों और विशेषज्ञता को खोजने, 3 पार्टी के समर्थन और ओपन सोर्स लाइब्रेरी का लाभ उठाने पर आधारित है, फिर कॉर्ब की तकनीकी गुणवत्ता, जिसे मैं हर रोज इस्तेमाल करता हूं और अगर थोड़ा बोझिल है तो मजबूत है।


@ आईएनएन: अच्छे अंक। कोराबा जावा से भी उपयोग करने के लिए सीधा नहीं है, जहां मैंने अपने अधिकांश कोरबा विकास किया था। पीओए / बीओए सामान आपके सिर के चारों ओर पाने के लिए कठिन है।
स्टीफन सी

3
हां पीओए का सामान विशेष रूप से कठिन है जितना कि यह होना चाहिए
iain

2
IDL के मानकीकरण के साथ C ++ 11 भाषा मानचित्रण सीखना और CORBA का उपयोग करना आसान है। भाषा मानचित्रण सीधे आगे है और एसटीएल से जितना संभव हो उतना पुन: उपयोग करता है। आपको अभी भी पीओए सीखने की जरूरत है लेकिन यह वास्तव में कठिन नहीं है।
जॉनी विल्मसेन

13

CORBA निश्चित रूप से पुराने जमाने का है, लेकिन यह कुछ उच्च-स्तरीय फ़ंक्शंस बॉक्स से बाहर भी प्रदान करता है ( यहाँ देखें )। यह कार्यक्षमता सभी आधुनिक वेब सेवाओं का उपयोग करके की जा सकती है, लेकिन शायद एक मानक फैशन में नहीं, और अतिरिक्त काम के बिना बहुत कुछ नहीं।

वितरित सेवाओं के 99% के लिए, हालांकि, CORBA अवांछनीय है। यह बदसूरत, जटिल और उपयोग में कठिन है।


12
और उस अंतिम बिंदु को देखते हुए, इसीलिए लोग साबुन / ws- * लेकर आए। जो अब बदसूरत और जटिल भी है।
लेरॉय

जब आप फ्रेमवर्क के साथ काम कर रहे होते हैं तो साबुन इतना बदसूरत नहीं होता है जो आपके लिए सबसे पीछे के काम करते हैं।
arg20

आप क्या विकल्प सुझाते हैं?
शाओतिबी

5
@ arg20 - यह कहने के लिए थोड़ा सा है कि SOAP इतनी बदसूरत नहीं है यदि आप इसे नहीं देख सकते हैं :-)
स्टीफन C

12

एक बात जो यहाँ किसी ने नहीं बताई है वह है ओपिन, ओपन स्टेंडर्ड। मौजूद सभी तकनीकों में से (SOAP को छोड़कर) यह एकमात्र सच्चा खुला श्वेत पत्र मानक है। मानक किसी एक संगठन प्रौद्योगिकियों पर निर्भर नहीं है। आरएमआई (सन / ओरेकल), डीसीओएम (अब विघटित - माइक्रोसॉफ्ट)। यह पूरी तरह से वेंडर और भाषा तटस्थ है। SOAP को छोड़कर, अन्य DOS (वितरित वस्तु प्रौद्योगिकी) तकनीकों में से कोई भी नहीं है

मैं एक सॉफ्टवेयर आर्किटेक्ट हूं और नियमित रूप से चुनाव करता हूं कि किस सिस्टम डिजाइन में DOS का उपयोग किया जाए। अगर मैं हर बार होने वाले धार्मिक युद्ध के लिए नहीं होता, तो यह एक MOM या CORBA होगा।

इसे इस तरह से देखें, अगर यह मृत था, तो 3 / 4G नेटवर्क में से कोई भी काम नहीं करेगा। 3GPP पूरी तरह से CORBA निर्दिष्ट है। यूरोपीय सैटेलाइट सिस्टम निर्दिष्ट सभी CORBA है। अपने आप से पूछो क्यों? ऐसा इसलिए है क्योंकि वे वेंडर और लैंग्वेज न्यूट्रल आर्किटेक्चर पर आधारित होने चाहिए!


2
एर्म ... अतीत में, मैं ओएमजी मानकों को विकसित करने में शामिल था, और मैं आपको बता सकता हूं कि प्रक्रियाएं हमेशा उतनी खुली और पारदर्शी नहीं थीं जितना कोई उम्मीद कर सकता है। और OMG ऐतिहासिक रूप से अनुपालन के मुद्दे से दूर रहा है ... ऐसा नहीं है कि IETF या W3C उस पर बहुत बेहतर करते हैं।
स्टीफन C

1+ @ सेल्विन मैं इस जानकारी की तलाश में था
टोनी शीह

@ सिल्विन, मिक्सी हेनिंग इसके विपरीत एक बहुत ठोस तर्क देते हैं, कि ओएमजी का खुलापन समस्याओं का एक व्यवस्थित कारण है - queue.acm.org/detail.cfm?id=1142044 । अच्छा पढ़ा।
सेमीसेक्योर

9

मैं कहता हूं कि वेब सेवाओं की परिपक्वता का मौजूदा स्तर (रीस्ट सहित) और जावा दुनिया में ईजेबी (जो कि कवर के तहत कॉर्बा का उपयोग भी कर सकते हैं) कवर जो वितरित उद्यम प्रणालियों के लिए आवश्यक है।

मैं सलाह दूंगा कि एक पहलू जिसे आपको ध्यान से देखना चाहिए वह अतुल्यकालिक बातचीत की डिग्री है जो आपको अपने वितरित सिस्टम में चाहिए। मैं बताता हूं कि गैर-तुच्छ पैमाने की किसी भी वितरित प्रणाली को अतुल्यकालिक संचार की आवश्यकता होती है, और चुने गए बुनियादी ढांचे को एसाइनच प्रसंस्करण का समर्थन करना चाहिए, आमतौर पर इसका मतलब है कि कतारें।

यह WebServices (या वास्तव में CORBA) के उपयोग के साथ असंगत नहीं है, लेकिन यह आपके उत्पाद चयन के एक पहलू को इंगित करता है जो कि कुछ वितरित प्रसंस्करण प्राप्त करने के प्रारंभिक उत्साह में अनदेखी हो सकती है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.