Summary

Distributed programming involves programs that execute in different processes. Each process can potentially reside on a different computer and possibly on a different network with different network protocols. Distributed programming techniques allow the developer to divide an application into separately executing modules that will either have some kind of producer “consumer relationship or peer-to-peer relationship. The modules each have their own address space and computer resources. Distributed programming can be used to take advantage of special processors, peripherals, and other computer resources (i.e., database servers, applications servers, e-mail servers, etc.). CORBA is the standard for distributed object-oriented programming. We provide an introduction to some of the simple basics of CORBA programming. However, this chapter barely scratches the surface of the CORBA specification and CORBA services. It provides only enough to see what the basic components look like and how a simple distributed program can be constructed . The CORBA specifications for Web services, MAF, naming services, and so on, can be obtained from www.omg.org. Michi Henning and Steve Vionosk provide a detailed resource in their Advanced CORBA Programming with C++ . The naming and trader graphs provide the basis for powerful distributed knowledge representation that can be used in conjunction with multiagent programming. They provide the basis for the next level of smart Web services.

Table 8-6. Common Types of Software Servers

Types of Software Servers

Description

Application servers

Used to provide multiple clients with access to an application. It divides work in an application between the client and the server. The majority of the work is done on the server and the client (with its own processor) performs part of the work.

File servers

Acts as a central repository for shared documents, multimedia files, databases, and so on. The clients are usually terminals or workstations on a network. The client makes requests for files or records within the files, then the file server transmits the request to the client. The file server maintains data integrity and enforces file access security.

Database servers

Splits the processing of an application between different machines in a network environment. A client makes requests for an item of data, then the database server locates the data and transmits the request to the client. The database server can process complex information queries that may require joins and intersections of multiple databases.

Transaction servers

Used to perform transactions that take place on the machine or machines that contain the transaction server. Every action or update completes in its entirety without interruption. If any problems are encountered , all actions or updates are undone and the transaction is tried again.

Logic servers

Used to perform problem solving that requires intense symbolic computation. It is able to find both implicit and explicit information within a database. The logic server is able to deduce or infer information that has not been explicitly entered into the database. It consists of a database with one or more built-in inference engines. The inference engine is used to obtain conclusions and inferences from the server. The database consists of rules, theorems, axioms, and procedures. Queries submitted to the logic server causes it to perform deduction , induction, abduction, or some combination.



Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
ISBN: 0131013769
EAN: 2147483647
Year: 2002
Pages: 133

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net