KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > clustering > ClusteredInvocation


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17 package org.apache.geronimo.clustering;
18
19
20 /**
21  * Represents a clustered invocation.
22  * <p>
23  * A clustered invocation is intended to be a thin wrapper around an actual invocation enhancing this latter with
24  * an association to a local SessionManager. For instance, an HTTPRequest is an actual invocation.
25  * <p>
26  * A clustered invocation is interposed between a client and the Session he wants to access to provide cluster wide
27  * access serialization to the requested Session. A clustered invocation is associated to a local SessionManager, even
28  * if no contract captures such a relationship. When a clustered invocation is executed one of the two following
29  * scenarios happen:
30  * <ul>
31  * <li>the clustered invocation is executed locally. A local execution implies that the local SessionManager associated
32  * to the clustered invocation is owning the Session (may be after a migration); or</li>
33  * <li>the clustered invocation is executed remotely on the Node where the Session is being owned.</li>
34  * </ul>
35  *
36  * @version $Rev$ $Date$
37  */

38 public interface ClusteredInvocation {
39     
40     /**
41      * Invokes the clustered invocation.
42      *
43      * @throws ClusteredInvocationException Thrown when the invocation cannot be successfully executed. This may
44      * be either due to the fact that the actual invocation has failed or the requestedSessionId is unknown by
45      * the associated local SessionManager and its remote peers.
46      */

47     void invoke() throws ClusteredInvocationException;
48     
49     /**
50      * Gets the sessionId of the Session bound to the invocation represented by this instance.
51      *
52      * @return sessionId of the targeted Session.
53      */

54     String JavaDoc getRequestedSessionId();
55     
56 }
57
Popular Tags