다음을 통해 공유


구성 요소 개념이 없는 COM+ 서비스

COM+ 1.5에서는 구성 요소 없이 COM+ 서비스를 사용할 수 있는 기능이 도입되었습니다. 이렇게 하면 구성 요소를 사용하지 않는 환경에서 COM+ 서비스를 사용할 때 성능 비용이 크게 줄어들고 이러한 서비스를 사용하는 복잡성도 제거됩니다. IIS 6.0부터 IIS 및 ASP는 구성 요소 없이 COM+ 서비스를 사용하는 것을 활용합니다.

COM+ 서비스는 원래 COM+ 구성 요소와 함께 사용하도록 설계되었습니다. 그러나 일부 프로그래밍 환경은 구성 요소 기반이 아니므로 COM+ 서비스를 사용하려면 상당한 오버헤드가 필요합니다. 예를 들어 COM+ 1.5가 릴리스되기 전에 IIS는 ASP 페이지에서 COM+ 트랜잭션 서비스를 사용할 수 있도록 shim 개체만 만들어야 했습니다. 이러한 개체를 만들 때 발생하는 성능 비용에는 구성 데이터를 IIS 메타베이스와 COM+ 등록 데이터베이스(RegDB)에 저장하는 것뿐만 아니라 구성 데이터를 효과적으로 관리하는 데 필요한 IIS 메타베이스와 COM+ RegDB 간의 추가 통신이 포함됩니다.

IIS에서 동기화와 같은 두 번째 COM+ 서비스를 사용해야 하는 경우 완전히 다른 shim 개체를 만들어야 했습니다. COM+ 트랜잭션과 동기화를 모두 사용하려면 세 번째 유형의 shim 개체가 필요합니다. 이 방법의 복잡성은 O(n2)로 확장되어 새 서비스의 구현이 매우 어려워집니다.

구성 요소가 없는 COM+ 서비스가 도입되면 필요한 서비스는 클래스에서 인스턴스화된 개체를 통해 구성됩니다. CServiceConfig 클래스는 여러 서비스를 동시에 지원할 수 있는 유연성과 향후 새 서비스를 지원할 수 있는 기능을 제공하면서 다양한 서비스를 구성하는 데 필요한 인터페이스를 구현합니다.

그런 다음 구성된 서비스는 두 가지 메커니즘을 통해 사용할 수 있습니다. CoCreateActivity 함수를 통해 사용할 수 있습니다. 이 함수는 함수에서 만든 작업을 통해 제출된 모든 작업에 서비스를 적용하고 CoEnterServiceDomainCoLeaveServiceDomain 함수에 대한 호출 간에 서비스를 사용하는 작업을 포함하는 데 사용할 수도 있습니다. 이러한 함수 중 어느 것도 COM+ 서비스를 사용할 수 있도록 새 구성 요소를 만들 필요가 없습니다. CServiceConfig 개체만 필요합니다.

구성 요소 작업이 없는 COM+ 서비스