主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

MATLAB Production Server Java 客户端基础知识

Java® 客户端库提供了一个 API,让您可以使用本机 MATLAB® 数据评估部署在远程服务器上的 Java 函数。

获取并配置客户端库

在使用客户端库 API 之前,您需要获取包含该库的 mps_client.jar 文件,然后通过将该文件添加到 Java 类路径来配置您的开发环境以访问该文件。

您可以从以下位置之一获取 mps_client.jar 客户端库:

  • MATLAB Production Server™ 安装中,mps_client.jar 位于 $MPS_INSTALL/client/java

  • MATLAB Production Server 客户端库中的 mathworks.com 上,选择您的版本以下载并解压客户端库存档。mps_client.jar 文件位于 /java 文件夹中。

  • https://mvnrepository.com/artifact/com.mathworks.prodserver/mps_java_client 的 Maven™ 存储库中。要在您的 Maven 工程中使用该 jar,请在 pom.xml 文件中包含以下坐标:

    <!-- https://mvnrepository.com/artifact/com.mathworks.prodserver/mps_java_client -->
    <dependency>
        <groupId>com.mathworks.prodserver</groupId>
        <artifactId>mps_java_client</artifactId>
        <version>release_number</version>
    </dependency>
    

选择客户端-服务器通信的工作流

Java 客户端库中的 API 为客户端-服务器通信提供了两种工作流,一种使用基于代理的流程,另一种与语言和平台无关。

使用 MWHttpClient 类的基于代理的工作流

此工作流使用 MWHttpClient 类并在评估部署在服务器上的 MATLAB 函数时隐藏请求创建和数据序列化的实现细节。根据您的要求,您的客户端可以使用静态代理或动态代理来评估 MATLAB 函数。

  • 静态代理使用实现镜像已部署的 MATLAB 函数的接口的对象。您提供静态代理的接口。该接口是类型安全的,并在编译时强制将正确的数据类型传递给函数。有关详细信息,请参阅静态代理接口指南

  • 动态代理根据您提供给 invoke() 方法的 MATLAB 函数名称创建服务器请求。您将函数名称作为参数与函数参量一起传递给代理。您提供函数名称、输出参量的数量以及评估函数所需的所有输入参量。此过程将类型检查推迟到运行时。有关详细信息,请参阅动态调用 MATLAB 函数

要将代理实例化为 MATLAB Production Server 实例并调用 MATLAB 函数,请遵循以下基本步骤。

  1. 创建一个 MWClient 对象,用于与 MATLAB Production Server 实例托管的服务进行通信。

  2. 创建 MATLAB 数据结构体来保存客户端和服务器之间传递的数据。

  3. 调用 MATLAB 函数。

  4. 使用 close 对象的 MWClient 方法释放系统资源。

有关完整示例,请参阅使用 MWHttpClient 类创建 MATLABProduction ServerJava 客户端

使用 RESTful API 和 protobuf 的语言和平台中立工作流

此工作流使用 MATLAB Production Server 用于 MATLAB 函数执行的 RESTful API 来创建请求,并使用协议缓冲区 (protobuf) 来序列化数据。协议缓冲区是一种与语言和平台无关的序列化结构化数据的方法。

要在向服务器发出请求时使用 protobuf,请在客户端代码中将 HTTP Content-Type 标头设置为 application/x-google-protobuf。Java 客户端库提供帮助类,以根据 proto 格式内部创建 protobuf 消息并返回相应的字节数组。在 HTTP 请求正文中使用此字节数组。Java 客户端库提供了反序列化 protobuf 响应的方法和类。

有关示例,请参阅在 Java 客户端中使用协议缓冲区进行异步 RESTful 请求在 Java 客户端中使用协议缓冲区同步 RESTful 请求

另请参阅

主题