본문 바로가기
WEB/web 지식

Web Service Architecture

by 일상코더 2022. 10. 10.

 

1. Web Server는 웹 브라우저 클라이언트로부터 HTTP 요청을 받는다. 

2. Web Server는 클라이언트의 요청(Request)을 WAS에 보낸다.

3. WAS는 관련된 Servlet을 메모리에 올린다.

4. WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성한다. (Thread Pool 이용)

5. HttpServletRequest와 HttpServletResponse 객체를 생성하여 Servlet에 전달한다. 

       - 5-1. Thread는 Servlet의 service()메서드를 호출한다. 

       - 5-2. service()메서드는 요청에 맞게 doGet() 또는 doPost() 메서드를 호출한다. 

       - protected doGet(HttpServletRequest request, HttpServletResponse response)

6. doGet() 또는 doPost()메서드는 인자에 맞게 생성된 적절한 동적 페이지를 Response객체에

    담아 WAS에 전달한다. 

7. WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달한다.

8. 생성된 Thread를 종료하고, HttpServletRequest와 HttpServletResponse 객체를 제거한다.

 

 

DBMS 와 MiddleWare의 개념

 

DBMS(Database Management System)
              - 다수의 사용자들이 DB 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
              - DBMS는 보통 Server 형태로 서비스를 제공한다.
              - Ex) MySQL, MariaDB, Oracle, PostgreSQL 등
              - Q) DBMS Server에 직접 접속해서 동작하는 Client Program의 문제점?
                       - Client에 로직이 많아지고 이에 따라 Client Program의 크기가 커진다.
                       - 로직이 변경될 때마다 매번 배포가 되어야 한다.
                       - Client에 대부분의 로직이 포함되어 배포가 되기 때문에 보안에 취약하다.
                       - A) => 이를 해결하기 위해 아래와 같은 MiddlWare가 등장했다.
MiddleWare
              - Client - MiddleWare Server - DB Server(DBMS)
              - 동작 과정
                         -  Client는 단순히 요청만 중앙에 있는 MiddleWare Server에게 보낸다.
                         -  MiddleWare Server에서 대부분의 로직이 수행된다. 
                         -  이때, 데이터를 조작할 일이 있으면 DBMS에 부탁한다.
                         -  로직의 결과를 Client에게 전송한다.
                         -  Client는 그 결과를 화면에 보여준다.
               - 즉, 비즈니스 로직을 Client와 DBMS 사이의 MiddleWare Server에서 동작하도록 함으로써 Client는 입력과 출력만 담당하게 된다.

'WEB > web 지식' 카테고리의 다른 글

CORS 이슈 해결  (0) 2022.10.25
OSI 7계층, TCP 4계층  (0) 2022.10.17
HTTP API 설계 예시  (0) 2022.10.01
client to server  (0) 2022.10.01
POST, PUT, PATCH 차이점  (0) 2022.10.01

댓글