추가 기능 파이프라인 시나리오
추가 기능 파이프라인 개체 모델을 사용하면 호스트 응용 프로그램과 추가 기능을 다음과 같은 방식으로 융통성 있게 상호 운용할 수 있습니다.
이전 버전과의 호환성. 최신 버전의 호스트 또는 추가 기능이 이전 버전과 함께 작동할 수 있습니다.
격리성 하나 이상의 추가 기능을 호스트 프로세스 또는 격리된 프로세스의 응용 프로그램 도메인으로 이동할 수 있습니다.
공유. 추가 기능을 여러 통신 파이프라인에 사용할 수 있습니다.
다음 그림에서는 간단한 통신 파이프라인과 해당 세그먼트를 보여 줍니다.
표준 통신 파이프라인
이전 버전과의 호환성
이전 버전과의 호환성을 보여 주는 시나리오에는 두 가지가 있습니다.
새 호스트와 이전 추가 기능
다음 그림에서는 새 호스트를 이전 추가 기능과 함께 사용하는 방법을 보여 줍니다.
새 호스트와 이전 추가 기능이 포함된 통신 파이프라인
이 이전 버전과의 호환성 시나리오에서는 추가 기능측 어댑터(추가 기능측 어댑터 v1->v2)가 형식을 이전 추가 기능에서 인식할 수 있는 형식으로 변환하기 때문에 새 호스트(호스트 v2)가 이전 추가 기능(추가 기능 v1)과 함께 작동할 수 있습니다.
새 추가 기능(추가 기능 v2)에는 새 호스트와 통신하기 위한 고유한 뷰 및 어댑터 세그먼트가 있습니다.
이전 호스트와 새 추가 기능
다음 그림에서는 이전 호스트를 새 추가 기능과 함께 사용하는 방법을 보여 줍니다.
이전 호스트와 새 추가 기능이 포함된 통신 파이프라인
이 이전 버전과의 호환성 시나리오에서는 추가 기능측 어댑터(추가 기능측 어댑터 v2->v1)가 형식을 이전 호스트에서 인식할 수 있는 형식으로 변환하기 때문에 새 추가 기능(추가 기능 v2)이 이전 호스트(호스트 v1)와 함께 작동할 수 있습니다.
다양한 격리 수준
Activate 메서드의 적절한 오버로드를 사용하면 새 프로세스나 응용 프로그램 도메인에서 추가 기능을 활성화할 수 있습니다. 이러한 격리가 필요한 이유는 다음과 같습니다.
호스트 응용 프로그램이 변경되어 이전 추가 기능에서 새로운 해당 종속성을 수용할 수 없는 상황을 처리하기 위해. 예를 들어 이러한 상황은 호스트 응용 프로그램이 새로운 버전의 .NET Framework로 업그레이드되는 경우에 발생할 수 있습니다.
추가 기능이 고유한 프로세스에서 실행되도록 하여 안정성을 확보하기 위해
추가 기능을 위한 샌드박스를 만드는 경우. 예를 들어 호스트 응용 프로그램과 추가 기능은 AddInSecurityLevel 열거형에 의해 지정되는 신뢰 수준이 서로 다릅니다.
다음 그림에서는 두 개의 추가 기능(하나는 격리된 프로세스에 있음)이 포함된 통신 파이프라인을 보여 줍니다. 그림에서 OOP는 격리된 프로세스를 나타냅니다.
격리된 추가 기능이 포함된 통신 파이프라인
이 시나리오에서 파이프라인 개발자는 서로 다른 두 버전의 계약과 어댑터를 가지고 있습니다. 하나는 응용 프로그램 도메인 간 통신을 위해 최적화되어 있고 다른 하나는 프로세스 간 통신을 위해 최적화되어 있습니다. 추가 기능과 호스트 모두 계약 및 격리 수준에 관계없이 동일한 뷰를 사용하기 때문에 차이점을 인식할 필요가 없습니다.
공유 추가 기능
추가 기능이 호스트와 호환되는 경우 해당 추가 기능을 여러 호스트와 함께 사용할 수 있습니다. 예를 들어 공유 추가 기능을 사용하여 호스트 웹 응용 프로그램을 위한 인터넷 검색 기능을 제공하는 도구 모음을 구현할 수 있습니다. 또 다른 예로는 전자 메일 서비스 또는 전자 메일 클라이언트를 위한 스팸 필터 및 바이러스 보호 기능을 제공하는 공유 추가 기능을 들 수 있습니다.
추가 기능이 새 호스트와 함께 작동하도록 하려면 추가 기능 뷰에서 호스트의 계약으로 변환하는 새 추가 기능측 어댑터를 만들어야 합니다.
다음 그림에서는 추가 기능(추가 기능 A)을 두 개의 호스트 응용 프로그램(호스트 A 및 호스트 B)에서 공유하는 방법을 보여 줍니다.
공유 추가 기능이 포함된 통신 파이프라인