👉 미들웨어란?
- 운영 체제(OS)와 애플리케이션 소프트웨어 사이에서 중간 역할을 하는 소프트웨어
- 컴퓨터 네트워크, 데이터베이스, 애플리케이션 서버 등 다양한 시스템 간의 통신과 데이터 관리를 용이하게 하는 역할
- 미들웨어는 복잡한 하부 시스템을 추상화하여 개발자가 다양한 기술과 프로토콜을 직접 다루지 않고도 애플리케이션을 개발할 수 있도록 도와 줌
- 미들웨어는 다양한 기능과 목적을 가진 여러 컴포넌트로 구성
👉 미들웨어의 주요 역할
- 통신 및 메시징
- 미들웨어는 네트워크상의 다른 애플리케이션 또는 시스템 간의 통신을 쉽게 해 줌
- 예를 들어, 메시지 큐 시스템은 서로 다른 시스템 간에 데이터를 전송하고 받는 것을 도와 줌
- 데이터 변환
- 서로 다른 시스템은 데이터 포맷이 다를 수 있는데, 미들웨어는 이러한 데이터 포맷을 변환하여 다른 시스템이 이해할 수 있도록 도와 줌
- 인증 및 보안
- 미들웨어는 애플리케이션의 보안을 강화하는데 도움을 줌
- 사용자 인증, 데이터 암호화 등 보안 관련 기능을 제공
- 사용자 인증과 권한 부여 과정을 관리하여 애플리케이션에 접근할 수 있는 사용자를 제어
- 데이터를 암호화하여 네트워크를 통해 전송되는 동안 데이터를 보호하는 등의 역할
- 트랜잭션 관리
- 데이터베이스 작업이나 다른 형태의 작업을 수행할 때, 미들웨어는 작업의 일관성과 정확성을 보장하기 위해 트랜잭션을 관리할 수 있음
- 로드 밸런싱
- 여러 서버에 걸쳐 애플리케이션의 로드(작업량)을 분산시켜 성능을 최적화하는 기능을 제공
👉 미들웨어의 컴포넌트
- 통신 미들웨어
- 애플리케이션 간의 데이터 전송과 메시징 기능을 담당
- 예시
- 메시지 지향 미들웨어(MOM)
- 원격 프로시저 호출(RPC)과 같은 기술
- 응용 프로그램 서버
- 애플리케이션의 실행 환경을 제공
- 웹 애플리케이션과 엔터프라이즈 애플리케이션을 지원하는 데 중요
- 웹 서버(WS)와 AP 서버(WAS)가 이 카테고리에 속함
- 예시
- Apache, Nginx, Tomcat, JBoss, IIS
- 데이터베이스 미들웨어
- 애플리케이션과 데이터베이스 사이의 인터페이스 역할을 하며, 데이터의 쿼리, 관리, 변환 작업을 도와 줌
- 예시
- ODBC, JDBC, Oracle, MySQL 등이 여기에 해당
- 트랜잭션 미들웨어
- 복잡한 트랜잭션 관리 기능을 제공하여, 여러 데이터베이스나 시스템 간의 트랜잭션을 조율하고 일관성을 유지
- 분산 트랜잭션 처리를 위한 X/Open XA(X/Open XA)와 같은 표준이 있음
- 예시
- DTC(분산 트랜잭션 처리 Microsoft Distributed Transaction Coordinator)
- JTA(Java Transaction API 일반적으로 Java EE 서버에 포함되어 있는 트랜잭션 관리자)
- 오브젝트 미들웨어
- 분산 객체 시스템의 통신을 담당
- 예시
- CORBA (Common Object Request Broker Architecture) : Orbix, JacORB
- Java RMI (Remote Method Invocation) : Java RMI는 자바 플랫폼 내장 기능
- 콘텐츠 중심 미들웨어
- 디지털 미디어 콘텐츠의 관리와 배포를 담당
- 예시
- CMS (콘텐츠 관리 시스템) : WordPress, Drupal, Joomla
- 포털 미들웨어
- 사용자에게 단일 접점을 제공하여 다양한 애플리케이션과 서비스에 접근할 수 있게 함
- 사용자 맞춤형 정보 접근과 통합된 사용자 인터페이스를 제공
- 예시
- 엔터프라이즈 포털 솔루션 : Liferay, IBM WebSphere Portal