GridSim 5.0 beta

gridsim.auction
Class ContinuousDoubleAuction

Object
  extended by Thread
      extended by Sim_entity
          extended by GridSimCore
              extended by GridSim
                  extended by Auction
                      extended by DoubleAuction
                          extended by ContinuousDoubleAuction
All Implemented Interfaces:
Cloneable, Runnable

public class ContinuousDoubleAuction
extends DoubleAuction

This class represents a Continuos Double Auction. In Continuous double auctions, the auctioneer matches asks and bids. The auctioneer maintains a list of asks ordered in a increasing order and a list of bids ordered in an decreasing order. When the auctioneer receives an ask it proceeds as follows: 1. It compares it with the first bid of the list. If the price in the ask is lower than or equal to the bid's value, it informs that seller and bidder can trade at the price (price ask + price bid) / 2) 2. Otherwise, the auctioneer adds the ask in the list. If the auctioneer receives a bid, it does the following: 1. It compares it with the first ask of the list. If the price in the ask is lower than or equal to the bid's value, it informs that seller and bidder can trade at the price (price ask + price bid) / 2). 2. Otherwise, the auctioneer adds the bid in the list.

Since:
GridSim Toolkit 4.0
Author:
Marcos Dias de Assuncao
See Also:
Auction, DoubleAuction, AuctionTags

Nested Class Summary
(package private)  class ContinuousDoubleAuction.OrderAsksByPriceAsc
           
(package private)  class ContinuousDoubleAuction.OrderBidsByPriceDesc
           
 
Nested classes/interfaces inherited from class Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class Auction
outputPort
 
Fields inherited from class GridSim
GRIDSIM_VERSION_STRING, PAUSE
 
Fields inherited from class GridSimCore
input, NETWORK_TYPE, output
 
Fields inherited from class Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ContinuousDoubleAuction(String auctionName, double durationOfAuction)
          Constructor
ContinuousDoubleAuction(String auctionName, int auctioneerID, double durationOfAuction, Sim_port output)
          Constructor
 
Method Summary
 void onReceiveAsk(MessageAsk ask)
          Called when a ask is sent by a provider.
 void onReceiveBid(MessageBid bid)
          Called when a bid is received.
 void onStart()
          This method is called when the auction is started
 void onStop()
          Called when the auction finishes
 
Methods inherited from class DoubleAuction
closeAuction, getDurationOfAuction, match, processEvent, processOtherEvent, startAuction
 
Methods inherited from class Auction
body, broadcastMessage, getAttribute, getAttributes, getAuctioneerID, getAuctionID, getAuctionProtocol, getBidders, getOutputPort, getStartingTime, setAttribute, setAuctioneerID, setAuctionID, setAuctionProtocol, setBidders, setOutputPort, setStartingTime
 
Methods inherited from class GridSim
clock, disableDebugMode, enableDebugMode, getAdvancedReservationList, getEntityId, getEntityName, getEntityName, getEntityName, getGISId, getGridInfoServiceEntityId, getGridResourceList, getGridSimShutdownEntityId, getGridStatisticsEntityId, getNetworkType, getNumFreePE, getNumFreePE, getNumPE, getNumPE, getResourceCharacteristics, getResourceDynamicInfo, getSimulationCalendar, getSimulationStartDate, getVisualizer, gridletCancel, gridletCancel, gridletMove, gridletMove, gridletPause, gridletPause, gridletReceive, gridletReceive, gridletReceive, gridletResume, gridletResume, gridletStatus, gridletStatus, gridletSubmit, gridletSubmit, gridletSubmit, gridSimHold, init, init, init, initNetworkType, isDebugModeEnabled, isResourceExist, isResourceExist, isTraceEnabled, pauseSimulation, pauseSimulation, receiveEventObject, receiveEventObject, recordStatistics, recordStatistics, recordStatistics, recordStatistics, resourceSupportAR, resourceSupportAR, resumeSimulation, setGIS, shutdownGridStatisticsEntity, shutdownUserEntity, startGridSimulation, startGridSimulation, stopGridSimulation
 
Methods inherited from class GridSimCore
finalizeGridSimulation, getLink, getPingResult, isNetworked, ping, ping, ping, ping, pingBlockingCall, pingBlockingCall, pingBlockingCall, pingBlockingCall, send, send, send, send, send, send, setBackgroundTraffic, setBackgroundTraffic, terminateIOEntities
 
Methods inherited from class Sim_entity
add_generator, add_param, add_port, clone, get_id, get_name, get_port, get_port, get_stat, run, send_on, set_invisible, set_stat, sim_cancel, sim_completed, sim_current, sim_get_next, sim_get_next, sim_hold_for, sim_hold, sim_pause_for, sim_pause_for, sim_pause_until, sim_pause_until, sim_pause, sim_process_for, sim_process_for, sim_process_until, sim_process_until, sim_process, sim_putback, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_select, sim_trace, sim_wait_for, sim_wait_for, sim_wait_for, sim_wait, sim_waiting, sim_waiting
 
Methods inherited from class Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ContinuousDoubleAuction

public ContinuousDoubleAuction(String auctionName,
                               int auctioneerID,
                               double durationOfAuction,
                               Sim_port output)
                        throws Exception
Constructor

Parameters:
auctionName - name for the auction
auctioneerID - auctioneer's ID
durationOfAuction - time duration of auction
output - the output port to be used by this auction
Throws:
Exception

ContinuousDoubleAuction

public ContinuousDoubleAuction(String auctionName,
                               double durationOfAuction)
                        throws Exception
Constructor

Parameters:
auctionName - name for the auction
durationOfAuction - time duration of auction
Throws:
Exception
Method Detail

onStart

public void onStart()
This method is called when the auction is started

Specified by:
onStart in class DoubleAuction

onStop

public void onStop()
Called when the auction finishes

Specified by:
onStop in class DoubleAuction

onReceiveAsk

public void onReceiveAsk(MessageAsk ask)
Called when a ask is sent by a provider.

Specified by:
onReceiveAsk in class DoubleAuction
Parameters:
ask - the ask sent by the provider

onReceiveBid

public void onReceiveBid(MessageBid bid)
Called when a bid is received.

Specified by:
onReceiveBid in class DoubleAuction
Parameters:
bid - the bid received by the auctioneer

GridSim 5.0 beta

The University of Melbourne, Australia, 2009