2013년 10월 27일 일요일

클라이언트/서버 시스템 구조의 발전 과정

클라이언트/서버 시스템 구조의 발전 과정

1-Tier 클라이언트/서버 시스템 구조


1 계층 클라이언트/서버 구조는 사용자와 인터페이스 하기 위한 화면 운용(표현 규칙의 운용 : Presentation Rule), 업무 규칙(Business Rule)의 구현, 그리고 자료의 접근 규칙(Data Access Rule)의 운용을 한 개의 서버 시스템에서 수행하는 방식이다이 방식은 한 개의 시스템 내에 서버와 클라이언트 프로그램이 공존하는 논리적인 클라이언트/서버 시스템이며, 기존의 호스트 기반 시스템들이 이에 해당된다이 방식은 시스템 구축에 많은 요소 기술이 필요치 않아, 개발 시간이 적으며, 한 개의 시스템에서 모든 관리를 하므로, 관리와 보안이 쉽다. 하지만, 모든 구성 요소가 한 시스템에서 표현되므로, 서버가 비대해지는 현상이 발생하며, 사용자 수가 많아짐에 따라 서버 부하가 기하 급수적으로 커지게 되고, 새로운 시스템의 도입과 시스템의 확장 시에 쉽게 확장하기가 어려운 단점을 가지고 있다.


2-Tier 클라이언트/서버 시스템 구조

.
2 계층 클라이언트/서버 구조는 네트웍의 발전과 PC와 같은 지능형 터미널이 도입되면서, 기존의 더미 터미널이 할 수 없었던 기능을 클라이언트로 전이한 방식을 말한다. 클라이언트는 기존에 서버가 수행하던 작업 중, 사용자와 인터페이스 하기 위한 화면 운용(표현 규칙의 운용 : Presentation Rule), 업무 규칙(Business Rule)의 구현, 그리고 자료의 접근 규칙(Data Access Rule)의 운용에 대한 작업을 맡게 되었으며, 서버는 주로 데이터를 관리하는 작업을 맡게 되었다. 이 방식은 클라이언트와 서버가 물리적으로 서로 독립된 시스템에 존재하는 형태로 구성되었다시스템의 구성이 2 계층 클라이언트/서버 방식으로 발전함으로써, 기존에 서버의 부하가 상당부분 줄어들게 되었으며, 클라이언트가 대량의 자료를 접근하여 가공할 수 있게 됨으로써, 더욱 정교한 자료 분석과 사용자로의 정보 제공이 가능해 졌다. 또한, 클라이언트 개발 툴을 이용하여 시스템을 개발하게 됨으로써, 교육과 훈련을 통한 시스템 개발이 용이하게 되었다. 하지만, 많은 기능이 클라이언트 시스템으로 이관됨에 따라, 클라이언트가 너무 비대해지는 결과를 발생시켰으며, 서버로의 과도한 데이터 접근 요구에 의해 네트웍의 부하가 매우 높아지게 되었다. 이에, 비대한 클라이언트가 되는 것을 방지하기 위해 서버로의 접근 방식을 바꾸는 노력이 있어 왔다. (, 저장 프로시져, 트리거 등)
하지만, 시스템의 크기가 증가하고, 동시에 접근하는 사용자의 수가 증가함에 따라 더 이상 두 계층 클라이언트/서버 방식으로 이를 서비스하기는 힘든 상황이 되었다.


3-Tier 클라이언트/서버 시스템 구조

.
3 계층 클라이언트/서버 시스템은 기존의 2 계층 클라이언트/서버 시스템의 문제점을 해결하기 위해 새로 도입된 방식으로, 사용자와 인터페이스 하기 위한 화면 운용(표현 규칙의 운용 : Presentation Rule)을 클라이언트 시스템이 담당하고, 업무 규칙(Business Rule)의 구현과 자료의 접근 규칙(Data Access Rule)의 운용을 서버 시스템에서 담당하는 방법으로 서버와 클라이언트가 작업을 분담하는 형태로 시스템을 운용하는 방식이다. 이 방식에서 서버 시스템은 업무 규칙을 처리하는 부분과 자료 관리를 위한 부분을 물리적으로 나누어 구성될 수도 있다. (아래 그림 참조)

.

이 방식은 2 계층 클라이언트/서버 방식에서 클라이언트가 수행했던 데이터 가공 작업을 중간 층에 존재하는 서버 시스템으로 전이하였다. 중간 층에 있는 서버는 클라이언트의 요구에 따라 데이터 관리 서버와 연동하여 클라이언트의 요구를 처리하여 결과를 전달한다. 이 방식에서 작업 수행을 위한 대부분의 로직은 중간 층 서버가 유지하게 된다. 이 방식은 클라이언트와 서버가 시스템이 수행해야 하는 기능을 적당하게 분산하여 가지고 있으므로, 어느 한쪽으로 기능이 비대해지는 현상을 방지할 수 있으며, 서버 측의 확장성이 용이하여, 사용자의 수가 급증하더라도 일정한 시간에 응답을 얻을 수 있어, Mission-Critical 응용에 적합한 특징을 가진다. 서버 측의 레벨이 증가함에 따라 보안과 시스템 관리가 수월해지는 장점도 가지고 있다. 하지만, 이 방식은 초기 설치 비용이 크며, 적정 수의 사용자가 사용하지 않으면, 2 계층 방식보다 성능이 떨어질 수 있다. 또한, 한 개의 프로그램을 수정하기 위해 서로 다른 여러 플랫폼에서의 응용 프로그래밍 지식을 가지고 있어야 하는 어려운 점도 있다. 그러므로, 2 계층 방식에서 3 계층 방식으로의 전이는 시스템을 사용하는 환경에 대한 많은 고려가 수반되어야 한다.



지금까지 클라이언트/서버 구조의 발전과정에 대해 살펴보았다. 최근 웹의 발전으로 인하여 사용자들은 웹 브라우저를 통해 서비스를 요구하는 경향이 많아졌고, 서비스 제공자들은 이를 처리하기 위해 웹 서버가 사용자의 요구를 처리하는 응용 서버(중간 층 서버) 기능을 하도록 노력을 기울이고 있다. 또한, 웹 서버와 기존의 미들웨어를 통합하는 노력도 보인다. 앞으로는 대용량 대규모 비즈니스 응용에서 모든 시스템은 3 계층 시스템으로 운용될 것으로 보인다.

댓글 없음:

댓글 쓰기