Java Reference
In-Depth Information
NegotiationAgent client #
new NegotiationAgent (this,clientURL,preference);
startActivity(client);
// create a mediation agent and start the negotiation
// process
startActivity(new MediationAgent(this,client,provider));
}
}
The class NegotiationAgent is responsible for the interaction with the
remote actor, either the client or the provider of the service. It implements
the Negotiatior interface. The preference can be either a preference object
passed by a client or a reference to a ProviderPreference object that is remote.
The methods of the Negotiator interface are implemented as a delegation to
a BasicNegotiator object, in addition they send messages to the client to keep
it updated about the progress and result of the negotiation. Since the agent
must extend class DActivity to be remotely visible and Java forbids multiple
inheritance we are forced to used delegation.
package agent;
import mmi.DActivity;
import mmi.DProcess;
import mmi.DEvent;
import Negotiation.*;
import java.rmi.RemoteException;
public class NegotiationAgent extends DActivity implements
Negotiator {
// the preference of the negotiator
// (either the service provider or the service client)
private Preference preference;
// the URL of the negotiation client that will be notified
// about the progress of the negotiation
private String proxyURL;
// the negotiator object that is encapsulated by this
// agent
private Negotiator negotiator;
private boolean started;
public NegotiationAgent(DProcess process, String proxyURL,
Preference preference)
throws RemoteException{
super (process);
this .proxyURL # proxyURL;
this .preference # preference;
started # false ;
}
public void init(){
negotiator # new BasicNegotiator(preference);
Search WWH ::




Custom Search