None
The present invention relates to computer interfaces, and more particularly to a system and methods for monitoring, storing and analyzing an operator's use of elements within a computer interface.
As the use of computers to perform a larger variety of tasks increases, the need to operate and interface with computers and different software applications also increases. As a result, both the type and style of computer networks for interconnecting computers and the types and styles of software applications to exchange of information, continues to grow. This growth occurs not only in the number of computer networks, but also in their size, as evidenced by the expanding use of local area networks (LANs), wide area networks (WANs), enterprise-wide networks (which might include several WANs) and, ultimately, world-wide networks, such as the internet.
In order to aid and enhance the computer user's understanding and interaction with these numerous types of computers and programs, various application programs have been developed which display commonly used functions of the applications. Some of these applications may provide a graphical format in which to present information to the user. In other types of applications, the user may be presented with only text information regarding their interface with the computer. Another example of computer application interface is found in Microsoft Word, that has common functions such as “File”, “Edit”, and “View”, that may be activated by selecting the appropriate button.
Therefore the task of interfacing with a computer becomes increasingly difficult and burdensome to the operator as both the complexity and variety of interfaces increases. For computer applications that involve complex processes of any appreciable size, the utility of these graphical interface programs is inversely related to the size of the networks on which they are used. This complexity is due to the fact that the monitor screen becomes increasingly crowded as more icons or functions and the like are added to the display screen interface. Furthermore, these interfaces can increase exponentially, and their illustration can result in such a “busy” appearance on the screen that the information contained therein becomes incomprehensible.
It is often the case that a computer user's level of proficiency would be enhanced if their computer interface was more user friendly. The user commonly does not need to know about or use every possible tool available in a given application. Rather, the user may only be using a small portion of the tools or features available. In such a case, most or some of the information provided by an interface is of little value to the computer user. Standard software applications provide interfaces that generally are not customizable by the computer user. It is desirable therefore, to provide a graphical user interface for a user which permits the operator to customize the displayed information in a manner which limits it to that which is particularly useful, and yet still provides the power and flexibility desired.
In addition to allowing interface customization, it would also be desirable for the user to be aware of statistics regarding what features and functions they use (and do not use) on their interface. Accumulating and analyzing this information would allow the user to intelligently customize their personal interface, and further provide insight as to their own personal working style.
An embodiment of the present invention provides a system and method for storing a variety of data relating to the use of a computer interface. The stored data may include statistics relating to the use of specific events, programs, functions, and keystokes. The database is connected to a kernel to receive and store data for a plurality of network users. Other embodiments of the present invention provide a usage analysis engine that employs algorithms for enacting the data storing processes. The exemplary algorithms contain both the features of reading and writing to the database. In one exemplary storing algorithm, the storing process is enacted when the user closes a screen on the interface.
Another embodiment of the present invention provides a computer system to enact the algorithms used in the usage analysis engine. The network computer system includes a kernel, a database log, the usage analysis engine, a processor, and a plurality of user interfaces.
In another embodiment of the present invention, the usage analysis engine algorithms and processes are contained in programming code segments that enable the present invention to be used in the computer environment as described herein.
It will be appreciated that the present invention is described below using specific examples that are not intended to limit the invention. The systems and methodology may be applied to a broad range of other computer applications. Therefore these and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following detailed description and a study of the drawing figures.
In one embodiment, the present system provides a usage analysis engine that monitors and stores data relating to the use of elements and functions within a computer interface. The usage analysis engine preferably uses a plurality of algorithms to store data and access data from a database. The stored data and statistics of computer use may then be analyzed. Various exemplary embodiments of the present system and methods are described below with reference to
This continuous process 40 allows usage data to be constantly monitored, received and stored by modifying the kernel within the usage analysis system. As described above, the data is temporarily stored in step 48 and when the screen is closed, the data is then permanently stored in the log in step 52. Once stored, the data may be examined by the user in order to intelligently personalize their computer interface and perhaps change or streamline their working habits based on their use of functions and transactions stored by the usage engine. Processes and methods of the usage analysis engine are also contained in application Ser. No. 10/999,999, attorney docket number 42841-8015.US01, filed on Aug. 15, 2004, the complete contents of which are herein incorporated by reference.
The exemplary computer system 118 includes a processor 120, which can be a conventional microprocessor such as an Intel Pentium microprocessor or Motorola Power PC microprocessor. Memory 122 is coupled to the processor 120 by a bus 132. Memory 122 can be dynamic random access memory (DRAM) and can also include static RAM (SRAM). The bus 132 couples the processor 120 to the memory 122, to the usage analysis engine 124, to display controller 128, and to the input/output (I/O) controller 126. The processor 120 and the usage analysis engine 124 work together to enable and enact the methods of the present invention. The algorithms and processes of the usage engine would be contained in computer programmed code segments as is conventional.
The display controller 128 controls the display device 136 from instructions received from the processor 120 and the memory 122 to provide the user interfaces and store the usage data. The input/output devices 134 can include a keyboard, disk drives, printers, a scanner, and other input and output devices, including a mouse or other pointing device. The display controller 128 and the I/O controller 126 can be implemented with conventional well-known technology to provide the customized user interface.
The non-volatile storage of data into memory 122 is often a magnetic hard disk, an optical disk, or another form of storage for large amounts of data. Some of this usage data is often written, by a direct memory access process, into memory 122 during execution of software in the computer system 118. One of skill in the art will immediately recognize that the terms “machine-readable medium” or “computer-readable medium” includes any type of storage device that is accessible by the processor 120 and also encompasses a carrier wave that encodes a data signal.
The exemplary computer system 118 is one example of many possible computer systems that have different architectures. For example, personal computers based on an Intel microprocessor often have multiple buses, one of which can be an input/output (I/O) bus for the peripherals and one that directly connects the processor 120 and the memory 122 (often referred to as a memory bus). The buses are connected together through bridge components that perform any necessary translation due to differing bus protocols.
Network computers do not usually include a hard disk or other mass storage, and the executable programs are loaded from a network connection into the memory 122 for execution by the processor 120. A Web TV system, which is known in the art, is also considered to be a computer system according to this embodiment, but it may lack some of the features shown in
In addition to the algorithms of the present invention, the exemplary computer system 118 is controlled by operating system software that includes a file management system, such as a disk operating system, which is part of the operating system software. One example of an operating system software with its associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Wash., and their associated file management systems. Another example of an operating system software with its associated file management system software is the LINUX operating system and its associated file management system. The file management system is typically stored in the memory 122 and causes the processor 120 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing files on the memory 122.
Some portions of the detailed description relating to the usage analysis engine 124 have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Some embodiments also relate to the apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored (embodied) in a computer (machine) readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein relating to the usage analysis engine are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. In addition, the present invention is not described with reference to any particular programming language, and various embodiments may thus be implemented using a variety of programming languages.
One skilled in the art will appreciate that although specific embodiments of the usage analysis and data storage system have been described for purposes of illustration, various modifications can be made without deviating from the spirit and scope of the present invention. For example, embodiments of the present invention may be applied to many different types of databases, systems and application programs. Accordingly, the invention is described by the appended claims.