PyRoおよびRPyC Pythonライブラリの長所と短所は何ですか?
-
05-07-2019 - |
質問
Pythonのリモートプロシージャコールエンジンを探していますが、 PyRo(Pythonリモートオブジェクト)と RPyC(リモートPythonコール)はどちらも私が探している種類のものです。
しかし、私は彼らがお互いをどのように比較し、彼らの長所と短所が何であるかを知りたいですか?
解決
個人的にはほぼ同等であると思いますが、RPyCの著者(こちら)はよりシンプルであると主張しています分散コンピューティングに慣れていない人がいるので、彼はポイントを持っています;私はそれに慣れすぎて良い判断を下すことができません;-)。彼を引用して...:
PYROには長いリストがありますが その再開のかなりのプロジェクト&#232 ;、私 サーバーのセットアップも見つける 複雑な、考慮に入れると 必要なコードの量、登録 オブジェクト、実行中のネームサーバーなど 別の数は言うまでもありません 考慮しなければならない概念(イベント、 名前の有無にかかわらず再バインド サーバー、プロキシと属性プロキシ、 名前は一意である必要があります。など)。そして 制限されています(リモートオブジェクトは 選べるので、作業できません リモートファイルなど)。全体として、PYRO 特別なケースが多すぎて 一般的に複雑すぎる(はい、私は これは複雑だと考えてください)。だから もちろん私は独立した校閲者ではありません -しかし、あなた自身で判断してください。 RPyCはシンプルでクリーンではありませんか?
コインの反対側では、PyROは何らかのセキュリティを提供しようとします(RPyCの著者の主張はとにかく弱すぎ、PyROの主張する合併症の多くの根底にあります)。
より独立した声であるDavid Mertzは、こちらを提供していますRPyCの良い説明(PyROはずっと以前からあり、Davidはそれを扱った以前の記事を指摘しています)。 「クラシックモード」は、完全に一般的かつシンプルでセキュリティがゼロの部分であり、「Pyroと基本的に同一です(Pyroのオプションのセキュリティフレームワークなし)」; 「サービスモード」より安全です(明示的に許可されていないものはすべてデフォルトで禁止されています)、デイビッドは"サービスモードは基本的にRPC(XML_RPCなど)であり、呼び出し規約と実装に関する詳細をモジュロします。私には公平な評価のようです。
ところで、私は単一言語のRPCシステムが特に好きではありません-Pythonが私のニーズの99%をカバーしていても(そしてそれほど高くない;-)、どんな言語でも使用できるという事実が大好きです残りの1%... RPCレイヤーでそれを放棄したくありません!-) JSON-RPC このモジュールなど...!-)。
他のヒント
YMMV。ただし、これは今後のプロジェクトで使用するためにRPyC、Pyro4、ZeroRPCを評価した結果です。綿密なテストはなく、綿密なレビューを目的としたものではなく、それぞれが今後のプロジェクトのニーズにどのように機能するかについてのメモだけです。
ZeroRPC:
- いくつかの依存関係をやめる
- 非常に若いプロジェクト(dotCloudからの主なサポート)
- ごくわずかなドキュメント
- リモートオブジェクトの属性にはアクセスできず、メソッドだけにアクセス
- 属性アクセスがないため、IPythonタブ補完はリモートオブジェクトで機能しません
Pyro4:
- Python3サポート
- 素敵で豊富なドキュメント
- 成熟したプロジェクト
- 属性アクセスなし/ IPythonタブ補完
Pyro3:
- 属性アクセスのサポート(ドキュメントに記載されていますが、検証されていません)
- Python3のサポートなし
RPyC:
- 属性アクセス、リモートオブジェクトのIPythonタブ補完
- Python3のサポート(ドキュメントに記載されていますが、まだ検証されていません)
- スポッティドドキュメント
FWIW:
私はRPyCが好きな傾向があります(おそらく最初の理由だったのですか?;-)が、ドキュメントがまばらです。 RPCに初めて触れたので、「grok」に時間がかかりました。物事を機能させる方法。著者(Tomer)は非常に親切で、Google RPyCリストのQに回答しています。
RPCを初めて使用する場合は、Pyroから始めて、堅牢なドキュメントを活用してロープを学習することをお勧めします。必要に応じてRPyC、ZeroRPCなどに進みます。