The fish market can be described as a place where several scenes run simultaneously, at different places, but with some causal continuity. The principal scene is the auction itself, in which buyers bid for boxes of fish that are presented by an auctioneer who calls prices in descending order - the downward bidding protocol. However, before those boxes of fish may be sold, fishermen have to deliver the fish to the fish market, at the sellers' registration scene, and buyers need to register for the market, at the buyers' registration scene. Likewise, once a box of fish is sold, the buyer should take it away by passing through a buyers' settlements scene, while sellers may collect their payments at the sellers' settlements scene once their lot has been sold.
In [20, 19] we present the Fishmarket, our current implementation of an electronic auction house based on the traditional fish market metaphor, subsequently extended to become a multi-agent testbed. This implementation allows to run auctions over the Internet that permit both human and software agents to participate. Thus, buyer and seller agents can trade goods as long as they comply with the Fishmarket institutional conventions. Those conventions that affect buyers and sellers have been coded into their interagents, which constitute the sole and exclusive means through which each trading agent interacts with the market institution. An interagent enforces its user (a trading agent) conversation protocols that establish what illocutions can be uttered by whom and when. Not only are interagents utilized to allow trading agents to interact with the market institution, but also to allow those agents working as market intermediaries to coordinate their activities. Figure 1 depicts a conceptual view of the Fishmarket system which differentiates trading interagents (attached to buyers and sellers) from market interagents (attached to market intermediaries). Both types of interagents communicate asynchronously through TCP-stream sockets with their users, making use of the communication services detailed in section 3.
For the current version of the system both trading and market interagents instantiate the conversation protocols stored in their libraries of conversation protocols. Nonetheless we must recall from section 4.1 that the high flexibility of interagents would permit to dynamically reconfigure Fishmarket\ without changing the implementation. For instance, say that the boss of the market decides, during the system's run-time, that the auctioneer employs new bidding protocols unknown by the trading interagents. In that case, the boss would dynamically define the conversation protocol required for the new bidding protocol in the trading interagents so that buyer agents were capable of bidding under the new auction rules.