2012-04-04 7 views
4

私は仕事に適切なツールを使用することのファンです。科学的なpythonを既存のRails Webアプリケーションに統合

私の会社では、データアナリスト(自分自身を含む)は、強力な科学ライブラリがあるため、主にPythonを使用しています。 Ruby on Railsを使用して自分の人事管理Webアプリケーションを構築し、オンラインでのプレゼンスを維持しています。

私たちは、2つのチームが少しずつ近づいて科学的なWebアプリケーションの開発を可能にしたいと考えていますが、進める方法については不明です。

私たちは、引き続き使用する必要がある相当なコードベースで、両方のテクノロジに多大な投資をしています。

科学プログラミングとウェブアプリケーションの2つのドメインを2つの別々の言語を使って統合する最良の方法についての提案はありますか?

答えて

1

いずれかのコードベースを実質的にハッキングする代わりに、まずSOAソリューションを評価することを提案します。

あなたのPythonシステムにというAPIインターフェイスを作成し、 RailsアプリケーションがHRとパブリックサイトのシステム に必要なAPIを呼び出します。

+1

これは、従うべき最良のパラダイムのように聞こえる。今私は、コードベースをAPIにどのようにオープンするかを検討する必要があります。 – jbbiomed

+0

私は今これについて少し研究しました。科学的データがWeb用に設計されていない場合(単にクライアントデータを分析するため)、このAPIを簡単に作成するための推奨事項はありますか?私はボトルとmongodbで見つけたこの記事に関する意見はありますか? http://myadventuresincoding.wordpress.com/2011/01/02/creating-a-rest-api-in-python-using-bottle-and-mongodb/ – jbbiomed

0

同じ階に2つのチームを配置します。残りはそれだけで解決します。

Pythonコードをサーバーアプリケーションとして実行し、Webアプリケーションがメッセージバスを介してWebアプリケーションと通信できるようにします。

たとえば、PythonとRubyのクライアントライブラリを持つRabbitMQ。 JSONメッセージを使用する場合は、言語間でオブジェクトを交換するのはかなり簡単です。

0

Ruby-on-Railの部分がほとんどがフロントエンドであるのに対し、Pythonの部分は科学的機能のバックエンドライブラリ/モジュールのスタックであると仮定します。比較的簡単な解決策は、これらのPythonモジュール/ライブラリをサービスにラップし、Ruby-on-Railで構築されたフロントエンド関数がそれらのサービスを呼び出せるようにすることです。

Pythonサービスをビルドするには、単純な実装にxmlrpcを使用するか、大規模実装のためにねじれなどの洗練されたフレームワークを使用できます。すべてのPythonモジュール/ライブラリをホストするポータルサービスを1つだけ作成することもできます。これは基本的にRuby-on-Railsフロントエンドのすべての要求を処理するアプリケーションサーバーを提供します。どの戦略を使うかは、Pythonライブラリ/モジュールの規模と複雑さに依存します。

関連する問題