METHOD AND APPARATUS FOR ADAPTIVE FILTER GRAPHING IN A COMMUNICATION SYSTEM

Abstract: A method and apparatus for adaptive filter graphing in a communication system. The apparatus includes a memory (215) for storing a graphical representation and a communications protocol interface (205) for receiving a message, where the message includes data relating to the graphical representation stored in memory. At least one filter (215) is provided to determine if the data from the received message falls within a range of acceptable data. A multimedia software engine (230) updates the stored graphical representation with the data received in the message providing that the received data falls within the range of acceptable data. The apparatus further includes a display (225) for displaying the updated graphical representation.

Description: METHOD AND APPARATUS FOR ADA IVE MLTER GRΛPHIIN IN A COMMUNICATION SYSTEM BACKGROUND OF THE INVENTION I. FIELD OF THE INVENTION The present invention relates generally to generating α gi oμhical representation, and, more particularly, lo a method and apparatus for adaptive filler giaphing in a communication system. 2. DESCRIPTION OF THE RELATED ART' The communication industry has undergone tremendous μi owth over the past several years. A significant contribution to this growth has been the demand for modern communication services, such as data messaging, which extend beyond traditional Voice communication. As these modern communication services become increasingly popular, the communication infrastructure for providing these services becomes more and more overloaded, which may undesirably cause a degradation in the quiilily of lhese services. Currently, one such popular communication service is the li ansmission of content to portable communication devices for the display of such conlcnl Ibe.eoπ. Generally, (he content originates from a content provider and is sent to a server in the form of a message for transmission to one or more portable communication devices via a radio frequency link, for example. The types of content transmitted to the communication devices is quite varied. For example, the content may include weather-related data, sports-related data. Financial-related data, as well as many other types of data. The user of the portable communication device generally subscribes to a particular content provider or providers that offer the content desired by the user. The content received and displayed at the portable communication device may be the value of certain stocks in a user's stock portfolio, for example. One problem currently encountered by these content delivery schemes, however, is the amount of data that needs to be transmitted over the communication system to provide the desired content to the user of the portable communication device. That is, in order to display the data of a particular stock over a thirty day period, for example, the content provider transmits all of the data values for the stock over the thirty day period for each additional day that the stock changes value. Because the popularity of these content services are significantly on the rise, an increased burden is being placed on the communication systems providing these content services, and, as a result, may significantly impact the quality of these services. The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above. SUMMARY OF THE INVENTION In one aspect of the present invention, a method is provided. The method comprises receiving a message at a user terminal, the message including data relating to a stored graphical representation at the user terminal; determining if the data from the received message falls within a range of acceptable data; updating the stored graphical representation with the data received in the message providing that the data falls within the range of acceptable data; and displaying the updated graphical representation at the user terminal. In another aspect of the present invention, an apparatus is provided. The apparatus comprises a memory that stores a graphical representation and a receiver that receives a message. The message includes data relating to the graphical representation stored in the memory. The apparatus further includes at least one filter that determines if the data from the received message falls within a range of acceptable data and a module that updates the stored graphical representation with the data received in the message. A display is also provided that displays the updated graphical representation. In another aspect of the present invention, a system is provided. The system comprises a server that sends a message that includes data related to a graphical representation. The system further includes at least one user terminal, which comprises a memory that stores the graphical representation; a receiver that receives the message sent from the server; at least one filter that determines if the data from the received message falls within a range of acceptable data; a module that updates the stored graphical representation in the memory with the data received in the message providing that the data received falls within the range of acceptable data; and a display that displays the updated graphical representation. In another aspect of the present invention, a method is provided. The method comprises receiving a message at a user terminal, where the message includes received data relating to stored data at the user terminal; updating the stored data with the received data from the message; generating a graphical representation at the user terminal based upon the stored and received data; and displaying the graphical representation generated at the user terminal. In another aspect of the present invention, an apparatus is provided. The apparatus comprises a memory that stores first data and a receiver that receives a message. The message includes second data relating to the stored first data in the memory- A module is also provided that updates the stored first data with the second data recei <od in the message, and generates a graphical representation based upon the First and second data. The apparatus further comprises a display that displays the generated graphical representation. In another aspect of the present invention, a system is provided. The system comprises a server that sends a message and at least one user terminal. The user terminal comprises a memory that stores first data; a receiver that receives the message from the server, the message including second data relating to the stored first data in the memory; a module that updates the stored first data with the second data received in the message, and generates a graphical representation based upon the first and second data; and a display that displays the generated graphical representation. BRIEF DESCRIPTION OF THE DRAWINGS The invention may be best understood by j reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements, and in which: Figure 1 is a simplified block diagram of a communication system for disseminating content data to one or more user terminals in accordance with one embodiment of the present invention; Figure 2 shows a more detailed representation of the user terminal of Figure 1 according to one embodiment; Figure 3 shows an example of a multimedia application displayed at the user terminal of Figure 2; Figure 4 illustrates an example of a message that includes content data received by the user terminal of Figure 2; Figure 5 shows a series of data filters that are used to filter the data received in the message of Figure 4; Figure 6 illustrates a process according to one embodiment of the present invention; and Figure 7 illustrates a process according to another embodiment of the present invention. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims. DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers " specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure. Turning now to the drawings, and specifically referring to Figure 1, a simplified block diagram of a communication system 100 is shown in accordance with one embodiment of the present invention. The communication system 100 comprises one or more content providers 105, which provide content to one or more of a plurality of user terminals 120 located throughout the communication system 100. The content provider 105 may include a commercial, non-profit, governmental, or private entity for disseminating particular content to the user tenninals 120. For example, the content provider 105 may be a weather reporting company for sending weather-related content, such as temperatures to the user terminal 120, or a sports reporting company for providing sports-related content, such as sports scores. According to the illustrated embodiment, the content transmitted to the user terminal 120 includes data relating to a running counter, such as time, for example. The data may include, in addition to the examples provided above, corporate security quotes, municipal security quotes, Treasury security quotes, stock quotes, index quotes, commodity futures quotes, options price quotes, athlete statistics, precipitation, humidity, corporate sales volume, available inventory for one or more products for a company, or individual sales volume for a salesperson, for example. It will be appreciated that the content may include various other data, and, thus, need not necessarily be limited to the aforementioned examples. In accordance with one embodiment of the present invention, the content provider 105 provides the content to a server 110, which then transmits the content to one or more user terminals 120 via a communication network 125. In one embodiment, the server 1 10 receives content from a plurality of content providers 105 and is remotely located therefrom. It will be appreciated, however, that the server 1 10 may alternatively be co-located with a particular content provider 105 without departing from the spirit or scope of the present invention. In addition to the content provider 105, the content transmitted to the user terminals 120 may also come from a content aggregator 140, which can provide related or un-related content from two or more separate content providers 105. For example, one content provider 105 may be a weather reporting company, and another provider 105 may be a company for reporting stock quotes. In this particular embodinlent, the content aggregator 140 gathers the content from these separate content providers 105 and then forwards the content to the server 1 10 for subsequent delivery to the user terminals 120. Each of the user terminals 120 communicates with one or more user networks 130, coupled to the communication network 125, through which the user terminals 120 receive the content transmitted by the server 1 10. According to one embodiment, the user terminals 120 may take the form of a wireless graphics-capable device, and communicate with the user network 130 via a radio frequency (RF) communication link, for example. In this particular embodiment, the user terminal 120 may be embodied as a laptop, notebook, or palmtop computer equipped with a wireless modem, a personal digital assistant (PDA) equipped with a wireless modem, a graphics-capable pager, mobile satellite terminal mobile telephone, cellular telephone, personal communication system (PCS) telephone or other similar-type portable graphics-capable communication devices. In an alternative embodiment, the user terminal 120 may take the form of a wireline graphics-capable device, such as a personal computer, for example, that is tethered to the user network 130 via a wired communication link. Turning now to Figure 2, a more detailed representation of the user terminal 120 is shown in accordance with one embodiment of the present invention. The user terminal 120 comprises a communication protocol interface 205 for interfacing the user terminal 120 to the user network 130 for communication therewith. In one embodiment, the communication protocol interface 205 may take the form of a wireless modem, for example, which receives the content transmitted from the server 1 10 via the user network 130 in a wireless manner. Alternatively, the communication protocol interf-ice 205 may take the form of a modem or other known data communication protocol to permit the content to be delivered to the user terminal 120 via the user network 130 over a wired communication link. The user terminal 120 further includes a processor 210 for controlling the overall operation thereof and a memory 215 for storing the received content that is transmitted from the server 1 10. The user terminal 120 is also configured with a user interface 220 to permit user interaction with the terminal 120. The user interface 220, for example, may be embodied as a keyboard, a touchscreen, a pointing device, such as a touchpad. voice recognition, hot-keys, etc. It will be appreciated that the user interface 220 may include one or any combination of the examples provided. It will further be appreciated that several other known types of user interfaces may be used either in addition to or in lieu of the examples provided. In the illustrated embodiment, the user terminal 120 is configured with a display screen 225 for visually depicting the content transmitted to the user terminal 120. Such visual display of the content may be in the form of a graph, table, ticker, text or image, for example. The user terminal 120 is further configured with a multimedia software engine (module) 230 and one or more data filters 235 to facilitate organization of the received content for display on the display screen 225. The functionality of the multimedia software engine 230 and the data filters 235 will be further appreciated as the detailed description proceeds. In accordance with the illustrated embodiment, one or more multimedia applications run on the processor 210 of the user terminal 120 for visually conveying the received content to the user. In one embodiment, the multimedia application may present text, graphics, video, animation, and/or sound in an integrated' manner to the user through a browser or graphical user interface (GUI). Referring to Figure 3, an example of a multimedia application 305, which visually conveys the received content on the display screen 225 of the user terminal 120, is shown. The format of the multimedia application 305 can depend on. for example, the particular content to be provided lo the user terminal 120, screen space efficiencies of the display screen 225 or user readability. In one embodiment, the multimedia application 305 is unique to the particular content provider 105 or content aggregator 140 providing the content to the user terminal 120. Alternatively, the multimedia application 305 running on the user terminal 120 can be independent relative to the content provider 105 or content aggregator 140 providing the content. According to one embodiment, the content provider 1 5 or content aggregator 140 can include vendor-specific semantics, where a proxy service may be used to translate between content written according to vendor-specific semantics to content written according to browser or GUI-specific semantics of the user terminal 120. ' The proxy service can reside at the site of the content provider 105, the content aggregator 140 or the server 1 10. Alternatively, the proxy service can reside at the user terminal 120 without departing from the-spirit and scope of the present invention. As shown in Figure 3, the multimedia application 305 displayed on the display screen 225 can include one or more graphs and/or tables in a graph/table area 310, a text area 315, a ticker area 320, and a bitmap area 325. Of course, it will be appreciated that the particular multimedia application 305 as shown in Figure 3 is merely exemplary. Accordingly, the layout of the multimedia application 305 may differ from the particular example shown. The number of graphs and/or tables displayed in the graph/table area 310 of the multimedia application 305 can be dependent upon the processing power of the user terminal's processor 210 and/or the available capacity of the memory 215. According to one embodiment, the multimedia application 305 within the graph/table area 310 includes a carousel to conserve screen space while displaying the graphs and/or tables in the graph/table area 310. Accordingly, in this particular embodiment, the multiple graphs and/or tables of the graph/table area 310 can be toggled between at regular or irregular time intervals. Thus. the graph/table area 310 can include a graph of a particular slock and a graph of a particular index, where the graphs are automatically toggled between at five second intervals, for example. Alternatively, the carousel graph/table area 310 may be user-controlled by manual toggling. Such manual toggling, for example, can be accomplished by actuating one or more keys via the user interface 220 to sequentially toggle from one graph or table to the next, or to directly select a graph or table for display that is not a sequentially-subsequent displayed graph or table. In an alternative embodiment, manual toggling can involve user interaction with a dialog box or pull down menu on the display screen 225, for example, listing the available graphs or tables for selection by the user via the user interface 220. According to one embodiment, the multimedia application 305 may include a graphical representation generated in real-time by the multimedia software engine 230 of the user terminal 120. In one embodiment, the graphical representation may include, but need not necessarily be limited to, a graph, table, ticker, text or an image. In this particular embodiment, the graphical representation is plotted on-the-fly, upon manual or automatic toggling, as previously discussed. The graphical representation may include a format having one or more colors, a standard or vendor-proprietary image format, such as a .bmp format, .gif format, .jpg format, .tif format, .pdf format, .pcd format, .rle format, .tga format, .pcx format, .ctf format or .rob format, for example. Upon receiving data for a particular graphical representation via a message, the user terminal 120 may save the graphical representation locally in the memory 215 after the generation thereof by the multimedia software engine 230 for subsequent retrieval from the memory 215 and display. Alternatively, the stored graphical representation can be retrieved from the memory 215 and the multimedia software engine 230 can modify the graphical representation based on new data received from the server 1 10, and then display the graphical representation. In another embodiment, the user terminal 120 can save the data points for a particular graphical representation in the memory 215 and plot the data r tints directly to the display screen 225. In this particular embodiment, the graphical representation itself is not stored in the memory 215 of the user terminal 120. Rather, the graphical representation is generated by the multimedia software engine 230 each time the graphical representation is to be displayed. The embodiment where the graphical representation is re-generated each time by the multimedia software engine 230 that it is to be displayed may be more appropriate for a user terminal 120 having a faster-speed processor 210 and a smaller-capacity memory 215. On the other hand, the embodiment where the graphical representation is stored locally in memory 215 after generation by the multimedia software engine 230 may be more appropriate for a user terminal 120 having a slower-speed processor 210 and a larger-capacity memory 215. It will be appreciated that the specific process for generating a graphical representation by the multimedia software engine 230 is well known to those of ordinary skill in the art. Accordingly, the specifics for generating a graphical representation by the software engine 230 will not be disclosed herein to avoid unnecessarily obscuring the present invention. In an embodiment where the graphical representation takes the form of a picture image, for example, the user terminal 120 need only store in memory 215 the changes in the pixels relative to the pixel values for the picture image already stored at the user terminal 120. For example, one or more pixels may have turned on or off. or one or more pixels may have changed from one color to another color. Accordingly, only these changes in the pixels of a particular image need to be stored in the memory 215 in order to modify the image. Turning now to Figure 4, an example of a message 405 that is transmitted from the server 1 10 for receipt by the user terminal 120 is shown according to one embodiment of the present invention. The message 405 comprises a header portion 410 and a data portion 415. The header portion 410 includes a routing header 420, which directs the message 405 from the server 1 10 to the one or more user terminals 120 for which the message 405 is intended. The data portion 415 of the message 405 includes content data from the content provider 105 or aggregator 140. The header portion 410 of the message 405 also includes a multimedia application identification (ID) 425, which identifies the multimedia application 305 running on the user tenninal 120 to which the data portion 415 of the message 405 is to be applied. If there is more than one multimedia application 305 running on the user terminal 120, the multimedia application ID 425 will identify the particular multimedia application 305 for which the message 405 is intended. Use of the multimedia application ID 425 also aids to avoid misdirected message transmissions. For example, if a particular user terminal 120 is authorized only to handle multimedia applicatfon ID "01 ," but inadvertently receives a message having a multimedia application ID "05," the multimedia software engine 230 will identify the message 405 as being misdirected and ignore its corresponding data portion 415. It will further be appreciated that if there is only one multimedia application 305 available to the user terminal 120, then multimedia application ID 425 may be omitted From the header portion 410 of the message 405. The header portion 410 of the message 405 further includes an operation identifier 430, which serves to indicate the particular operation that is to be performed on the multimedia application 305 by the multimedia software engine 230. The different operation identifiers 430 and their corresponding operations may include, for example. "U" for updating a graph in the multimedia application 305 with a new data point, "T" for updating a table with a new data point, "X" for updating a ticker with a new data point. "D" for deleting a graph, "C" for hiding a graph, "A" for adding a graph, "F" for updating a data filter 235, and "S" for selecting a particular data filter 235 to which the data is to be applied. It will be appreciated that the operations to be performed by the multimedia software engine 230 on the application 305 may include various other operations identified by the operation identifier 430, and, thus, need not necessarily be limited to the aforementioned examples. The operations indicated by the operation identifier 430 permit the multimedia software engine 230 to dynamically alter areas of the displayed application 305 to reflect new parameters and/or new content in the multimedia application 305. It will further be appreciated that the operation identifier 430 may be optionally omitted from the header portion 410 of the message 405 if the software engine 230 performs only one operation on the application 305, such as only updating a graph, for example. In the illustrated embodiment, the header portion 10 of the message 405 also includes a graph/table number 435 to indicate the particular graph/table that the data portion 415 of the message 405 is to be applied. Thus, if the message 405 includes a new data point for the third graph that is displayed in the graph/table area 310 of the application 305, then the graph/table number 435 may be indicated by "03," for example. It will be appreciated that the manipulation of the third graph or table is distinguished by the operation identifier 430. That is, "U03" indicates updating the third graph with the new data point, whereas "T03" would indicate updating the third table with a new data point. It will further be appreciated that if only one graph or table is displayed, the graph/table number 435 can be omitted from the header portion 410 of the message 405. It will also be appreciated that the graph/table number 435 can further be extended to the ticker, text, and bitmap image areas of the multimedia application 305 providing that more than one of these particular areas exist in the application 305. In accordance with the illustrated embodiment, the data portion 415 of the message 405 includes the year 440, month 445, day of month 450, time of day 455 (on a 24 hour clock) and data 460 to update the relevant portion of the multimedia application 305 displayed. For example, the data portion 415 of the message 405 can include a stock quote at a particular time of the day. This stock quote can be updated on a graph, table, or ticker of the multimedia application 305, if so desired, subsequent to the receipt of the message 405. Alternatively, the data portion 415 may indicate the temperature of a city at a particular time of day, the score of a sporting event at a particular time, etc. It will further be appreciated that the data 460 may alternatively include text or alterations to a bitmap image, such as turning on or off various pixels of the image or changing the color of various pixels, for example, as previously discussed. In the illustrated embodiment, the server 1 10 is configured to transmit updated data to the user terminal 120 via the message 405. Accordingly, when the message 405 is received at the user terminal 120, the multimedia software engine 230 need only add the newly received data to the existing data stored in the memory 215 to update the relevant area of the multimedia application 305. For example, if the server 1 10 is configured to transmit a particular stock price on the hour throughout the course of a day. the multimedia software engine 230 will apply the new data received in the message 405 to the existing data (i.e., previously transmitted stock prices) already stored in the memory 215. In this particular example, the multimedia software engine 230 will update a graph in the graph/table area 310 of the application 305, for example, thus visually conveying the current stock price to the user relative to the previously transmitted stock prices. According to the illustrated embodiment, the multimedia software engine 230 applies the data portion 415 of the received message 405 to one or more data filters 235 to filter-out any undesired or extraneous data that would not apply to a particular area of the multimedia application 305 as configured. Referring now to Figure 5, the data filters 235 to which the data portion 415 of the message 405 is applied is shown according to one embodiment. In the illustrated embodiment, each of the data filters 235 defines a counter-value or time range within which the data received in the message 405 is to conform. In one embodiment, the data filters 235 are defined by the content provider 105 or content aggregator 140. In another embodiment, the data ranges of the filters 235 may alternatively be defined by the user of the user terminal 120 through the user interface 220, for example. The data filters 235 determine the granularity of the displayed data. That is, whether the data is displayed hourly from 8:00 a.m. to 4:00 p.m. as defined by filter 505, hourly for a twenty-four hour period as defined by filter 510, or minute by minute over the last four hours as defined by the filter 515. The data in the message 405 can further be applied to a filter 520 for displaying data on a daily basis Monday through Friday, a filter 525 for displaying data daily Sunday to Saturday, every day for the last thirty days as defined by filter 530, or monthly over the last twelve months as defined by filter 535. The data filters 235 reject data from the message 405 that docs not fall within the data range defined for the particular filter 235 selected. For example, if the data filter 515 is selected to display on a graph a stock price for the last four hours, the filter 515 would reject a data point for 1 1 :20 a.m. for display by the user terminal 120 at 3 :29 p.m. Additionally, the multimedia software engine 230 may use the data filters 235 to dynamically display different counter-value range or time ranges for a particular graph or table in the same screen area of the application 305. It will be further appreciated that the filters 235 can be used to filler various other types of data either in addition to or in lieu of the time-related filters 505 - 535 as discussed above. For example, if the application 305 includes a map where traffic accident data is plotted thereon, the traffic accident data can be filtered as well depending on the scale of the map displayed by the application 305. Accordingly, if the application 305 displays a map of a particular area having a 50 mile radius, for example, traffic accident data that occurs outside such 50 mile radius can be disregarded by the multimedia software engine 230 by selection of a filter 540. Or, alternatively, the software engine 230 can reject data outside of a 1 ,000 mile radius by selecting a filter 545, for example. It will also be appreciated that the number of data filters 235 and the data ranges set for each of 'the filters 235 may vary from the examples provided. The data received by the user terminal 120 can also be filtered by the filters 235 if the data would be meaningless or insignificant relative to the currently displayed data. That is, if a graph is displayed by the application 305 depicting the value of a particular stock over the last five years, the current data on the price of such slock may be considered irrelevant to affect the graph of the five year history of the stock. Accordingly, such currently transmitted data may be filtered-out by a filter 235 because it would be insigni ficant relative to the scale currently displayed by the application 305. According to one embodiment of the present invention, a configuration file stored in the memory 215 of the user terminal 120 may include multimedia application characteristics or data, such as, graph characteristics, ticker characteristics, table characteristics, text characteristics, and/or image characteristics. Graph characteristics can include, for example, a title for each graph, the available filter type(s) 235 for each graph, the X-Y coordinates of the top right corner of the graph, and/or the X-Y coordinates of the bottom left corner of the graph. - Turning now to Figure 6, a process according to one embodiment of the present invention is shown. The process commences at block 605, where the server 1 10 generates a message 405 for transmission to one or more user terminals 120 with data from the content provider 105 or content aggregator 140. According to one embodiment, the server 1 10 sends only data that has changed (e.g., a stock price change) since the last transmission to the one or more user terminals 120. At block 610, the user terminal 120 determines whether a new message 405 has been received from the server 1 10. If a message 405 has not been received, then the multimedia software engine 230 uses an existing graphical representation stored in memory 215 and displays the graphical representation (e.g., a graph) in the appropriate area of the multimedia application 305 at block 645, when appropriate. If, however, a new message 405 has been received at block 610, then the process proceeds to block 625, where the multimedia engine 230 parses the message 405 to obtain the multimedia application ID 425, the operation identifier 430, the graph/table number 435, and the corresponding data 460. ' [ ' he multimedia engine 230 reads from a configuration file in the memory 215 lo obtain the appropriate data filter 235 designated for the data 460 within the message 405 and the characteristics for displaying the graphical representation, if appropriate. At block 630, the multimedia engine 230 determines whether the received data 460 is within the parameters or time range of the data filter 235. If not, at block 635, the data 460 from the message 405 is ignored or discarded and the process How proceeds to block 620, where the existing graphical representation is used for display. If the received data 460 is within the time range of the particular data filter 235. then at block 640 the graphical representation is updated to include the new data 460 from the message 405. The user teπninal 120 then displays the updated graphical representation on the display screen 225 at block 645. Turning now to Figure 7, a process according to another embodiment of the present invention is shown. The process commences at block 705, where the server 1 10 generates a message 405 for transmission to one or more user terminals 120 with data from the content provider 105 or content aggregator 140. As previously discussed in the process of Figure 6, the data transmitted from the server 110 includes new data for the graphical representation since the last transmission to the user terminal 120. At block 710, the user terminal 120 determines whether a new message 405 has been received from the server 1 10. If a message 405 has not been received, then the multimedia software engine 230 does not modify the existing data points stored in memory 215 for the corresponding graphical representation and generates the graphical representation (e.g., a graph) in the appropriate area of the multimedia application 305 at block 745 using the stored data points. If, however, a new message 405 has been received at block 710, then the process proceeds to block 725, where the multimedia engine 230 parses the message 405, as previously discussed, to obtain the multimedia application ID 425, the •■ peration identifier 430, the graph/table number 435, and the corresponding data 460. The multimedia engine 230 also reads a configuration file in the memory 215 to obtain the appropriate data filter 235 designated for the data 460 and the characteristics for the particular graphical representation, if appropriate. At block 730, the multimedia engine 230 determines whether the received data 460 is within the parameters or time range of the data filter 235 and/or whether the stored data points in memory 215 are still within the filter's time range. If not, at block 735, the data 460 from the message 405 and/or data stored in memory 215 is ignored or discarded and the process flow proceeds to block 720, where the existing stored data points are used to generate the graphical representation for display. If the received data 460 is within the time range of the particular data filter 235, then at block 740 the new data 460 from the message 405 is added to the stored data points for generating a * new graphical representation. The user terminal 120 then generates and displays the generated graphical representation at block 745 by the multimedia engine 230 on the display screen 225. In a bandwidth-sensitive medium, the present invention facilitates a high quality graphical representation by putting local computing and storage capabilities of the user terminals 120 to work relative to the server 1 10. Accordingly, the present invention permits a smaller data message to be transmitted to the user terminal 120 for rendering a graphical representation without transmission of all of the data points and/or characteristics for presentation thereof. For example, a service provider having a plurality of users (i.e., subscribers) typically allocates a monthly allotment of transmittable or receivable characters, such as 10,000 characters, for example, depending on the rate plan. The characters for each transmitted or received message are deducted from the user's monthly allotment. Clearly, longer messages impose a greater financial impact on the user than shorter messages. Thus, for a content provider that sends an entire graph image comprising hundreds of characters in length, will likely significantly reduce the user's monthly allotment. With the present invention, however, the messages transmitted to the user terminals 120 are much shorter because only the new data is transmitted. Accordingly, the user's monthly character allotment is reduced at a much slower rate than if all the data for a particular image λvas transmitted. The execution of the sequences of instructions contained in a computer-readable medium, such as memory 215, for example, causes the processor 210 to perform the acts described below. It should be understood that a computer-readable medium may include one or more memory devices and/or carrier waves. Such instructions may be read into memory 215 from another computer-readable medium or from a separate device via communication protocol interface 205. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software. The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below. 2Z

Claims: CLAIMS WHAT IS CLAIMED. 1. A method, comprising: receiving a message at a user terminal, the message including data relating to a stored graphical representation at the user terminal; determining if the data from the received message fails within a range of acceptable data; updating the stored graphical representation with the data received in the message providing that the data falls within the range of acceptable data: and displaying the updated graphical representation at the user terminal. 2. The method of claim 1 , wherein determining if the data from the received message falls within a range of acceptable data further comprises: applying a filter to the data of the received message, the filter defining a predetermined range of acceptable data; and determining if the data from the received message falls within the range of acceptable data defined by the filter. 3. The method of claim 1 , further comprising: disregarding the data from the received message providing that the data falls outside the range of acceptable data. 4. The method of claim 3. further comprising: displaying the stored graphical representation at the user terminal providing that the data from the message was disregarded. 5. A method, comprising: receiving a message at a user terminal, the message including received data relating to stored data at the user terminal; updating the stored data with the received data from the message; generating a graphical representation at the user terminal based upon the stored and received data; and displaying the graphical representation generated at the user terminal. 6. The method of claim 5, further comprising: determining if the received data from the message falls within a range of acceptable data. 7. The method of claim 6, wherein determining if the received data from the message falls within a range of acceptable data further comprises: applying a filter to the received data, the filter defining a predetermined range of acceptable data; and determining if the received data falls within the range of acceptable data defined by the filter. 8. The method of claim 6. further comprising: disregarding the received data from the message providing that the received data falls outside the range of acceptable data. 9, The method of claim 8, further comprising: generating a graphical representation at the user terminal based upon the stored data providing that the received data falls outside the range of acceptable data; and displaying the graphical representation generated at the user terminal based upon the stored data. 10. An apparatus, comprising: a memory that stores a graphical representation; a receiver that receives a message, the message including data relating to the graphical representation stored in the memory; at least one filter that determines if the data from the received message falls within a range of acceptable data; a module that updates the stored graphical representation with the data received in the message; and a display that displays the updated graphical representation. 11. The apparatus of claim 10, wherein the module disregards the data from the received message providing that the data falls outside the range of acceptable data defined by the at least one filter. Z5 12. The apparatus of claim 1 1 , wherein the module has the stored graphical representation displayed on the display providing that the data from the message was disregarded. 13. The apparatus of claim 10, wherein the graphical icpresentation comprises al least one of a graph, table, ticker, text, and an image. 14. An apparatus, comprising: a memory that stores first data; a receiver that receives a message, the message including second data relating to the stored first data in the memory; a module that updates the stored first data with the second data received in the message, and generates a graphical representation based upon the first and second data; and a display that displays the generated graphical representation. 15. The apparatus of claim 14, further comprising: at least one filter that determines if the received second data falls within a range of acceptable data. 16. The apparatus of claim 15, wherein the module disregards the received second data from the message providing that the second data falls outside the range of acceptable data defined by the at least one filter. Z6 17. The apparatus of claim 16, wherein the module generates a graphical representation based upon the first data providing that the second data from the message was disregarded, and to have displayed the generated graphical representation based upon the first data. 18. The apparatus of claim 14, wherein the graphical lepresentation comprises at least one of a graph, table, ticker, text, and an image. 19. A system, comprising: a server that sends a message, the message including data related to a graphical representation; at least one user terminal, comprising a memory that stores the graphical representation; a receiver that receives the message sent from the server; at least one filter that determines if the data from the received message falls within a range of acceptable data; a module that updates the stored graphical representation in the memory with the data received in the message providing that the data received falls within the range of acceptable data; and a display that displays the updated graphical representation. 20. The system of claim 19, further comprising: a content provider that provides the data related to the graphical representation to the server. 21. A system, comprising: a server that sends a message; at least one user terminal, comprising a memory that stores first data; a receiver that receives the message from the sewer, the message including second data relating to the stored first data in the memory; a module that updates the stored first data with the second data received in the message, and generates a graphical representation based upon the first and second data; and a display that displays the generated graphical representation. 22. The system of claim 21 , further comprising: a content provider that provides the second data to the server.

Inventors: SANDLIN JOSEPH R JR, WELSH SHAWN P, SANDLIN, JOSEPH, R., JR., WELSH, SHAWN, P.
Applicants: WORLDCOM INC, WORLDCOM, INC.
Application year: 2001
Main classification: G06F13
IPC codes: G06F3, G06F17, H04N1