سؤال

ZeroC الجليد (www.zeroc.com) تبدو مثيرة للاهتمام وأنا مهتم في النظر إليها ومقارنتها الموجودة لدينا البرنامج الذي يستخدم WCF.في WCF التطبيق يستخدم ملقم الاسترجاعات (عبر HTTP).

أي شخص مقارنة بهم ؟ كيف سار الأمر ؟ أنا مهتم بشكل خاص في جانب الأداء منذ التوافقية ليست الكثير من القلق بالنسبة لنا الآن.وذلك بفضل!

هل كانت مفيدة؟

المحلول

لقد قمت جدا مقتضب استعراض الجليد قبل بضع سنوات, وعلى الرغم من أنني لم بالمقارنة بهم مباشرة قبل وجود معرفة معقولة WCF أفكاري قد يكون لها بعض الأهمية.

أولا, ليس entierely عادلة مقارنة WCF مع الجليد كما WCF مثل الثلج هو محدد وسائل الاتصال عن بعد آلية تمويل رأس المال العامل هو أعلى مستوى الاتصالات عن بعد الإطار.

في حين WCF في كثير من الأحيان تنفيذ الصابون خدمات الويب, وهذا هو في الواقع الاستخدام الرئيسي لها حتى الآن, فإنه يمكن أيضا أن تستخدم لتنفيذ الخدمات عن بعد باستخدام جميع أنواع ترميزات و قنوات النقل ، مما يعني أنه يمكن نظريا أن تستخدم performant الإتصالات بين التطبيقات.

في المقارنة, الجليد هو عبر منصة البعيد communicaton الآلية التي تستخدم ثنائي ترميز performant الاتصالات بين التطبيقات.إنه شيء مبسطة تطور كوربا و هو أكثر مشابهة مباشرة كوربا, DCOM .صافي الاتصال عن بعد ، JNI.

ومع ذلك ، على الرغم من أن هناك لا المراسلات المباشرة بين الثلج و WCF, إذا كنت بحاجة إلى .صافي التطبيق على التواصل عن بعد ثم هم كل من المتنافسين.بعض نقاط القرار قد ترغب في النظر في ما يلي:

  • توفير الموارد.سوف يكون من الأسهل العثور على المطورين مع WCF تجربة من الجليد الخبرة.

  • الأداء.إذا كنت تريد الأداء ثم الجليد ينفذ بسرعة ، ولكن WCF يمكن أن تستخدم أيضا في performant التكوين.بدلا من ذلك, .صافي الاتصال عن بعد يمكن أن توفر أداء جيد جدا و مهما MS-برعاية المرجعية أقول رأيت أنه يتفوق WCF بنسبة 10%.

  • عبر منصة.إذا كنت بحاجة إلى التواصل مع غير تطبيقات ويندوز إذا كنت محدودة مع WCF الخيارات التي يمكنك استخدامها.وبالإضافة إلى ذلك, لأن كل الصابون كومة يبدو لتنفيذ المعايير بشكل مختلف يمكن أن يكون الألم خلق حقا عامة خدمات ويب (على الرغم من WS-يساعد)

إذا كنت لا تحتاج إلى كل قطرة من الأداء من يوم واحد ، ثم أود شخصيا طبطب على WCF في البداية ، ومن ثم النظر في الثلج إذا كان الأداء من أي وقت مضى يصبح حاسما.حتى ذلك الحين قد يكون من الأرخص خارج نطاق الخدمة مربعات بدلا من الانتقال إلى الجليد ، وإذا لم يكن لديك أي الغريبة عبر منصة الاحتياجات ثم يمكن أن ننظر دائما إلى إعادة تكوين رأس المال العامل ثنائي الترميز الخ

نصائح أخرى

ميشي هينينغ من ZeroC مؤخرا نشرت ورقة بيضاء على هذا الموضوع -- "اختيار الوسيطة:لماذا الأداء وقابلية القيام به (لا) هذه المسألة".فإنه يقارن الجليد ، WCF (ثنائي & الصابون) و RMI مع مختلف مقاييس الأداء, منصات, اللغات, الخ.هناك مزيد من المعلومات حول ميشي بلوق, لكن الورقة البيضاء هو أيضا تماما للقراءة ، مع كل معيار المحاذير من أي مرجعية.

تنويه:لقد استعملت الثلج و RMI على نطاق واسع ، ولكن لم WCF.

أباتشي التوفير هو آخر منافس على الجليد WCF.تم تطويره وفتح مصادر Facebook. أباتشي التوفير جميل في بعض النواحي لأنه ليس فقط فعالة للغاية على ترميز الجانب ، كما أنه يدعم إضافة الحقول إلى هياكل من دون كسر جميع العملاء (ما وجدنا مفيدة للغاية بالنسبة مشاريعنا).

جوجل البروتوكول مخازن قد لا يبدو حقا المنافس كما أنه لا يذكر .صافي الدعم على الصفحة الرئيسية.إلا أن بعض المجتمع addons الدعم C#.وبالإضافة إلى ذلك ، الجليد يوفر مضاهاة جوجل البروتوكول المخازن المؤقتة إذا كنت تعمل مع الخدمات القائمة.

نقطة البيانات:نحن فقط تحويلها رد متعدد منصة متعددة اللغات المشروع من الجليد إلى التوفير مع نتائج جيدة جدا.الجليد يفعل الكثير بالنسبة لك, لذلك كان علينا أن تنفيذ انقطاع المستمعين الاتصال الأحداث ، إلخ.أنفسنا.وفي حالة واحدة لدينا بت في المثل مع كائن كبير قفل هذا الثلج مما يتيح لنا الحصول على بعيدا مع هذا تسبب الجمود في التوفير خادم ولكنها كانت ثابتة بسهولة قبل أقل كسول الترميز على C# الجانبية.

لقد انتهيت للتو من الحكمة في شيء أن يدفع كميات كبيرة من البيانات أسرع من ، أو على قدم المساواة مع الجليد.أقصر الرسائل مع المزيد من فوق الرأس (أي "نبضات" التي تحديثات الحالة على بروتوكول) هو أبطأ قليلا.

الشيء الأكثر أهمية هو أنه من أجل تنفيذ الاستدعاء الخدمة بشكل صحيح علينا أن تمديد التوفير واجهات وتحديد منطقتنا البروتوكول ، جنبا إلى جنب مع التوفير "المعالج" و رد ملقم-عميل.ولكن أنا أعترف لدينا التطبيق /جدا/ خاص.البروتوكولات الموجودة والخوادم ينبغي أن يكون كافيا.بل تمتد حتى إلى استخدام متعددة من مآخذ .صافي, لم يكن من الصعب بشكل رهيب.

نحن نستخدم الثلج لدمج وحدات خطية في كل من C++, Java و C#.الشيء الجميل هو أن الخادم لدينا يمكن الوصول إلى المكونات على الأجهزة البعيدة كذلك, حتى إذا كنا بحاجة إلى المزيد من الأداء يمكننا تحويل تجهيز آلات مختلفة.

لقد استعملت كل من صندوق رأس المال العامل و الثلج و الجليد نظافة على تنفيذ الجانب.الجليد أيضا مفصلة جدا و قراءة الوثائق.

الجليد يدعم بعض الأشياء التي WCF لا يمكن القيام به ، بما في ذلك موازنة التحميل ، الآلي عن بعد تحديثات العميل ، وما إلى ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top