This invention relates generally to accessing data in a computer network environment. More particularly, this invention relates to a technique for delivering personalized data to a user accessing a computer network environment.
Data can be accessed in a computer network environment using a variety of information management tools. Business Objects Americas, Inc. of San Jose, Calif. sells a variety of information management tools, including Crystal Reports™, Crystal Analysis™, Crystal Enterprise Info™, and Crystal Holos™.
Computer network environments are growing to include wireless devices that provide universal connectivity. Many wireless devices, such as cellular telephones, Personal Digital Assistants (PDAs) and the like are not suited to delivering broad views of information. Instead, these devices are constrained by relatively small displays. Since there is limited display space available, it is important that the information supplied to the display is significant. In addition, since mobile wireless devices tend to have relatively low data reception rates, it is important that they only receive the most relevant data. For example, a scenario where a user has to click through a number of screens on a mobile wireless device is sub-optimal, since it will result in a relatively long delay to obtain the desired information. Mobile wireless devices have limited computation capacity, thus it is desirable to assign data handling tasks to servers that the mobile wireless devices are accessing.
In view of the foregoing, it would be highly desirable to provide a technique for delivering adaptable and customized personalized information to a user of a computer network. While mobile wireless devices advantageously exploit such a technique, it is also beneficially exploited on any client platform since users always desire to receive the most significant information.
The invention includes a computer readable memory to store a set of executable instructions forming a personalized data delivery module. The personalized data delivery module includes executable instructions to receive a data request from a client device, invoke a user profile corresponding to a user generating the data request, gather personalized data from a generic data source using the user profile to select a sub-set of information in the generic data source, and deliver the personalized data to the client device.
The invention also includes a computer with a central processing unit and a memory connected to the central processing unit. The memory stores data and executable instructions for processing by the central processing unit. The data includes a plurality of disparate generic data sources. The executable instructions include a personalized data delivery module to (1) invoke a user profile corresponding to a user that generates a data request at a client device, (2) gather personalized data from a selected generic data source of the plurality of disparate generic data sources using the user profile to select a sub-set of information in the selected generic data source, and (3) deliver the personalized data to the client device.
The invention provides rich, relevant information that can be displayed on a mobile device. Server-side data processing tasks limit the amount of computation power required by the mobile device. The personalized data delivery techniques of the invention are advantageously exploited on any platform, not simply mobile devices.
The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:
Like reference numerals refer to corresponding parts throughout the several views of the drawings.
The client 24 may be a personal computer with a wired or wireless link. The client 24 may also be a wireless mobile device, such as a personal digital assistant, a cellular telephone, and the like. In a generic implementation, the client 24 has a network connection circuit 26 connected to a control circuit 28 via a bus 30. Also connected to the bus 30 is a memory 32, which stores executable programs, such as a network access module (e.g., a browser) 34.
The server 22 includes a network connection circuit 40 connected to a central processing unit 42 via a bus 44. Also connected to the bus 44 is a memory 46, which stores a set of executable programs, utilized to implement embodiments of the invention. In this embodiment, the memory 46 stores a personalized data delivery module 50, which includes a profile construction module 52 used to produce user profiles 54, which are also stored in the memory 46. The memory 46 also stores a data access module 56, which utilizes one or more user profiles 54 to access selected data, as discussed below. A data delivery module 58 coordinates the delivery of data through the network using known techniques. The memory 46 also stores an alert module 60, which is used to produce customized alerts of personalized data, as discussed below.
The memory 46 also stores one or more generic data sources 62A-62N. A generic data source is a general data source that is not formatted for the delivery of personalized or customized information, instead in represents comprehensive information that must be parsed to obtain personalized or customized information. By way of example, one data source may be a relational database, another data source may be an Online Analytical Processor (OLAP) data source, and another data source maybe a file store.
The configuration of
The significance of a user profile is appreciated in connection with an example of a prior art system that does not rely upon a user profile.
This drill through activity is sub-optimal, particularly in the case of a thin client, such as a mobile wireless device. This sub-optimal scenario is eliminated in accordance with the invention. The profile construction module 50 includes executable code that allows an individual to specify personal or customized data at any level of granularity. Relying upon the example of
Returning to
An optional operation of
Returning to
The personalized alerting feature of the invention is different than prior art techniques that periodically publish alerts based upon absolute data values. Take the example of an inventory-related data store. If a user requests information on, say, North American inventory and gets notified every time the inventory levels drop below a specific threshold, that is customization. If, on the other hand, the personalized data system can alert the user when inventory levels change a specific amount relative to the last time the user viewed the inventory data—that is personalization. Prior art alerting techniques generate an alert when a particular data value hits a defined threshold. However, the alert is defined based on the absolute value of the data. What differentiates this alerting system is that the alert is defined based on changes in the data since the last time a particular user viewed the data. This helps a particular user access data in a very personalized way.
In one embodiment, the invention allows for both online and offline viewing. Users are able to take a snapshot of their data by saving it to a device, and then review it when it is convenient to do so. When reconnecting to the network, the system synchronizes the user's device to display updated information (which can include current views, views that include information pertaining to the change in data since the user's last online view, and trending views). The invention also supports offline profile modifications, in which case the profile is updated on the next synchronization event.
The invention has now been fully described. The following discussion addresses various implementation details associated with embodiments of the invention. The techniques of the invention can be implemented using Crystal Enterprise™, sold by Business Objects Americas, Inc., San Jose, Calif. In such an embodiment, the addition of new data channels parallels the procedure used to add and publish report files to a system. In other words, every report is treated as a personalized data channel. A built-in web service exists to retrieve the report data through a report application server row-set application program interface. Personalized data channels can also be implemented using a web service with defined interfaces to facilitate browsing and data retrieval. For example, UDDI can be used for browsing, XSD can be used for schema fetching, and XML can be used for data fetching.
The following is an example of code that may be used to implement an alert of the invention.
When an alert of this type is implemented in the alert module 60, the alert module 60 checks the alert condition on a scheduled basis. If the condition is met, the notification is sent to the user through a telephone, email, or the like. If the user specifies a difference view, the following operations are performed. First, the system retrieves the latest data based on the user's profile and compares it with the current data to generate a difference data set. The difference data set is then stored on the server 22 and is displayed on the client 24. If the history data includes more than one difference data set, then users can perform a trend analysis. The difference data set reduces the amount of data that needs to be stored. This approach greatly reduces the data explosion problem for duplicate data instances and makes it possible to display difference data very quickly.
The data personalization provided in accordance with the invention takes various forms. First, a personalized data channel can be constructed, for example, as discussed above in connection with
Those skilled in the art will appreciate that the invention equips decision makers with tools to not only aggregate multiple disparate data services, but to also provide a mechanism to define personalizations on the data. The personalizations allow for data reuse and sharing, and the system seamlessly integrates online and offline viewing modes using synchronization models. Because historical data is stored, users are able to view changes in the data (with the most recently viewed data referenced against current data), and trending reports can be compiled (given enough historical instances). In addition, users are provided with proactive alerting mechanisms that can be used to define rules to discover and trigger alerting, thus helping users acquire insight into the patterns and efficiency of their business processes.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.
This application claims the benefit of U.S. Provisional Application Ser. No. 60/484,203, entitled “Apparatus And Method For Personalized Data Delivery,” filed Jun. 30, 2003, the contents of which are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60484203 | Jun 2003 | US |