COM+ 디자인 가정 및 원칙

Microsoft 분산 프로그래밍 모델은 MSMQ, IIS, DCOM 및 COM+를 비롯한 여러 기술로 구성됩니다. 이러한 모든 서비스는 분산 애플리케이션에서 사용하도록 설계되었습니다.

COM+는 분산 애플리케이션을 더 쉽게 만들 수 있도록 개발되었습니다. 전체 아키텍처는 일련의 가정 및 원칙을 기반으로 합니다.

가정

가정은 다음과 같습니다.

  • COM+ 애플리케이션은 여러 서버에서 여러 사용자를 지원합니다. 즉, 분산 애플리케이션을 빌드하고 이러한 여러 사용자가 코드가 실행되는 다른 호스트 컴퓨터에 있을 것입니다. 사용자는 인터넷을 통해 또는 개인 네트워크를 통해 코드에 액세스하려고 합니다. 사용자 인터페이스는 브라우저 또는 사용자 지정 애플리케이션(예: Microsoft Visual Basic 또는 MFC로 작성된 양식 기반 애플리케이션)을 통해 제공됩니다. 해당 사용자 인터페이스는 클라이언트 컴퓨터에 있습니다.
  • COM+ 애플리케이션을 확장성 있게 만들 수 있으며 여러 서버 컴퓨터에 애플리케이션을 배포하여 더 큰 가용성과 안정성을 제공할 수 있습니다. 이렇게 하면 애플리케이션 워크로드의 균형을 맞추고 Windows 클러스터링을 사용하여 내결함성을 제공할 수 있습니다.
  • 문제가 발생하면 트랜잭션을 사용하는 경우 COM+ 애플리케이션에서 데이터베이스에 저장된 지속형 데이터의 상태가 유지됩니다. 애플리케이션 상태는 애플리케이션 오류, 시스템 충돌 또는 네트워크 오류와 같이 발생할 수 있는 사고에서 살아남아야 합니다.

원칙

이러한 세 가지 가정 외에도 다음 원칙은 COM+ 프로그래밍 모델에 적용됩니다.

  • 애플리케이션 논리는 클라이언트 컴퓨터가 아닌 서버 컴퓨터에 상주합니다. 이 작업을 수행하는 세 가지 주요 이유가 있습니다.
    • 클라이언트 컴퓨터에 애플리케이션 논리를 실행하는 데 필요한 처리 능력 또는 기능이 없을 수 있습니다. 또한 서버에 애플리케이션 논리를 유지하면 배포가 간소화됩니다.
    • 서버 컴퓨터는 종종 데이터에 더 가깝고 이 데이터는 데이터베이스에 가장 자주 있습니다. 애플리케이션이 데이터베이스에 액세스하기 때문에 데이터베이스 연결 비용에 매우 민감해야 합니다. 대부분의 논리를 서버 컴퓨터에 배치하면 데이터베이스 연결 공유하고 성능이 크게 향상될 수 있습니다. 서버 컴퓨터에는 성능 이점을 통해 다시 공유할 수 있는 다른 리소스가 있습니다.
    • 애플리케이션 논리가 서버 컴퓨터에 상주하게 되면 애플리케이션을 사용하여 보안 컨텍스트를 제어할 수 있습니다. 클라이언트 컴퓨터가 아닌 서버 컴퓨터에서 실행되는 애플리케이션 구성 요소에서 해당 보안을 유지 관리하는 경우 보안을 더 많이 제어할 수 있습니다.
  • 트랜잭션이 핵심입니다. 기본적으로 트랜잭션은 COM+ 프로그래밍 모델에 스며 들어 있으므로 이를 이해하는 것이 매우 중요합니다. 트랜잭션을 사용하지 않고 COM+의 많은 서비스를 사용할 수 있지만, 트랜잭션을 사용하지 않도록 선택하는 경우 사용할 수 있는 COM+ 서비스를 최대한 활용할 수 없습니다. 트랜잭션 사용의 몇 가지 중요한 이점은 다음과 같습니다.
    • 트랜잭션은 동시성 관리 문제에 적합한 솔루션입니다. 또한 트랜잭션은 크래시로부터 보호하고 좋은 오류 복구 모델을 갖도록 도와줍니다. 또한 트랜잭션은 여러 시스템에서 작업을 관리하는 좋은 방법으로 밝혀졌습니다.
    • 대부분의 상태 정보를 보호하는 데 도움이 되는 리소스 관리자 및 데이터베이스와 함께 작동하도록 트랜잭션 기반 COM+ 애플리케이션을 디자인할 수 있습니다. 리소스 관리자가 관리하는 데이터베이스 또는 다른 스토리지 내부에 상태를 유지하면 애플리케이션이 만드는 실제 개체 내에서 많은 상태를 유지할 필요가 없습니다. 이는 순수 개체 지향 모델에서 벗어나지만 오류 복구를 사용하여 분산 애플리케이션을 만드는 데 적합합니다.
  • 애플리케이션 기능은 COM 개체로 빌드되어 다른 시스템 또는 기술과 통신하는 데 사용되는 프로토콜을 래핑합니다. 여러 기술 또는 레거시 시스템을 통합할 구성 요소를 빌드할 수 있으므로 다양한 통신 프로토콜을 사용할 계획입니다. 인터넷을 통한 클라이언트/서버 통신 또는 애플리케이션 간 통신에 HTTP를 사용합니다. 서버에서 애플리케이션 간 또는 구성 요소 간 통신에 DCOM을 사용합니다.

COM+ 애플리케이션 디자인에 대한 기본 지침

UML을 사용하여 COM+ 애플리케이션 디자인

COM+를 사용하기 위한 일반 디자인 팁

COM+ 비즈니스 논리 계층과의 상호 작용 최적화

분산 애플리케이션을 빌드하기 위한 기타 Microsoft 도구