1. A method for conducting an auction of a plurality of heterogeneous items between a plurality of selling and potential purchasing parties, said method including the steps of: accepting an offer in respect of an item; accepting one or more subsequent offer/s that is/are preferable to a previously accepted offer; and rejecting said previously accepted offer; wherein acceptance of each of said offers is not binding on the accepting party; one or more of said steps is/are performed using software-based agents acting on behalf of said parties, said software-based agents hosted on terminals connected via a communication network; each of said offers is only accepted if the offer provides a surplus of at least a minimum surplus amount, wherein said surplus is a function of a current price of said item; and each preferable offer that provides an increased surplus compared to a surplus provided by a previously accepted offer is accepted, wherein a surplus comprises a function selected from the group consisting of: the difference between the accepting party's valuation of said item and the current price of said item; the difference between the current price of said item and the accepting party's valuation of said item; the ratio of the accepting party's valuation of said item to the current price of said item; the ratio of the current price of said item to the accepting party's valuation of said item; a function of the current price of said item that increases as said current price decreases; and a function of the current price of said item that increases as said current price increases.