2012-05-10 9 views
4

私たちは、既製のフルスタックESB(エンタープライズサービスバス - http://en.wikipedia.org/wiki/Enterprise_service_bus)を、RabbitMQなどのAMQPシステムを中心に自社のベンダーと比較して議論しています。ESB for Python?

私たちのエコシステムは、できるだけ早くPythonに移行するPHPで、私たちはすでにJSONですべてのメッセージを渡しているAPIです。 ESB上の検索スペースと「SOAソリューション」は本当に汚染されています。それかこれはちょうどPython Thing(tm)ではありません。したがって私はここで尋ねます:私たちが検討したフルスタックESBソリューションは、主にSOAPベースのコンポーネントの統合に焦点を当てているようです。それは、私たちがやりたくないメッセージの二重ラッピングとアンラッピングのようなものです。また、できる限りESBサービスアダプタをPythonで記述したいと思っています。

PHP/Pythonエコシステムは内部的なものであることに注意してください。私たちのクライアントの多くは、私たちのアプリケーションが統合された大きなモノリシックなエンタープライズウェアを使用しているかなり隠れている組織です。彼らは、SOAP、XML-RPCなど、顧客対応のAPIに満足しています。我々はすでに要求を受けている。したがって、の境界であるでは、最終的にはJSONベースのサービスとSOAPベースのサービスの両方を提供する可能性があります。内部ではない。

tl; dr:誰かがPythonアプリケーションで使用するためにお気に入りのフルスタックESBを持っていますか?あなたが仕事をしていない不利な点はどうですか(とにかくでした)。 RabbitMQのようなものをラップすると、PHP/Pythonエコシステムにとってより良いアイデアだと思いますか?

答えて

2

うわー...それはかなり疑問だ、と私は完全にそれに答えることができるという方法はありません...しかし、あなたはここで尋ねたことからすると、ことわざの2セントです:

のRabbitMQはかなり良いです。私は科学的なコンピューティンググリッドでキャッシングを実装するマルチエージェントシステムでリアルタイムメッセージングに使用しています。 RabbitMQの優れた機能の1つは、パフォーマンスの良い機能かもしれない任意の(バイナリを含む)メッセージをプッシュできることです。 (おそらく、Hessianプロトコルのシリアライゼーション/デシリアライゼーションを使用していますか?)

私はRabbitMQで懸念しているのは、AMQP用のPythonライブラリの継続的なサポートです。現在の図書館は機能的ですが、私はそれらを使ってきました...しかし、彼らは長い間続いておらず、そのような仕事に関心を持って支援するコミュニティがどれほど大きいか分かりません。それは、RabbitMQ(AMQP、一般的にはメッセージング)が遅くなってきているように思えますし、うまくいけば、これがPythonのAMQPインターフェイスライブラリで作業しているベースを広げてくれるはずです。

+0

うん、同僚は、パイロットとしてのRabbitMQと私たちの過去の災害の一つを再実装し、ほんの数分前にはるかに高速のシリアル化に言及した電子メールを送っています。現実的には、ええ、間違ったAMQPライブラリを選んで放棄した場合、それは邪魔になりかねません。放棄するか放棄するかのどちらかです。ありがとう! – taiganaut

+0

zatoは特にpython中心のアプリ向けに作られました。彼らはesbについての記事[1]を公開しました。 [1] https://zato.io/docs/intro/esb-soa.html – Kunthar

2

本当に大きな質問です。もし可能であれば、私は本当に大きな質問です。だから、もし私があなたを誤解してしまったら、私を許してください。

ESBは、実際にアプリケーションを実装する際の言語の選択肢に実際には結びついていません。ですから、あなたがSOAで接続したいアプリケーションがPHPやPythonで書かれていても、それらをSOAに公開できるはずです。一方、JSONはSOA世界では選択肢が少しあります。この選択は本当に重要です。

COTS ESBの多くは、あるレベルのRESTサポートを提供します。 Mule、ServiceMix、WSO2、JBossはオープンソースのものです。商用ベンダーと一緒に行くことを望むなら、私はTibcoとOracleがすぐに使えるサポートを提供しているとか、少しのコーディングで実装できると思っています。

RabbitMQやAMQPなどのメッセージブローカーを使用することは、実際にはトランスポートに関係しています。あなたの目標がアプリケーション間でメッセージングを追加することであるなら、それは私が本当に答えることのできない有効な質問です。

あなたがESBに関心を持つ主な動機を書くことができれば、より良い答えに役立ちます。

HTH