1 |
package appl.parallel; |
2 |
|
3 |
import java.rmi.RemoteException; |
4 |
import java.util.HashMap; |
5 |
import java.util.Vector; |
6 |
|
7 |
import edu.bonn.xulu.XuluModellingPlatform; |
8 |
import edu.bonn.xulu.gui.ModelControlFrame; |
9 |
|
10 |
import appl.parallel.spmd.SPMDTask; |
11 |
import appl.parallel.spmd.split.SinglePartitionInfo; |
12 |
import appl.parallel.spmd.split.SplitMap; |
13 |
import appl.parallel.spmd.split.SplittableResource; |
14 |
|
15 |
/** |
16 |
* This is the base class for remote computing resources, which could be |
17 |
* displayed e.g. in the {@link ModelControlFrame} of the |
18 |
* {@link XuluModellingPlatform}. It provides very basic functionality like |
19 |
* connecting, disconnecting or pinging. Also it provides a flag saying if the |
20 |
* resource is available for computation (or e.g. in use). |
21 |
* |
22 |
* @author Dominik Appl |
23 |
*/ |
24 |
public interface ComputingResource extends java.rmi.Remote { |
25 |
|
26 |
/** |
27 |
* Should return Information about the ComputingResource. This Information |
28 |
* is primary used to display infos to the user. |
29 |
*/ |
30 |
public ComputingResourceProperties getResourceInformation() |
31 |
throws RemoteException; |
32 |
|
33 |
/** |
34 |
* Can be used to ping the object |
35 |
* |
36 |
* @param o |
37 |
* the object to ping with |
38 |
* @return the same object |
39 |
* @throws RemoteException |
40 |
*/ |
41 |
public Object ping(Object... o) throws RemoteException; |
42 |
|
43 |
/** |
44 |
* tries to connect to the resource |
45 |
* |
46 |
* @return true for success |
47 |
* @throws RemoteException |
48 |
*/ |
49 |
public boolean connect() throws RemoteException; |
50 |
|
51 |
/** |
52 |
* disconnects from the resource |
53 |
* |
54 |
* @throws RemoteException |
55 |
*/ |
56 |
public void disconnect() throws RemoteException; |
57 |
|
58 |
/** |
59 |
* @return true, if the resource is available for computation (may return |
60 |
* false, if the resource is used by another client) |
61 |
* @throws RemoteException |
62 |
*/ |
63 |
public boolean isAvailable() throws RemoteException; |
64 |
} |