Share via


확장성을 위한 디자인

확장성은 애플리케이션이 리소스 사용량이 선형으로 증가하여 추가 부하를 처리할 수 있는 기능입니다. 확장성은 모든 분산 애플리케이션에서 중요합니다. 확장성에 대한 제한은 일반적으로 리소스 사용과 애플리케이션 디자인에서 실수로 생성된 종속성을 중심으로 합니다.

다음 목록에서는 확장성 문제를 설명하고 솔루션을 제안합니다.

  • 컴퓨터 내 리소스. 사용 가능한 스레드 및 메모리 수는 확장성을 제한할 수 있습니다. 애플리케이션에 가장 효율적인 스레딩 모델을 사용합니다.

  • 컴퓨터 간 리소스. 애플리케이션 워크로드를 배포하는 데 사용할 수 있는 컴퓨터의 수는 확장성에 영향을 줄 수 있습니다.

  • 클라이언트 선호도. 애플리케이션에서 실수로 선호도의 두 가지 상황을 만들 수 있습니다. 즉, 애플리케이션이 클라이언트가 요청과 함께 보내는 데이터의 상태에 따라 달라지는 상황입니다. 애플리케이션에 클라이언트별 상태가 필요한 상황입니다. 클라이언트와 애플리케이션 간의 상태 종속성을 설계하지 않습니다.

  • 서버 선호도. COM+ 애플리케이션은 서버 선호도를 만들어 확장성을 제한할 수 있습니다. 여기서 애플리케이션은 정보를 위해 특정 서버 컴퓨터로 이동해야 합니다. 이 선호도는 많은 데이터베이스 지향 애플리케이션에서 발생할 수 있습니다. 서버 선호도 병목 현상을 방지하는 가장 좋은 방법은 데이터를 다양한 서버 컴퓨터로 분할하는 것입니다. 예를 들어 가장 자주 액세스하는 키로 고객 데이터를 서버 간에 나누거나 고객의 성을 사용하여 여러 서버에 걸쳐 고객 데이터베이스를 확장합니다(예: Server1: a-f, Server2: g-m, Server3: n-z).

    참고

    데이터 분할은 프로그래밍 논리에 많은 복잡성을 더할 수 있으며 확장성을 높이기 위한 다른 옵션을 시도한 후에만 수행해야 합니다.

     

  • 개체 수명. 확장성을 위해 COM+ 애플리케이션은 개체의 수명에 세심한 주의를 기울여야 합니다. 개체가 있는 동안에는 리소스가 소비됩니다. 고가의 리소스를 보유하는 개체의 수명을 신중하게 관리하는 것이 중요합니다. 고가의 리소스를 사용하지 않는 수요가 많은 개체의 경우 COM+ 개체 풀링으로 인해 풀링 값을 관리적으로 조정하여 하드웨어를 활용할 수 있으므로 확장성이 향상될 수 있습니다. 연결을 제어하는 자연스러운 방법입니다. 예를 들어 20개의 SQL 연결에 대한 라이선스가 있는 경우 최대 풀 설정을 사용하여 이를 지시할 수 있습니다.

  • 애플리케이션 구성 요소 그룹화. COM+ 애플리케이션의 확장성을 향상하려면 중간 계층 구성 요소를 시간 종속 서비스와 시간 독립적 서비스로 나누어야 합니다. 이렇게 하면 Microsoft Windows 서비스를 사용하여 필요한 구성 요소 작업을 구현하는 데 집중할 수 있습니다. 예를 들어 메시지 큐 또는 COM+ 큐에 대기된 구성 요소 와 같은 서비스를 사용하여 시간 독립적 비동기 작업을 처리하도록 선택할 수 있습니다.

가용성을 위한 디자인

배포를 위한 디자인

보안을 위한 디자인