使用Server上的Matlab应用程序连接Android应用程序

时间:2015-02-06 03:53:37

标签: android matlab

我正在Android上开发一个应用程序,它将输入一个图像,并且该输入将被传递到将安装MATLAB应用程序的服务器。 MATLAB应用程序将计算结果并将其返回到该Android应用程序。

我想知道我能使用哪台服务器? 如何将MATLAB应用程序安装到该服务器上?

1 个答案:

答案 0 :(得分:1)

首先,您需要一个Web应用程序服务器才能从您的Android应用程序接收内容。您可以使用任何您喜欢的,但您选择的那个可能会影响您部署MATLAB应用程序的方式。

为此,您有三种选择。

  1. 只需在服务器上安装MATLAB的副本即可。让您的Web应用程序将图像写入某个目录,让MATLAB坐在监视该目录的循环中,当它看到文件时,执行其操作,将结果写出来,然后继续监视目录。让您的Web应用程序监视输出目录并将结果返回给用户。您需要一种命名文件的方法,以确保正确的输出与正确的输入匹配。
  2. 请注意,此选项1受MATLAB许可证的性质限制。您只能为获得该MATLAB副本许可的用户提供访问权限,因此如果您希望制作一个公开的Android应用程序,则它不太可能是您的正确选择/服务。

    1. 使用MATLAB Builder NE for .NET或MATLAB Builder JA for Java将MATLAB应用程序转换并打包成.NET程序集或Java类。 (如果您已选择Microsoft Web应用程序服务器,请选择第一个,如果它是另一个堆栈,您可能会想要第二个)。然后让您的Web应用程序调用该组件,将图像数据传递给它并直接检索结果。
    2. 可以使用和共享使用Builder产品部署的组件,而无需最终用户需要MATLAB许可证,因此解决了选项1的主要问题。请注意,Builder产品是(有些昂贵的)附加产品到MATLAB。

      选项2的问题是可伸缩性。你只有一个MATLAB组件,所有请求都会排队等候。如果您只有一些不常见的用户请求可能没问题,否则您需要运行该组件的多个副本池,并且您需要编写一些代码来管理该池并传递出去对组件的请求。

      你可以自己做(可能很难),或者你可以去

      1. 使用MATLAB Production Server。这基本上是使用上面的一个Builder产品部署的组件,并为您进行池管理,直接与Web应用程序服务器通信。这是另一种附加产品(稍贵)。
      2. 我的建议是,除非你想部署一个可以通过选项1获得适当许可的私有应用程序,否则我会选择选项2开始,看看它是怎么回事,然后考虑可能扩大规模选项3。

        请注意,还有一个选项:

        1. 根本不要将MATLAB应用程序部署到服务器上。相反,使用MATLAB Coder(再次作为附加产品,但比Builders或者生产服务器便宜)将您的应用程序转换为C代码。然后将C代码直接合并到您的Android应用程序中,以便在设备上运行。这可能更容易部署,而且速度更快。