IIOP (Internet Inter-ORB Protocol)

IIOP (Internet Inter-ORB Protocol) é um protocolo que torna possível a comunicação através da Internet de programas distribuídos escritos em diferentes linguagens de programação. O IIOP é uma parte crítica de um padrão estratégico da indústria, a Common Object Request Broker Architecture (CORBA). Usando o IIOP do CORBA e protocolos relacionados, uma empresa pode escrever programas que serão capazes de se comunicar com seus próprios programas ou com os programas existentes ou futuros da outra empresa onde quer que estejam localizados e sem ter que entender nada sobre o programa além de seu serviço e um nome. CORBA e IIOP estão competindo com uma estratégia similar da Microsoft chamada Distributed Component Object Model (DCOM). (Microsoft e o Grupo de Gerenciamento de Objetos, patrocinadores do CORBA, concordaram em desenvolver pontes de software entre os dois modelos para que programas desenhados para CORBA possam se comunicar com programas desenhados para DCOM.)

CORBA e IIOP assumem o modelo de computação cliente/servidor no qual um programa cliente sempre faz solicitações e um programa servidor espera para receber solicitações dos clientes. Ao escrever um programa, você usa uma interface chamada General Inter-ORB Protocol (GIOP). O GIOP é implementado em mapeamentos especializados para uma ou mais camadas de transporte de rede. Sem dúvida, o mapeamento especializado mais importante do GIOP é o IIOP, que passa solicitações ou recebe respostas através da camada de transporte da Internet usando o Protocolo de Controle de Transmissão (TCP). Outras possíveis camadas de transporte incluem a Arquitetura de Rede de Sistemas da IBM (SNA) e o IPX.

Para que um cliente faça um pedido de um programa em algum lugar de uma rede, ele deve ter um endereço para o programa. Este endereço é conhecido como o Interoperable Object Reference (IOR). Usando o IIOP, parte do endereço é baseado no número da porta do servidor e no endereço IP. No computador do cliente, uma tabela pode ser criada para mapear IORs para nomes de proxy que são mais fáceis de usar. O GIOP permite que o programa faça uma conexão com um IOR e depois envie pedidos para ele (e permite que os servidores enviem respostas). Uma Representação Comum de Dados (CDR) fornece uma forma de codificar e decodificar dados para que possam ser trocados de uma forma padrão.

Um protocolo um pouco similar, o Remote Method Invocation (RMI), foi desenvolvido pela Sun Microsystems para servir sua estrutura multi-plataforma para a linguagem de programação Java. A Sun forneceu uma forma para que a programação que usa o RMI possa ser mapeada para IIOP.