سؤال

أنا أبحث عن محرك استدعاء الإجراء عن بعد لـ Python وقد وجدت ذلك PyRo (كائن بايثون البعيد) و RPyC (مكالمة بايثون عن بعد) كلاهما من النوع الذي أبحث عنه.

ولكن لدي فضول لمعرفة كيفية مقارنتهم ببعضهم البعض وما هي إيجابياتهم وسلبياتهم؟

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

المحلول

أنا شخصياً أجدهما متساويين تقريبًا، لكن مؤلف RPyC (هنا) يدعي المزيد من البساطة (وربما بالنسبة لشخص لم يستخدم الحوسبة الموزعة، فقد حصل على نقطة؛ربما أكون معتادًا على ذلك لأكون قاضيًا جيدًا؛-).نقلا عنه...:

وبشكل عام ، فإن Pyro لديها الكثير من الحالات الخاصة وهي معقدة بشكل عام (نعم ، أنا أعتبر هذا معقدًا).أليس RPyC أبسط وأنظف؟

على الجانب الآخر من العملة، يحاول PyRO توفير بعض الأمان (وهو ما يدعي مؤلف RPyC أنه ضعيف جدًا على أي حال، ويكمن وراء العديد من التعقيدات المزعومة لـ PyRO).

ويقدم الصوت الأكثر استقلالية، ديفيد ميرتز هنا شرح جيد لـ RPyC (كان PyRO موجودًا لفترة أطول ويشير ديفيد إلى المقالات السابقة التي تغطيه)."الوضع الكلاسيكي" هو الجزء العام والبسيط تمامًا والخالي من الأمان، "مطابق بشكل أساسي لـ Pyro (بدون إطار الأمان الاختياري لـ Pyro)"؛يعد "وضع الخدمات" أكثر أمانًا (كل ما هو غير مسموح به صراحةً يكون محظورًا افتراضيًا)، ويقول ديفيد، "وضع الخدمة هو في الأساس RPC (على سبيل المثال، XML_RPC)، ويقدم بعض التفاصيل حول اصطلاحات الاتصال والتنفيذ".يبدو تقييما عادلا بالنسبة لي.

راجع للشغل، أنا لست مغرمًا بشكل خاص بأنظمة RPC أحادية اللغة - حتى لو كانت لغة Python تغطي 99% من احتياجاتي (وهي ليست عالية جدًا؛-)، فأنا أحب حقيقة أنني أستطيع استخدام أي لغة للباقي. %...لا أريد التخلي عن ذلك في طبقة RPC!-) أفضل أن أفعل ذلك على سبيل المثال. JSON-RPC عبر هذا وحدة، أو ما شابه ذلك...!-).

نصائح أخرى

YMMV، ولكن إليك نتائجي من تقييم RPyC وPyro4 وZeroRPC لاستخدامها في مشروع قادم.لاحظ أنه لا توجد اختبارات متعمقة، ولا يُقصد من ذلك أن تكون مراجعة متعمقة، فقط ملاحظاتي حول مدى نجاح كل منها في تلبية احتياجات مشروعي القادم.

صفرRPC:

  • عدد غير قليل من التبعيات
  • مشروع صغير جدًا (الدعم الرئيسي من dotCloud)
  • القليل جدا من الوثائق
  • لا يمكن الوصول إلى سمات الكائن البعيد، فقط الأساليب
  • نظرًا لعدم توفر الوصول إلى السمات، لا يعمل إكمال علامة تبويب IPython على الكائنات البعيدة

بايرو4:

  • دعم بايثون3
  • وثائق جميلة وفيرة
  • مشروع ناضج
  • لا يوجد وصول إلى السمة/إكمال علامة تبويب IPython

بايرو3:

  • دعم الوصول إلى السمة (المطالب به في المستندات؛لم يتم التحقق)
  • لا يوجد دعم لـ Python3

RpyC:

  • الوصول إلى السمة وإكمال علامة تبويب IPython على الكائنات البعيدة
  • دعم Python3 (المطالب به في المستندات؛لم يتم التحقق منها بعد)
  • وثائق متقطعة

FWIW:

أنا أميل إلى الإعجاب بـ RPyC (ربما لأنه كان الأول بالنسبة لي؟;-)، لكن توثيقه متناثر.لقد كان ذلك أول تعرض لي لـ RPC، واستغرق الأمر وقتًا طويلاً لأتعرف على كيفية تشغيل الأشياء.المؤلف (Tomer) مفيد للغاية ويستجيب للأسئلة الواردة في قائمة Google RPyC.

إذا كنت جديدًا في RPC، فإنني أقترح البدء بـ Pyro والاستفادة من وثائقه القوية لتعلم القواعد.انتقل إلى RPyC وZeroRPC وما إلى ذلك.كما تتطلب احتياجاتك.

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