맨위로가기 타임라인 바로가기

미들웨어

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
타임라인 바로가기

1. 개요

미들웨어는 운영체제와 응용 프로그램 사이에서 데이터 통신 및 관리를 가능하게 하는 소프트웨어로, 분산 시스템 환경에서 사용이 일반화되었다. 1960년대 후반 데이터베이스 관리 시스템과 트랜잭션 모니터의 등장과 1990년대 다운사이징에 따른 분산 시스템 보급과 함께 발전해왔다. 미들웨어는 원격 프로시저 호출, 메시지 지향 미들웨어, 객체 요청 브로커, DB 접속 미들웨어, TP 모니터, 웹 애플리케이션 서버, 엔터프라이즈 서비스 버스 등 다양한 종류가 있으며, 표준화된 인터페이스를 제공하여 다양한 환경을 지원하고, 분산된 업무의 동시 처리 및 자료 일관성 유지를 가능하게 한다. 또한, 안드로이드 운영체제, 게임 엔진, 시뮬레이션 기술, 무선 센서 네트워크 등 다양한 분야에서 활용된다.

2. 역사

애플리케이션 프로그램이 네트워크상의 다른 서버데이터베이스와 통신하는 등, 번거로운 절차를 필요로 할 때가 있다. 이러한 통신 절차와 관리를 종류별로 묶어 하나의 기능 관리 패키지 소프트웨어로 만든 것이 '''미들웨어'''이다.

기업 시스템이나 사회 인프라 시스템 등의 엔터프라이즈 영역 시스템 구축에서는 분산된 소프트웨어와 애플리케이션 소프트웨어 간의 데이터 통신 등을 담당한다. 미들웨어로는 각 관리 분야의 전용 소프트웨어가 사용되는 경우가 많다.

커스터마이즈 폭도 넓으며, 각 시스템 특성에 맞는 최적화 설정이 필요하다.

최근 시스템 구축에서는 운영 체제와 이 미들웨어를 시스템 플랫폼(또는 시스템 기반)으로 하나의 관리 단위로 정의하고, 전용 엔지니어/IT 컨설턴트에게 설계 구축을 의뢰하는 경우가 많다.

2. 1. 초기 (1960년대 후반 ~ 1980년대)

1960년대 후반에는 IMS 등의 데이터베이스 관리 시스템과 트랜잭션 모니터가 등장하였다. 이들은 주로 메인프레임미니컴퓨터를 중심으로 발전했으며, 특히 중요한 기간 업무의 성능 및 신뢰성 확보 등을 위해 사용되었다.

2. 2. 분산 시스템 시대 (1990년대 ~ 현재)

1990년대다운사이징의 흐름에 따라 분산 시스템 중심의 시스템이 보급되면서 미들웨어의 사용도 일반화되었다. 특히 UNIX나 Windows 등의 OS는 표준으로는 매우 단순한 파일 시스템이나 관리 권한 설정만 가지고 있었고, 표준화의 흐름도 있어 미들웨어를 병용한 시스템 구축이 보급되었다.

2. 3. 한국에서의 발전

1990년대다운사이징의 흐름에 따라 분산 시스템을 중심으로 한 시스템이 보급되면서 미들웨어의 사용도 일반화되었다. 특히 UNIX나 Windows 등의 OS는 표준으로는 매우 단순한 파일 시스템이나 관리 권한 설정만 가지고 있었고, 표준화의 흐름도 있어 미들웨어를 병용한 시스템 구축이 보급되었다.

3. 종류

미들웨어는 그 종류가 다양하며, 목적과 기능에 따라 여러 범주로 나눌 수 있다.
Hurwitz 분류법


  • 원격 프로시저 호출(RPC): 원격 프로시저를 호출하며, 동기 또는 비동기 방식을 지원한다.
  • 메시지 지향 미들웨어(MOM): 메시지 기반의 비동기식 통신을 지원한다.
  • ORB: 객체 지향 시스템에서 객체 및 서비스 요청과 전송을 지원한다.
  • DB 접속 미들웨어: 애플리케이션과 데이터베이스 서버를 연결한다.

기타 분류법

  • TP 모니터: 분산 시스템 애플리케이션을 지원하며, 주로 C/S 시스템에서 사용된다.
  • 웹 애플리케이션 서버(WAS): 웹 애플리케이션을 지원한다.
  • 엔터프라이즈 서비스 버스(ESB): 메시지 기반으로 느슨하게 결합된 형태의 표준 인터페이스 통신을 지원하며, 기업 내/외부 시스템을 연동한다.


ObjectWeb은 미들웨어를 "네트워크의 분산 컴퓨팅 시스템 양쪽에서 운영 체제와 응용 프로그램 사이에 있는 소프트웨어 계층"으로 정의한다.[5]
최근 참고 문헌에 따른 분류[11]

  • 트랜잭션: 분산 시스템에서 여러 요청을 처리하는 동기/비동기 트랜잭션 처리.
  • 메시지 지향: 동기/비동기 통신을 지원하는 메시지 큐 및 메시지 전달 아키텍처.
  • 프로시저: 원격 및 로컬 아키텍처에서 비동기 시스템 통신의 소프트웨어 응답을 연결, 전달 및 검색.
  • 객체 지향: 객체 지향 프로그래밍 설계 원리를 통합.

그 외 미들웨어

소프트웨어 아키텍처: 미들웨어

3. 1. 원격 프로시저 호출 (RPC)

Hurwitz의 분류법에서, 원격 프로시저 호출(Remote Procedure Call, RPC)은 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템이다. RPC는 동기 또는 비동기 방식을 지원한다.[11]

다른 분류법에서, 프로시저는 원격 및 로컬 아키텍처로, 호출 연산과 같은 비동기 시스템 통신의 소프트웨어 응답을 연결, 전달 및 검색하는 역할을 한다.[11]

3. 2. 메시지 지향 미들웨어 (MOM)

클라이언트가 생성한 메시지를 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어이다.[4] 메시지 지향 미들웨어(MOM)는 동기/비동기 통신을 지원하는 메시지 큐 및 메시지 전달 아키텍처를 제공한다.[11]

메시지 통신 기반 미들웨어는 서버 간 및 컴퓨터 클러스터 노드 간 통신에 사용되며, 애플리케이션 측에서는 그 절차의 복잡성이나 제어가 보이지 않도록 래핑하기 위한 공통 기능을 제공한다. 여기에는 MPI, CORBA, RPC 등이 있다.[11]

3. 3. 객체 요청 브로커 (ORB)

객체 지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어다.[6] 객체 지향 프로그래밍 설계 원리를 통합하여, 소프트웨어 구성 요소는 분산 객체 요청을 통해 객체 참조, 예외 및 속성 상속을 포함한다.[11] CORBA 등이 여기에 해당한다.

3. 4. DB 접속 미들웨어

애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어다.[4] ODBC, JDBC, 트랜잭션 처리 모니터 등이 데이터베이스 중심 미들웨어의 예시다.[8]

3. 5. 트랜잭션 처리 (TP) 모니터

TP 모니터(Transaction Processing Monitor)는 분산 시스템 환경에서 애플리케이션을 지원하는 미들웨어의 한 종류이다. 주로 C/S 시스템에서 사용되며, 다음과 같은 기능을 제공한다.[11]

  • TCP/IP 및 그 위에서 동작하는 HTTP에 의한 통신 트랜잭션과 업무 처리 요청인 처리 트랜잭션과의 관계를 파악하고 관리한다.
  • 은행 거래나 신용 카드 결제와 같이 분산 시스템에서 관련된 여러 요청들을 처리하는 동기/비동기 트랜잭션 처리를 지원한다.


대표적인 TP 모니터로는 OpenTP1, Tuxedo, J2EE에 포함된 JTA 등이 있다.

3. 6. 웹 애플리케이션 서버 (WAS)

웹 애플리케이션을 지원하는 미들웨어이다. 대표적인 웹 애플리케이션 서버로는 WebSphere Application Server, WebLogic, JBoss, Interstage Application Server 등이 있다.

3. 7. 엔터프라이즈 서비스 버스 (ESB)

메시지 기반으로 느슨한 결합 형태의 표준 인터페이스 통신을 지원하는 미들웨어로, 기업 내외부의 모든 시스템 환경을 연동하는 미들웨어이다.[6]

3. 8. 메시지 통신 기반 미들웨어

서버 간 및 컴퓨터 클러스터 노드 간 통신에 사용되며, 애플리케이션 측에서는 그 절차의 복잡성이나 제어가 보이지 않도록 래핑하기 위한 공통 기능을 제공한다.[11]

  • MPI/CORBA/RPC

3. 9. 통합 운영 관리 미들웨어

시스템 내 서버 및 네트워크의 감시, 배치 처리의 스케줄링, 자원 배포 등을 통합하여 수행할 수 있는 기능을 제공한다. 관련 미들웨어로는 A-AUTO, JP1, HP OpenView, Tivoli, Systemwalker 등이 있다.[1]

3. 10. 고가용성 클러스터 미들웨어

클러스터에 참여하고 있는 노드의 관리 및 서비스 애플리케이션과 미들웨어 서비스를 감시하며, 장애 또는 이상 정지가 발생한 경우, 다른 노드로 자동적으로 전환하여 서비스의 지속을 도모하는 공통 기능을 제공한다.[1]

  • MC/ServiceGuard
  • HACMP
  • VxClusterServer
  • MSCS
  • Oracle Solaris Cluster

3. 11. 데이터베이스 관리 시스템 (DBMS)

데이터베이스 액세스 서비스는 종종 미들웨어로 특징지어진다. 그중 일부는 언어별 구현이며 이기종 기능 및 기타 관련 통신 기능을 지원한다.[7] 데이터베이스 중심 미들웨어의 예로는 ODBC, JDBC트랜잭션 처리 모니터가 있다.[8]

데이터베이스 관리 시스템은 시스템의 고유 데이터 및 관리 정보 등을 총괄적으로 관리하고, 검색 서비스를 제공한다.

애플리케이션 프로그램이 동작할 때, 네트워크상의 다른 서버데이터베이스와의 통신 등, 보편적이고 번거로운 절차를 필요로 하는 경우가 있는데, 이러한 통신의 절차와 관리를 종류별로 묶어 하나의 기능 관리 패키지 소프트웨어로 묶은 것이 '''미들웨어'''이다.

데이터베이스 관리 시스템의 종류는 다음과 같다.

3. 12. 웹 서버

클라이언트는 HTTP 요청을 해석하고, HTML 콘텐츠를 응답하거나 다른 서버 사이드 스크립트를 호출한다. 대표적인 웹 서버에는 Apache HTTP Server, Internet Information Server 등이 있다.

3. 13. 애플리케이션 서버

애플리케이션 서버는 애플리케이션이 동작하는 서비스를 관리하고 제공한다.[4]

대표적인 애플리케이션 서버는 다음과 같다.

  • WebSphere Application Server
  • WebLogic
  • JBoss
  • Interstage Application Server

3. 14. 데이터 연계, EAI, BPM 미들웨어

데이터 연계, EAI, BPM 미들웨어에는 다음이 있다.

  • WebSphere MQ
  • HULFT
  • ASTERIA
  • BizTalk Server
  • Sun Java CAPS
  • webMethods Fabric

3. 15. 임베디드 시스템용 미들웨어

서비스 가용성 포럼을 통해 표준화된 미들웨어는[9] 통신, 국방 및 항공 우주 산업 내의 복잡한 임베디드 시스템에서 일반적으로 사용된다.[10]

  • 안드로이드 운영 체제는 핵심으로 리눅스 커널을 사용하며, 개발자가 애플리케이션에 통합하는 애플리케이션 프레임워크도 제공한다. 또한 안드로이드는 데이터 저장, 화면 표시, 멀티미디어, 웹 브라우징과 같은 서비스를 제공하는 라이브러리를 포함한 미들웨어 계층을 제공한다. 미들웨어 라이브러리는 컴파일되어 기계어로 변환되므로 서비스가 빠르게 실행된다. 미들웨어 라이브러리는 또한 장치별 기능을 구현하므로 애플리케이션과 애플리케이션 프레임워크는 안드로이드 장치 간의 변동에 대해 신경 쓸 필요가 없다. 안드로이드의 미들웨어 계층에는 ART 가상 머신과 핵심 자바 애플리케이션 라이브러리도 포함되어 있다.[12]
  • 게임 엔진 소프트웨어인 게임브리오렌더웨어는 게임 개발을 단순화하는 서비스를 제공하기 때문에 미들웨어로 설명되기도 한다.[13]
  • QNX 운영 체제는 자동차, 항공기 및 기타 환경에서 사용할 수 있는 멀티미디어 서비스를 제공하기 위한 미들웨어를 제공한다.[16]
  • 무선 주파수 식별 (RFID) 소프트웨어 툴킷은 노이즈가 많고 중복된 원시 데이터를 필터링하기 위한 미들웨어를 제공한다.[17]


임베디스 시스템용 미들웨어는 다음과 같다:

3. 16. 웹 프레임워크 미들웨어

웹 프레임워크가 HTTP 요청을 받아 개별 처리(MVC 프레임워크라면 Controller)에 도달하기 전에 공통 처리를 실현하고 싶은 경우가 있다. 이를 실현하는 구조 중 다음 2가지 점을 갖는 것을 미들웨어라고 부른다.

  • 개별 처리에 도달하기까지와 개별 처리에서 반환하는 과정 모두에서 1대1이다.
  • 미들웨어 자체는 계층의 개념이며, 겹쳐서 사용할 수 있다.


비슷한 개념으로 필터라고 명명되는 경우가 많은 개념이 있지만, 필터의 경우 개별 처리에 도달하기까지밖에 고려되지 않는 경우가 많다.

이 호칭은 적어도 Django 1.0[18] 시점에서 존재했으며, Laravel 5.0[19], ASP.NET Core 1.0[20]에서도 채택되었다.

또한, 최근에는 Slack의 bolt-js[21] 내 등, 단순히 층상 중간 처리 기구를 미들웨어라고 명명하는 경우도 적지 않다.

GoF 디자인 패턴에서의 데코레이터(Decorator) 패턴 또는 프록시(Proxy) 패턴과 같은 단순한 구조도 미들웨어라고 불리는 경우가 있으며, 유행어가 되어가고 있다.

4. 이점

미들웨어는 표준화된 인터페이스를 제공하여 체계가 다른 업무와의 상호 연동을 가능하게 한다. 또한, 분산된 업무를 동시에 처리하여 자료의 일관성을 유지하고 부하를 분산시킬 수 있다.

장점
표준화된 인터페이스 제공
다양한 환경 지원 및 체계가 다른 업무와 상호 연동 가능
분산된 업무 동시 처리로 자료 일관성 유지
부하 분산 가능


5. 활용

애플리케이션 프로그램이 동작할 때, 네트워크상의 다른 서버데이터베이스와의 통신 등, 보편적이고 번거로운 절차를 필요로 하는 경우가 있다. 이러한 통신의 절차와 관리를 종류별로 묶어 하나의 기능 관리 패키지 소프트웨어로 묶은 것이 '''미들웨어'''이다.

기업 시스템이나 사회 인프라 시스템 등의 엔터프라이즈 영역의 시스템 구축에서는 분산된 소프트웨어와 애플리케이션 소프트웨어 간의 데이터 통신 등을 담당한다. 미들웨어로는 각 관리 분야의 전용 소프트웨어가 사용되는 경우가 많다.

커스터마이즈의 폭도 넓으며, 각 시스템 특성에 맞는 최적화 설정이 필요하다.

최근 시스템 구축에서는 운영 체제와 이 미들웨어를 시스템 플랫폼 (또는 시스템 기반이라고 부름)으로 하나의 관리 단위로 정의하고, 전용 엔지니어/IT 컨설턴트에게 설계 구축을 의뢰하는 경우가 많다.

참조

[1] 웹사이트 Middleware conference https://middleware-c[...] 2023-12-16
[2] 웹사이트 What is Middleware? http://www.middlewar[...] Defining Technology 2013-08-11
[3] 웹사이트 Origin of the term ''middleware'' http://ironick.typep[...] 2005-07-30
[4] 서적 Introduction to Middleware: Web Services, Object Components, and Cloud Computing https://books.google[...] CRC Press
[5] 웹사이트 What's middleware? http://middleware.ob[...] ObjectWeb.org 2005-05-06
[6] 서적 Event Processing for Business: Organizing the Real-Time Enterprise https://books.google[...] John Wiley & Sons
[7] 서적 Open Client/Server Computing and Middleware https://books.google[...] Academic Press
[8] 서적 Data Center Fundamentals https://books.google[...] Cisco Press
[9] 웹사이트 Service Availability Interface Specification http://devel.opensaf[...] Service Availability Forum 2018-07-26
[10] 서적 Service Availability: Principles and Practice John Wiley & Sons
[11] 간행물 Middleware 101: What to know now and for the future 2022-03-15
[12] 서적 Android in Practice Manning Publications
[13] 서적 Introduction to the Game Industry Pearson Prentice Hall
[14] 서적 Cooperative Environments for Distributed Systems Engineering: The Distributed Systems Environment Report Springer
[15] 뉴스 Middleware challenges and approaches for wireless sensor networks http://dsonline.comp[...] IEEE Distributed Systems Online 2006
[16] 웹사이트 QNX Software Joins Internet ITS Consortium of Japan http://www.qnx.com/n[...] QNX 2018-07-26
[17] 서적 RFID Essentials https://books.google[...] O'Reilly Media
[18] 문서 https://djangoprojec[...]
[19] 문서 https://readouble.co[...]
[20] 문서 https://docs.microso[...]
[21] 문서 https://github.com/s[...]
[22] 웹인용 What is Middleware? http://www.middlewar[...] Defining Technology 2013-08-11

관련 사건 타임라인

( 최근 20개의 뉴스만 표기 됩니다. )



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com