The use and reach of software continues to increase as new software uses and purposes are addressed. As more aspects of personal and professional lives are addressed by software, interactions between various software packages may become more important. Furthermore, users or other entities may wish to associate events in one software package or environment other actions or events. Thus, users or other entities may wish to tailor software packages to work with and/or react to information from other software packages and/or changes in objects or program data of other software packages, for example.
Changes to programs and program objects may be difficult to recognize and/or communicate to another software package, and/or may require alteration of code associated with the program and/or program objects. As complex software packages interact to provide functionality associated with various aspects of users' business and personal needs, the inability to communicate between two or more software packages may limit various interactions between the software, and/or may negatively impact the overall usefulness of a user or entities software library.
It is with respect to these and other considerations that the disclosure made herein is presented.
Concepts and technologies are described herein for providing metadata-based eventing supporting operations on data. In accordance with the concepts and technologies disclosed herein, information describing application data artifacts such as classes and events is stored in a table and is thus described by and/or associated with application metadata. The application metadata can include information specifying one or more event handlers associated with the application data. The event handlers can reference one or more methods on a class, and can be invoked via various delegates linked to one or more consumers. According to various embodiments, when a create, update, or delete (“CUD”) operation on the application data is received, the application metadata is queried to identify event handlers associated with the application data.
The event handlers can be tailored by a user or other entity to perform particular functionality when the event handlers are invoked. Thus, for example, when a record in a table corresponding to the application data is created, updated, or deleted, an event handler associated with the table can be invoked. The event handlers can cause various devices to call one or more methods. Thus, various actions can be taken when the application data is modified via invoking the event handlers associated with the application data.
According to one aspect, a server computer executes a server application for providing functionality associated with the server computer. The server application generates and stores application data and/or application metadata. A client communicates with the server computer to access the functionality associated with the server application. As operations are submitted to the server computer, the application data may be modified via one or more CUD operations on the application data. The server application also can be used to tailor and store one or more event handlers in the application metadata. In some embodiments, a user interface (“UI”) for creating event handlers is presented by the server application.
The server application can be configured to detect changes made to the application data. For example, the server application can be configured to detect a create, update, or delete operation executed on the application data to modify one or more records of the application data. If changes are made to the application data, the server application can query the application metadata to determine if any event handlers linked to the application data exist in the application metadata. The event handlers can be tailored by users or other entities to allow software or other entities to subscribe for published changes made to the application data. Event handlers linked to the application data can be invoked in a particular order, if appropriate. When invoked, the event handlers can execute one or more methods referenced by the event handlers.
It should be appreciated that the above-described subject matter may be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable storage medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The following detailed description is directed to concepts and technologies for providing metadata-based eventing supporting operations on data. According to the concepts and technologies described herein, application artifacts such as classes and events can be stored in a table and can be associated with and/or described by application metadata. The application metadata also can specify one or more event handlers that reference one or more methods on a class. The event handlers can be invoked via various delegates linked to the one or more application metadata tables. The event handlers can be invoked when create, update, or delete operations on the application data are executed. The event handlers can prompt execution of one or more methods, and can be invoked sequentially. As such, methods executed via invoking the event handlers can be executed in a particular order.
While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements throughout the several figures, aspects of a computing system, computer-readable storage medium, and computer-implemented methodology for providing metadata-based eventing supporting operations on data will be presented.
Referring now to
The server application 106 is configured to generate, conduct operations on, cache, and/or store application data 108 at the server computer 102 and/or at a data storage location in communication with the server computer 102. The application data 108 can be generated by one or more users or other entities communicating with the server computer 102 via one or more interfaces, and/or via other processes. The application data 108 can be stored, for example, in a table. The server application 106 also is configured to generate, conduct operations on, cache, and/or store application metadata 110. According to various embodiments, the application data 108 includes data used by the server application 106 to provide functionality associated with the server computer 102. In the case of a customer relationship management (“CRM”) application, for example, the application data 108 can include tables of customer data that include customer names and associated contact information as well as other data. It should be understood that this embodiment is illustrative, and should not be construed as being limiting in any way.
The application metadata 110 includes information describing various aspects of the application data 108. Additionally, in various implementations the server application 106 corresponds to software associated with a model-based environment. The models, included in the application data 108 illustrated in
In some embodiments, the application data 108 is published according to a publish and subscribe model, wherein software can subscribe to receive notifications that changes have occurred in the application data 108. According to various implementations, when changes are made to the application data 108, the server application 106 can be configured to query the application metadata 110 to determine if any event handlers associated with the application data 108 exist in the application metadata 110. As will be explained in more detail herein, if any event handlers exist in the application metadata 110, the event handlers can be invoked.
According to various implementations, the server application 106 is configured to store the application data 108 and/or the application metadata 110 in an application data repository 112. As illustrated in
The functionality of the application data repository 112 can be provided by one or more databases, memory devices, mass storage devices, server computers, desktop computers, mobile telephones, laptop computers, other computing systems, and the like. In the illustrated embodiments, the functionality of the application data repository 112 is provided by a database communicatively linked to the server computer 102. It should be understood that this embodiment is illustrative, and should not be construed as being limiting in any way.
According to various embodiments, the operating environment 100 includes a client 114 configured to communicate with the server computer 102. The functionality of the client 114 can be provided by a personal computer (“PC”) such as a desktop, tablet, or laptop computer system. The functionality of the client 114 also can be provided by other types of computing systems including, but not limited to, server computers, handheld computers, netbook computers, embedded computer systems, personal digital assistants, mobile telephones, smart phones, or other computing devices. The client 114 is configured to execute an operating system 116 (“OS”) and one or more application programs 118.
The OS 116 is a computer program for controlling the operation of the client 114 and the application programs are executable programs configured to execute on top of the OS 116 to provide various functionality. In some embodiments, the client 114 interfaces with the server computer 102 via one or more application programming interfaces (“APIs”). For example, the client 114 can interface with the server computer 102 via a web-based API accessed via a traditional web browser or other web-enabled application program 118. It should be understood that this embodiment is illustrative, and should not be construed as being limiting in any way.
The client 114 is configured to interact with the server application 106. For example, the client 114 can be configured to generate and submit one or more operations 120 to the server application 106. The operations 120 can be submitted to the server computer 102 and interpreted by the server application 106 to support various interactions between the client 114 and the server application 106. In various embodiments, the operations 120 can include data corresponding to one or more queries of the application data 108, create, update, or delete operations on the application data 108, and the like. The operations 120 can be generated by the client 114 and/or by the server application 106 via interactions with the client 114. In some implementations, the operations 120 are generated by the server application 106 in response to interactions with the client 114 via UIs, exposed APIs, and/or other means. In some embodiments, a user or other entity interacts with the one or more UIs to generate the operations 120.
As explained above, the application metadata 110 can describe event handlers associated with the operations performed on application data 108. In some embodiments, for example, operations 120 on the application data 108 are associated with and/or tied to event handlers described by the application metadata 110. The server application 106 can be configured to query the application metadata 110 in response to operations 120 on the application data 108 to identify and invoke the event handlers associated with the operations 120 on the application data 108. Thus, changes to the application data 108 may, via querying of the application metadata 110 and the identification and invoking of event handlers described thereby, trigger various events defined by the event handers, which are described by the application metadata 110.
Turning now to
According to various embodiments, the table 202 includes references to one or more delegates 204. The delegates 204 can be uniquely identified by a name, illustrated in
When an operation 120 is received by the server application 106, the server application 106 can create, update, or delete one or more records associated with the application data 108. According to implementations, the server application 106 performs a CUD operation on the table 202 to reflect changes associated with the operation 120. One or more event handlers are tied to the table 202 such that changes to the table 202, which includes one or more references to the delegates 204, can trigger one or more methods 208. The methods 208 can be invoked via one or more event handlers 210, which may be referenced by the delegates 204. Thus, it should be appreciated that CUD operations on the application data 108 can be tied to any number of event handlers. Thus, for example, actions can be taken and one or more subscribers can be notified if one or more records of the application data 108 is created, updated, or deleted. Although not described in detail with reference to
Although not explicitly shown in
Turning now to
It also should be understood that the illustrated methods can be ended at any time and need not be performed in their respective entireties. Some or all operations of the methods disclosed herein, and/or substantially equivalent operations, can be performed by execution of computer-readable instructions included on a computer-storage media, as defined above. The term “computer-readable instructions,” and variants thereof, as used in the description and claims, is used expansively herein to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. Computer-readable instructions can be implemented on various system configurations, including single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like.
Thus, it should be appreciated that the logical operations described herein are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as states, operations, structural devices, acts, or modules. These operations, structural devices, acts, and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof.
For purposes of illustrating and describing the concepts of the present disclosure, the methods disclosed herein are described as being performed by the server computer 102 via execution of the server application 106. It should be understood that these embodiments are exemplary, and should not be viewed as being limiting in any way. Additional and/or alternative devices can provide the functionality described herein via execution of additional and/or alternative applications. The method 300 begins at operation 302, wherein the server computer 102 creates an event handler. As explained above, it should be understood that a created event handler can be described by the application metadata 110.
According to some embodiments, the server application 106 is executable by the server computer 102 to present one or more UIs via which users or other entities create the event handlers via submission of one or more operations 120. More particularly, in some embodiments, a user or other entity enters data for creating the event handlers via the UI, the data for creating the event handlers is received by the server computer 102 as the operations 120, and the server computer 102 can store and create or update the application metadata 110 to reflect the event handlers. In some embodiments, the application metadata 110 describing the event handlers is cached in a data storage device such as a memory or cache until the user disconnects from the server computer 102 or otherwise commits the changes to the application metadata 110. It should be understood that a user or other entity can interact with the server computer 102 to create or configure event handlers at any time.
From operation 302, the method 300 proceeds to operation 304, wherein the server computer 102 associates the event handler to an event. Thus, as will be explained in more detail herein, occurrence of the event associated with or linked to the event handler can cause calling and/or execution of the event handler. As is explained in more detail herein with reference to
From operation 304, the method 300 proceeds to operation 306, wherein the server computer 102 determines if another event handler is to be created. For example, as explained above, a user may create one or more event handlers via interactions with the server computer 102 via one or more UIs. Thus, the user or other entity may create one or more event handlers at any particular time. If the server computer 102 determines in operation 306 that an additional event handler is to be created, the method 300 returns to operation 302 for creation of another event handler. It will be appreciated that if the event handlers are created via one or more UIs, that a determination that another event handler is to be created can include a determination that the one or more UIs have not been closed and/or that a user or other entity continues to interact with the one or more UIs. It should be understood that this embodiment is exemplary, and should not be construed as being limiting in any way.
The steps 302-306 can be iterated until the server computer 102 determines, in any iteration of operation 306, that additional event handlers are not to be created. If the server computer 102 determines in operation 306 that additional event handlers are not be created, the method 300 proceeds to operation 308. The method 300 ends at operation 308.
Turning now to
From operation 402, the method 400 proceeds to operation 404, wherein the server computer 102 queries the application metadata 110 to identify event handlers associated with the operation 120 on the application data 108 received in operation 402. More particularly, the server computer 102 queries the application metadata 110 to determine if any event handlers associated with the operation 120 received by the server computer 102 are described by the application metadata 110. In the above exemplary embodiment, the server computer 102 queries the application metadata 110 to determine if the application metadata 110 describes any event handlers tied to creation of a customer in a customer table. It should be understood that this embodiment of customer creation is illustrative, and should not be construed as being limiting in any way.
From operation 404, the method 400 proceeds to operation 406, wherein the server computer 102 determines if the application metadata 110 describes any event handlers corresponding to the create, update, or delete operation 120 received in operation 402, a determination that can be based upon the query of the application metadata 110 as described above with regard to operation 404. If the application server 102 determines in operation 406 that event handlers corresponding to the create, update, or delete operation 120 received in operation 402 are described by the application metadata 110, the method 400 proceeds to operation 408, wherein the server computer 102 identifies the one or more event handlers corresponding to the create, update, or delete operation 120. Although not illustrated in
Continuing the above example of creating a customer, the application metadata 110 corresponding to one or more customer tables can be linked to one or more event handlers for taking actions when customers are created. For example, if a new customer is created, an event handler may be invoked for updating a customer contact information database or spreadsheet, updating email lists for advertising or marketing information, generating messages or content for welcoming the new customer, other purposes, and the like. According to various embodiments, one or more orders in which the one or more event handlers corresponding to these and/or other actions are invoked can be specified or determined. In the above example, an event handler for invoking a mail program to send a welcome message to the customer may be invoked after an event handler for creating a customer account and associated customer number is invoked. Thus, the welcome message can include the created customer number. It should be understood that this embodiment is illustrative, and should not be construed as being limiting in any way.
From operation 408, the method 400 proceeds to operation 410, wherein the server computer 102 invokes the event handlers. More particularly, the server computer 102 can invoke the event handlers in one or more orders determined in operation 410, if desired. It should be understood that actions by one or more systems, devices, and/or other entities may be prompted via invoking the event handlers. From operation 410, or if the server computer 102 determines in operation 406 that event handlers corresponding to the create, update, or delete operation 120 received in operation 404 are not described by the application metadata 110, the method 400 proceeds to operation 412. The method 400 ends at operation 412.
The computer architecture 500 illustrated in
The mass storage device 512 is connected to the CPU 502 through a mass storage controller (not shown) connected to the bus 510. The mass storage device 512 and its associated computer-readable media provide non-volatile storage for the computer architecture 500. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available computer storage media or communication media that can be accessed by the computer architecture 500.
Communication media includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics changed or set in a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
By way of example, and not limitation, computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer architecture 500. For purposes the claims, the phrase “computer storage medium” and variations thereof, does not include waves, signals, and/or other transitory and/or intangible communication media, per se.
According to various embodiments, the computer architecture 500 may operate in a networked environment using logical connections to remote computers through a network such as the network 104. The computer architecture 500 may connect to the network 104 through a network interface unit 516 connected to the bus 510. It should be appreciated that the network interface unit 516 also may be utilized to connect to other types of networks and remote computer systems, for example, the application data repository 112, the client 114, and/or other devices, systems, and/or networks. The computer architecture 500 also may include an input/output controller 518 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in
It should be appreciated that the software components described herein may, when loaded into the CPU 502 and executed, transform the CPU 502 and the overall computer architecture 500 from a general-purpose computing system into a special-purpose computing system customized to facilitate the functionality presented herein. The CPU 502 may be constructed from any number of transistors or other discrete circuit elements, which may individually or collectively assume any number of states. More specifically, the CPU 502 may operate as a finite-state machine, in response to executable instructions contained within the software modules disclosed herein. These computer-executable instructions may transform the CPU 502 by specifying how the CPU 502 transitions between states, thereby transforming the transistors or other discrete hardware elements constituting the CPU 502.
Encoding the software modules presented herein also may transform the physical structure of the computer-readable media presented herein. The specific transformation of physical structure may depend on various factors, in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the computer-readable media, whether the computer-readable media is characterized as primary or secondary storage, and the like. For example, if the computer-readable media is implemented as semiconductor-based memory, the software disclosed herein may be encoded on the computer-readable media by transforming the physical state of the semiconductor memory. For example, the software may transform the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory. The software also may transform the physical state of such components in order to store data thereupon.
As another example, the computer-readable media disclosed herein may be implemented using magnetic or optical technology. In such implementations, the software presented herein may transform the physical state of magnetic or optical media, when the software is encoded therein. These transformations may include altering the magnetic characteristics of particular locations within given magnetic media. These transformations also may include altering the physical features or characteristics of particular locations within given optical media, to change the optical characteristics of those locations. Other transformations of physical media are possible without departing from the scope and spirit of the present description, with the foregoing examples provided only to facilitate this discussion.
In light of the above, it should be appreciated that many types of physical transformations take place in the computer architecture 500 in order to store and execute the software components presented herein. It also should be appreciated that the computer architecture 500 may include other types of computing devices, including hand-held computers, embedded computer systems, personal digital assistants, and other types of computing devices known to those skilled in the art. It is also contemplated that the computer architecture 500 may not include all of the components shown in
Based on the foregoing, it should be appreciated that technologies for providing metadata-based eventing supporting operations on data have been disclosed herein. Although the subject matter presented herein has been described in language specific to computer structural features, methodological and transformative acts, specific computing machinery, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5257577 | Clark | Nov 1993 | A |
5594660 | Sung et al. | Jan 1997 | A |
5606609 | Houser et al. | Feb 1997 | A |
5790789 | Suarez | Aug 1998 | A |
5845289 | Baumeister et al. | Dec 1998 | A |
5848404 | Hafner et al. | Dec 1998 | A |
5893092 | Driscoll | Apr 1999 | A |
5933645 | Wallack | Aug 1999 | A |
5933851 | Kojima et al. | Aug 1999 | A |
5960383 | Fleischer | Sep 1999 | A |
6012053 | Pant et al. | Jan 2000 | A |
6014138 | Cain et al. | Jan 2000 | A |
6032196 | Monier | Feb 2000 | A |
6070191 | Narendran et al. | May 2000 | A |
6078743 | Apte et al. | Jun 2000 | A |
6098064 | Pirolli et al. | Aug 2000 | A |
6108661 | Caron et al. | Aug 2000 | A |
6125361 | Chakrabarti et al. | Sep 2000 | A |
6128701 | Malcolm et al. | Oct 2000 | A |
6145003 | Sanu et al. | Nov 2000 | A |
6158044 | Tibbetts | Dec 2000 | A |
6182085 | Eichstaedt et al. | Jan 2001 | B1 |
6185558 | Bowman et al. | Feb 2001 | B1 |
6233726 | Bowman et al. | May 2001 | B1 |
6240408 | Kaufman | May 2001 | B1 |
6247013 | Morimoto | Jun 2001 | B1 |
6285999 | Page | Sep 2001 | B1 |
6304864 | Liddy et al. | Oct 2001 | B1 |
6317741 | Burrows | Nov 2001 | B1 |
6336211 | Soe | Jan 2002 | B1 |
6351467 | Dillon | Feb 2002 | B1 |
6351755 | Najork et al. | Feb 2002 | B1 |
6356933 | Mitchell et al. | Mar 2002 | B2 |
6360215 | Judd et al. | Mar 2002 | B1 |
6381734 | Golde et al. | Apr 2002 | B1 |
6385602 | Tso et al. | May 2002 | B1 |
6389436 | Chakrabarti et al. | May 2002 | B1 |
6405212 | Samu et al. | Jun 2002 | B1 |
6418433 | Chakrabarti et al. | Jul 2002 | B1 |
6418452 | Kraft et al. | Jul 2002 | B1 |
6418453 | Kraft et al. | Jul 2002 | B1 |
6430705 | Wisor et al. | Aug 2002 | B1 |
6442606 | Subbaroyan et al. | Aug 2002 | B1 |
6442620 | Thatte et al. | Aug 2002 | B1 |
6449624 | Hammack et al. | Sep 2002 | B1 |
6484204 | Rabinovich | Nov 2002 | B1 |
6484276 | Singh et al. | Nov 2002 | B1 |
6539376 | Sundaresan et al. | Mar 2003 | B1 |
6547829 | Meyerzon et al. | Apr 2003 | B1 |
6549897 | Katariya et al. | Apr 2003 | B1 |
6594682 | Peterson et al. | Jul 2003 | B2 |
6598051 | Wiener et al. | Jul 2003 | B1 |
6622140 | Kantrowitz | Sep 2003 | B1 |
6625804 | Ringseth et al. | Sep 2003 | B1 |
6631497 | Jamshidi et al. | Oct 2003 | B1 |
6638314 | Meyerzon et al. | Oct 2003 | B1 |
6668370 | Harmon et al. | Dec 2003 | B1 |
6738764 | Mao et al. | May 2004 | B2 |
6742054 | Upton | May 2004 | B1 |
6745388 | Gupta et al. | Jun 2004 | B1 |
6766422 | Beyda | Jul 2004 | B2 |
6779184 | Puri et al. | Aug 2004 | B1 |
6789252 | Burke et al. | Sep 2004 | B1 |
6826581 | Moslander et al. | Nov 2004 | B2 |
6850922 | Wason | Feb 2005 | B1 |
6871202 | Broder | Mar 2005 | B2 |
6883135 | Obata et al. | Apr 2005 | B1 |
6886010 | Kostoff | Apr 2005 | B2 |
6901595 | Mukundan et al. | May 2005 | B2 |
6951022 | Golde et al. | Sep 2005 | B1 |
6961900 | Sprague et al. | Nov 2005 | B1 |
7016540 | Gong et al. | Mar 2006 | B1 |
7028029 | Kamvar et al. | Apr 2006 | B2 |
7062502 | Kesler | Jun 2006 | B1 |
7072934 | Helgeson et al. | Jul 2006 | B2 |
7076483 | Preda et al. | Jul 2006 | B2 |
7080073 | Jiang et al. | Jul 2006 | B1 |
7139983 | Kelts | Nov 2006 | B2 |
7177859 | Pather et al. | Feb 2007 | B2 |
7181438 | Szabo | Feb 2007 | B1 |
7197512 | Pharies et al. | Mar 2007 | B2 |
7203678 | Petropoulos et al. | Apr 2007 | B1 |
7243102 | Naam et al. | Jul 2007 | B1 |
7246128 | Jordahl | Jul 2007 | B2 |
7281002 | Farrell | Oct 2007 | B2 |
7293253 | Soukup | Nov 2007 | B1 |
7328401 | Obata et al. | Feb 2008 | B2 |
7472375 | Ye et al. | Dec 2008 | B2 |
7472401 | Luo et al. | Dec 2008 | B2 |
7490214 | Cholleti et al. | Feb 2009 | B2 |
7690000 | Farmer | Mar 2010 | B2 |
7711688 | Plaisted et al. | May 2010 | B2 |
7971194 | Gilboa | Jun 2011 | B1 |
20010047385 | Tuatini | Nov 2001 | A1 |
20020023261 | Goodwin et al. | Feb 2002 | A1 |
20020066077 | Leung | May 2002 | A1 |
20020078045 | Dutta | Jun 2002 | A1 |
20020099694 | Diamond et al. | Jul 2002 | A1 |
20020100017 | Grier et al. | Jul 2002 | A1 |
20020103798 | Abrol et al. | Aug 2002 | A1 |
20020107886 | Gentner et al. | Aug 2002 | A1 |
20020129014 | Kim et al. | Sep 2002 | A1 |
20020165903 | Zargham et al. | Nov 2002 | A1 |
20020170036 | Cobb et al. | Nov 2002 | A1 |
20020188869 | Patrick | Dec 2002 | A1 |
20030037074 | Dwork et al. | Feb 2003 | A1 |
20030037310 | Ge | Feb 2003 | A1 |
20030055668 | Saran et al. | Mar 2003 | A1 |
20030074368 | Schuetze et al. | Apr 2003 | A1 |
20030101251 | Low | May 2003 | A1 |
20030135384 | Nguyen | Jul 2003 | A1 |
20030167229 | Ludwig et al. | Sep 2003 | A1 |
20030182452 | Upton | Sep 2003 | A1 |
20030217052 | Rubenczyk et al. | Nov 2003 | A1 |
20030221165 | Young et al. | Nov 2003 | A1 |
20030233477 | Ballinger et al. | Dec 2003 | A1 |
20040056894 | Zaika et al. | Mar 2004 | A1 |
20040068728 | Blevins | Apr 2004 | A1 |
20040093581 | Nielsen et al. | May 2004 | A1 |
20040181515 | Ullmann et al. | Sep 2004 | A1 |
20040181534 | Mortensen et al. | Sep 2004 | A1 |
20040186764 | McNeill | Sep 2004 | A1 |
20040194069 | Surasinghe | Sep 2004 | A1 |
20040199497 | Timmons | Oct 2004 | A1 |
20040230572 | Omoigui | Nov 2004 | A1 |
20040254932 | Gupta et al. | Dec 2004 | A1 |
20050015619 | Lee | Jan 2005 | A1 |
20050044071 | Cho et al. | Feb 2005 | A1 |
20050055347 | Cho et al. | Mar 2005 | A9 |
20050071328 | Lawrence | Mar 2005 | A1 |
20050071741 | Acharya et al. | Mar 2005 | A1 |
20050086192 | Kodama | Apr 2005 | A1 |
20050086206 | Balasubramanian et al. | Apr 2005 | A1 |
20050086583 | Obata et al. | Apr 2005 | A1 |
20050091576 | Relyea et al. | Apr 2005 | A1 |
20050108699 | Olander et al. | May 2005 | A1 |
20050132276 | Panditharadhya et al. | Jun 2005 | A1 |
20050138013 | Walker et al. | Jun 2005 | A1 |
20050144162 | Liang | Jun 2005 | A1 |
20050154746 | Liu et al. | Jul 2005 | A1 |
20050154812 | DeWitt et al. | Jul 2005 | A1 |
20050165781 | Kraft et al. | Jul 2005 | A1 |
20050166187 | Das et al. | Jul 2005 | A1 |
20050187965 | Abajian | Aug 2005 | A1 |
20050192936 | Meek et al. | Sep 2005 | A1 |
20050192955 | Farrell | Sep 2005 | A1 |
20050203956 | Dweck et al. | Sep 2005 | A1 |
20050240580 | Zamir et al. | Oct 2005 | A1 |
20050262050 | Fagin et al. | Nov 2005 | A1 |
20050267765 | Jeng et al. | Dec 2005 | A1 |
20060047649 | Liang | Mar 2006 | A1 |
20060064425 | Kakivaya et al. | Mar 2006 | A1 |
20060101445 | Carbajales et al. | May 2006 | A1 |
20060150148 | Beckett et al. | Jul 2006 | A1 |
20060161906 | Becker et al. | Jul 2006 | A1 |
20060179082 | Boyd et al. | Aug 2006 | A1 |
20060195453 | Plaisted et al. | Aug 2006 | A1 |
20060294509 | Mital et al. | Dec 2006 | A1 |
20070038616 | Guha | Feb 2007 | A1 |
20070074121 | Mullender et al. | Mar 2007 | A1 |
20070130205 | Dengler et al. | Jun 2007 | A1 |
20070186211 | Crasovan et al. | Aug 2007 | A1 |
20070233500 | Skunberg | Oct 2007 | A1 |
20090070765 | Alves et al. | Mar 2009 | A1 |
20090182610 | Palanisamy et al. | Jul 2009 | A1 |
20120144367 | Villadsen et al. | Jun 2012 | A1 |
20120159429 | Villadsen et al. | Jun 2012 | A1 |
Number | Date | Country |
---|---|---|
1568458 | Jan 2005 | CN |
1573757 | Feb 2005 | CN |
1648865 | Aug 2005 | CN |
101322096 | Dec 2008 | CN |
101326515 | Dec 2008 | CN |
0950961 | Oct 1999 | EP |
1050830 | Nov 2000 | EP |
1120717 | Aug 2001 | EP |
1376337 | Jan 2004 | EP |
1594049 | Nov 2005 | EP |
10-091638 | Apr 1998 | JP |
11-328191 | Nov 1999 | JP |
WO 9961983 | Dec 1999 | WO |
WO 0057339 | Sep 2000 | WO |
WO 2005069125 | Jul 2005 | WO |
WO 2006017418 | Feb 2006 | WO |
Entry |
---|
“Event Handling”, Retrieved at << http://swizframework.jira.com/wiki/display/SWIZ/Event+Handling >>, Jul. 9, 2010, pp. 4. |
“EVT—EVENT—METADATA—PROPERTY—ID”, Retrieved at << http://msdn.microsoft.com/en-us/library/aa385517%28VS.85%29.aspx >>, Aug. 26, 2010, pp. 3. |
“Using Metadata Tags in Components”, Retrieved at << http://flex3.info/using-metadata-tags-in-components/ >>, Retrieved Date: Oct. 6, 2010, pp. 6. |
Brown, et al., “Events in Windows Vista”, Retrieved at << http://msdn.microsoft.com/en-us/magazine/cc163431.aspx >>, May 2007, pp. 7. |
“Getting Information About Event Notifications”, Retrieved at << http://msdn.microsoft.com/en-us/library/ms189332.aspx >>, Retrieved Date: Oct. 6, 2010, p. 1. |
“Metadata Driven User Interface”, U.S. Appl. No. 11/418,829, filed May 5, 2006, pp. 33. |
“Pluggable Business Logic”, U.S. Appl. No. 11/363,132, filed Feb. 27, 2006, pp. 15. |
U.S. Official Action dated Jan. 17, 2014 in U.S. Appl. No. 12/968,434. |
U.S. Official Action dated in Jun. 21, 2013 U.S. Appl. No. 12/968,434. |
U.S. Official Action dated Dec. 2, 2008 in U.S. Appl. No. 11/418,829. |
U.S. Official Action dated Jul. 13, 2009 in U.S. Appl. No. 11/418,829. |
U.S. Official Action dated Dec. 17, 2009 in U.S. Appl. No. 11/418,829. |
U.S. Official Action dated Jul. 20, 2010 in U.S. Appl. No. 11/418,829. |
U.S. Official Action dated Mar. 1, 2011 in U.S. Appl. No. 11/418,829. |
U.S. Notice of Allowance dated Sep. 19, 2011 in U.S. Appl. No. 11/418,829. |
U.S. Official Action dated Jun. 18, 2010 in U.S. Appl. No. 11/363,132. |
U.S. Notice of Allowance dated Oct. 6, 2010 in U.S. Appl. No. 11/363,132. |
International Search Report dated Jun. 25, 2012 in International Application No. PCT/US11/061700. |
Chinese Official Action dated Oct. 9, 2013 in Chinese Application No. CN 201110443176.0. |
U.S. Official Action dated Apr. 5, 2006 in U.S. Appl. No. 10/981,962. |
U.S. Official Action dated Sep. 21, 2006 in U.S. Appl. No. 10/981,962. |
U.S. Official Action dated Apr. 30, 2007 in U.S. Appl. No. 10/981,962. |
U.S. Official Action dated Mar. 17, 2008 in U.S. Appl. No. 10/981,962. |
U.S. Official Action dated Oct. 16, 2006 in U.S. Appl. No. 10/804,326. |
U.S. Official Action dated Dec. 11, 2007 in U.S. Appl. No. 10/804,326. |
U.S. Official Action dated Nov. 3, 2006 in U.S. Appl. No. 10/955,462. |
U.S. Official Action dated May 11, 2007 in U.S. Appl. No. 10/955,462. |
U.S. Official Action dated Sep. 10, 2007 in U.S. Appl. No. 10/955,462. |
U.S. Official Action dated Mar. 22, 2007 in U.S. Appl. No. 10/955,983. |
U.S. Official Action dated Nov. 13, 2007 in U.S. Appl. No. 10/955,983. |
U.S. Official Action dated Jun. 20, 2007 in U.S. Appl. No. 11/019,091. |
U.S. Official Action dated Apr. 3, 2008 in U.S. Appl. No. 11/019,091. |
U.S. Official Action dated Jan. 8, 2008 in U.S. Appl. No. 11/238,906. |
European Search Report dated Jul. 26, 2002 in European Application No. EP 00309121. |
European Official Action dated Jul. 4, 2003 in Application No. EP 00309121. |
European Official Action dated Jun. 16, 2004 in Application No. EP 00309121. |
European Official Action dated Feb. 8, 2007 in Application No. EP 00309121. |
European Search Report dated Jan. 17, 2006 in European Application No. EP 05105048. |
European Search Report dated Aug. 11, 2006 in European Application No. EP 05105110. |
“Add and remove event handlers dynamically in .NET”, Published on: Oct. 7, 2010, Available at: http://www.lhescarms.com/dotnel/ EventHandler.aspx, 3 pp. |
“Callout Model”, Published on: Oct. 4, 2010, Available at: http://msdn.microsoft.com/en-us/library/aa680673.aspx, 3 pp. |
“Eventing Architecture”, Published on: Oct. 4, 2010, Available at: http://msdn.microsoft.com/en-us/library/ms481 079(office.12).aspx, 7pp. |
“Extending Runtime Editing Capabilities Using Oracle Composer”, Published on: Oct. 7, 2010, available at: http://sqltech.cl/doc/oasllgRII webcenter.IIII/el0148/jpsdg—page—editor—adv.htm, 28 pp. |
“WebSphere sMash configuration file: zero.config”, Published on: Oct. 4, 2010, Available at: http://www.projectzero.org/sMash/1.1.x1docs/zero.devguide.doc/zero.core/Config.html, 5 pp. |
jQuery Project, JQuery API, Feb. 21,2010, Available at: http://web.archive.org/web/201 00221 063651 /http://api.jquery.com/delegate/. |
“Migrating from ASP.NET 1.X to ASP.NET 2.0,” Published on Dec. 9, 2005, Microsoft Corporation, Available at: http://download.microsoft.com/download/el1/e/e1e86586-a01 e-41 e9-91 a9-6a12ded994e4/2005-03-02 MovinQ from ASPNET 11 to ASPNET20.ppt., 9 pp. |
“Migrating from In-house Proprietary FIX Engine to CameronFlX,” Published on Dec. 9, 2005, Cameron Systems, Available at: http://www/cameronsystems.com/solutions/migration.html., 6 pp. |
“Using WebLogic's Distributed Server-side Beans,” SEA Systems, Inc. 2000, http://www.inf.fuberlindellehre/wSOO/SWT/SENdocumentation/docs51/classdocsIAPIbean.html. |
“SourceForge.net: Fasttrack,” OSTG Open Source Technology Group, 2005, http://sourceforge.neUprojects/fasttrack/. |
Gamma et al., “Design Patterns: Elements of Reusable Object-Oriented Software,” Addison Wesley Longman, Inc. 1995. pp. 315-323. |
Hecke, Peter, “Plug-ins, Part 1: The Big Picture”, Published on: Jan. 2009, Available at: http://msdn.microsoft.com/en-us/library/dd393303.aspx, 8 pp. |
Meszaros et al., “Visual Specification of a DSL Processor Debugger”, Published on: Oct. 1, 2010, Available at: http://www.dsmforum.org/ eventsIDSM08/Papers/12-Meszaros.pdf, 6 pp. |
Stewart, Ryan, “Getting Code Completion on Custom Events in Flex with the Event Metadata Tag”, Published on: Jan. 10, 2009, Available at: http://blog.digitalbackcountry.com/2009/0 1 /getting-code-completion-on-custom-events-in-ftex-with-the-event-metadata-tag, 6 pp. |
Najork, et al., “Breadth-First Crawling Yields High-Quality Pages”, ACM, Compaq Systems Research Center, Hong Kong, 2001, pp. 114-118. |
Cho et al., “Efficient Crawling Through URL Ordering”, In Proceedings of the 7th International World Wide Web Conference, Apr. 1998, pp. 161-180. |
Chakrabarti, S., “Recent Results in Automatic Web Resource Discovery”, Dec. 1, 1999 ACM Computing Surveys, vol. 31, No. 4es, 7 pp. |
Lam et al., “Automatic Document Classification Based on Probabilistic Reasoning: Model and Performance Analysis”, IEEE, 1997, pp. 2719-2723. Abstract only. |
Lee, J.K. W. et al., “Intelligent Agents for Matching Information Providers and Consumers on the World-Wide Web”, IEEE, 1997, pp. 189-199. Abstract only. |
Huang et al., “Design and Implementation of a Chinese Full-Text Retrieval System Based on Probabilistic Model”, IEEE, 1993, pp. 1090-1093. Abstract only. |
Yuwono, et al., “Search and Ranking Algorithms for Locating Resources on the World Wide Web”, 1996, IEEE, Proceedings of the 12th International Conference, pp. 164-170. |
Davis, Harold, “Create Custom class interfaces in .NET,” Published on: Jan. 16, 2003, Harold Davis.pdf, Available at: http:/www.builderau.com.au/strategy/architecture/soa/Creat-custom-class-interfaces-in-, 6 pp. |
O'Reily, “Constraints”, Published on: Nov. 23, 2005, O'Reilly.pdf, 6 pp. |
Laurie, Jonathan, “Sort Arrays easily and efficiently in . NET”, Published on: May 22, 2003, Jonathan.pdf, Available at: www.builderau.com.au/program/windows/soa/Sort-arrrays-easily-and-efficiently-in-, 4 pp. |
Swartz, Fred, “Equality Comparison,” Published on: Dec. 18, 2005, Available at: http://web.archive.org/web/20051218010445/http:/leepoint.net/notes-java/data/expression . . . , 2 pp. |
Bracha, G., “Generics in the Java Programming Language,” Published on: Jul. 5, 2004, 23 pp. |
“Generics,” Sun Microsystems, Inc. 2004, Published on: Dec. 27, 2005, Available at: http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html, 3 pp. |
“Introduction to. Generics (C#. Programming Guide),” Published on Dec. 27, 2005, Available at: http://msdn2.microsoft.ciom/library(d-=printer)/0x6a29h6.aspx, 2 pp. |
Obasanjo, Dare, “XML Serialization in the .NET Framework,” Published on: Jan. 23, 2003, Microsoft Corp. Available at: http://msdn.microsoft.cinm/en-us/library/ms950721(printer).aspx, 9 pp. |
Obasanjo, Dare, “Designing Extensible, Versionable XML Formats,” Published on: Jul. 15, 2004, Available at: http:msdn.microsoft.com/en-us/library/ms950793(printer).aspx, 19 pp. |
Williams, et al., “Enabling Adaptive Enterprise Services Oriented Architectures with Distributed Object-Oriented Middleware,” 2002, Proceedings of CIC2002: 3rd International Conference on Communications in Computing, pp. 242-249. |
Karastoyanova et al., “Extending Web Service Flow Models to Provide for Adaptability,” 2004, Proceedings of OOPSLA, vol. 4, 15pp. |
Piccinelli et al., “Service-oriented Modelling for e-Business Applications Components,” 2001, IEEE, Proceedings Tenth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 5 pp. |
Kreger, “Web Services Conceptual Architecture (WSCA 1.0),” May 2001, IBM Corporation, 41 pp. |
Petroutsos, Evangelos, “Store and Retrieve XML-based Business Object with SQL server and .NET,” Published on: Aug. 20, 2003, Jupitermedia Corp. Available at: http://web.archive.org/web/20030820201718/http://www.devx.com/, 7 pp. |
Chinese Official Action dated Sep. 25, 2009 in Chinese Application No. 200680045521.2. |
Chinese Official Action dated Apr. 13, 2010 in Chinese Application No. 200680045521.2. |
Chinese Official Action dated Sep. 21, 2010 in Chinese Application No. 200680045521.2. |
Chinese Official Action dated Mar. 5, 2014 in Chinese Application No. CN 201110443176.0. |
Chinese Official Action dated Mar. 5, 2014 in Chinese Application No. CN 201110416404.5. |
Chinese Official Action dated Mar. 11, 2014 in Chinese Application No. 201110440149.8. |
Number | Date | Country | |
---|---|---|---|
20120159516 A1 | Jun 2012 | US |