閱讀424 返回首頁    go 阿裏雲 go 技術社區[雲棲]


關於Matlab的Web開發以及Matlab webservice服務的實現經驗

最近碰到一個同學要用到Matlab web Service服務,聽說過,但是從來沒用過,花了很多時間去配置,結果失敗了,所以特意到此留個腳印告誡後來的同學們:

1、首先說說matlab 的webservice服務這個東西,說白了就是能夠在web頁麵調用服務器上的matlab進行運算,以利用matlab強大的函數庫和功能。這看起來的確很美好,特別是對於學生來說,matlab裏麵大量的函數可以說大大的減輕了其編程的工作量,而把更多的時間花在業務流程與算法上麵。

2、可行性:matlab web service服務在2007版本裏麵已經比較完善了,而新版本中已經去掉了這一功能,反正以前的那種web service開發方式是否淘汰掉了。根據官方提供的例子也能夠運行和配置,雖然matlab為我們提供了這種可行性,但是我不得不說,對於一個關於其他業務知識的學生來說,采用這一功能,完全不可行:服務無故啟動不了;剛還能運行的程序一會就運行不了;還要結合網頁與輸入輸出參數對源程序和網頁程序進行更改,……這一些問題每一個都會繁瑣不一,我為2個程序在服務器上搞了2天,中間成功過,後來莫名其妙的錯誤,我徹底崩潰了,所以也放棄了采用matlb web service來解決問題的方法,實際上還有更好的解決方法;

3、替代解決方法:對很多學生來說,可能更多的關注自己的研究領域的細節和算法,而對實現過程則不關心,雖然精通一門編程語言可以給他們帶來很多便利,但是在目前很多科研學生的編程能力還是不夠的;對於matlab web service的替代解決方法是:采用其他網頁開發語言來編寫基本的網頁程序和算法,對於複雜的算法或者需要用到matlab中大量的函數的項目,可以采用混合編程的方式解決,目前matlab 2010已經很好的支持.NET 和 JAVA的混合編程,這樣可以極大的提高效率,和減少部署難度,並且,用.NET或者JAVA來開發算法或者編寫網頁程序也是如此 的簡單和便利,至少目前大部分網頁程序的程序員都是屬於這2者。

4、實際案例:以我碰到的這個案例來說吧:

  之前:想采用matlab web service來實現從網頁輸入指定的序列,服務器調用matlab程序進行運算,並返回結果,網頁輸出;而網頁是采用C#.NET做的;

  由於配置複雜,要求較高,最終實現一半放棄了這一想法;轉用.NET混合編程實現:

最終方案:將matlab m程序編譯,在C#.NET中調用大部分算法,其他一部分處理過程直接用C#完成,網頁是用C#.NET做的,所以matlab中的算法很容易得到調用,得到了結果,想怎麼顯示就怎麼顯示。這種方案部署容易,實現簡單(當然要掌握.NET混合編程的技巧),相對第一種方法,不知道輕鬆多少。

下次有時間再來寫一篇matlab與.NET混合編程的文章吧,的確很方便了,有了這個工具,對於做科研的同學來說,如虎添翼啊!但是一些實際的應用項目的話,可能也不太可行,因為matlab的版權以及運行速度等等。。這不是學生做科研學生考慮的問題,嗬嗬,可以不予理會。

 

cnblogs 標簽: Matlab開發C#.NET Web開發matlab混合編程

最後更新:2017-04-02 06:51:32

  上一篇:go 麵向程序員的數據庫訪問性能優化法則
  下一篇:go 關於Http Post Xml