/*******************************************************************************
 * Dermi: A DHT-based Peer-to-Peer Middleware for Distributed Components.
 * Copyright (C) 2003-2004 Carles Pairot
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 ******************************************************************************/

	PENDING TASKS FOR Dermi DOCUMENT
	

 MISCELLANEOUS
 ----------------------------------------------
   Scribe: Fix NullPointerException in rice.p2p.scribe.ScribeImpl$TopicManager update !!!
   Scribe: synchronous subscribe ? Unblock when subscribe ACK message is received.
   Possible utilization of MANY-to-MANY communication (as it was in previous DERMI version?) Take care of return results
    (client could be overwhelmed with messages!).
   Implement hopped synchronous/asynchronous calls.
   Empty receivedEvents vector in all stubs/skels periodically (!!!) --> HashQueue del Ruben
   Activator: check activateMultipleObjects() -> which of the replicas is bound?
   Activator: security error: allow non-community members to activate an object in a community

 PERFORMANCE & TESTING
 ----------------------------------------------
	 Before releasing, manually try ALL of the EXAMPLES
   Optimize performance: check synchronous calls... retransmissions?
   Check performance in new FreePastry version. It seems to be worse!!!
   Java profiling of Dermi
   Perform extensive PlanetLab tests: create 3 SimpleServers, execute SimpleClient. Kill 1 SimpleServer and execute SimpleClient.
 
 ANYCALL
 ----------------------------------------------
	 (Anycast) When anycasting and I receive my own contents, Scribe must be patched and return an exception or something.
	 Anycall: When an exception occurs in one of the servers, the client is informed thus aborting anycall... It may be interesting
	  not to inform the client and pass the request to another server...

 MANYCALL
 ----------------------------------------------
	 Manycall sample does not work when loading objects from DOLR !
   Manycall: when NotSatisfiedException is thrown, it should contain, at least, the last value (to see how many affirmative
    votes have at least been gathered, for example).
   Manycall comparator class to specify global condition.
  
 DIRECTCALL
 ----------------------------------------------
    Implement direct calls using the DOLR service.

 MULTICALL
 ----------------------------------------------
  
   Asynchronous multicalls: improved best effort policy: expect an ACK message from the rendezvous point to assure correct
    event delivery to AT LEAST the root of the multicast group
   Synchronous multicall: include parameter to decide HOW MANY acknowledgements to receive before unblocking.
 
 DISTRIBUTED INTERCEPTION
 ----------------------------------------------

   Do the necessary arrangements for sending the last interception message directly to the root (The original message
    has root's NodeHandle !!!)
   Check possible exceptions in continueInterception() method!
   When subscribing an interceptor, check InterceptorLostMessage!!!! (sendInterceptorSubscribeMsg())
   Check DInt service when using DOLR !!!
   Allow anycast message interception?

--

Carles Pairot <cpairot@etse.urv.es>
Fri Jul 29 17:46:34 CEST 2004
