티스토리 뷰

Client/Server Architecture

클라이언트(일반적으로 GUI를 사용하는 어플리케이션)를 서버에서 분리하는 네트워크 구조이다. 각각의 클라이언트 소프트웨어 인스턴스는 서버에 요청을 전송할 수 있다. 하나의 서버에 복수의 클라이언트가 접속하게 된다.(일대다 관계)

 

 


 

서버 유형

 

어플리케이션 서버(게임, 채팅, 메신저, 증권 거래 서버 등), 파일 및 FTP 서버, 터미널 서버, 메일 및 DNS서버가 있습니다.

 


클라이언트/서버 기능

 

서버기능

수동적 서비스 제공자(Passive, Slave), 클라이언트 요청을 처리하기 위해 대기, 요정(request)을 처리한 후, 결과를 클라이언트에 회신(reply)

 

클라이언트 기능

능동적, 의뢰자(Active, Master), 서버가 수행할 수 있는 요청을 전송함, 회신(응답)이 반환될 때까지 기다림.

 


N 계층 구조

2계층 구조 (2-tier architecture)

클라이언트와 서버 등 2개의 노드(node)로 구성된 구조(architecture)를 2계층 구조라고 부릅니다. 2계층 구조에서는 서버는 단지 데이터를 저장하는 역할만을 수행하며, 클라이언트가 모든 처리(processing)을 담당합니다.

 

2계층의 한계

클라이언트(PC 등)의 상대적인 성능이 향상되면서 다양한 처리를 클라이언트로 이전할 수 있으나, 데이터의 무결성(integrity)을 유지(관리)하기가 어렵습니다. 비즈니스 로직(business logic)을 클라이언트에 두기 어려운 경우도 있습니다. 예를 들어, 사용자 간의 메시지를 주고 받아야 할 경우 서버는 데이터를 저장하는 역할만 수행하기 때문에 클라이언트 간에 직접 통신을 해야합니다.

 

N계층 구조( N-tier architecture)

2계층 구조의 한계를 극복하기 위해, 3개 이상의 노드를 네트워크 상에서 구성하는 방식이 N계층 구조입니다. N 계층은 3개, 4개 혹은 더 많은 노드로 구성됩니다. N계층 구조가 2계층 구조를 완전히 대체하는 것은 아닙니다. FTP, Telnet 서비스 등은 여전히 2계층 구조로 동작합니다.

 


3계층 구조

 

3계층 어플리케이션

정보, 중간, 클라이언트 등 3개의 계층으로 구성됩니다.

 

정보 계층(Information tier)

데이터 계층(data tier) 혹은 최하위 계층(bottom tier)이라 부릅니다. 어플리케이션을 위한 데이터를 관리합니다. 일반적으로 관계형 데이터 베이스(Relational Database)를 이용해 데이터를 저장합니다.

 

중간계층(Middle tier)

어플리케이션 계층(application tier)으로 부르기도 합니다. 비즈니스 로직(business logic) 및 프리젠테이션 로직(presentation logic)을 구현합니다. 어플리케이션 클라이언트와 데이터 간의 상호작용을 제어합니다. 정보 계층의 데이터와 어플리케이션 클라이언트 간의 매개자(intermediary)역할을 수행합니다.

 

클라이언트 계층(Client tier)

최상위(top) 계층으로 부르기도합니다. 어플리케이션의 사용자 인터페이스 역할을 수행합니다. 중간 계층과 상호작용을 통해 요청을 전달하고 정보 계층에서 데이터를 조회합니다.

 


 

 

 

반응형