미들웨어란?
미들웨어는 애플리케이션, 애플리케이션 구성요소, 백엔드 데이터 소스 간의 연결을 간소화하여 분산 애플리케이션의 개발 속도를 높입니다.
IBM 뉴스레터 구독
검정 및 파랑 배경
미들웨어란?

미들웨어는 분산 네트워크에서 애플리케이션 또는 애플리케이션 구성요소 간에 한 유형 이상의 통신이나 연결을 가능하게 하는 소프트웨어입니다. 미들웨어는 서로 연결하도록 설계되지 않은 애플리케이션들을 쉽게 그리고 지능적으로 연결하는 기능을 제공하여 애플리케이션 개발을 간소화하고 시장 출시 시간을 단축합니다.

미들웨어에는 여러 유형이 있습니다. 메시지 브로커 또는 트랜잭션 처리 모니터 같은 일부 미들웨어는 한 유형의 통신에 중점을 둡니다. 웹 애플리케이션 서버 또는 모바일 장치 미들웨어와 같은 다른 미들웨어들은 특정 유형의 애플리케이션을 구축하는 데 필요한 모든 범위의 통신 및 연결 기능을 제공합니다. 또한 클라우드 기반 iPaaS(Integration Platform as a Service) 오퍼링 또는 EBS(Enterprise Service Bus)와 같은 다른 미들웨어들은 엔터프라이즈의 모든 구성요소를 연결하기 위한 중앙 집중식 통합 허브 역할을 하기도 합니다. (심지어 개발자가 자신의 맞춤형 미들웨어를 구축할 수 있는 미들웨어도 있습니다.)

미들웨어라는 이름은 최초의 미들웨어가 일반적으로 애플리케이션 프런트엔드 또는 클라이언트와, 클라이언트가 데이터를 요청할 수 있는 백엔드 리소스(예: 데이터베이스, 메인프레임 애플리케이션 또는 특수 하드웨어 장치) 사이에서 중개자 역할을 하여 붙여진 것입니다. 

그러나 오늘날 미들웨어의 역할은 이러한 범위를 훨씬 뛰어넘습니다. 예를 들어 포털 미들웨어는 애플리케이션 프런트엔드와 백엔드 연결을 위한 툴을 포함하고 데이터베이스 미들웨어는 일반적으로 자체 데이터 저장소를 포함합니다. 그리고 아래에 나와 있듯이 새로운 클래스의 미들웨어는 컨테이너 기술을 활용하여 개발자가 여러 클라우드에 분산된 리소스에 연결할 수 있도록 지원합니다.

미들웨어의 작동 방법

가장 기본적인 수준에서는 미들웨어를 사용하여 개발자가 애플리케이션 구성요소(서비스 또는 마이크로 서비스), 데이터 소스, 컴퓨팅 리소스 또는 장치에 연결해야 할 때마다 사용자 정의 통합을 생성하지 않고도 애플리케이션을 구축할 수 있습니다.

JSON(JavaScript object notation), REST(representational state transfer), XML(extensible markup language), SOAP(simple object access protocol) 또는 웹 서비스와 같은 공통 메시징 프레임워크를 사용하여 서로 다른 애플리케이션 및 서비스가 통신할 수 있도록 하는 서비스를 제공하여 이를 실현합니다. 일반적으로 미들웨어는 Java, C++, PHP 및 Python과 같은 여러 언어로 작성된 구성요소가 서로 통신할 수 있도록 하는 서비스도 제공합니다.

업무를 줄여주는 상호 운용성을 제공하는 것 외에도 미들웨어는 개발자를 돕는 서비스도 포함합니다.

  • 연결 및 통합을 구성하고 제어합니다. 클라이언트 또는 프런트엔드 애플리케이션 요청의 정보를 기반으로 미들웨어는 백엔드 애플리케이션 또는 서비스의 응답을 사용자 정의할 수 있습니다. 소매업체의 전자상거래 애플리케이션에서 미들웨어 애플리케이션 로직은 HTTP 요청 헤더의 IP 주소 또는 위치 정보를 기반으로 가장 가까운 매장 위치별로 백엔드 인벤토리 데이터베이스의 제품 검색 결과를 정렬할 수 있습니다.

  • 연결 및 데이터 전송을 보호합니다. 미들웨어는 일반적으로 TSL(Transport Layer Security) 또는 다른 네트워크 보안 프로토콜을 사용하여 프런트엔드 애플리케이션에서 백엔드 데이터 소스로의 연결을 보호합니다. 또한 프런트엔드 애플리케이션이 신임 정보(사용자 이름 및 비밀번호)나 디지털 인증서를 요구하는 관행에 도전하는 인증 기능을 제공할 수 있습니다. 

  • 분산 시스템에서 트래픽을 동적으로 관리합니다. 애플리케이션 트래픽이 급증하면 엔터프라이즈 미들웨어는 클라이언트 요청을 온프레미스 또는 클라우드의 여러 서버에 분산하도록 확장할 수 있습니다. 또한 동시 처리 기능은 여러 클라이언트가 동일한 백엔드 데이터 소스에 동시에 액세스하려고 할 때 생기는 문제를 방지할 수 있습니다.
미들웨어의 유형

미들웨어에는 여러 유형이 있습니다. 일부는 특정 유형의 연결에 중점을 두고 다른 일부는 특정 애플리케이션, 애플리케이션 구성요소 및 장치에 중점을 둡니다. 또 다른 일부는 특정 개발 작업을 위해 미들웨어 기능을 결합합니다. 가장 잘 알려지고 가장 일반적으로 사용되는 미들웨어 소프트웨어 유형은 다음과 같습니다.

메시지 지향 미들웨어(MOM)는 서로 다른 메시징 프로토콜을 사용하는 애플리케이션 구성요소가 통신하여 메시지를 교환할 수 있도록 합니다. MOM은 애플리케이션 간에 메시지를 변환하는 것 외에도 메시지 라우팅을 관리하여 메시지가 항상 적절한 순서로 적절한 구성요소에 도달하도록 합니다. MOM의 예로는 메시지 대기열 및 메시지 브로커가 있습니다.

원격 프로시저 호출(RPC) 미들웨어는 하나의 애플리케이션이 동일한 컴퓨터나 다른 컴퓨터 또는 네트워크에서 실행되는 다른 애플리케이션에서 프로시저를 트리거할 수 있도록 합니다.

데이터 또는 데이터베이스 미들웨어는 백엔드 데이터베이스에 대한 액세스 및 상호 작용을 단순화합니다. 일반적으로 데이터베이스 미들웨어는 일종의 SQL 데이터베이스 서버입니다.

애플리케이션 프로그래밍 인터페이스(API) 미들웨어는 개발자가 자신의 애플리케이션을 위한 API를 생성, 노출 및 관리하는 데 사용할 수 있는 툴을 제공하므로 다른 개발자가 이러한 API에 연결할 수 있습니다. 일부 API 미들웨어에는 API를 수익화하는 툴이 포함되어 있어 다른 조직에서 유료로 API를 사용할 수 있습니다. API 미들웨어의 예로는 API 관리 플랫폼, API 게이트웨이 및 API 개발자 포털이 있습니다.

오브젝트 요청 브로커(ORB) 미들웨어는 분산 네트워크에 있는 한 애플리케이션 오브젝트 또는 구성요소가 요청을 하고 다른 오브젝트 또는 구성요소가 그러한 요청을 이행하는 과정에서 중개자 역할을 합니다. ORB는 CORBA(Common Object Request Broker Architecture)와 함께 작동합니다. CORBA는 한 소프트웨어 구성요소가 호스트되는 위치와 UI 모양을 알지 못한 채 다른 구성요소를 요청할 수 있게 합니다. 이러한 정보는 교환 중에 "중개 기능"이 처리합니다.

트랜잭션 미들웨어는 분산 네트워크에서 데이터 트랜잭션 실행을 지원하는 서비스를 제공합니다. 가장 잘 알려진 트랜잭션 미들웨어는 트랜잭션이 한 단계에서 다음 단계(데이터 교환 실행, 필요한 경우 데이터 추가/변경/삭제 등) 및 완료까지 진행되도록 보장하는 트랜잭션 처리 모니터(TPM)입니다.

비동기 데이터 스트리밍 미들웨어는 중간 저장소에서 데이터 스트림을 복제하여 여러 애플리케이션 간에 데이터 공유를 지원합니다. Apache Kafkai는 실시간 데이터 스트리밍을 위한 미들웨어의 대표적인 예입니다.

장치 미들웨어는 특정 모바일 OS용 앱을 개발하기 위한 집중적 통합 및 연결 기능 세트를 제공합니다.

포털 미들웨어는 다양한 관련 애플리케이션의 컨텐츠와 기능을 '글래스에서'(또는 한 화면에서) 통합하여 하나의 복합 애플리케이션을 생성하기 위한 툴과 리소스를 제공합니다.

로보틱스 미들웨어는 여러 제조업체 및 위치의 로봇 하드웨어, 펌웨어 및 소프트웨어를 통합하는 프로세스를 단순화합니다.

엔터프라이즈 애플리케이션 통합 미들웨어


엔터프라이즈 애플리케이션 통합 미들웨어를 사용하여 조직은 엔터프라이즈 통합 허브(확장된 엔터프라이즈의 모든 애플리케이션, 애플리케이션 구성요소, 비즈니스 프로세스 및 백엔드 데이터 소스를 연결하는 표준화된 방법)를 확립할 수 있습니다.

약 10년 전까지만 해도 가장 보편적인 엔터프라이즈 애플리케이션 통합 미들웨어는 서비스 지향 아키텍처(SOA) 내에서 통합 허브 역할을 하는 엔터프라이즈 서비스 버스(ESB)였습니다. 오늘날 iPaaS를 통해 조직은 자체 데이터 센터 내에서 통합 미들웨어( 및 미들웨어가 실행되는 하드웨어)를 구매, 설치, 관리 및 유지보수하는 데 드는 작업과 비용 없이, 온프레미스, 프라이빗 클라우드 및 퍼블릭 클라우드 환경에서 애플리케이션, 데이터, 프로세스 및 서비스를 연결할 수 있습니다.

플랫폼 미들웨어


플랫폼 미들웨어(또는 애플리케이션 플랫폼 미들웨어)는 애플리케이션 또는 비즈니스 로직을 위한 런타임 호스팅 환경(예: Java 런타임 환경(Java RE) 또는 컨테이너 또는 둘 다)을 제공하여 애플리케이션 개발을 한층 더 지원하고 애플리케이션 제공을 더 빠르게 진행할 수 있습니다. 플랫폼 미들웨어는 위에 나열된 다른 미들웨어 유형뿐만 아니라 엔터프라이즈 애플리케이션 서버, 웹 서버 및 컨텐츠 관리 시스템을 포함하거나 결합할 수 있습니다.

미들웨어 및 클라우드 네이티브 애플리케이션

클라우드 네이티브는 온프레미스, 프라이빗 클라우드 또는 퍼블릭 클라우드 환경에서 일관된 개발, 배포 및 관리를 제공하기 위해 기본적인 클라우드 컴퓨팅 기술을 활용하는 애플리케이션 개발 접근 방식입니다. 

실제로 오늘날의 클라우드 네이티브 애플리케이션은 마이크로서비스에서 구축되고 Kubernetes를 사용하여 조정된 컨테이너로 배포됩니다. 마이크로서비스는 느슨하게 결합된 애플리케이션 구성요소로 자체 스택을 포함하며 서로 독립적으로 배포 및 업데이트할 수 있고, REST API, 메시지 브로커 및 이벤트 스트림의 조합을 사용하여 서로 통신할 수 있습니다. 컨테이너는 기존 IT 또는 클라우드 인프라에서 코드를 실행하는 데 필요한 OS 라이브러리 및 종속 항목과, 마이크로서비스와 같은 애플리케이션 코드를 함께 패키징한 경량 실행 파일입니다.

이러한 기술과 관련 기술을 함께 사용하여 완전히 새로운 하이브리드 클라우드 애플리케이션을 제공하고, 클라우드에서 사용하기 위해 기존의 레거시 시스템을 현대화하기 위한, 한 번의 개발로 어디에나 배포할 수 있는 강력한 플랫폼이 생성됩니다. 하지만 이러한 기술들의 활용으로 인해 훨씬 더 많은 소프트웨어 애플리케이션, 데이터 소스, 프로그래밍 언어, 툴 및 분산 시스템이 결합되어 복잡한 개발 환경으로 이어지기도 합니다. 

미들웨어는 이러한 복잡성을 일부 해결할 수 있지만, 컨테이너형 애플리케이션을 기존 미들웨어와 함께 실행하면 컨테이너가 없애려고 하는 인프라 오버헤드뿐만 아니라 자체적인 복잡성이 가중될 수 있습니다. 이러한 이유로 Cloud Foundry(IBM 외부 링크) 및 Red Hat Open Shift와 같은 대중적인 클라우드 애플리케이션 개발 플랫폼은 컨테이너형 미들웨어를 포함하도록 진화했으며, 이렇게 모듈화된 미들웨어는 필요한 연결 기능만 컨테이너에 패키징할 수 있습니다.

관련 솔루션
WebSphere Application Server

엔터프라이즈 애플리케이션을 대상으로 하며 유연하고 보안이 철저한 Java 서버 런타임 환경입니다.

WebSphere Application Server 살펴보기
IBM® API Connect

사회화 및 수익 창출 노력 강화를 포함하여 여러 클라우드에서 API 에코시스템을 관리합니다.

IBM API Connect 살펴보기
AI 기반 자동화

비즈니스 워크플로우에서 IT 운영에 이르기까지 IBM은 AI 기반 자동화로 귀사를 지원합니다. 선도적 기업이 어떻게 혁신하는지 알아보세요.

AI 기반 자동화 살펴보기
리소스 메시지 브로커란?

메시지 브로커는 클라우드 네이티브, 마이크로서비스 기반, 서버리스 및 하이브리드 클라우드 아키텍처를 지원하는 애플리케이션 간 통신 기술입니다.

iPaaS(Integration-Platform-as-a-Service)란?

iPaaS는 온프레미스 및 클라우드 환경에서 통합을 표준화하고 간소화하는 클라우드 기반 솔루션입니다.

REST API란?

REST API는 애플리케이션을 통합하는 경량의 유연한 방법을 제공하여 마이크로서비스 아키텍처에서 구성요소들을 연결하기 위한 가장 보편적 방법이 되었습니다.

다음 단계

IBM MQ는 하이브리드 및 멀티클라우드 환경을 위한, 뛰어난 성능과 보안을 제공하는 검증된 메시징 솔루션입니다. 프라이빗 데이터 센터, 하이브리드 또는 멀티클라우드 환경, 그리고 엔터프라이즈 에지에서 애플리케이션과 마이크로서비스를 연결합니다. 기존 미션 크리티컬 데이터의 가치를 활용하여 실시간 인사이트를 얻습니다. IBM MQ는 정확히 한 번만 메시지를 전달합니다. 결코 메시지를 유실하거나 메시지를 두 번 이상 전달하지 않기 때문에 비즈니스가 부정확한 데이터나 애플리케이션 오류로 인해 피해를 입지 않도록 보호합니다.

자세히 보기