Optimizing host application presentation space recognition events through matching prioritization
First Claim
1. A computer program product for optimizing recognition of presentation space data generated by a legacy host application, said computer program product embodied on a computer-readable medium and comprising:
- computer-readable program code means for organizing a plurality of presentation space definitions into a plurality of pools, such that each of said pools logically contains zero or more of said presentation space definitions, and wherein prioritized order is established among said plurality of pools;
computer-readable program code means for monitoring at least one data stream for arrival of presentation space data, to detect arrival of a presentation space;
computer-readable program code means for comparing said arrived presentation space to each of said plurality of presentation space definitions in each successive one of said plurality of pools, according to said prioritized order among said pools, until detecting a match or determining that no match is possible; and
computer-readable program code means for notifying a target software routine to process said arrived presentation space upon detecting a said match by said computer-readable program code means for comparing.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and computer program product for optimizing recognition of presentation space data. Presentation space data is sent from a legacy host application to a workstation. A workstation application monitors arrival of multiple predetermined presentation space definitions, and invokes an appropriate target object to process each recognized presentation space of interest. Prioritization techniques are used to optimize the recognition process, whereby higher priority definitions are processed first. A time of day heuristic is defined, which influences priority of presentation space recognition according to the time of day in which specific presentation space data typically arrives at the user'"'"'s workstation. Priority pools may be used to provide a desired granularity of priority. Priority may be learned dynamically by the implementation, and may be initialized explicitly (or defaulted). Priority of a definition may be demoted if an inactivity timer expires. Priority information may be persisted to a data store.
26 Citations
28 Claims
-
1. A computer program product for optimizing recognition of presentation space data generated by a legacy host application, said computer program product embodied on a computer-readable medium and comprising:
-
computer-readable program code means for organizing a plurality of presentation space definitions into a plurality of pools, such that each of said pools logically contains zero or more of said presentation space definitions, and wherein prioritized order is established among said plurality of pools;
computer-readable program code means for monitoring at least one data stream for arrival of presentation space data, to detect arrival of a presentation space;
computer-readable program code means for comparing said arrived presentation space to each of said plurality of presentation space definitions in each successive one of said plurality of pools, according to said prioritized order among said pools, until detecting a match or determining that no match is possible; and
computer-readable program code means for notifying a target software routine to process said arrived presentation space upon detecting a said match by said computer-readable program code means for comparing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
each of said pools corresponds to a particular time of day period;
said plurality of presentation space definitions logically contained in each pool are those presentation space definitions corresponding to presentation spaces that are expected to arrive during said particular time of day period to which said pool corresponds; and
said computer-readable program code means for comparing further comprises;
computer-readable program code means for determining a current time of day at which said computer-readable program code means for comparing is performed; and
computer-readable program code means for selecting, as a first one of said plurality of pools in said prioritized order, that one of said plurality of pools having said particular time of day period that corresponds to said determined current time of day.
-
-
3. The computer program product according to claim 2, wherein said computer-readable program code means for comparing further comprises:
-
computer-readable program code means for selecting, upon failing to detect said match using said first one of said plurality of pools, each successive one of said plurality of pools after said first one, by alternating between selecting said successive one having a next-earlier and a next-later one of said particular time of day periods, with reference to said current time of day; and
computer-readable program code means for adding to said first one of said plurality of pools, upon detecting said match using one of said selected ones, said compared-to presentation space definition.
-
-
4. The computer program product according to claim 3, further comprising computer-readable program code means for persisting said logical organization of presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said computer-readable program code means for organizing and said computer-readable program code means for adding.
-
5. The computer program product according to claim 1, wherein each of said pools has a corresponding priority attribute value that is used to identify said prioritized order;
- and wherein said computer-readable program code means for comparing further comprises;
computer-readable program code means for selecting, as a first one of said plurality of pools in said prioritized order, that one of said plurality of pools having a highest of said priority attribute values; and
computer-readable program code means for selecting, upon failing to detect said match using said first one of said plurality of pools, each successive one of said plurality of pools after said first one, as that one of said plurality of pools having a next-highest of said priority attribute values.
- and wherein said computer-readable program code means for comparing further comprises;
-
6. The computer program product according to claim 5, further comprising:
computer-readable program code means for promoting, upon detecting said match using one of said selected ones, said compared-to presentation space definition such that it is then logically contained in that one of said pools having a next-higher one of said priority attribute values.
-
7. The computer program product according to claim 6, further comprising computer-readable program code means for persisting said logical organization of presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said computer-readable program code means for organizing and said computer-readable program code means for promoting.
-
8. The computer program product according to claim 6, further comprising computer-readable program code means for selectively demoting presentation space definitions, further comprising:
-
computer-readable program code means for defining an inactivity timer;
computer-readable program code means for remembering a timestamp when each of said plurality of presentation space definitions was last matched during operation of said computer-readable program code means for comparing;
computer-readable program code means for comparing each of said remembered time stamps to said inactivity timer; and
computer-readable program code means for moving each of said presentation space definitions for which said computer-readable program code means for comparing said remembered timestamp determines that said inactivity timer has expired, wherein said definition is moved from a first pool to a second pool having a next-lower of said priority attribute values than said first pool.
-
-
9. The computer program product according to claim 8, further comprising computer-readable program code means for persisting said logical organization of presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said computer-readable program code means for organizing, said computer-readable program code means for promoting, and said computer-readable program code means for selectively demoting.
-
10. A system for optimizing recognition of presentation space data generated by a legacy host application in a computing environment, comprising:
-
means for organizing a plurality of presentation space definitions into a plurality of pools, such that each of said logically contains zero or more of said presentation space definitions, and wherein a prioritized order is established among said plurality of pools;
means for monitoring at least one data stream for arrival of presentation space data, to detect arrival of a presentation space;
means for comparing said arrived presentation space to said plurality of presentation space definitions in each successive one of said plurality of pools, according to said prioritized order among said pools, until detecting a match or determining that no match is possible; and
means for notifying a target software routine to process said arrived presentation space upon detecting a said match by said means for comparing. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
each of said pools corresponds to a particular time of day period;
said plurality of presentation space definitions logically contained in each pool are those presentation space definitions corresponding to presentation spaces that are expected to arrive during said particular time of day period to which said pool corresponds; and
said means for comparing further comprises;
means for determining a current time of day at which said means for comparing is performed; and
means for selecting, as a first one of said plurality of pools in said prioritized order, that one of said plurality of pools having said particular time of day period that corresponds to said determined current time of day.
-
-
12. The system according to claim 11, wherein said means for comparing further comprises:
-
means for selecting, upon failing to detect said match using said first one of said plurality of pools, each successive one of said plurality of pools after said first one, by alternating between selecting said successive one having a next-earlier and a next-later one of said particular time of day periods, with reference to said current time of day; and
means for adding to said first one of said plurality of pools, upon detecting said match using one of said selected ones, said compared-to presentation space definition.
-
-
13. The system according to claim 12, further comprising means for persisting said logical organization of said presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said means for organizing and said means for adding.
-
14. The system to claim 10, wherein each of said pools has a corresponding priority attribute value that is used to identify said prioritized order;
- and wherein said means for comparing further comprises;
means for selecting, as a first one of said plurality of pools in said prioritized order, that one of said plurality of pools having a highest of said priority attribute values;
means for selecting, upon failing to detect said match using said first one of said plurality of pools, each successive one of said plurality of pools after said first one, as that one of said plurality of pools having a next-highest of said priority attribute values.
- and wherein said means for comparing further comprises;
-
15. The system according to claim 14, further comprising:
means for promoting, upon detecting said match using one of said selected ones, said compared-to presentation space definition such that it is then logically contained in that one of said pools having a next-higher one of said priority attribute values.
-
16. The system according to claim 15, further comprising means for persisting said logical organization of said presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said means for organizing and said means for promoting.
-
17. The system according to claim 15, further comprising means for selectively demoting presentation space definitions, further comprising:
-
means for defining an inactivity timer;
means for remembering a timestamp when each of said plurality of presentation space definitions was last matched during operation of said means for comparing;
means for comparing each of said remembered time stamps to said inactivity timer; and
means for moving each of said presentation space definitions for which said means for comparing said remembered timestamp determines that said inactivity timer has expired, wherein said definition is moved from a first pool to a second pool having a next-lower of said priority attribute values than said first pool.
-
-
18. The system according to claim 17, further comprising means for persisting said logical organization of said presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said means for organizing, said means for promoting, and said means for selectively demoting.
-
19. A method for optimizing recognition of presentation space data generated by a legacy host application in a computing environment, comprising the steps of:
-
organizing a plurality of presentation space definitions into a plurality of pools, such that each of said pools logically contains zero or more of said presentation space definitions, and wherein a prioritized order is established among said plurality of pools;
monitoring at least one data stream for arrival of presentation space data, to detect arrival of a presentation space;
comparing said arrived presentation space to said plurality of presentation space definitions in each successive one of said plurality of pools, according to said prioritized order among said pools, until detecting a match or determining that no match is possible; and
notifying a target software routine to process said arrived presentation space upon detecting a said match by said comparing step. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
each of said pools corresponds to a particular time of day period;
said plurality of presentation space definitions logically contained in each pool are those presentation space definitions corresponding to presentation spaces that are expected to arrive during said particular time of day period to which said pool corresponds; and
said comparing step further comprises the steps of;
determining a current time of day at which said means for comparing is performed; and
selecting, as a first one of said plurality of pools in said prioritized order, that one of said plurality of pools having said particular time of day period that corresponds to said determined current time of day.
-
-
21. The method according to claim 20, wherein said comparing step further comprises the steps of:
-
selecting, upon failing to detect said match using said first one of said plurality pools, each successive one of said plurality of pools after said first one, by alternating between selecting said successive one having a next-earlier and a next-later one of said particular time of day periods, with reference to said current time of day; and
adding to said first one of said plurality of pools, upon detecting said match using one of said selected ones, said compared-to presentation space definition.
-
-
22. The method according to claim 21, further comprising the step of persisting said logical organization of said presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said organizing step and said adding step.
-
23. The method according to claim 19, wherein each of said pools has a corresponding priority attribute value that is used to identify said prioritized order;
- and wherein said comparing step further comprises the steps of;
selecting, as a first one of said plurality of pools in said prioritized order, that one of said plurality of pools having a highest of said priority attribute values;
selecting, upon failing to detect said match using said first one of said plurality of pools, each successive one of said plurality of pools after said first one, as that one of said plurality of pools having a next-highest of said priority attribute values.
- and wherein said comparing step further comprises the steps of;
-
24. The method according to claim 23, further comprising the step of:
promoting, upon detecting said match using one of said selected ones, said compared-to a presentation space definition such that it is then logically contained in that one of said pools having a next-higher one of said priority attribute values.
-
25. The method according to claim 24, further comprising the step of persisting said logical organization of said presentation space definitions into said plurality of pools to persistent storage, thereby reflecting operation of said organizing step and said promoting step.
-
26. The method according to claim 23 or claim 24, further comprising the step of selectively demoting presentation space definitions, further comprising the steps of:
-
defining an inactivity timer;
remembering a timestamp when each of said plurality of presentation space definitions was last matched during operation of said comparing step;
comparing each of said remembered time stamps to said inactivity timer; and
moving each of said presentation space definitions for which said step of comparing said remembered timestamp determines that said inactivity timer has expired, wherein said definition is moved from a first pool to a second pool having a next-lower of said priority attribute values than said first pool.
-
-
27. The method according to claim 26, further comprising the step of persisting said logical organization of said presentation space definitions into said plurality of pools to persistent storage, thereby reflect operation of said organizing step, said promoting step, and said selectively demoting step.
-
28. A method of optimizing recognition of presentation space data generated by a legacy host application, the method comprising steps of:
-
associating a frequency counter with each of a plurality of presentation space definitions, each of the frequency counters having a value that counts a number of times the associated presentation space definition has matched a presentation space arriving in a data stream;
comparing each arriving presentation space that is detected in the data stream to the presentation space definitions, starting from the presentation space definition having a highest-valued frequency counter and successively proceeding to the presentation space definition having each next-highest-valued frequency counter, until detecting a match or determining that no match is possible; and
upon detecting the match, incrementing the value of the frequency counter for the compared-to presentation space definition and notifying a target software routine to process the arriving presentation space.
-
Specification