integrate matlab analytics into enterprise applications€¦ · custom toolbox python with matlab...
TRANSCRIPT
1© 2015 The MathWorks, Inc.
Integrate MATLAB Analytics into
Enterprise Applications
Lyamine Hedjazi
2
Data Analytics Workflow
Business
Systems
Smart
Connected
Systems
Data Acquisition Data Analytics Analytics Integraion
Build
Algorithms
Preprocessing
Data
Take
Decisions
BI Tools
3
Challenges
▪ How to share MATLAB algorithms with multiple internal and external
consumers
▪ Challenging and time consuming to re-code MATLAB algorithms for
integration into IT frameworks
▪ Difficult to migrate solutions to enterprise scale web or cloud frameworks
▪ How to deliver fast results with large volumes of data
4
Sharing and Deploying MATLAB ApplicationsWrite Your Programs Once Then Share to Different Targets
MATLAB
C/Cshared library
++ExcelAdd-in JavaHadoop .NET
MATLAB
Compiler
MATLABProduction
Server
StandaloneApplication
MATLAB
Compiler SDK
Apps Files
Custom Toolbox
Python
With MATLAB
Users
With People Who Do
Not Have MATLAB
.lib/.dll .exe
MATLAB
Coder
MATLAB
Runtime
MEX
With MATLAB
Users
WebApps
5
Share with People Who Do Not Have MATLAB
Share Applications with No
Additional Programming
Integrate MATLAB-based Components
With Your Own Software
• Royalty-free Sharing
• IP Protection via Encryption
MATLAB
Runtime
C/Cshared library
++ExcelAdd-in JavaHadoop .NET
MATLAB
Compiler
MATLABProduction
Server
StandaloneApplication
MATLAB
Compiler SDK
PythonWebApps
6
Compiled
Web App
URL
App Designer
MATLAB
Runtime
.ctf
MATLAB Web Apps Server
MATLAB Compiler
Installer
.ctf
Creating and Sharing MATLAB Web Apps
7
MATLAB and MATLAB Production Serveris the easiest and most productive environment to take your enterprise
analytics or IoT solution from idea to production
Idea Production
8
Why MATLAB Production Server Matters to You
✓ No need to learn another programming
language
✓ Reliably service large numbers of concurrent
requests with low latency
✓ Platform independence (win, mac, linux)
✓ Web and cloud friendly architecture
✓ Client connections can be protected with SSL
encryption
✓ Automatically deploy updates without server
restart
Domain
Expert
Solution
Architect
9
MATLAB Production ServerEnterprise Class Framework For Running Packaged MATLAB Programs
▪ Server software
– Manages packaged MATLAB
programs and worker pool
▪ MATLAB Runtime libraries
– Single server can use runtimes
from different releases
▪ RESTful JSON interface and
lightweight client library (C/C++, .NET,
Python, and Java)
MATLAB Production Server
MATLAB
Runtime
Request Broker
&
Program
ManagerEnterprise
ApplicationRESTful
JSON
Enterprise
Application
MPS Client
Library
10
MATLAB Production Server
Request
Broker
&
Program
Manager
Enterprise Application
HTTP(S)
HttpClient
object
Calling Functions
Calculation
Process
Calculation
Process
Worker Pool
11
Example - Integrating with IT systems
Web
Server
Application
Server
Database Server
Pricing
Risk
Analytics
Portfolio
Optimization
MATLAB Production Server
MATLAB
Compiler SDK
Web
Applications
Desktop
Applications
12
MATLAB
MATLAB
Compiler SDK
Customer examples: Financial customer advisory service
MATLAB Production Server
Request
BrokerAlgorithm
Developers
Request
Broker
Request
Broker
Global
financial
institution with
European HQ
13
MATLAB
MATLAB
Compiler SDK
Customer examples: Industrial IoT Analytics on AWS
MATLAB Production Server
Request
Broker
Algorithm
Developers
Industrial Equipment
• Networked
communication
• Embedded sensors
• Data reduction
Business
Systems
Users
Global industrial
equipment
manufacturer
14
MATLAB Production Server
Request
Broker
Customer examples: Building Automation IoT Analytics on Azure
Building/HVAC
automation
control system
• Variety of
sensors and
controls
• Networked
communication
• Data reduction
Azure
EventHub
Azure
BlobAzure
SQL
MATLAB
MATLAB
Compiler SDK
Algorithm
Developers
Business
Systems
Users
Global heavy duty
electrical equipment
manufacturer
15
Back-end scalability
▪ MATLAB Production Server
– Application server for MATLAB
▪ Manage large numbers of
requests to run short-running
deployed MATLAB programs
▪ MATLAB Distributed Computing Server
– Cluster framework for MATLAB/Simulink
▪ Speed up computationally intensive
programs on computer clusters,
clouds, and grids
.NET
Deployed
ApplicationDeployed
ApplicationDeployed
ApplicationDeployed
Application
Front-end scalability
16
Scaling Application Access and Computation
Deployed Application
Deployed
ApplicationDeployed
ApplicationDeployed
ApplicationDeployed
Application
MATLAB Compiler SDKMATLAB
Desktop
(client)
Parallel Computing Toolbox
MATLAB Distributed Computing Server
GPU
Multi-core
CPU
MATLAB Production Server
MATLAB code with
batch, parfor, or other
parallel constructs
Request
broker
17
Scaling Application Access and Computation
Deployed Application
Deployed
ApplicationDeployed
ApplicationDeployed
ApplicationDeployed
Application
MATLAB Compiler SDKMATLAB
Desktop
(client)
Parallel Computing Toolbox
MATLAB Distributed Computing Server
GPU
Multi-core
CPU
MATLAB code with
batch, parfor, or other
parallel constructs
Request
broker
MATLAB Compiler SDK
MATLAB Production Server
Parallel workers on remote hardware
18
MATLAB and MATLAB Distributed Computing Server
allow you tospeedup your computations on multiple CPUs and GPUs
overcome memory limitations and
offload computations to clusters and clouds.
Desktop Clusters and Clouds
19
MATLAB Distributed Computing Server Benefits
✓Transparently get access to more workers
on a cluster.
✓Get access to advanced parallel workflows
directly through their MATLAB desktop.
✓Platform independence (win, mac, linux)
✓Don’t need to build a framework for
submission and retrieval.
✓Can easily scale up with more
workers
✓Client connections can be protected
with SSL encryption
Domain
Expert
Solution
Architect
20
Data Intensive: Big Data support in MATLAB
11 26 41
12 27 42
13 28 43
15 30 45
16 31 46
17 32 47
20 35 50
21 36 51
22 37 52
Distributed Arrays
Apache Spark™ on Hadoop
Tall Arrays
Datastores
21
Databases
Cloud
Storage
IoT
Visualization
Web
Custom App
Public Cloud Private Cloud
Technology Stack
Platform
Data Business System
MATLAB
Production Server
Analytics
Request
Broker
Azure
Blob
MATLAB
Distributed
Computing
Server
22
Online Resources
• Documentation – Create and
Share Toolboxes
• Website – Desktop and Web
Deployment
• Free White Paper – Building a
Website with MATLAB Analytics
• Website – Using MATLAB With
Other Programming Languages