2012-04-04 27 views
4

我是使用正確工具進行工作的粉絲。將科學Python整合到現有的Rails web應用程序中

在我的公司,數據分析師(包括我自己)主要使用Python,因爲它有強大的科學庫;樓下的網絡人員使用Ruby on Rails來構建我們自己的人力資源管理Web應用程序,並維護我們的在線狀態。

我們希望兩個團隊能夠合作開發更多科學web應用程序,但不確定如何繼續。

我們對這兩種技術都有重大投資,我們需要繼續使用大量代碼庫。

對使用​​兩種獨立語言整合科學編程和網絡應用這兩個領域的最佳方式有什麼建議嗎?

回答

1

爲了代替實質上破壞代碼庫以適合其他代碼,我首先建議您評估一個SOA解決方案。

例如,爲您的Python系統創建一個API接口,並讓 Rails應用程序調用該API來獲取HR和公共站點系統 所需的API。

+1

這聽起來像是最好的範例。現在我只需要解決如何打開我的代碼庫到一個API ... – jbbiomed 2012-04-05 12:52:13

+0

我已經對此做了一點研究。鑑於科學數據不是爲網絡設計的(但僅僅是分析客戶端數據),您是否有建議以簡單的方式來創建此API?對這篇文章的任何意見,我發現瓶和mongodb? http://myadventuresincoding.wordpress.com/2011/01/02/creating-a-rest-api-in-python-using-bottle-and-mongodb/ – jbbiomed 2012-04-05 13:40:03

0

把2隊放在同一樓層。其餘的將自行解決。

您可以將Python代碼作爲服務器應用程序運行,並讓Web應用程序通過消息總線與它交談。

例如具有Python和Ruby客戶端庫的RabbitMQ。如果您使用JSON消息,則應該非常直接地在語言之間交換對象。

0

我假定Python部分是一堆後端庫/科學功能模塊,而Ruby-on-Rail部分主要是作爲前端。然後,一個相對簡單的解決方案就是將這些Python模塊/庫封裝到服務中,並讓Ruby on Rail建立的前端功能調用這些服務。

要構建Python的服務,您可以使用XML-RPC的簡單實現,或者一些複雜的框架如絞較大規模的實施。您也可以只創建一個承載你所有的Python模塊/庫,這將基本上給你處理所有的請求形成的Ruby-on-Rails的前端應用服務器門戶服務。使用哪種策略取決於Python庫/模塊的規模和複雜性。

相關問題