IIOP (Internet Inter-ORB Protocol)

IIOP (Internet Inter-ORB Protocol) è un protocollo che consente a programmi distribuiti scritti in diversi linguaggi di programmazione di comunicare su Internet. IIOP è una parte fondamentale di uno standard industriale strategico, la Common Object Request Broker Architecture (CORBA). Utilizzando l'IIOP di CORBA e i relativi protocolli, un'azienda può scrivere programmi che saranno in grado di comunicare con i programmi esistenti o futuri della propria o di un'altra azienda, ovunque si trovino e senza dover comprendere nulla del programma oltre al suo servizio e un nome. CORBA e IIOP competono con una strategia simile di Microsoft chiamata DCOM (Distributed Component Object Model). (Microsoft e Object Management Group, sponsor di CORBA, hanno concordato di sviluppare ponti software tra i due modelli in modo che i programmi progettati per CORBA possano comunicare con i programmi progettati per DCOM.)

CORBA e IIOP presuppongono il modello di elaborazione client / server in cui un programma client effettua sempre richieste e un programma server attende di ricevere richieste dai client. Quando si scrive un programma, si utilizza un'interfaccia chiamata GIOP (General Inter-ORB Protocol). Il GIOP è implementato in mappature specializzate per uno o più livelli di trasporto di rete. Indubbiamente, la mappatura specializzata più importante di GIOP è IIOP, che passa richieste o riceve risposte attraverso il livello di trasporto di Internet utilizzando il protocollo TCP (Transmission Control Protocol). Altri possibili livelli di trasporto includerebbero Systems Network Architecture (SNA) di IBM e IPX di Novell.

Affinché un client faccia una richiesta di un programma da qualche parte in una rete, deve avere un indirizzo per il programma. Questo indirizzo è noto come Interoperable Object Reference (IOR). Utilizzando IIOP, parte dell'indirizzo si basa sul numero di porta del server e sull'indirizzo IP. Nel computer del client, è possibile creare una tabella per mappare gli IOR a nomi proxy più facili da usare. Il GIOP consente al programma di stabilire una connessione con uno IOR e quindi di inviargli richieste (e consente ai server di inviare risposte). Una rappresentazione comune dei dati (CDR) fornisce un modo per codificare e decodificare i dati in modo che possano essere scambiati in modo standard.

Un protocollo in qualche modo simile, il Remote Method Invocation (RMI), è stato sviluppato da Sun Microsystems per servire il suo framework multipiattaforma per il linguaggio di programmazione Java. Sun ha fornito un modo per mappare la programmazione che utilizza RMI su IIOP.