클라이언트/서버 구조


  • 클라이언트는 서비스를 제공하는 서버에게 정보를 요청하여 응답받은 결과를 사용한다.

DBMS(DataBase Management System)


  • 다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어이다.
  • DBMS 등장 이전에는 개발자들이 파일의 데이터를 저장하고 읽어들이는 등의 기능을 모두 구현해야했었다.

미들웨어


  • DBMS는 서버형태로 서비스를 제공하기 때문에 이러한 DBMS에 접속해서 동작하는 클라이언트 프로그램이 한때 많이 만들어졌었다.
  • 이러한 방식은 클라이언트 쪽에 비즈니스 로직이 많아지고, 클라이언트 관리, 배포 등에 영향을 끼치게 된다.
  • 이런 문제점을 해결하기 위해 데이터 처리와 같은 비즈니스 로직을 클라이언트와 DBMS 사이의 미들웨어 서버에 동작함으로써 클라이언트는 입력과 출력만 담당하게 됐다.

WAS(Web Application Server)


  • 처음의 웹은 정적인 데이터만 보여주었다. 하지만 점점 웹이 발달하면서 데이터를 입력하고 조회하는 등의 동적인 기능을 요구하게 되었다.
  • 동적인 기능은 프로그래밍을 통해 가능하며, 초기에는 웹 서버에 있어도 문제가 없었다.
  • 웹이 점점 복잡해지면서 보통 DBMS와 연관된 복잡한 프로그래밍적 기능을 요구하게 되었고, 브라우저와 DBMS 사이에서 동작하는 미들웨어가 필요하게 되었다. 이를 WAS라고 한다.
  • WAS는 일종의 미들웨어로, 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가진다.

WAS의 기능

  • 프로그램 실행 환경과 데이터베이스 접속 기능을 제공한다.
  • 여러 개의 트랜잭션(논리적인 작업 단위)을 관리한다.
  • 업무를 처리하는 비즈니스 로직을 수행한다.
  • 웹 서버없이 WAS 만 있어도 정적인 콘텐츠와 동적인 콘텐츠를 모두 제공할 수 있다. 현재는 성능상 큰 차이가 없다.
  • WAS가 문제가 생겨서 재시작해야할 때, 앞단에 웹 서버가 해당 WAS를 이용하지 못하도록 막고 WAS를 재시작한다면 사람은 문제가 발생했는지 모르고 이용할 수 있다. 이러한 장애 극복 기능을 위해 웹 서버와 WAS가 분리되어 있는 경우가 많다.
profile
do for me

0개의 댓글