IT/컴퓨터 기초지식

미들웨어(Middleware)

DS지니 2021. 8. 2. 12:24
728x90
반응형

1. 미들웨어의 정의들

  • 두 매개체 양쪽을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할(레이어)을 하는 소프트웨어
  • 두 매개체는 운영체제/응용소프트웨어가 될 수도 있고 클라이언트/서버 or 서버/서버의 통신이 될 수도 있다. 
  • 네트워크를 통해 연결된 여러 개 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어
  • 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램
  • 응용 소프트웨어가 운영 체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어 또는 클라이언트와 서버 간의 통신을 담당하는 소프트웨어

 

위키백과 - ko.wikipedia.org/wiki/미들웨어

 

미들웨어라는 용어는 꽤 광범위해 보인다.
결론은, 큰 범위에서의 미들웨어란 "매개체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

 

1. https://velog.io/@unyoi/%EC%9D%B8%ED%94%84%EB%9D%BC-%EB%BF%8C%EC%8B%9C%EA%B8%B01-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-%EA%B0%9C%EB%85%90%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

2. https://sphere-sryn.tistory.com/entry/Web-Server%EC%99%80-WASWeb-Application-Server%EC%9D%98-%EC%B0%A8%EC%9D%B4-feat-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4

728x90
반응형