- Used Books
- Staff Picks
- Gifts & Gift Cards
- Sell Books
- Stores & Events
- Let's Talk Books
Special Offers see all
More at Powell's
Recently Viewed clear list
New Trade Paper
Currently out of stock.
available for shipping or prepaid pickup only
Other titles in the Nutshell Handbooks series:
Power Programming with RPC (Nutshell Handbooks)by John Bloomer
Synopses & Reviews
RPC, or remote procedure calling, is the ability to distribute parts of a program to other computers on a network. An RPC facility manages the exchange of data between computers to make remote execution tranparent to the user. Distributed applications based on RPC can utilize distributed network resources and increase significantly the computing power brought to bear on complex problems. An RPC facility is the fundamental element of a distributed computing environment.
The book builds a working understanding of RPC programming through examples. Sun RPC, the de facto standard on UNIX systems, is covered in detail. Interprocess communication and other related UNIX programming topics are also covered.
The standard-issue RPC documentation is difficult to understand and lacks real-world examples. There are, in addition, many techniques to learn. This book, written from a programmer's perspective, shows you what you can do with RPC and presents a framework for learning it.
Book News Annotation:
RPC, or remote procedure calling, is the ability to distribute parts of a program to other computers on a network. Two major distributed computing environments are proposed as emerging standards: the Open Networking Consortium (ONC) and the Open Software Foundation's DCE. This book examines both from a programmer's perspective, showing what can be done with RPC and providing examples.
Annotation c. Book News, Inc., Portland, OR (booknews.com)
Written from a programmer's perspective, this book shows what you can do withSun RPC, the de facto standard on UNIX systems. It covers related programmingtopis for Sun and other UNIX systems and teaches through examples.
Includes bibliographical references (p. 423-425) and index.
About the Author
John Bloomer currently develops network multimedia and imaging applications for GE's Signal and Image Coding R&D group. He has experience designing VLSI chips and design automation tools and has developed hardware and software for graphics and signal processing systems. John often lectures on programming for distributed computing with a second O'Reilly book on DCE RPC underway.
Table of Contents
Table of Contents Preface Scope of This Handbook Some Assumptions About the Reader Software Mentioned in This Book Examples Additional Sources of Information Conventions Acknowledgments Chapter 1: Introduction to Remote Procedure Calling Client /Server Computing Remote versus Local Procedure Calling RPC Application Development Defining the Protocol Developing Server and Client Application Code Compiling and Running the Application RPC Makes Interprocess Communications Less Painful How RPC Systems Work RPC Systems and the OSI Reference Model What is "State" and Why is it Important? Top Twenty Distributed Computing Terms and Acronyms Chapter 2: Network Computing Today Distributed Computing Standards Features of a Distributed Computing Environment NCS ONC Examining ONC and NCS Machine-independent Data Representation RPC Mechanism Protocol Compilers: The Most Important Feature Authentication Services Network Resource Naming Services Network Time Service Distributed File System There May be a Common Application Environment in Your Future Netwise: A Second ONC Alternative Machine-independent Data Representation RPC Mechanism Protocol Compiler Authentication Services Network Resource Naming Services Network Time Service Distributed File System Summary of Distributed Computing Environments Rapid Evolution Which One Should You Choose? Put the ONC Suite on Your Machine for Free Chapter 3: Developing High-level RPC Applications Development Overview From Local to Remote Directory Reading Define the Protocol Data Types Program, Procedure, and Version Numbers High-level ONC RPC Library Calls At the Server At the Client Shared XDR Routines Using the XDR Library Writing the Client and Server Programs At the Server At the Client Compile, Link, and Run Why High-level Calls and Not Protocol Compiling? Some Limitations of the High-level Calls TCP Transport Requires Lower-level Calls Chapter 4: Protocol Compiling and Lower-level RPC Programming Development Overview Filename Conventions and Make Using RPCGEN The Protocol Definition Language Definitions Symbolic Constants Enumerations Structures Unions Typedefs Programs Declarations Special Cases Booleans Strings Opaque Data Voids Preprocessor Symbols and Control Lower-level ONC RPC Library Calls At the Client At the Server An Example: One Client Talks to One Server Debugging Step 1: Debug Without the Network Step 2: Use the Raw Transport Step 3: Debug Over the Network Deploying Servers During Development Real RPC Power Means Using IPC Chapter 5: UNIX Networking and Interprocess Communication A Network Protocol Primer Internet Addressing Connectionless at the Lowest Level Internet Protocols Applications Protocols Connections and Well-known Ports Types of Servers Network Transport Selection: UDP or TCP? Adding a Server to the System inetd and Other Lurking Network Daemons Installing a Server Yourself A Digression on Remote Execution Daemons Configuring inetd An Overview of UNIX Interprocess Communication Pipes and FIFOs Message Queues, Semaphores, and Shared Memory Berkeley Sockets and System V TLI Data Representation or Byte Ordering Retrieving Host, Network, and Address Information Getting ONC RPC Information Berkeley Sockets Yeah, But How Do I Use Sockets? Socket Examples Advanced Socket Programming Issues Remote Execution, Security, and Authentication Chapter 6: Application Development: Networked Parallel Image Processing Developing Parallel Algorithms for a Multi-server Network A Simple Model For Parallel Processing on a Network System Requirements and Network Constraints Server Access Server and Network Performance Brute-force Scheduling Using Process Control Programming Asynchronous and Concurrent Processing at the Client Making Use of Timers to Watch Child Processes Development Steps Remote Image Processing (RIP) Specifying Filter Coefficients rip Development: It's as Easy as 1 2 3 Step 1: Define the Protocol Step 2: Building the Client Procedure Step 3: Developing the Server Procedure Testing and Running the Program Extending RIP Fast SunView Frame Buffer Access Needed Chapter 7: Distributing Existing Applications A Local Image Manager The Header File Modularity Functions Compile, Link, and Run Moving a Local Application to the Network Answer Fourteen Questions First The Strategy Chapter 8: Managing RPC Servers How to Start the Remote Server Shell Scripts For Starting Servers Starting a Remote Server From within Your Client Application Terminating Your Services System Error: "STF-E-OPENIN, Server Too Fat" Hit Reset Report Server Information with rpcinfo Changes Under TIRPC Data Sharing: NFS versus Sending it Yourself Host-qualified Filenames Chapter 9: Multiple Clients and Servers Remote Asynchronous Calls, Multi-server Processing ONC RPC Support The Follow-up RPC Multi-tasking at the Server Multi-tasking with Child Processes Alternatives to Avoid Run-time Process Creation Combining Asynchronous and Multi-tasking at the Server Lightweight Processing Remote Asynchronous Calls with LWP A Minimal Set of LWP Routines Client Multi-server Example Server Multi-tasking Example Caveats Chapter 10: RPC Under Windowing Systems The X Window System X Toolkit Client Application Flow of Control Low-level RPC and X Protocol Similarities Strategies for Using RPC Under X Placing and Servicing RPCs in an Event-driven Environment RPC and XView Synchronous RPCs with a Timer Remote Asynchronous Calls, FRPC Polled with a Timer The Event Notifier and Associated Complications Remote Asynchronous Call Servers Using notify_enable_rpc_svc() RPC and Xol/Xt Watching IPC with XtAppAddInput(3Xt) Remote Asynchronous Calls, Servers Using XtAppAddInput() Comparing Network Windowing Systems and RPC A Digression: Performance of Typical versus Network Windowing Systems Windowing System Evolution Can Hide a Frame Buffer X11 Pixmaps versus SunView Pixrects Augment Typical Windowing Systems with RPCs Chapter 11: ONC Transport-independent RPC Maintains the ONC RPC Protocol Run-time Transport Independence Network Selection Uniform Addressing TIRPC API Backward Compatibility Levels of the Library An Example Availability Chapter 12: Advanced Programming Issues Authentication and How to Use It ONC RPC Credentials and Verification at the Client Adding Authentication to the dim Client Authentication at the Server Adding Access Control to the dim Server Error Reporting Summarized Fault Tolerance, Connection Errors, and Crash Recovery Connection Errors and Recovery Caching Replies at the Server Broken Connections and Testing Crash Recovery The ONC RPC Programming Reference Section One: ONC XDR Library Routines Section Two: ONC Portmap Library Routines Section Three: ONC RPC Library Routines Section 1: ONC XDR Library Routines Overview XDR Streams and Their Management Conversion Filters Synopsis xdr_array() xdr_bool() xdr_bytes() xdr_char() xdr_destroy() xdr_double() xdr_enum() xdr_float() xdr_free() xdr_getpos() xdr_inline() xdr_int() xdr_long() xdrmem_create() xdr_opaque() xdr_pointer() xdrrec_create() xdrrec_endofrecord() xdrrec_eof() xdrrec_readbytes() xdrrec_skiprecord() xdr_reference() xdr_setpos() xdr_short() xdrstdio_create() xdr_string() xdr_u_char() xdr_u_int() xdr_u_long() xdr_union() xdr_u_short() xdr_vector() xdr_void() xdr_wrapstring() Section 2: ONC Portmap Library Routines Overview Synopsis pmap_getmaps() pmap_getport() pmap_rmtcall() pmap_set() pmap_unset() xdr_pmap() xdr_pmaplist() Section 3: ONC RPC Library Routines Overview Functional Summary Building Client Authentication Making the Call from the Client CLIENT Handle Management Server Registration With The Portmap SVCXPRT Service Transport Handle Management Server Side Error Handling And Reporting Server I/O and Utility Direct XDR Access Making Secure RPCs Synopsis authdes_create() authdes_ getucred() auth_destroy() authnone_create() authunix_create() authunix_create_default() callrpc() clnt_broadcast() clnt_call() clnt_control() clnt_create() clnt_create_vers() clnt_destroy() clnt_freeres() clnt_geterr() clnt_pcreateerror() clnt_perrno() clnt_perror() clntraw_create() clnt_spcreateerror() clnt_sperrno() clnt_sperror() clnttcp_create() clntudp_bufcreate() clntudp_create() get_myaddress() getnetname() getrpcport() host2netname() key_decryptsession() key_encryptsession() key_gendes() key_setsecret() netname2host() netname2user() registerrpc() rpc_createerr svc_destroy() svcfd_create() svc_fds svc_fdset svc_freeargs() svc_getargs() svc_getcaller() svc_getreq() svc_getreqset() svcerr_auth() svcerr_decode() svcerr_noproc() svcerr_noprog() svcerr_ progvers() svcerr_systemerr() svcerr_weakauth() svcraw_create() svc_register() svc_run() svc_sendreply() svctcp_create() svcudp_create() svcudp_bufcreate() svc_unregister() user2netname() xdr_accepted_reply() xdr_authunix_ parms() xdr_callhdr() xdr_callmsg() xdr_opaque_auth() xdr_rejected_reply() xdr_replymsg() xprt_register() xprt_unregister() Error Codes Appendix A: Obtaining RFCs (Internet Standards, Request for Comment) ... 407 Appendix B: An RPC Case Study: Networked Ray Tracing Introduction to Ray Tracing Accelerating Ray Tracing Multiple Processor Ray Tracing and Data Distribution Networked Ray Tracing Using RPC Dynamic Scheduling and Load Balancing But Why Scan-line Parallelism and Not Frame Parallelism? Performance Results Conclusions References Documentation and Source Code Comments on Augmenting the Client to Run Under X11 with the XView Toolkit Appendix C: Generalized Server Initialization, Inquiry, and Removal Appendix D: Parallel Processing In A Nutshell Parallelism Interprocess Control Interprocess Communication Buzzwords: A Glossary
What Our Readers Are Saying
Average customer rating based on 1 comment:
Other books you might like
Computers and Internet » Computers Reference » General