2008년 4월 23일 수요일

Multi-tier

l         TIER

일반적으로 tier 일련의 비슷한 객체가 나열된 상태에서, 또는 계층을 의미한다. 컴퓨터 프로그래밍에서, 프로그램의 일부가 여러 계층에 나뉘어 존재할 있으며, 계층 또한 네트웍 상의 서로 다른 컴퓨터에 위치할 있다. 바로 이러한 프로그램을 Multi-tier Programming이라 한다.

Multi-tier Program 보통 '클라이언트', '애플리케이션서버', '데이터베이스서버' 3-tier 이상으로 활용되어 진다. 이렇게 만들어지는 다계층 프로그램은 비즈니스 로직의 대부분을 Middle-tier 되는 애플리케이션 서버 측에 부여함으로써 사용자측 프로그램을 가볍게 만들 있으며 서비스 규모에 따라서 여러대의 서버에 애플리케이션의 작업을 분산시켜 로드 밸런싱으로 인한 성능향상및 서버 장애에 대한 백업 시스템의 구축이 가능하다

 

l         2-tier

자바애플릿이나 어플리케이션이 JDBC를 이용해서 DBMS의 데이타베이스에 직접접근

 가장 대표적인 클라이언트/서버 구조

 프로그래밍이 간단하다는 장점

 보안, 로드 밸런싱, 확장성 (오브젝트 재사용) 등의 문제점

 2-tier 디자인이 적합한 경우

1. 애플리케이션이 하나의 데이타베이스만을 사용

2. 데이타베이스 엔진이 하나의 CPU에서 동작

3. 데이타베이스가 계속 거의 같은 크기로 유지

4. 사용자 기반이 같은 크기로 유지

5. 요구가 확정되어 변화 가능성이 거의 혹은 아예 없는 경우

6. 애플리케이션을 종료한 후에도 최소한의 지속성을 요구

 

사용자 삽입 이미지

l         3-tier

  자바 어플리케이션이나 애플릿이 DBMS를 직접 접근하는 것이 아니라 중간에 있는 미들웨어(미들티어)를 거쳐 데이타베이스에 접근하는 것

 데이타베이스와의 연동 부분을 분리시킴으로써 Presentation layer가 데이터 저장 방법에 신경을 쓰지 않아도 됨.

 클라이언트는 단지 미들티어를 참조

 미들티어 서버는 DBMS와 같이 특정한 작업만 수행하는 최종 서버와 통신을 하여 결과를 얻은 후 클라이언트에게 결과를 전달

 2-tier 모델보다 안정적이고 유연하며 보안이 강화

1.  tier-1 : 사용자 인터페이스를 담당하는 클라이언트

2.  tier-2 : HTTP나 코바를 지원하는 응용처리 서버

3.  tier-3 : DBMS와 같은 사용자가 최종적으로 원하는 기능을 수행할 서버

 

사용자 삽입 이미지

l         3-tier application : 3계층 애플리케이션

 

3 계층 애플리케이션이란 3개의 주요 부분으로 구성되어 있는 응용프로그램으로서, 각각은 네트웍 상의 서로 다른 장소에 분산되어 있다. 여기서 3개의 주요부분이란 다음과 같다

ü         워크스테이션, 또는 외양 인터페이스

ü         비즈니스 로직

ü         데이터베이스와 그것을 관리하기 위한 관련 프로그램

 

전형적인 3 계층 애플리케이션에서, 프로그램 사용자의 워크스테이션은 GUI 제공하는 프로그램과, 특정 프로그램에 맞는 입력 양식이나 인터랙티브 윈도우 등을 가지고 있다 (워크스테이션 사용자를 위한 일부 독특한 데이터는 사용자의 하드디스크에도 함께 보관된다).

 

비즈니스 로직은 근거리통신망 서버 또는 다른 공유된 컴퓨터 상에 위치한다. 비즈니스 로직은 워크스테이션으로부터의 클라이언트 요청에 대해 마치 서버처럼 행동한다. 그것은 차례로 어떤 데이터가 필요한지를 결정하고, 메인프레임 컴퓨터 상에 위치하고 있을 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동한다.

 

번째 계층은 데이터베이스와 그것에 액세스해서 읽거나 쓰는 것을 관리하는 프로그램을 포함한다. 애플리케이션의 조직은 이것보다 더욱 복잡해질 있지만, 3 계층 관점은 대규모 프로그램에서 일부분에 관해 생각하기에 편리한 방법이다.

 

3 계층 애플리케이션은 클라이언트/서버 컴퓨팅 모델을 사용한다. 3 계층에서, 부분은 각기 다른 팀의 프로그래머들에 의해 각기 다른 언어를 사용하여 동시에 개발될 있다. 어떤 계층의 프로그램은 다른 계층에 영향을 주지 않고도 변경되거나 위치가 달라질 있기 때문에, 3 계층 모델은 새로운 요구나 기회가 생길 때마다 애플리케이션을 지속적으로 진화시켜야하는 기업이나 소프트웨어 패키지 개발자들이 이에 쉽게 대처할 있게 해준다. 기존의 애플리케이션들은 영구적으로 또는 일시적으로 계속 유지될 있으며, 하나의 컴포넌트로서 새로운 계층 내에 캡슐화될 수도 있다.

 

3 계층 애플리케이션 아키텍처는 분산 객체지향 프로그래밍과 사상이 일치한다.


사용자 삽입 이미지


Web Server , Middle Ware , Data Base 
Þ  3tier

 

l         웹서버의 :  IIS,  Apache,  Enterprise Server

 

l         Middle Ware

 

미들웨어는 서로다른 커뮤니케이션 프로토콜, 시스템 아키텍처, 운영체제, 데이타베이스와 다양한 애플리케이션 서비스를 지원하기 위해서 네트웍을 따라 하드웨어에 독립적으로 연결하여 주는 소프트웨어를 의미한다. 클라이언트/서버를 물리적으로 연결하여 주는것이 아닌 애플리케이션 내에서 논리적으로 연결을 의미한다.

 

미들웨어의 목표는 "Any-to-Any Operability"로서 파일 교환 공유, 트랜잭션, RPC(Remote Procedure Call)등의 다양한 방법을 사용하여 애플리케이션 모듈간 호환성을 가지고 운영되도록 도와준다. 결론적으로 미들웨어는 애플리케이션 프로그램이 어떤 정보시스템 환경에서도 작동할 있도록 도와준다.

미들웨어 배경 S/W 전략 수립시 미들웨어 제품의 시스템 적용범위를 이해하는것은 중요하다. 적용범위는 어떻게 변화하고 있는가. 미들웨어의 초기 제품은 커뮤니케니션 소프트웨어이다. 대표적인 제품으로는 인터솔브의 시큐링크와 Software AG Entire Broker등이 있으며 이제품들은 이기종간의 통신을 위한 제품이다. 과거의 커뮤니케이션 적용에서 현재는 미들웨어의 수행 환경이 애플리케이션 서비스를 포함하기 때문에 적용범위는 훨씬 넓어지고 있다. 애플리케이션 서비스는 트랜잭션을 모니터하고, SQL 최적화, 라우팅, 데이타베이스 리플리케이션등.. 다양한 기능을 지원하여야 하는데 제품의 추세가 이러한 기능들을 통합하여 지원하고 특정벤더에 의존하기보다는 벤더들이 서로 기술을 호환하는 개방형 구조로 작년부터 나가고 있다.

 

미들웨어 구성상 분류 S/W 페키지화 전략수립시 3Tier 환경에서 애플리케이션을 개발하여야 할것인가? 미들웨어를 정의 할때 2Tier, 3Tier 의한 아키택처 분류와 적용방법에 따른 분류로 구분할수 있다. 일반적으로 아키택처상 2Tier 클라이언트/서버 환경은 RDB 적합하고, 3Tier 미들웨어 환경에 적합하다. 아키택처상 분류보다는 어느부분에 적용하였느냐의 적용상 분류가 보다 적합하며 현재 미들웨어 환경은 멀티티어(Multi-Tier)환경이라는 말이 적합하며 2Tier 환경에서도 미들웨어를 구성할 있다. 예를들면 클라언트/서버 환경에서 메세지를 커뮤니케이션하는 RPC 클라이언트와 서버에 동시에 인스톨하여 사용할수 있고 이경우 시스템은 2Tier 미들웨어이다. 그러나 미들웨어의 일반적인 구성은 클라이언트와 서버 사이에 중간 서버를 두어 트래픽을 처리 할수 있도록 하였는데 중간 서버의 사용용도에 따라 3Tier 될수 있고 4Tier 될수 있다.

미들웨어 시스템에서 멀티티어로 구성할때 고려하여야 요소는 Complexity Scalability이다. 중간서버의 잘못된 불필요한 적용은 Delay Time 있지만 이의 정확한 적용은 시스템의 신뢰성과 효율성을 동시에 제공한다. 미들웨어 시스템은 3Tier 필요는 없고 시스템의 용도에 따라 다양하게 결정될수 있다. 미들웨어의 예로 Tuxido, MTS, WebSphere 등이 있다.

 

l         Data Base

   논리적으로 연관된 하나 이상의 자료의 모음으로 내용을 고도로 구조함으로써 검색과 갱신의 효율화를 꾀한 것이다. , 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 있다.

데이터베이스가 가지는 몇 가지 특성을 살펴봄으로써 그 뜻을 보다 명확히 할 수 있다. 첫째 똑같은 자료를 중복하여 저장하지 않는 통합된 자료이며, 둘째 컴퓨터가 액세스하여 처리할 수 있는 저장장치에 수록된 자료이며, 셋째 어떤 조직의 기능을 수행하는 데 없어서는 안 되며 존재 목적이 뚜렷하고 유용성 있는 운영 자료이기 때문에 임시로 필요해서 모아 놓은 데이터나 단순한 입출력 자료가 아니라는 점이며, 넷째 한 조직에서 가지는 데이터베이스는 그 조직 내의 모든 사람들이 소유하고 유지하며 이용하는 공동 자료로서 각 사용자는 같은 데이터라 할지라도 각자의 응용 목적에 따라 다르게 사용할 수 있다는 점이다. 데이터베이스의 예로.. ORACLE, MS-SQL 등이 있다.