[WEB] 미들웨어란?


소프트웨어/시스템to소프트웨어/시스템 간 중간에 있으면 미들웨어라고 생각하면 된다.



1. 미들웨어(Middleware)란?


미들웨어에서 미들(Middle)과 소프트웨어(Software)의 합성어로 미들웨어는 표준화된 인터페이스를 제공하며
복잡한 분산 시스템에서 이기종간에 통신 및 데이터 관리 등 가능하게 통합 관리해주는 역할이다.


  • 표준화된 인터페이스 제공 기능
  • 다양한 환경 지원, 체계가 다른 업무와 상호 연동이 가능
  • 분산된 업무를 동시에 처리 가능하여 자료의 일관성이 유지
  • 부하의 분산이 가능



2. 통신 방식에 따른 분류


◼︎ RPC(Remote Procedure Call: 원격 프로시저 호출)

  • 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템으로 동기 또는 비동기 지원하는 미들웨어
  • 별도의 원격 제어를 위한 코딩 없이 원격지에 있는 함수나 프로시저를 실행 할 수 있게 하는 프로세스간의 통신 기술
  • 호출하는 프로그램과 호출되어지는 프로그램간 통신시에 2개 이상의 트랜잭션을 묶어서 하나의 트랜잭션으로 처리하기 어려움
  • 대표 종류로 이큐브시스템스의 Entera, OSF의 ONC/RPC 등



◼︎ MOM(Message Oriented Middleware: 메시지 지향 미들웨어)

  • 클라이언트가 생성한 메시지는 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어
  • 분산 응용 프로그램 간에 메시지를 보내고 받으면서 데이터를 전달하고 교환할 수 있도록 지원하는 미들웨어
  • Store-and-Forward 방식의 Queue 개념을 도입하여 비동기식 데이터(message) 전달로 Loosely Coupled함
  • 대표 종류로 IBM MQ, MS MQ, 오라클의 Message Q, JPC의 JMS, Apache Active MQ, Rabbit MQ, Kafka 등



◼︎ ORB(Object Request Broker: 객체 요청 브로커)

  • 객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어
  • 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어
  • 대표 종류로 Micro Focus의 Orbix, OMG의 CORBA 등



◼︎ DB 접속 미들웨어

  • 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어
  • 이전에는 DB를 사용하여 시스템을 구축하는 경우 보통 2-Tier 아키텍처(Client-Server)
  • 데이터베이스 벤더에서 제공하는 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어이다.
  • 대표 종류로 마이크로소프트의 ODBC, 볼랜드의 IDAPI, 오라클의 Glue 등



3. 역할 기능에 따른 분류


◼︎ WAS(Web Application Server: 웹 애플리케이션 서버)

  • 클라이언트/서버 환경보다는 웹 환경을 구현하기 위한 미들웨어(웹 애플리케이션을 지원하는 미들웨어)
  • 이전에는 Client-Server의 2-Tir 아키텍처로 Client에서 업무로직 처리를 하고 Server에서 데이터 처리 형태였지만, 현재는 대용량 환경으로 일반적으로 Client를 분리해서 중간에 WAS(Web Application Server)를 두어 3계층 구조가 생겼다
  • 즉, WAS도 미들웨어의 종류 중 하나
  • 대표 종류로 오라클의 WebLogic, IBM의 WebSphere



◼︎ TP Monitor(Transaction Processing Monitor: 트랜잭션 프로세스 모니터)

  • 분산 시스템의 애플리케이션을 지원하는 미들웨어
  • 분산 된 이기종간의 시스템 환경에서 금융, 재무, 예약 시스템 등 다수의 사용자가 실시간으로 접근하여 많은 양의 데이터를 처리 시에 분산 된 트랜잭션을 처리 및 감시하는 미들웨어
  • TM(Transaction Manager)이라는 중간 계층을 이기종간에 추가해 요청-응답 처리 시 트랜잭션 관리
  • 대표 종류로 BEA의 Tuxedo, TMAX의 TP Monitor등이 있음



◼︎ 시스템 연계 솔루션

  • 표준화 되지 않은 이기종 시스템(소프트웨어, 어플리케이션)간의 데이터 통합 및 시스템 통합, 서비스 통합을 위해 시스템을 연계하는 미들웨어
  • 기술 구조에 따라 MCA, EAI, ESB, MQ 등으로 분류


1) MCA(Multi Channel Integration)

  • 다양한 대외/내부 여러 채널(엔드포인트)를 효과적으로 연계 및 통합할 수 있도록 지원하는 미들웨어
  • 대표 종류로 Inzent의 i-Gate, Direa의 CruzChannel/CruzLink, Tmax의 AnyLink


2) EAI(Enterprise Application Integration)

  • EAI(Enterprise Application Integration)는 주로 기업 내부 이기종 시스템을 연계 시키는 Hub&Spoke 방식인 전사적 애플리케이션을 통합하기 위한 미들웨어
  • 대표 종류로 Tibco, 이엑티브 eLink


3) ESB(Enterprise Service Bus)

  • ESB(Enterprise Service Bus)는 서비스들을 상호연동을 구현하는 서비스 중심으로 메시지방식을 이용한 Backbone 역할로 SOA를 지원하는 미들웨어
  • 대표 종류로 GTONE의 jStar



시스템 환경 및 구조에 따라 필요하는 미들웨어는 다르겠지만 현재는 ESB 연계솔루션, SOAP과 같은 복잡한 구조의 기술들은 http를 통한 표준화 된 웹 기술과 REST아키텍처를 이용한 API로 간단하게 통신을 할 수 있디.



[참고]

  • https://12bme.tistory.com/289
  • https://linked2ev.github.io/devlog/2022/01/27/WEB-MCI,-EAI,-ESB-미들웨어/