es.ants.felixgm.trmsim_wsn.gui
Class TRMSim_WSN

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by es.ants.felixgm.trmsim_wsn.gui.TRMSim_WSN
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.Observer, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class TRMSim_WSN
extends javax.swing.JFrame
implements java.util.Observer

This class represents the main window of TRMSim-WSN

Since:
0.1
Version:
0.5
Author:
Félix Gómez Mármol, Gregorio Martínez Pérez
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static Controller C
           
static java.lang.String CURRENT_VERSION
          Current version of TRMSim-WSN: "0.5"
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TRMSim_WSN()
          Creates new form TRMSim_WSN
 
Method Summary
static void main(java.lang.String[] args)
          Main method
protected  void paintNetwork(Network network, Service requiredService)
          This method plots a Wireless Sensor Network
static Outcome runTRMSim_WSN(java.lang.String trustModelName, Service requiredService, int numNetworks, int numExecutions, int minNumSensors, int maxNumSensors, double probClients, double probRelay, double probMalicious, double radioRange, boolean dynamic, boolean oscillating, boolean collusion)
          This method executes the specified trust and reputation model using the given parameters
static void TRMSim_WSN_GUI()
          This method displays the graphic user interface of the simulator
static void TRMSim_WSN_Verbose(java.lang.String[] trustModelNames, Service requiredService, int numNetworks, int numExecutions, int minNumSensors, int maxNumSensors, double probClients, double probRelay, double probMalicious, boolean dynamic, boolean oscillating, boolean collusion)
          This method executes the simulator in verbose mode
 void update(java.util.Observable observable, java.lang.Object arg)
          This method is used in order to communicate the GUI with the Controller
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

CURRENT_VERSION

public static final java.lang.String CURRENT_VERSION
Current version of TRMSim-WSN: "0.5"

See Also:
Constant Field Values

C

protected static Controller C
Constructor Detail

TRMSim_WSN

public TRMSim_WSN()
Creates new form TRMSim_WSN

Method Detail

update

public void update(java.util.Observable observable,
                   java.lang.Object arg)
This method is used in order to communicate the GUI with the Controller

Specified by:
update in interface java.util.Observer
Parameters:
observable -
arg -

paintNetwork

protected void paintNetwork(Network network,
                            Service requiredService)
                     throws java.lang.Exception
This method plots a Wireless Sensor Network

Parameters:
network - Wireless Sensor Network to be plotted
requiredService - Service requested by the clients (needed in order to paint and distinguish benevolent and malicious servers)
Throws:
java.lang.Exception - If any error occurs while plotting a WSN

main

public static void main(java.lang.String[] args)
Main method

Parameters:
args - the command line arguments

TRMSim_WSN_GUI

public static void TRMSim_WSN_GUI()
This method displays the graphic user interface of the simulator


TRMSim_WSN_Verbose

public static void TRMSim_WSN_Verbose(java.lang.String[] trustModelNames,
                                      Service requiredService,
                                      int numNetworks,
                                      int numExecutions,
                                      int minNumSensors,
                                      int maxNumSensors,
                                      double probClients,
                                      double probRelay,
                                      double probMalicious,
                                      boolean dynamic,
                                      boolean oscillating,
                                      boolean collusion)
This method executes the simulator in verbose mode

Parameters:
trustModelNames - Trust and reputation model names
requiredService - Service requested by every client of each WSN
numNetworks - Number of wireless sensor networks to test
numExecutions - Number of service requests of every client composing each WSN
minNumSensors - Minimum number of sensors composing every WSN
maxNumSensors - Maximum number of sensors composing every WSN
probClients - The probability of a node to act as a client
probRelay - The probability of a server to act just as a relay node (not offering the required service)
probMalicious - The probability of a server offering the required service to act as a malicious server (not providing the offered service, or providing a worse or different one)
dynamic - It determines if the WSN will be dynamic (nodes sometimes switch off in order to save battery, breaking all their links)
oscillating - It determines if the goodness of the servers belonging to the created WSN will change along the time
collusion - It determines if the malicious servers belonging to the created WSN will form a collusion among them

runTRMSim_WSN

public static Outcome runTRMSim_WSN(java.lang.String trustModelName,
                                    Service requiredService,
                                    int numNetworks,
                                    int numExecutions,
                                    int minNumSensors,
                                    int maxNumSensors,
                                    double probClients,
                                    double probRelay,
                                    double probMalicious,
                                    double radioRange,
                                    boolean dynamic,
                                    boolean oscillating,
                                    boolean collusion)
                             throws java.lang.Exception
This method executes the specified trust and reputation model using the given parameters

Parameters:
trustModelName - Trust and reputation model name
requiredService - Service requested by every client of each WSN
numNetworks - Number of wireless sensor networks to test
numExecutions - Number of service requests of every client composing each WSN
minNumSensors - Minimum number of sensors composing every WSN
maxNumSensors - Maximum number of sensors composing every WSN
probClients - The probability of a node to act as a client
probRelay - The probability of a server to act just as a relay node (not offering the required service)
probMalicious - The probability of a server offering the required service to act as a malicious server (not providing the offered service, or providing a worse or different one)
radioRange - Maximum wireless range of every sensor. It determines the neighborhood of every sensor
dynamic - It determines if the WSN will be dynamic (nodes sometimes switch off in order to save battery, breaking all their links)
oscillating - It determines if the goodness of the servers belonging to the created WSN will change along the time
collusion - It determines if the malicious servers belonging to the created WSN will form a collusion among them
Returns:
The outcome of the executed trust and reputation model
Throws:
java.lang.Exception - If the specified trust and reputation model name is not correct or any other error occurs