Microsoft RPC (Microsoft Remote Procedure Call) is a modified version of DCE/RPC. Additions include support for Unicode strings, implicit handles, inheritance of interfaces (which are extensively used in DCOM), and complex calculations in the variable-length string and structure paradigms already present in DCE/RPC.
Contents |
The DCE 1.0 reference implementation only allows such constructs as "size_is(len)", or possibly "size_is(len-1)". MSRPC allows much more complex constructs such as "size_is(len / 2 - 1)" and even "length_is ((max & ~0x7) + 0x7)", a common expression in DCOM IDL files.
MSRPC was used by Microsoft to seamlessly create a client/server model in Windows NT, with very little effort. For example, the Windows Server domains protocols are entirely MSRPC based, as is Microsoft's DNS administrative tool. Microsoft Exchange Server 5.5's administrative front-ends are all MSRPC client/server applications, and its MAPI was made more secure by "proxying" MAPI over a set of simple MSRPC functions that enable encryption at the MSRPC layer without involving the MAPI protocol.
MSRPC is derived from the Distributed Computing Environment 1.2 reference implementation from the Open Software Foundation, but has been copyrighted by Microsoft. DCE/RPC was originally commissioned by the Open Software Foundation, an industry consortium to set vendor- and technology-neutral open standards for computing infrastructure. None of the Unix vendors (now represented by the Open Group), wanted to use the complex DCE or such components as DCE/RPC at the time.
The Microsoft proprietary technology, Distributed Component Object Model (DCOM) is for software components distributed across several networked computers to communicate with each other. The "D" was added to COM because of extensive use of DCE/RPC. DCOM, which originally was called "Network OLE", extends Microsoft's COM, and provides the communication substrate under Microsoft's COM+ application server infrastructure. It has been deprecated in favor of Microsoft .NET Framework. Microsoft donated DCOM to the Open Group.
The technology used by Microsoft in MSRPC is now deprecated and replaced by MPI
Shirley, John; Rosenberry, Ward (1995). Microsoft RPC programming guide. O'Reilly & Associates, Inc. Open Book. ISBN 1-56592-070-8. http://www.archive.org/details/microsoftrpc00shirmiss.
Luke Kenneth; Casson Leighton (1999). DCE/RPC over SMB: Samba and Windows NT Domain Internals. Sams. ISBN 1-57870-150-3. http://www.amazon.com/DCE-RPC-over-SMB-Internals/dp/1578701503.