Ex Parte LI et alDownload PDFBoard of Patent Appeals and InterferencesMay 31, 201209955764 (B.P.A.I. May. 31, 2012) Copy Citation UNITED STATES PATENT AND TRADEMARK OFFICE ____________________ BEFORE THE BOARD OF PATENT APPEALS AND INTERFERENCES ____________________ Ex parte JUN LI and KEITH MOORE ____________________ Appeal 2010-003476 Application 09/955,764 Technology Center 2100 ____________________ Before JOSEPH L. DIXON, LANCE LEONARD BARRY, and THU A. DANG, Administrative Patent Judges. DANG, Administrative Patent Judge. DECISION ON APPEAL Appeal 2010-003476 Application 09/955,764 2 I. STATEMENT OF THE CASE Appellants appeal under 35 U.S.C. § 134(a) from a Final Rejection of claims 1-43. We have jurisdiction under 35 U.S.C. § 6(b). We affirm-in-part. A. INVENTION Appellants’ invention is directed to a monitoring method and apparatus for runtime monitoring of a distributed software application which is able to debug, monitor, and characterize a multi-threaded, multi- processed, and distributed system (Abstract; Spec. ¶¶ [0010]-[0011]). B. ILLUSTRATIVE CLAIM Claim 1 is exemplary: 1. A monitoring method for a component-based software system operating over one or more processing devices, comprising the steps of: initiating an invocation of a second software component from within an execution of a first software component; recording a stub start log data including a global causal identifier in an instrumented stub before said invocation of said second software component; transmitting the global causal identifier from the first software component to the second software component wherein the second software component executes on a separate thread and in a system remote from first software component; recording a stub end log data including the global causal identifier in said instrumented stub after a response is received Appeal 2010-003476 Application 09/955,764 3 from said invocation of said second software component, said response including the global causal identifier; wherein said stub start log data and said stub end log data sather runtime information about execution of said second software component within said component-based software system. C. REJECTIONS The prior art relied upon by the Examiner in rejecting the claims on appeal is: Delucia US 4,819,233 Apr. 04, 1989 Brandle US 5,146,593 Sep. 08, 1992 Courant US 5,522,073 May 28, 1996 Tucker US 6,151,639 Nov. 21, 2000 Kazi et al, “JaViz: A client/server Java profiling tool,” 39 Java Performance (2000), http://www.research.ibm.com/journal/sj/391/kazi.html. Technical Report from Blumson et al, Center for Information Technology Integration, University of Michigan, Automatic Insertion of Performance Instrumentation for Distributed Applications (February 1995) (hereinafter “Blumson”). Peek et al, Unix Power Tools (O’Reilly Media, Inc., 2nd ed. 1997). Claims 1-7, 9-11, 13-19, 21-32, and 35-42 stand rejected under 35 U.S.C. § 103(a) as being unpatentable over Kazi in view of Blumson, Delucia, and Tucker. Claims 8, 12, and 43 stand rejected under 35 U.S.C. § 103(a) as being unpatentable over Kazi in view of Blumson, Delucia, Tucker, and Courant. Claim 20 stands rejected under 35 U.S.C. § 103(a) as being unpatentable over Kazi in view of Blumson, Delucia, Tucker and Brandle. Appeal 2010-003476 Application 09/955,764 4 Claims 33 and 34 stand rejected under 35 U.S.C. § 103(a) as being unpatentable over Kazi in view of Blumson, Delucia, Tucker, and Peek. II. ISSUES The dispositive issues before us are whether the Examiner has erred in determining that: 1. the combination of Kazi, Blumson, Delucia, and Tucker teaches or would have suggested “recording a stub start log data including a global causal identifier in an instrumented stub before said invocation of said second software component” and “transmitting the global causal identifier from the first software component to the second software component wherein the second software component executes on a separate thread and in a system remote from the first software component” (claim 1, emphasis added); 2. the combination of Kazi, Blumson, Delucia, and Tucker teaches or would have suggested “wherein a log data content is configured during operation of said component-based software system” (claim 7, emphasis added); and 3. the combination of Kazi, Blumson, and Courant teaches or would have suggested “wherein a user is capable of changing said particular log data contents during said operation of said component-based software system by setting said regular expression” (claim 8, emphasis added). Appeal 2010-003476 Application 09/955,764 5 III. FINDINGS OF FACT The following Findings of Fact (FF) are shown by a preponderance of the evidence. The Invention 1. According to Appellants, a global causal identifier is a user- defined software component that is sent between a stub (object/software routine) and a skeleton (object/software routine) (Spec. ¶¶ [0027] and [0057]). 2. Runtime information about various processes is stored in a log file (Spec. ¶ [0037]). 3. An instrumented stub instruments (records) application- meaningful events such as stub start log data at the component’s interface definition language (IDL) description level (Spec. ¶¶ [0042] and [0043]). Kazi 4. Kazi discloses a performance analysis tool (JaViz) that generates execution traces with sufficient detail to determine program hot spots, including remote method calls, in a distributed Java application program; wherein, the tool has the capability of tracing client/server activities across multiple Java virtual machines (Jvms) (Abstract; p. 8, third para., ll. 1-4). 5. The tool includes a Java remote method invocation (RMI) facility that allows one Jvm to execute a method on another Jvm having a physically distributed processor (p. 8, third para., ll. 1-4). 6. A trace generation module of the Jvm is modified to record every invocation of a method using time stamps showing start and end times of the method with microsecond resolution (p. 7, third para., ll. 1-3). A Appeal 2010-003476 Application 09/955,764 6 profiling function creates a new trace record in a buffer for each method entry or exit event (p. 7, third para., ll. 7-8). 7. Each record is recorded in a .jta file which contains parent-child links and such information as the number of methods invoked by this method, the time when the method started, the time when it completed, the thread executing this method, the method identifier of the method call being represented, and the specific Jvm on which the method is executed (p. 5, third para., ll. 8-11). 8. For every remote method invoked through RMI, the Jvm records these identifiers at both the client side and the server side (p. 8, fifth para., ll. 4-5). In particular, the identifier of the thread that invoked the remote call is recorded on the client side in order to map the detailed trace entry of the remote method invocation to the corresponding client profile entry and the identifier of the thread where the remote call is received is recorded on the server side (p. 9, second para.). Blumson 9. Blumson discloses that client and/or server stubs should be instrumented so that the stub can collect runtime data (Sec. 6.1, first para.). Delucia 10. Delucia discloses that data can be recorded before and after invocation for the purpose of providing an indication that the call statement was reached and that the program returned to the correct location after the call (col. 2, ll. 37-42). Tucker 11. Tucker discloses identifiers may be transmitted in a remote object invocation request to the appropriate remote node (col. 3, ll. 22-24). Appeal 2010-003476 Application 09/955,764 7 Courant 12. Courant discloses that a user may apply any pattern matching to a file, such as “only respond to files which begin with the two letters ‘ab’” (Fig. 9; col. 8, ll. 26-32). IV. ANALYSIS Claims 1-6, 9-11, 13-19, 21-32, and 35-42 As to claim 1, Appellants contend that “the .jta file [of Kazi] cannot be the ‘instrumented stub’ … because the .jta file is merely a data file” (App. Br. 9). Appellants argue that “the method identifier creation [in Kazi] is at the second software component (in Jvm 2), not at the first software component” and, therefore, Kazi does not teach “[as recited] in claim 1, [that] the global causal identifier is CREATED by component 1 and then TRANSMITTED to component 2” (App. Br. 10). Appellants contend further that Tucker “does not cure the defect in Kazi” and that it discloses “a remote-object-invocation-oriented unique identifier [which] is different from the claimed global causal identifier that is designed for ‘call causality tracking’” (App. Br. 11). However, the Examiner finds that “Appellants misrepresent the art by contending that Kazi … describes a method identifier that is given by an [remote method invocation (RMI)] module at Jvm 2;” however, “Kazi clearly shows that an RMI call using the method identifier is created at Jvm 1” (Ans. 21). The Examiner notes that “the features upon which [Appellants] rel[y] (i.e., ‘the global causal identifier is CREATED by component 1’ …) are not recited in the rejected claims” (id.). Appeal 2010-003476 Application 09/955,764 8 Appellants’ argument that “claim 1 [recites] the global causal identifier is CREATED by component 1, and then TRANSMITTED to component 2” is not commensurate in scope with the specific language of claim 1 (App. Br. 10). In particular, claim 1 does not recite such “the global causal identifier is CREATED by component 1” as Appellants argue. We give the claim its broadest reasonable interpretation consistent with the Specification. See In re Morris, 127 F.3d 1048, 1054 (Fed. Cir. 1997). However, we will not read limitations from the Specification into the claims. In re Van Geuns, 988 F.2d 1181, 1184 (Fed. Cir. 1993). Representative claim 1 does not place any limitation on what “stub start log data,” “global causal identifier,” and “instrumented stub” mean, include, or represent. The Specification discloses that a “global causal identifier” is a user-defined software component that is sent between a stub (data/software routine) and a skeleton (data/software routine) (FF 1). Thus, we give “global causal identifier” its broadest reasonable interpretation as data, as consistent with the Specification and as specifically defined in claim 1. As to “stub log data,” the Specification discloses that stub log data refers to the runtime information regarding the stub process or software routine (FF 2). Thus, we give “stub start log data” its broadest reasonable interpretation as data, as consistent with the Specification and as specifically defined in claim 1. As to “instrumented stub,” the Specification discloses that an “instrumented stub” is an object (data) or software routine that is capable of recording data (FF 1 and 3). Thus, we give “instrumented stub” its broadest Appeal 2010-003476 Application 09/955,764 9 reasonable interpretation as a software routine for recording data, as consistent with the Specification and as specifically defined in claim 1. Kazi discloses a performance analysis tool that generates execution traces including remote method calls (FF 4). The tool includes a Java RMI facility that allows one Jvm to execute a method on another Jvm (FF 5). We find that the execution of one method on another Jvm comprises invocation of a second software component. Kazi further discloses that the tool records every invocation of a method using time stamps for the start and end times of the method’s execution on the processor (FF 6). Each record is recorded in a file that includes not only the start and end times of the method but also a method identifier (FF 7). These records are updated on both the client and server side including the identifier of the thread that invoked the remote call (recorded on the client side) and the identifier of the thread where the remote call is received (recorded on the server side) (FF 8). We find that the recording of the start and end times of every invocation of a method comprises recording the stub start log data. We also find that recording the method identifier in a file comprises recording the global causal identifier in an instrumented stub. That is, we find that “recording a stub start log data including a global causal identifier in an instrumented stub before said invocation of said second software component” (claim 1) reads on Kazi’s performance analysis tool that records start and end times of every invocation of each method along with its method identifier before the invocation of another software component. In addition, Blumson discloses that client and/or server stubs are instrumented for the purpose of collecting runtime data (FF 9). We find that Appeal 2010-003476 Application 09/955,764 10 the instrumented stubs comprise software routines that are capable of recording data. That is, we also find that “recording a stub start log data … in an instrumented stub” (claim 1) reads on Blumson’s instrumented stub. Furthermore, Delucia discloses that data can be recorded before and after invocation (FF 10). We find that data being recorded before and after invocation comprises recording of data before invocation of a software component. That is, we find that “recording … data … before said invocation of said second software component” (claim 1) reads on Delucia’s data capturing process. Moreover, Tucker discloses identifiers may be transmitted in a remote object invocation request to the appropriate remote node (FF 11). We find that transmission of the identifier within a remote object invocation request comprises transmission of the identifier from a first software component to a second software component. That is, we find that “transmitting the global causal identifier from the first software component to the second software component wherein the second software component executes on a separate thread and in a system remote from the first software component” (claim 1) reads on Tucker’s transmission of the identifier within a remote object invocation request. The Supreme Court has stated that “[t]he combination of familiar elements according to known methods is likely to be obvious when it does no more than yield predictable results.” KSR Int’l Co. v. Teleflex Inc., 550 U.S. 398, 416 (2007). Thus, we find no error in the Examiner’s finding that the combination of Kazi’s performance analysis tool that records start and end times of the method and a method identifier where the recording occurs before Appeal 2010-003476 Application 09/955,764 11 invocation of the remote software component, as disclosed in Delucia, produces recoding of the data before the remote process execution, which would be obvious (Ans. 6-7; FF 4-7 and 10). Further, we find no error in the Examiner’s finding the combination of Kazi’s performance analysis tool with the transmission of an identifier within a remote object invocation request to a remote (second) software component, produces transmission of an identifier from a first software component to a second software component which would be obvious (Ans. 7; FF 4-7 and 10). Accordingly, we find that Appellants have not shown that the Examiner erred in rejecting representative claim 1 under 35 U.S.C. § 103(a) over Kazi in view of Blumson, Delucia, and Tucker. Similarly, independent claims 29 and 36 having similar claim language and dependent claims 2-6, 9-11, 13-19, 21-28, 30-32, 35, and 37-42 depending from claims 1, 29, and 36 which have not been argued separately fall with representative claim 1. Claim 7 Appellants argue that “any log data contents being configured in the visualizer is configured after the operation of the software system in Kazi, and not during such an operation as claimed” (App. Br. 11-12). As noted supra, however, we find that Kazi and Blumson disclose runtime data that is configured during operation (FF 4 and 8). We therefore affirm the Examiner’s rejection of claim 7 under 35 U.S.C. § 103 for the same reasons expressed with respect to parent claim 1, supra. Claims 8, 12, and 43 Appellants argue that, since “claim 8 further recites that ‘a user is capable of changing said particular log data contents during said operation of Appeal 2010-003476 Application 09/955,764 12 said component-based software system” and Courant discloses that “user modification is possible prior to the operation of such software system, and not during such an operation as claimed,” the claims are allowable (App. Br. 12-13). The Examiner, however, finds that “Courant teaches using a customizable regular expression to limit the information” (Ans. 17). Courant discloses that a user may apply any pattern matching to a file such that, for example, the system only responds to files which begin with specified characters (FF 12). Although the Examiner finds that “Courant teaches using a customizable regular expression to limit the information” (Ans. 17, emphasis added), we find that the part of Courant cited by the Examiner does not teach or suggest “wherein a user is capable of changing said particular log data contents during said operation of said component-based software system by setting said regular expression” (claim 8, emphasis added) as required by the claim. Accordingly, we find that Appellants have shown that the Examiner erred in rejecting claim 8 under 35 U.S.C. § 103(a) over Kazi in view of Blumson, Delucia, Tucker, and Courant; and claims 12 and 43, depending from claims 1 and 36, which have been grouped therewith. Claims 20, 33, and 34 Appellants argue that claims 20, 33, and 34 are patentable over the cited prior art for the same reasons asserted with respect to claims 1 and 26 respectively (App. Br. 14). As noted supra, however, we find that the combination of Kazi, Blumson, Delucia, and Tucker, at least suggests all the features of claims 1 Appeal 2010-003476 Application 09/955,764 13 and 26. We therefore affirm the Examiner’s rejection of claim 20 under 35 U.S.C. § 103 for the same reasons expressed with respect to parent claim 1, supra, and affirm the Examiner’s rejection of claims 33 and 34 under 35 U.S.C. § 103 for the same reasons expressed with respect to parent claim 26, supra. V. CONCLUSION AND DECISION The Examiner’s rejection of claims 1-7, 9-11, and 13-42 under 35 U.S.C. § 103(a) is affirmed, and the Examiner’s rejection of claims 8, 12, and 43 under 35 U.S.C. § 103(a) is reversed. No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a)(1)(iv). AFFIRMED-IN-PART peb Copy with citationCopy as parenthetical citation