अपाचे सीएक्सएफ और एक्सिस के बीच अंतर


जवाबों:


229

ध्यान रखें, मैं पूरी तरह से पक्षपाती (CXF का पीएमसी अध्यक्ष) हूं, लेकिन मेरे विचार:

कड़ाई से "परियोजना वह कर सकती है जो मुझे इसे करने की आवश्यकता है" परिप्रेक्ष्य, दोनों बहुत समतुल्य हैं। कुछ "एज केस" चीजें जो सीएक्सएफ कर सकती हैं जो एक्सिस 2 नहीं कर सकती हैं और इसके विपरीत। लेकिन उपयोग के मामलों के 90% के लिए, या तो ठीक काम करेगा।

इस प्रकार, यह "चेक बॉक्स सुविधाओं" के अलावा अन्य चीजों के एक समूह के लिए नीचे आता है।

  • एपीआई - सीएक्सएफ "मानकों पर आधारित है" एपीआई (जेएक्स-डब्ल्यूएस अनुपालन) को धक्का देता है जबकि एक्सिस 2 सामान्य मालिकाना चीजों की ओर जाता है। उस ने कहा, यहां तक ​​कि सीएक्सएफ को जेएक्स-डब्ल्यूएस कल्पना के बाहर विभिन्न चीजों को कॉन्फ़िगर / नियंत्रित करने के लिए मालिकाना एपीआई के उपयोग की आवश्यकता हो सकती है। REST के लिए, CXF मालिकाना चीजों के बजाय मानक API's (JAX-RS अनुरूप) का उपयोग करता है। (हाँ, मुझे Axis2 में JAX-WS रनटाइम की जानकारी है, लेकिन टूलिंग और डॉक्स और सब कुछ इसे लक्षित नहीं करता है)

  • सामुदायिक पहलुओं और समर्थन - CXF मुद्दों पर प्रतिक्रिया देने और उपयोगकर्ताओं को "फिक्सपैक" उपलब्ध कराने पर गर्व करता है। CXF ने 2.0 के लिए 12 फ़िक्सपैक किए। x (दो साल पहले जारी किया गया था, इसलिए हर 2 महीने में), 6 फ़िक्सपैक से 2.1.x, और अब 2.2 के लिए 3। Axis2 वास्तव में पुराने संस्करणों का "समर्थन" नहीं करता है। जब तक एक "महत्वपूर्ण" मुद्दा हिट नहीं होता है, तो आपको फिक्स प्राप्त करने के लिए अगली बड़ी रिलीज तक इंतजार करना होगा (वे औसतन हर 9-10 महीने या इसके बाद)। (हालांकि, दोनों में से, आप स्रोत कोड को पकड़ सकते हैं और अपने आप को पैच / फिक्स कर सकते हैं। खुला स्रोत पसंद करेंगे।)

  • एकीकरण - अगर आप स्प्रिंग का उपयोग करते हैं तो सीएक्सएफ में वसंत बेहतर एकीकरण है। सभी विन्यास और ऐसा वसंत के माध्यम से किया जाता है। इसके अलावा, लोग सीएक्सएफ को अन्य अनुप्रयोगों में अधिक "एम्बेड करने योग्य" (मैंने इस परिप्रेक्ष्य से एक्सिस 2 को कभी नहीं देखा) के रूप में माना जाता है। यकीन नहीं होता अगर आपके लिए वो चीजें मायने रखती हैं।

  • प्रदर्शन - वे दोनों बहुत अच्छा प्रदर्शन करते हैं। मुझे लगता है कि एक्सिस 2 का मालिकाना एडीबी डेटबाइंडिंग सीएक्सएफ की तुलना में थोड़ा तेज है, लेकिन अगर आप जेएक्सबी (मानकों पर आधारित एपीआई फिर से) का उपयोग करते हैं, तो सीएक्सएफ थोड़ा तेज है। WS- सुरक्षा जैसे अधिक जटिल परिदृश्यों का उपयोग करते समय, अंतर्निहित सुरक्षा "इंजन" (WSS4J) दोनों के लिए समान है इसलिए प्रदर्शन पूरी तरह से तुलनीय है।

यकीन नहीं होता कि अगर इस सवाल का जवाब है। आशा है कि यह कम से कम कुछ जानकारी प्रदान करता है।

:-)

सज्जन


10
डब्लूएस-सिक्योरिटी के दृष्टिकोण से हाल ही में तुलना: ibm.com/developerworks/java/library/j-jws19/index.html
डैनियल कुलप

किसी इंट्रानेट में CXF का उपयोग करते समय HTTP संचार को तेज करने के लिए कोई संकेत? लैन पर 8
वेबसर्विसेज

57
  • Axis2 : बाज़ार पर अधिक सर्वव्यापी, अधिक बाइंडिंग का समर्थन करता है, अन्य भाषाओं जैसे C / C ++ का समर्थन करता है।
  • CXF : उपयोग करने में आसान, अधिक स्प्रिंग फ्रेंडली, तेजी से कुछ WS- * एक्सटेंशन के लिए समर्थन मिला।

संदर्भित तुलना अब उपलब्ध नहीं है: "अपलोड की गई सामग्री हटा दी गई"
maiklos

5
+1 का उपयोग करने के लिए बहुत आसान है। WSDL से WS / WS- क्लाइंट के लिए बुनियादी कक्षाएं बनाते समय IMO, CXF भी कम क्रिया है। एक एक्सिस क्लाइंट को कोड का एक बटलोड की आवश्यकता होती है जो कि सीएक्सएफ के विपरीत, समझने में मुश्किल और अपवर्तक है।
प्रियादु नीमरे

42

एक और बात समुदाय की गतिविधि है। अक्ष और cxf (2013) के लिए मेलिंग सूची यातायात की तुलना करें।

इसलिए यदि यह उपयोग का कोई संकेतक है तो अक्ष cxf की तुलना में बहुत कम उपयोग किया जाता है।

ओहलो पर सीएक्सएफ और एक्सिस आंकड़ों की तुलना करें । सीएक्सएफ में बहुत अधिक गतिविधि है जबकि एक्सिस में समग्र गतिविधि कम है।

यह सीएक्सएफ (लाल) और एक्सिस 1 (हरा) एक्सिस 2 (नीला) के लिए समय के साथ कमिट की संख्या के लिए चार्ट है। यहां छवि विवरण दर्ज करें


24

सीएक्सएफ के फायदे:

  1. सीएक्सएफ डब्ल्यूएस-एड्रेसिंग, डब्ल्यूएस-पॉलिसी, डब्ल्यूएस-आरएम, डब्ल्यूएस-सिक्योरिटी और डब्ल्यूएस-आई बेसिकप्रोफाइल का समर्थन करता है।
  2. CXF JAX-WS API (JAX-WS 2.0 TCK के अनुसार) लागू करता है।
  3. सीएक्सएफ में स्प्रिंग और अन्य फ्रेमवर्क के साथ बेहतर एकीकरण है।
  4. सीएक्सएफ में उनकी इंटरसेप्टर रणनीति के संदर्भ में उच्च विस्तार है।
  5. सीएक्सएफ में बोझिल एक्सएमएल फाइलों के बजाय एपीआई के माध्यम से अधिक विन्यास योग्य सुविधा है।
  6. CXF में बाइंडिंग : SOAP, REST / HTTP है, और इसके डेटा बाइंडिंग JAXB 2.0, एजिस का समर्थन करते हैं, डिफ़ॉल्ट रूप से यह JAXB 2.0 और अधिक करीबी जावा मानक विनिर्देश का उपयोग करता है।
  7. CXF में प्रचुर टूलकिट हैं, जैसे जावा से WSDL, WSDL से जावा, XSD से WSDL, WSDL से XML, WSDL से SOAP, WSDL से सेवा।

Axis2 के फायदे:

  1. एक्सिस 2 डब्ल्यूएस-आरएम, डब्ल्यूएस-सिक्योरिटी और डब्ल्यूएस-आई बेसिकप्रोफाइल को डब्ल्यूएस-पॉलिसी को छोड़कर भी समर्थन करता है, मुझे उम्मीद है कि आगामी संस्करण में इसका समर्थन किया जाएगा।
  2. एक्सिस में आपके चुनाव के लिए डेटा बाइंडिंग के अधिक विकल्प हैं
  3. Axis2 कई भाषाओं का समर्थन करता है-जिनमें C / C ++ संस्करण और जावा संस्करण शामिल हैं।
  4. एक्सिस 2 डेटा बाइंडिंग की एक विस्तृत श्रृंखला का समर्थन करता है, जिसमें एक्सएमबी, जीईबीएक्स, जैक्समे और जैसबरी के साथ-साथ अपने स्वयं के मूल डेटा बाइंडिंग, एडीबी शामिल हैं। सीएक्सएफ की तुलना में लंबा इतिहास।

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

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

कुछ शोध लेखों में, यह पता चलता है कि एक्सिस 2 के मालिकाना एडीबी डेटाबाइंडिंग सीएक्सएफ की तुलना में थोड़ा तेज है क्योंकि इसमें अतिरिक्त सुविधा (डब्ल्यूएस-सुरक्षा) नहीं है। Apache AXIS2 अपेक्षाकृत सबसे अधिक उपयोग किया जाने वाला ढांचा है, लेकिन Apache CXF का स्कोर अन्य वेब सेवाओं के फ्रेमवर्क से तुलनात्मक रूप से विकास में आसानी, वर्तमान उद्योग की प्रवृत्ति, प्रदर्शन, समग्र स्कोरकार्ड और अन्य विशेषताओं पर विचार करता है (जब तक कि वेब सेवा आर्केस्ट्रा समर्थन स्पष्ट रूप से आवश्यक नहीं है, जो यहां आवश्यक नहीं है )


2

मेरे अनुभव के अनुसार सीएक्सएफ वसंत के माहौल में इसे कॉन्फ़िगर करने के मामले में अच्छा है। इसके अलावा उत्पन्न कक्षाएं समझने में सरल हैं। और जैसा कि यह अधिक सक्रिय है, हमें AXIS या AXIS2 की तुलना में बेहतर समर्थन मिलता है।


1

CXF का एक और लाभ: यह NTLMV2 प्रमाणीकरण बॉक्स से बाहर का उपयोग करके वेब सर्वर से जुड़ता है। (Windows 2008 और ऊपर द्वारा उपयोग किया जाता है) CXF का उपयोग करने से पहले, मैंने यह संभव बनाने के लिए HTTPClient V4 + JCIFS का उपयोग करने के लिए Axis2 को हैक किया।

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