Distributed applications offer great advantages but present challenges in performance, reliability, and security. We show how Windows NT's MSMQ service handles them. What these protocols have in common is the notion of location transparency, an abstraction that lets a programmer call methods on an object without knowing where that object actually resides.
Programmers thus can continue to program within the context of a familiar model.
To make the programming model more accessible, however, the underlying protocol has had to become much more complex, resulting in performance degradation. Unfortunately, ORPC encourages a style of programming that does not mesh well with the demands of a distributed application. When used correctly, object-oriented programming has demonstrated its superiority over earlier development paradigms by simplifying the development of complex applications. Object-oriented programs are very chatty by nature, frequently sending messages between different objects. Therefore, object-oriented programming requires the critical assumption that the amount of time that it takes to call a method on another object is essentially none.