5.1.4 Hubs and Switches

without waiting for them to complete. This maps better to parallel programming on a Beowulf, because you can tell processors to perform arbitrary work without blocking, and interprocessor coordination can be relegated to synchronous calls.
5.5.2 Distributed Objects: CORBA and Java RMI
As the software development advantages of object oriented programming languages became more popularly evident during the late '80s and early '90s. programmers saw that they could extend the concept of a remote procedure call to that of a remote object allowing remote method invocations. You could represent network services as objects distributed across a network and use method invocations to perform transactions, rather than esoteric socket-based protocols or unwieldy collections of remote procedure calls. Again, the idea was to simplify the programming model by making distributed programs appear like sequential programs- you should be able to reference objects and invoke their methods independent of their location on the network.
Distributed objects are mostly used to build corporate enterprise applications that require access to data spread out in different locations across the network. Sometimes this actually requires coordinating computation with machines in different parts of the world. A common use is to simplify the implementation of application specific network databases that can become difficult to implement using a client/server approach and SQL queries. It is much easier for a programmer to write something like the following than to pass an embedded SQL query to a vendor-specific client API.
EmployeeBenefits myBenefits; 
EmployeeRetirementPlan myRetirement; 
EmployeeID myID; 
SSN mySSN; 
 
mySSN = getSSN(; // Get my social security number from some input source 
myID  = employeeIDs.getID(mySSN);                // Lookup my employee ID 
myBenefits   = employeeBenefits.getBenefits(myID); // Lookup my benefits 
myRetirement = myBenefits.getRetirementPlan();   // Lookup my retirement plan 
 
Here the program may be accessing anywhere from one to three databases in different parts of the network, but the programmer doesn't have to be aware of that fact. In a client/server program, the programmer would have to specifically set up connections to network databases, issue queries in SQL or some other query language, and convert results into a usable form. With distributed objects, a programmer can access network resources in a transparent manner. To the programmer, employeeIDs is just another object to be used through its public methods. In

 



How to Build a Beowulf
How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Scientific and Engineering Computation)
ISBN: 026269218X
EAN: 2147483647
Year: 1999
Pages: 134

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