주요 특징

  • MATLAB 프로그램을 C/C++ 공유 라이브러리, Microsoft® .NET 어셈블리 및 JAVA® 클래스로 패키징
  • MATLAB이 필요 없는 사용자에게 소프트웨어 컴포넌트 무료 배포
  • 웹 및 엔터프라이즈 시스템과의 통합을 위한 MATLAB Production Server 개발 및 테스트 프레임워크
  • 지적 재산 보호를 위한 MATLAB 코드 암호화

언어 선택 – C/C++, .NET, Java 또는 Python

MATLAB 기반 프로그램을 자체 사용자 지정 응용 프로그램으로 배포하려는 개발자를 위해 MATLAB Compiler SDK는 C/C++, .NET, Java 및 Python으로 작성된 응용 프로그램 작업을 위한 포괄적인 툴킷을 제공합니다. MATLAB Compiler SDK로 응용 프로그램을 만들 때 프로그래밍 언어에 관계 없이 동일한 기본 프로세스를 따를 수 있습니다.

  1. MATLAB 응용 프로그램 코드를 생성합니다.
  2. 대화형 앱 또는 명령줄 옵션을 사용하여 MATLAB 코드를 언어별 컴포넌트로 패키징합니다.
  3. Visual Studio®, Eclipse, Xcode 등과 같은 원하는 개발 환경을 사용하여 컴포넌트를 호스트 응용 프로그램과 통합합니다.
  4. 응용 프로그램을 완성하고 데스크탑 응용 프로그램의 경우 로컬 설치, 서버 기반 응용 프로그램의 경우 중앙 집중식 설치로 대상 컴퓨터에 설치합니다.

MATLAB Compiler SDK는 소프트웨어 개발자가 MATLAB 기반 컴포넌트를 요구 사항에 가장 적합한 언어와 통합하도록 돕는 언어별 기능을 제공합니다.


C/C++ 응용 프로그램

MATLAB Compiler SDK는 C/C++로 작성된 응용 프로그램을 위해 다음 기능을 제공합니다.

  • Thread-safe 라이브러리 생성
  • Visual Studio와의 원활한 통합을 위한 동적 라이브러리 파일 생성(Windows 응용 프로그램용)
  • 라이브러리 파일의 헤더 파일과 암호화된 코드에서 C 또는 C++ 응용 프로그램에 포함할 함수 시그니처 파일을 생성

또한, MATLAB 프로그램을 이식과 판독이 가능한 C/C++ 코드로 변환하는 것도 가능합니다. MATLAB Coder™를 사용하면 프로젝트를 소스 코드, 정적 라이브러리 또는 동적 라이브러리로 통합할 수 있습니다.

MATLAB Answers에서는 MATLAB Compiler SDK 및 MATLAB Coder의 C/C++ 통합 방식 비교가 제공됩니다.


.NET 및 COM 응용 프로그램

MATLAB Compiler SDK는 .NET 또는 COM으로 작성된 응용 프로그램을 위해 다음 기능을 제공합니다.

  • 네이티브 .NET 및 COM 컴포넌트처럼 액세스할 수 있도록 MATLAB 프로그램에 대한 .NET 또는 COM 래퍼를 생성
  • MATLAB 코드 파일과 MEX 파일을 컴포넌트의 퍼블릭 메서드로 추가 및 액세스
  • C#, F#, VB.NET 또는 ASP.NET을 포함한 CLS(공용 언어 사양) 호환 언어로부터 .NET 컴포넌트를 호출
  • Visual Basic® 또는 ASP를 포함한 COM 호환 기술로부터 COM 객체를 호출
  • Type-safe 인터페이스를 사용하여 .NET 응용 프로그램의 기존 인터페이스와 통합
  • .NET 객체를 컴파일된 MATLAB 함수와 직접 주고받음
  • 데이터 변환 클래스를 사용하여 데이터를 수동으로 변환하고 출력 데이터를 관리
  • 웹 또는 엔터프라이즈 SOA(서비스 지향 아키텍처)를 통해WCF(Windows Communication Foundation)를 지원
  • 클래스를 지속적인 서비스로 실행하거나 여러 프로세스에 걸쳐 컴포넌트를 실행할 수 있도록 .NET RemotingAPI를 지원

Java 응용 프로그램

MATLAB Compiler SDK는 Java 응용 프로그램을 위해 다음 기능을 제공합니다.

  • 다른 Java 클래스와 똑같이 동작하도록 MATLAB 프로그램에 대한 Java 래퍼를 생성(클래스의 속성과 메서드를 파악하는 Javadoc도 생성)
  • 컴포넌트에 대한 외부에서 볼 수 있는 클래스 메서드 역할을 하도록 MATLAB 파일과 MEX 파일을 추가
  • Java 클래스가 이식 가능하고 MATLAB이 지원하는 모든 플랫폼에서 실행되도록 보장
    (일부 툴박스 함수는 플랫폼 종속 MEX 파일 또는 네이티브 라이브러리로 구현되어 해당 함수와 이를 사용하는 모든 Java 컴포넌트를 플랫폼 종속으로 만듦)
  • 네이티브 Java 데이터형을 MATLAB 함수로 전달하고 자동으로 MATLAB 데이터형으로 변환하거나 사용할 데이터형을 명시적으로 선택
  • SOA, SOAP 서비스, WSDL, RMI 인터페이스, HTTP 서비스, Java servlet 및 JSP를 통해 Java 컴포넌트로 배포된 MATLAB 웹 응용 프로그램에 액세스
  • RMI(원격 메서드 호출) 인터페이스를 사용하여 클래스를 지속적인 서비스로 실행하거나 여러 프로세스 또는 컴퓨터에 걸쳐 처리를 분배

Python 응용 프로그램

MATLAB Compiler SDK는 Python 응용 프로그램을 위해 다음 기능을 제공합니다.

  • Python 응용 프로그램 또는 대화형 세션에서 액세스할 수 있는 MEX 파일 등 MATLAB 프로그램용 Python 패키지 생성
  • 자동 변환을 통해 MATLAB 기능과 네이티브 Python 데이터형을 주고받음
  • 포함된 Python 클래스를 사용하여 배포가 가능한 아카이브의 형태로 MATLAB 기능과 다차원 배열을 주고받음
  • MATLAB Engine API를 사용하여 MATLAB 코드와 Python 응용 프로그램을 통합. 이를 통해 MATLAB Compiler SDK로 개발된 사용자 지정 Python 응용 프로그램 또는 MATLAB Production Server를 디버그 및 배포할 수 있습니다.

플랫폼 선택 – 데스크탑, 웹 또는 엔터프라이즈

MATLAB Compiler SDK를 통해 MATLAB 기반 응용 프로그램을 개인 사용자를 위한 독립 실행형 데스크탑 응용 프로그램부터 대규모 웹 및 엔터프라이즈 시스템까지 다양한 플랫폼으로 배포할 수 있습니다. 구현 작업, 유지 관리, 프로그래밍 언어, 조직의 기본 설정을 기준으로 기본 플랫폼을 선택할 수 있습니다.

모든 배포된 응용 프로그램과 컴포넌트는 MATLAB을 사용하지 않는 사용자에 대한 무료 배포를 위해 MATLAB Runtime을 사용합니다. 데스크탑 플랫폼의 경우 응용 프로그램과 Runtime이 대상 컴퓨터에 직접 설치되지만 웹 및 엔터프라이즈 응용 프로그램, 연결된 Runtime은 편리한 관리와 배포를 위해 중앙 집중식 서버에 설치할 수 있습니다.


인프라 선택 – 사용자 지정 또는 MATLAB Production Server

웹 및 엔터프라이즈 시스템의 경우 MATLAB Compiler SDK에서는 안전한 확장형 배포를 위한 사용자 지정 인프라 개발 또는 MATLAB Production Server 활용 중 원하는 응용 프로그램 서버 구현 메서드를 선택할 수 있습니다.

두 경우 모두 워크플로가 아래 그림과 같이 매우 비슷합니다.

MATLAB Compiler SDK는 안전한 확장형 웹 및 엔터프라이즈 응용 프로그램을 위한 자체 사용자 지정 인프라 개발 또는 MATLAB Production Server 활용을 위한 툴을 제공합니다.

사용자 지정 인프라 개발

자체 인프라 구축을 선호하는 개발자를 위해 MATLAB Compiler SDK로 생성된 컴포넌트가 ASP.NET, SOA, WSDL, SOAP, XML, JavaScript®, HTML, HTTP 서비스, Java servlet 및 JSP는 물론 Java RMI와 .NET 원격과 같은 표준 기술과 통합되어 확장성을 얻습니다. 다수의 동시 요청을 처리할 수 있는 응용 프로그램을 위해 응용 프로그램 서버와 컴파일된 MATLAB 코드 사이에서 RMI 서버의 중간 계층을 만들 수 있습니다.

MATLAB Compiler SDK는 조직에서 사용하는 다양한 언어 와 통합 가능한 컴포넌트 및 라이브러리를 생성합니다.


MATLAB Production Server 구현

MATLAB Compiler SDK는 안전한 확장형 서버 기반 응용 프로그램을 위한 가장 효율적인 경로를 원하는 개발자를 위해 MATLAB Production Server에서 실행되는 응용 프로그램 개발을 위한 완전한 툴킷을 제공합니다. MATLAB Compiler SDK가 제공하는 툴:

  • 패키징 전에 알고리즘 디버깅을 위한 대화형 방식 앱
  • C/C++, .NET, Java 및 Python을 위한 간단한 클라이언트 라이브러리
  • MATLAB 알고리즘을 Microsoft® Excel®용 추가 기능으로 패키징하기 위한 앱

디버깅을 마친 프로그램은 이를 관리하기 위한 사용자 지정 인프라 기록 또는 생성 없이 직접 MATLAB Production Server로 패키징 및 배포할 수 있습니다. MATLAB Production Server는 여러 MATLAB Runtime 인스턴스(또는 "workers")를 실행하고 서버 요청에 응답할 수 있도록 준비하는 빌트인 확장성을 갖습니다. 안정성과 확장성 강화를 위해 여러 MATLAB Production Server 인스턴스를 결합할 수 있습니다. 인스턴스 간에 워커를 공유하여 성능을 극대화하고 응답 시간을 최소화할 수 있습니다.


컴포넌트 패키징 및 배포

MATLAB Compiler SDK를 통해 다른 프로그래밍 언어에서 개발된 응용 프로그램과 통합되도록 MATLAB 컴포넌트를 패키징할 수 있습니다. MATLAB 프로그램을 지정하면 MATLAB Compiler SDK가 프로그램 지원을 위해 어떤 MATLAB 함수와 파일이 필요한지 결정합니다. 그런 다음 코드를 암호화하고 패키징합니다.

MATLAB Compiler SDK에서는 응용 프로그램 사용자에게 최적의 경험을 제공하기 위해 다음을 할 수 있습니다.

  • 설치 패키지와 함께 MATLAB Runtime을 제공할지 아니면 설치 중에 다운로드할지 지정
  • 데이터 파일 또는 이미지와 같이 종속성 검사를 통해 발견되지 않은 보충 파일을 추가
  • 소프트웨어 버전 번호, 작성자 정보, 기본 설치 디렉터리와 같은 컴포넌트 메타데이터를 캡처