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.body;
00032
00033 import java.io.IOException;
00034 import java.security.PublicKey;
00035 import java.security.cert.X509Certificate;
00036 import java.util.ArrayList;
00037
00038 import org.apache.log4j.Logger;
00039 import org.objectweb.proactive.Body;
00040 import org.objectweb.proactive.core.UniqueID;
00041 import org.objectweb.proactive.core.body.ft.internalmsg.FTMessage;
00042 import org.objectweb.proactive.core.body.reply.Reply;
00043 import org.objectweb.proactive.core.body.request.Request;
00044 import org.objectweb.proactive.core.exceptions.NonFunctionalException;
00045 import org.objectweb.proactive.core.exceptions.manager.NFEListener;
00046 import org.objectweb.proactive.core.util.log.Loggers;
00047 import org.objectweb.proactive.core.util.log.ProActiveLogger;
00048 import org.objectweb.proactive.ext.security.Communication;
00049 import org.objectweb.proactive.ext.security.SecurityContext;
00050 import org.objectweb.proactive.ext.security.crypto.KeyExchangeException;
00051 import org.objectweb.proactive.ext.security.exceptions.RenegotiateSessionException;
00052 import org.objectweb.proactive.ext.security.exceptions.SecurityNotAvailableException;
00053 import org.objectweb.proactive.ext.security.securityentity.Entity;
00054
00055
00063 public interface RemoteBodyForwarder {
00064 public static Logger bodyLogger = ProActiveLogger.getLogger(Loggers.BODY);
00065
00069 public int receiveRequest(UniqueID id, Request r)
00070 throws java.io.IOException, RenegotiateSessionException;
00071
00075 public int receiveReply(UniqueID id, Reply r) throws java.io.IOException;
00076
00080 public void terminate(UniqueID id) throws java.io.IOException;
00081
00085 public String getNodeURL(UniqueID id) throws java.io.IOException;
00086
00090 public UniqueID getID(UniqueID id) throws java.io.IOException;
00091
00095 public String getJobID(UniqueID id) throws java.io.IOException;
00096
00100 public void updateLocation(UniqueID id, UniqueID uid, UniversalBody body)
00101 throws java.io.IOException;
00102
00106 public void enableAC(UniqueID id) throws java.io.IOException;
00107
00111 public void disableAC(UniqueID id) throws java.io.IOException;
00112
00116 public void setImmediateService(UniqueID id, String methodName)
00117 throws java.io.IOException;
00118
00122 public void setImmediateService(UniqueID id, String methodName,
00123 Class[] parametersTypes) throws IOException;
00124
00128 public void removeImmediateService(UniqueID id, String methodName,
00129 Class[] parametersTypes) throws IOException;
00130
00131
00132
00133
00134 public X509Certificate getCertificate(UniqueID id)
00135 throws SecurityNotAvailableException, IOException;
00136
00137 public long startNewSession(UniqueID id, Communication policy)
00138 throws SecurityNotAvailableException, RenegotiateSessionException,
00139 IOException;
00140
00141 public PublicKey getPublicKey(UniqueID id)
00142 throws SecurityNotAvailableException, IOException;
00143
00144 public byte[] randomValue(UniqueID id, long sessionID,
00145 byte[] clientRandomValue)
00146 throws SecurityNotAvailableException, RenegotiateSessionException,
00147 IOException;
00148
00149 public byte[][] publicKeyExchange(UniqueID id, long sessionID,
00150 byte[] myPublicKey, byte[] myCertificate, byte[] signature)
00151 throws SecurityNotAvailableException, RenegotiateSessionException,
00152 KeyExchangeException, IOException;
00153
00154 public byte[][] secretKeyExchange(UniqueID id, long sessionID,
00155 byte[] encodedAESKey, byte[] encodedIVParameters,
00156 byte[] encodedClientMacKey, byte[] encodedLockData,
00157 byte[] parametersSignature)
00158 throws SecurityNotAvailableException, RenegotiateSessionException,
00159 IOException;
00160
00161 public SecurityContext getPolicy(UniqueID id,
00162 SecurityContext securityContext)
00163 throws SecurityNotAvailableException, IOException;
00164
00165 public byte[] getCertificateEncoded(UniqueID id)
00166 throws SecurityNotAvailableException, IOException;
00167
00168 public ArrayList<Entity> getEntities(UniqueID id)
00169 throws SecurityNotAvailableException, IOException;
00170
00171 public void terminateSession(UniqueID id, long sessionID)
00172 throws SecurityNotAvailableException, IOException;
00173
00174 public Object receiveFTMessage(UniqueID id, FTMessage fte)
00175 throws IOException;
00176
00177 public void changeProxiedBody(UniqueID id, Body newBody)
00178 throws java.io.IOException;
00179
00180
00181
00182
00183 public void addNFEListener(UniqueID id, NFEListener listener)
00184 throws java.io.IOException;
00185
00186 public void removeNFEListener(UniqueID id, NFEListener listener)
00187 throws java.io.IOException;
00188
00189 public int fireNFE(UniqueID id, NonFunctionalException e)
00190 throws java.io.IOException;
00191
00192
00193
00194
00195 public UniversalBody lookup(UniqueID id, String url)
00196 throws java.io.IOException;
00197
00198 public void unregister(UniqueID id, String url) throws java.io.IOException;
00199
00200 public void register(UniqueID id, String url) throws java.io.IOException;
00201
00202 public BodyAdapter getRemoteAdapter(UniqueID id) throws java.io.IOException;
00203 }