'3-Tier'에 해당되는 글 1건

  1. 2008.04.24 3-tier 클라이언트-서버 모델

3-tier 클라이언트-서버 모델

  • 앞에서 소개한 원격 데이터베이스 이용 프로그램은 모두 2-tier 클라이언트-서버 모델을 사용하였다.
  • 2-tier 구조는 응용 서비스를 처리하는 기능이 어디에 구현되어 있든지 클라이언트 수가 많아지면 다음과 같은 이유로 문제가 발생할 수 있다.
  • 응용 처리 프로그램이 서버에 구현된 경우, 이 서버가 여러 클라이언트를 상대하려면 서버의 부담이 커지게 된다.
  • 응용 처리 기능이 클라이언트에 구현된 경우에(이를 fat client라고도 한다), 예를 들어 여러 데이터베이스를 이용하려면 각 서버 별로 JDBC 드라이버를 구동하고 있어야 하고, 불필요하게 서버로부터 많은 데이터를 가져와야 하는 경우가 있다.
  • 응용 처리가 클라이언트와 서버 두 곳에 나뉘어져 있는 경우에는 두 곳의 프로그램이 상호 협력을 해야 하므로 프로그램의 변경이나 배포가 복잡할 수 있다.
  • 2-tier 구조에서는 위와 같은 문제가 발생할 수 있는데 이러한 문제의 근본적인 이유는 클라이언트와 서버가 논리적으로는 일 대 일의 서비스 관계를 유지해야 하기 때문이다.
  • 이러한 문제를 개선한 구조가 3-tier 클라이언트-서버 모델인데 3-tier 구조에서는 응용 처리를 전담하는 middle-tier를 두고 클라이언트는 모든 서비스를 middle-tier에게 요구하고 middle-tier는 데이터베이스 서버와 같은 최종 서버와 통신을 한 후 그 결과를 클라이언트에게 전달한다.
  • 클라이언트는 최종 서버가 어디에 존재하는지 알 필요가 없으며 자신의 응용 처리에 어떤 DBMS가 사용되는 지도 알 필요가 없게 된다.
  • 3-tier의 클라이언트-서버 모델
  1. Tier 1: 사용자 인터페이스를 담당하는 클라이언트
  2. Tier 2: 응용 처리 서버
  3. Tier 3: 데이터베이스 서버와 같은 최종 기능을 수행하는 서버

그림 3-tier 클라이언트-서버 모델

  • 3-tier 구조는 서비스 확장성(scalability)과 안정성, 그리고 효율면에서 유리하므로 대용량 서비스에 적합하다.
  • 3-tier 구조에서는 클라이언트의 요청이 서버로 직접 전달되지 않으므로 서버의 부담이 클라이언트 수에 비례하여 증가하지 않는다.
  • 클라이언트의 수가 적거나 클라이언트가 단순히 하나의 데이터베이스를 액세스하는 경우 등에는 2-tier 구조를 사용하는 것이 효율적이다.
  • 3-tier 구조는 분산객체(distributed object) 모델로 발전하는 중간 단계로도 볼 수 있는데, 분산객체 구조에서는 middle-tier가 보다 일반적인 기능을 제공하는 미들웨어(middleware)로 발전하여 다양한 분산 컴퓨팅을 지원한다

    [출처] 3-Tier|작성자 bizjoseph

Posted by euNey^0^
TAG

댓글을 달아 주세요