본문 바로가기
C++ 200제/코딩 IT 정보

ArcGIS 서버 오브젝트 풀링(pooling), ESRI 기술 문서(2004)

by vicddory 2017. 2. 26.

ArcGIS 서버 오브젝트 풀링(pooling), ESRI 기술 문서(2004)


ArcGIS 개념과 용어정리 (ArcGIS Server Concepts and Terminology)

ESRI 기술 문서 (ESRI Technical Paper), 2004년 9월


ArcGIS 오브젝트 풀링 (pooling)

서버 오브젝트는 풀링되거나 풀링되지 않도록 설정할 수 있다. 풀링되지 않은 서버 오브젝트는 각 응용프로그램 소요에 따라 새롭게 생성되고 응용프로그램 때문에 해제되어 서버에 넘겨질 때 소멸한다. 오브젝트 생성에는 오브젝트를 생성하는 것과 MapServer 서버 오브젝트에 결부된 맵 문서 같은 초기화 데이터 올리기가 포함된다.


풀링되지 않은 서버 오브젝트를 사용하는 서버 응용프로그램 사용자에게는 해당 응용프로그램 전용 오브젝트 인스턴스가 필요하다. 

임의의 시간에 시스템을 사용하는 사용자 숫자는 실행 중인 ArcGIS 서버 오브젝트 인스턴스 숫자와 일대일로 대응되므로, GIS 서버가 감당할 수 있는 동시 사용자 숫자는 주어진 시간에 지탱할 수 있는 서버 오브젝트 숫자와 일치하게 된다. 서버 오브젝트를 풀링되지 않은 형태로 설정할 때, 최대 인스턴스 숫자는 운환경 설정 등록정보에 지정함으로써 제한할 수 있다.


일단 최대 인스턴스 숫자에 도달하게 되면 (즉, 해당 서버 오브젝트의 최대 동시 사용자 수), 후속 사용자는 사용자 수가 최대치 이하로 줄어들 때까지 대기열에서 기다리게 된다.

 

ArcGIS Server에서는 서버 오브젝트 인스턴스를 풀링하여 요청이 발생할 때마다 다수의 응용프로그램 세션 간에 공유가 이루어진다. 이를 통하여 특정 서버 오브젝트에 할당된 소량의 자원으로도 더 많은 사용자를 지원할 수 있는 역량을 갖게 된다.


ArcGIS 오브젝트 풀링 esri[아크GIS Server Object]


임의의 서버 오 브젝트가 풀링되지 않도록 설정되려면, 인스턴스의 최소 및 최대 숫자가 서버 오브젝트 운환경 등록정보에 지정되어야 한다.


서버 오브젝트가 시작되면, GIS 서버는 서버 오브젝트의 최소 숫자를 미리 생성하고 초기화한다. 응용프로그램으로부터 서버 오브젝트 관리자에게로 해당 서버 오브젝트 인스턴스에 대한 요청이 오게 되면, 풀링되어 이미 로딩된 서버 오브젝트 가운데 하나를 참조하게 된다.

 

풀링되는 서버 오브젝트의 이점에는 다음의 사항들이 있다. 

 

- 잠재적 비용 소요가 많은 서버 오브젝트 초기화 과정을 각 클라이언트를 위해 실제로 오브젝트가 수행하는 작업으로부터 분리하게 됨 

 

- 모든 클라이언트에 걸쳐 데이터베이스 접속과 같은 비용 소요가 많은 자원 초기화 및 확보 과정을 공유 

 

- 클라이언트로부터 요청사항이 접수되기 전에 서버 오브젝트 관리자 시작과 함께 오 브젝트를 미리 생성 

 

- 가용 하드웨어 자원을 최대로 활용하기 위해 운관리적으로 풀링 운환경을 설정

풀링된 ArcGIS 서버 오브젝트를 사용하는 응용프로그램은 요청(예, 지도 그리기, 피쳐 확인, 주소 지오코딩)이 존속하는 동안 해당 오브젝트에 대한 참조를 유지하다가, 오브젝트를 서버에 반환하게 된다.


오브젝트가 서버에 반환되면, 이는 다른 사용자의 요청으로서도 사용할 수 있도록 된다. 이러한 응용프로그램의 사용자는 응용프로그램과 상호작용을 진행함에 따라 풀링되어 있는 서로 다른 수많은 서버 오브젝트 인스턴스와 작업하게 되는 셈이며, 이 모든 것이 사용자에게는 투명하게 이루어진다.


풀링된 서버 오브젝트의 최소 숫자를 초과하는 동시 요청이 발생한다면, 최대 인스턴스 숫자에 도달할 때까지 새로운 서버 오 브젝트 인스턴스가 생성되며, 최대 인스턴스 지점에서는 풀링된 오브젝트가 해제될 때까지 사용자는 대기열에 기다리게 된다.


GIS 서버 풀링[아크GIS Server Object]

(GIS 서버에서 실행되는 풀링되지 않은 서버 오브젝트는 해당 서버 오브젝트를 사용하고 있는 응용프로그램 사용자 숫자와 일대일로 대응)


서버 오브젝트를 풀링함으로써 GIS 서버는 더 많은 사용자를 감당할 수 있게 된다. 응용 프로그램은 서버 오브젝트의 풀을 공유함으로써 시스템의 동시 사용자 숫자는 GIS 서버가 동시에 지원할 수 있는 서버 오브젝트 숫자보다는 더 많아지게 된다.


풀링되지 않은 것과 풀링된 ArcGIS 서버 오브젝트는 서로 다른 유형의 서버 응용프로그램을 지원하게 된다.


풀링된 서버 오브젝트에 대해서 응용프로그램은 상태-비유지 형태로 사용될 것으로 여겨지며, 사용 중에는 서버 오브젝트에 변경을 가하지 않음을 의미하는바, 요청이 처리되면 때를 맞추어 해제되고 서버 오브젝트 풀로 반환된다.

 

예를 들어, MapServer 지도의 일정 범위를 그리고자 하는 상태-비유지 매핑 응용프로그램은 풀로부터 MapServer 서버 오브젝트 인스턴스의 참조를 받아, 지도를 그리기 위해 MapServer에 조작방법을 실행하고, 그런 다음 이를 해제하여 풀로 반환하게 된다.


ArcGIS 서버 오브젝트 풀링[아크GIS Server Object]


이 다음에도 응용프로그램이 지도를 그리려고 하면, 이 과정이 반복된다. 매번 지도를 그릴 때 풀링된 서버 오브젝트에서 다른 인스턴스가 사용될 수도 있다; 그러므로 각 풀링된 오브 젝트는 동일한 것을 반한다 (같은 레이어 집합, 각 레이어 마다 같은 렌더링 방법 등).


만일 풀링된 ArcGIS 오브젝트 가운데 하나라도 상태가 변경되면 (예, 새로운 레이어가 추가되거나 레이어 렌더링 방법이 바뀌게 되면), 지도를 주변으로 이동하거나 확대하면서 사용자는 일관되지 않은 결과를 보게 될 것이다.

 

풀링되지 않은 서버 오브젝트는 이를 사용하는 각 응용프로그램 세션마다 생성된다. 서버 오브젝트를 초기화하는 데에는 시간이 소요되기 때문에, 풀링되지 않은 오브젝트를 사용하는 응용프로그램은 일반적으로 해당 세션이 존속하는 동안 서버 오브젝트에 대한 참조를 유지하게 된다.


서버 오브젝트가 서버로 반환되면 소멸하기 때문에, 응용프로그램에서는 서버 오브젝트 상태에 대한 어떠한 변경을 가하여도 무방하다.  


이는 http://www.esri.com/library/whitepapers/pdfs/sysdesig.pdf 에서 제공한다.


ArcGIS 서버 오브젝트 풀링(pooling), ESRI 기술 문서(2004)

댓글