미들웨어

김민혁·2022년 1월 15일
0
  • 공통 서비스 및 기능을 애플리케이션에 제공하는 소프트웨어
  • 주로 데이터 관리, 애플리케이션 서비스, 메시징, 인증 및 API관리를 처리한다.
  • 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어
  • 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어
  • 3계층 클라이언트/서버 구조에서 미들웨어가 존재한다
  • 매개체는 클라이언트-서버 or 서버-서버 or 운영체제-응용 소프트웨어간의 통신이 될 수도 있다.

3계층 구조(3-Tier Acrchitecture)

  • 클라이언트(프레젠테이션) 계층
    • 프론트엔드
    • ex: HTML, JS, CSS
  • 애플리케이션 계층
    • 백엔드 or 미들웨어
    • ex: JAVA, PHP
  • 데이터 계층
    • DBMS or 백엔드
    • ex: MySQL, MongoDB
  • 장점
    • 업무 분담이 가능하여 업무 효율성 증가한다.
    • 서로 다른 서버를 구성하므로 리스크 완화할수 있다.
    • 서버의 부하를 줄일 수 있다.
    • 경우에 따라 특정 계층의 서버에 대해서만 스케일업을 고려할 수 있다.
  • 단점
    • 1계층만 사용하는 것 대비 관리 포인트가 많이 늘어난다
    • 장애가 발생하는 포인트가 늘어난다.
    • 계층 구조를 서비스 규모 및 사용자 증가에 따라 설계 및 고려해야 한다.

종류

  1. 데이터베이스(DB) 미들웨어
  • 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어
  • DB를 사용해 시스템을 구축하는 경우 보통 2-Tier 아키텍처라고 한다.
  • ex: 마이크로소프트 ODBC, 볼랜드 IDAPI, 오라클 Glue
  1. 웹 애플리케이션 서버(WAS) 미들웨어
  • 웹/애플리케이션을 지원하는 미들웨어
  • 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위한 미들웨어
  • 웹 환경을 구현하기 위한 미들웨어
  • HTTP 세션 처리를 위한 웹 서버 기능뿐만 아니라 미션 크리티컬한 기업 업무까지 JAVA, EJB 컴포넌트 기반으로 구현이 가능하다.
  • 통상적인 미들웨어 환경
  • EJB(Enterprise JavaBenas): 기업환경의 시스템을 구현하기 위한 서버측 컴포너트 모델
  • ex: 오라클 WebLogic, IBM WebSphere
  1. 메시지 지향 미들웨어(Message Oriented Middleware, MOM)
  • 클라이언트가 생성한 메시지를 저장소에 요청할 때 저장하면서, 다른 업무를 지속할 수 있도록 하는 비동기식 미들웨어
  • 오라클 Message Q, IBM MQ, JPC JMS
  1. 웹 미들웨어 및 트랜잭션 처리(TP) 모니터
  • 각종 프로토콜에서 동작하는 섹션과 시스템/데이터베이스 사이의 최소처리단위인 트랜잭션을 감시하여 일관성있게 보관 유지하는 역할을 하는 트랜잭션 관리 미들웨어이다.
  • 사용자 수가 증가하더라도 빠른 응답속도를 유지해야할 경우 사용한다.
  • ex: 오라클 tuxedo, 티맥스소프트 tmax
  1. 원격 프로시저 호출(Remote Procedure Call, RPC)
  • 응용프로그램의 프로시저를 사용해 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어이다.
  • ex: 이큐브 시스템즈 Entera, OSF ONC/RPC
  1. 객체 요청 브로커(Object Request Brokder, ORB)
  • 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어이다.
  • CORBA(Common Object Request Broker Architecture): 여러 컴퓨터에서 실행되며 여러 컴퓨터 언어로 작성된 소프트웨어 컴포넌트가 함께 작동할 수 있도록 하는 OMG(Object Management Group)에서 정의한 표준이다.
  • ex: 마이크로소프트 Orbix, OMG CORBA

장점

  • 표준화된 인터페이스를 제공하여 데이터 교환에 일관성을 보장한다.
  • 다양한 환경을 지원하여 다른 업무와 상호 연동이 가능하다.
  • N-Tier 형태로 발전할 수 있다.
  • 모든 비즈니스 로직을 서버에서 관리하기 때문에 만약 변경 사항이 있는 경우 서버 측만 변경하면 된다. 따라서 관리와 유지보수가 간편해진다.
profile
학생

0개의 댓글