Lesson 9 - Distributed Processing

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
On This Page

What You Will Learn
What To Do
Before Going On
Speaking The Language
To Learn More

What You Will Learn

By the end of this lesson, you should be able to do the following:

  • Explain how the integration of networking capabilities is different in Windows NT from other operating systems and explain the advantages of the Windows NT implementation.

  • Tell the steps a network I/O request goes through on the server and client ends.

  • Explain how Windows NT servers and clients can interoperate with non-Windows NT clients and servers.

  • Explain what Remote Procedure Calls (RPC) are and show the basic steps in an RPC call.

Using knowledge learned in this module, you'll be able to explain the following:

  • Why a program that uses NetBIOS and/or Windows Sockets fails under Novell's current IPX redirector but works under the redirectors Microsoft provides.

  • Why mixing and matching protocols, transports, and cards is easier than Windows 3.1.

What To Do

An deal Distributed Processing Platform

Windows NT is a network operating system in the fullest sense. It is a complete operating system with fully integrated networking capabilities. These capabilities differentiate Windows NT from other operating systems such as MS-DOS, OS/2, and UNIX for which network capabilities are sold, installed, and managed separately from the core operating system itself.

The integrated networking support provided in Windows NT was designed to:

  • Provide peer networking capabilities - All Windows NT workstations can act as both network clients and servers. They can share their files and printers with other computers, and exchange messages over the network.

  • Allow easy addition of networking software and hardware - The LAN Manager networking software integrated into Windows NT allows easy addition of protocol drivers, network card drivers, and even sophisticated domain management software.

  • Interoperate with computers on existing networks - Windows NT systems can communicate using a variety of transport protocols and network adapters. It can even communicate over a variety of different vendors' networks.

  • Support industry standard application programming interfaces for connection establishment and termination, data transfer, and resource browsing - Applications running on Windows NT can access networks using a variety of application programming interfaces including NetBIOS, Sockets, and the Windows Network (WNet) interface.

  • Support development of distributed applications - Windows NT provides a transparent remote procedure call (RPC) facility. This allows an application on a local workstation to call functions provided by remote workstations just as though the functions were provided by the local workstation.

Peer Networking Capabilities

One way to organize networked computers is to use some as dedicated clients and others as dedicated servers. Servers share, or allow access to, their resources (for example, files, printers, pipes, remotely callable procedures) over the network. Clients utilize the resources provided by servers.

Another way to organize networked computers is to more away from the client/server dichotomy and toward a client/server continuum. The idea of using the same computer as both a client and a server is commonly referred to as peer networking or workgroup computing . In a peer networking situation, a computer that is routinely used as a client also shares one or more of its resources with other computers.

Providing Client Capabilities

The LAN Manager Redirector supplies Windows NT workstations with client capabilities. When an application requests access to resources (for example, files, printers, or named pipes) on a remote system, the redirector establishes and manages a network connections with the remote system. The redirector then allows the application to access the resource through the connection.

The LAN Manager redirector is implemented as a Windows NT file system driver. Implementing a redirector as a file system has several motivations:

  1. Allows applications to call a single application programming interface (Windows NT I/O functions) to access files on local and remote computers. From the I/O Manager's perspective, there is no difference between accessing files stored on a remote networked computer and accessing those stored locally on a hard disk.

  2. Runs in kernel mode so it can directly call other drivers and other kernel components such as the cache manager. This access can be used to optimize the redirector's performance.

  3. It can be loaded and unloaded dynamically, just like any other driver.

  4. It can coexist easily with other redirectors.

Consider what happens when a process on a Windows NT workstation tries to open a file that resides on a remote computer connected by a LAN Manager network:

  1. The process calls the I/O manager to request that the file be opened.

  2. The I/O manager recognizes that the request is for a file on a remote computer, so it passes it to the LAN Manager Redirector file system driver.

  3. The redirector passes the request to lower-level network drivers that transmit it to the remote LAN Manager server for processing.

Providing Server Capabilities

The LAN Manager Server supplies the server capabilities for Windows NT workstations. That is, the server entertains the connections requested by client-side redirectors, and provides them with access to the resources they request. The LAN Manager server is implemented as a Windows NT file system driver for many of the same reasons that the redirector was.


Figure 2: - Server-Side Processing Using LAN Manager Server.

Now consider what happens when a Windows NT workstation receives a server message block from a remote LAN Manager workstation asking it to read a file that resides on the local hard drive:

  1. The low-level network drivers receive the request and pass it to the LAN Manager Server driver.

  2. The LAN Manager Server passes a file read request to the appropriate local file system driver.

  3. The local file system driver calls lower-level disk device drivers to access the file.

  4. The data is passed back to the local file system driver.

  5. The local file system driver passes the data back to the LAN Manager Server.

  6. The LAN Manager server passes the data to the lower-level network drivers for transmission back to the client computer.

Allowing Easy Addition Of Network Software And Hardware

The LAN Manager redirectors communicate with LAN Manager servers by passing data structures (called server message blocks (SMB) ) back and forth. The actual transmission and receipt of SMBs is handled by several layers of lower-level drivers as shown in Figure 3.

The layer of drivers immediately below the redirector and server contains protocol drivers . The protocol drivers provide the rules and conventions used to transport data over the network. Common protocols implemented by protocol drivers are NetBEUI, TCP/IP, XNS, DECNet, and IPX. The redirector and server communicate with the protocol drivers uses a well-defined interface called the transport driver interface (TDI) .

The protocol drivers also communicate with the next lower layer of drivers, called network card drivers . The network card drivers control the network adapter cards that physically transfer data frames across the network. Protocol drivers and network card drivers communicate through an interface defined in the network driver interface specification (NDIS) version 3.0. A software component called the NDIS wrapper surrounds network card drivers. The wrapper insulates network card drivers from protocol drivers and at the same time hides certain details of the hardware platform on which the driver is run. Because network card drivers do not depend on other drivers or on platform-specific details, they are portable across different systems.

The key aspects of this architecture are that the interfaces between layered drivers (TDI and NDIS 3.0) are well-defined, and each layer may be easily extended by the installation of new drivers.

Interoperating With Computers On Existing Networks

A significant goal for Windows NT was to allow it to communicate, or interoperate , with computers on existing networks. That is, to allow applications on Windows NT workstations to:

  • Browse the resources available on multiple networks.

  • Manage (establish and terminate) connections with remote computers.

  • Transfer data.

The Windows network (WNet) application programming interface provides functions for browsing network resources, and managing connections with remote computers. The Windows File manager, for example, uses the WNet interface to provide its network browsing and connection facilities. A software component called the multiple provider router (MPR) allows applications using the WNet interface to access resources on multiple networks.

Each network vendor supplies a provider DLL that acts as an intermediary between the multiple provider router and the vendor's redirector. The provider DLL provides a standard interface that the router can call to perform resource browsing and connection management. When an application calls a WNet function, the multiple provider router simply routes the command to the appropriate provider DLL, which in turn communicates with its redirector. The redirector then carrys out the requested action(s).

Once a connection is established with a remote computer, the Win32 file I/O application programming interface provides the ability to transfer data to and from it.

Supporting Industry Standard Transport Layer Interfaces

During the 1980s, the NetBIOS and Sockets transport layer interfaces became standards within the IBM PC-compatible and UNIX worlds, respectively. To provide compatibility for applications that rely on these interfaces, both are supported by Windows NT.

The NetBIOS and Windows Sockets application programming interfaces are supplied by separate DLLs. These DLLs communicate with corresponding drivers in the Windows NT executive. The NetBIOS and Windows Sockets drivers then bypass the Windows NT LAN Manager redirector and communicate with protocol drivers directly using the transport driver interface. An interesting side effect of this relationship is that applications using the NetBIOS and Windows Sockets interfaces can only communicate using protocol drivers that support the transport driver interface. Protocol drivers such as Novell's IPX driver, which supports a private interface known only by the Novell redirector, can not be accessed using the NetBIOS or Windows Sockets application programming interfaces.

Supporting Development Of Distributed Applications

In a networked computer environment, a server can share many types of resources with other computers. Printers and files are commonly shared resources. Computers can also share computational resources; that is, they can execute procedures on behalf of applications on client computers. Windows NT's remote procedure call facility makes it easy for developers to write distributed applications that share computational resources in this way.

For example, consider a computer that shares its database with other computers. Applications on remote computers can call query procedures that are executed on the database's host computer. Once the queries are processed, the results are returned to the calling applications on the remote computers. In this situation, the use of remote procedure calls minimizes the amount of information that must be transmitted over the network, and allows applications on multiple remote computers to perform queries as though they each have a local copy of the database on their workstations.

The Windows NT remote procedure call facility is organized as shown in Figure 7:

The parts of the remote procedure call mechanism are:

  • Remote Procedure Stub (Proc Stub)--DLL which prepares remote procedure calls to be sent to the server via the RPC Runtime.

  • RPC Runtime (RPC RT)--responsible for communications between the local and remote machine, including the passing of parameters.

  • Application Stub (App Stub)--DLL which accepts RPC's from the the RPC RT to and makes the appropriate call to the remote procedure.

  • Remote Procedure--the actual procedure that is called over the network.

The remote procedure call facility provided in Windows NT complies with the Open Software Foundation's (OSF) distributed computing environment (DCE) specification. Windows NT workstations can use RPC to interoperate with any other workstations that support this standard.

Secure Network Access

While Windows NT's networking capabilities are intended to maximize access to distributed resources, this access does not come at the cost of security.

When the LAN Manager server receives a request for access to a resource, it communicates with the security subsystem to determine whether the access is authorized. The LAN Manager server sends the security subsystem the user ID and password. The security system uses the security accounts manager (SAM) database to determine whether the user ID and password match an existing account. If they do, an access token is returned to the LAN Manager server. The server then uses the access token to impersonate the client each time it accesses a resource. In this way, the server is always permitted or denied access to the resource based on the access rights of the client.

This process differes slightly from the process of logging on an interactive user. Interactive users log in via the WinLogon process rather than the LAN Manager server. Also, a new user mode process is created when an interactive user logs on , but not when a remote user logs on.

Before Going On

Before you go on, make sure you can answer the following questions:

  1. How does the integration of networking capabilities into Windows NT differ from integration of LAN Manager into MS-DOS, OS/2, and UNIX?

  2. What are the advantages of implementing the LAN Manager server and LAN Manager redirector as file system drivers?

  3. How is handling a network I/O request different from handling a local disk I/O request for a client? For a server? Trace both requests using a block diagram of Windows NT.

  4. Name two ways in which Windows NT supports interoperability with non-LAN Manager networks.

  5. What are the transport layer interfaces supported by Windows NT?

  6. Draw a diagram showing how the application, client stub, RPC runtime, server stub, and library relate to each other during RPC and use the diagram to describe the basic steps in an RPC transaction on a client/server network.

Speaking The Language

This lesson introduced terms that it is important for you to understand. Please look through the list and verify that you understand the meaning of each term:

  • Remote procedure call (RPC)

  • Peer networking

  • Workgroup computing

  • Server message block (SMB)

  • Protocol driver

  • Transport driver interface (TDI)

  • Network card driver

  • Network driver interface specification (NDIS)

  • NDIS wrapper

  • Interoperate

  • Multiple provider router (MPR)

  • Provider DLL

To Learn More

If you're interested in learning more about this topic, you may find the following resources useful:

  • Inside Windows NT, Chapter 9.


Product Support Services Worldwide Training

Information in this document and included materials is subject to change without notice and does not represent a commitment on the part of Microsoft Corporation. No part of the contents of this course may be reproduced or transmitted in any form or by any means without the express written permission of Microsoft.


Microsoft Corporation
Product Support Services, Worldwide Training Unit
One Microsoft Way
Redmond, WA 98052-6399
© Microsoft Corporation, 1993. All rights reserved.