Doors(7) é uma camada de interface rápida para acesso a RPC (Remote Procedure Call(8) ), com as seguintes características:
- API(9) para programar comunicação cliente-servidor entre processos;
- Encapsula os mecanismos de IPC convencionais na forma de chamada de procedimentos;
- Simplifica o desenvolvimento e torna as aplicações independentes dos protocolos de comunicação utilizados;
- É o método IPC mais flexível entre os existentes atualmente;
- Utiliza os outros métodos IPC para manipular comunicações cliente/servidor;
- Implementa comunicação ponto a ponto com garantia de entrega;
- Não permite enviar mensagens em broadcast;
- Independe do protocolo de transporte utilizado;
Observação: Os RPCs são suportadas pela maioria dos sistemas operacionais, no entanto, os mecanismos de RPC não são necessariamente compatíveis entre si.
O padrão de RPCs mais difundido foi proposto pela OSF (Open Software Foundation) para redes heterogêneas.
Os objetivos do padrão RPC OSF são:
- Permitir que máquinas com arquiteturas diferentes se comuniquem sem os problemas usuais como diferentes tamanhos de palavras;
- Permitir o uso da maioria dos tipos C (int, float, pointers, etc.);
- Suportar múltiplos protocolos de rede;
- Esconder (encapsular) ao máximo as particularidades dos protocolos de rede.
- Oferecer ao programador a flexibilidade para determinar a quantidade de controle que será exercido sobre a conexão de rede (compromisso entre conveniência e eficiência).
A API das Doors foi criada para o Solaris 2.5.1 e disponibilizam um meio para que um determinado processo execute uma chamada de função em um processo no mesmo sistema. Utilizando essa API um processo pode se tornar um servidor e exportar determinadas funções que facilitarão a criação de novos programas.. Para que um processo faça uso dessa funcionalidade ele só precisa especificar o descritor da função exportada.
7. Doors: do inglês: portas.
8. Remote Procedure Call: do Inglês chamada de procedimento remoto.
9. API: do inglês,Application Program Interface, termo usado para a referência as funções que podem ser utilizadas para a criação de um programa a partir das funcionalidades disponíveis em outro programa.