|Publication number||US6895556 B1|
|Application number||US 09/439,049|
|Publication date||May 17, 2005|
|Filing date||Nov 12, 1999|
|Priority date||Nov 12, 1999|
|Publication number||09439049, 439049, US 6895556 B1, US 6895556B1, US-B1-6895556, US6895556 B1, US6895556B1|
|Inventors||Michael Aaron Kaply, Jeffrey Allen Jones|
|Original Assignee||International Business Machines Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (16), Non-Patent Citations (3), Referenced by (7), Classifications (7), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present invention relates to a method for providing access to displayed data, and a system implementing the method.
An exemplary prior art hardware/software display arrangement in a computer system is shown in
Also present in the computer system is main memory 10, which contains a variety of programs and routines that are executed by the computer system. Main memory contains owning application 112, other applications 114, display management application program interfaces (API's) 116, device drivers 118 and, in this example, requesting application 120. Although the term application is used in this document to refer to application 112 and other applications 114, one of skill in the art would recognize that the description herein is equally applicable to any executing process in a computer system.
Owning application 112 owns owning application window 106, while the other applications 114 own the other application windows 108. Owning application 112 may display data of any kind, such as text, images, video, etc., in owning application window 106, as well as other objects, such as control buttons, text entry boxes, sliders, etc. For example, owning application 112 may display data such as displayable data 115. In order to display data or other objects, owning application 112 communicates with display memory 102 through APIs 116, which provide a device-independent interface to the device-specific device drivers 118, which access and control the hardware of display memory 102 and display circuitry 104.
Another application, such as requesting application 120 may request access to the data displayed in application window 106. A problem arises when the requested data is unobtainable, such as may occur when the data is protected from access, when the data is in a format that is not compatible with the data request, or when the data simply does not exist, as may occur if a window is not actually visible. Currently, an error is generated and no data is returned.
A need arises for a technique that will determine what data should be supplied to an application when the application attempts to access data that is either not present, or not authorized to be accessed.
The present invention is a system and method for providing access to displayed data by determining what data should be supplied to an application when the application attempts to access data that is either not present, or not authorized to be accessed. In order to carry out the method of the present invention, a request for data of a first process is received from a second process. At the first process, a resolution to the request for data received from the second process is generated and the generated resolution is transmitted from the first process to the second process.
In one embodiment of the present invention the requested data is protected data and the received resolution comprises a modified version of the protected data. The modified version of the data may comprise data substituted for at least a portion of the protected data or data augmenting the protected data. The data substituted for at least a portion of the protected data may comprise a pattern or a message indicating where the protected data would have been displayed. The data augmenting the protected data may comprise a copyright notice.
In another embodiment of the present invention, the requested data is data that is not being displayed and the received resolution comprises the requested data.
In another embodiment of the present invention, the requested data does not exist and the received resolution comprises a generated version of the requested data.
In another embodiment of the present invention, the requesting step comprises the step of transmitting information relating to the request for data to the first process and wherein the received resolution is based on the information relating to the request for data. The information relating to the request for data may identify a process requesting the data and the received resolution may be based on the identified process or the information relating to the request for data may indicate a use to be made of the data and the received resolution may be based on the indicated use.
In another embodiment of the present invention, the requested data comprises image data. The received resolution may comprise image data having a different color depth than the requested data. The received resolution may comprise image data having a different pixel resolution than the requested data. The received resolution may comprise image data that is not the requested data.
In another embodiment of the present invention, the requested data may comprise an image of text displayed in a first font and the received resolution may comprise an image of the text displayed in a second font.
In another embodiment of the present invention, the step of generating the resolution comprises the steps of: transmitting a request for additional information relating to the request for data from the first process to the second process, receiving a response to the request for additional information from the second process, and generating, at the first process, a resolution to the request for data received from the second process based on the response to the request for additional information received from the second process. The received response to the request for additional information may comprise information identifying a process requesting the data. The received response to the request for additional information may comprise information indicating a use to be made of the data. The received response to the request for additional information may comprise information relating to attributes of the data.
The details of the present invention, both as to its structure and operation, can best be understood by referring to the accompanying drawings, in which like reference numbers and designations refer to like elements.
An exemplary hardware/software display arrangement in a computer system is shown in
Also present in the computer system is main memory 210, which contains a variety of programs and routines that are executed by the computer system. Main memory contains owning application 212, other applications 214, display management application program interfaces (API's) 216, device drivers 218 and, in this example, requesting application 220. Although the term application is used in this document to refer to owning application 212, other applications 214, and requesting application 220, one of skill in the art would recognize that the description herein is equally applicable to any executing process in a computer system.
Owning application 212 controls owning application window 206, while the other applications 214 control the other application windows 208. As shown in step 250 of
In step 252 of
In any case, in step 254 of
The action determined and resolution generated by response module 230 may depend upon several factors, such as the type of data involved in the attempted access, the application attempting to access the data, etc. For example, if the data involved in the attempted access is protected, and the application attempting to access the data is not authorized to do so, then typically, response module 230 will generate a modified version of the protected data, which will be supplied to requesting application 220. For example, response module 230 may generate a pattern or a message, such as pattern 302, shown in
Other situations may arise. The data involved in the attempted access may not be present in display memory 202. For example, the data may be off screen, or it may not have been generated yet. In this case, response module 230 may return the actual data, generating it if necessary. Response module 230 may generate different versions of the requested data depending upon the application that is requesting it. For example, the displayed data may be a color image, such as image 602, shown in
Another example is shown in
Another example is shown in
Another example is shown in
In a further embodiment of the present invention, the owning application and the requesting application may have further communications regarding the data to be provided, as shown in FIG. 14. The process shown in
In step 1404, the requesting application provides the information requested by the response module in step 1402. In step 1406, the response module analyzes the information received from the requesting application to determine if any additional information is necessary. If additional information is necessary, the response module may repeat steps 1402-1406, in order to obtain the additional information from the requesting application. Once the response module has all the necessary information, or is unable to obtain any additional information, then, in step 1408, the response module determines what action to take and generates a resolution using the received information. If the response module is unable to obtain necessary information, an error may be generated, or alternatively, a default resolution or a resolution based on at least some default information may be generated.
An example of the data flow that occurs in the processes shown in
In the example of
The requesting application receives extended request 1526 and may ignore the extended request or respond to it. In the example of
Although specific embodiments of the present invention have been described, it will be understood by those of skill in the art that there are other embodiments that are equivalent to the described embodiments. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrated embodiments, but only by the scope of the appended claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5390335||Jul 21, 1992||Feb 14, 1995||Siemens Aktiengesellschaft||Method for modifying system configuration data sets in a telecommunications switching system|
|US5392400||Jul 2, 1992||Feb 21, 1995||International Business Machines Corporation||Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence|
|US5432931||Jun 26, 1992||Jul 11, 1995||Siemens Aktiengesellschaft||Digital telecommunication system with multiple databases having assured data consistency|
|US5519862||Feb 26, 1993||May 21, 1996||Taligent, Inc.||Concurrent processing apparatus with incremental command objects|
|US5630042||Jun 6, 1995||May 13, 1997||Sun Microsystems, Inc.||Method and apparatus for providing collection browsers|
|US5754178||Oct 16, 1995||May 19, 1998||Apple Computer, Inc.||Method and apparatus for improved feedback during manipulation of data on a computer controlled display system|
|US5835594||Feb 9, 1996||Nov 10, 1998||Intel Corporation||Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage|
|US5850466||Feb 22, 1995||Dec 15, 1998||Cognex Corporation||Golden template comparison for rotated and/or scaled images|
|US5864666||Dec 23, 1996||Jan 26, 1999||International Business Machines Corporation||Web-based administration of IP tunneling on internet firewalls|
|US5881287 *||Mar 25, 1997||Mar 9, 1999||Mast; Michael B.||Method and apparatus for copy protection of images in a computer system|
|US6266664 *||Oct 1, 1998||Jul 24, 2001||Rulespace, Inc.||Method for scanning, analyzing and rating digital information content|
|US6389472 *||May 12, 2000||May 14, 2002||Cornerpost Software, Llc||Method and system for identifying and locating inappropriate content|
|US6421733 *||Sep 8, 1997||Jul 16, 2002||Intel Corporation||System for dynamically transcoding data transmitted between computers|
|US6493744 *||Aug 16, 1999||Dec 10, 2002||International Business Machines Corporation||Automatic rating and filtering of data files for objectionable content|
|US6501472 *||Mar 6, 1998||Dec 31, 2002||Insight Development Corporation||Method and system for transmitting graphical images|
|WO1995020291A1||Jan 19, 1995||Jul 27, 1995||Highwater Fbi Limited||Method of and apparatus for manipulating digital data works|
|1||*||Resnick, Paul, "PICS, Censorship, and Intellectual Freedom FAQ," www.w3.org/PICS/PICS-FAQ-980126.html Aug. 4, 1999.*|
|2||*||Safdar, Shabbir J. and Cherry, Steven, "The Australian Internet Parental Control FAQ" www.efa.org.au/Campaigns/aipcfaq.html 1996.*|
|3||Use of Callback Routines in the Implementation of Open System Interconnection Management Standards. IBM Technical Disclosure Bulletin, vol. 39, No. 01, Jan. 1996.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7350191 *||Apr 22, 2003||Mar 25, 2008||Noetix, Inc.||Computer implemented system and method for the generation of data access applications|
|US8255871 *||Feb 25, 2008||Aug 28, 2012||Noetix Corporation||Computer implemented system and method for the generation of data access applications|
|US8590012 *||Aug 27, 2007||Nov 19, 2013||Microsoft Corporation||Network access control based on program state|
|US9021605||Jan 2, 2008||Apr 28, 2015||International Business Machines Corporation||Method and system for protecting sensitive data in a program|
|US20070240062 *||Apr 7, 2006||Oct 11, 2007||Christena Jennifer Y||Method and System for Restricting User Operations in a Graphical User Inerface Window|
|US20080163382 *||Jan 2, 2008||Jul 3, 2008||International Business Machines Corporation||Method and system for protecting sensitive data in a program|
|US20090064306 *||Aug 27, 2007||Mar 5, 2009||Microsoft Corporation||Network access control based on program state|
|U.S. Classification||715/741, 345/619, 715/210|
|International Classification||G06T5/00, G06F21/00|
|Nov 12, 1999||AS||Assignment|
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KAPLY, MICHAEL AARON;JONES, JEFFREY ALLEN;REEL/FRAME:010410/0605
Effective date: 19991110
|Nov 24, 2008||REMI||Maintenance fee reminder mailed|
|May 17, 2009||LAPS||Lapse for failure to pay maintenance fees|
|Jul 7, 2009||FP||Expired due to failure to pay maintenance fee|
Effective date: 20090517