Middleware

미들웨어(Middleware) 란?

Cloud Applicaiton Architect 2021. 7. 21. 08:34
반응형

미들웨어(Middleware) 란?

  • 미들웨어는 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하는 소프트웨어
  • 기본적으로 숨겨진 변환 계층으로 기능하는 미들웨어는 분산 응용 프로그램의 통신 및 데이터 관리를 가능하게 함
  • 데이터와 데이터베이스사이를 "파이프" 로 연결하기 때문에 배관이라고도 함
  • 미들웨어를 사용해 사용자가 웹 브라우저에서 양식을 제출하거나 웹 서버가 사용자의 프로필을 기반으로 동적 웹 페이지를 반환하도록 요청할 수도 있음

 

통신 방식에 의한 미들웨어 분류

사용하는 통신 방식에 의해 미들웨어를 분류한다면 다음과 같이 분류 할 수 있음

  • RPC (Remote Process Call) 
    • 별도의 원격 제어를 위한 코딩 없이 원격지에 있는 함수나 프로시저를 실행 할 수 있게 하는 프로세스간의 통신 기술
    • 1980년대 xerox, sun 등의 여러 회사에 의해 구현되어 사요됨
    • 네트워크 통신 관련 작업은 개발자가 신경 쓸 필요없이 RPC 자체적으로 처리하기 때문에 쉽게 개발 가능
    • 호출하는 프로그램과 호출되어지는 프로그램간 Synhronous 통신을 사용해 Tightly Coupled 발생
    • 클라이언트 서버 통신상 정상 요청이 제대로 오지 않을 경우 클라이언트에서 이를 확인하기 어려움
    • 2개 이상의 트랜잭션을 묶어서 하나의 트랜잭션으로 처리하기 어려움
    • Transactional RPC
      • RPC의 단점을 보완해 2PC 프로토콜을 지원, 클라이언트와 서버 사이에 TM(Transaction Manager)이라는 중간 계층을 추가해 요청-응답 처리 시 트랜잭션 관리 기능을 추가로 지원
      • 대표 제품으로는 BEA의 Tuxedo, TMAX의 TP Monitor등이 있음

      • TP 모니터 구조

 

  • MOM(Message Oriented Middleware)
    • 분산 응용 프로그램 간에 메시지를 보내고 받으면서 데이터를 전달하고 교환할 수 있도록 지원하는 미들웨어
    • Store-and-Forward 방식의 Queue 개념을 도입하여 Asyncronous한 데이터 송수신 처리를 함
    • 상대적으로 Loosely Coupled한 특성을 가짐
    • 대표 제품으로 IBM MQ, MS MQ, Apache Active MQ, Rabbit MQ, Kafka 등이 있음
    • 전형적인 Queue 구조의 Kafka 아키텍처


 

  • OOM(Object Oriented Middleware)
    • 객체 지향 어플리케이션 발전에 따라, 어플리케이션이 객체를 보내고 서비스를 요청할 수 있도록 지원하는 미들웨어
    • RPC를 기반으로 발전하였으며 Synchronous/Asyncronous 방식으로 송수신 동작
    • 표준 인터페이스를 사용해 객체를 개발하고, 객체간 통신은 플랫폼 독립적으로 작동(CORBA를 제외하고는 실제로는 벤더에 의해 개발 주도되어 그렇지 못함)
    • 대표 기술: OMG 그룹의 CORBA, MS의 DCOM(COM+), SUN의 EJB 등
    • DCOM아키텍처
    • CORBA 아키텍처

 

 

기능에 따른 분류

  • 어플리케이션 서버 (Application Server)
    • 웹 기반의 프로그램을 개발하고 동작하도록 지원하는 표준 기반 소프트웨어
    • 일반적으로 Java 기반의 Web Server, WAS를 포함함
  • TP Monitor
    • 대규모 거래가 처리되는 환경의 어플리케이션 개발 및 운영을 위한 플랫폼
    • 어플리케이션 개발 및 운영을 위한 플랫폼으로 안정적으로 트랜잭션이 처리되도록 관리하는데 중점을 둠
    • 세션 및 프로세스들을 감시하여 일관성 있게 보관 및 유지하는 트랜잭션 관리 미들웨어
    • 분산 트랜잭션 프로세시의 국제 표준인 X/Open DTP(Distributed Transaction Processing) 모델 준수
    • 효율적인 프로세스 관리 및 트랜잭션 처리 시 데이터 정합성 보장과 같은 기능 제공
  • 연계 솔루션
    • 다양한 이질적 기업 환경(어플리케이션, 데이터, 플랫폼 및 네트워크 등)을 통합하여 하나의 시스템으로 관리/운영할 수 있는 유기적인 시스템 특성 제공
    • 기술 구조에 따라 MCA, EAI, ESB, MQ 등으로 분류됨
    • MCI(Multi Channel Integration)
      • MCA(Multi Channel Architecture)로도 불리움
      • 여러 시스템에 분산되어 있는 다양한 채널 기능들을 표준화된 인터페이스를 통해 하나의 시스템으로 통합하여 내부시스템과 연계하는 솔루션
      • 대외 채널과의 연계를 지원하는 솔루션을 FEP(Front End Protocal)이라고 부르기도 함
      • 다양한 채널에 대한 통합 기술, 실시간 서비스 트랜잭션을 고성능으로 처리하기 위한 부하분산, 유량제어등
      • 메시지 송수신을 위한 다양한 Gateway 제공
      • 대표제품: Inzent의 i-Gate, Direa의 CruzChannel/CruzLink, Tmax의 AnyLink, 이엑티브의 eLink
    • EAI(Enterprise Application Integration)
      • 비즈니스 프로세스를 중심으로 상호 연관성 있는 어플리케이션 간의 유기적 연동이 가능하도록 하는 솔루션
      • 개별 어플리케이션을 어댑터를 이용해 연결하여 중앙 허브와 연결하고 중앙 허브를 이용해서만 타 어플리케이션과 연결되는 방식(Hub-and-Spoke방식)
      • 기존 Point to Point 방식과 달리 Hub-and-Spoke 방식의 아키텍처를 사용해 새로운 어플리케이션 도입 시 어댑터만 필요하기 때문에 확장성이 용이
      • 개발 및 유지보수의 생산성/편의성 증대
      • 대표제품: Tibco, 이엑티브 eLink
      • Point to Point vs Hub and Spoke
  • MQ(Message Queue)
    • 메시지 기반 미들웨어로 메시지를 이용해 어플리케이션 및 서비스들을 연결해 주는 솔루션
    • Queue를 이용해서 메시지를 전달하는 구조
    • 대표 솔루션: IBM MQ, Apache Active MQ, Rabbit MQ, Kafka 등

반응형