Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Song(US 2005/0114870) and Angwin(US 6,167,450).
Regarding claim 1, Song discloses a computing device comprising: at least one memory device configured to store a software application(Paragraph 26, the application wrapper system is implemented as one or more software modules that are executed by the CPU of the computer system and inter-operate with the operating system on the computer system. The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device that are executed by a CPU of a computer system); a processing device coupled to the at least one memory device via a bus and configured to execute the software application(Paragraph 26, the application wrapper system is implemented on a typical personal computer system running a Windows-based operating system wherein the computer system has well known components including one or more CPUs, input/output devices, such as a display, printer, mouse. keyboard, etc., memory (DRAMs or SRAMs), a persistent storage device, such as a hard disk drive, tape drive. optical drive, etc. and other peripherals. the application wrapper system is implemented as one or more software modules that are executed by the CPU of the computer system and inter-operate with the operating system on the computer system. The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device that are executed by a CPU of a computer system); and one or more resources capable of being called by the execution of a code in the software application(Paragraph 45, an application process requests a component. The said component calls are processed in different methods in windows operating system), wherein the at least one memory device, or a further memory device of the computing device, is configured to store a redirection table indicating, based on either or both of a caller address and a called address of a call to one of the resources, a substitute address to which the call is to be forwarded, wherein the computing device further comprises a software for intercepting a call from the software application and selectively redirecting the call based on the redirection table(Paragraph 48, whenever a secured application is selected for execution, the said application launcher registers privatized virtual components required for the secured application to use in service control manager for IPC and adds component redirecting information for each component required by each secured application to the component redirection table. The said component redirection table contains redirecting information such as component location, real GUID addressing a component available on a real file system and a corresponding privatized GUID addressing a component on privatized virtual file system. This table serves component redirecting information to search and identify the location of the privatized virtual component).
Song does not specifically disclose the redirection table is implemented as a lookup table. However, Angwin discloses calls identified in a `Redirection` lookup table are redirected to a call handler module 50 and calls it a Redirection lookup table(Column 5, Lines 53-55 and 59). It would have been obvious to one of ordinary skill in the art , before the effective filing date of the claimed invention, to combine the teachings of Song and Angwin to have the redirection table implemented as a lookup table. The motivation to do so would be that lookup tables are well-known in the art and would provide an easy and efficient implementation of a redirection calls.
Regarding claim 2, Song discloses computing device of claim 1, wherein the one or more resources comprise one or more hardware resources such as peripheral devices of the computing device(Paragraph 26, The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device).
Regarding claim 3, Song discloses computing device of claim 1, wherein the one or more resources comprise one or more memory regions of the at least one memory device(Paragraph 33, Whenever any file I/O request is received from a user process by the said privatized virtual file system driver for a file residing on a mounted storage volume, then the said privatized virtual file system driver redirects the request to the operating system 100 file system driver to manage the mounted logical volume).
Regarding claim 4, Song discloses computing device of claim 1, wherein the software for intercepting the call is configured to compare the caller address of the call with a plurality of reference caller addresses indicated in the redirection table, and in case of a hit, to redirect the call to the substitute address associated in the redirection table with the reference caller address of the call(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 5, Song discloses computing device of claim 1, wherein the software for intercepting the call is configured to compare the called address of the call with a plurality of reference called addresses indicated in the redirection table, and in case of a hit, to redirect the call to the substitute address associated in the redirection table with the reference called address of the call(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 6, Song discloses computing device of claim 1, wherein the software for intercepting the call is configured to compare the caller address of the call with a plurality of reference caller addresses indicated in the redirection table and to compare the called address of the call with a plurality of reference called addresses indicated in the redirection table, and in case of a hit for both the caller and called addresses, to redirect the call to the substitute address associated in the redirection table with the reference caller and called addresses of the call(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 7, Song discloses computing device of claim 1, wherein the one or more resources capable of being called by the execution of the code in the software application comprise: a first resource capable of being called by a call to a first function stored at a first address in the at least one memory device; and a second resource capable of being called by a call to a second function stored at a second address in the at least one memory device(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 8, Song discloses computing device of claim 1, wherein the software for intercepting the call is stored in the at least one memory device(Paragraph 33, . Whenever any file I/O request is received from a user process by the said privatized virtual file system driver for a file residing on a mounted storage volume, then the said privatized virtual file system driver redirects the request to the operating system 100 file system driver to manage the mounted logical volume).
Regarding claim 9, Song discloses computing device comprising: one or more resources(Paragraph 45, an application process requests a component. The said component calls are processed in different methods in windows operating system); one or more memory devices configured to store: a software application(Paragraph 26, the application wrapper system is implemented as one or more software modules that are executed by the CPU of the computer system and inter-operate with the operating system on the computer system. The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device that are executed by a CPU of a computer system); and a redirection table, wherein the redirection table indicates, based on either or both of a caller address and a called address of a call to one of the one or more resources, a substitute address to which the call is to be forwarded(Paragraph 48, whenever a secured application is selected for execution, the said application launcher registers privatized virtual components required for the secured application to use in service control manager for IPC and adds component redirecting information for each component required by each secured application to the component redirection table. The said component redirection table contains redirecting information such as component location, real GUID addressing a component available on a real file system and a corresponding privatized GUID addressing a component on privatized virtual file system. This table serves component redirecting information to search and identify the location of the privatized virtual component); a processing device coupled to the one or more memory devices and configured to execute the software application(Paragraph 26, the application wrapper system is implemented as one or more software modules that are executed by the CPU of the computer system and inter-operate with the operating system on the computer system. The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device that are executed by a CPU of a computer system), wherein the processing device is configured to generate the call to the one of the one or more resources; and a circuit for intercepting the call and forwarding the call to the substitute address according to the redirection table(Paragraph 48, whenever a secured application is selected for execution, the said application launcher registers privatized virtual components required for the secured application to use in service control manager for IPC and adds component redirecting information for each component required by each secured application to the component redirection table. The said component redirection table contains redirecting information such as component location, real GUID addressing a component available on a real file system and a corresponding privatized GUID addressing a component on privatized virtual file system. This table serves component redirecting information to search and identify the location of the privatized virtual component).
Song does not specifically disclose the redirection table is implemented as a lookup table. However, Angwin discloses calls identified in a `Redirection` lookup table are redirected to a call handler module 50 and calls it a Redirection lookup table(Column 5, Lines 53-55 and 59). It would have been obvious to one of ordinary skill in the art , before the effective filing date of the claimed invention, to combine the teachings of Song and Angwin to have the redirection table implemented as a lookup table. The motivation to do so would be that lookup tables are well-known in the art and would provide an easy and efficient implementation of a redirection calls.
Regarding claim 10, Song discloses computing device of claim 9, wherein the circuit comprises: a first comparator configured to compare the caller address of the call to a reference caller address or reference caller address range; or a second comparator configured to compare the called address of the call to a reference called address or reference called address range(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 11, Song discloses computing device of claim 10, wherein the circuit further comprises one of the one or more memory devices configured to store the redirection table(Paragraph 26, In the preferred embodiment, the application wrapper system is implemented as one or more software modules that are executed by the CPU of the computer system and inter-operate with the operating system on the computer system. The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device that are executed by a CPU of a computer system. Now, the application wrapper system and method in accordance with the invention will be described in the context of a personal computer system executing a Windows-based operating system.
Regarding claim 12, Song discloses computing device of claim 9, further comprising a bus configured to couple the processing device, the one or more memory devices, the one or more resources, and the circuit to each other(Paragraph 26, the application wrapper system is implemented on a typical personal computer system running a Windows-based operating system wherein the computer system has well known components including one or more CPUs, input/output devices, such as a display, printer, mouse. keyboard, etc., memory (DRAMs or SRAMs), a persistent storage device, such as a hard disk drive, tape drive. optical drive, etc. and other peripherals).
Regarding claim 13, Song discloses computing device of claim 9, wherein the circuit is configured to update the redirection table(Paragraph 48, whenever a secured application is selected for execution, the said application launcher registers privatized virtual components required for the secured application to use in service control manager for IPC and adds component redirecting information for each component required by each secured application to the component redirection table).
Regarding claim 14, Song discloses computing device of claim 9, wherein the one or more resources comprise one or more hardware resources such as peripheral devices of the computing device(Paragraph 26, The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device).
Regarding claim 15, Song discloses computing device of claim 9, wherein the one or more resources comprise one or more memory regions of the one or more memory devices(Paragraph 33, Whenever any file I/O request is received from a user process by the said privatized virtual file system driver for a file residing on a mounted storage volume, then the said privatized virtual file system driver redirects the request to the operating system 100 file system driver to manage the mounted logical volume).
Regarding claim 16, Song discloses method of accessing one or more resources of a computing device application(Paragraph 45, an application process requests a component. The said component calls are processed in different methods in windows operating system), the method comprising: intercepting, by a software or hardware of the computing device, a call from a software application stored by at least one memory device of the computing device(Paragraph 26, the application wrapper system is implemented as one or more software modules that are executed by the CPU of the computer system and inter-operate with the operating system on the computer system. The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device that are executed by a CPU of a computer system), wherein a processing device of the computing device is coupled to the at least one memory device via a bus and is configured to execute the software application(Paragraph 26, the application wrapper system is implemented on a typical personal computer system running a Windows-based operating system wherein the computer system has well known components including one or more CPUs, input/output devices, such as a display, printer, mouse. keyboard, etc., memory (DRAMs or SRAMs), a persistent storage device, such as a hard disk drive, tape drive. optical drive, etc. and other peripherals. The application wrapper system is implemented as one or more software modules that are executed by the CPU of the computer system and inter-operate with the operating system on the computer system. The application wrapper system may also be implemented as one or more pieces of software stored on a hardware device that are executed by a CPU of a computer system); and selectively redirecting, by the software or hardware of the computing device, the call based on a redirection table stored in the at least one memory device, or in a further memory device, the redirection table indicating, based on either or both of a caller address and a called address of a call to one of the resources, a substitute address to which the call is to be forwarded(Paragraph 48, whenever a secured application is selected for execution, the said application launcher registers privatized virtual components required for the secured application to use in service control manager for IPC and adds component redirecting information for each component required by each secured application to the component redirection table. The said component redirection table contains redirecting information such as component location, real GUID addressing a component available on a real file system and a corresponding privatized GUID addressing a component on privatized virtual file system. This table serves component redirecting information to search and identify the location of the privatized virtual component).
Song does not specifically disclose the redirection table is implemented as a lookup table. However, Angwin discloses calls identified in a `Redirection` lookup table are redirected to a call handler module 50 and calls it a Redirection lookup table(Column 5, Lines 53-55 and 59). It would have been obvious to one of ordinary skill in the art , before the effective filing date of the claimed invention, to combine the teachings of Song and Angwin to have the redirection table implemented as a lookup table. The motivation to do so would be that lookup tables are well-known in the art and would provide an easy and efficient implementation of a redirection calls.
Regarding claim 17, Song discloses method of claim 16, further comprising: comparing, by the software or hardware of the computing device, the caller address of the call with a plurality of reference caller addresses indicated in the redirection table; and in case of a hit, redirecting, by the software or hardware of the computing device, the call to the substitute address associated in the redirection table with the reference caller address of the call(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 18, Song discloses method of claim 16, further comprising: comparing, by the software or hardware of the computing device, the called address of the call with a plurality of reference called addresses indicated in the redirection table; and in case of a hit, redirecting, by the software or hardware of the computing device, the call to the substitute address associated in the redirection table with the reference called address of the call(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 19, Song discloses method of claim 16, further comprising: comparing, by the software or hardware of the computing device, the caller address of the call with a plurality of reference caller addresses indicated in the redirection table and the called address of the call with a plurality of reference called addresses indicated in the redirection table; and in case of a hit for both the caller and called addresses, redirecting, by the software or hardware of the computing device, the call to the substitute address associated in the redirection table with the reference caller and called addresses of the call(Paragraph 56, the information such as component address, GUID and messages from the component call were retrieved. The information for amending the said component call information is available in the said component redirection table, which can be searched with the component address available from the retrieved call information. Component address will have a corresponding redirecting component address in the said component redirection table for the calls originated from the said secured application. In FIG. 14 at step 430, based on the said component address, the corresponding said redirecting component address is searched in the said component redirection table. At step 432, based on the search result, if the search is successful then the process is branched to step 436 for privatizing the component).
Regarding claim 20, Song discloses method of claim 16, further comprising updating the redirection table(Paragraph 48, whenever a secured application is selected for execution, the said application launcher registers privatized virtual components required for the secured application to use in service control manager for IPC and adds component redirecting information for each component required by each secured application to the component redirection table).
Response to Arguments
Applicant’s arguments have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NIMESH G PATEL whose telephone number is (571)272-3640. The examiner can normally be reached Monday-Friday, 8:15-4:15.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Jaweed Abbaszadeh can be reached on 571-270-1640. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/NIMESH G PATEL/Primary Examiner, Art Unit 2187