DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
This Office action is in response to the Preliminary Amendment dated 10/7/2024.
Claims 22-30 are cancelled.
Claims 1-21 are pending.
Claims 1-21 are rejected.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 10/7/2024 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the Examiner.
Claim Objections
Claims 5 and 15 are objected to because of the following informality: claims 5 and 15 each recite “…wherein the IPC is configured to operate implement a subset…” (claim 5, lines 1-2; claim 15, lines 1-2). The Examiner is uncertain as to the intended meaning of “operate implement” and has interpreted this as a minor typographical error. For the sake of examination, the Examiner has interpreted “…wherein the IPC is configured to operate implement a subset…” of claims 5 and 15 to read “…wherein the IPC is configured to implement a subset…” Appropriate correction is required.
Claims 11 and 21 are objected to because of the following informality: claims 11 and 21 each recite “…wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or (i) a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure” (claim 11, lines 6-8; claim 21, lines 8-10). The Examiner has interpreted this as a minor typographical error. For the sake of examination, the Examiner has interpreted “…wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or (i) a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure” of claims 11 and 21 to read “…wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or (ii) a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure.” Appropriate correction is required.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
3 4 7 13 14 17
Claims 1-2, 5-6, 8-12, 15-16, and 18-21 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by U.S. Patent No. 8,271,996 (“Gould”).
As per claim 1, Gould substantially teaches a method for facilitating an inter-process communication (“IPC”) of a plurality of IPC processes or tools (Gould, FIG. 45A), comprising:
using a two-phase synchronization mechanism, sharing a memory segment between a sender process buffer of a first IPC process or tool and a receiver process buffer of a second IPC process or tool, wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or (ii) a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure: (Gould, Abstract; FIG. 46C, reference numerals 3502, 3504, 3508, 3508b, and 3508c; column 62, line 48, to column 64, line 12; and column 72, lines 40-48, where the system of Gould comprises user process 3502 (i.e., a first IPC process), user process 3504 (i.e., a second IPC process), and shared memory 3508. Shared memory 3508 comprises CS SHM FIFO 3508b and SC SHM FIFO 3508c and is a shared memory segment for communication between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). The system of Gould uses a reading semaphore RSEM and a writing semaphore WSEM to control synchronization of reading and writing operations between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). The Examiner notes that the reading semaphore RSEM and the writing semaphore WSEM act as a two-phase synchronization mechanism between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). Gould therefore substantially teaches using a two-phase synchronization mechanism, sharing a memory segment between a sender process buffer of a first IPC process or tool and a receiver process buffer of a second IPC process or tool, wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or (ii) a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure).
As per claim 2, the rejection of claim 1 is incorporated, and Gould further substantially teaches:
wherein the IPC is configured to exclude data copying: (Gould, Abstract; and column 63, lines 29-35, where shared memory 3508 may be used to reduce the amount of data copying between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process) by enabling user process 3502 to place one or more messages in shared memory 3508 to retrieval by user process 3504. The Examiner notes that data copying between user process 3508 and user process 3504 is thus excluded from occurring. Gould therefore substantially teaches wherein the IPC is configured to exclude data copying).
As per claim 5, the rejection of claim 1 is incorporated, and Gould further substantially teaches:
wherein the IPC is configured to operate implement a subset of (i) the first IPC process or tool, and (ii) the second IPC process or tool: (Gould, FIG. 57A; and column 85, lines 8-36, where the system of Gould enables user process 3502 (i.e., the first IPC process) to call (i.e., operate) procedures of user process 3504 (i.e., the second IPC process) and vice versa. Gould therefore substantially teaches wherein the IPC is configured to operate implement a subset of (i) the first IPC process or tool, and (ii) the second IPC process or tool).
As per claim 6, the rejection of claim 1 is incorporated, and Gould further substantially teaches:
wherein the IPC is configured to add a functionality to (i) the first IPC process or tool, and (ii) the second IPC process or tool: (Gould, column 63, lines 50-52, where termination detection is used to detect when a client or server terminates. The Examiner notes that termination detection is added functionality for detection (by the client) of termination of the server or detection (by the server) of termination of the client. Gould therefore substantially teaches wherein the IPC is configured to add a functionality to (i) the first IPC process or tool, and (ii) the second IPC process or tool).
As per claim 8, the rejection of claim 1 is incorporated, and Gould further substantially teaches wherein the IPC is configured to at least one:
intercept IPC function calls, redirect IPC function calls, redirect IPC function calls to (i) the first IPC process or tool, and (ii) the second IPC process or tool, implement a superset of (i) the first IPC process or tool, and (ii) the second IPX process or tool, and redirect function calls to (a) the first IPC process or tool, and (b) the second IPC process or tool so that applications are not aware of redirection process, operate on its own without (i) the first IPC process or tool, and (ii) the second IPC process or tool, require no cross-memory-attach specific system calls, require no embodiment-specific kernel modules, utilize non-specific shared-memory hardware or software arrangements, utilize at least one of physical memory NUMA memory, reflective memory, or virtualized distributed memory, track, record, analyze, and optimize system operation, implement one or more process optimizations, implement at least one of placement, binding, or priority, implement non-uniform memory access (“NUMA”) memory optimizations, implement at least one of placement or migration, implement one or more cache memory optimizations. or implement at least one of a physical allocation or a memory bandwidth allocation: (Gould, column 83, lines 30-33, where the system of Gould may provide (i.e., implement) an optimized technique for performing remote procedure calls or requests issued from the client to the server (i.e., a process optimization). Gould therefore substantially teaches intercept IPC function calls, redirect IPC function calls, redirect IPC function calls to (i) the first IPC process or tool, and (ii) the second IPC process or tool, implement a superset of (i) the first IPC process or tool, and (ii) the second IPX process or tool, and redirect function calls to (a) the first IPC process or tool, and (b) the second IPC process or tool so that applications are not aware of redirection process, operate on its own without (i) the first IPC process or tool, and (ii) the second IPC process or tool, require no cross-memory-attach specific system calls, require no embodiment-specific kernel modules, utilize non-specific shared-memory hardware or software arrangements, utilize at least one of physical memory NUMA memory, reflective memory, or virtualized distributed memory, track, record, analyze, and optimize system operation, implement one or more process optimizations, implement at least one of placement, binding, or priority, implement non-uniform memory access (“NUMA”) memory optimizations, implement at least one of placement or migration, implement one or more cache memory optimizations. or implement at least one of a physical allocation or a memory bandwidth allocation).
As per claim 9, the rejection of claim 1 is incorporated, and Gould further substantially teaches wherein the sharing the memory procedure at least one:
utilizes a shared memory region to hold a single buffer to be used by a sender process and a receiver process for one or more data exchanges, includes a first shared memory region used for the data exchanges by the sender process that overlays an original sender process buffer memory space, includes a second shared memory region used for the data exchanges by the receiver process that overlays an original receiver process buffer memory space, includes a third shared memory region used for exchanges that is overlayed by the sender process and the receiver process concurrently, excludes the sender process and the receiver processes which are not aware of a memory overlay process, or utilizes a reverse process with one or more cross-memory-attach methods, wherein an original user buffer space overlays the shared memory region: (Gould, Abstract; FIG. 46C; and column 63, lines 31-35, where the system of Gould comprises user process 3502 (i.e., a first IPC process), user process 3504 (i.e., a second IPC process), and shared memory 3508. Shared memory 3508 comprises CS SHM FIFO 3508b and SC SHM FIFO 3508c and is a shared memory segment for communication (i.e., command and data exchange) between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). Gould therefore substantially teaches utilizes a shared memory region to hold a single buffer to be used by a sender process and a receiver process for one or more data exchanges, includes a first shared memory region used for the data exchanges by the sender process that overlays an original sender process buffer memory space, includes a second shared memory region used for the data exchanges by the receiver process that overlays an original receiver process buffer memory space, includes a third shared memory region used for exchanges that is overlayed by the sender process and the receiver process concurrently, excludes the sender process and the receiver processes which are not aware of a memory overlay process, or utilizes a reverse process with one or more cross-memory-attach methods, wherein an original user buffer space overlays the shared memory region).
As per claim 10, the rejection of claim 1 is incorporated, and Gould further substantially teaches wherein the two-phase synchronization mechanism is configured to at least one of:
implement a separate synchronization event for at least one of a data exchange, a second process or a receiver process completion of using a shared memory buffer; decouple a one-phase synchronization mechanism used by the IPC; utilize one or more efficient light-weight synchronization mechanisms for an improved performance, or relax a process parallelism coupling: (Gould, Abstract; and column 72, lines 40-48, where a reader (i.e., a receiver process) may be blocked while waiting for completion of a new entry to be written to shared memory by a writer. This means that the receiver process must complete synchronization of updates written to shared memory. Gould therefore substantially teaches implement a separate synchronization event for at least one of a data exchange, a second process or a receiver process completion of using a shared memory buffer; decouple a one-phase synchronization mechanism used by the IPC; utilize one or more efficient light-weight synchronization mechanisms for an improved performance, or relax a process parallelism coupling).
As per claim 11, Gould substantially teaches a system for facilitating an inter-process communication (“IPC”) of a plurality of IPC processes or tools (Gould, FIG. 45A), comprising:
a computer hardware arrangement configured to, using a two-phase synchronization mechanism, share a memory segment between a sender process buffer of a first IPC process or tool and a receiver process buffer of a second IPC process or tool, wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or <(i) -> (ii)?> a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure: (Gould, Abstract; FIG. 46C, reference numerals 3502, 3504, 3508, 3508b, and 3508c; column 62, line 48, to column 64, line 12; and column 72, lines 40-48, where the system of Gould comprises user process 3502 (i.e., a first IPC process), user process 3504 (i.e., a second IPC process), and shared memory 3508. Shared memory 3508 comprises CS SHM FIFO 3508b and SC SHM FIFO 3508c and is a shared memory segment for communication between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). The system of Gould uses a reading semaphore RSEM and a writing semaphore WSEM to control synchronization of reading and writing operations between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). The Examiner notes that the reading semaphore RSEM and the writing semaphore WSEM act as a two-phase synchronization mechanism between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). Gould therefore substantially teaches a computer hardware arrangement configured to, using a two-phase synchronization mechanism, share a memory segment between a sender process buffer of a first IPC process or tool and a receiver process buffer of a second IPC process or tool, wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or (ii) a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure).
As per claim 12, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 12 is substantially similar to the language of claim 2. Claim 12 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 2.
As per claim 15, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 15 is substantially similar to the language of claim 5. Claim 15 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 5.
As per claim 16, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 16 is substantially similar to the language of claim 6. Claim 16 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 6.
As per claim 18, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 18 is substantially similar to the language of claim 8. Claim 18 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 8.
As per claim 19, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 19 is substantially similar to the language of claim 9. Claim 19 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 9.
As per claim 20, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 20 is substantially similar to the language of claim 10. Claim 20 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 10.
As per claim 21, Gould substantially teaches a non-transitory computer-accessible medium having stored thereon computer-executable instructions for facilitating an inter-process communication (“IPC”) of a plurality of IPC processes or tools, wherein, when a computing arrangement executes the instructions, the computing arrangement is configured to perform procedures comprising (Gould, FIG. 45A and 45B):
with a two-phase synchronization mechanism, sharing a memory segment between a sender process buffer of a first IPC process or tool and a receiver process buffer of a second IPC process or tool, wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the iPC, or <(i) -> (ii)?> a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure: (Gould, Abstract; FIG. 46C, reference numerals 3502, 3504, 3508, 3508b, and 3508c; column 62, line 48, to column 64, line 12; and column 72, lines 40-48, where the system of Gould comprises user process 3502 (i.e., a first IPC process), user process 3504 (i.e., a second IPC process), and shared memory 3508. Shared memory 3508 comprises CS SHM FIFO 3508b and SC SHM FIFO 3508c and is a shared memory segment for communication between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). The system of Gould uses a reading semaphore RSEM and a writing semaphore WSEM to control synchronization of reading and writing operations between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). The Examiner notes that the reading semaphore RSEM and the writing semaphore WSEM act as a two-phase synchronization mechanism between user process 3502 (i.e., the first IPC process) and user process 3504 (i.e., the second IPC process). Gould therefore substantially teaches with a two-phase synchronization mechanism, sharing a memory segment between a sender process buffer of a first IPC process or tool and a receiver process buffer of a second IPC process or tool, wherein the two-phase synchronization mechanism is based on at least one of (i) a completion of the IPC, or (ii) a termination of the IPC using the shared memory segment for at least one of a reading procedure or a writing procedure).
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 of this title, 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.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103(a) are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 3-4, 7, 13-14, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent No. 8,271,996 (“Gould”) in view of World Intellectual Property Organization (WIPO) publication WO 2012/044558 (“Benedek”).
As per claim 3, the rejection of claim 1 is incorporated, but Gould does not appear to explicitly teach the other limitations of this claim beyond those taught above; however, in an analogous art, Benedek teaches cross-environment communication framework.
As per claim 3, Benedek particularly teaches:
wherein the IPC is configured to operate independently from (i) the first IPC process or tool, and (ii) the second IPC process or tool: (Benedek, paragraph 0076, where some methods of IPC are platform independent, which means that IPC mechanisms used for IPC may operate differently (i.e., independently from) a first IPC process or tool and a second IPC process or tool. Benedek therefore substantially teaches wherein the IPC is configured to operate independently from (i) the first IPC process or tool, and (ii) the second IPC process or tool).
It would have been obvious to a person having ordinary skill in the art, having the teachings of Benedek and Gould before them before the instant application was effectively filed, to modify the system of Gould to include the principles of Benedek of platform independence for IPC operations.
The modification would have been obvious because a person having ordinary skill in the art would be motivated to increase system efficiency and flexibility by implementing techniques for enabling interaction with multiple types of systems, regardless of underlying hardware or standards used (Benedek, paragraph 0110).
As per claim 4, the rejection of claim 1 is incorporated, but Gould does not appear to explicitly teach the other limitations of this claim beyond those taught above; however, in an analogous art, Benedek teaches cross-environment communication framework.
As per claim 4, Benedek particularly teaches:
wherein the IPC is configured to operate independently from an underlying application: (Benedek, paragraph 0076, where some methods of IPC are platform independent, which means that IPC mechanisms used for IPC may operate differently (i.e., independently from) a first IPC process or tool and a second IPC process or tool. Benedek therefore substantially teaches wherein the IPC is configured to operate independently from an underlying application).
It would have been obvious to a person having ordinary skill in the art, having the teachings of Benedek and Gould before them before the instant application was effectively filed, to modify the system of Gould to include the principles of Benedek of platform independence for IPC operations.
The modification would have been obvious because a person having ordinary skill in the art would be motivated to increase system efficiency and flexibility by implementing techniques for enabling interaction with multiple types of systems, regardless of underlying hardware or standards used (Benedek, paragraph 0110).
As per claim 7, the rejection of claim 1 is incorporated As per claim 4, the rejection of claim 1 is incorporated, but Gould does not appear to explicitly teach the other limitations of this claim beyond those taught above; however, in an analogous art, Benedek teaches cross-environment communication framework.
As per claim 7, Benedek particularly teaches:
wherein the IPC is configured to implement an IPC standard that is different from a standard of (i) the first IPC process or tool, and (ii) the second IPC process or tool: (Benedek, paragraphs 0076and 0091, where some methods of IPC are platform independent, which means that IPC mechanisms used for IPC may operate differently (i.e., independently from) a first IPC process or tool and a second IPC process or tool. Benedek also notes that the cross-environment communication framework may be extended to also Linux applications (i.e., a first IPC standard) to access services of Android OS (i.e., a different IPC standard). Benedek therefore substantially teaches wherein the IPC is configured to implement an IPC standard that is different from a standard of (i) the first IPC process or tool, and (ii) the second IPC process or tool).
It would have been obvious to a person having ordinary skill in the art, having the teachings of Benedek and Gould before them before the instant application was effectively filed, to modify the system of Gould to include the principles of Benedek of platform independence for IPC operations.
The modification would have been obvious because a person having ordinary skill in the art would be motivated to increase system efficiency and flexibility by implementing techniques for enabling interaction with multiple types of systems, regardless of underlying hardware or standards used (Benedek, paragraph 0110).
As per claim 13, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 13 is substantially similar to the language of claim 3. Claim 13 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 3.
As per claim 14, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 14 is substantially similar to the language of claim 4. Claim 14 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 4.
As per claim 17, the rejection of claim 11 is incorporated, and the Examiner notes that the language of claim 17 is substantially similar to the language of claim 7. Claim 17 is therefore rejected using the same references and reasoning, mutatis mutandis, as used in the above rejection of claim 7.
Conclusion
The following prior art is made of record and is not relied upon for any rejection but is considered pertinent to Applicant's disclosure:
USPGPUB 2013/0013534: teaches communication techniques between threads using a shared memory.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Daniel C. Chappell whose telephone number is (571)272-5003. The examiner can normally be reached 1000-1800, Eastern.
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, Jared I. Rutz can be reached at (571)272-5535. 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.
Daniel C. Chappell
Primary Examiner
Art Unit 2135
/Daniel C. Chappell/Primary Examiner, Art Unit 2135