Virtual Realty Listing Services (VRLS) is one of two demo applications described in Web Application Architecture: Principles, Protocols and Practices.

[In this app,] a fictitious online real estate company that supports multiple listing services, a cooperative venture common in the real estate community. Many brick-and-mortar real estate brokers share listings for properties they want to sell or lease with other brokers, in an attempt to attract customers who want to buy or rent these properties. If a customer goes to one broker and buys or rents a property associated with another, the two brokers split the commission. In this way, there is a greater chance for all brokers to sell or rent their properties.

An online version of this service would link the web sites of several real estate brokerages to a database of shared property listings. Customers locate the VRLS site through links from their real estate broker, online search, print advertisements, or word-of-mouth. On this site, they have access to property listings from many different brokers. They can browse the available listings but need to register in order to see details about particular properties. When customers register, they are associated with the broker whose site referred them to the VRLS registration page. These referring brokers are called affiliates or partners.

The application serves to illustrate best practices in web application design, employing the Model-View-Controller (MVC) design pattern by using the Struts framework from Apache's Jakarta project.

  • The Model is a small set of JavaBeans persisted in a relational database: CustomerProfiles, Listings, and Partners (brokers).
  • The View makes use of codeless Java Server Pages that use only the core Java Standard Tag Library (JSTL) tags (using Jakarta's reference implementation) and a version of the Struts HTML taglib that supports the JSTL Expression Language.
  • The Controller is a custom class that extends the Struts ActionServlet. The struts-config.xml configuration file provides the action mappings to direct requests to appropriate "actions" for processing. (This architecture employs two of Sun's Core J2EE Patterns: Front Controller and Service-To-Worker.)

The second demo application described in the book is the VRLS administrative interface, written in Ruby on Rails. Instructions for building and deploying this application can be found here.

[ try the app on the VRLS web site ]     [ download the source code ]     [ errata ]
[ about the book ]     [ about the authors ]
[ articles ]     [ news ]     [ contact us ]