Overview of the ACE Network Services

ACE provides a standard library of network services:

These services play two roles in ACE:

The heart of the ACE network services is the Service Configurator, which is an object-oriented framework that automates the configuration and reconfiguration of multi-service daemons. All the ACE network services are configured using the Service Configurator. Please refer to the online documentation for more information on installing and testing the ACE network services.


Overview of Naming Service

A Naming Service associates names with values in a distributed system. Clients can query these values using these names as keys. Such a name-to-value association is called a Name Binding . Name bindings are defined relative to a Naming Context . A naming context is a collection that contains a set of name bindings in which each name is unique. Different names can be bound to the same value in the same or different naming contexts at the same time. There are three types of naming contexts:

  1. Process Local Naming Context: Name bindings are accessible from processes with the same name running on the same host.

  2. Node Local Naming Context: Name bindings are accessible from all processes running on the same host.

  3. Network Local Naming Context: Name bindings are accessible from all processes running on any machine within a (sub)network.

To bind a name is to create a name binding in a given context. Querying a value using a name determines the value associated with the name in a given context. Note that a name is always bound relative to a context. Thus, there are no absolute names.

The following are the key classes in the ACE Naming Service:

The following describes how to configure the Name_Server server and client test applications.


Overview of Time Service

Time Service provides accurate, fault-tolerant clock synchronization for computers collaborating in local area networks and wide area networks. Synchronized time services are important in distributed systems that require multiple hosts to maintain accurate global time. The architecture of the distributed time service contains the following Time Server, Clerk, and Client components:

The following are the key classes in the ACE Time Service:

The following is a description of how to configure the Time Server clerk and server services:


Token Service

The ACE Token Service provides local and remote mutexes and readers/writer locks. For information regarding the deadlock detection algorithm, check out ACE_Token_Manager.h. For information about an implementation of the Composite Pattern for Tokens, check out Token_Collection.h. The classes which implement the local and remote synchronization primitives are listed below:

The Token Server provides distributed mutex and readers/writer lock semantics to the ACE Token library. ACE_Remote_Mutex, ACE_Remote_RLock, and ACE_Remote_WLock, are proxies to the Token Server. The following are the key classes in the ACE Token Server:

The following describes how to configure the Token Server:

Note:


Overview of Server Logging Service

The Server Logging Service provides a concurrent, multi-service daemon that processes logging records received from one or more client hosts simultaneously. The object-oriented design of the Server Logging Service is decomposed into several modular components that perform well-defined tasks.

The following are the key classes in the Server Logging Service:

The following describes how to configure the Logging Server:

Note:


Overview of Client Logging Service

The Client Logging Service multiplexes messages received from different applications to the Server Logging Daemon running on a designated host in a network/internetwork. The following are the key classes in the Client Logging Service:

The following describes how to configure the Logging Client:

Note:


Overview of Logging Strategy Service

The Logging Strategy Service can be used to control the output of all the network services. It can be invoked with certain flags that determine where the output of all the services should go. The Logging Strategy Service sets the flags in ACE_Log_Msg, which controls all the streams through macros such as ACE_DEBUG, ACE_ERROR, and ACE_ERROR_RETURN. If default behavior is required, the Logging Strategy Service need not be invoked or it can be invoked with no parameters.

The following describes how to configure the Logging Strategy Service:


Back to the ACE home page.