Communication Design Dimensions


Separate entities within the single address space of a stand-alone application often interact by passing parameters via function calls and/or by accessing global variables. Entities located in different address spaces in networked applications, however, require different interprocess communication mechanisms. This chapter described how IPC mechanisms yield a number of communication dimensions to consider when designing networked applications. We described connection modes, request/response protocols, and information exchange alternatives, as well as factors and tradeoffs to guide your choices.

The next chapter discusses the Socket API. It's the most common IPC facility you'll encounter when implementing your designs, so it's important to understand its capabilities and shortcomings, as well as ACE's solutions. The ACE toolkit provides a range of classes that help guide your communication choices in accordance with the design dimensions discussed in this chapter. For example,

  • The ACE wrapper facades that encapsulate connection-oriented and synchronous message-passing functionality are presented in Chapter 3.

  • Asynchronous connection-establishment and data transfer is illustrated in [SH].

  • The ACE memory-mapped file mechanism is described in Sidebar 7 on page 68 and its shared memory mechanisms are shown in [HJS].

Using these ACE capabilities in your networked applications can help to reduce inherent and accidental complexities.

     Python   SQL   Java   php   Perl 
     game development   web development   internet   *nix   graphics   hardware 
     telecommunications   C++ 
     Flash   Active Directory   Windows