Special Edition Using Enterprise JavaBeans 2.0

   

There are many types of auctions ”English, Japanese, Dutch, and sealed-bid to name a few. Each type has its own rules, but the goal of most auctions is simply to sell an item for the highest price someone is willing to pay. The terminology you must know to understand auctions is quite simple as well and is probably already familiar to you. To start with, a price offered for an item in an auction is called a bid and the people submitting the bids are called the bidders ”nothing difficult so far. The other terms and business rules that are involved get a little more complicated than this, but not much.

The different auction formats are, for the most part, defined by how the bidding process is handled. English auctions start at a low price and the participants submit higher bids until no one wants to bid higher than the current leader. The auction then is closed and the bidder who placed the leading bid is named the winner. Japanese auctions start at a low price as well, but there's a twist in how the bidding takes place. In this format, everyone willing to pay at least the starting price enters the auction as a bidder. The price then is raised in steps with the bidders each given the option to stay in or drop out at each step. The auction ends when only a single bidder remains and is named the winner. Dutch auctions offer another option by taking an opposite approach. Here, an auction starts with a high price that is decreased in steps until it reaches an amount someone is willing to pay. The first bidder to jump in and agree to a price gets the item.

Even with their differences, English, Japanese, and Dutch auctions are the same in that the bidding is public to all the participants. Basically, as a bidder you know what all the other bidders are doing. You won't necessarily know how high a price someone is ultimately willing to pay, but you will know what everyone does at each step along the way. Sealed-bid auctions offer an alternative by soliciting bids without publicly announcing the prices that have been offered. You might have seen this done as a fundraiser at a charitable event where the attendees drop written bids for various items into sealed boxes. Once the time limit for bidding has been reached, each set of bids is opened and the winners are determined. It's not as exciting to watch as the other formats, but it's easy to manage and it adds a twist by forcing the bidders to try to guess what the other participants might bid. The seller won't benefit from a heated bidding war that drives the price up, but might get lucky and have someone go way over the top of the other bidders to ensure a win.

Even if these four formats were the only auction types that existed, sellers would have a fairly adequate set from which to choose. However, this list is far from complete. The number of auction types basically doubles if the seller allows more than one winner to split multiple quantities of an item instead of holding to a "single winner takes all" approach. This option falls more in line with B2B needs where a company might need to, for example, auction off an inventory of surplus parts .

Still more auction formats are possible when the tables are turned on the buyer and seller. In a reverse auction, sellers are asked to compete for a buyer's business by naming the lowest price they will accept for an item they supply. This take on purchasing has gathered more interest as the option to trade with multiple sellers over the Internet has begun to be capitalized on by companies looking to cut procurement costs.

That's a whirlwind description of some of the more common auction types. It's not enough detail to make you an expert, but hopefully it's enough for you to appreciate that merely saying that you want to build an online auction site doesn't narrow your requirements down very much. That's an important point because the goal for the example site is to make it easier to spend more time discussing EJB, not to teach you more than necessary about the business of auctions. With that said, it's important to set some boundaries right away. The quickest and cleanest way to do this is to pick a single auction format to implement. A production site would likely need to support several auction formats, but the example here will be limited to supporting English auctions to keep it manageable. With that decided, the rest of this section can cover the business rules the example site will need to satisfy .

Business Rules

When you first think of an auction, you probably picture a room full of people filled with the sound of a fast-talking auctioneer wielding a gavel. The auctioneer quickly describes an item up for sale, and then works to propel the bidding as high as possible. The bidders signal their intent to bid by raising a numbered paddle (or scratching their noses at the wrong time if they're not careful) and the price grows until the gavel falls and a single winner is named. This is an English auction (sometimes called a Standard auction) and it is quite common in both the live version described here and in online auction sites.

An English auction isn't overly complicated, but you do need to understand a little more about one to make the requirements for the example site clear. As with any business application, the requirements for the auction site depend on the business rules and the entities needed to model the problem domain. Auctions are run by auction houses . A seller contracts with an auction house to sell an item at auction in exchange for a fee (usually a percentage of the eventual selling price). The auction house maintains a staff of auctioneers and holds the knowledge needed to manage the entire process of planning and running the auction.

As part of laying the groundwork for a particular auction, the auction house prepares a description of the item up for sale and assigns a minimum bid that defines the starting point for the first bidder. To keep the bidders from drawing the process out unnecessarily, the auction house also establishes a minimum bid increment that determines how much each bid must exceed the preceding one (you wouldn't want to get into a bidding war like $4,000.01, $4,000.02, $4,000.03, and so on). For a live auction, the auctioneer can obviously handle this situation, but such details must be spelled out in advance for the electronic equivalent.

After the auctioneer starts an auction, the competition for a winner is on as successively higher bids are submitted. The auctioneer accepts bids until no one is willing to outbid the current leader or a pre-established time limit is reached. In either case, the gavel comes down and the auction is closed. The item is then sold to the leading bidder at the offered price ”with one possible exception. In addition to setting a minimum starting bid, a seller might also set a reserve amount (higher than the required starting bid) that defines the actual minimum price that will be accepted. If the leading bid for a closed auction meets the reserve amount, the item is awarded to the winner. However, if the reserve amount is not met, the auction is closed without a winner and no sale is made.

Категории