我正在 Android 上开发一个应用程序,它将获取图像输入,并将该输入传递到安装 MATLAB 应用程序的服务器。
MATLAB 应用程序将计算结果并将其返回到该 Android 应用程序。
我想知道我可以使用哪个服务器?
如何将 MATLAB 应用程序安装到该服务器?
首先,您需要一个 Web 应用程序服务器来接收来自 Android 应用程序的内容。您可以使用任何您喜欢的东西,但是您选择的任何一个都可能会影响您部署 MATLAB 应用程序的方式。
为此,您有三个选择。
- 只需在服务器上安装 MATLAB 的副本即可。让您的 Web 应用程序将图像写入某个目录,让 MATLAB 循环监视该目录,当它看到文件时,执行其操作,写出结果,然后继续监视该目录。让您的 Web 应用程序监视输出目录并将结果返回给用户。您需要一种命名文件的方法,以确保正确的输出与正确的输入相匹配。
请注意,此选项 1 受到 MATLAB 许可证性质的严格限制。您只能向获得该 MATLAB 副本许可的用户提供访问权限,因此,如果您希望公开提供 Android 应用程序/服务,那么它不太可能是您的正确选择。
- 使用 MATLAB Builder NE for .NET 或 MATLAB Builder JA for Java 将 MATLAB 应用程序转换并打包为 .NET 程序集或 Java 类。 (如果您选择了 Microsoft Web 应用程序服务器,请选择第一个,如果是另一个堆栈,您可能需要第二个)。然后让您的 Web 应用程序调用该组件,向其传递图像数据并直接检索结果。
使用 Builder 产品部署的组件可以在最终用户不需要 MATLAB 许可证的情况下使用和共享,从而解决了选项 1 的主要问题。请注意,Builder 产品是 MATLAB 的(有些昂贵)附加产品。
选项 2 的问题是可扩展性。那里只有一个 MATLAB 组件,所有请求都会排队等待通过。如果您只有一些不频繁的用户请求,这可能没问题,否则您将需要运行组件的多个副本的池,并且需要编写一些代码来管理该池并将请求传递给组件。
你可以自己做(这可能很难),或者你可以去找
- 使用 MATLAB 生产服务器。这基本上需要使用上述 Builder 产品之一部署的组件,并为您进行池管理,直接与 Web 应用程序服务器通信。这是另一种附加产品(稍微贵一些)。
我的建议是,除非您希望部署一个可以通过选项 1 正确许可的私有应用程序,否则我会选择选项 2 开始,看看效果如何,然后考虑是否可以使用选项 3 进行扩展。
请注意,还有另一种选择:
- 根本不要将 MATLAB 应用程序部署到服务器。相反,使用 MATLAB Coder(同样是一个附加产品,但比 Builders 或生产服务器便宜)将您的应用程序转换为 C 代码。然后将 C 代码直接合并到您的 Android 应用程序中,以便在设备本身上运行。这可能更容易部署,而且速度明显更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)