00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.core.runtime;
00032
00033 import java.io.IOException;
00034 import java.rmi.AlreadyBoundException;
00035 import java.security.PublicKey;
00036 import java.security.cert.X509Certificate;
00037 import java.util.ArrayList;
00038
00039 import org.apache.log4j.Logger;
00040 import org.objectweb.proactive.Body;
00041 import org.objectweb.proactive.core.ProActiveException;
00042 import org.objectweb.proactive.core.UniqueRuntimeID;
00043 import org.objectweb.proactive.core.body.UniversalBody;
00044 import org.objectweb.proactive.core.body.ft.checkpointing.Checkpoint;
00045 import org.objectweb.proactive.core.descriptor.data.ProActiveDescriptor;
00046 import org.objectweb.proactive.core.descriptor.data.VirtualNode;
00047 import org.objectweb.proactive.core.mop.ConstructorCall;
00048 import org.objectweb.proactive.core.mop.ConstructorCallExecutionFailedException;
00049 import org.objectweb.proactive.core.node.NodeException;
00050 import org.objectweb.proactive.core.process.ExternalProcess;
00051 import org.objectweb.proactive.core.process.UniversalProcess;
00052 import org.objectweb.proactive.core.util.log.Loggers;
00053 import org.objectweb.proactive.core.util.log.ProActiveLogger;
00054 import org.objectweb.proactive.ext.security.Communication;
00055 import org.objectweb.proactive.ext.security.ProActiveSecurityManager;
00056 import org.objectweb.proactive.ext.security.SecurityContext;
00057 import org.objectweb.proactive.ext.security.crypto.KeyExchangeException;
00058 import org.objectweb.proactive.ext.security.exceptions.RenegotiateSessionException;
00059 import org.objectweb.proactive.ext.security.exceptions.SecurityNotAvailableException;
00060 import org.objectweb.proactive.ext.security.securityentity.Entity;
00061
00062
00073 public interface RemoteProActiveRuntimeForwarder extends RemoteProActiveRuntime {
00074 static Logger runtimeLogger = ProActiveLogger.getLogger(Loggers.RUNTIME);
00075
00076 public String createLocalNode(UniqueRuntimeID ruid, String nodeName,
00077 boolean replacePreviousBinding, ProActiveSecurityManager psm,
00078 String VNname, String jobId)
00079 throws IOException, NodeException, AlreadyBoundException;
00080
00081 public void killAllNodes(UniqueRuntimeID ruid)
00082 throws IOException, ProActiveException;
00083
00084 public void killNode(UniqueRuntimeID ruid, String nodeName)
00085 throws IOException, ProActiveException;
00086
00087 public void createVM(UniqueRuntimeID ruid, UniversalProcess remoteProcess)
00088 throws java.io.IOException, ProActiveException;
00089
00090 public String[] getLocalNodeNames(UniqueRuntimeID ruid)
00091 throws IOException, ProActiveException;
00092
00093 public VMInformation getVMInformation(UniqueRuntimeID ruid)
00094 throws IOException;
00095
00096 public void register(UniqueRuntimeID ruid,
00097 ProActiveRuntime proActiveRuntimeDist, String proActiveRuntimeName,
00098 String creatorID, String creationProtocol, String vmName)
00099 throws IOException, ProActiveException;
00100
00101 public void unregister(UniqueRuntimeID ruid,
00102 ProActiveRuntime proActiveRuntimeDist, String proActiveRuntimeName,
00103 String creatorID, String creationProtocol, String vmName)
00104 throws IOException, ProActiveException;
00105
00106 public ProActiveRuntime[] getProActiveRuntimes(UniqueRuntimeID ruid)
00107 throws IOException, ProActiveException;
00108
00109 public ProActiveRuntime getProActiveRuntime(UniqueRuntimeID ruid,
00110 String proActiveRuntimeName) throws IOException, ProActiveException;
00111
00112 public void addAcquaintance(UniqueRuntimeID ruid,
00113 String proActiveRuntimeName) throws IOException, ProActiveException;
00114
00115 public String[] getAcquaintances(UniqueRuntimeID ruid)
00116 throws IOException, ProActiveException;
00117
00118 public void rmAcquaintance(UniqueRuntimeID ruid, String proActiveRuntimeName)
00119 throws IOException, ProActiveException;
00120
00121 public void killRT(UniqueRuntimeID ruid, boolean softly)
00122 throws Exception;
00123
00124 public String getURL(UniqueRuntimeID ruid)
00125 throws IOException, ProActiveException;
00126
00127 public ArrayList getActiveObjects(UniqueRuntimeID ruid, String nodeName)
00128 throws IOException, ProActiveException;
00129
00130 public ArrayList getActiveObjects(UniqueRuntimeID ruid, String nodeName,
00131 String objectName) throws IOException, ProActiveException;
00132
00133 public VirtualNode getVirtualNode(UniqueRuntimeID ruid,
00134 String virtualNodeName) throws IOException, ProActiveException;
00135
00136 public void registerVirtualNode(UniqueRuntimeID ruid,
00137 String virtualNodeName, boolean replacePreviousBinding)
00138 throws IOException, ProActiveException, AlreadyBoundException;
00139
00140 public void unregisterVirtualNode(UniqueRuntimeID ruid,
00141 String virtualNodeName) throws IOException, ProActiveException;
00142
00143 public void unregisterAllVirtualNodes(UniqueRuntimeID ruid)
00144 throws IOException, ProActiveException;
00145
00146 public String getJobID(UniqueRuntimeID ruid, String nodeUrl)
00147 throws IOException, ProActiveException;
00148
00149 public UniversalBody createBody(UniqueRuntimeID ruid, String nodeName,
00150 ConstructorCall bodyConstructorCall, boolean isNodeLocal)
00151 throws IOException, ConstructorCallExecutionFailedException,
00152 java.lang.reflect.InvocationTargetException, ProActiveException;
00153
00154 public UniversalBody receiveBody(UniqueRuntimeID ruid, String nodeName,
00155 Body body) throws IOException, ProActiveException;
00156
00157 public UniversalBody receiveCheckpoint(UniqueRuntimeID ruid,
00158 String nodeName, Checkpoint ckpt, int inc)
00159 throws IOException, ProActiveException;
00160
00161 public ExternalProcess getProcessToDeploy(UniqueRuntimeID urid,
00162 ProActiveRuntime proActiveRuntimeDist, String creatorID, String vmName,
00163 String padURL) throws ProActiveException, IOException;
00164
00168 public byte[] getClassDataFromParentRuntime(UniqueRuntimeID ruid,
00169 String className) throws IOException, ProActiveException;
00170
00174 public byte[] getClassDataFromThisRuntime(UniqueRuntimeID ruid,
00175 String className) throws IOException, ProActiveException;
00176
00177 public ProActiveDescriptor getDescriptor(UniqueRuntimeID ruid, String url,
00178 boolean isHierarchicalSearch) throws IOException, ProActiveException;
00179
00180
00181
00182
00183 public X509Certificate getCertificate(UniqueRuntimeID ruid)
00184 throws SecurityNotAvailableException, java.io.IOException;
00185
00186 public long startNewSession(UniqueRuntimeID ruid, Communication policy)
00187 throws SecurityNotAvailableException, RenegotiateSessionException,
00188 java.io.IOException;
00189
00190 public PublicKey getPublicKey(UniqueRuntimeID ruid)
00191 throws SecurityNotAvailableException, java.io.IOException;
00192
00193 public byte[] randomValue(UniqueRuntimeID ruid, long sessionID,
00194 byte[] clientRandomValue)
00195 throws SecurityNotAvailableException, RenegotiateSessionException,
00196 java.io.IOException;
00197
00198 public byte[][] publicKeyExchange(UniqueRuntimeID ruid, long sessionID,
00199 byte[] myPublicKey, byte[] myCertificate, byte[] signature)
00200 throws SecurityNotAvailableException, RenegotiateSessionException,
00201 KeyExchangeException, java.io.IOException;
00202
00203 byte[][] secretKeyExchange(UniqueRuntimeID ruid, long sessionID,
00204 byte[] encodedAESKey, byte[] encodedIVParameters,
00205 byte[] encodedClientMacKey, byte[] encodedLockData,
00206 byte[] parametersSignature)
00207 throws SecurityNotAvailableException, RenegotiateSessionException,
00208 java.io.IOException;
00209
00210 public SecurityContext getPolicy(UniqueRuntimeID ruid,
00211 SecurityContext securityContext)
00212 throws SecurityNotAvailableException, java.io.IOException;
00213
00214 public byte[] getCertificateEncoded(UniqueRuntimeID ruid)
00215 throws SecurityNotAvailableException, java.io.IOException;
00216
00217 public ArrayList<Entity> getEntities(UniqueRuntimeID ruid)
00218 throws SecurityNotAvailableException, java.io.IOException;
00219
00220 public void terminateSession(UniqueRuntimeID ruid, long sessionID)
00221 throws java.io.IOException, SecurityNotAvailableException;
00222
00223
00224 public String getVNName(UniqueRuntimeID ruid, String Nodename)
00225 throws IOException, ProActiveException;
00226
00227 public void launchMain(UniqueRuntimeID ruid, String className,
00228 String[] parameters)
00229 throws IOException, ClassNotFoundException, NoSuchMethodException,
00230 ProActiveException;
00231
00232 public void newRemote(UniqueRuntimeID ruid, String className)
00233 throws IOException, ClassNotFoundException, ProActiveException;
00234
00235 public Object setLocalNodeProperty(UniqueRuntimeID runtimeID,
00236 String nodeName, String key, String value)
00237 throws IOException, ProActiveException;
00238
00239 public String getLocalNodeProperty(UniqueRuntimeID runtimeID,
00240 String nodeName, String key) throws IOException, ProActiveException;
00241 }