0. 미들웨어란?
- 운영 체제와 해당 운영 체제에서 실행되는 응용 프로그램 사이에 존재하는 소프트웨어
- 요청이 들어오면 응답까지 걸리는 중간 과정을 함수로 분리한 것
- 기본적으로 숨겨진 변환 계층으로 기능하는 미들웨어는 분산 응용 프로그램의 통신 및 데이터 관리를 가능하게 함
- 데이터와 데이터베이스사이를 "파이프"로 연결하기 때문에 배관이라고도 불림
- 미들웨어를 사용해 사용자가 웹 브라우저에서 양식을 제출할 수 있음
- 웹 서버가 사용자의 프로필을 기반으로 동적 웹 페이지를 반환하도록 요청 가능
- 쉽게 말하자면, 서버와 클라이언트를 이어주는 중간 작업을 하는 것
1. 기능
1.1 클러스터링 (Clustering)
- 기기들을 고속 네트워크를 이용하여 병렬로 연결
- 여러 개의 같은 작업을 하는 서버를 하나의 컴퓨터처럼 사용하도록 함
- 확장성이 좋고 여러 제어 환경을 제공
1.2 로드 밸런싱 (Load Balancing)
- 사용자가 리소스를 요구할 시, 이를 클러스트링 된 서버에게 작업을 효율적으로 분배하는 기능
- 제공되는 제어 환경의 한 종류
1.3 페일 오버 (Failover)
- 장애 극복 기능이라고도 불림
- 미들웨어는 해당 기능을 사용 → 클러스트링 된 서버 중 한 대에서 오류 발생 시 다른 서버가 처리하도록 함
- 안정성과 지속성 유지
1.4 분산 트랜잭션 (Distribution Transaction)
- 트랜잭션 : 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
▷ SQL 질의어 (ex. select, insert, delete, update)를 이용하여 DB에 접근하는 것 - 2개 이상의 네트워크 상 시스템 간 트랜잭션
- 다른 장치의 DB 시스템 사용하는 경우, 효율적인 처리 가능
1.5 관리
1) 프로세스 관리
- 장치를 최적화 상태로 유지하기 위해 프로세스의 수 제한
- 재시동 역할
2) 리소스 관리
- 클라이언트가 서버에 리소스를 요구할 경우 폴링 방식을 사용하여 분배
3) 시스템 관리
- 프로세스, 리소스, 서비스 제공 횟수, 평균 시간 등을 모니터링 (장애관리)
- 이를 전체적으로 관리하는 기반
4) 보안
- 외부에서 클러스터링 된 서버에서의 불법 접근을 제한
5) 시스템 통합
- 레거시 (Legacy) 시스템과의 통합 환경 제공
- 레거시 시스템
▷ 오래된 기술, 방법론, 컴퓨터 시스템, 소프트웨어 등
▷ 하위 호환을 위해 신규 프로그램 내에 남겨두는 기존 프로그램의 소스 코드
2. 종류
미들웨어의 종류는 정말 많고 다양하나, 대표적인 몇 가지 미들웨어의 종류에 대해 간단하게 살펴보자.
2.1 데이터베이스 미들웨어
- DB (Database)
- 데이터베이스에서 제공하는 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어
- 클라이언트에게 공통의 SQL 호출 인터페이스 제공
- 여러 종류의 데이터베이스에 쉽게 접근할 수 있도록 하는 역할
2.2 메시지 지향 미들웨어
- MOM (Message Oriented Middleware)
- 네트워크 상에서 메시지를 전달하는 운반자의 역할
- 클라이언트가 생성한 메시지는 저장소에 요청할 때 저장하는 동시에, 다른 업무를 지속하도록 할 수 있는 비동기식 미들웨어
- 원격 프로시저 호출 미들웨어를 사용할 때 발생하는 클라이언트와 서버 간 동기적인 통신 문제점 해결 가능
- 데이터 전달 및 프로그램 수행에 대한 신뢰성, 안전성 보장
- 표준 API를 제공하여 시스템 간 독립적인 통신
2.3 원격 프로시저 호출
- RPC (Remote Procedure Call)
- 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템
- 동기/비동기 지원
- 네트워크로 연결된 서버 사이의 원격 프로시져를 로컬 프로시져인 것처럼 호출하는 방식
- 네트워크나 운영체제가 복잡함을 숨기며, 네트워크 상에서의 통신 애플리케이션 작성 가능
- 구조를 이해하기 쉽고, 개발에 용이하나, 구조 상 높은 속도의 네트워크 환경을 요구하는 등의 어려움도 존재
2.4 트랜잭션 프로세싱 모니터
- TPM (Transaction Processing Monitor, TP-Monitor)
- 통신 미들웨어 중 한 종류로, 분산 시스템 애플리케이션 지원
- 애플리케이션과 애플리케이션 간의 정보 교환을 제공
- 클라이언트 서버 시스템 개발에 있어 확실한 프로그램 간 통신 모델을 제공
- 네트워크와 플랫폼에 독립적으로 클라이언트 서버 애플리케이션을 개발, 실행할 수 있도록 함
2.5 객체 요청 브로커
- ORB (Object Request Broker)
- 객체지향 미들웨어 중 하나
- 코바 (CORBA)의 표준 스펙을 구현한 미들웨어
- TP-모니터가 가지고 있는 장점인 트랜잭션 처리, 모니터링 등의 기능도 구현
728x90
'OS' 카테고리의 다른 글
[OS] C언어 코드 분석_3 (0) | 2023.12.18 |
---|---|
[OS] C언어 코드 분석_2 (0) | 2023.12.11 |
[OS] 자료구조(연결 리스트, 스택), include문과 포인터 변수 (0) | 2023.12.08 |
표준 프레임워크 개요 (1) | 2023.12.01 |
[운영체제] 프로세스/스레드/스택/큐 (0) | 2023.08.09 |