728x90
반응형
1. 미들웨어의 정의들
- 두 매개체 양쪽을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할(레이어)을 하는 소프트웨어
- 두 매개체는 운영체제/응용소프트웨어가 될 수도 있고 클라이언트/서버 or 서버/서버의 통신이 될 수도 있다.
- 네트워크를 통해 연결된 여러 개 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어
- 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램
- 응용 소프트웨어가 운영 체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어 또는 클라이언트와 서버 간의 통신을 담당하는 소프트웨어
미들웨어라는 용어는 꽤 광범위해 보인다.
결론은, 큰 범위에서의 미들웨어란 "매개체1과 매개체2의 중간에서 매개 역할을 하는 소프트웨어"를 말하고 매개체는 상황과 기능에 따라 여러가지가 있는 듯 하다. 다음 예시에서 어떤 종류가 있는지 살펴보자.
2. 미들웨어 종류 및 예시
미들웨어 종류 | 설명 | 예 |
데이터베이스(DB) 미들웨어 | - 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어. DB 벤더에서 제공하는 클라이언트에서 원격의 DB와 연결하기 위함이다. - DB를 사용해 시스템을 구축하는 경우 보통 2-Tier 아키텍처라고 한다. |
마이크로소프트 ODBC 볼랜드 IDAPI 오라클 Glue |
웹 애플리케이션 서버(WAS) 미들웨어 | - 웹/애플리케이션을 지원하는 미들웨어. - 정적인 콘텐츠를 처리하는 웹 서버와 달리 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위한 미들웨어. - 클라이언트/서버 환경보다는 웹 환경을 구현하기 위한 미들웨어. - HTTP 세션 처리를 위한 웹 서버 기능뿐만 아니라 미션-크리티컬한 기업 업무까지 JAVA, EJB 컴포턴트 기반으로 구현이 가능한다. - 통상적으로 기업에서 말하는 미들웨어 환경. |
오라클 WebLogic IBM WebSphere |
메시지 지향 미들웨어 (Message Oriented Middleware, MOM) |
- 클라이언트가 생성한 메시지는 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어 - 온라인 업무보다 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용된다. |
오라클 Message Q IBM MQ JPC JMS |
웹 미들웨어 및 트랜잭션 처리(TP) 모니터 | - TP모니터는 각종 프로토콜에서 동작하는 섹션과 시스템/데이터베이스 사이의 최소 처리단위인 트랜잭션을 감시하여 일관성있게 보관 유지하는 역할을 하는 트랜잭션 관리 미들웨어이다. - 분산 시스템의 애플리케이션을 지원하는 미들웨어로 C/S 시스템에 사용된다. - 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션을 처리 및 감시하는 미들웨어 - 사용자 수가 증가하더라도 빠른 응답속도를 유지해야할 경우 사용 |
오라클 tuxedo 티맥스소프트 tmax |
원격 프로시저 호출 (Remote Procedure Call, RPC) |
- 응용프로그램의 프로시저를 사용해 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어이다. | 이큐브 시스템즈의 Entera, OSF의 ONC/RPC |
객체 요청 브로커 (Object Request Broker, ORB) |
- 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어이다. - TP모니터의 장점인 트랜잭션 처리와 모니터링을 추가한 제품도 나오고 있다. |
MicroFocus Orbix OMG CORBA |
3. 미들웨어 사용의 좋은점
- 미들웨어는 표준화된 인터페이스를 제공하며 시스템 간의 데이터 교환에 일관성을 보장한다.
- 다양한 환경 지원, 체계가 다른 업무와 상호 연동이 가능
- 미들웨어는 데이터를 앞뒤로 보내지 않고 실시간으로 발생하는 작업으로 분산 처리에도 사용할 수 있다. 미들웨어를 이용하는 분산 컴퓨팅은 2-Tier 형태를 벗어나서 3-Tier와 N-Tier 형태로 발전하게 된다. 이들은 대부분 분산 컴퓨팅에서 모든 비즈니스 로직은 서버 컴퓨터에 존재하게 되고, 개인용 컴퓨터는 오직 프레젠테이션을 위해서 사용된다.
- 모든 비즈니스 로직을 서버에서 관리하기 때문에 만약 변경 사항이 있는 경우 서버 측만 변경하면 된다. 그렇기에 관리와 유지 보수가 간편해진다.
- 확장성이 좋아진다. 3-Tier는 씬클이언트(thin-client) 형태를 사용하기 때문에 클라이언트 컴퓨터의 성능이 약간 떨어져도 프로그램을 실행시키는데 문제가 없다. 이런 형태는 서버측에 약간 무리가 있을 수 있지만, 서버 측은 멀티 프로세스 시스템이나 클러스터링을 이용함으로써 문제를 해결할 수 있다.
Reference
728x90
반응형
'IT > 컴퓨터 기초지식' 카테고리의 다른 글
Cloud database (클라우드 데이터베이스) (0) | 2021.03.21 |
---|---|
Lamda - 프로그래밍언어 (0) | 2021.03.20 |
자료구조(Data structure) - 프로그래밍 언어 (0) | 2021.03.20 |
반복문, 알고리즘 - 프로그래밍 언어 (0) | 2021.03.20 |
Data Type (자료형) - 프로그래밍 언어 (0) | 2021.03.20 |