MATLAB Production Server™ is the run-time framework for integrating MATLAB® based analytics into enterprise applications. It manages the running of different MATLAB analytics that require different versions of the MATLAB Runtime in response to large numbers of concurrent work requests from enterprise systems such as databases, web servers, and application servers.
When used together, MATLAB, MATLAB Compiler SDK™, and MATLAB Production Server enable the rapid development of custom analytics, their integration into enterprise applications, and their deployment within production environments without recoding or creating custom infrastructure.
Algorithm developers use MATLAB to design, test, and refine their algorithms. They then use MATLAB Compiler SDK to package the resulting MATLAB programs as an analytic for deployment on MATLAB Production Server.
Application developers integrate the lightweight client libraries included with MATLAB Production Server into their enterprise applications. These libraries are used in making requests to MATLAB analytics running on MATLAB Production Server. The client libraries support .NET, Java®, C/C++, and Python® environments. To access MATLAB Production Server from other programming environments, you can use the RESTful JSON interface to MATLAB Production Server. You can use MATLAB Compiler SDK for debugging your MATLAB algorithms in the enterprise framework before deploying to MATLAB Production Server.
IT system administrators manage the deployment of MATLAB analytics within a production environment using MATLAB Production Server. A web management dashboard lets IT administrators manage all MATLAB Production Server instances and applications deployed to them from a single interface. It also gives visibility into the system resources consumed by MATLAB Production Server instances and the real-time request throughput performance.
The lightweight client libraries included with MATLAB Production Server support .NET, Java, C/C++, and Python environments. The MATLAB Production Server RESTful API enables you to evaluate MATLAB functions on remote servers using JSON representation of MATLAB data types. You can create client programs in any programming language with an HTTP library. These interfaces let system architects and application developers incorporate MATLAB analytics into a wide assortment of web servers, databases, desktop applications, and other enterprise applications. Using a server-based deployment architecture, system administrators can centrally manage and update analytics, ensuring that their users are automatically using the correct version.
MATLAB Production Server also supports HTTPS to provide a secure communication between clients and server. You can use additional authorization and access controls to ensure that your analytics are used only by authorized applications.
The dynamic invocation API of the .NET, Java, C/C++, and Python client libraries lets you create generic application plug-ins. This eliminates the need to update the plug-in when new or updated analytics are deployed in uses such as within a database as part of a stored procedure.
MATLAB Production Server is equipped with a web-based management dashboard that enables you to configure and control all deployed MATLAB applications from a single interface. The management dashboard gives visibility into the system resources consumed by MATLAB Production Server instances and the real-time request throughput performance.
The client libraries provide functions and methods you can use to connect to MATLAB Production Server and to make requests to run MATLAB based analytics. This enables application developers to focus on their applications, with the client library providing the mechanisms to make connections and manage data transfer and calculation requests between the application and MATLAB Production Server.
The client libraries have been developed uniquely for each of the environments currently supported, including .NET, Java, C/C++, and Python. For example, the .NET and Java libraries provide for static typing of variables that are being passed to MATLAB for processing. This enables your MATLAB based analytics to interoperate in a type-safe environment, a requirement for many enterprise applications.
MATLAB Production Server handles large numbers of concurrent work requests to run MATLAB analytics by taking advantage of multicore and multiprocessor servers. To provide additional capacity and redundancy, you can deploy MATLAB Production Server on multiple server nodes.
MATLAB Production Server uses a pool of workers (MATLAB computational processes) to run MATLAB programs concurrently. To optimize performance, workers are allocated across available processing cores within a computer. System administrators can configure the worker pool to optimize the number of active workers versus desired response time. When not servicing a request, workers are kept on standby to ensure a low latency response.
To service more requests and optimize response time, system administrators can deploy additional instances of MATLAB Production Server. MATLAB Production Server uses a stateless architecture, which enables any free worker in a pool to service a request. Client requests can be directed to any MATLAB Production Server in a cluster using load balancing either built within your application or as an external device. This approach creates a system architecture that is resilient to failures.
Packaged MATLAB programs are published in a repository for automatic deployment. By creating a shared repository, system administrators can automatically deploy MATLAB programs across multiple instances of MATLAB Production Server.
A MATLAB Production Server license provides access to a specific number of workers (MATLAB computational engines) that run simultaneously on one or more computer servers.
MATLAB Production Server consists of server software and lightweight client libraries. The server software can be installed on all hardware platforms and operating systems that MATLAB supports. The client libraries can be integrated with any supported application environment and distributed as a part of the application to any number of end users. If you are using the RESTful JSON interface, you do not need to distribute any client libraries.
MATLAB Production Server workers use the MATLAB Runtime, a set of run-time libraries required to run MATLAB programs packaged using MATLAB Compiler SDK. Programs that run on MATLAB Production Server require installation of the MATLAB Runtime version that matches the MATLAB Compiler SDK version used to package the program. MATLAB Production Server can manage multiple versions of the MATLAB Runtime and packaged programs.
Learn more about client and server system requirements.
For details on installing and configuring MATLAB Production Server, see MATLAB Production Server Quick Start.