25.02.2013 Views

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

An application written using DCE RPCs has a client portion, which usually issues<br />

RPC requests, <strong>and</strong> a server portion, which receives RPC requests, processes<br />

them, <strong>and</strong> returns the results to the client. RPCs have three main components:<br />

► The Interface Definition Language (IDL) <strong>and</strong> its associated compiler. From<br />

the specification file, it generates the header file, the client stub, <strong>and</strong> the<br />

server stub. This allows an application to issue a Remote Procedure Call in<br />

the same manner as it issues a local procedure call.<br />

► The network data representation, which defines the format for passing data,<br />

such as input <strong>and</strong> output parameters. This ensures that the bit-ordering <strong>and</strong><br />

platform-specific data representation can be converted properly after it arrives<br />

at the target system. This process of preparing data for an RPC call is called<br />

marshalling.<br />

► The runtime library, which shields the application from the details of network<br />

communications between client <strong>and</strong> server nodes.<br />

The application programmer can choose to use multiple threads when making<br />

RPC calls. This is because an RPC is synchronous; that is, when an RPC call is<br />

made, the thread that issued the call is blocked from further processing until a<br />

response is received.<br />

Remote Procedure Calls can be used to build applications that make use of other<br />

DCE facilities, such as the Cell Directory Service (CDS) <strong>and</strong> the security service.<br />

The CDS can be used to find servers or to advertise a server's address for client<br />

access. The security service might be used to make authenticated RPCs that<br />

enable various levels of data integrity <strong>and</strong> encryption using the commercial data<br />

masking facility (CDMF), data encryption st<strong>and</strong>ard (DES), <strong>and</strong> other functions<br />

such as authorization.<br />

13.3.4 Distributed Time Service<br />

Keeping the clocks on different hosts synchronized is a difficult task because the<br />

hardware clocks do not typically run at the same rates. This presents problems<br />

for distributed applications that depend on the ordering of events that happen<br />

during their execution. For example, let us say that a programmer is compiling<br />

some code on a workstation <strong>and</strong> some files are also located on a server. If the<br />

workstation <strong>and</strong> the server do not have their time synchronized, it is possible that<br />

the compiler might not process a file, because the date is older than an existing<br />

one on the server. In reality, the file is newer, but the clock on the workstation is<br />

slow. As a result, the compiled code will not reflect the latest source code<br />

changes. This problem becomes more acute in a large cell where servers are<br />

distributed across multiple time zones.<br />

The DCE Distributed Time Service (DTS) provides st<strong>and</strong>ard software<br />

mechanisms to synchronize clocks on the different hosts in a distributed<br />

Chapter 13. Remote execution <strong>and</strong> distributed computing 507

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!