정보처리기사/소프트웨어 설계

미들웨어(Middleware)

glorypang 2025. 10. 27. 23:23
728x90
반응형
SMALL

미들웨어의 정의

  • 애플리케이션과 운영체제/네트워크/데이터 사이에서 통신·연동·운영 공통 기능(메시징, 트랜잭션, 보안, 로깅 등)을 제공하는 중간 계층 소프트웨어.
    → 목적: 재사용/표준화/확장성/운영 편의성 확보.

미들웨어의 종류 요약

1) RPC (Remote Procedure Call, 원격 프로시저 호출)

  • 역할: 다른 프로세스/서버의 함수를 로컬처럼 호출하게 추상화.
  • 핵심: 인터페이스 정의(IDL)·스텁/스켈레톤·직렬화.
  • 프로토콜/포맷: gRPC(HTTP/2+ProtoBuf), Thrift, JSON-RPC.
  • 예시: gRPC, Apache Thrift, Dubbo, Finagle.

2) MOM (Message-Oriented Middleware, 메시지 지향)

  • 역할: 비동기 메시지 큐/퍼브섭로 서비스 간 결합도↓·내결함성↑.
  • 패턴: Queue/Topic, 재시도(Dead-Letter), 백프레셔.
  • 예시: Kafka, RabbitMQ, NATS, AWS SQS/SNS, Azure Service Bus, GCP Pub/Sub.

3) ORB (Object Request Broker)

  • 역할: 분산 객체 호출을 중개(CORBA), 위치·언어 투명성 제공.
  • 프로토콜: IIOP, 데이터 CDR.
  • 예시: TAO, JacORB, VisiBroker, Orbix. (주로 레거시)

4) DB 접속 미들웨어

  • 역할: 데이터베이스 연결/풀링/트랜잭션/드라이버 추상화.
  • 형태: 드라이버(JDBC/ODBC), 커넥션 풀(HikariCP), ORM/데이터 액세스 레이어.
  • 예시: JDBC/ODBC, HikariCP, Hibernate, MyBatis, Spring Data.

5) TP 모니터 (Transaction Processing Monitor)

  • 역할: 대량 트랜잭션 애플리케이션의 동시성/부하분산/2PC 관리.
  • 특징: 트랜잭션 컨텍스트, 자원관리자(RM) 조정.
  • 예시: Tuxedo, CICS, Encina, OpenTP1.

6) WAS (Web Application Server)

  • 역할: HTTP 요청을 받아 서버사이드 앱 실행(세션, 보안, 트랜잭션, 풀링).
  • 예시: Tomcat, Jetty, WildFly/JBoss, WebLogic, WebSphere, Spring Boot(내장).

7) ESB (Enterprise Service Bus)

  • 역할: 이기종 시스템 간 라우팅·변환·오케스트레이션 표준화.
  • 패턴: 메시지 변환, 콘텐츠 기반 라우팅, 프로토콜 브리징.
  • 예시: Mule ESB(MuleSoft), WSO2, TIBCO, Apache Camel(경량), Boomi, Azure Logic Apps.

 

728x90
반응형
LIST