# NegoSim: A Modular and Extendable Automated Negotiation Simulation Platform Considering EUBOA
## 2 NegoSim and Agent Architecture  
Participants in NegoSim, like in the real world, sit at a table called the NegoTable and exchange offers; there are laws for exchanging offers known as the protocol. The protocol solicits bids from agents and places them on the table; it runs all processes in the negotiation, such as how and when negotiators must exchange offers, when the negotiation ends because an agreement is reached, noting that the deadline has been met, and negotiators walking away. The protocol owns the negotiation table, the clock (to control negotiation time), and all existing laws; each negotiation party can access it to ask questions, and the protocol checks the negotiation laws to determine an answer. Another important function of the protocol is analysis, which requires the analysis entity to analyze the negotiation session after receiving each party's offer. As in opponent and user modeling, the analysis entity has access to the exchanged offers as well as each party's estimations. See Figure 1.  
As previously stated, the parties are the most important entities in a negotiation, which consists of three major components: bidding strategy, opponent modeling, and acceptance strategy. These three components were introduced as the BOA framework in [14]. NegoSim proposes a new framework called EUBOA.  
Figure 2 shows the NegoSim architecture. The protocol, as shown in Figure 2, controls all communications during the negotiation session. Parties wait until the protocol requests that they submit a bid. When they receive the request, each party can ask the protocol any question about the negotiation session (remaining time, previous offers, etc.), and the protocol will respond following the negotiation session rules. Parties are then free to submit a bid, accept the opponent's offer, or end the negotiation. The analysis entity examines each event during the negotiation session and at the end of the negotiation, saving the result as a Python serialized (picked) file and printing the results in the terminal.  
Figure 1: The negotiation table contains the negotiation parties, as well as the exchanged offers. The protocol is the most important entity because it owns the table, the rules, and the clock that controls the negotiation time. The parties only have access to the protocol. The protocol instructs the analysis entity to examine the negotiation session.  
Five components of the NegoSim are modular, namely, the negotiation session and tournament GUI, parties, protocol, analytical toolbox, and utility spaces, giving users full control over their agents, protocols, GUIs, analytic tools, and utility spaces via simple APIs. There are some predefined negotiating agents, a negotiation protocol called the stack alternating offer protocol (SAOP) [18], some GUIs, and some analytic tools. These features make NegoSim user-friendly. Because NegoSim preference profiles are in XML file format, they are compatible with Genius preference profiles. As a predefined utility space in the current version of NegoSim, there is a linear additive utility space [19].