开发人员区

高级软件开发与MATLAB

构建产品,建立服务

MATLAB,具有大量域特定工具箱,为用户提供了多大的强大环境,用于原型算法。它提供了构建软件产品和服务的能力,这些产品和服务优雅地从单个用户/应用程序提供给下载188bet金宝搏整个企业的服务。

原型很重要,但没有任何东西永远留在原型!

如果仅仅是实验,算法被替换为下一个更大,更好的实现。如果有价值,则基于MATLAB的算法与其提供的洞察的目标受众共享。这位观众可以与少数同事或广泛的科学论文一样宽。根据目标受众的需求,Matlab提供了各种社交和消耗分析中的洞察的选项。这些选项范围从加速探索性编程到创建交互式叙述(例如直播编辑),与其他生产质量集成,企业级软件堆栈。

关键业务解决方案金宝搏官方网站,开发人员使分析本身在整个企业(或类似的用户基础)可用。为了支金宝app持这一需求,MATLAB提供了一个产品组合来支持一个适当的下载188bet金宝搏部署选项从独立的应用程序到运行在Microsoft Excel®、web应用程序、数据库、应用服务器甚至Hadoop系统等各种技术堆栈上的应用程序。

为了使它切实可行,让我们使用MATLAB算法从原型一直到生产级服务。

为了保持示例简单,让我们使用Fibonacci生成器安迪最近博客构建MATLAB供电服务。

建立MATLAB供电服务

我的示例应用程序将调用MATLAB算法作为服务来计算斐波那契数列的第N项。

作为一个插图,我将挑选一个无痛的方法来公开计算斐波纳契序列的服务。

MATLAB生产服务器™是一个企业级解决方案,它为开发人员提供了将MATLAB算法集成到完全面向服务的体系结构(SOA)的能力。面向服务的体系结构(SOA)是计算机软件设计中的一种体系结构模式,其中应用程序组件通过通信协议向其他组件提供服务,通常是通过网络,并且通常独立于任何供应商、产品或技术。

在Production Server上,您的MATLAB算法现在可以作为24 x 7 x 365的服务运行,重要的是,可以扩展宽和深。这样做的真正好处在于,开发人员现在可以在他们选择的环境中请求无状态MATLAB支持的分析。无论技术栈、供应商或语言如何,MATLAB程序都可以用于生产IT系统。

在这个例子中,我们服务的核心是MATLAB代码,用于计算第N个斐波那契数:

功能f =斐波纳契(n)%生成第N个斐波那契数的简单示例%采用矩阵指数法F = [1 1;1 0]^n;f = f(1、2);结束

将该算法打包到MATLAB生产服务器上运行需要使用生产服务器编译器进行几次点击,该编译器可以在应用程序目录中找到,也可以作为单个命令调用productionServerCompiler.可以一次封装多个算法。在本例中,我还封装了第二个调用的函数,该函数调用上面的代码来计算斐波那契数列直到一个合理的给定值N(在请求时验证输入)。

我们现在可以配置工具来创建一个可部署的包example.ctf.当部署到生产服务器时,它允许我们练习斐波那契数生成器算法。单击按钮生成已准备好使用的组件技术文件(CTF)。

这个过程可以支持多种功能,甚至可以金宝app容纳整个软件套件,其中的附加支持文件作为同一个CTF文件的一部分。

建立基础设施

请允许我放在我的IT帽子上。

这个练习的整个想法是,我可以提供基础设施作为一次性练习,允许我的开发人员将他们的MATLAB算法部署为服务。我想让这篇文章成为你们的互动实验,作为读者,在这篇文章的最后,在你们的浏览器中,用MATLAB提供的服务来练习这段代码。

要设置基础架构,我旋转了一个计算优化在运行Windows Server 2012上的AWS上的服务器。在此机器上,我通过安装MATLAB生产服务器和A来设置基础架构的其余部分matlab运行时.此外,我还配置了一些安全规则和防火墙设置,以允许在我打算公开服务的端口31415上建立连接。

软件安装基本上是一键式的过程,通过MATLAB Production server产品提供的脚本,可以轻松启动新的服务器实例。

C: \工作> mps-new服务

服务器实例的配置是通过位于\ services \ config \ main_config.在本例中,我进行了一些关键更改,以公开服务并匹配IT配置。简而言之:

#绑定服务到端口31415(即服务端口)--http 31415
#Matlab运行时设置(即MATLAB运行时在哪里)--mcr-root c:\ program files \ matlab \ matlab运行时\ v901
# CORS允许的起源(即从哪里可以访问)——CORS允许的起源*

这个产品是被设计成高度可定制的,并在配置文件中提供大量设置,其中包括可伸缩性设置,如工作人员的数量(通常设置为每个核心1个以扩展深度),以及安全设置,如配置HTTPS和相关证书。

启动服务器:

C: \工作> mps-start - C服务

可以动态地部署生成的Fibonacci CTF文件。例如,可以在运行的MATLAB生产服务器实例上部署、更新和删除服务。就像把文件复制到/服务/ auto_deploy文件夹中。

也就是说,Matlab生产服务器现在在Server的端口31415上为HTTP服务提供服务。它将接受通过许多机制的输入,包括简单的JSON编码的字符串。

MATLAB的分析到处都是

当我说这个服务现在可以从任何地方使用,包括你正在阅读这篇文章的浏览器时,我不是在开玩笑。为了演示这一点,我设置了一个简单的小提琴来从JavaScript计算第N个斐波那契数。

继续,给它一个尝试:http://jsfiddle.net/hosagrahara/ky5c6aoz/show

点击链接,点击运行,输入值并提交,观察MATLAB代码作为服务执行。

请继续尝试,或者如果你用斐波那契计算构建了一些有趣的东西,请发表评论。作为服务运行的MATLAB可以驱动下游功能——例如,我可以驱动我选择的可视化:http://jsfiddle.net/hosagrahara/vrhyd4uc/show

注意:我计划关闭MATLAB服务时,这篇文章是2周。如果通过下面的评论请求,我可以简短地把它打开。

现在,我选择Javascript作为一个简单的环境来展示服务。在真实的用例中,易于使用的文档客户端图书馆可以从。net、c#、Java、C/ c++、Python等调用MATLAB支持的服务。

站在我的立场走一英里

我对基础架构的调整是为了支持一个链接到博客文章的基本演示。金宝app在真实的应用程序场景中,您几乎可以无限地从大多数应用程序的每个级别进行MATLAB分析——例如,从数据库、应用程序代码甚至浏览器作为您的业务关键软件的一部分。

希望这篇文章描述了来自Matlab代码的骨架工作流程,并分析了整个世界的服务。在我结束这篇文章之前,除非你在鞋子里走了一英里,否则我想和你分享一些你可能不会意识到的事情。

简而言之,MATLAB生产服务器可用于构建服务和微服务:

  • 版本不可知论:产品将运行代码内置任何MATLAB版的基础架构只要在其配置中找到相应的运行时即可。在某些地方,仅这一事实就足以让一些IT组织站起来、鼓掌和欢呼。
  • 为性能建立:产品优雅地缩放。由于通信是通过HTTP(S),因此可以通过使用多个实例来提供负载平衡服务来使用更强大的硬件或缩放来扩展深度。这使得通过采用行业标准实践来进行缩放,故障转移和灾难恢复,可以实现弹性操作。
  • 启用开发人员级别的工作流:由于可以跨多个实例、端口甚至计算机分割工作人员,因此该产品允许为开发、测试和生产创建不同的环境。
  • 启用企业级安全:由于该服务可以通过HTTP(s)访问,因此可以使用经过战斗测试的安全产品和实践来保护该服务的访问,这些产品和实践可以增强大部分互联网的能力。下载188bet金宝搏该服务可以是开放的,你可以看到在JSFiddle以上的链接或安全,完全作为您的银行网站。

总之,构建MATLAB动力软件产品或MATLAB供电服务 - 您可以根据您的下一个开发项目的需求来决定。通过正确的方法,技术和工具,您最喜欢的MATLAB分析可能仅仅是点击。

请分享您的想法。你的评论让我的一天!




发布与MATLAB®R2016b

|

注释

要留下评论,请点击这里登录到您的MathWorks帐户或创建一个新帐户。