A REAL-TIME AUCTION SYSTEM OVER THE WWW Christos Bouganis, Dimitrios Koukopoulos and Dimitrios Kalles Computer Technology Institute PO Box 1122 GR 261 10 Patras, Greece E-mail: kalles@cti.gr KEYWORDS: Computer Software, Finance, Marketing, Real-time simulation ABSTRACT This paper presents an electronic auction system as a case study of a distributed computing application using the Java language and the Voyager distributed programming platform. It stresses the importance of state-of-the-art WWW development tools that address the run-to-the-market need of electronic commerce applications. Conceptual simplicity and efficient design and implementation are the major advantages from the adoption of a platform where object mobility and persistence are transparently available. INTRODUCTION The WWW hosts some systems of electronic auctions, but these are not real time systems. Typical auctions last several days and it is at their conclusion that a bidder is informed whether he/she was successful or not. A typical electronic auction systems is Bonsai (www.bonsai.com). In Bonsai new members are registered by filling in a special form. When a user becomes a member in the system he/she can observe an auction, participate in an auction or sell one or more products. To sell a product he/she completes a form, giving information about the product and the desirable (minimum) price. Bids are collected for a pre-specified time period, and bidders are informed about the biggest offer and the final winner. Usually an auction takes quite some time to complete. Similar systems are Jerome J. Manning & Co.:Real Estate Auctions (www.jjmanning.com) and Copart Salvage Auto Auctions (www.copart.com). However, the flourishing of the real- time auction concept has been most pronounced by the flotation of eBay (www.ebay.com). These systems are not real time however. So, persons or companies who would like to participate in auctions over the WWW, but have limited time resources to do so, can not use them (in reality, some pseudo-autonomous bidding is allowed but this does not compensate for the absence of real time action). A similar problem appears with sellers, who may want their product to be sold as fast as possible (for example an airline may want to auction the remaining seats of a flight a few hours prior to departure). The lack of the above feature is a major problem of these systems and could be a factor of unreliability due to the possibility of generating suspicion that bids are maybe manipulated. The need for a real time electronic auction system is existent. Another electronic auction system is CASS (http://nas.is/rsf). Even though, CASS is not implemented over the WWW, it is designed as a multi-location real-time electronic marketplace (currently used only in wholesale fish auctions, it provides for the connection of remote sites, such as fish auctions, buyers and sellers, using a PC via a modem). Network bandwidth (or the lack of it) has always been a limiting factor in the deployment of real time applications over the WWW. However, as the information society will be increasingly dependent on the ability of its citizen to communicative efficiently on-line, the development of products and services that attempt to emulate real life situations is a necessity. Thus, a real-time auction system would exactly address the transition to an electronic consumer habit as close as possible to the conventional one. The rest of this paper is organised as follows: First an overview of the implemented system is presented along with its key technological components (Java, Voyager, Applets and the WWW). Then, the users’ requirements of an on-line electronic auction system and a scenario of usage are specified. Finally, the system design is described. BRIEF SYSTEM OVERVIEW The auction system has three types of entities: buyers, sellers and auction houses. It implements a classic scenario: a seller informs an auction house about products to be sold and the auction house forwards them to a group of buyers inviting them to start bidding. The system has the following features: • a communication protocol between basic processes (an auction house is informed by sellers for the products they want to sell, buyers make offers for products which are auctioned in the auction house, the auction house determines the winner of every auction and informs corresponding sellers about that). • a facility for recording information about auctions which have been completed, in a suitable database. All transactions which take place in an auction are recorded in a database, so a buyer has the opportunity to see some information on history of bids. • a process for the authentication of users. • a graphical user interface for any type of interaction with the system. The system has a dynamics of expansion. Because of its use of the Voyager technology for the development of the system, it can easily be expanded to incorporate features of artificial intelligence and total independence of the machine in which it runs. This can happen with the use of agents (special types of objects, implemented and made available by Voyager). Agents can move autonomously by embedding onto them routes between auction houses. Using the Voyager feature of object mobility, an auction house can manage system overload situations by transferring an auction to another computer, in a manner totally transparent to its users. Also, the auction house workload, which corresponds to the messages exchanged between an auction house and its customers, can be reduced with the use of the feature of Space, an advanced architectural feature of Voyager. Using the idea of Space an auction house can divide its users in domains and inform them via domain forwarders transparently, rather than individually. Java & Voyager Java is a powerful programming language built to be secure and cross-platform. It is being continuously extended to provide language features and libraries that elegantly handle problems that are difficult in traditional programming languages, such as multithreading, database access, network programming and distributed computing.