미들웨어

미들웨어()는 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램으로, 운영 체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어이다. 응용 소프트웨어가 운영 체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어이다. "소프트웨어 글루"(software glue)로 이야기된다. 응용 소프트웨어는 유연하고 확장, 축소가 편리하여야 하며 이러한 장점을 충족하기에 개발자의 다른 기종 간 플랫폼을 다시 구축할 필요가 없어야 한다. 이를테면 데이터베이스 시스템, 전자 통신 소프트웨어, 메시지 및 쿼리 처리 소프트웨어를 들 수 있다.

 개요 
미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어, 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어를 말한다. 3계층 클라이언트/서버 구조에서 미들웨어가 존재한다. 웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 된다.

 예 
 TP 모니터(TP Monitor: Transaction Processing Monitor)는 가장 대표적인 미들웨어라 할 수 있다. 이러한 미들웨어는 메인 프레임 소프트웨어에서 분산 컴퓨팅으로 전환되는 과정에서 나타나게 된다. 미들웨어를 이용하는 분산 컴퓨팅은 2-tier 형태를 벗어나서 3-tier와 N-tier 형태로 발전하게 된다. 대부분 3-tier 혹은 N-tier 분산 컴퓨팅에서 모든 비즈니스 로직은 서버 컴퓨터에 존재하게 되고, 개인용 컴퓨터는 오직 프레젠테이션을 위해서 사용된다.

이러한 방법은 여러 가지 장점들을 제공한다.
 첫째로 모든 비즈니스 로직을 서버에서 관리하기 때문에 관리와 유지 보수가 간편해진다. 만약 변경 사항이 있는 경우에 오직 서버 측만 변경하기 때문에 유지 보수가 간편해지는 것이다.
 둘째로 확장성이 좋아진다. 3-tier는 씬 클라이언트(thin-client) 형태를 사용하기 때문에 클라이언트 컴퓨터의 성능이 약간 떨어져도 프로그램을 실행시키는데 문제가 없다. 이러한 형태는 서버 측에 약간의 무리가 있을 수 있지만, 서버 측은 멀티프로세서 시스템이나 클러스터링(clustering)을 이용함으로써 문제를 해결할 수 있다.

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

 활용 방안 
 향후 5년 후에 새로운 e-business 애플리케이션 투자를 불러올 주요 트랜드 및 사건은 무엇인가?
 차세대 e-business 아키텍처를 창조하는 데 있어서 패키지화된 애플리케이션 소프트웨어의 역할은 무엇인가?
 기술의 발전과 비즈니스 변화는 e-business 애플리케이션을 시작하려는 결정에 어떤 영향을 미칠 것인가?
 21세기의 경쟁에 필요한 이상적인 e-business 애플리케이션 아키텍처는 무엇인가?
 어떻게 아키텍처를 통합하는 것이 정보관리 능력을 빠르게 향상시킬 것이며, 조직을 건실하게 운영할 수 있을 것인가?
 이전에 없던 복잡성과 변화에도 불구하고 비즈니스 애플리케이션을 활용할 수 있는 경영구조를 어떻게 만들 수 있을까?

(참고: Oracle Korea Magazine)

 종류 
Hurwitz의 분류법 :
 원격 프로시저 호출 (Remote Procedure Call, 약칭 RPC) — 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템. 동기 또는 비동기 지원.
 메시지 지향 미들웨어 (Message Oriented Middleware, 약칭 MOM) — 클라이언트가 생성한 메시지는 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어.
 ORB (Object Request Broker) — 객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어.
 DB 접속 미들웨어 — 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어.

또다른 분류법 :
 TP 모니터 (Transaction Processing(TP) monitor) — 분산 시스템의 애플리케이션을 지원하는 미들웨어. 주로 C/S 시스템에 사용됨.
 웹 애플리케이션 서버 (Web Application Server) — 웹 애플리케이션을 지원하는 미들웨어.
 엔터프라이즈 서비스 버스 (Enterprise Service Bus) — 메시지 기반으로 느슨한 결합형태의 표준 인터페이스 통신을 지원하는 미들웨어로 기업 안팎에 있는 모든 시스템 환경을 연동하는 미들웨어.

 같이 보기 

 소프트웨어
 TP 모니터
 웹 애플리케이션 서버

 각주