KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > ha > framework > interfaces > LoadBalancePolicy


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.ha.framework.interfaces;
23
24 import org.jboss.invocation.Invocation;
25
26 /**
27  * Base interface for load-balancing policies. It is possible to implement many
28  * different load-balancing policies by implementing this simple interface and
29  * using it in the different clustered services (home interface of SLSB for
30  * example)
31  *
32  * @author <a HREF="mailto:bill@burkecentral.com">Bill Burke</a>.
33  * @author <a HREF="mailto:sacha.labourey@cogito-info.ch">Sacha Labourey</a>.
34  * @version $Revision: 37459 $
35  */

36 public interface LoadBalancePolicy extends java.io.Serializable JavaDoc
37 {
38    /** The serialVersionUID
39     * @since 1.3.4.2
40     */

41    static final long serialVersionUID = -5071668971774090555L;
42    /**
43     * Initialize the policy with a reference to its parent stub. the load-balancing policy
44     * implementation can use HARMIClient data to take its decision
45     * @param father The stub that owns the policy
46     */

47    public void init (HARMIClient father);
48
49    /**
50     * Called when the stub wishes to know on which node the next invocation must
51     * be performed.
52     * @param clusterFamily A list of potential target nodes
53     * @return The selected target for the next invocation
54     */

55    public Object JavaDoc chooseTarget (FamilyClusterInfo clusterFamily);
56
57    /**
58     * Called when the stub wishes to know on which node the next invocation must
59     * be performed.
60     * @param clusterFamily A list of potential target nodes
61     * @param routingDecision The actual invocation object if the policy wants
62     * to have some kind of invocation-based routing strategy
63     * @return The selected target for the next invocation
64     */

65    public Object JavaDoc chooseTarget (FamilyClusterInfo clusterFamily, Invocation routingDecision);
66 }
67
Popular Tags