`Kilgore et ai.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US006877015B 1
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,877,015 Bl
`*Apr. 5, 2005
`
`(54) SYSTEM AND METHOD FOR
`DYNAMICALLY ADJUSTING DATA VALUES
`IN RESPONSE TO REMOTE USER INPUT
`
`(75)
`
`Inventors: Benjamin F. Kilgore, Redmond, WA
`(US); Steven D. Lamb, Woodinville,
`WA (US); Loren K. Imes, Bothel, WA
`(US); Mark E. Hickling, Kirkland, WA
`(US)
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.c. 154(b) by 0 days.
`
`This patent is subject to a terminal dis(cid:173)
`claimer.
`
`(21) Appl. No.: 09/148,615
`
`(22) Filed:
`
`Sep. 4, 1998
`
`(51)
`Int. CI? .............................. G06F 7/00; G06F 3/00
`(52) U.S. CI. ..................................... 707/104.1; 7151744
`(58) Field of Search .......................... 7151744; 705/1-3,
`705/36,27; 709/200, 203; 703/6; 341/20-27;
`345/145, 163, 167; 434/307 R
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,808,916 A * 9/1998 Orr et al. ....................... 703/6
`
`5,841,437 A * 11/1998 Fishkin et al. .............. 345/619
`5,999,169 A * 12/1999 Lee ............................ 345/163
`6,012,044 A * 1/2000 Maggioncalda et al.
`...... 705/36
`6,021,426 A * 2/2000 Douglis et al.
`............. 709/200
`6,061,004 A * 5/2000 Rosenberg ................... 341/20
`6,208,974 B1 * 3/2001 Campbell et al. .............. 705/3
`
`* cited by examiner
`
`Primary Examiner~afet Metjahic
`Assistant Examiner-Te Yu Chen
`(74) Attorney, Agent, or Firm~yon & Harr, L.L.P.; Craig
`S. Fischer
`
`(57)
`
`ABSTRACT
`
`The present invention is embodied in a system and method
`for dynamically adjusting data values in response to remote
`user input to provide the remote user with real time inter(cid:173)
`action of the data values. First, a user requests information
`from a remote computer and then results of the requested
`information are collected at a host computer. Second, the
`results of the request are transmitted in a hidden format from
`the host to the remote computer. Third, the results are
`remotely processed in response to user input. Last, the
`processed results are dynamically displayed. Client-side
`processing is preferably used instead of server-side process(cid:173)
`ing to enable the user to quickly access and adjust informa(cid:173)
`tion dynamically and in real time without server delays.
`
`19 Claims, 7 Drawing Sheets
`
`•••
`
`Ow"
`Ouvol
`Ow"
`Ow"
`Ouvol
`Ow"
`0 ....
`Ouvol
`
`Sl29.950 -
`S184.950 -
`SlS9.950 -
`$2G4'zoo -
`$2Il9.3OO -
`S21U1O -
`$222.500 -
`S22Ul111l -
`S239.R -
`~-
`$2ol9.99O -
`S2Sl.99O -
`$252.990 -
`$254.990 -
`smeso -
`$215.000 -
`$215.753 -
`$219.990 -
`
`Singlo-l...,.
`3lr1 bo
`3lr2bo
`SingIo-IoniIJo
`3lr3bo
`SlnaIo-IoniIJo
`SingIo-IoniIJo
`4lr2bo
`SInaIo-I ... 4lr2bo
`3lr2bo
`Slnalo-l .....
`Singlo-l...,.
`3lr3bo
`SingIo-I...,.
`3lr2bo
`3lr3bo
`Singlo-l .....
`3lr3bo
`SingiolonilJo
`4lr3bo
`SlnaIo-IoniIJo
`41l13bo
`Singlol ....
`SingIo-I .... 4lr3bo
`SingIo-I ..... 4lr3bo
`Singlo-l ..... 4lr3bo
`Singlo-l...,.
`4lr3bo
`3lr3bo
`
`1310
`
`- _2·3_
`- _2·3_
`- Now
`
`- _2·3_
`
`710
`
`
`
`I--"
`~
`(I)
`I--"
`b
`""-l
`""-l
`00
`-..CJ\
`rJ'l
`
`e
`
`-..J
`
`'""'" o ....,
`~ .....
`'JJ. =(cid:173)~
`
`Ul
`C
`C
`N
`~Ul
`:"l
`~
`
`~ = .....
`~ .....
`~
`•
`rJl
`d •
`
`PROGRAMS
`APPLICATION
`
`134
`
`140
`
`I
`I
`
`db
`DB
`o CDDaDl am a:o
`
`124
`
`~ 142
`
`122
`
`154
`
`___ J
`I
`II
`INTERFACE
`NElWORK .1
`
`•••
`INTERFACE II
`
`PORT
`SERIAL
`
`158 I
`---,1 I
`L ____ •
`I
`I
`
`146
`
`•
`
`•
`
`INTERFACE
`
`DRIVE
`
`OPTICAL
`
`INTERFACE
`DISK DRIVE
`MAGNETIC
`
`• INTERFACE
`
`DRIVE
`
`HARD DISK
`
`UNIT
`
`PROCESSING
`
`148
`
`102
`
`110
`
`DATA
`
`PROGRAM
`
`138
`
`OTHER PROGRAM
`
`136 -tJ..l., MODULES
`
`PROGRAMS
`APPLICATION
`
`SYSTEM
`
`OPERATING
`
`RAM
`
`BIOS
`
`ROM
`
`134
`
`132
`
`114
`
`I
`I
`1----------------------.
`
`104
`
`SYSTEM MEMORY
`
`100
`
`\ ,
`" 120 ,
`
`\
`
`\\\~118
`,
`
`116
`
`•
`
`•
`
`PROGRAMS
`APPLICATION
`
`134
`
`OPERATING
`
`SYSTEM
`
`•
`
`132
`
`DATA
`
`PROGRAM
`
`138
`
`MODULES
`
`OTHER PROGRAM
`
`136
`
`FIG. 1
`
`
`
`u.s. Patent
`
`Apr. 5, 2005
`
`Sheet 2 of 7
`
`US 6,877,015 Bl
`
`(210
`
`SERVER
`
`{
`
`(220
`
`. - - - -.... \!"'"'"""I
`
`RESULTS
`
`DATA
`
`4~
`
`"
`CLIENT
`
`I
`
`\
`
`"--218
`
`(21 2
`
`I
`
`216~
`
`I
`
`USER INTERFACE
`
`INTERACTIVE
`.. OPTIONS
`)
`
`222/
`
`QUERY
`,
`(
`'-214
`
`CONTROL
`MODULE,
`\
`"--224
`
`FIG. 2
`
`
`
`u.s. Patent
`
`Apr. 5, 2005
`
`Sheet 3 of 7
`
`US 6,877,015 Bl
`
`COLLECT AND PROCESSES DATA ON A SERVER TO
`PRODUCE RESULTS IN RESPONSE TO A REQUEST
`FOR INFORMATION FROM A CLIENT
`
`I
`
`"-300
`
`"
`
`TRANSMIT RESULTS
`TO CLIENT
`
`1
`
`~310
`
`,.
`
`PROVIDE USER WITH
`INTERFACE TOOLS
`FOR CONDUCTING REAL
`TIME INTERACTION
`OF THE RESULTS
`
`I
`
`" - 312
`
`ADJUSTMENTS OF THE RESULTS BY THE USER
`ARE DISPLAYED ON THE USER INTERFACE
`OF THE CLIENT IN REAL TIME
`
`I
`
`~314
`
`FIG. 3
`
`
`
`u.s. Patent
`
`Apr. 5, 2005
`
`Sheet 4 of 7
`
`US 6,877,015 Bl
`
`L414
`
`SERVER
`
`{
`
`416~
`
`£418
`
`GATHER
`REQUEST
`MODULE
`
`GATHER DATA
`MODULE
`
`419
`
`,
`
`TRANSMIT
`MODULE
`
`,r
`CLlENT1
`
`(400
`
`,.
`
`(410
`
`I
`
`,....-~C~LI~EN~T~2-j,---...,
`
`CONTROL
`MODULE
`FOR CLlENT1
`
`\..420
`
`CONTROL
`MODULE
`FORCLlENT2
`~422
`
`CONTROL
`MODULE
`FOR CLlENTx
`
`\..424
`
`FIG.4
`
`
`
`u.s. Patent
`
`Apr. 5, 2005
`
`Sheet 5 of 7
`
`US 6,877,015 Bl
`
`USER REQUESTS INFORMATION BASED ON
`USER DEFINED CRITERIA
`
`H
`
`ENSURE THAT CLIENT PLUG-IN
`MODULE IS PRESENT ON CLIENT
`
`, r
`
`I
`
`"- 500
`,
`"- 510
`
`COLLECT AVAILABLE INFORMATION ON SERVER
`RELATING TO USER DEFINED REQUEST
`
`r
`
`I
`
`'''- 512
`
`TRANSMIT REQUESTED INFORMATION IN A
`PREDEFINED FORMAT TO THE CLIENT USER
`
`, r
`
`DECODE THE REQUESTED INFORMATION
`IN THE PREDEFINED FORMAT WITH CONTROL
`MODULE
`
`~
`
`"- 514
`,
`
`"
`
`516
`
`PROVIDE THE CLIENT USER WITH
`CONFIGURABLE CRITERIA TOOLS AS
`
`INTERACTIVE USER INTERFACE OPTIONS ,
`"- 518
`
`FIG. 5
`
`
`
`I--"
`~
`(I)
`I--"
`b
`""-l
`""-l
`00
`-..CJ\
`rJ'l
`
`e
`
`-..J
`0 ....,
`0'1
`~ .....
`'JJ. =-~
`
`Ul
`
`N c c
`
`~Ul
`:"l
`~
`
`~ = .....
`~ .....
`~
`•
`rJl
`d •
`
`10
`
`(600
`
`C~:":':":":J S"fdl~J
`, .. ,.,. ,lnstan'lv 1I11.r ttl. rtlvl. of ""Uf
`!i:ii:L ., elide .nd df~" the slid ... to
`
`.-
`
`Classifieds experience.
`Try these search and filter tips to get the most out of your Used Car
`
`iii Clld< ttle ."0Wf to Instantly
`
`SEARCH tips&".;cks
`
`FIG. 6
`
`~;i~~~:--~. ··-·-~~;el~~~'. -.h:~,ffl;;>:·~~;·':;~~io·:~!··~~~r··'~'.~~:~~~l
`
`Il . I
`
`·1
`I
`i
`
`37 miles
`
`36 __
`34 mile.
`9 miIet
`9miu
`9 ....
`'9 miIet
`9 .....
`.9ma.
`
`..
`2
`~
`2
`2
`2
`2
`2
`2
`
`.. Cli.
`.42.000
`16,000
`6 cyl.
`59.000
`6 c,1.
`15.550
`.. e,1.
`6 c"t.
`3$.950
`39.950 G C)'1.
`34 .. 400
`.. c,1.
`33.850
`.. CjIIl.
`.. ~.200 .. cJl
`34._
`.. CJlt.
`.. CJI.
`20,550
`
`$12.999
`$22,900
`$19.900
`$17.995
`$57_
`126._
`$15.489 .
`$15..995
`$16.995
`$19..989
`$19.989
`
`1994
`1.
`1.
`1996
`1995
`1.
`1995
`1995
`~996
`1997
`1997
`
`Acura Integra LS
`Acure SOC Base
`Aculell
`Acura Integra RS
`AcuraNSX
`Acura legend l
`Acura Integra LS
`Acura Int8Gf8 LS
`A~r. Integra RS
`Acwa Cl2.2Cl Premium
`AcuraQ.
`
`! Click buttons to soli by column ~ Code vicinity.
`
`I New listings thiS week
`I Onler Discount for this vehicle II ilu:".,. Of deClUS4 the ZIP
`
`
`
`I--"
`~
`(I)
`I--"
`b
`""-l
`""-l
`00
`-..CJ\
`\Jl
`
`e
`
`-..J
`o ....,
`-..J
`~ .....
`'JJ. =(cid:173)~
`
`Ul
`C
`C
`N
`~Ul
`:"l
`~
`
`~ = .....
`~ .....
`~
`•
`rJl
`d •
`
`710
`
`•. Wdhin 2·3 weeIu
`
`-New
`-W"1IhiI2·3weekl
`-Within 2·3 week,
`
`1310
`
`1740
`
`3br3ba
`4br3ba
`4bf3ba
`4br311e
`4br3ba
`4br3ba
`4br3bs
`3br3ba
`3tr3bs
`3br2ba
`3tr3ba
`
`S ingte-fami.l'
`S ing1e-famly
`S ing1e-faml\l
`Sing1e-famiy
`Single-famly
`Shgle-tamly
`S ingIe-famly
`S ingIe-/amiy
`SinglHq
`Single-temiy
`Single-famiy
`Singlo-fllll'lly
`SingIo-tamly
`Single-famiy
`SingIo-/omiy
`S ingIo-/omiy
`S ingls-l1Imiy
`Singla-/~
`
`FIG. 7
`
`$279,990 -
`$275..753
`..
`$275,000
`..
`S263.990
`..
`$254.990 -
`$252.990 -
`S250..99O -
`$249.990 -
`$2-40..200 -
`$239.950 -
`$224.000 -
`S222.5OO -
`$212.300 -
`S209.300 -
`S204.200
`..
`$1S9.950
`..
`$164.950 -
`S129.95O -
`
`720
`
`\
`
`a Related Information
`Iii What to Ask When I'c.u
`" Attached HousInO:
`
`Condos Md Co-op~
`
`See the House
`
`~advisor
`
`Duval
`Duval
`Duvel
`Duval
`Duval
`DlNai
`Duval
`Dwall
`Ouvel
`Dwal
`
`Ouv'"
`Duval
`Duval
`Duval
`Duval
`Duv'"
`
`_I Duval
`
`t:tMap
`@l List
`Show View:
`
`
`
`US 6,877,015 Bl
`
`1
`SYSTEM AND METHOD FOR
`DYNAMICALLY ADJUSTING DATA VALUES
`IN RESPONSE TO REMOTE USER INPUT
`
`BACKGROUND OF THE INVENTION
`
`5
`
`2
`and adjustment of the results. For example, slider filter
`controls, alphanumerical boxes, drop-down menus, or the
`like can be used. The system and method of the present
`invention preferably utilizes client side-processing of the
`results instead of server-side processing. This enables the
`user to quickly access and adjust information dynamically
`and in real time without server delays.
`The foregoing and still further features and advantages of
`the present invention as well as a more complete under-
`10 standing thereof will be made apparent from a study of the
`following detailed description of the invention in connection
`with the accompanying drawings and appended claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Referring now to the drawings in which like reference
`numbers represent corresponding parts throughout:
`FIG. 1 is a block diagram illustrating an apparatus for
`carrying out the invention;
`FIG. 2 is a block diagram illustrating an overview of the
`present invention;
`FIG. 3 is a flow diagram illustrating the general opera(cid:173)
`tional flow of the present invention;
`FIG. 4 is a block diagram illustrating a processing method
`in accordance with the present invention;
`FIG. 5 is a flow diagram illustrating a working example
`of the system and method of the present invention; and
`FIGS. 6 and 7 are sample user interfaces of the working
`30 example of FIG. 5 of the system and method of the present
`invention.
`
`1. Field of the Invention
`The present invention relates to a system and method for
`processing data, and in particular, to a system and method
`for adjusting data values in real time in response to remote
`user input.
`2. Related Art
`Quick and easy interaction between a server and a client
`user is desirable, especially for systems with bandwidth 15
`limitations. For example, the Internet utilizes a server-client
`system. Many client users with Internet access have band(cid:173)
`width limitations. For example, during interaction with the
`World Wide Web, these client users typically encounter
`server processing every time the user makes a request. 20
`Constant server processing bogs down the server, delays
`user Internet navigation and creates an unpleasantly slow
`Internet experience for the user.
`For example, many servers have systems that provide
`access to database information. One such system is a used 25
`car online classified database. After the user makes an initial
`request, the server provides results related to the request.
`However, if the user desires to modify, adjust, limit, etc. the
`results, the server typically must be re-accessed and a new
`request is submitted as a database query. As a result, the user
`is required to navigate sometimes through several layers of
`information. Thus, these systems are slow, do not allow real
`time user interaction and require undue processing.
`Therefore, what is needed is an effective and efficient
`technique for adjusting data values in real time in response 35
`to remote user input. What is also needed is a system and
`method that utilizes client-side processing instead of server(cid:173)
`side processing for data processing to avoid lengthy server
`reloading.
`Whatever the merits of the above mentioned systems and
`methods, they do not achieve the benefits of the present
`invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`40
`
`In the following description of the invention, reference is
`made to the accompanying drawings, which form a part
`hereof, and in which is shown by way of illustration a
`specific example in which the invention may be practiced. It
`is to be understood that other embodiments may be utilized
`and structural changes may be made without departing from
`the scope of the present invention.
`Introduction
`Quick and easy interactive computer environments are
`very desirable, especially for remote users. The present
`45 invention provides this type of interactive computer envi(cid:173)
`ronment for remote users by allowing the remote user to
`interact with data values for dynamically adjusting the data
`values. Namely, the system and method of the present
`invention allows the remote user to adjust a set of results
`50 produced by a host system in real time. Preferably, the
`system and method of the present invention achieves real
`time interaction by utilizing client-side processing for pro(cid:173)
`viding dynamic interaction of the set of results by a user
`from a remote location.
`55 Exemplary Operating Environment
`FIG. 1 and the following discussion are intended to
`provide a brief, general description of a suitable computing
`environment in which the invention may be implemented.
`Although not required, the invention will be described in the
`60 general context of computer-executable instructions, such as
`program modules, being executed by a computer. Generally,
`program modules include routines, programs, objects,
`components, data structures, etc. that perform particular
`tasks or implement particular abstract data types. Moreover,
`65 those skilled in the art will appreciate that the invention may
`be practiced with a variety of computer system
`configurations, including personal computers, server
`
`SUMMARY OF THE INVENTION
`
`To overcome the limitations in the prior art described
`above, and to overcome other limitations that will become
`apparent upon reading and understanding the present
`specification, the present invention is embodied in a system
`and method for dynamically adjusting data values in
`response to remote user input. Namely, the system and
`method provides the remote user with real time interaction
`of data values, such as a set of results, produced by a host
`system. As such, the user can dynamically adjust the set of
`results from a remote location. The system and method of
`the present invention preferably utilizes client-side process(cid:173)
`ing to achieve real time interaction.
`Specifically, first, a user requests information from a
`remote computer and then results of the requested informa(cid:173)
`tion are collected at a host computer. Second, the results of
`the request are transmitted from the host to the remote
`computer in a format that is preferably encoded and trans(cid:173)
`parent to the remote user. Third, the results are remotely
`processed in response to user interaction with the results.
`The processed results are dynamically adjusted and dis(cid:173)
`played as the user interacts with the results. Graphical user
`interface control devices are used to allow user interaction
`
`
`
`US 6,877,015 Bl
`
`3
`computers, hand-held devices, multiprocessor systems,
`microprocessor-based or programmable consumer
`electronics, network PCs, minicomputers, mainframe
`computers, and the like. The invention may also be practiced
`in distributed computing environments where tasks are 5
`performed by remote processing devices that are linked
`through a communications network. In a distributed com(cid:173)
`puting environment, program modules may be located on
`both local and remote computer storage media including
`memory storage devices.
`With reference to FIG. 1, an exemplary system for imple(cid:173)
`menting the invention includes a general purpose computing
`device in the form of a conventional computer 100, includ(cid:173)
`ing a processing unit 102, a system memory 104, and a
`system bus 106 that couples various system components 15
`including the system memory 104 to the processing unit 102.
`The system bus 106 may be any of several types of bus
`structures including a memory bus or memory controller, a
`peripheral bus, and a local bus using any of a variety of bus
`architectures. The system memory includes computer stor- 20
`age media in the form of read only memory (ROM) 110 and
`random access memory (RAM) 112. A basic input/output
`system 114 (BIOS), containing the basic routines that helps
`to transfer information between elements within computer
`100, such as during start-up, is stored in ROM 110. The 25
`computer 100 may include a hard disk drive 116 for reading
`from and writing to a hard disk, not shown, a magnetic disk
`drive 118 for reading from or writing to a removable
`magnetic disk 120, and an optical disk drive 122 for reading
`from or writing to a removable optical disk 124 such as a CD 30
`ROM or other optical media. The hard disk drive 116,
`magnetic disk drive 128, and optical disk drive 122 are
`connected to the system bus 106 by a hard disk drive
`interface 126, a magnetic disk drive interface 128, and an
`optical drive interface 130, respectively. The drives and their 35
`associated computer-readable media provide storage of
`computer readable instructions, data structures, program
`modules and other data for the computer 100. Although the
`exemplary environment described herein employs a hard
`disk, a removable magnetic disk 120 and a removable 40
`optical disk 130, it should be appreciated by those skilled in
`the art that other types of computer readable media can store
`data that is accessible by a computer. Such computer read(cid:173)
`able media can be any available media that can be accessed
`by computer 100. By way of example, and not limitation, 45
`such computer readable media may comprise communica(cid:173)
`tion media and computer storage media. Communication
`media typically embodies computer readable instructions,
`data structures, program modules or other data in a modu(cid:173)
`lated data signal such as a carrier wave or other transport 50
`mechanism and includes any information delivery media.
`The term "modulated data signal" means a signal that has
`one or more of its characteristics set of changed in such a
`manner as to encode information in the signal. By way of
`example, and not limitation, communication media includes 55
`wired media such as wired network or direct wired
`connection, and wireless media such as acoustic, RF, infra(cid:173)
`red and other wireless media. By way of example, and not
`limitation, communication media includes wired media such
`as a wired network or direct wired connection, and wireless
`media such as acoustic, RF, infrared and other wireless
`media. Computer storage media includes any method or
`technology for the storage of information such as computer
`readable instructions, data structures, program modules or
`other data. By way of example, such storage media includes
`RAM, ROM, EPROM, flash memory or other memory
`technology, CD-ROM, digital video disks (DVD) or other
`
`4
`optical disk storage, magnetic cassettes, magnetic tape,
`magnetic disk storage or other magnetic storage devices, or
`any other medium which can be used to store the desired
`information and which can be accessed by computer 100.
`Combinations of any of the above should also be included
`within the scope of computer readable media.
`A number of program modules may be stored on the hard
`disk, magnetic disk 120, optical disk 124, ROM 110 or RAM
`112, including an operating system 132, one or more appli-
`10 cation programs 134, other program modules 136, and
`program data 138. A user may enter commands and infor(cid:173)
`mation into the computer 100 through input devices such as
`a keyboard 140 and pointing device 142. Other input devices
`(not shown) may include a microphone, joystick, game pad,
`satellite dish, scanner, or the like. These and other input
`devices are often connected to the processing unit 102
`through a serial port interface 144 that is coupled to the
`system bus 106, but may be connected by other interfaces,
`such as a parallel port, game port or a universal serial bus
`(USB). A monitor 146 or other type of display device is also
`connected to the system bus 106 via an interface, such as a
`video adapter 148. In addition to the monitor 146, computers
`may also include other peripheral output devices (not
`shown), such as speakers and printers.
`The computer 100 may operate in a networked environ(cid:173)
`ment using logical connections to one or more remote
`computers, such as a remote computer 150. The remote
`computer 150 may be a personal computer, a server, a router,
`a network PC, a peer device or other common network node,
`and typically includes many or all of the elements described
`above relative to the personal computer 100, although only
`a memory storage device 152 has been illustrated in FIG. 1.
`The logical connections depicted in FIG. 1 include a local
`area network (LAN) 154 and a wide area network (WAN)
`156. Such networking environments are commonplace in
`offices, enterprise-wide computer networks, intranets and
`Internet.
`When used in a LAN networking environment, the com(cid:173)
`puter 100 is connected to the local network 154 through a
`network interface or adapter 158. When used in a WAN
`networking environment, the computer 100 typically
`includes a modem 160 or other means for establishing
`communications over the wide area network 156, such as the
`Internet. The modem 160, which may be internal or external,
`is connected to the system bus 106 via the serial port
`interface 144. In a networked environment, program mod-
`ules depicted relative to the computer 100, or portions
`thereof, may be stored in the remote memory storage device.
`It will be appreciated that the network connections shown
`are exemplary and other means of establishing a communi(cid:173)
`cations link between the computers may be used.
`Components and Operation
`FIG. 2 is a block diagram illustrating an overview of the
`present invention. The present invention is embodied in a
`system for adjusting data values in real time in response to
`remote user interaction with the data values. The system
`includes a host unit or server 210 coupled to at least one
`remote unit or client 212. In response to an initial client
`query 214 by a user through a user interface (UI) 216, such
`60 as a graphical user interface (GUI), data 218 stored on the
`server 210 is accessed, preferably as sorted data, to produce
`results 220 comprised of data values. The results 220 are
`transmitted to the client 212 and displayed on the user
`interface 216. The user at the client 212 is provided with
`65 interactive options 222 related to the data values, which
`allows the user to interact with the data values and make
`adjustments to the data values with user input directed to the
`
`
`
`US 6,877,015 Bl
`
`5
`interactive options 222. A control module 224, which can be
`sent from the to server to the client or created on the fly on
`the client 212, is preferably located on the client 212 during
`user interaction with the data values. The control module
`224 controls the transmitted results and processes the user
`input for providing dynamic adjustment of the data values
`and real time user interactivity.
`FIG. 3 is a flow diagram illustrating the general opera(cid:173)
`tional flow of the present invention. Specifically, a host
`computer or server collects and processes data to produce
`results in response to a request for information from a
`remote computer or client (step 300). The results of the
`request are transmitted, preferably in an encoded format that
`is hidden from and transparent to the user, to the client from
`the server (step 310). The user is provided real time inter(cid:173)
`activity of the results with user input through interactive user
`interface options (step 312), such as graphical user interface
`tools. Adjustments of the results by the user are displayed on
`the user interface of the client in real time (step 314). The
`user input is preferably processed at the client to allow the
`real time inter activity in the form of adjustment, filtering and
`viewing of the results. FIGS. 2 and 3 refer to one server and
`one client for illustrative purposes only. It should be noted
`that the server referred to in FIGS. 2 and 3 can be one or
`more servers coupled to numerous respective clients and can 25
`communicate simultaneously with the clients in the manner
`described in FIGS. 2 and 3.
`FIG. 4 is a block diagram illustrating a processing method
`in accordance with the present invention. In one
`embodiment, the present invention utilizes client-side pro(cid:173)
`cessing. Client-side processing involves performing data
`adjustment in response to user input on the client instead of
`on the server. Client-side processing provides a remote user
`with real time inter activity and dynamic data adjustment,
`unlike server-side processing, which forces the remote user 35
`to access the server every time the remote user adjusts the
`data.
`For example, as shown in FIG. 4, client1 400 makes
`request1 (Rl)' client2 410 makes request2 (R2) and clientx
`412 makes requestx (RJ. A server 414 utilizes a gather
`request module 416 that gathers and sorts respective raw
`data results for each respective request. A gather data
`module 418 gathers, for example, respective encoded data,
`such as pre-compressed data packets that are associated with
`their respective raw data results. A transmit module 419 45
`transmits the pre-compressed data packets, a control module
`(CM1 , CM2 , CM3 ) for each pre-compressed data packet and
`a decompressor to respective clients (Client1 , Client2 ,
`Client3 ) in a format that is preferably transparent to respec(cid:173)
`tive users of the clients 400, 410, 412.
`The transmitted control modules 420, 422, 424 reside on
`each client and decode and decompress the pre-compressed
`data to reproduce raw data results for each client. Each
`control module 420, 422, 424 also displays the respective
`raw data results for each respective client 400, 410, 412. In 55
`addition, each control module 420, 422, 424 provides each
`user with interactive options for adjusting the raw data
`results. For example, a graphical user interface control, such
`as graphical gauges, can be provided. The gauges can be a
`slider with, for example, dual upper and lower bounds or can 60
`be a single slider with a range bounded by zero and a fixed
`value. Since each control module resides on the client, they
`are able to process and display adjustments made by each
`user in real time, thereby providing a dynamic interactive
`environment.
`The gather request module 416 and the gather data
`module 418 can utilize structured query language (SQL)
`
`6
`techniques to process the request and gather the data. The
`control module can be any suitable module for controlling
`operations, such as an ActiveX control, lava applet, Perl
`applet, etc. Also, the control module can utilize any suitable
`5 data structure for organizing and adjusting the data in real
`time. For example, an array, stack and queue, linked list,
`decision tree, etc. can be used. In addition, the interactive
`options can be user friendly user interface devices, such as
`progressive boundary gauges, or progressive alphanumeric
`10 entry boxes for adjusting the raw data results.
`Working Example
`FIG. 5 is a flow diagram illustrating a working example
`of the system and method of the present invention. FIGS. 6
`and 7 are sample user interfaces of the working example of
`15 FIG. 5 of the system and method of the present invention. As
`discussed above, any suitable control component and client(cid:173)
`side processing technique can be used. FIG. 5 is for illus(cid:173)
`trative purpose only and shows a component object model
`(COM) control, such as an ActiveX control of a working
`20 example. The ActiveX control can be written in C++, lava,
`Visual Basic, or any suitable programming language. The
`control component allows user manipulation of the results
`with graphical user interface development tools.
`Specifically, as shown in FIG. 5, first, the remote user
`requests information based on user defined criteria (box
`500). For example, the user can request classified pricing
`information for used cars for sale based on make and model
`or for real estate for sale based on location, property type,
`etc. Next, the system ensures that the client has a processing
`30 plug-in control module, such as an ActiveX portability
`container, coupled to the client (box 510). If the client does
`not have the plug-in module, the plug-in control module is
`transmitted from the server and installed on the client.
`Next, the server collects the requested information relat(cid:173)
`ing to the user's defined request that is stored on the server,
`such as used car information sorted by price, year, miles, etc.
`or real estate information sorted by location, price, type of
`home, etc. to produce results in response to the defined
`request from the client (box 512). The server can encode and
`40 compress the data associated with the results on the fly or
`have the associated data available as stored accessible raw
`results with corresponding pre-compressed data or pre(cid:173)
`encoded data representing the results. The results are trans(cid:173)
`mitted to the client preferably as encoded pre-compressed
`data and in a format that is transparent to the client user (box
`514). The encoded data representing the results is decoded
`by the plug-in control module at the client to reproduce the
`raw results (box 516), which are displayed on the user
`interface 600,700 of the client in a user readable format 610,
`50 710 as shown in FIGS. 6 and 7, respectively. The results can
`be displayed as a query grid having at least one field and
`associated criteria.
`Last, the client user is provided with real time interactivity
`of the results through interactive user interface options, such
`as graphical user interface tools (box 518). These interface
`options can include configurable slider filters, input boxes
`that can accept alphanumerical input or the like, drop-down
`menus or any suitable interface, such as graphical gauges
`that allow a user to move graphics within a reference datum
`for adjusting the criteria for associated fields in real time
`(box 518). For example, as shown in FIGS. 6 and 7, the user
`interface 600, 700 includes slider controls 620, 720 such as
`dual or single slider controls. The client user can click on a
`graphical lever and drag the lever of the slider filter control
`65 in either direction to narrow certain criteria of the results for
`each sorted field or category. For example, price, mileage,
`and year criteria for car sales, as shown in FIG. 6 or price
`
`
`
`US 6,877,015 Bl
`
`7
`range, property type, and age of home criteria for home sales
`for FIG. 7. The dual slider controls have multiple boundaries
`for constraining the results within a defined range, as shown
`in FIGS. 6 and 7.
`Also, as shown in FIG. 7, the interface options can include 5
`configurable alphanumerical input boxes 730 and drop(cid:173)
`down menus 740. The configurable alphanumerical input
`boxes 730 can be digitally coupled to the slider filters 720 so
`that both the slider filters 720 and the input boxes 730
`dynamically change as the user configures the other inter- 10
`face. As a result, the user can interact with either interface
`option. In addition, the drop-down menus 740 and radio
`buttons (not shown) preferably have predefined criteria as
`the interface options. Since the plug-in control module
`resides on the client, interactivity by the client, for example 15
`with the use of the sliders, input boxes, drop-down menus,
`radio buttons or the like, is in real time. Therefore, as the
`user adjusts each of the sorted fields (car or home price, car
`mileage, car year, type of home, age of home, etc.) with the
`interface options, the data is filtered and displayed by the
`client dynamically.
`The foregoing description of the invention has been
`presented for the purposes of illustration and description. It
`is not intended to be exhaustive or to limit the invention to
`the precise form disclosed. Many modifications and varia- 25
`tions are possible in light of the above teaching. It is
`intended that the scope of the invention be limited not by this
`detailed description, but rather by the claims appended
`hereto.
`What is claimed is:
`1. A display device having rendered thereon dynamically
`changing results of a database query, comprising:
`a query grid having at least one field and associated data,
`the query grid being stored on a server as raw data,
`wherein the query grid is transmitted from the server to
`a remote c