|PREV NEXT||FRAMES NO FRAMES|
|net.commerce.zocalo.ajax.dispatch||This package allows Zocalo to publish significant events via Log4J and cometd (an AJAX technology).|
|net.commerce.zocalo.ajax.events||This package describes significant events that will be logged via Log4J and cometd (an AJAX technology).|
|net.commerce.zocalo.claim||These classes describe the claims being traded in the market.|
|net.commerce.zocalo.currency||These classes represent conserved currencies that form the basis for exchange.|
|net.commerce.zocalo.experiment||This package contains the classes that configure Zocalo to support experiments.|
|net.commerce.zocalo.experiment.config||The classes in this package provide an interactive editor for configuring experiments.|
|net.commerce.zocalo.experiment.role||This package contains the classes that manage roles for experiments.|
|net.commerce.zocalo.experiment.states||These classes represent the states and state transitions used in experiments.|
|net.commerce.zocalo.history||Display trading history to the user.|
|net.commerce.zocalo.html||Support for generating HTML.|
|net.commerce.zocalo.JspSupport||Support for generating web pages using JSP (Java Server Pages).|
|net.commerce.zocalo.mail||Support for sending mail to the user.|
|net.commerce.zocalo.market||These classes implement the market and process orders.|
|net.commerce.zocalo.orders||These classes describe market orders stored (in a book) for later use.|
|net.commerce.zocalo.rpc||Classes that enable an external agent to trade with the market.|
|net.commerce.zocalo.service||Classes involved in setting up a web service.|
|net.commerce.zocalo.user||These classes provide support for
Zocalo Open Source Prediction Markets. This software supports Prediction Markets and laboratory economics experiments. More information, including downloadable files and complete source code are available at sourceforge.
The core of the Zocalo software consists of a variety of
Markets, which allow
Users to trade
Claims (which have
Positions representing particular outcomes).
Coupons represent holdings of particular Positions, which can be bought with
Funds, which represent money.
Currency represents the common elements of Funds and Coupons.
There are three types of Markets:
BinaryMarkets are used for prediction markets with two possible outcomes (usually YES and NO),
MultiMarkets are for prediction markets with two or more mutually exclusive outcomes, and
UnaryMarkets allow for conventional trading of a single asset. These markets can be managed with a
MarketMaker that trades with Users directly, or a
Book that tracks Users' standing limit
Orders that other Users are allowed to accept. BinaryMarkets can be
set up with both Book and MarketMaker enabled simultaneously.
There are two primary user interfaces for interacting with the markets. The primary one is ordinary prediction markets, managed by
AllMarkets. A variety of
web pages allows users to navigate between different markets of various types, look at the user's
create new markets, etc. The other major interface supports trading
in economic lab experiments. An
experimenter configures an experiment, which consists of a number
of timed rounds in which Users are assigned initial positions in an artificial good, and allowed to trade with other Users.
The Experiment version relies heavily on AJAX to drive the user interfaces and ensure users see other's trades and changes
in their holdings immediately. In this version, trades are drawn using
"stripcharts" that display a trade per column without regard for timing. The prediction
market version uses a database to store all the required information
Hibernate) for long-lived experiments. The prediction market version displays trading history
using graphs generated with JFreeChart.
HTML pages are generated using JSP, though most of the actual content is
generated directly in Java.
The Zocalo server uses Jetty to act as a web server. The main() entry points are provided by
ExperimentServer, which use helper classes to set up the
AJAX connections. AJAX is available in the Prediction Market version, though it
isn't used extensively yet.
The project uses Log4J, both to
log trading activity and as a
transport mechanism for
that trigger AJAX activity. Extensive JUnit tests
exercise nearly all of the functionality of Zocalo, though there is no javadoc coverage of these classes.
A little documentation exists on the use of Hibernate. There's an ORM-based
class diagram, and an
outline of some considerations in the use of Hibernate.
© Copyright 2007-2010 Chris Hibbert. All rights reserved. |
Portions Copyright 2005, 2006 CommerceNet Consortium LLC.
This software is published under the terms of the MIT license, a copy
|PREV NEXT||FRAMES NO FRAMES|