关于Matlab的Web开发以及Matlab webservice服务的实现经验

              本博客所有文章分类的总目录:【总目录】本博客博文总目录-实时更新

      Matlab和C#混合编程文章目录 :【目录】Matlab和C#混合编程文章目录

最近碰到一个同学要用到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的版权以及运行速度等等。。这不是学生做科研学生考虑的问题,呵呵,可以不予理会。

 

 

posted @ 2010-12-20 12:39  数据之巅  阅读(6009)  评论(2编辑  收藏  举报