Abstract: NA
Title: END USER DATA ACTIVATION
TECHNICAL FIELD
[0001 ] The disclosed invention generally relates to systems and methods for
automating data processing and specifically to systems and methods for automatically performing user-defined data processing tasks.
BACKGROUND
[0002] Modem computing systems are exceedingly complex. A typical computer
can have hundreds of software processes active at any one time in various states of execution. These processes can be initiated by an operating system, can be monitor or service processes that are initialized at start time or upon launching a user application, or can be a user application itself. Many, if not most of these processes or features of these processes, are beyond the ability of a user to control directly. Therefore, if functionality offered by these processes is to be accessed at all, such access usually must be accomplished by another software process.
[0003] The number of processes running on a computing system is generally a
function of the amount of data the system must process and the number of tasks the system is called upon to perform. The least efficient parts of these computing duties are the ones that require human interaction. Therefore, there is a need for systems and methods that can assist in reducing the need for human interaction during processing tasks.
[0004] Generally, in order to fully exploit functionality provided by computing
processes, a user must be a skilled computer programmer. Many available functions go unused by users who are merely proficient at using a computer as opposed to programming. Many of those same users would greatly benefit from an ability to access underlying functions of computing components. Therefore, there is a need for systems and methods that end users can access to create automated tasks easily.
SUMMARY
[0005] The following presents a simplified summary of the invention in order to
provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key/critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.
|0006] In accordance with one aspect of the invention, a rules platform provides a
basis for end users of a computing system to create components that perform tasks
identified by the end users themselves. The end users can, by using the rules platform,
define data processing tasks to be automatically performed upon the occurrence of a
chosen event or manually performed upon a command from the end user. Performance
of such tasks may be performed by one or more components of the computing system.
[0007] In accordance with another aspect of the invention, an end user defined
component provides custom functionality to already-existing components such as user applications. This functionality can be created by accessing the rules platform and associating tasks with various controls such as elements of a graphical (or other) user interface.
[0008] To the accomplishment of the foregoing and related ends, certain
illustrative aspects of the invention are described herein in connection with the following description and the annexed drawings. These aspects are indicative of various ways in which the invention may be practiced, all of which are intended to be covered by the present invention. Other advantages and novel features of the invention may become apparent from the following detailed description of the invention when considered in conjunction with the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a system block diagram of an end-user programming system in
accordance with one aspect of the disclosed invention.
[0010] FIG. 2 is a system block diagram of an end-user processing system in
accordance with another aspect of the invention.
[0011 ] FIG. 3 is a flow diagram of a process in accordance with a further aspect
of the invention.
|0012| FIG. 4 illustrates an exemplary networking environment, wherein the
novel aspects of the subject invention can be employed.
|0013J FIG. 5 illustrates an exemplary operating environment, wherein the novel
aspects of the subject invention can be employed.
DETAILED DESCRIPTION OF THE INVENTION
[0014] The subject invention relates to systems and methods to facilitate searches
of data. As used in this application, terms "component," "system," and the like are intended to refer to a computer-related entity, either hardware, software (e.g., in execution), and/or firmware. For example, a component can be a process running on a processor, a processor, an object, an executable, a program, and/or a computer. Also, both an application running on a server and the server can be components. One or more components can reside within a process and a component can be localized on one computer and/or distributed between two or more computers.
[0015] The subject invention is described with reference to the drawings, wherein
like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject invention. It may be evident, however, that the subject invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the subject invention. Additionally, although specific examples set forth may use terminology that is consistent with client/server architectures or may even be examples of client/server implementations, skilled artisans will appreciate that the roles of client and server may be reversed, that the subject invention is not limited to client/server architectures and may be readily adapted for use in other architectures, specifically including peer-to-peer (P2P) architectures, without departing from the spirit or scope of the invention.
[0016] It should also be appreciated that although specific examples presented
may describe or depict systems or method that are based upon searches of web pages on
the Internet, the invention is not limited to that domain. For example, the invention may
also be employed on an intranet or a private network. Additionally or alternatively, the
invention can be used entirely on a single machine as part of a desktop search system.
Those of ordinary skill in the art will readily recognize that the disclosed invention can be
used to search for other types of information besides web pages, such as database queries,
photograph information, and audio or video information, among others.
|0017] FIG. 1 is a system block diagram of an end-user programming system 100
in accordance with one aspect of the disclosed invention. The system 100 includes an operating platform 110 that provides a processing environment for the system 100. In this context, the operating platform 110 can include both hardware and software components. An event 120 is created by the operating platform 110 and can serve as an indicator that a processing task can be performed.
[0018] An end-user programming ("EUP") module 130 provides a component
that can be operated by an end-user to define an action, such as a user-defined action 140, to be taken upon the occurrence of an event. It should be noted that the user-defined action 140 can be a single task or can be a group of tasks to be performed. The EUP module 130 provides an interface to system functions that can be operated manually or previously could only be accessed by other software components such as, but not limited to, an operating system or a service component.
[0019] A rules platform 150 provides the ability for an end user to define
programs or agents that can be run using elements of a user interface such as clicking (or right-clicking, etc.) on buttons, links, menus, or other interface elements. Additionally or alternatively, icons for user-defined stand-alone applications can be created and run by double-clicking the icon or otherwise activating the executable code associated with the icon.
[0020] In operation, a user accesses the EUP module 130 to identify an event,
such as the event 120, that can be used to trigger a user-defined action. The user also defines an action or group of actions that the user wants the system to execute automatically upon the occurrence of the identified event. The event is then bound to the user-defined action. Upon occurrence of the event, the operating platform performs the user-defined action.
[0021] For example, a user can identify reception of an email message from a
particular person as a triggering event. The user can then create an action so that upon receipt of such an email message, the message is transferred to a defined mailbox folder, a reply verifying receipt of the message is sent to the sender, .1 document is retrieved from a file server and opened in an appropriate program, and an audible alert sounds to notify the user that the document is ready on the computer. All these steps can be automatically performed without user intervention.
(0022] The rules platform 150 contains logic that allows users to define one or
more actions that can be taken automatically or upon a command from an end user. Such actions can be added to preexisting components that have developer-designed actions or functions or can be created as stand-alone, end-user created components. The rules platform uses reflection against bindings to create and execute end-user defined components.
(0023] FIG 2 is a system block diagram of an end-user processing system 200 in
accordance with another aspect of the invention. The system 200 includes an end-user
programming module 210 that provides access to the system for a human user. The end-
user programming module 210 is coupled to an operating platform 220 that can include
both hardware and software components. The end-user programming module 210 also
accesses a set of end-user defined tasks 230 and a rules platform 240. The end-user
defined tasks 230 include bindings of tasks to logic of an action.
(0024] A user interface 250 provides a front-end interface between the system
200 and a human end-user and includes control elements for components. Additional information regarding a rules algebra and associated application programming interface is provided in Appendix A. Additional information regarding storage expression integration design and functions is provided in Appendices B and C, respectively. Further information regarding an application programming interface for storage expressions is provided in Appendix D. Information regarding storage expressions is included at Appendix E. Additional details regarding End User Programming concepts are provided in Appendix F.
(0025] FIG. 3 is a flow diagram of a process 300 in accordance with a further
aspect of the invention. Processing begins at START block 3 10 and continues to process
block 320 where the EUP interface is accessed by a user. The user defines a set of actions to be taken at process block 330. At process block 340, one or more components that provide desired functionality are identified. The set of actions is bound to the component(s) at process block 350. The rule base is updated with the new binding at process block 360. Processing concludes at END block 370.
(0026] In order to provide additional context for implementing various aspects of
the subject invention, FIGS. 4 - 5 and the following discussion is intended to provide a brief, general description of a suitable computing environment within which various aspects of the subject invention may be implemented. While the invention has been described above in the general context of computer-executable instructions of a computer program that runs on a local computer and/or remote computer, those skilled in the art will recognize that the invention also may be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks and/or implement particular abstract data types.
[0027] Moreover, those skilled in the art will appreciate that the inventive
methods may be practiced with other computer system configurations, including single-
processor or multi-processor computer systems, minicomputers, mainframe computers, as
well as personal computers, hand-held computing devices, microprocessor-based and/or
programmable consumer electronics, and the like, each of which may operatively
communicate with one or more associated devices. The illustrated aspects of the
invention may also be practiced in distributed computing environments where certain
tasks are performed by remote processing devices that are linked through a
communications network. However, some, if not all, aspects of the invention may be
practiced on stand-alone computers. In a distributed computing environment, program
modules may be located in local and/or remote memory storage devices.
[0028] FIG. 4 is a schematic block diagram of a sample-computing environment
400 with which the subject invention can interact. The system 400 includes one or more client(s) 410. The client(s) 410 can be hardware ami/or software (e.g., threads, processes, computing devices). The system 400 also includes one or more server(s) 420. The server(s) 420 can be hardware and/or software (e.g., threads, processes, computing
devices). The servers 420 can house threads or processes to perform transformations by employing the subject invention, for example.
(0029) One possible means of communication between a client 410 and a server
420 can be in the form of a data packet adapted to be transmitted between two or more computer processes. The system 400 includes a communication framework 440 that can be employed to facilitate communications between the client(s) 410 and the server(s) 420. The client(s) 410 are operably connected to one or more client data store(s) 450 that can be employed to store information local to the client(s) 410. Similarly, the server(s) 420 are operably connected to one or more server data storc(s) 430 that can be employed to store information local to the servers 440.
[0030] With reference to FIG. 5, an exemplary environment 500 for
implementing various aspects of the invention includes a computer 512. The computer 512 includes a processing unit 514, a system memory 516, and a system bus 518. The system bus 518 couples system components including, but not limited to, the system memory 516 to the processing unit 514. The processing unit 514 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 514.
[0031J The system bus 518 can be any of several types of bus structure(s)
including the memory bus or memory controller, a peripheral bus or external bus, and/or
a local bus using any variety of available bus architectures including, but not limited to,
Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended
ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral
Component Interconnect (PCI), Card Bus, Universal Seriai Bus (USB), Advanced
Graphics Port (AGP), Personal Computer Memory Card International Association bus
(PCMCIA), Firewire (IEEE 1394), and Small Computer Systems Interface (SCSI).
[0032] The system memory 516 includes volatile memory 520 and nonvolatile
memory 522. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 512, such as during start-up, is stored in nonvolatile memory 522. By way of illustration, and not limitation, nonvolatile memory 522 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM
(EEPROM), or flash memory. Volatile memory 520 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDR AM), and direct Rambus RAM (DRRAM).
[0033J Computer 512 also includes removahle/non-removable, volatile/non-
volatile computer storage media. For example, FIG. 5 illustrates a disk storage 524. The
disk storage 524 includes, but is not limited to, devices like a magnetic disk drive, floppy
disk drive, tape drive, Jaz drive, Zip drive, LS-100 drive, Hash memory card, or memory
stick. In addition, disk storage 524 can include storage media separately or in
combination with other storage media including, but not limited to, an optical disk drive
such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD
rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). To
facilitate connection of the disk storage devices 524 to the system bus 518, a removable
or non-removable interface is typically used such as interface 526.
[0034] It is to be appreciated that FIG. 5 describes software that acts as an
intermediary between users and the basic computer resources described in the suitable operating environment 500. Such software includes an operating system 528. The operating system 528, which can be stored on the disk storage 524, acts to control and allocate resources of the computer system 512. System applications 530 take advantage of the management of resources by operating system 528 through program modules 532 and program data 534 stored either in system memory 516 or on disk storage 524. It is to be appreciated that the subject invention can be implemented with various operating systems or combinations of operating systems.
(0035] A user enters commands or information into the computer 512 through
input device(s) 536. The input devices 536 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 514 through the system bus 518 via interface port(s) 538. Interface port(s) 538 include,
for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 540 use some of the same type of ports as input device(s) 536. Thus, for example, a USB port may be used to provide input to computer 512, and to output information from computer 512 to an output device 540. Output adapter 542 is provided to illustrate that there are some output devices 540 like monitors, speakers, and printers, among other output devices 540, which require special adapters. The output adapters 542 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 540 and the system bus 518. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 544.
[0036] Computer 512 can operate in a networked environment using logical
connections to one or more remote computers, such as remote computers) 544. The
remote computer(s) 544 can be a personal computer, a server, a router, a network PC, a
workstation, a microprocessor based appliance, a peer device or other common network
node and the like, and typically includes many or all of the elements described relative to
computer 512. For purposes of brevity, only a memory storage device 546 is illustrated
with remote computers) 544. Remote computer(s) 544 is logically connected to
computer 512 through a network interface 548 and then physically connected via
communication connection 550. Network interface 548 encompasses wire and/or
wireless communication networks such as local-area networks (LAN) and wide-area
networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI),
Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN
technologies include, but are not limited to, point-to-point links, circuit switching
networks like Integrated Services Digital Networks (ISDN) and variations thereon,
packet switching networks, and Digital Subscriber Lines (DSL).
|0037) Communication connection(s) 550 refers to the hardware/software
employed to connect the network interface 548 to the bus 518. While communication connection 550 is shown for illustrative clarity inside computer 512, it can also be external to computer 512. The hardware/software necessary for connection to the network interface 548 includes, for exemplary purposes only, internal and external
technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
[0038] What has been described above includes examples of the subject
invention. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the subject invention, but one of ordinary skill in the art may recognize that many further combinations and permutations of the subject invention are possible. Accordingly, the subject invention is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.
[0039] In particular and in regard to the various functions performed by the above
described components, devices, circuits, systems and the like, the terms (including a reference to a "means") used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the invention. In this regard, it will also be recognized that the invention includes a system as well as a computer-read able medium having computer-executable instructions for performing the acts and/or events of the various methods of the invention.
[0040] In addition, while a particular feature of the invention may have been
disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the olher implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms "includes," and "including" and variants ihereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term "comprising."
CLAIMS What is claimed is:
1. A system for creating data processing tasks, comprising:
an end-user programming module that maps an end-user defined action to a computing component; and
a rules platform that provides a binding of the action with the component.
2. The system of claim 1, wherein the component is an operating system.
3. The system of claim 1, wherein the component is a monitor application.
4. The system of claim 1, wherein the component is a user application.
5. A computer-readable medium comprising nmchine-interpretable data structures,
the machine-interpretable data structures including the components of claim 1.
6. A data signal comprising machine-interpretable data, the machine-interpretable
data including data structures that include the components of claim 1.
7. A method for creating data processing components, comprising:
specifying an end-user defined action to be taken upon command event;
identifying a first software component that is capable of performing the end-user defined action; and
creating a second software component that uses the first software component to perform the end-user specified action.
8. The method of claim 7, further comprising:
creating a graphical control within a preexisting software component, wherein the graphical control activates the second software component.
9. The method of claim 7, further comprising:
creating an icon for a graphical user interface, wherein the icon activates the second software component.
10. A computer-readable medium, comprising machi ne-interpretable instructions
capable of causing a computing device to perform the acts recited in claim 7.
11. A computer-readable medium, comprising machine-interpretable instructions
capable of causing a computing device to perform tlie acts recited in claim 8.
12. A computer-readable medium, comprising machine-interpretable instructions
capable of causing a computing device to perform the acts recited in claim 9.
13. A data signal comprising machine-interpretable data capable of causing a
computing device to perform the acts recited in claim 7.
14. A data signal comprising machine-interpretable data capable of causing a
computing device to perform the acts recited in claim S.
15. A data signal comprising machine-interpretable data capable of causing a
computing device to perform the acts recited in claim 9.
16. A system for creating data processing components, comprising:
means for specifying an end-user defined action to be taken upon command event;
means for identifying a first software component that is capable of performing the end-user defined action; and
means for creating a second software component that uses the first software component to perform the end-user specified action.
17. The system of claim 16, further comprising:
means for creating a graphical control within a preexisting software component, wherein the graphical control activates the second software component.
18. The method of claim 16, further comprising:
means for creating an icon for a graphical user interface, wherein the icon activates the second software component.
| # | Name | Date |
|---|---|---|
| 1 | 183-del-2006-Form-18-(03-02-2009).pdf | 2009-02-03 |
| 1 | 183-DEL-2006_EXAMREPORT.pdf | 2016-06-30 |
| 2 | 183-del-2006-Correspondence-others-(03-02-2009).pdf | 2009-02-03 |
| 2 | FORM-6-501-600(PRS).54.pdf | 2015-03-13 |
| 3 | MS to MTL Assignment.pdf | 2015-03-13 |
| 3 | 183-del-2006-Form-13-(17-06-2010).pdf | 2010-06-17 |
| 4 | MTL-GPOA - PRS.pdf | 2015-03-13 |
| 4 | 183-del-2006-GPA-(18-06-2010).pdf | 2010-06-18 |
| 5 | 183-DEL-2006-Correspondence-others-(19-02-2015).pdf | 2015-02-19 |
| 5 | 183-del-2006-Correspondence-others-(18-06-2010).pdf | 2010-06-18 |
| 6 | 183-DEL-2006-Form-1-(24-12-2010).pdf | 2010-12-24 |
| 6 | 183-del-2006-claims.pdf | 2011-08-21 |
| 7 | 183-del-2006-correspondence-others.pdf | 2011-08-21 |
| 7 | 183-DEL-2006-Correspondence-Others-(24-12-2010).pdf | 2010-12-24 |
| 8 | 183-del-2006-gpa.pdf | 2011-08-21 |
| 8 | 183-del-2006-description (complete).pdf | 2011-08-21 |
| 9 | 183-del-2006-drawings.pdf | 2011-08-21 |
| 9 | 183-del-2006-form-5.pdf | 2011-08-21 |
| 10 | 183-del-2006-form-1.pdf | 2011-08-21 |
| 10 | 183-del-2006-form-3.pdf | 2011-08-21 |
| 11 | 183-del-2006-form-2.pdf | 2011-08-21 |
| 12 | 183-del-2006-form-1.pdf | 2011-08-21 |
| 12 | 183-del-2006-form-3.pdf | 2011-08-21 |
| 13 | 183-del-2006-drawings.pdf | 2011-08-21 |
| 13 | 183-del-2006-form-5.pdf | 2011-08-21 |
| 14 | 183-del-2006-description (complete).pdf | 2011-08-21 |
| 14 | 183-del-2006-gpa.pdf | 2011-08-21 |
| 15 | 183-DEL-2006-Correspondence-Others-(24-12-2010).pdf | 2010-12-24 |
| 15 | 183-del-2006-correspondence-others.pdf | 2011-08-21 |
| 16 | 183-del-2006-claims.pdf | 2011-08-21 |
| 16 | 183-DEL-2006-Form-1-(24-12-2010).pdf | 2010-12-24 |
| 17 | 183-del-2006-Correspondence-others-(18-06-2010).pdf | 2010-06-18 |
| 17 | 183-DEL-2006-Correspondence-others-(19-02-2015).pdf | 2015-02-19 |
| 18 | 183-del-2006-GPA-(18-06-2010).pdf | 2010-06-18 |
| 18 | MTL-GPOA - PRS.pdf | 2015-03-13 |
| 19 | MS to MTL Assignment.pdf | 2015-03-13 |
| 19 | 183-del-2006-Form-13-(17-06-2010).pdf | 2010-06-17 |
| 20 | FORM-6-501-600(PRS).54.pdf | 2015-03-13 |
| 20 | 183-del-2006-Correspondence-others-(03-02-2009).pdf | 2009-02-03 |
| 21 | 183-DEL-2006_EXAMREPORT.pdf | 2016-06-30 |
| 21 | 183-del-2006-Form-18-(03-02-2009).pdf | 2009-02-03 |