794af06dfaee2a8004af07cab5f70be340caabdc
[packetcable.git] / packetcable-driver / src / main / java / org / pcmm / rcd / IPCMMServer.java
1 /**
2  @header@
3  */
4
5
6 package org.pcmm.rcd;
7
8 import org.pcmm.concurrent.IWorker;
9 import org.pcmm.state.IStateful;
10
11 /**
12  * <p>
13  * As discussed in RFC 2753 [11], the policy management framework underlying
14  * PacketCable Multimedia is based on the work of the IETF's Resource Allocation
15  * Protocol (RAP) working group. Since the Policy Server is situated between the
16  * Application Manager and the CMTS, it simultaneously plays a dual role as a
17  * "proxy" for AM-initiated session requests and as a "sentry" for defining and
18  * enforcing Resource Control Domain policy.
19  * </p>
20  * <p>
21  * As described in [11] and in keeping with the PacketCable 1.x DQoS model, the
22  * Policy Server serves as Policy Decision Point (PDP) in relation to the CMTS
23  * resource-management procedures. Conversely, the Policy Server assumes the
24  * role of Policy Enforcement Point (PEP) in relation to the Application Manager
25  * as it proxies Gate Control messages to and from the CMTS element.
26  * </p>
27  * <p>
28  * To revisit the interaction scenario, the Application Manager issues policy
29  * requests to the Policy Server. The Policy Server acting as a "sentry" for
30  * these requests, and applies a set of policy rules that have been
31  * pre-provisioned by the MSO. Upon passing the checks, the Policy Server then
32  * acts as a "proxy" with respect to the Application Manager and the CMTS,
33  * forwarding the policy request and returning any associated response. Each
34  * policy request transaction must be processed individually.
35  * </p>
36  * <p>
37  * Policy decisions may be based on a number of factors, such as:
38  * <ul>
39  * <li>Parameters associated with the request and the status of available
40  * resources</li>
41  * <li>Identity of the particular client and associated profile information</li>
42  * <li>Application parameters</li>
43  * <li>Security considerations</li>
44  * <li>Time-of-day</li>
45  * </ul>
46  * The primary functions of the Policy Server include:
47  * <ul>
48  * <li>A policy decision request mechanism, invoked by Application Managers</li>
49  * <li>A policy decision request 'policing' mechanism, enforcing installed
50  * Policy Rules</li>
51  * <li>A policy decision delivery mechanism, used to install policy decisions on
52  * the CMTS</li>
53  * <li>A mechanism to allow for the proxying of QoS management messages to the
54  * CMTS on behalf of the Application Manager</li>
55  * <li>An event recording interface to a Record Keeping Server that is used to
56  * log policy requests, which may in turn be correlated with network resource
57  * usage records</li>
58  * </ul>
59  * <p>
60  * Since the Policy Server functions as a proxy between the AM and CMTS elements
61  * (with complementary client and server interfaces) some MSOs may elect to
62  * deploy multiple layers of Policy Servers and to delegate certain policy
63  * decisions among these servers in order to satisfy requirements associated
64  * with scalability and fault-tolerance.
65  * </p>
66  * </p>
67  *
68  *
69  */
70 public interface IPCMMServer extends IStateful {
71
72     /**
73      *
74      */
75     void startServer();
76
77     /**
78      *
79      */
80     void stopServer();
81
82     /**
83      * When a client connects to the server, a handler is needed to manage the
84      * exchange of the messages between this client and the server.
85      *
86      *
87      */
88     public static interface IPCMMClientHandler extends IWorker, IPCMMClient {
89
90     }
91 }