在Bioinformatics(生物信息學)領域,WebService是很重要的一種數據交換技術,未來必將更加重要。目前EBI所提供的WebService就分別有SOAP和REST兩種方式的服務,不管是數據服務還是計算服務(計算任務提交)。
1 Python + SOAP/WSDL/UDDI
最普遍的做法(個人觀點)是使用 python ZSI2.0?? ,ZSI還依賴于 SOAPpy? 和 pyXML? 等LIB。
SOAP協議很多人都很熟悉,有很多現有的應用也都使用Java等語言來開發服務端,而客戶端除了java,絕大多數的腳本語言也都可以勝任。
關于python ZSI的使用可以參考IBM DW上的這篇文章: 使用 python 開發 Web Service
2 Python + REST
REST一詞目前確實很流行;那么使用Python做REST開發,如何做技術選型呢???
其實接觸過python web的人應該都知道Django,典型的REST風格的WEB框架 ?。。?
那么在實際開發中,我們究竟如何選擇?
(1 如果你不是架構師,并不過分追求REST的面向資源的理念和體驗REST風格架構的具體實踐的話,那么,還是根據自己的業務需求和規模等,選擇適合的WEB框架或者python web server就好了;比如常見的Django,web.py,cherrypy,Zope,Twisted,Quixote,spyce,webware for python ... 當然國內的框架也不少。
(2 如果你確實想體驗下REST風格架構以及面向資源的設計,也許你可以選擇使用web.py來達到目的;
這里有一篇關于使用web.py實現RESTfull開發的博客文章: Getting RESTful with web.py?? , 相信有很好的參考價值 。
這里還有一篇中文的博文:? 用Python實現CRUD功能REST服務
(3 你可以選擇eurasia ?。?!? 地址:? http://code.google.com/p/eurasia/
eurasia是一個值得你了解的東西,它是一個server,也包含框架;而且主要特點是:
“ Eurasia is a low-level Python Web framework which follows the Tao
Eurasia3 被設計成用于解決百萬級同時在線的長連接用戶數量的 HTTP 服務器, 或者每秒種處理上萬次 CGI 請求的常規 Web 應用服務器。
Eurasia3 向下兼容 AJAX (難道 AJAX 對服務器有要求嗎?), 但是她不推薦您使用落后的 AJAX 模式來摧殘用戶和程序員, 她正在嘗試使用諸如 Pushlet? (Comet 是 Pushlet 的炒作版本) 一類的有趣技術來改變 Web 的開發面貌。
”
這里的Eurasia3是相對于 Eurasia2說的,兩者并不是一會事哦!
這里有它的文檔,可以了解和學習下: http://eurasia.googlecode.com/files/Eurasia-3.0.0a6.2-snapshot.tar.bz2
(4 其他方案。
尾聲:
在做技術選型時,有兩個前提很重要:1 你充分地了解你的項目需求,而且你很清楚自己要把它做成什么樣,做到什么規模; 2 你對項目實現相關的技術和理論比較了解,知識面要夠廣,同時對于主要流派的主要特色要清楚。
之后,你才可能做出不同的方案來比較選擇!? 對于IT項目開發,技術主要體現在實現階段,但是它完全其影響到整個項目生命周期! 選擇合適的理論和方法來解決問題,才有可能提高解決問題的效率和質量。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
