40
1 © 2012 The MathWorks, Inc. Excel, .NET JAVA 환경에서 사용 가능한 MATLAB Application 개발 성호현 과장 MathWorks Korea

Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

Embed Size (px)

Citation preview

Page 1: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

1© 2012 The MathWorks, Inc.

Excel, .NET 및 JAVA 환경에서사용가능한MATLAB Application 개발

성호현과장

MathWorks Korea

Page 2: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

2

Test & Verification

Implementation

Research & Design

Explore and discover

Gain insight into problem

Evaluate options, trade-offs

Test

Design

Elaborate

Application Deployment Process

Requirements

Embedded software and digital electronics

Algorithms and Applicationsfor Desktop or Web

MATLABMATLAB ExcelExcel.NET.NETC/C++C/C++JavaJava .dll.dll

.exe.exe

VerilogVerilog FPGAFPGAPLCPLC C/C++C/C++VHDLVHDL PACPAC

Page 3: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

3

Deploying Algorithms and Applications

Desktop Applications

Algorithmic Components

Web DeploymentGroup

MembersGroup

Members

Suppliers

Clients

Collaborators

MATLAB User

OrganizationOrganization

Page 4: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

4

Desktop ApplicationsEnergy Forecasting Stand Alone Application

Page 5: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

5

MATLABDesktop

End-UserMachine

1

2

3

Toolboxes

Deploying Applications with MATLAB

MATLAB Compiler

.exe.exe

Page 6: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

6

Deploying Desktop Applications with MATLAB

Give MATLAB codeto other users

Share applicationswith end users whodo not need MATLAB– Stand-alone

executables– Shared libraries

Royalty-FreeDistribution

.exe .dll

MATLAB Compiler

Page 7: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

7

Halliburton Makes Oil Exploration Safer Using MATLAB and Neural Network Toolbox

ChallengeTo improve the ability to detect detonation of explosives used to perforate the well bore

SolutionUse MathWorks products to develop an adaptive, predictive neural network filter that cleanses the detonation signal of contaminating noise from onsite machinery

Results Authentic simulation on the desktop An accurate, production-standard algorithm Dramatic time savings

“Using MATLAB and MATLAB Compiler, I can develop an application at least 100 times faster than I could with Visual Basic or C. The time we saved on the very first application that we wrote in MATLAB more than paid for the software.”

Roger SchultzHalliburton Energy Services

Link to user story

Page 8: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

8

Deploying Algorithms and Applications

Desktop Applications

Algorithmic Components

Web DeploymentGroup

MembersGroup

Members

Suppliers

Clients

Collaborators

MATLAB User

OrganizationOrganization

Page 9: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

9

Software ComponentsCreating an Excel Add-In

Page 10: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

10

JavaExcel .NETWeb COM

Deploying Applications with MATLAB

.exe .dll

MATLAB Compiler

MATLABBuilder NE

MATLABBuilder EX

MATLABBuilder JA

Give MATLAB codeto other users

Share applicationswith end users whodo not need MATLAB– Stand-alone

executables– Shared libraries– Components

Royalty-FreeDistribution

Page 11: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

11

3

Deploying MATLAB Components

Create MATLAB application

Build component– MATLAB Compiler– MATLAB Builder JA for Java– MATLAB Builder NE for .NET

Deploy against MATLABCompiler Runtime (MCR)– One per process– Loaded in-process– Single threaded– Thread safe

MATLAB Component

MATLABBuilder JA

MATLABBuilder NE

MATLAB Compiler2

Toolboxes1

Page 12: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

12

Single Process

Component Process ArchitecturesCore Core

In-ProcessModel

ScalableModel

Main Process

In process model– MCR in application

process

Scalable model– MCR in separate

processes

Other Processes

Java RMI

.NET Remoting

.NET or Java

Application

.NET or Java

Application

MATLAB Component

MATLAB Component

Page 13: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

13

HKM Optimizes Just-in-Time Steel Manufacturing Schedule

ChallengeOptimize a steel production process to enable consistent, just-in-time delivery

SolutionUse MATLAB, global optimization, and parallel computing to maximize throughput of more than 5 million tonnes of steel annually

Results Algorithm development accelerated by a factor of 10 Optimization time cut from 1 hour to 5 minutes Customer satisfaction increased

“C++, Java, or third-party optimization solutions would have required us to spend significantly more time in development or to simplify our constraints. Only MATLAB provided the flexibility, scalability, development speed, and level of optimization that we required.”

Alexey NagaytsevHüttenwerke Krupp Mannesmann

Link to user story

Manually reviewed plant schedule (left) and plant schedule automatically optimized with MATLAB genetic algorithms (right). The optimized schedule minimizes scheduleconflicts (in red), meets delivery dates, andachieves the target utilization rate.

Page 14: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

14

Deploying Algorithms and Applications

Desktop Applications

Algorithmic Components

Web DeploymentGroup

MembersGroup

Members

Suppliers

Clients

Collaborators

MATLAB User

OrganizationOrganization

Page 15: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

15

User Interfaces

Web Applications

Servers

Deployed Functions Servers

Communication

HTMLXMLWCFSOAP

User Interface

Web PagesThick ClientsThin Clients

Mobile Devices

Page 16: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

16

User Interfaces

Web ApplicationsQuiz

Servers

Where is MCR(s) Running?

MATLAB Component

a. Serverb. User interfacec. Bothd. Somewhere elsee. No where

Page 17: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

17

User Interfaces

Web ApplicationsQuiz

ServersIf the MCR executes:>> a = rand(10)Where is the data stored?

MATLAB Component

a. Serverb. User interfacec. Bothd. Somewhere elsee. No where

Page 18: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

18

User Interfaces

Web ApplicationsQuiz

ServersIf the MCR executes:>> plot(a)Where would the plot appear?

MATLAB Component

a. Serverb. User interfacec. Bothd. Somewhere elsee. No where

Page 19: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

19

User Interfaces

Web ApplicationsQuiz

ServersHow do we get graphics ordata to the user interface?

MATLAB Component

Graphics:• WebFigures• Streaming Images

Data:• Standard web interfaces• e.g. XML, WCF, SOAP, etc.

Page 20: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

20

Web DeploymentMATLAB Builder NE

Page 21: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

21

Web Deployment ExampleSingle User

Single Process

In-ProcessModel

WebServer

MATLAB Component

Server

Single User

Page 22: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

22

Web Deployment ExampleScalable Number of Users

Multiple Users

Servers

Other Processes

Main Process

WebServer

MATLAB Component

Java RMI

.NET Remoting

Page 23: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

23

Web Servers and Web Pages Web Services

Interface Web BrowserWeb Browser

or Thick Client

GraphicsWeb Figures

orStreaming Image

Streaming Image

Communication HTML WCF, XML, SOAP, etc.

MATLAB Builder NE Active Server Pages(ASP or ASP.NET) .NET Web Service

MATLAB Builder JAJava Server Pages

(JSP),Java Servlets

Java Web Service

Web Architectures

Page 24: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

24

UniCredit Bank Austria Develops and Rapidly Deploys a Consistent, Enterprise-Wide Market Data Engine

ChallengeImprove risk management operations throughout a multinational financial institution

SolutionUse MATLAB, MATLAB Compiler, and MATLAB Builder JA to build and rapidly deploy a consistent enterprise-wide data warehouse into J2EE Web Architecture

Results Development time reduced by 50% Risk management improved across the bank Operational, audit, and maintenance costs reduced

“ With MATLAB, we can focus on business logic instead of implementation details. We can deploy an algorithm in a Java environment the same day, without any additional coding. This approach enabled us to cut our development time in half, if not more weeks, instead of months."

Peter W. SchweighoferUniCredit Bank Austria

Zero-coupon yield curve plot in UniCredit Bank Austria’s UMD environment.

Link to user story

Page 25: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

25

Test & Verification

Implementation

Research & Design

Explore and discover

Gain insight into problem

Evaluate options, trade-offs

Test

Design

Elaborate

Application Deployment Process

Requirements

Embedded software and digital electronics

Algorithms and Applicationsfor Desktop or Web

MATLABMATLAB ExcelExcel.NET.NETC/C++C/C++JavaJava .dll.dll

.exe.exe

VerilogVerilog FPGAFPGAPLCPLC C/C++C/C++VHDLVHDL PACPAC

Page 26: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

26

Deploying Algorithms and Applications

Desktop Applications– MATLAB Compiler

Software Components– MATLAB Builders– MATLAB Compiler

Web Deployment– MATLAB Builder NE– MATLAB Builder JA

JavaExcel .NETWeb COM.exe .dll

MATLAB Compiler

MATLABBuilder NE

MATLABBuilder EX

MATLABBuilder JA

Page 27: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

27© 2012 The MathWorks, Inc.

MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks.Other product or brand names may be trademarks or registered trademarks of their respective holders.”

Page 28: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

28

MATLAB Builder EX for Microsoft® Excel®

Deploy MATLAB code toMicrosoft Excel

Integrate MATLAB applicationsinto Excel workbooks

Provides a Visual Basic interface

Royalty-free deployment

• Should these product slides come after the “Builder” demo?

• Should we have product specific slides or a more general builder overview slide

• Idea: have an Excel slide and then another slide for Builder NE and JA

Update• Function Wizard image• Spreadsheet image with controls &

graphics• Notes need to be updated

Page 29: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

29

MATLAB Builder JAfor Java language

Deploy MATLAB code as Java classes

Integrate with desktop orWeb applications

Provides client-side controls for interactive Web graphics

Royalty-free deployment

Update?• See previous slides

Page 30: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

30

MATLAB Builder NE for Microsoft .NET Framework

Deploy MATLAB code as.NET and COM components

Integrate with desktop orWeb applications

Provides client-side controlsfor interactive Web graphics

Royalty-free deployment

Update?• See previous slides

Page 31: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

31

Desktop and Web Deployment

MATLAB Builder NE– Support for .NET Remoting

(for interfacing with a distributed .NET Framework)– Ability to manipulate MATLAB figures over the Web

Enhanced readme.txt file– Customized to MATLAB Compiler deployment requirements– Generated with each build

Redesigned Deployment Tool facilitates navigation– Cancellable progress dialog– Fast loading of projects– Ability to add supporting files as folders

Command-line version of Deployment Tool, providing programmatic control over building and packaging options

What’s New for NE?

See previous slides

Page 32: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

32

Application Virtual Machine Concept

MATLAB CompilerMATLAB Compiler

MATLABSource Code

MATLABEncrypted Code

MATLAB Compiler Runtime (MCR)

JAVACJAVAC

Java Source Code

Java Byte Code

Java Runtime Environment (JRE)

ExecuteExecute

Visual Studio CompilerVisual Studio Compiler

.NET Source Code

.NET Byte Code

Microsoft Common Language Runtime (CLR)

ExecuteExecute ExecuteExecute

Various language implementations

Page 33: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

33

Online Information on Compiler Support for Toolboxes

www.mathworks.com/products/compiler/compiler_support.htmlLink from MATLAB Compiler main page

Page 34: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

34

Component Runtime Lifecycle Management

Startup Time– First instantiation starts MCR (equivalent to starting MATLAB)– Additional instances start much faster

Ways to Mitigate – Instantiate first component with application startup– Create a Web Service / Web Application that is already running

Page 35: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

35

Required Files for Deployment

MATLAB Compiler Runtime (MCR)– Enables the execution of generated applications– Deployed and installed only once on end-user desktop

Standalone executables, libraries, or components– Generated each time MATLAB Compiler runs– Contains all supporting files

Note: MATLAB does not need to be available on the target user’s desktop.

Page 36: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

36

Understanding the Web

Web ClientApplication

Web Browser

Web Service Web Server

Use Deploy

Here be Dragons

(INTERWEB)

Page 37: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

37

AccessPoints

Internet

Computational Resources Centralized Services MATLAB Algorithms

• Web pages• Thin/thick clients• Mobile apps

Web Applications

Servers

HTML, XML, WCF, SOAP, etc.

Page 38: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

38

Web DeploymentHow to Scale

Web Clients

Servers

Other Processes

Main Process

WebServer

Other Processes

MATLAB Component

MATLAB Component

Java RMI

.NET Remoting

Page 39: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

39

Web DeploymentWhat we did

Web Client

Single Process

In-ProcessModel

WebServer

MATLAB Component

Page 40: Excel, .NET 및JAVA 환경에서사용가능한 fileExcel Java Web COM .NET Deploying Applications with MATLAB.exe .dll MATLABCompiler MATLAB Builder NE MATLAB Builder EX MATLAB Builder

40

Other Process

MATLAB Component

Other Process

MATLAB Component

Single Process

Component Process ArchitecturesCore Core

In-ProcessModel

ScalableModel

Main Process

Other Process

Java RMI

.NET Remoting

.NET or Java

Application

.NET or Java

Application

MATLAB Component

MATLAB Component