org.objectweb.proactive.p2p.service
Class P2PService

java.lang.Object
  extended by org.objectweb.proactive.p2p.service.P2PService
All Implemented Interfaces:
java.io.Serializable, Active, InitActive, P2PConstants, ProActiveInternalObject

public class P2PService
extends java.lang.Object
implements InitActive, P2PConstants, java.io.Serializable, ProActiveInternalObject

ProActive Peer-to-Peer Service.

This class is made to be actived.

Author:
Alexandre di Costanzo
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.objectweb.proactive.p2p.service.util.P2PConstants
HIDE_P2PNODE_MONITORING, MAX_NODE, P2P_NODE_NAME, PROPERPY_XML_PATH, PROPERTY_ACQUISITION, PROPERTY_EXPLORING_MSG, PROPERTY_LOOKUP_FREQ, PROPERTY_MSG_MEMORY, PROPERTY_MULTI_PROC_NODES, PROPERTY_NO_SHARING, PROPERTY_NOA, PROPERTY_NODES_ACQUISITION_T0, PROPERTY_PORT, PROPERTY_TTL, PROPERTY_TTU, SHARED_NODE_NAME, VN_NAME
 
Constructor Summary
P2PService()
          The empty constructor.
 
Method Summary
 void askingNode(int ttl, java.util.UUID uuid, P2PService remoteService, int numberOfNodes, P2PNodeLookup lookup, java.lang.String vnName, java.lang.String jobId, java.lang.String nodeFamilyRegexp)
          Method automaticly forwarded by run activity if needed.
 void exploring(int ttl, java.util.UUID uuid, P2PService remoteService)
          Method automaticly forwarded by run activity if needed.
 void firstContact(java.util.Vector peers)
          Contact all specified peers to enter in the existing P2P network.
 java.util.Vector getAcquaintanceList()
           
 StringWrapper getAddress()
          For load balancing.
 Node getANode(java.lang.String vnName, java.lang.String jobId)
          For asking a single node to the p2p infrastructure.
 Node getANode(java.lang.String vnName, java.lang.String jobId, P2PService service)
          ***For internal use only***
static P2PService getLocalP2PService()
           
 P2PNodeLookup getMaximunNodes(java.lang.String vnName, java.lang.String jobId)
          Put in a P2PNodeLookup all available nodes during all the time where it is actived.
 P2PNodeLookup getNodes(int numberOfNodes, java.lang.String vnName, java.lang.String jobId)
          Put in a P2PNodeLookup, the number of asked nodes.
 P2PNodeLookup getNodes(int numberOfNodes, java.lang.String nodeFamilyRegexp, java.lang.String vnName, java.lang.String jobId)
          Put in a P2PNodeLookup, the number of asked nodes.
 void heartBeat()
          Just to test if the peer is alive.
 void initActivity(Body body)
          Initializes the activity of the active object.
 void register(P2PService service)
          Add the remote P2P service in the local acquaintances group if NOA is not yet reached.
 void removeWaitingAccessor(P2PNodeLookup accessorToRemove)
          /** Remove a no more waiting nodes accessor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

P2PService

public P2PService()
The empty constructor.

See Also:
ProActive
Method Detail

firstContact

public void firstContact(java.util.Vector peers)
Contact all specified peers to enter in the existing P2P network.

Parameters:
peers - a list of peers URL.

register

public void register(P2PService service)
Add the remote P2P service in the local acquaintances group if NOA is not yet reached.

Parameters:
service - the remote P2P service.

heartBeat

public void heartBeat()
Just to test if the peer is alive.


exploring

public void exploring(int ttl,
                      java.util.UUID uuid,
                      P2PService remoteService)
Method automaticly forwarded by run activity if needed.

Using a random fonction to choose if this peer should be know by the remote peer or not.

Parameters:
ttl - Time to live of the message, in number of hops.
uuid - UUID of the message.
remoteService - The original sender.

askingNode

public void askingNode(int ttl,
                       java.util.UUID uuid,
                       P2PService remoteService,
                       int numberOfNodes,
                       P2PNodeLookup lookup,
                       java.lang.String vnName,
                       java.lang.String jobId,
                       java.lang.String nodeFamilyRegexp)
Method automaticly forwarded by run activity if needed.

Booking a free node.

Parameters:
ttl - Time to live of the message, in number of hops.
uuid - UUID of the message.
remoteService - The original sender.
numberOfNodes - Number of asked nodes.
lookup - The P2P nodes lookup.
vnName - Virtual node name.
jobId -

getNodes

public P2PNodeLookup getNodes(int numberOfNodes,
                              java.lang.String nodeFamilyRegexp,
                              java.lang.String vnName,
                              java.lang.String jobId)
Put in a P2PNodeLookup, the number of asked nodes.

Parameters:
numberOfNodes - the number of asked nodes.
nodeFamilyRegexp - the regexp for the famili, null or empty String for all.
vnName - Virtual node name, cannot be null.
jobId - of the vn, cannot be null.
Returns:
the number of asked nodes.

getNodes

public P2PNodeLookup getNodes(int numberOfNodes,
                              java.lang.String vnName,
                              java.lang.String jobId)
Put in a P2PNodeLookup, the number of asked nodes.

Parameters:
numberOfNodes - the number of asked nodes.
vnName - Virtual node name, cannot be null.
jobId - of the vn, cannot be null.
Returns:
the number of asked nodes.

getANode

public Node getANode(java.lang.String vnName,
                     java.lang.String jobId)
For asking a single node to the p2p infrastructure. There no warranties that a node will be returned.

Parameters:
vnName - the virtual node name, cannot be null.
jobId - the job ID, cannot be null.
Returns:
a free node.

getANode

public Node getANode(java.lang.String vnName,
                     java.lang.String jobId,
                     P2PService service)
***For internal use only***

Parameters:
vnName - the virtual node name, cannot be null.
jobId - the job ID., cannot be null
service - a stub on the requester
Returns:
a free node.

getMaximunNodes

public P2PNodeLookup getMaximunNodes(java.lang.String vnName,
                                     java.lang.String jobId)
Put in a P2PNodeLookup all available nodes during all the time where it is actived.

Parameters:
vnName - Virtual node name, cannot be null.
jobId - cannot be null
Returns:
an active object where nodes are received.

getAddress

public StringWrapper getAddress()
For load balancing.

Returns:
URL of the node where the P2P service is running.

removeWaitingAccessor

public void removeWaitingAccessor(P2PNodeLookup accessorToRemove)
/** Remove a no more waiting nodes accessor.

Parameters:
accessorToRemove - the accessor to remove.

getAcquaintanceList

public java.util.Vector getAcquaintanceList()
Returns:
the list of current acquaintances.

initActivity

public void initActivity(Body body)
Description copied from interface: InitActive
Initializes the activity of the active object.

Specified by:
initActivity in interface InitActive
Parameters:
body - the body of the active object being initialized
See Also:
InitActive.initActivity(org.objectweb.proactive.Body)

getLocalP2PService

public static P2PService getLocalP2PService()
                                     throws java.lang.Exception
Returns:
the P2PService of this local JVM.
Throws:
java.lang.Exception - no P2PService in this local JVM.


Copyright 2001-2007 INRIA All Rights Reserved.