org.objectweb.proactive.core.runtime.ibis
Class IbisProActiveRuntimeImpl

java.lang.Object
  extended byibis.rmi.server.RemoteObject
      extended byibis.rmi.server.RemoteServer
          extended byibis.rmi.server.UnicastRemoteObject
              extended byorg.objectweb.proactive.core.runtime.ibis.IbisProActiveRuntimeImpl
All Implemented Interfaces:
IbisProActiveRuntime, ibis.rmi.Remote, RemoteProActiveRuntime, ibis.io.Serializable, java.io.Serializable

public class IbisProActiveRuntimeImpl
extends ibis.rmi.server.UnicastRemoteObject
implements IbisProActiveRuntime

An adapter for a ProActiveRuntime to be able to receive remote calls. This helps isolate Ibis-specific code into a small set of specific classes, thus enabling reuse if we one day decide to switch to anothe remote objects library.

See Also:
Adapter Pattern, Serialized Form

Field Summary
protected  java.util.ArrayList nodesArray
           
protected  ProActiveRuntime proActiveRuntime
           
protected  java.lang.String proActiveRuntimeURL
           
protected  java.util.ArrayList vnNodesArray
           
 
Fields inherited from class ibis.rmi.server.RemoteObject
ref
 
Fields inherited from interface org.objectweb.proactive.core.runtime.RemoteProActiveRuntime
runtimeLogger
 
Constructor Summary
IbisProActiveRuntimeImpl()
           
 
Method Summary
 void addAcquaintance(java.lang.String proActiveRuntimeName)
           
 UniversalBody createBody(java.lang.String nodeName, ConstructorCall bodyConstructorCall, boolean isNodeLocal)
           
 java.lang.String createLocalNode(java.lang.String nodeName, boolean replacePreviousBinding, ProActiveSecurityManager securityManager, java.lang.String vnname, java.lang.String jobId)
           
 void createVM(UniversalProcess remoteProcess)
           
 java.lang.String[] getAcquaintances()
           
 java.util.ArrayList getActiveObjects(java.lang.String nodeName)
           
 java.util.ArrayList getActiveObjects(java.lang.String nodeName, java.lang.String objectName)
           
 java.security.cert.X509Certificate getCertificate()
           
 byte[] getCertificateEncoded()
           
 byte[] getClassDataFromParentRuntime(java.lang.String className)
           
 byte[] getClassDataFromThisRuntime(java.lang.String className)
           
 ProActiveDescriptor getDescriptor(java.lang.String url, boolean isHierarchicalSearch)
           
 java.util.ArrayList getEntities()
           
 java.lang.String getJobID()
           
 java.lang.String getJobID(java.lang.String nodeUrl)
           
 java.lang.String[] getLocalNodeNames()
           
 SecurityContext getPolicy(SecurityContext securityContext)
           
 ProActiveRuntime getProActiveRuntime(java.lang.String proActiveRuntimeName)
           
 ProActiveRuntime[] getProActiveRuntimes()
           
 ExternalProcess getProcessToDeploy(ProActiveRuntime proActiveRuntimeDist, java.lang.String creatorID, java.lang.String vmName, java.lang.String padURL)
           
 java.security.PublicKey getPublicKey()
           
 java.lang.String getURL()
           
 VirtualNode getVirtualNode(java.lang.String virtualNodeName)
           
 VMInformation getVMInformation()
           
 java.lang.String getVNName(java.lang.String nodename)
           
 void killAllNodes()
           
 void killNode(java.lang.String nodeName)
           
 void killRT(boolean softly)
           
 void launchMain(java.lang.String className, java.lang.String[] parameters)
           
 void newRemote(java.lang.String className)
           
 byte[][] publicKeyExchange(long sessionID, byte[] myPublicKey, byte[] myCertificate, byte[] signature)
           
 byte[] randomValue(long sessionID, byte[] clientRandomValue)
           
 UniversalBody receiveBody(java.lang.String nodeName, Body body)
           
 UniversalBody receiveCheckpoint(java.lang.String nodeURL, Checkpoint ckpt, int inc)
           
 void register(ProActiveRuntime proActiveRuntimeDist, java.lang.String proActiveRuntimeName, java.lang.String creatorID, java.lang.String creationProtocol, java.lang.String vmName)
           
 void registerVirtualNode(java.lang.String virtualNodeName, boolean replacePreviousBinding)
           
 void rmAcquaintance(java.lang.String proActiveRuntimeName)
           
 byte[][] secretKeyExchange(long sessionID, byte[] encodedAESKey, byte[] encodedIVParameters, byte[] encodedClientMacKey, byte[] encodedLockData, byte[] parametersSignature)
           
 long startNewSession(Communication policy)
           
 void terminateSession(long sessionID)
           
 void unregister(ProActiveRuntime proActiveRuntimeDist, java.lang.String proActiveRuntimeName, java.lang.String creatorID, java.lang.String creationProtocol, java.lang.String vmName)
           
 void unregisterAllVirtualNodes()
           
 void unregisterVirtualNode(java.lang.String virtualnodeName)
           
 
Methods inherited from class ibis.rmi.server.UnicastRemoteObject
clone, exportObject, generated_DefaultReadObject, generated_DefaultWriteObject, generated_WriteObject
 
Methods inherited from class ibis.rmi.server.RemoteServer
getClientHost
 
Methods inherited from class ibis.rmi.server.RemoteObject
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

proActiveRuntime

protected transient ProActiveRuntime proActiveRuntime

proActiveRuntimeURL

protected java.lang.String proActiveRuntimeURL

nodesArray

protected java.util.ArrayList nodesArray

vnNodesArray

protected java.util.ArrayList vnNodesArray
Constructor Detail

IbisProActiveRuntimeImpl

public IbisProActiveRuntimeImpl()
                         throws ibis.rmi.RemoteException,
                                ibis.rmi.AlreadyBoundException
Method Detail

createLocalNode

public java.lang.String createLocalNode(java.lang.String nodeName,
                                        boolean replacePreviousBinding,
                                        ProActiveSecurityManager securityManager,
                                        java.lang.String vnname,
                                        java.lang.String jobId)
                                 throws ibis.rmi.RemoteException,
                                        NodeException
Specified by:
createLocalNode in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
NodeException

killAllNodes

public void killAllNodes()
                  throws ibis.rmi.RemoteException,
                         ProActiveException
Specified by:
killAllNodes in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

killNode

public void killNode(java.lang.String nodeName)
              throws ibis.rmi.RemoteException,
                     ProActiveException
Specified by:
killNode in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

createVM

public void createVM(UniversalProcess remoteProcess)
              throws java.io.IOException,
                     ProActiveException
Specified by:
createVM in interface RemoteProActiveRuntime
Throws:
java.io.IOException
ProActiveException

getLocalNodeNames

public java.lang.String[] getLocalNodeNames()
                                     throws ibis.rmi.RemoteException,
                                            ProActiveException
Specified by:
getLocalNodeNames in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

getVMInformation

public VMInformation getVMInformation()
Specified by:
getVMInformation in interface RemoteProActiveRuntime

register

public void register(ProActiveRuntime proActiveRuntimeDist,
                     java.lang.String proActiveRuntimeName,
                     java.lang.String creatorID,
                     java.lang.String creationProtocol,
                     java.lang.String vmName)
              throws ibis.rmi.RemoteException,
                     ProActiveException
Specified by:
register in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

unregister

public void unregister(ProActiveRuntime proActiveRuntimeDist,
                       java.lang.String proActiveRuntimeName,
                       java.lang.String creatorID,
                       java.lang.String creationProtocol,
                       java.lang.String vmName)
                throws ibis.rmi.RemoteException,
                       ProActiveException
Specified by:
unregister in interface RemoteProActiveRuntime
Throws:
ProActiveException
ibis.rmi.RemoteException
See Also:
RemoteProActiveRuntime.unregister(org.objectweb.proactive.core.runtime.ProActiveRuntime, java.lang.String, java.lang.String, java.lang.String, java.lang.String)

getProActiveRuntimes

public ProActiveRuntime[] getProActiveRuntimes()
                                        throws ibis.rmi.RemoteException,
                                               ProActiveException
Specified by:
getProActiveRuntimes in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

getProActiveRuntime

public ProActiveRuntime getProActiveRuntime(java.lang.String proActiveRuntimeName)
                                     throws ibis.rmi.RemoteException,
                                            ProActiveException
Specified by:
getProActiveRuntime in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

addAcquaintance

public void addAcquaintance(java.lang.String proActiveRuntimeName)
                     throws ibis.rmi.RemoteException,
                            ProActiveException
Specified by:
addAcquaintance in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

getAcquaintances

public java.lang.String[] getAcquaintances()
                                    throws ibis.rmi.RemoteException,
                                           ProActiveException
Specified by:
getAcquaintances in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

rmAcquaintance

public void rmAcquaintance(java.lang.String proActiveRuntimeName)
                    throws ibis.rmi.RemoteException,
                           ProActiveException
Specified by:
rmAcquaintance in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

killRT

public void killRT(boolean softly)
            throws java.lang.Exception
Specified by:
killRT in interface RemoteProActiveRuntime
Throws:
java.lang.Exception

getProcessToDeploy

public ExternalProcess getProcessToDeploy(ProActiveRuntime proActiveRuntimeDist,
                                          java.lang.String creatorID,
                                          java.lang.String vmName,
                                          java.lang.String padURL)
                                   throws ProActiveException
Specified by:
getProcessToDeploy in interface RemoteProActiveRuntime
Throws:
ProActiveException

getURL

public java.lang.String getURL()
Specified by:
getURL in interface RemoteProActiveRuntime

getActiveObjects

public java.util.ArrayList getActiveObjects(java.lang.String nodeName)
                                     throws ibis.rmi.RemoteException,
                                            ProActiveException
Specified by:
getActiveObjects in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

getActiveObjects

public java.util.ArrayList getActiveObjects(java.lang.String nodeName,
                                            java.lang.String objectName)
                                     throws ibis.rmi.RemoteException,
                                            ProActiveException
Specified by:
getActiveObjects in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

getVirtualNode

public VirtualNode getVirtualNode(java.lang.String virtualNodeName)
                           throws ibis.rmi.RemoteException,
                                  ProActiveException
Specified by:
getVirtualNode in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

registerVirtualNode

public void registerVirtualNode(java.lang.String virtualNodeName,
                                boolean replacePreviousBinding)
                         throws java.io.IOException
Specified by:
registerVirtualNode in interface RemoteProActiveRuntime
Throws:
java.io.IOException

unregisterVirtualNode

public void unregisterVirtualNode(java.lang.String virtualnodeName)
                           throws ibis.rmi.RemoteException,
                                  ProActiveException
Specified by:
unregisterVirtualNode in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

unregisterAllVirtualNodes

public void unregisterAllVirtualNodes()
                               throws ibis.rmi.RemoteException,
                                      ProActiveException
Specified by:
unregisterAllVirtualNodes in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

createBody

public UniversalBody createBody(java.lang.String nodeName,
                                ConstructorCall bodyConstructorCall,
                                boolean isNodeLocal)
                         throws ibis.rmi.RemoteException,
                                ConstructorCallExecutionFailedException,
                                ProActiveException,
                                java.lang.reflect.InvocationTargetException
Specified by:
createBody in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ConstructorCallExecutionFailedException
ProActiveException
java.lang.reflect.InvocationTargetException

receiveBody

public UniversalBody receiveBody(java.lang.String nodeName,
                                 Body body)
                          throws ibis.rmi.RemoteException,
                                 ProActiveException
Specified by:
receiveBody in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

receiveCheckpoint

public UniversalBody receiveCheckpoint(java.lang.String nodeURL,
                                       Checkpoint ckpt,
                                       int inc)
                                throws ibis.rmi.RemoteException,
                                       ProActiveException
Specified by:
receiveCheckpoint in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

getVNName

public java.lang.String getVNName(java.lang.String nodename)
                           throws ibis.rmi.RemoteException,
                                  ProActiveException
Specified by:
getVNName in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
ProActiveException

getCertificate

public java.security.cert.X509Certificate getCertificate()
                                                  throws SecurityNotAvailableException,
                                                         ibis.rmi.RemoteException,
                                                         java.io.IOException
Specified by:
getCertificate in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
ibis.rmi.RemoteException
java.io.IOException

startNewSession

public long startNewSession(Communication policy)
                     throws SecurityNotAvailableException,
                            RenegotiateSessionException,
                            ibis.rmi.RemoteException,
                            java.io.IOException
Specified by:
startNewSession in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
RenegotiateSessionException
ibis.rmi.RemoteException
java.io.IOException

getPublicKey

public java.security.PublicKey getPublicKey()
                                     throws SecurityNotAvailableException,
                                            ibis.rmi.RemoteException,
                                            java.io.IOException
Specified by:
getPublicKey in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
ibis.rmi.RemoteException
java.io.IOException

randomValue

public byte[] randomValue(long sessionID,
                          byte[] clientRandomValue)
                   throws SecurityNotAvailableException,
                          ibis.rmi.RemoteException,
                          java.io.IOException,
                          RenegotiateSessionException
Specified by:
randomValue in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
ibis.rmi.RemoteException
java.io.IOException
RenegotiateSessionException

publicKeyExchange

public byte[][] publicKeyExchange(long sessionID,
                                  byte[] myPublicKey,
                                  byte[] myCertificate,
                                  byte[] signature)
                           throws SecurityNotAvailableException,
                                  RenegotiateSessionException,
                                  KeyExchangeException,
                                  ibis.rmi.RemoteException,
                                  java.io.IOException
Specified by:
publicKeyExchange in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
RenegotiateSessionException
KeyExchangeException
ibis.rmi.RemoteException
java.io.IOException

secretKeyExchange

public byte[][] secretKeyExchange(long sessionID,
                                  byte[] encodedAESKey,
                                  byte[] encodedIVParameters,
                                  byte[] encodedClientMacKey,
                                  byte[] encodedLockData,
                                  byte[] parametersSignature)
                           throws SecurityNotAvailableException,
                                  RenegotiateSessionException,
                                  ibis.rmi.RemoteException,
                                  java.io.IOException
Specified by:
secretKeyExchange in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
RenegotiateSessionException
ibis.rmi.RemoteException
java.io.IOException

getPolicy

public SecurityContext getPolicy(SecurityContext securityContext)
                          throws SecurityNotAvailableException,
                                 ibis.rmi.RemoteException,
                                 java.io.IOException
Specified by:
getPolicy in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
ibis.rmi.RemoteException
java.io.IOException

getCertificateEncoded

public byte[] getCertificateEncoded()
                             throws SecurityNotAvailableException,
                                    ibis.rmi.RemoteException,
                                    java.io.IOException
Specified by:
getCertificateEncoded in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
ibis.rmi.RemoteException
java.io.IOException

getEntities

public java.util.ArrayList getEntities()
                                throws SecurityNotAvailableException,
                                       ibis.rmi.RemoteException,
                                       java.io.IOException
Specified by:
getEntities in interface RemoteProActiveRuntime
Throws:
SecurityNotAvailableException
ibis.rmi.RemoteException
java.io.IOException

terminateSession

public void terminateSession(long sessionID)
                      throws ibis.rmi.RemoteException,
                             SecurityNotAvailableException,
                             java.io.IOException
Specified by:
terminateSession in interface RemoteProActiveRuntime
Throws:
ibis.rmi.RemoteException
SecurityNotAvailableException
java.io.IOException

getJobID

public java.lang.String getJobID(java.lang.String nodeUrl)
                          throws ibis.rmi.RemoteException,
                                 ProActiveException
Specified by:
getJobID in interface RemoteProActiveRuntime
Throws:
ProActiveException
ibis.rmi.RemoteException
See Also:
RemoteProActiveRuntime.getJobID(java.lang.String)

getClassDataFromParentRuntime

public byte[] getClassDataFromParentRuntime(java.lang.String className)
                                     throws java.io.IOException,
                                            ProActiveException
Specified by:
getClassDataFromParentRuntime in interface RemoteProActiveRuntime
Throws:
java.io.IOException
ProActiveException
See Also:
ProActiveRuntime.getClassDataFromParentRuntime(String)

getClassDataFromThisRuntime

public byte[] getClassDataFromThisRuntime(java.lang.String className)
                                   throws java.io.IOException,
                                          ProActiveException
Specified by:
getClassDataFromThisRuntime in interface RemoteProActiveRuntime
Throws:
java.io.IOException
ProActiveException
See Also:
ProActiveRuntime.getClassDataFromThisRuntime(String)

getJobID

public java.lang.String getJobID()
See Also:
Job.getJobID()

launchMain

public void launchMain(java.lang.String className,
                       java.lang.String[] parameters)
                throws java.io.IOException,
                       java.lang.ClassNotFoundException,
                       java.lang.NoSuchMethodException,
                       ProActiveException
Specified by:
launchMain in interface RemoteProActiveRuntime
Throws:
java.io.IOException
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
ProActiveException

newRemote

public void newRemote(java.lang.String className)
               throws java.io.IOException,
                      java.lang.ClassNotFoundException,
                      ProActiveException
Specified by:
newRemote in interface RemoteProActiveRuntime
Throws:
java.io.IOException
java.lang.ClassNotFoundException
ProActiveException

getDescriptor

public ProActiveDescriptor getDescriptor(java.lang.String url,
                                         boolean isHierarchicalSearch)
                                  throws java.io.IOException,
                                         ProActiveException
Specified by:
getDescriptor in interface RemoteProActiveRuntime
Throws:
java.io.IOException
ProActiveException


Copyright 2001-2005 INRIA All Rights Reserved.