In distributed computing, the computing task is divided into two sections, a client piece and a server piece. The goal is to move the actual application processing from the client workstation to a server system with the power to run large applications.
The client piece of a client-server application is typically the user interface for the application. It runs on the client's workstation and uses a small amount of computing power, but typically requires a lot of network bandwidth to communicate with the server piece.
The server piece of a client-server application typically requires large data storage, computing power, or specialized hardware. It includes operations such as database lookups and updates, or mainframe data access.
There must be a network connection between the client and the server portions of distributed applications that allows data to flow in both directions. There are a number of different ways to establish this connection. Windows NT provides several different Interprocess Communication (IPC) mechanisms.
Named pipes and mailslots are actually implemented as file systems. Thus, in the Registry there are entries for NPFS (Named Pipe File System) and MSFS (Mailslot File System). As file systems, they share common functionality, such as security, with the other file systems. In addition, local processes can use named pipes and mailslots with other processes on the local computer without going through the networking components. Remote access to named pipes and mailslots, as with all of the file systems, is accomplished through the redirector.
Named pipes provide connection-oriented messaging that allows applications to share memory over the network. Windows NT provides a special application programming interface (API) that increases security when using named pipes. One feature added to named pipes is impersonation. When using impersonation, the server can change its security identifier to that of the client at the other end of the connection. For example, suppose a database server system uses named pipes to receive, read, and write requests from clients. When a request comes in, the database server program can impersonate the client before attempting to perform the request. Thus, if the client does not have the authority to perform the function the request would be denied.
The mailslot implementation in Windows NT is a subset of the Microsoft OS/2 LAN Manager implementation. Windows NT implements only second class mailslots. Second class mailslots provide connectionless messaging for broadcast messages. Delivery of the message is not guaranteed, though the delivery rate on most networks is high. It is most useful for identifying other computers or services on a network. The Computer Browser service under Windows NT uses mailslots.
NetBIOS is a standard programming interface in the PC environment for developing client-server applications. NetBIOS has been used as an IPC mechanism since the introduction of the interface in the early 1980s. From a programming aspect, higher level interfaces such as named pipes and RPC are superior in their flexibility and portability.
A NetBIOS client-server application can communicate over various protocols: NetBEUI protocol (NBF), NWLink NetBIOS (NWNBLink), and NetBIOS over TCP/IP (NetBT).
The Windows Sockets API provides a standard Windows interface to many transports with different addressing schemes, such as TCP/IP and IPX. The Windows Sockets API was developed to accomplish two things. One was to migrate the sockets interface, developed at the University of California, Berkeley in the early 1980s, into the Windows and Windows NT environments. The other was to help standardize an API for all platforms.
The RPC mechanism can use other IPC mechanisms to establish communications between the computers on which the client and the server portions of the application exist. If the client and server are on the same computer, the Local Procedure Call (LPC) mechanism can be used to transfer information between processes and subsystems. This makes RPC the most flexible and portable IPC choice.
NetDDE provides information-sharing capabilities by opening two one-way pipes between applications. NetDDE is an extension of Dynamic Data Exchange (DDE) that can be used between two computers across the network.
By default, the NetDDE services are not automatically started. They can be started using Control Panel Services, Command Prompt, or the Server Manager utility of Windows NT Server.