es.ants.felixgm.trmsim_wsn.trm
Class TRModel_WSN

java.lang.Object
  extended by es.ants.felixgm.trmsim_wsn.trm.TRModel_WSN
Direct Known Subclasses:
BTRM_WSN, EigenTrust, LFTM, PeerTrust, PowerTrust, TemplateTRM

public abstract class TRModel_WSN
extends java.lang.Object

This class represents a generic Trust and Reputation Model for Wireless Sensor Networks, also applicable to P2P and Ad-hoc ones

A subclass of this class has to be implemented in order to add a new Trust and Reputation Model

Version:
0.2
Author:
Félix Gómez Mármol, Gregorio Martínez Pérez and Antonio Bernárdez

Field Summary
protected  TRMParameters trmParameters
          Trust and Reputation Model parameters
 
Constructor Summary
protected TRModel_WSN(TRMParameters trmParameters)
          Creates a new instance of TRModel_WSN
 
Method Summary
abstract  GatheredInformation gatherInformation(Sensor client, Service service)
          This method collects or gathers the required information from the network needed to evaluate each sensor offering a given service in order to determine whether to have a transaction with it or not
abstract  Network generateRandomNetwork(int numSensors, double probClients, double rangeFactor, java.util.Collection<java.lang.Double> probServices, java.util.Collection<java.lang.Double> probGoodness, java.util.Collection<Service> services)
          This method generates a new random network specific for this trust and reputation model
 TRMParameters get_TRMParameters()
          Returns the associated trust and reputation model´s parameters
abstract  Network loadCurrentNetwork(java.lang.String xmlFilePath)
          This method loads a network from a XML file and creates the specific network corresponding to this trust and reputation model
abstract  Outcome performTransaction(java.util.Vector<Sensor> path, Service service)
          This method actually requests a desired service to a specified server and evaluates the satisfaction of the client with the actually received service
abstract  Outcome punish(java.util.Vector<Sensor> path, Outcome outcome)
          This method punishes a server if the client is not satisfied with the received service, according to that precise unsatisfaction
abstract  Outcome reward(java.util.Vector<Sensor> path, Outcome outcome)
          This method rewards a server if the client is satisfied with the received service, according to that precise satisfaction
abstract  java.util.Vector<Sensor> scoreAndRanking(Sensor client, GatheredInformation gi)
          This method computes a trust and/or reputation value for each reachable server from the specified client and returns either a sorted list of all the reachable servers or a path leading directly to the most trustworthy and/or reputable one
 void set_TRMParameters(TRMParameters trmParameters)
          Sets the associated trust and reputation model´s parameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

trmParameters

protected TRMParameters trmParameters
Trust and Reputation Model parameters

Constructor Detail

TRModel_WSN

protected TRModel_WSN(TRMParameters trmParameters)
Creates a new instance of TRModel_WSN

Parameters:
trmParameters - Trust and Reputation Model parameters
Method Detail

gatherInformation

public abstract GatheredInformation gatherInformation(Sensor client,
                                                      Service service)
This method collects or gathers the required information from the network needed to evaluate each sensor offering a given service in order to determine whether to have a transaction with it or not

Parameters:
client - The client applying this trust and reputation model in order to find the most trustworthy and reputable server offering a given service
service - The service requested by the given client
Returns:
The required information from the network needed to evaluate each sensor offering a given service in order to determine whether to have a transaction with it or not

scoreAndRanking

public abstract java.util.Vector<Sensor> scoreAndRanking(Sensor client,
                                                         GatheredInformation gi)
This method computes a trust and/or reputation value for each reachable server from the specified client and returns either a sorted list of all the reachable servers or a path leading directly to the most trustworthy and/or reputable one

Parameters:
client - The client applying this trust and reputation model in order to find the most trustworthy and reputable server offering a given service
gi - The gathered information fro the network needed in order to compute the trust and/or reputation value for each reachable server
Returns:
Either a path leading to the most trustworthy server found, or a sorted list of all the reachable servers

performTransaction

public abstract Outcome performTransaction(java.util.Vector<Sensor> path,
                                           Service service)
This method actually requests a desired service to a specified server and evaluates the satisfaction of the client with the actually received service

Parameters:
path - Path of sensors leading to the most trustworthy and reputable server or sorted list of all the reachable servers
service - Service requested by the client running this trust and reputation model
Returns:
Outcome with the satisfaction of the client with the received service

reward

public abstract Outcome reward(java.util.Vector<Sensor> path,
                               Outcome outcome)
This method rewards a server if the client is satisfied with the received service, according to that precise satisfaction

Parameters:
path - Path of sensors leading to the requesting server
outcome - Client's satisfaction with the received service
Returns:
Outcome with the updated transmitted distance of the messages sent

punish

public abstract Outcome punish(java.util.Vector<Sensor> path,
                               Outcome outcome)
This method punishes a server if the client is not satisfied with the received service, according to that precise unsatisfaction

Parameters:
path - Path of sensors leading to the requesting server
outcome - Client's unsatisfaction with the received service
Returns:
Outcome with the updated transmitted distance of the messages sent

generateRandomNetwork

public abstract Network generateRandomNetwork(int numSensors,
                                              double probClients,
                                              double rangeFactor,
                                              java.util.Collection<java.lang.Double> probServices,
                                              java.util.Collection<java.lang.Double> probGoodness,
                                              java.util.Collection<Service> services)
This method generates a new random network specific for this trust and reputation model

Parameters:
numSensors - Number of sensors composing the network
probClients - Probability of a sensor to act as a client requesting services
rangeFactor - Maximum wireless range of every sensor. It determines the neighborhood of every sensor
probServices - A collection of probabilities of offering a certain service, one per service
probGoodness - A collection of goodnesses about offering a certain service, one per service
services - All the services offered by the generated Network
Returns:
A new random network specific for this trust and reputation model

loadCurrentNetwork

public abstract Network loadCurrentNetwork(java.lang.String xmlFilePath)
                                    throws java.lang.Exception
This method loads a network from a XML file and creates the specific network corresponding to this trust and reputation model

Parameters:
xmlFilePath - Path of the XML to load the network from
Returns:
The loaded and generated specific network for this trust and reputation model
Throws:
java.lang.Exception - If the XML file given does not have the appropriate structure, or if a sensor links to an undefined sensor, or if a sensor links to itself

get_TRMParameters

public TRMParameters get_TRMParameters()
Returns the associated trust and reputation model´s parameters

Returns:
The associated trust and reputation model´s parameters

set_TRMParameters

public void set_TRMParameters(TRMParameters trmParameters)
Sets the associated trust and reputation model´s parameters

Parameters:
trmParameters - The associated trust and reputation model´s parameters