A session could also be initiated to sell items or services at auction. Figure 6 shows the structure of a session. Two APIs are exposed, one for the session initiator and one for session clients. Each session contains an Initiator Proxy that implements the Initiator API and persis tently stores the current state of the session from the standpoint of the initiator. A Client Proxy is provided for each client that similarly provides a Client API to the client agent, and persistently stores the current state of the sessio n from the standpoint of the client.
Proxies are market entities that act on behalf of the agents and enforce market rules.
There are two reasons for the existence of the proxy components. The second is that in a distributed system environment, the processing and persistent data elements of the initiator and clients would presumably be at different locations in the network to maximiz e performance. Since it is designed as an environment for automated agents, its user interface is somewhat primitive. In order to permit direct viewing of the operations of the market, we have constructed a human interface applet that allows humans to masquerade as agents by making objects and their behaviors visible. The market and session expose and protect their models via a shared set of interfaces.