Interprocess communication (IPC) allows bidirectional communication between clients and servers using distributed applications. IPC is a mechanism used by programs and multi-user processes. IPCs allow concurrently running tasks to communicate between themselves on a local computer or between the local computer and a remote computer.
IPC mechanisms are used to support distributed processing. Applications that split processing between networked computers are called distributed applications. The split portions of a distributed application can be located on the same machine or on separate machines. A client/server application uses distributed processing, in which processing is divided between a workstation (the client) and a more powerful server. The client portion is sometimes referred to as the front end and the server portion is referred to as the back end. The client portion of a client/server application can consist of just the user interface to the application. However, the application can be split at various places in the distributed application. It runs on the client workstation and takes a lesser amount of processing power. For example, the client portion might handle only screen graphics, mouse movements, and keystrokes.
Multi-tier applications are an extension of the basic client/server model. This common distributed business model is sometimes called the three-tier model. It is composed of three parts: the client tier, the components tier and the server tier.
For example, your company's payroll department uses an application to print paychecks. When a payroll employee runs a client application, the application starts a business-rules server in the component tier. The component tier is composed of various components such as business rules, transaction management, and other business logic components.
The business rules server organizes the appropriate components for the task. The server application connects to a database server in the database tier and retrieves employee records such as salary information. The business-rules server transforms the payroll information into the final output and returns it to the client.
The application server can then process information that the client computer normally does in the client/server model. The application server handles the business or application logic and communicates with the back-end database, usually with structured query language (SQL). The server or back-end database often utilizes large amounts of data storage, computing power, and specialized hardware. The component parts make it easier to manage, deploy, and update these objects.
The goal of distributed processing is to move the actual application processing from the client to the servers that have the power to run large applications. While running, the client portion formats requests and sends them to the server for processing. Servers run the request and pass the result back to the client.
There are a number of ways to establish this connection. The Windows 2000 operating system provides many different Interprocess Communication (IPC) mechanisms.