|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.objectweb.proactive.core.body.BodyAdapter
org.objectweb.proactive.core.body.BodyAdapterForwarder
An adapter for a RemoteBodyForwarder. The Adpater is the generic entry point for remote calls to a RemoteBodyForwarder using different protocols such as RMI, RMISSH, IBIS, HTTP, JINI. This also allows to cache informations, and so to avoid crossing the network when calling some methods. A BodyAdapterForwarder has also an UniqueID which permit to associate an adapter to a body on the forwarder since forwarder basically works like a multiplexer.
BodyForwarderImpl
,
Serialized FormField Summary | |
protected RemoteBodyForwarder |
proxiedRemoteBody
The encapsulated RmiRemoteBody Points to the BodyForwarder running on the forwarder. |
Fields inherited from class org.objectweb.proactive.core.body.BodyAdapter |
bodyID, jobID |
Fields inherited from interface org.objectweb.proactive.core.body.RemoteBody |
bodyLogger |
Fields inherited from interface org.objectweb.proactive.core.body.UniversalBody |
bodyLogger |
Constructor Summary | |
BodyAdapterForwarder(BodyAdapterForwarder defaultAdapterForwarder,
BodyAdapter remoteAdapter)
Create an adpater pointing on the remoteBody pointed by defaultAdapterForwarder and associated to the ID contained in remoteAdapter. |
|
BodyAdapterForwarder(RemoteBodyForwarder remoteBodyForwarder)
Create an adapter on the local RemoteBodyForwarder. |
|
BodyAdapterForwarder(RemoteBodyForwarder remoteBodyForwarder,
UniqueID id)
Create an adapter pointing on remoteBodyForwarder and associated to the id. |
Method Summary | |
void |
addNFEListener(NFEListener listener)
|
void |
changeProxiedBody(Body newBody)
Change the body referenced by this adapter |
protected void |
construct(BodyAdapterForwarder localBody,
BodyAdapter remoteBody,
UniqueID id)
|
void |
createShortcut(Shortcut shortcut)
similar to the UniversalBody.updateLocation(org.objectweb.proactive.core.UniqueID, UniversalBody) method,
it allows direct communication to the target of a functional call, accross membranes of composite components. |
void |
disableAC()
Disables automatic continuation mechanism for this body |
void |
enableAC()
Enables automatic continuation mechanism for this body |
boolean |
equals(java.lang.Object o)
|
int |
fireNFE(NonFunctionalException e)
|
java.security.cert.X509Certificate |
getCertificate()
entity certificate |
byte[] |
getCertificateEncoded()
Entity's X509Certificate as byte array |
java.util.ArrayList |
getEntities()
Retrieves all the entity's ID which contain this entity plus this entity ID. |
UniqueID |
getID()
Returns the UniqueID of this body This identifier is unique accross all JVMs |
java.lang.String |
getJobID()
|
java.lang.String |
getNodeURL()
Returns the url of the node this body is associated to The url of the node can change if the active object migrates |
SecurityContext |
getPolicy(SecurityContext securityContext)
Ask the entity to fill the securityContext parameters with its own policy according to the communication details contained in the given securityContext |
java.security.PublicKey |
getPublicKey()
entity public key |
BodyAdapter |
getRemoteAdapter()
Returns the remote friendly version of this body |
int |
hashCode()
|
UniversalBody |
lookup(java.lang.String url)
Looks-up an active object previously registered in a registry. |
byte[][] |
publicKeyExchange(long sessionID,
byte[] myPublicKey,
byte[] myCertificate,
byte[] signature)
exchange entity certificate and/or public key if certificate are not available |
byte[] |
randomValue(long sessionID,
byte[] cl_rand)
Exchange random value between client and server entity |
java.lang.Object |
receiveFTMessage(FTMessage ev)
For sending a message to the FTManager linked to this object |
int |
receiveReply(Reply r)
Receives a reply in response to a former request. |
int |
receiveRequest(Request request)
Receives a request for later processing. |
void |
register(java.lang.String url)
Registers an active object into protocol-specific registry. |
void |
removeImmediateService(java.lang.String methodName,
java.lang.Class[] parametersTypes)
Removes an immediate service for this body An immediate service is a method that will bw excecuted by the calling thread. |
void |
removeNFEListener(NFEListener listener)
|
byte[][] |
secretKeyExchange(long sessionID,
byte[] encodedAESKey,
byte[] encodedIVParameters,
byte[] encodedClientMacKey,
byte[] encodedLockData,
byte[] parametersSignature)
this method sends encoded secret parameters to the target entity |
void |
setImmediateService(java.lang.String methodName)
For setting an immediate service for this body. |
void |
setImmediateService(java.lang.String methodName,
java.lang.Class[] parametersTypes)
Adds an immediate service for this body An immediate service is a method that will bw excecuted by the calling thread. |
long |
startNewSession(Communication policy)
start an unvalidated empty session |
void |
terminate()
Terminate the body. |
void |
terminateSession(long sessionID)
terminate a given session |
void |
unregister(java.lang.String url)
Unregisters an active object previously registered into a registry. |
void |
updateLocation(UniqueID uid,
UniversalBody body)
Signals to this body that the body identified by id is now to a new remote location. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected RemoteBodyForwarder proxiedRemoteBody
Constructor Detail |
public BodyAdapterForwarder(RemoteBodyForwarder remoteBodyForwarder)
public BodyAdapterForwarder(RemoteBodyForwarder remoteBodyForwarder, UniqueID id)
remoteBodyForwarder
- the bodyForwarder on the forwarderid
- the ID of the associated BodyAdapterpublic BodyAdapterForwarder(BodyAdapterForwarder defaultAdapterForwarder, BodyAdapter remoteAdapter)
defaultAdapterForwarder
- the original adapterremoteAdapter
- Method Detail |
public void changeProxiedBody(Body newBody) throws java.io.IOException
RemoteBody
changeProxiedBody
in interface RemoteBody
changeProxiedBody
in class BodyAdapter
newBody
- the body referenced after the call
java.io.IOException
- if a pb occurs during this method callpublic UniversalBody lookup(java.lang.String url) throws java.io.IOException
BodyAdapter
lookup
in class BodyAdapter
url
- the url the remote Body is registered to
java.io.IOException
- if the remote body cannot be found under the given url
or if the object found is not of type RemoteBodypublic void register(java.lang.String url) throws java.io.IOException
BodyAdapter
register
in class BodyAdapter
url
- the url under which the remote body is registered.
java.io.IOException
- if the remote body cannot be registeredpublic void unregister(java.lang.String url) throws java.io.IOException
BodyAdapter
unregister
in class BodyAdapter
url
- the url under which the active object is registered.
java.io.IOException
- if the remote object cannot be removed from the registrypublic boolean equals(java.lang.Object o)
public int hashCode()
protected void construct(BodyAdapterForwarder localBody, BodyAdapter remoteBody, UniqueID id) throws ProActiveException
ProActiveException
public java.lang.String getJobID()
getJobID
in interface RemoteBody
Job.getJobID()
public int receiveRequest(Request request) throws java.io.IOException, RenegotiateSessionException
RemoteBody
receiveRequest
in interface RemoteBody
request
- the request to process
java.io.IOException
- if the request cannot be accepted
RenegotiateSessionException
UniversalBody.receiveRequest(org.objectweb.proactive.core.body.request.Request)
public int receiveReply(Reply r) throws java.io.IOException
RemoteBody
receiveReply
in interface RemoteBody
r
- the reply received
java.io.IOException
- if the reply cannot be acceptedUniversalBody.receiveReply(org.objectweb.proactive.core.body.reply.Reply)
public java.lang.String getNodeURL()
RemoteBody
getNodeURL
in interface RemoteBody
UniversalBody.getNodeURL()
public UniqueID getID()
RemoteBody
getID
in interface RemoteBody
UniversalBody.getID()
public void updateLocation(UniqueID uid, UniversalBody body) throws java.io.IOException
RemoteBody
updateLocation
in interface RemoteBody
uid
- the id of the bodybody
- the stub to the new location
java.io.IOException
- if an exception occured during the remote communicationUniversalBody.updateLocation(org.objectweb.proactive.core.UniqueID, org.objectweb.proactive.core.body.UniversalBody)
public void createShortcut(Shortcut shortcut) throws java.io.IOException
UniversalBody
UniversalBody.updateLocation(org.objectweb.proactive.core.UniqueID, UniversalBody)
method,
it allows direct communication to the target of a functional call, accross membranes of composite components.
createShortcut
in interface UniversalBody
shortcut
- the shortcut to create
java.io.IOException
- if a pb occurs during this method callUniversalBody.createShortcut(org.objectweb.proactive.core.component.request.Shortcut)
public BodyAdapter getRemoteAdapter()
UniversalBody
getRemoteAdapter
in interface UniversalBody
UniversalBody.getRemoteAdapter()
public void terminate() throws java.io.IOException
RemoteBody
terminate
in interface RemoteBody
java.io.IOException
- if an exception occured during the remote communicationUniversalBody.terminate()
public void enableAC() throws java.io.IOException
RemoteBody
enableAC
in interface RemoteBody
java.io.IOException
- if an exception occured during the remote communicationUniversalBody.enableAC()
public void disableAC() throws java.io.IOException
RemoteBody
disableAC
in interface RemoteBody
java.io.IOException
- if an exception occured during the remote communicationUniversalBody.disableAC()
public void setImmediateService(java.lang.String methodName) throws java.io.IOException
RemoteBody
setImmediateService
in interface RemoteBody
java.io.IOException
- if an exception occured during the remote communicationUniversalBody.setImmediateService(java.lang.String)
public void setImmediateService(java.lang.String methodName, java.lang.Class[] parametersTypes) throws java.io.IOException
UniversalBody
setImmediateService
in interface RemoteBody
java.io.IOException
UniversalBody.setImmediateService(java.lang.String, java.lang.Class[])
public void removeImmediateService(java.lang.String methodName, java.lang.Class[] parametersTypes) throws java.io.IOException
UniversalBody
removeImmediateService
in interface RemoteBody
java.io.IOException
UniversalBody.removeImmediateService(java.lang.String, java.lang.Class[])
public void terminateSession(long sessionID) throws java.io.IOException, SecurityNotAvailableException
SecurityEntity
terminateSession
in interface SecurityEntity
sessionID
-
SecurityNotAvailableException
- id security is not available
java.io.IOException
SecurityEntity.terminateSession(long)
public java.security.cert.X509Certificate getCertificate() throws SecurityNotAvailableException, java.io.IOException
SecurityEntity
getCertificate
in interface SecurityEntity
java.io.IOException
- if communication fails
SecurityNotAvailableException
- if security is not availableSecurityEntity.getCertificate()
public long startNewSession(Communication policy) throws SecurityNotAvailableException, java.io.IOException, RenegotiateSessionException
SecurityEntity
startNewSession
in interface SecurityEntity
policy
- policy associated to the session
RenegotiateSessionException
- if the session immediatly expires
SecurityNotAvailableException
- if security is not available
java.io.IOException
SecurityEntity.startNewSession(org.objectweb.proactive.ext.security.Communication)
public java.security.PublicKey getPublicKey() throws SecurityNotAvailableException, java.io.IOException
SecurityEntity
getPublicKey
in interface SecurityEntity
SecurityNotAvailableException
java.io.IOException
SecurityEntity.getPublicKey()
public byte[] randomValue(long sessionID, byte[] cl_rand) throws SecurityNotAvailableException, RenegotiateSessionException, java.io.IOException
SecurityEntity
randomValue
in interface SecurityEntity
sessionID
- the session IDcl_rand
- client random value
RenegotiateSessionException
- if the session has expired
SecurityNotAvailableException
- if the security is not available
java.io.IOException
SecurityEntity.randomValue(long, byte[])
public byte[][] secretKeyExchange(long sessionID, byte[] encodedAESKey, byte[] encodedIVParameters, byte[] encodedClientMacKey, byte[] encodedLockData, byte[] parametersSignature) throws SecurityNotAvailableException, RenegotiateSessionException, java.io.IOException
SecurityEntity
secretKeyExchange
in interface SecurityEntity
sessionID
- session IDencodedAESKey
- the AES key use to exchange secret messageencodedIVParameters
- Initilization parameters for the AES keyencodedClientMacKey
- MAC key for checking signature of future messagesencodedLockData
- random value to prevent message replays by an external attackerparametersSignature
- encoded signature of the previous parameters
java.io.IOException
- if communication fails
RenegotiateSessionException
- if the session has expired or has been cancelled during this exchange
SecurityNotAvailableException
- if this entity does not support securitySecurityEntity.secretKeyExchange(long, byte[], byte[], byte[], byte[], byte[])
public SecurityContext getPolicy(SecurityContext securityContext) throws SecurityNotAvailableException, java.io.IOException
SecurityEntity
getPolicy
in interface SecurityEntity
securityContext
- communication details allowing the entity to
look for a matching policy
SecurityNotAvailableException
- thrown the entity doest not support the security
java.io.IOException
SecurityEntity.getPolicy(org.objectweb.proactive.ext.security.SecurityContext)
public byte[] getCertificateEncoded() throws SecurityNotAvailableException, java.io.IOException
SecurityEntity
getCertificateEncoded
in interface SecurityEntity
SecurityNotAvailableException
java.io.IOException
SecurityEntity.getCertificateEncoded()
public java.util.ArrayList getEntities() throws SecurityNotAvailableException, java.io.IOException
SecurityEntity
getEntities
in interface SecurityEntity
SecurityNotAvailableException
- if the target entity does not support security
java.io.IOException
SecurityEntity.getEntities()
public java.lang.Object receiveFTMessage(FTMessage ev) throws java.io.IOException
RemoteBody
receiveFTMessage
in interface RemoteBody
ev
- the message
java.io.IOException
- if an exception occured during the remote communicationpublic void addNFEListener(NFEListener listener)
addNFEListener
in interface RemoteBody
public void removeNFEListener(NFEListener listener)
removeNFEListener
in interface RemoteBody
public int fireNFE(NonFunctionalException e)
fireNFE
in interface RemoteBody
public byte[][] publicKeyExchange(long sessionID, byte[] myPublicKey, byte[] myCertificate, byte[] signature) throws SecurityNotAvailableException, RenegotiateSessionException, KeyExchangeException, java.io.IOException
SecurityEntity
publicKeyExchange
in interface SecurityEntity
sessionID
- the session IDmyPublicKey
- encoded public keymyCertificate
- encoded certificatesignature
- encoded signature of previous paramaters
SecurityNotAvailableException
- if the security is not available
KeyExchangeException
- if a key data/length/algorithm is not supported
RenegotiateSessionException
- if the session has expired
java.io.IOException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |