top of page

Enterprise Systems Integration note

  • Writer: Mark Skilton
    Mark Skilton
  • Dec 8, 2005
  • 3 min read

IIOP (Internet Inter-ORB Protocol) is a protocol that makes it possible for distributed programs written in different programming languages to communicate over the Internet. IIOP is a critical part of a strategic industry standard, the Common Object Request Broker Architecture (CORBA). Using CORBA's IIOP and related protocols, a company can write programs that will be able to communicate with their own or other company's existing or future programs wherever they are located and without having to understand anything about the program other than its service and a name.

CORBA and IIOP are competing with a similar strategy from Microsoft called the Distributed Component Object Model (DCOM). (Microsoft and the Object Management Group, sponsors of CORBA, have agreed to develop software bridges between the two models so that programs designed for CORBA can communicate with programs designed for DCOM.)

CORBA and IIOP assume the client/server model of computing in which a client program always makes requests and a server program waits to receive requests from clients. When writing a program, you use an interface called the General Inter-ORB Protocol (GIOP). The GIOP is implemented in specialized mappings for one or more network transport layers. Undoubtedly, the most important specialized mapping of GIOP is IIOP, which passes requests or receives replies through the Internet's transport layer using the Transmission Control Protocol (TCP). Other possible transport layers would include IBM's Systems Network Architecture (SNA) and Novell's IPX.

For a client to make a request of a program somewhere in a network, it must have an address for the program. This address is known as the Interoperable Object Reference (IOR). Using IIOP, part of the address is based on the server's port number and IP address. In the client's computer, a table can be created to map IORs to proxy names that are easier to use. The GIOP lets the program make a connection with an IOR and then send requests to it (and lets servers send replies). A Common Data Representation (CDR) provides a way to encode and decode data so that it can be exchanged in a standard way.

A somewhat similar protocol, the Remote Method Invocation (RMI), was developed by Sun Microsystems to serve its cross-platform framework for the Java programming language. Sun has provided a way so that programming that uses the RMI can be mapped to IIOP.

Logical WSDL Contract

[if !supportLists]· [endif]Types

[if !supportLists]o [endif]What kinds of data are we working with?

[if !supportLists]o [endif]For example, what does a customer record contain?

[if !supportLists]· [endif]Message

[if !supportLists]o [endif]What kinds of Data are grouped together for processing?

[if !supportLists]o [endif]For example, what fields are acceptable search criteria?

[if !supportLists]· [endif]PortType

[if !supportLists]o [endif]What operations are related and what are their interfaces?

[if !supportLists]o [endif]For example, name search and customer add are both available on the customer service interface. Search is request/reply, accepting search criteria, and returning customer records that match that search criteria.

Physical WSDL Contract

[if !supportLists]· [endif]Binding

[if !supportLists]o [endif]What does the invocation traffic “look like” on the wire?

[if !supportLists]o [endif]For example, when sending a name search request, how is the search criteria encoded in a request buffer?

[if !supportLists]· [endif]Port

[if !supportLists]o [endif]How and where does the invocation traffic travel?

[if !supportLists]o [endif]For example, when sending a name search request buffer, what protocol is used to transport the buffer, and where is the buffer sent?

[if !supportLists]· [endif]Service

[if !supportLists]o [endif]Is there more than one option for transmitting the request?

[if !supportLists]o [endif]For example, is there more than one physical address that is part of a single logical cluster of customer service servers, or is there more than one transport that can be used to reach a single customer service server?

 
 
 

Comments


Featured Posts
Recent Posts
Archive
Search By Tags
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square

Mark Skilton    Copyright 2019  ©

  • White Twitter Icon
  • White Facebook Icon
  • White LinkedIn Icon
  • White YouTube Icon
  • White LinkedIn Icon
bottom of page