Desvantagens
Os servidores em processo fornecem a vantagem de velocidade e tamanho de um manipulador de objetos com a capacidade de edição de um servidor local. Então, por que você escolheria implementar seu aplicativo OLE como um servidor local em vez de um servidor em processo? Existem várias razões:
- Segurança. Somente um servidor local tem seu espaço de endereço isolado do do cliente. Um servidor em processo compartilha o espaço de endereço e o contexto do processo do cliente e, portanto, pode ser menos robusto diante de falhas ou programação maliciosa.
- Granularity. Um servidor local pode hospedar várias instâncias de seu objeto em muitos clientes diferentes, compartilhando o estado do servidor entre objetos em vários clientes de maneiras que seriam difíceis ou impossíveis se implementadas como um servidor em processo, que é simplesmente uma DLL carregada em cada cliente.
- Compatibilidade. Se você optar por implementar um servidor em processo, você abre mão da compatibilidade com OLE 1, que não oferece suporte a esses servidores. Isso não será uma consideração para muitos desenvolvedores, mas se for, então é de preocupação crítica.
- Incapacidade de suportar links. Um servidor em processo não pode servir como uma fonte de link. Como uma DLL não pode ser executada sozinha, ela não pode criar um objeto de arquivo ao qual ser vinculado.
Apesar dessas desvantagens, um servidor em processo pode ser uma excelente escolha por sua velocidade e tamanho — se ele atender a todos os seus outros requisitos.
Tópicos relacionados