OS

[운영체제] 미들웨어의 정의와 기능, 종류

효진인데요 2023. 8. 12. 21:53

 

 

 

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 메시지 지향 미들웨어

 

출처:https://docs.oracle.com/cd/E19148-01/820-0532/6nc919fai/index.html

 

 

  • 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