Before examining the detailed architecture of ORBs, it is important to understand the context of middleware in relation to the rest of a computer system. As mentioned before middleware is normally concerned with distributed computer systems, therefore a look at where middleware fits into the OSI conceptual protocol stack is a good place to start. As the role of middleware is to provide platform independently of data across a network it belongs at layer 6, the presentation layer. Typically layer 6 deals with how different machines represents data types, for example two UNIX stations running a C program may use a different number of bytes to represent an integer or a UNIX station may send the LSB first while an NT machine sends the MSB first . As an object encapsulates primitive data types this problem is core to the design of object-oriented middleware.