단점
In-Process 서버는 로컬 서버의 편집 기능을 사용하여 개체 처리기의 속도와 크기 이점을 제공합니다. 그렇다면 OLE 애플리케이션을 In Process 서버가 아닌 로컬 서버로 구현하도록 선택한 이유는 무엇일까요? 몇 가지 이유가 있습니다.
- 보안. 로컬 서버에만 클라이언트의 주소 공간과 격리된 주소 공간이 있습니다. In-Process 서버는 클라이언트의 주소 공간 및 프로세스 컨텍스트를 공유하므로 오류 또는 악의적인 프로그래밍에 직면하면 덜 강력할 수 있습니다.
- Granularity. 로컬 서버는 여러 클라이언트에서 개체의 여러 인스턴스를 호스트할 수 있으며, 프로세스 내 서버로 구현될 경우 어렵거나 불가능한 방식으로 여러 클라이언트의 개체 간에 서버 상태를 공유할 수 있습니다. 이는 단순히 각 클라이언트에 로드된 DLL입니다.
- 호환성. In-Process 서버를 구현하도록 선택하는 경우 이러한 서버를 지원하지 않는 OLE 1과의 호환성을 포기합니다. 이것은 많은 개발자에게 고려 사항이 아니지만, 그렇다면 중요한 문제입니다.
- 링크를 지원하지 않습니다. In-Process 서버는 링크 원본으로 사용할 수 없습니다. DLL은 단독으로 실행할 수 없으므로 연결할 파일 개체를 만들 수 없습니다.
이러한 단점에도 불구하고 In Process 서버는 다른 모든 요구 사항에 맞는 경우 속도와 크기에 적합한 선택이 될 수 있습니다.
관련 항목