본문 바로가기

프로그래밍(TA, AA)

[프로그래밍] 미들웨어(Middleware)란?

미들웨어(Middleware)는 응용 소프트웨어가 운영체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어입니다. 응용 소프트웨어는 유연하고 확장, 축소가 편리해야하며 이러한 장점을 충족하기에 개발자의 다른 기종간 플랫폼을 다시 구축할 필요가 없어야 합니다. 이를테면 데이터베이스 시스템, 전자통신 소프트웨어, 메시지 및 쿼리 처리 소프트웨어를 들 수 있습니다.



정의


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


TP 모니터(TP Monitor: Transaction Processing Monitor)는 가장 대표적인 미들웨어라 할 수 있습니다. 이러한 미들웨어는 메인 프레임 소프트웨어에서 분산 컴퓨팅으로 전환되는 과정에서 나타나게 됩니다. 

미들웨어를 이용하는 분산 컴퓨팅은 2-tier 형태를 벗어나서 3-tier와 N-tier 형태로 발전하게 됩니다. 대부분 3-tier 혹은 N-tier 분산 컴퓨팅에서 모든 비즈니스 로직은 서버 컴퓨터에 존재하게 되고, 개인용 컴퓨터는 오직 프레젠테이션을 위해서 사용됩니다.


이러한 방법은 여러가지 장점들을 제공하게됩니다.


1. 모든 비즈니스 로직을 서버에서 관리하기 때문에 관리와 유지 보수가 간편해진다. 만약 변경 사항이 있는 경우에 오직 서버 측만 변경하기 때문에 유지 보수가 간편해지는 것이다.

2. 확장성이 좋아진다. 3-tier는 씬 클라이언트(thin-client) 형태를 사용하기 때문에 클라이언트 컴퓨터의 성능이 약간 떨어져도 프로그램을 실행시키는데 문제가 없다. 이러한 형태는 서버측에 약간 무리가 있을 수 있지만, 서버 측은 멀티 프로세스 시스템이나 클러스터링(clustering)을 이용함으로써 문제를 해결할 수 있다.



이점


 - 표준화된 인터페이스 제공 가능

 - 다양한 환경 지원, 체계가 다른 업무와 상호 연동이 가능

 - 분산된 업무를 동시에 처리 가능하여 자료의 일관성이 유지

 - 부하의 분산이 가능



활용 방안


- 향후 5년 후에 새로운 e-business 애플리케이션 투자를 불러올 주요 트랜드 및 사건은 무엇인가?

 - 차세대 e-business 아키텍처를 창조하는데 있어서 패키지화된 애플리케이션 소프트웨어의 역할은 무엇인가?

 - 기술의 발전과 비즈니스 변화는 e-business 애플리케이션을 시작하려는 결정에 어떤 영향을 미칠 것인가?

 - 21세기의 경쟁에 필요한 이상적인 e-business 애플리케이션 아키텍처는 무엇인가?

 - 어떻게 아키텍처를 통합하는 것이 정보관리 능력을 빠르게 향상시킬 것이며, 조직을 건실하게 운영할 수 있을 것인가?

 - 이전에 없던 복잡성과 변화에도 불구하고 비즈니스 애플리케이션을 활용할 수 있는 경영 구조를 어떻게 만들 수 있을까?



종류


1. 원격 프로시저 호출(Remote Procedure Call, 약칭 RPC): 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템. 동기 또는 비동기 지원.

2. 메시지 지향 미들웨어(Message Oriented Middleware, 약칭 MOM): 클라이언트가 생성한 메시지는 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어.

3. ORB(Object Request Broker): 객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어.

4. DB 접속 미들웨어: 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어


또다른 분류법

1. TP모니터(Transaction Processing(TP) monitor): 분산 시스템의 애플리케이션을 지원하는 미들웨어. 주로 C/S 시스템에 사용됨.

2. 웹 애플리케이션 서버(Web Application Server): 웹 애플리케이션을 지원하는 미들웨어.

3. 엔터프라이즈 서비스 버스(Enterprise Service Bus): 메시지 기반으로 느슨한 결합형태의 표준 인터페이스 통신을 지원하는 미들웨어로 기업 안팎에 있는 모든 시스템 환경을 연동하는 미들웨어.



TP모니터란?

각종 프로토콜에서 동작하는 세션과 시스템과 데이터베이스 사이의 최소 처리단위인 트랜잭션을 감시하여 일관성있게 보관 유지하는 역할을 하는 트랜잭션 관리 미들웨어이다. 시장분석 기관인 가트너(Gartner)에서는 TPM으로 표시하고 있고, 또 다른 시장분석 기관인 IDC에서는 ASSP의 일부로 분류하고 있다.


각종 컴퓨터 시스템에서 사용자와 애플리케이션과의 다수의 자원(데이터베이스 등) 사이의 분산 트랜잭션을 실현하는 프로그램 모듈(복수 자원에 걸친 처리단위인 트랜잭션에 대해 ACID 특성을 보관 유지하는 역할을 담당하는 프로그램 모듈)을 TP모니터라고 한다.


X/Open 모델에서는 "트랜잭션 관리자" 또는 WS-Transaction 모델의 "트랜잭션 조정자"와 동의어이다.


다만, X/Open 모델을 따르지 않는 좁은 의미의 "트랜잭션 관리"는 단일 자원 내부의 로컬 트랜잭션을 처리하는 부분을 의미하므로 주의할 필요가 있다. 여기서 "트랜잭션 모니터"라고 하면 개별 자원의 외부에서 복수의 "자원 관리" 또는 복수 노드의 "자원 관리"를 이르는 분산 트랜잭션을 관리하는 독립한 프로그램 모듈을 가리키는 것이다.