기타
WAS(WEB Application Sever)
꽃달린감나무
2022. 4. 22. 17:37
728x90
- Client - Sever
- 클라이언트는 서비스를 제공하는 서버에게 정보를 요청하여 응답 받은 결과를 사용합니다.

- DBMS(Data Base Mangement System)
- 데이터 베이스를 관리하는 시스템
- DBMS가 없을 때는 개발자들이 파일의 데이터를 저장하고 읽어들이는 등의 기능을 구현해야 했습니다.
- 개발자들이 상대적으로 굉장히 쉽게 데이터를 관리할 수 있게 도이ㅓㅆ습니다.
- 종류 : MySQL, MariaDB, Orcale 등등
- DBMS가 Sever 형태로 서비스를 제공했었습니다. ( 위 그림에서 Sever가 DBMS가 되는 것 입니다.)

- 미들웨어(MiddleWare)
- DBMS가 Sever 형태로 서비스를 제공했을 때, 클라이언트 프로그램을 DBMS에 접속해서 사용하는 경우가 많았습니다. 이러한 방식은 클라이언트의 로직이 많아지게되고 프로그램의 크기가 커지는 문제가 발생하였습니다.
- 프로그램의 로직이 변경되면 클라이언트에게 변경될 때 마다 배포해야하는 불편함도 있었습니다.
- 대부부의 로직이 클라이언트에 배포가 되면, 보안이 취약해집니다.
- 이러한 문제점들을 해결하기위해 나타난 것이 바로 MiddleWare 입니다. 미들웨어는 비즈니스 로직을 클라이언트와 DBMS사이의 서버(미들웨어 서버)에서 동작하도로 하게 하는 것입니다. 이렇게 되면, 클라이언트는 사용자의 입력과 출력만 담당하게 되므로 위와 같은 문제점들을 해소할 수 있습니다.
- 프로그램의 로직이 변경된다 하더라도 모든 클라이언트를 배포할 필요 없이 미들웨어 서버만 변경하면 됩니다.

- WAS( WEB Application Sever)
- 최초 웹이 등장 했을 때는 웹 브라우저는 정적 데이터만 보여줬습니다. 하지만 웹이 많이 사용됨에 따라 요구사항이 점점 늘어났고, 웹에서 데이터를 입력하고 조치하는 등의 동적인 기능을 요구 하게됩니다.
- 따라서, 웹 서버 프로그래밍(CGI)가 생겨 단순한 프로그래밍 가능했습니다.
- 하지만 더 복잡한 프로그래밍이 요구되었고 이 경우 DBMS와 연관된 경우가 많았습니다.
- 따라서, 클라이언트인 웹 브라우저와 DBMS 사이에 동작하는 미들웨어가 필요하게 됩니다.
- 이러한 미들웨어가 바로 WAS입니다.
- WAS는 일종의 미들웨어로 웹클라이언트의 요청 중 웹 어플리케이션이 동작하도록 지원하는 목적을 가집니다.
- 구조 web client --> web sever --> was.

- WAS의 기능
- 프로그램 실행 환경, 데이터 베이스 접속 기능 제공합니다
- 여러개의 트랜잭션을 관립합니다. ( 트랜잭션 : 논리적인 작업단위)
- 업무를 처리하는 비즈니스 로직을 처리합니다.
- 웹 서버 기능을 지원합니다.
- web client --> web sever --> was 이런 구조를 왜 사용할까?
- was가 웹 서버 기능을 지원하면 web client --> web sever --> was 를 사용할까요?
- 사용자가 많이 접속하는 대용량 웹 어플리케이션의 경우 서버 수가 여러 대가 존재하게 됩니다. 많이 접속하는 만큼 오류 발생 가능성도 높아질 것입니다. 하지만 web client --> web sever --> was 구조를 사용한다면, 사용자가 오류가 발생해도 알 수 없습니다. 그 이유는 was에서 동작하도록 개발자가 만든 프로그램이 오작동해서 was 자체에 문제가 발생하게되면, was를 재시작 해야하는데. 이 때 재시작하는 동안 웹 서버는 was를 사용하지 못하게 해 사용자가 was의 문제가 발생했는지 모르게합니다(장애극복기능이라고 한다.)
- 대용량 웹 어플리케이션는 무중단으로 운영하기 위해서는 상당히 중요한 기능이므로 위와 같은 구조로 동작하게 해 장애극복기능을 사용하게 하는 것입니다.

728x90