From Apps to Web Services: Deploying Your Algorithms and Applications Marta Wilczkowiak 1 2013 The MathWorks, Inc.
Why deploy your algorithms? Raise awareness of your work Reduce duplication of efforts Serve your customers better Reduce errors caused by reimplementation Accelerate development cycle by avoiding recoding 2
Deployment considerations Where would the algorithm live and how it will interface with the world? Will the end user need and have access to? Will the product be standalone or a part of larger system? Will many users need to access this functionality at the same time? What is the performance requirement? What product features are required? 3
Deployment options Apps Complier Standalone applications Software modules Production Server Coder C 4
Deployment options Apps Complier Standalone applications Software modules Production Server Coder C 5
Apps Apps: Custom interactive applications running in Easy to package, install and find Support full language Require to run 6
Deployment options Apps Complier Standalone applications Software modules Production Server Coder C 7
Compiler and Builders Compiler Builder EX Builder JA Builder NE.exe.dll/.lib Excel Add-in Java www COM.NET Generic CTF 8
Application Virtual Machine Concept Various language implementations Source Code Encrypted Code Compiler Execute.NET Source Code.NET Byte Code Visual Studio Compiler Execute Java Source Code Java Byte Code JAVAC Execute Compiler Runtime (MCR) Microsoft Common Language Runtime (CLR) Java Runtime Environment (JRE) 9
Compiler Product Summary Automatically packages your programs as standalone applications and software components Supports full language and most toolboxes Allows royalty-free deployment 10
Compiler and Builders What s new? Improvements for all phases of application deployment Compiling apps greatly improved usability provided by a toolstrip user interface Distributing apps customization options create a more professional software experience Installing apps faster and more reliable download and installation of Compiler Runtime (MCR) 11
Compiling Apps App and User Interface Changes Two new apps for deployment Application and Library Both apps utilize tool strip style user interface Automatic download of runtime (MCR) Ensures end user has correct version for their platform 12
Distribution and Installation Improved End Customer Experience Icon Customizable Installer Splash Screen Application in Start Menu 13
Deployment options Apps Complier Standalone applications Software modules Production Server Coder C 14
Production Server Directly deploy programs into production Centrally manage multiple programs & MCR versions Automatically deploy updates without server restarts Production Server(s) Scalable & reliable Service large numbers of concurrent requests Add capacity or redundancy with additional servers Use with web, database & application servers Lightweight client library isolates processing Access programs using native data types Web Server(s) HTML XML Java Script 15
Compiler vs Production Server Source Code Source Code.NET Execute Package Package Component Execute Component Request Broker & Program Manager Compiler Runtime (MCR) 16
What is Production Server? Enterprise class framework for running packaged programs.net Lightweight client library (for.net & Java) Request programs (functions) Server software Manages packaged programs & worker pool Component Request Broker & Program Manager Runtime libraries Compiler Runtime (MCR) 17
Example: EXPO Conversations Analysis Server Amazon Machine Instance Java Application Web Server results.gif.json Agent1 Agent2.csv 18
Example: EXPO Conversations Trigger Agent 1 Agent 2 Java MPS Trigger Executor MPS Worker MPS Worker Agent 1 Agent 2 19
Deployment options Apps Complier Standalone applications Software modules Production Server Coder C 20
Coder code C code Compiled C code (MEX) 21
Prototype Integrate Implement Accelerate 22
Deployment options and considerations Summary Using live Apps Compiler Packaging App exe, dll Simultaneous access Builders Production Server Coder Yes No No No No java class,.net assembly, Excel add-in generic ctf calls over http c/c++, dll, lib, exe No No No Yes No Latency Medium Medium Medium Low Very Low feature support Rich Rich Rich Rich Subset of and few toolboxes 23
Use cases Clustering tool Medical image segmentation software Pension calculator Component of an industrial image-based quality inspection software 24
Why deploy your algorithms? Raise awareness of your work Reduce duplication of efforts Serve your customers better Reduce errors caused by reimplementation Accelerate development cycle by avoiding recoding 25