Real estate abstract
A system and process for providing remote interactive access to
a real estate information database using a portable computing device
are described. A portable computing device maintains both program
code and data exclusively in a general purpose random access memory
configured for both transient and persistent storage of program
code and data. A database server includes a search engine configured
to retrieve listing records from a real estate information database.
Each listing record includes a set of characteristics describing
an individual real estate property listing. A remote client defines
methods in the general purpose random access memory for accessing
the real estate information database through the search engine.
The methods include a session manager, a search specification method,
and a search results display method. The session manager facilitates
a dynamic session between the portable computing device and the
database server over a communications link. The session manager
identifies the remote client to the database server and manages
an interactive search session between the remote client and the
search engine. The search specification method interactively sends
to the search engine search parameters and receives from the search
engine the listing records having real estate property listing characteristics
matching the search parameters. The search results display method
displays the, received listing records on the portable computing
device.
Real estate claims
What is claimed is:
1. A system for providing remote interactive access to a real estate
information database using a portable computing device, comprising:
a portable computing device maintaining both program code and data
exclusively in a general purpose random access memory configured
for both transient and persistent storage of program code and data;
a database server comprising a search engine configured to retrieve
listing records from a real estate information database, each listing
record comprising a set of characteristics describing an individual
real estate property listing; a remote client defining methods in
the general purpose random access memory for accessing the real
estate information database through the search engine, comprising:
a session manager facilitating a dynamic session between the portable
computing device and the database server over a communications link,
the session manager identifying the remote client to the database
server and managing an interactive search session between the remote
client and the search engine; a search specification method interactively
sending to the search engine search parameters and receiving from
the search engine the listing records having real estate property
listing characteristics matching the search parameters; and a search
results display method displaying the received listing records on
the portable computing device; a daemon method periodically connecting
the remote client and the database server during an alert session,
the search engine retrieving new listing records in the time occurring
between the alert session and at least one of the interactive session
and a previous alert session, and the search specification method
receiving the new listing records during the alert session.
2. A system according to claim 1, the remote client further comprising:
a plurality of session managers which each facilitate a dynamic
session between the portable computing device and another database
server over a different communications link, each session manager
identifying the remote client to the another database server and
managing an interactive search seaaion between the remote client
and the search engine of the another database server.
3. A system according to claim 1, wherein the listing records received
from the database server are in a page display format, the remote
client further comprising: a buffer receiving a page comprising
the listing records organized in the page display format; and a
parser method parsing the real estate information page into information
tokens for display by the search results display method.
4. A system according to claim 1, the remote client further comprising:
a function calls method calling one or more functions in the search
engine and passing the search parameters to the one or more called
functions.
5. A system according to claim 4, wherein the one or more called
functions are implemented as structured query language functions.
6. A system according to claim 1, wherein each listing record in
the real estate information database contains a unique identifier,
further comprising: the search specification method including one
or more of the unique identifiers in the search parameters and receiving
the listing records containing unique identifiers which match the
included unique identifiers from the search engine; and the search
results display method organizing the displayed listing records
by the unique identifiers.
7. A system according to claim 1, the daemon method further comprising:
an alert timer waking up the remote client on a scheduled basis.
8. A system according to claim 1, further comprising: the search
engine periodically paging the remote client; a pager method connecting
the remote client and the database server during an alert session
in response to the page; the search engine retrieving new listing
records in the time occurring between the alert session and at least
one of the interactive session and a previous alert session; and
the search specification method receiving the new listing records
during the alert session.
9. A system according to claim 1, wherein the database server interfaces
to the real estate information database over a distributed network.
10. A system according to claim 1, wherein the communications link
comprises at least one of the following: internetwork link, intranetwork
link, serial link, data telephone link, analog modem link, digital
modem link, cellular telephone link, satellite link, radio-frequency
link, infrared link, fiber optic link, coaxial cable link, and combinations
thereof.
11. A process for providing remote interactive access to a real
estate information database using a portable computing device, the
portable computing device maintaining both program code and data
exclusively in a general purpose random access memory configured
for both transient and persistent storage of program code and data,
comprising: defining methods in a remote client in the general purpose
random access memory for accessing a real estate information database;
facilitating a dynamic session between the portable computing device
and a database server over a communications link, including identifying
the remote client to the database server and managing an interactive
search session between the remote client and a search engine running
on the database server; interactively sending search parameters
to the search engine; retrieving listing records having real estate
property listing characteristics matching the search parameters
from the real estate information database, each listing record comprising
a set of characteristics describing an individual real estate property
listing; receiving the listing records from the search engine; displaying
the received listing records on the portable computing device; periodically
connecting the remote client and the database server during an alert
session; retrieving new listing records in the time focusing between
the alert session and at least one of the interactive session and
a previous alert session; and receiving the new listing records
during the alert session.
12. A process according to claim 11, the remote client further
comprising: facilitating a dynamic session between the portable
computing device and another database server over a different communications
link, including identifying the remote client to the another database
server and managing an interactive search session between the remote
client and the search engine of the another database server.
13. A process according to claim 11, wherein the listing records
received from the database server are in a page display format,
further comprising: receiving a page comprising the listing records
organized in the page display format into a buffer; and parsing
the real estate information page into information tokens for display.
14. A process according to claim 11, further comprising: calling
one or more functions in the search engine and passing the search
parameters to the one or more called functions.
15. A process according to claim 14, wherein the one or more called
functions are implemented as structured query language functions.
16. A process according to claim 11, wherein each listing record
in the real estate informaion database contains a unique identifier,
further comprising: including one or more of the unique identifiers
in the search parameters; receiving the listing records containing
unique identifiers which match the included unique identifiers from
the search engine; and organizing the displayed listing records
by the unique identifiers.
17. A process according to claim 16, further comprising: waking
up the remote client on a scheduled basis using an alert timer.
18. A process according to claim 11, further comprising: periodically
paging the remote client with the search engine; connecting the
remote client and the database server during an alert session in
response to the page; retrieving new listing records in the time
occurring between the alert session and at least one of the interactive
session and a previous alert session; and receiving the new listing
records during the alert session.
19. A process according to claim 11, wherein the database server
interfaces to the real estate information database over a distributed
network.
20. A process according to claim 11, wherein the communications
link comprises at least one of the following: intranetwork link,
intranetwork link, serial link, data telephone link, analog modern
link, digital modem link, cellular telephone link, satellite link,
radio-frequency link, infrared link, fiber optic link, coaxial cable
link, and combinations thereof.
21. A portable computing device for providing remote interactive
access to a real estate information database, comprising: a general
purpose random access memory exclusively maintaining both program
code and data for both transient and persistent storage; a remote
client configured in the general purpose random access memory and
comprising methods for accessing a real estate information database
through a search engine running on a database server the search
engine being configured to retrieve one or more listing records
from the real estate information database with each listing record
in the real estate information database comprising a set of characteristics
describing an individual real estate property listing, the remote
client comprising: a session manager facilitating a dynamic session
between the portable computing device and the database server over
a communications link, comprising: identifying the remote client
to the database server; and managing an interactive search session
between the remote client and the search engine; a search method
interactively sending to the search engine search parameters comprising
real estate property listing characteristics and receiving from
the search engine listing records having characteristics matching
the search parameters; a display method displaying the listing records
on the portable computing device; and a daemon method periodically
connecting the remote client and the database server during an alert
session and receiving new listing records during the alert session,
the display method displaying the new listing records received from
the search engine which were retrieved by the search engine between
the alert session and at least one of the interactive session and
a previous alert session.
22. A portable computing device according to claim 21, wherein
the remote client further comprises a plurality of session managers
which each facilitate a dynamic session between the portable computing
device and another database server over a different communications
link.
23. A portable computing device according to claim 21, the remote
client further comprising: a buffer configured in the general purpose
random access memory, the search method receiving listing records
received from the search engine in a page display format; and a
parser parsing the page display formatted listing records into tokens
for use by the display method.
24. A portable computing device according to claim 21, the remote
client further comprising: the search method remotely invoking one
or more functions in the search engine and passing the search parameters
to the one or more invoked functions.
25. A portable computing device according to claim 21, the remote
client further comprising; a pager method connecting the remote
client and the database server during an alert session in response
to a page from database server, the display method displaying new
listing records received from the search engine which were retrieved
by the search engine between the alert session and at least one
of the interactive session and a previous alert session.
26. A portable computing device according to claim 21, wherein
the communications link comprises at least one of the following:
internetwork link, intranetwork link, serial link, data telephone
link, analog modem link, digital modem link, cellular telephone
link, satellite link, radio-frequency link, infrared link, fiber
optic link, coaxial cable link, and combinations thereof.
27. A process for providing remote interactive access to a real
estate information database on a portable computing device, the
portable computing device comprising a general purpose random access
memory exclusively maintaining both program code and data for both
transient and persistent storage, comprising: configuring a remote
client in the general purpose random access memory comprising methods
for accessing a real estate information database through a search
engine running on a database server, the search engine being configured
to retrieve one or more listing records from the real estate information
database with each listing record in the real estate information
database comprising a set of characteristics describing an individual
real estate property listing, comprising: facilitating a dynamic
session between the portable computing device and the database server
over a communications link, comprising: identifying the remote client
to the database server; and managing an interactive search session
between the remote client and the search engine; interactively sending
to the search engine search parameters comprising real estate property
listing characteristics and receiving from the search engine listing
records having characteristics matching the search parameters; displaying
the listing records on the portable computing device; and periodically
connecting the remote client and the database server via a daemon
method during an alert session, receiving new listing records during
the alert session, and displaying the new listing records received
from the search engine which were retrieved by the search engine
between the alert session and at least one of the interactive session
and a previous alert session.
28. A process according to claim 27, further comprising: facilitating
a dynamic session between the portable computing device and another
database server over a different communications link.
29. A process according to claim 27, further comprising: configuring
a buffer in the general purpose random access memory and receiving
into the buffer listing records received from the search engine
in a page display format; and parsing the page display formatted
listing records into tokens for display.
30. A process according to claim 27, further comprising: remotely
invoking one or more functions in the search engine and passing
the search parameters to the one or more invoked functions. on.
31. A process according to claim 27, further comprising: connecting
the remote client and the database server during an alert session
in response to a page from database server, the display method displaying
new listing records received from the search engine which were retrieved
by the search engine between the alert session and at least one
of the interactive session and a previous alert session.
32. A process according to claim 27, wherein the communications
link comprises at least one of the following: intranetwork link,
intranetwork link, serial link, data telephone link, analog modem
link, digital modem link, cellular telephone link, satellite link,
radio-frequency link, infrared link, fiber optic link, coaxial cable
link, and combinations thereof.
33. A computer-readable storage medium holding code for providing
remote interactive access to a real estate information database
on a portable computing device, the portable computing device comprising
a general purpose random access memory exclusively maintaining both
program code and data for both transient and persistent storage,
comprising: a remote client configured in the general purpose random
access memory and comprising methods for accessing a real estate
information database through a search engine running on a database
server, the search engine being configured to retrieve one or more
listing records from the real estate information database with each
listing record in the real estate information database comprising
a set of characteristics describing an individual real estate property
listing, the remote client comprising: a session manager facilitating
a dynamic session between the portable computing device and the
database server over a communications link, comprising: identifying
the remote client to the database server; and managing an interactive
search session between the remote client and the search engine;
a search method interactively sending to the search engine search
parameters comprising real estate property listing characteristics
and receiving from the search engine listing records having characteristics
matching the search parameters; a display method displaying the
listing records on the portable computing device; and a daemon method
periodically connecting the remote client and the database server
during an alert session and receiving new listing records during
the alert session, the display method displaying the new listing
records received from the search engine which were retrieved by
the search engine between the alert session and at least one of
the interactive session and a previous alert session.
34. A storage medium according to claim 33, wherein the remote
client further comprises a plurality of session managers which each
facilitate a dynamic session between the portable computing device
and another database server over a different communications link.
35. A storage medium according to claim 33, the remote client further
comprising: a buffer configured in the general purpose random access
memory, the search method receiving listing records received from
the search engine in a page display format; and a parser parsing
the page display formatted listing records into tokens for use by
the display method.
36. A storage medium according to claim 33, the remote client further
comprising: the search method remotely invoking one or more functions
in the search engine and passing the search parameters to the one
or more invoked functions.
37. A storage medium according to claim 33, the remote client further
comprising: a pager method connecting the remote client and the
database server during an alert session in response to a page from
database server, the display method displaying new listing records
received from the search engine which were retrieved by the search
engine between the alert session and at least one of the interactive
session and a previous alert session.
38. A storage medium according to claim 33, wherein the communications
link comprises at least one of the following: internetwork link,
intranetwork link, serial link, data telephone link, analog modem
link, digital modem link, cellular telephone link, satellite link,
radio-frequency link, infrared link, fiber optic link, coaxial cable
link, and combinations thereof.
Real estate description
FIELD OF THE INVENTION
The present invention relates in general to remote database access
and, in particular, to a system and process for providing remote
interactive access to a real estate information database using a
portable computing device.
BACKGROUND OF THE INVENTION
In the residential segment of the real estate industry, computerized
real estate information databases, known as multiple listing service
(MLS) databases, have become the premier source of centralized real
estate listing information. MLS databases enjoy widespread acceptance
throughout the industry. Individual real estate agencies subscribe
to the MLS and provide information about properties both listed
and sold. Access is ordinarily restricted to licensed real estate
professionals, appraisers, and lending institutions.
Typically, an MLS database contains a set of property listing records
describing real estate properties being offered for sale, leasing,
or rental for a defined geographic region. Each listing identifies
and describes the various characteristics of the property in a standard,
pre-defined format, which can be easily and accurately searched.
Listings can also include maps and photographs of the property.
The characteristics also include pricing and tax information, including
the price and terms at which a particular property sold.
One important aspect of MLS databases is the ability to archive
historical information about properties already sold for use by
a broad audience. For instance, to a potential seller or purchaser,
historical information is crucial in determining the price at which
a comparable property would sell in a particular market segment.
Similarly, to an appraiser, historical information is essential
in arriving at an appropriate appraisal figure. In an active real
estate market, near real time historical information is almost a
requirement.
Another important aspect of MLS databases is the capability of
providing access to new or updated listing information. Most MLS
databases are updated continuously. However, as a practical matter,
real estate agents do not have continuous access to their respective
MLS. Consequently, real estate agents, and therefore, their clients,
generally only learn about new or updated listings during an MLS
database access session conducted at the agents' office.
One prior art approach to providing access to an MLS is through
a remote terminal session. Typically, a terminal or a personal computer
configured with a terminal emulator connects to the MLS database
either over a dedicated line or via a dial up connection with a
modem. The listing information is served in a character-based, page
display format, generally consisting of a 25 by 80 character presentation
space. Thus, the terminal or personal computer must provide a sufficient
screen size upon which to view the listing information, one page
at a time. Moreover, access to historical information and new or
updated listings can only be obtained during a given access session.
A similar prior art approach to providing access to an MLS is the
MLSWindows product, described in "WyldFyre Technologies, Inc.,
Leading the Way In Real Estate GUI Software," Real Innovators,
pp. 18-20 (Summer 1997 ed.). Unlike the conventional terminal screen-based
approach, the MLSWindows product provides a graphical user interface
(GUI) for viewing listing information, including maps. The MLSWindows
product also provides a capability to connect to an MLS database
via a TCP/IP network or via synchronous or asynchronous communications.
However, the MLSWindows product requires a personal computer with
a windowing environment upon which to operate. Although significant
progress has been made in miniaturizing portable personal computers,
at best, these systems suffer from limited battery life and require
a size and weight that make handheld operation impracticable.
Therefore, there is a need for a highly portable and flexible solution
for remotely accessing a real estate information database in an
interactive fashion. Preferably, such a solution includes a capability
to automatically be notified of or inquire into new or updated listings.
There is a further need for an approach to remotely accessing a
real estate information database using a portable computing device
which could be standalone or integral to a portable information
or communication appliance, such as a wireless communications device.
SUMMARY OF THE INVENTION
The present invention provides a system and process for providing
remote interactive access to a real estate information database
using a portable computing device.
An embodiment of the present invention is a system and process
for providing remote interactive access to a real estate information
database using a portable computing device. A portable computing
device maintains both program code and data exclusively in a general
purpose random access memory configured for both transient and persistent
storage of program code and data. A database server includes a search
engine configured to retrieve listing records from a real estate
information database. Each listing record includes a set of characteristics
describing an individual real estate property listing. A remote
client defines methods in the general purpose random access memory
for accessing the real estate information database through the search
engine. The methods include a session manager, a search specification
method, and a search results display method. The session manager
facilitates a dynamic session between the portable computing device
and the database server over a communications link. The session
manager identifies the remote client to the database server and
manages an interactive search session between the remote client
and the search engine. The search specification method interactively
sends to the search engine search parameters and receives from the
search engine the listing records having real estate property listing
characteristics matching the search parameters. The search results
display method displays the received listing records on the portable
computing device.
A further embodiment of the invention is a portable computing device,
process, and computer-readable storage medium holding code for providing
remote interactive access to a real estate information database.
A general purpose random access memory exclusively maintains both
program code and data for both transient and persistent storage.
A remote client is configured in the general purpose random access
memory and includes methods for accessing a real estate information
database through a search engine running on a database server. The
search engine is configured to retrieve one or more listing records
from the real estate information database with each listing record
in the real estate information database including a set of characteristics
describing an individual real estate property listing. The remote
client includes a session manager facilitating a dynamic session
between the portable computing device and the database server over
a communications link. The session manager identifies the remote
client to the database server and manages an interactive search
session between the remote client and the search engine. A search
method interactively sends to the search engine search parameters
including real estate property listing characteristics and receives
from the search engine listing records having characteristics matching
the search parameters. A display method displays the listing records
on the portable computing device.
The present invention facilitates highly portable, interactive
access sessions between a portable computing device and a real estate
information database, such as an MLS database. The portable computing
device can communicate with the real estate information database
using a wide range of communication configurations, including a
wireless modem, direct dial-up modem, internetwork protocol (IP)
modem, and others. A local server could be introduced to continuously
transact an access session with the real estate information database
and to provide updates to the portable computing device on a regular
basis. Similarly, the portable computing device could be configured
for automatic update via an express request (pull) or a page (push).
Still other embodiments of the present invention will become readily
apparent to those skilled in the art from the following detailed
description, wherein is described embodiments of the invention by
way of illustrating the best mode contemplated for carrying out
the invention. As will be realized, the invention is capable of
other and different embodiments and its several details are capable
of modifications in various obvious respects, all without departing
from the spirit and the scope of the present invention. Accordingly,
the drawings and detailed description are to be regarded as illustrative
in nature and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1A and 1B are block diagrams showing a system for providing
remote interactive access to a real estate information database
using a portable computing device in accordance with the present
invention;
FIG. 2 is a block diagram showing a further embodiment of the present
invention introducing a local server into the system of FIG. 1A;
FIG. 3 is a functional block diagram showing the remote client
used in the system of FIG. 1A;
FIGS. 4A and 4B are flow diagrams showing a process for providing
remote interactive access to a real estate information database
using a portable computing device in accordance with the present
invention;
FIG. 5 is a screen shot showing, by way of example, a preferences
specification screen generated by the method of FIGS. 4A and 4B;
FIGS. 6A and 6B are screen shots showing, by way of example, a
search parameter specification screen and a search status screen
generated by the method of FIGS. 4A and 4B;
FIG. 7 is a screen shot showing, by way of example, search results
screen generated by the method of FIGS. 4A and 4B;
FIG. 8 is a flow diagram showing a routine for initializing a remote
client for use in the method of FIGS. 4A and 4B;
FIG. 9 is a flow diagram showing a routine for executing a search
for use in the method of FIGS. 4A and 4B;
FIG. 10 is a flow diagram showing a routine for executing a detail
search for use in the method of FIGS. 4A and 4B;
FIG. 11 is a flow diagram showing a routine for displaying detailed
search results for use in the method of FIGS. 4A and 4B;
FIGS. 12A-12E are screen shots showing, by way of example, search
result details screens generated by the routine of FIG. 11;
FIG. 13 is a flow diagram showing a routine for a paging module
which provides a "push" notification as a further embodiment
of the present invention; and
FIG. 14 is a flow diagram showing a routine for a daemon method
for periodically providing a "pull" notification as a
further embodiment of the present invention.
DETAILED DESCRIPTION
FIG. 1A is a block diagram showing a system 7 for providing remote
interactive access to a real estate information database 14 (database)
using a portable computing device (PCD) 9 in accordance with the
present invention. There are two principal sets of components: the
PCD 9 and a real estate information system 8. The real estate information
system 8 includes a database server 12 operatively coupled to the
database 14. As further described below, the database server 12
includes a random access memory (RAM) (not shown) into which is
loaded and executed a search engine 13. The search engine 13 interfaces
to the database 14 for the storage, retrieval, and searching of
listing records stored within the database 14. In addition, the
database server 12 includes serial ports (not shown), a modem bank
21 and a network hub 25.
As also further described below, the PCD 9 is a special purpose
computing device and includes a single general purpose RAM 10 configured
for both transient and persistent storage of both program code and
data. The RAM 10 is used exclusively by the PCD 9 for both program
code and data storage, although the operating system, core libraries,
and configuration information could be stored in a specialized read
only memory (ROM) (not shown), as is known in the art. A remote
client 11 (RC) is loaded and executed in the RAM 11 for interactively
accessing the real estate information database 14, as further described
below with reference to FIG. 3.
The PCD 9 can be connected to the database server 12 via three
types of communications links. First, the PCD 9 can be directly
interfaced to a serial port of the database server 12 using a serial
connection 15. Second, the PCD 9 can be connected to the database
server 12 through a wireless server 18, which is the preferred mode
in connection. With this type of communication link, the PCD 9 can
be equipped with a wireless modem (not shown) which transmits to
a receiver 17 coupled to the wireless server using a radio frequency
connection 16. Alternatively, the PCD 9 can be equipped with a conventional
modem and an adapter for connection to a cellular telephone. In
turn, the wireless server 18 is equipped with a modem 19 that is
interconnected with the modem bank 21 via a modem link 20. Finally,
the PCD 9 can be connected to the database server 12 via a network
23, such as an internetwork, including the Internet, or an intranetwork.
The PCD 9 is connected to the network 23 via a network link 22,
which could be via analog modem, internetwork protocol (IP) modem,
wireless modem, and the like. In turn, the network 23 is connected
to the network hub 25 of the database server 12 via a high speed
network link 24.
The database server 12 is a general purpose, programmed digital
computing device consisting of a central processing unit (CPU),
RAM, non-volatile secondary storage, such as a hard drive or CD
ROM drive, network interfaces, and peripheral devices, including
user interfacing means, such as a keyboard and display. Program
code, including software programs, and data are loaded into the
RAM for execution and processing by the CPU and results are generated
for display, output, transmittal, or storage. In the described embodiment,
the database server 12 is a legacy-type data processing system consisting
of a traditional mainframe computer system, such as manufactured
by Tandem Computers, Inc., Cupertino, Calif.
The database system 8 provided by the RE InfoLink Multiple Listing
Service, Santa Clara, Calif., is a typical multiple listing service
database form. The database 14 includes a set of listing records
which each contain a set of characteristics describing the real
estate property listing. There are ten classes of properties: single
family residential, common interest development, multi residential,
mobile homes, residential lots and lands, commercial lots and lands,
commercial/industrial, business opportunity, commercial rental,
and residential rental. Within each class, a listing record includes
various sets of characteristics, including characteristics pertaining
to interior, exterior, additional information, and remarks. Within
each of these sets of characteristics, further specifics can be
specified, such as, for an interior, type, style, bedrooms, bathrooms,
and so on. The database 14 can be searched by specifying these individual
characteristics.
The PCD 9 is a special purpose, programmed digital computing device
consisting of a CPU, the single general purpose RAM, and limited
peripheral devices, including a communications port and user interfacing
means, such as a data input interface and display. Typically, these
devices are highly portable and are designed for handheld use. The
primary difference between a conventional computer system and a
PCD is the storage subsystem: to conserve on battery life, size
and weight, a single general purpose RAM is used for substantially
all program code and data storage, instead of using non-volatile
secondary storage. In the described embodiment, the PCD 9 is a personal
data assistant (PDA), such as the Palm III connected organizer,
or any similar member of the Palm connected organizer family, manufactured
by 3Com Corporation, Santa Clara, Calif. An exemplary wireless modem
is the Ricochet modem, provided along with the Ricochet mobile Internet
access service, by Metricom, Inc., Los Gatos, Calif. An alternate
PDA that has in integral wireless modem is the Palm VII connected
organizer, also manufactured by 3Com Corporation. A cellular telephone
modem adapter suitable for use with a Palm III connected organizer
is the Snap-On GSM Modem Adapter, manufactured by Option International,
Leuven, Belgium.
The PCD 9 could also be a handheld personal computer (HPC) running
the Windows CE operating system, such as the Cassiopeia HPC, manufactured
by Casio Computer Company Ltd., Tokyo, Japan; the Compaq Aero 8000
HPC, manufactured by Compaq Computer, Houston, Tex. and the Jornada
HPC, manufactured by the Hewlett-Packard Company, Palo Alto, Calif.
Other types of personal computing devices are feasible.
Finally, the PCD 9 could be incorporated as part of the new generation
of cellular telephones, known as Smart Phones and similar devices,
which integrate the functionality of a PDA with the features of
a cellular telephone. The PDQ telephone, manufactured by Qualcomm,
San Diego, Calif., in particular incorporates the Palm operating
system and connected organizer into a cellular telephone. These
types of devices export an application programming interface (API)
for interfacing telephony features with client functionality. Thus,
the remote client 11 can be loaded and executed using one of these
cellular telephones and the database server 12 interactively accessed
through the wireless connection afforded by the cellular telephone.
FIG. 1B is a block diagram showing a system 7 for providing remote
interactive access to multiple real estate information systems 5a,
5b, 5c using the PCD 9 of FIG. 1A. The PCD 9 can be connected to
any number of real estate information systems 5a, 5b, 5c using either
the same or different type of communications link 6a, 6b, 6c, respectively.
Each communications link 6a, 6b, 6c could be any of the three types
of communications links described above with reference to FIG. 1A,
that is, a serial connection, a wireless connection, or a network
connection, through various protocol configurations of the remote
client 11, further described below with reference to FIG. 3. Preferably,
the PCD 9 is only connected to one real estate information system
5a, 5b, 5c at one time.
FIG. 2 is a block diagram showing a further embodiment 26 of the
present invention introducing a local server 27 into the system
7 of FIG. 1A. The local server includes a network hub 29 and a random
access memory (RAM) (not shown) into which is loaded and executed
a paging module 28. As further described below with reference to
FIG. 13, the paging module 28 provides a "push" notification
of a new or changed real estate listing to a remote PCD 9 on a regularly
scheduled basis. The local server 27 and database server 12 are
both connected to a network 31 via high speed network link 30 using
network hubs 29 and 25, respectively.
FIG. 3 is a functional block diagram showing the remote client
11 used in the system 8 of FIG. 1A. The remote client 11 is a computer
program written as source code in a conventional programming language,
such as the C or Java programming languages, and is presented for
execution by the CPU as object or byte code, as is known in the
art. The various implementations of the source code and object and
byte codes can be held on a computer-readable storage medium, including
the general purpose RAM 10 of the PCD 9, or embodied on a transmission
medium in a carrier wave. In the described embodiment, the remote
client is written in the C programming language with the Code Warrior
C compiler and 3Com Macintosh System Development Kit for the Palm
3.0 operating system.
The remote client 11 consists of three primary modules: session
manager 32, search method 33, and display method 34. The session
manager 32 provides the low level communications interface to the
database server 12, including identifying the remote client 11 and
managing an on-going interactive session between the remote client
11 and the search engine 13. The search method 33 processes search
queries by sending sets of search parameters 35 to the search engine
13 via the session manager 32. In response, the search method 33
receives back search results 36 in the form of real estate listing
records that the search engine 13 has retrieved from the database
14. Finally, the display method 34 displays the real estate listing
records to the user. The steps performed by the respective modules
of the remote client 11 are further described below beginning with
reference to FIGS. 4A and 4B.
In one embodiment, the remote client 11 interfaces directly to
the search engine 13. The search results 36 are pre-filtered into
a format designed for presentation within the limited size of the
display of the PCD 9. In an alternate embodiment, the search results
36 are returned in a page display format, such as would be acceptable
for viewing on a conventional personal computer display. The session
manager 32 stores these search results 36 into a receive buffer
37 configured in the general purpose RAM of the PCD 9. A parser
38 reads in the page display formatted search results from the receive
buffer 37 and breaks the search results down into "tokens"
for use by the display method 34.
In a further embodiment of the present invention, the remote client
11 includes a daemon method 39 for periodically providing a "pull"
notification of a new or changed real estate listing, as further
described below with reference to FIG. 14. An alert timer 40 within
the daemon method 39 "wakes up" the PCD 9 and initiates
a connection to the database server 12. The search method 33 issues
a new query to the search engine 13 and processes any new or changes
search results received from the database server 12. FIGS. 4A and
4B are flow diagrams showing a process 41 for providing remote interactive
access to a real estate information database 14 using a PCD 9 in
accordance with the present invention. First, a set of preferences
for the interactive session is set (block 42). Referring to FIG.
5, a screen shot of a preferences specification screen 60 generated,
by way of example, by the method 41 of FIGS. 4A and 4B is shown.
In the described embodiment, four preferences need be specified,
a Department of Real Estate (DRE) license number 61, a password
62, a phone number 63 and a modem initialization string 64, although
other preferences are also feasible. Upon the completion of the
specification of preferences, the preferences can be saved by pressing
the virtual "Save" button 65 or discarded by pressing
the virtual "Cancel" button 66.
Referring back to FIGS. 4A and 4B, next, the remote client 11 is
initialized (block 43) for serial communications by the session
manager 32 (shown in FIG. 3) as further described below with reference
to FIG. 8. A set of search parameters 35 is specified (block 44)
using the search method 33 (shown in FIG. 4). Referring to FIG.
6A, a screen shot of a search parameter specification screen 70
generated, by way of example, by the method 41 of FIGS. 4A and 4B
is shown. In the described embodiment, four search parameters need
be specified, a search area or neighborhood 71, a class 72, such
as "Single Family Residential," the status of the property
73, such as "Active," and a "Search By" characteristics
74. Here, a pull down menu of characteristics 74 is presented. The
search parameters 35 correspond to the set of characteristics describing
the real estate property listings stored in the database 14. Upon
the completion of the specification of search parameter specification,
the search can be initiated by pressing the virtual "Search"
button 75 or more search parameters specified by pressing the virtual
"More" button 76. Referring to FIG. 6B, a screen shot
of a search status screen 66 generated, by way of example, by the
method 41 of FIGS. 4A and 4B is shown. The number of successful
search matches 67 is indicated. The search can be canceled by pressing
the virtual "Cancel" button 68.
Referring back to FIGS. 4A and 4B, a search is executed (block
45), as further described below with reference to FIG. 7. Search
results 36 (shown in FIG. 3) are received (block 46). If the search
results 36 indicate a match between the search parameters 35 and
one or more listing record in the database 14 (block 47), the search
results 36 are displayed (block 48). Referring to FIG. 7, a screen
shot of a search results screen 80 generated, by way of example,
by the method 41 of FIGS. 4A and 4B is shown. The search results
36 are displayed as a simple list of properties 81.
Referring back to FIGS. 4A and 4B, if there is no match (block
47), further search parameters 35 can be specified (block 44) and
the search and review process (blocks 45-47) repeated. Select search
results 36 can be saved for later review (block 49) using, for instance,
check boxes next to each of the search results 36. If more details
of a found property listing are requested (block 50), a detailed
search request is executed (block 51), as further described below
with reference to FIG. 10. Otherwise, if details are not requested
(block 50), a new search can be specified (block 44) and the search
and review process (blocks 45-47) repeated. Finally, the detailed
search results are received (block 52) and displayed (block 53),
as further described below with reference to FIG. 12. The process
41 then ends.
FIG. 8 is a flow diagram showing the routine 42 for initializing
the remote client 11 for use in the method 41 of FIGS. 4A and 4B.
The purpose of this routine is to prepare the session manager 32
for an interactive serial communications session with the database
server 12. First, the receive buffer 37 (shown in FIG. 3) is allocated
(block 90). A search parameter structure is allocated for storing
the search parameters 35 (block 91). A receives parameters structure
is allocated for storing the search results 36 (block 92). The receive
parameters structure can include a data structure for use in reading
page display formatted search results stored in the receive buffer
37. Next, a serial library is allocated (block 94). The modem parameters
are initialized (block 95), such as baud rate, data bits, and parity
bits. Finally, the serial port is opened (block 96) and a session
with the database server 12 is initiated. The routine 42 then returns.
FIG. 9 is a flow diagram showing the routine 45 for executing a
search for use in the method 41 of FIGS. 4A and 4B. The purpose
of this routine is to send the search parameters 35 to the search
engine 13. If the remote client 11 is not connected to the database
server 12 (block 100), a connection is initiated (block 101). Once
connected, the search parameters 35 are sent (block 102). In the
described embodiment, the remote client 11 interacts with the search
engine 13 in two ways. First, using a modem access proxy, such as
via a wireless connection, the search parameters 35 are sent to
the search engine 13 as if remote client 11 were a conventional
character-based terminal. The search results 36 are returned in
a page display format, which is then parsed, into tokens by the
parser 38 (shown in FIG. 3). Second, the search method 33 invokes
a remote function call to the search engine 13 and the search parameters
35 are sent as function call parameters. For example, a Structured
Query Language (SQL) function call could be used. Upon completion
of the sending of the search parameters 35, the routine 45 returns.
FIG. 10 is a flow diagram showing the routine 49 for executing
a detail search for use in the method 41 of FIGS. 4A and 4B. The
purpose of this routine is to send a further request for more detailed
information about one or more particular property listings from
the set of search results 36. If the remote client 11 is not connected
to the database server 12 (block 110), a connection is initiated
(block 111). Once connected, detailed search parameters are sent
(block 112). In the described embodiment, each listing record describing
a real estate property listing in the database 14 includes a unique
identifier, called an MLS number. Unique identifiers for particular
properties, such as those shown in the example properties list 81
(shown in FIG. 7), are sent to the search engine 12 to retrieve
specific detailed information. Upon completion of the sending of
the detailed information request, the routine 49 returns.
FIG. 11 is a flow diagram showing the routine 51 for displaying
detailed search results for use in the method of FIGS. 4A and 4B.
The purpose of this routine is to present detailed property listing
information in a user-friendly format on the limited display area
of the PCD 9. First, the detailed listing is displayed (block 120).
Additional listings can be reviewed (block 121) by pressing appropriate
navigation virtual buttons. Finally, more detailed information can
be shown (block 122). Referring to FIGS. 12A-12E, screen shots showing
search result details screens 130, 135, 140, 145, 150 generated
by the routine 51 of FIG. 11 are shown. Per screen 130, detailed
listing information 131 is presented. Additional property listings
can be accessed by pressing the ".fwdarw." virtual button
132. The previous search screen can be accessed by pressing the
"Back" virtual button 133. Per screen 135, office information
136 is presented. Additional property listings can be accessed by
pressing the ".fwdarw." virtual button 137. The previous
search screen can be accessed by pressing the "Back" virtual
button 138. Per screen 140, financial information 141 is presented.
Additional property listings can be accessed by pressing the ".fwdarw."
virtual button 142. The previous search screen can be accessed by
pressing the "Back" virtual button 143. Per screen 145,
other information 146 is presented. Additional property listings
can be accessed by pressing the ".fwdarw." virtual button
147. The previous search screen can be accessed by pressing the
"Back" virtual button 148. Finally, per screen 150, comments
151 are presented. Additional property listings can be accessed
by pressing the ".fwdarw." virtual button 152. The previous
search screen can be accessed by pressing the "Back" virtual
button 153. Upon completion of the displaying of the detailed information,
the routine 51 returns.
FIG. 13 is a flow diagram showing a routine for a paging module
160 which provides a "push" notification as a further
embodiment of the present invention. This routine operates in the
paging module 28 in the remote server 27 (shown in FIG. 2). The
paging module 28 is periodically waken up (block 161) using an internal
timer. If there are new or changed listing records in the database
14 (block 162), a Short Messaging Service (SMS) message is sent
to the remote client 9 (block 163). SMS messages are short alphanumeric
messages limited to around 200 characters. The method 160 then returns
to sleep (block 164) until the next periodic awakening. The sleeping
period can be set to any reasonable interval, such as one hour.
FIG. 14 is a flow diagram showing a routine for a daemon method
170 for periodically providing a "pull" notification as
a further embodiment of the present invention. The remote client
9 is periodically waken up (block 171) using the alert timer 40
(shown in FIG. 3). A connection to the database server 12 is initiated
(block 172) and a search query is issued to the search engine 13
(block 173). If there are new or changed listing records in the
database 14 (block 174), the search results 36 are received and
displayed (block 175). The method 170 then returns to sleep (block
176) until the next periodic awakening. The sleeping period can
be set to any reasonable interval, such as one hour.
The present invention provides a highly portable solution to providing
remote, interactive access to an real estate information database.
This approach provides multiple means of connecting to the real
estate information database, including via a direct connection,
using a proxy or local server, and via a network connection. In
addition, the search method is flexible and provides can interact
with the search engine either as a pseudo terminal or using remotely
invoked function calls.
Moreover, the present invention is based on a portable computing
device which differs from personal computer-based solutions by efficiently
relying upon a single primary storage subsystem within which both
program code and data are stored and executed. This approach provides
the practical benefits of dramatically increased battery life, low
weight, and minimal form factor. Moreover, the capability to be
integrated into a variety of information and communication appliances,
such as intelligent and PDQ cellular telephones.
While the invention has been particularly shown and described as
referenced to the embodiments thereof, those skilled in the art
will understand that the foregoing and other changes in form and
detail may be made therein without departing from the spirit and
scope of the invention. |