반응형
미들웨어(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 등
끝
반응형