Changes between Version 346 and Version 347 of WikiStart


Ignore:
Timestamp:
09/21/20 09:28:51 (4 years ago)
Author:
wouter
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v346 v347  
    269269There is a limitation on the ProfileConnectionFactory that might become relevant if you handle very large profiles: the websocket handler is currently limited to profiles of at most 200kB in size. This is because websockets use fixed buffer sizes. Let us know if this is an issue, we can change this limit.
    270270
    271 == Party
    272 A party is a program that receives inform messages from the protocol, and can send the actions it wants to take regarding the negotiation back to the protocol. In GeniusWeb these actions are typically sent over a websocket that is created by the partiesserver that created the party, which in turn creates this according to a http GET request that comes from a running protocol. The party can also pro-actively search for information and take other actions as it likes, as long as it adheres to the requirements of the protocol (discussed later in this document).
    273 
    274 Javadoc is available on the [http://artifactory.ewi.tudelft.nl/artifactory/webapp/#/artifacts/browse/tree/General/libs-release/geniusweb/party artifactory]. See [wiki:WikiStart#DownloadingJavaDoc downloading javadoc].
    275 
    276 The party module contains the inform objects. There are several, and although they have quite specific meanings, their fine details can be tweaked by the protocol.
     271== Events
     272The events module contains inform objects, action objects and event objects.
     273
     274=== Inform
     275
     276Inform objects are used to inform parties about events that happened in a negotiation. We have
    277277
    278278||= inform object =||= meaning =||
     
    284284||OptIn||The party is expected to send in Votes. Usually this is a follow-up for a Voting round||
    285285
     286These objects can be used slightly different, depending on the protocol.
    286287
    287288Please check the [source:party/src/main/java/geniusweb/party/inform source code of Inform objects] for all the details especially on the json serialization.
     289
     290=== Actions
     291Actions are objects that are sent by the party, indicating it does a negotiation action. We have
     292
     293||= action object =||= meaning =||
     294||Offer||The party offers some bid to the other parties||
     295||Accept||The party informs the protocol that it can accept a specific bid. Usually this bid has to be offered by some other party||
     296||Comparison||The party informs that it prefers certain bids over others||
     297||ElicitComparison||The party informs that it would like to hear a Comparison||
     298||EndNegotiation||The party informs that it is done negotiating and leaves immediately. Possibly without a deal if there was no deal yet for this party. ||
     299||Votes||The party informs that it gives specific votes to bids. A vote is a conditional accept, it contains a Bid but an additional 'minPower' indicating the minimum power that a deal must have||
     300
     301Again, the details of how to use the actions is determined by the protocol. For instance some protocols may accept an Accept with a bid that was not previously made, while other protocols may prohibit such an action.
     302
     303== Party
     304A party is a program that receives inform messages from the protocol, and can send the actions it wants to take regarding the negotiation back to the protocol. In GeniusWeb these actions are typically sent over a websocket that is created by the partiesserver that created the party, which in turn creates this according to a http GET request that comes from a running protocol. The party can also pro-actively search for information and take other actions as it likes, as long as it adheres to the requirements of the protocol (discussed later in this document).
     305
     306Javadoc is available on the [http://artifactory.ewi.tudelft.nl/artifactory/webapp/#/artifacts/browse/tree/General/libs-release/geniusweb/party artifactory]. See [wiki:WikiStart#DownloadingJavaDoc downloading javadoc].
     307
    288308
    289309The party module also contains basic interfaces for implementing your negotiation party. These interfaces are only relevant to create a party compatible with our reference implementation of the [https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWebPartiesServer partiesserver]. The main class is Party, which defines the basic functionality required for a negotiation party on our server. The heart of the party is that your Party implements Connectable<Inform,Action>. Connectable contains 2 main functions: connect and disconnect.  When connect is called, your party receives a Connection over which it receives Inform objects and can send Action objects. What exactly is sent and received is determined by the protocol (see the protocol section below). For example if the SAOP protocol is used, your party will receive a YourTurn message, after which it decides on its action and sends it into the Connection. See also the example party discussed below.