Running MATLAB analytics as a part of web, database, and enterprise applications.

Production Deployment of MATLAB Programs

MATLAB Production Server is the run-time framework for integrating MATLAB based analytics into enterprise applications. It manages the running of MATLAB analytics and MATLAB run times 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.

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.

System administrators manage the deployment of MATLAB analytics within a production environment using MATLAB Production Server.

Workflow for production deployment of MATLAB programs using MATLAB Production Server. The workflow enables the rapid development of analytics and their deployment with enterprise applications.

Integration with Enterprise Applications

The lightweight client libraries included with MATLAB Production Server support .NET, Java, C/C++, and Python environments. These libraries 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.

The client libraries provide a number of features to support enterprise application environments. You can configure HTTPS to provide secure communication between MATLAB Production Server and web and application servers. You can use additional authentication and access controls to ensure that your analytics are used only by authorized applications.

The dynamic invocation API of the .NET, Java, and Python client libraries lets you create generic application plug-ins where the request parameters are defined at the time the request is made. 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.

You use MATLAB Compiler SDK to create add-ins for Microsoft Excel spreadsheets that use analytics running on MATLAB Production Server. This enables you to use a widely adopted desktop application with centrally managed analytics while employing high-performance servers for numerical processing.

Integration of MATLAB Production Server with enterprise applications. System architects centralize the deployment of analytics to service a diverse set of applications.

Programming with the Client Libraries

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.

A MATLAB function and the .NET code that calls the function. Using native data types simplifies the integration of numerical analytics with enterprise applications.

Performance Optimization and Scalability

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.

Servicing Requests for MATLAB Programs

MATLAB Production Server uses a pool of workers (MATLAB computational engines) 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.

Creating a Scalable Architecture

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.

Deployment of multiple instances of MATLAB Production Server in an enterprise environment. Deploying additional servers increases performance and provides resiliency to failures.

Licensing and Installation

Licensing

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.

Software Installation

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.

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.