Tech Note #36: Introduction to the Alarm Clock Protocol (ACP)
1998 Bionic Buffalo Corporation; All Rights Reserved.
12 June 1998
7 of 8
applications can use, but may not require, multiple threads of execution within a
timeouts for i/o operations may not be available
shared memory may not be available
The resulting application is usually based on a message-passing paradigm, which can be
efficiently implemented with shared memory when shared memory is available. In this
context, the use of messages for timer services fits well.
A network read can be timed out by using the Alarm services. By scheduling a
notification message to arrive periodically or after a designated time, an application will
not expect to wait indefinitely on a port if the expected message does not arrive.
Office or Home System
Office or home environments consist of numerous devices of varying levels of
complexity. These may consist of appliances, computers, peripherals, and network
In this environment, the primary motivation for ACP is the provision of standardized
services, so additional devices may be added over time. Each home or office might be
expected to have at least one ACP server, which can synchronize the clocks on
appliances and computers, and provide a conventional means for co-ordinating
operations performed by co-operating devices.
For instance, a standardized appliance expected to turn itself on or off at specified times
might find, at a well-known address, a centralized controller which has acquired an
event handle in advance. The ACP server (which well might be hosted in the same
central controller) would send the notices as required when the events were triggered.
ACP may need future expansion to address some issues, which have not been discussed here.
Among those issues are:
Security. Although an underlying transport may be used to enforce certain security rules,
such a secure transport is not always available, nor may it be flexible enough to provide the
desired protection. Future versions of the protocol may add tagged fields, which allow
authentication operations between client and server.
Fault tolerance. If a server fails or is taken down, there is no mechanism for transferring
pending requests to a new server. Such a mechanism would require the introduction of new
service types, with a “transfer” or “forward” request being made by the server to the client.