A system and procedure to automatically enforce policy in distributed multi-computer
service applications. Such service applications include multiple software modules
that execute on multiple computers. The computers have access to communications
media that allow data communications between the computers. Logical ports are configured
on different modules according to a logical model of the multi-computer service
application. Each logical port is defined by port software. Logical data connections
between the logical ports are configured in accordance with the logical model.
Each port is configured to communicate through different numbers of logical data
connections without modifying the port software.
In response to the occurrence of a condition, a module sends an event notification
to a policy module. The policy module responds to the notification by formulating
a request for one or more destination modules. The policy module provides the request
to an output port of the policy module. The output port forwards the request to
input ports of multiple modules according to the configured logical data connections.