1.5 Example: A Networked Logging Service
It's been our experience that the principles,
The logging service in C++NPv1 used many of ACE's wrapper facades in a two-
Figure 1.10 illustrates the application processes and daemons in our networked logging service, which we outline below.
Figure 1.10. Processes and Daemons in the Networked Logging Service
Client application processes
(such as P
, and P
) run on client
Client logging daemons run on every host machine participating in the networked logging service. Each client logging daemon receives log records from that host's client applications via some form of local IPC mechanism, such as shared memory, pipes, or sockets. The client logging daemon uses a remote IPC mechanism, such as TCP / IP , to forward log records to a server logging daemon running on a designated host.
Server logging daemons
collect and output the incoming log records they receive from client applications via client logging daemons. A server logging daemon
can determine which client host sent each message by using addressing information it obtains from the underlying Socket API. There's
Figure 1.11 (page 22) shows the progression of networked application servers that we'll develop and use in this book. These client and server logging daemons will illustrate how to use the ACE frameworks and wrapper facades with the following concurrency models.
Figure 1.11. Logging Server Examples
Design Patterns: Elements of Reusable Object-Oriented Software
The ACE Programmer's Guide: Practical Design Patterns for Network and Systems Programming
Modern C++ Design: Generic Programming and Design Patterns Applied
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library