`
`____________
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`
`____________
`
`UNIFIED PATENTS, INC.
`SAP AMERICA INC.
`Petitioners
`v.
`CLOUDING IP, LLC
`Patent Owner
`____________
`Case IPR2013-000586
`Case IPR2014-00306
`Patent 6,738,799
`____________
`
`
`
`DECLARATION OF PRASANT MOHAPATRA, PH.D.
`
`
`
`
`
`Unified Patents et al. v. Clouding IP
`IPR2013-‐00586 IPR2014-‐00306
`CLOUDING Ex. 2009 Page 1
`
`
`
`
`
`
`
`
`
`I, PRASANT MOHAPATRA, Ph.D. declare:
`
`1.
`
` In 1987, I earned the B.S. degree in Electrical Engineering from the
`
`National Institute of Technology in Rourkela, India. In 1989, I earned a M.S.
`
`degree in Mathematics from The University of Rhode Island and in 1993, I
`
`earned a Ph.D. degree in Computer Engineering from The Pennsylvania State
`
`University.
`
`2.
`
` From 2009 to 2013, I was the Tim Bucher Family Endowed Chair,
`
`University of California, Davis, CA.
`
`3.
`
`From 2007 to 2013, I was the Chair of the Computer Science
`
`Department, University of California, Davis, CA.
`
`4.
`
`From 2003 to present I have been a professor at the Computer Science
`
`Department, University of California, Davis, CA.
`
`5.
`
`From 2013 to present, I am serving as the Interim Vice-Provost and the
`
`Chief Information Officer (CIO) of UC Davis.
`
`6.
`
`I am a fellow of the American Association for the Advancement of
`
`Science (AAAS) and Institution of Electrical and Electronics Engineers (IEEE).
`
`7.
`
`I have taught computer science classes at the undergraduate and graduate
`
`levels, as well as supervised research at the undergraduate, graduate and doctoral
`
`
`
`2
`
`
`
`
`
`
`
`levels. A copy of my curriculum vitae, which details my experience that is
`
`relevant to these proceedings, is included as Exhibit 2010.
`
`
`
`I. Materials and Information Provided To Me and Level of
`
`Ordinary Skill in the Art.
`
`8.
`
`In connection with the preparation of this declaration I have read and
`
`understood U.S. Patent 6,739,799 (the ‘799 Patent) as well as Unified Patent’s
`
`Petition for Inter Partes Review and the exhibits cited therein, including the
`
`Declaration of Dr. Hutchinson, the Patent Owner’s Preliminary Responses, the
`
`Patent Trial and Appeal Board’s Decision Instituting the Inter Partes Review
`
`proceeding, and the transcript of Dr. Hutchinson’s deposition, taken May 2,
`
`2014. I have also reviewed and agree with the rationale set forth in the Patent
`
`Owner’s Contingent Motion to Amend.
`
`9.
`
`I am advised that the Unified Patents IPR 2013-00586 has been joined
`
`with IPR2014-00306 filed by SAP America Inc. and understand that the SAP
`
`proceeding was instituted on the same grounds and references as the Unified
`
`Patents IPR. I further understand that SAP America is no longer relying on the
`
`declaration by Dr. Grimshaw in IPR2014-00306.
`
`10.
`
`
`
`
`
`3
`
`
`
`
`
`
`
`11.
`
`I am advised that “a person of ordinary skill in the art” is a hypothetical
`
`person to whom an expert in the relevant field could assign a routine task with
`
`reasonable confidence that the task would be successfully completed. At the
`
`time of the invention of the ‘799 Patent, it is my opinion that a person of
`
`ordinary skill in the art would have knowledge of techniques to synchronize
`
`files between two computers, which techniques involve exchanging only
`
`differences that exist between the subject files. For example the person of
`
`ordinary skill in the art would likely be aware of the rsync algorithm, developed
`
`by Trigdale and Mackerras in 1996. The rsync algorithm privided a mechanism
`
`for updating a file on one computer to be identical to a file on another
`
`computer. Andrew Trigdale and Paul Mackerras, “The rsync algorithm”, The
`
`Australian National University Joint Computer Science Technical Report
`
`Series, TR-CS-95-05 (June 1996) (Ex. 1015). To accommodate low-bandwidth
`
`communication links connecting the two computers, rsync identified portions
`
`of the file that were the same on each computer and exchanged only differences
`
`therebetween. Id. at p. 1. To identify the differences between the files, rsync
`
`requires a receiving computer to send a transmitting computer, representations
`
`of blocks of the version of the file stored by the receiving computer. The
`
`transmitting computer compares these representations to representations of
`
`
`
`
`
`4
`
`
`
`
`
`blocks of the file stored by the transmitting computer. Based on these
`
`comparisons, the transmitting computer sends the receiving computer those
`
`blocks of its file that did not have matching blocks in the receiving computer’s
`
`version of the file along with information for how to merge those blocks into
`
`the receiving computer’s version of the file. Id. at p. 2. For blocks where the
`
`transmitting computer did find a match in the receiving computer’s version of
`
`the file, the transmitting computer sends references to those blocks to the
`
`receiving computer. Id. The receiving computer uses its version of the file along
`
`with the references to matching blocks, raw missing blocks, and instructions for
`
`merging the raw missing blocks sent by the transmitting computer to updates
`
`its copy of the file. Id. at pp. 1-2. Based on my experience, I have an
`
`understanding of the capabilities of a person of ordinary skill in the relevant
`
`field and have supervised and directed many such persons over the course of my
`
`career. Further, I had those capabilities myself at the time the ‘799 Patent was
`
`filed.
`
`
`
`
`
`
`
`
`
`5
`
`
`
`
`
`
`
`II. Overview of U.S. Patent 6,738,799
`
`12. The ‘799 Patent describes systems and methods for generating update
`
`files that permit a computer to generate a current version of a file from a copy
`
`of an earlier version thereof. Ex. 1001 at Abstract; col. 3, ll. 45-49. To facilitate
`
`this process, files are segmented and each segment is represented by a signature.
`
`Id. at col. 8, ll. 7 et seq. Signatures are representations of variable length
`
`segments of a subject file, which representations serve to identify the segments
`
`from which they are determined. Id. at Fig. 4; col. 8, ll. 18-20, 29-54.
`
`Differences between a current version of a file and an earlier version thereof are
`
`determined using these signatures. See, e.g., Id. at 10:5-14. Based on these
`
`differences, an update file is constructed. Id. at col. 10:66 – 11:50. The update
`
`file includes instructions (e.g., copy, insert) for a recipient computer to
`
`construct the current version of the subject file from its earlier version thereof
`
`and data included in the update file. Id. and see Fig. 11 (reproduced here).
`
`Once created, the update file is provided to the recipient computer, for example
`
`via email. Id. at 11:51-52.
`
`13.
`
`Importantly, for purposes of the present proceedings, one of the
`
`instructions included in the update file is a “command . . . to copy an old
`
`segment of the [receiving] computer’s copy of the earlier version of the file into
`
`
`
`
`
`6
`
`
`
`
`
`the [receiving] computer’s copy of the current version of the file.” Id. at Claim
`
`1, 14:53-57; Claim 23, 16:61-65. Examples of
`
`such commands are illustrated in Fig. 11.
`
`Therefore, steps (b) in Claims 1, 12, 23, and 30 are
`
`properly understood as reciting the requirement of
`
`writing in the update, an instruction that causes
`
`the second computer to duplicate information or data from an old segment of
`
`the second computer’s copy of the earlier version of the file into the second
`
`computer’s copy of the current version of the file, wherein the old segment
`
`corresponds to the segment for which a match was detected in step (a).
`
`
`
`III. Analysis with Respect to Balcha.
`
`14. Claims 37 and 42 recite “determining whether the second computer has
`
`a latest version of a file . . . [and] generating an update[] if the second computer
`
`does not have a latest version of the file.” Ex 1001 at 18:32-37 and 18:56-19:7.
`
`In my opinion, Balcha fails to teach such features.
`
`
`
`7
`
`
`
`
`
`
`
`15. Balcha discloses sharing changes between two base files wherein a change
`
`to a first version of the base file indicates that a second version of the same base
`
`file is now not the same as the first version of the base file. Ex. 1003 at 4:52-67.
`
`As explained by Balcha with reference to Figure 1, provided above:
`
`
`
`Each of servers 22 and 24 maintain a copy of a base
`file 21, 27, respectively and are interconnected via a
`network 26. Base files 21, 27 should be
`identical to one another and thus changes
`made to one copy should eventually be
`reflected in the other copy. A base signature
`file, as described in more detail herein, is generated
`on one of the servers 22, 24 and copied to the other
`server. The base signature file is maintained on server
`22 as file 20, and maintained on server 24 as file 28.
`Either base file 21 or 27 can be modified at either
`server.
`
`
`
`8
`
`
`
`
`
`
`
`Upon detection of a modification to the file,
`the detecting server, for example server 22, uses the
`respective base signature file, for example, base
`signature file 20, to generate a new delta file, and
`communicates the delta file over network 26 to
`server 24. Server 24 then uses the delta file to update
`the base file 27, and recalculates the base signature
`file 28.
`
`Id. at 4:52-67, emphasis added.
`
`16. Thus, Balcha discloses detecting a modification to the file without regard
`
`to whether the modified file is, indeed, the latest version of the file. When a
`
`modification of base file 21 is detected by server 22, server 22 generates a new
`
`delta file and communicates that delta file to server 24, which then proceeds to
`
`modify base file 27 using the delta file. However, the detection of the
`
`modification of base file 21 is in no way related to, or dependent upon, a
`
`determination that base file 21 is the latest version of the base file. Instead,
`
`Balcha only discloses detecting whether a base file has been modified, regardless
`
`of when that modification may have occurred relative to other copies of the
`
`same base file.
`
`17. Consider, for example, situations in which base file 27 has been modified
`
`more recently than base file 21 and, as a consequence, base file 27 is the latest
`
`
`
`
`
`9
`
`
`
`
`
`version of the file. If a modification of base file 21 is detected, Balcha will
`
`perform the updating of base file 27 to be consistent with base file 21 even
`
`though base file 27 is the latest version of the file. In such a circumstance, the
`
`“updating” of Balcha will serve to inappropriately overwrite the modifications
`
`made to base file 27 and adversely modify the latest version of the base file (i.e.,
`
`base file 27) to an older version of the base file (i.e., base file 21). Such a
`
`circumstance is all the more likely in Balcha because “[b]ase files 21, 27 should
`
`be identical to one another and thus changes made to one copy should
`
`eventually be reflected in the other copy.” Ex. 1003 at 4:54-56 (emphasis
`
`added). The probability of an inappropriate file update occurring when using
`
`Balcha’s file synchronization approach may increase as the system scales. The
`
`method and computer readable program code of claims 37 and 42, respectively
`
`avoids problems such as the inappropriate file updating by determining
`
`whether the second computer has a latest version of a file and, in this way,
`
`establishes that the latest version of the file will not be overwritten by changes
`
`to a file that occurred previously to the changes of the latest version of the base
`
`file simply because the files are not the same (i.e., one of the files has been
`
`modified).
`
`
`
`10
`
`
`
`
`
`
`
`18.
`
`In my opinion, Balcha further fails to teach, “writing a command in the
`
`update for the second computer to copy an old segment of the second
`
`computer's copy of the earlier version of the file into the second computer's
`
`copy of the current version of the file.”
`
`19. A plain meaning reading of this requirement demands that a command to
`
`copy be written in the update that is used by the second computer to generate a
`
`copy of the current version of the file. As illustrated in Figure 3, reproduced
`
`here, Balcha, describes a
`
`scheme for reflecting the
`
`differences between two files
`
`(a base file and a revised file),
`
`within a so-called “delta file.”
`
`In particular, the delta file is
`
`created based on a
`
`comparison of a base
`
`signature file (which represents the base file), a revised signature file (which
`
`represents the revised file) and the revised file itself. Ex. 1003 at col. 7, l. 46 –
`
`col. 8, l. 6.
`
`
`
`11
`
`
`
`
`
`
`
`20. Conveniently, Balcha provides examples of a base file, a base signature
`
`file, a revised file, a revised signature file and a resulting delta file. One such
`
`example, taken from col. 13, ll. 50 et seq., is reproduced below.1
`
`
`As shown, the delta file incudes certain “primitives,” which can be used to
`
`generate a copy of the revised file from the delta file. Specifically, Balcha uses
`
`primitives for “insert,” “modify,” and “delete.” Id. at col. 3, ll. 55-56. The
`
`operation of these primitives is explained, with reference to the above example,
`
`at col. 14, ll. 5-19:2
`
`
`
`1 In this example, “the periods used to delineate certain characters are not part
`
`of the file itself, and are used merely to illustrate certain logical distinctions
`
`between groups of characters.” Ex. 1003 at col. 13, ll. 40-42.
`
`2 In this exposition, the “⌃” character indicates the position of a pointer in the
`
`base file at which the corresponding primitive is applied. Id. at col. 13, l. 65 –
`
`col. 14, l. 1.
`
`
`
`12
`
`
`
`
`
`
`
`
`As shown in this example, the delta file requires that the base file
`
`(ABCDE.FGHIJ.KLMNO.PQRST.UVWXY.Z) be first modified by inserting,
`
`at a position 5 characters from the initial pointer position, a 3-character string,
`
`“XYZ.” Next, beginning at the then-current pointer position, a 5-character
`
`string is deleted. Id., at 14:5-19. Thereafter, and beginning at a location 5
`
`characters from the then-current pointer position, a 6-character string,
`
`“PAABST” is inserted. Id. Finally, the pointer position is advanced 5 characters
`
`and a 5-charater string is deleted. Id. In this way, a new version of the old file is
`
`created wherein new data is added to the old version of the file via the “insert”
`
`primitive, undesired data is deleted from the old version of the file via the
`
`“delete” primitive, and data within the old version of the file is modified via the
`
`“modify” primitive. Id.
`
`21. Thus, in the Balcha process, data within the old version of the file that is
`
`not modified or deleted remains in the new version of the file with no need to
`
`copy that information from the old version of the file to the new version of the
`
`
`
`
`
`13
`
`
`
`
`
`file. Consequently, Balcha has no need for and does not write a copy
`
`“primitive” (or any other instruction) into the delta file to effect the copying of
`
`data from the old version of the file into the new version of the file. By avoiding
`
`the use of a copy command, Balcha necessarily reduces the number of bytes
`
`needed to convey information in the difference file. Predictably then, Balcha
`
`neither teaches nor suggests writing such a command or other instruction for
`
`duplication into the delta file.
`
`22.
`
`I disagree with Dr. Hutchinson’s conclusion that Balcha “effectively
`
`copies” over any bits from an old version of a file to a revised version of the file.
`
`Instead, the old file is converted to the revised file directly through execution of
`
`the insert and delete instructions included in the delta file. No copying (or
`
`effective copying) or other duplication of this kind is performed or required
`
`because the revised version of the file is itself directly produced from the old
`
`version of the file and the difference file and anything not deleted from, or
`
`modified within, the old version of the file remains in the revised version of the
`
`file. Ex. 1003 at 13:64 – 65.
`
`23. Miller (U.S. Patent 5,832,520) (Ex. 1004) describes a procedure for
`
`revising large computer files using “difference files” or DIFF files – i.e., files
`
`containing indications of the differences between the large computer files and a
`
`
`
`
`
`14
`
`
`
`
`
`preexisting computer file. Ex. 1004 at col. 1, ll. 10-15. An overview of that
`
`process is illustrated in Miller’s Figure 1, shown here.
`
`
`
`24. Miller’s DIFF file includes primitives for “copy,” “insert,” and
`
`“insert/copy” operations, which impart directives for handling stings that
`
`appear in new and old copies of the subject file. See, e.g., Ex. 1004 at Fig. 5A.
`
`Importantly, from Miller’s perspective, the DIFF file must indicate changes
`
`between the old file and the new file in a minimum number bytes so that the
`
`DIFF file is the smallest such file possible. Id. at col. 2, ll. 21-24, 31-33. Failing
`
`to use a file that was as small as possible would defeat Miller’s very objective.
`
`Accordingly, in any combination of Balcha and Miller, it would be natural for a
`
`
`
`
`
`15
`
`
`
`
`
`person of ordinary skill in the art to adopt the Balcha approach, and eliminate
`
`the need for a copy command. Doing so would be in line with the stated goals
`
`of both cited references and indeed one would imagine the goal of the
`
`hypothetical person of ordinary skill inasmuch as reducing the number of bytes
`
`required in the difference file would save on transmission costs. Cf. Ex. 1004 at
`
`col. 1, ll. 65-67 (noting that even compression schemes which reduce file sizes
`
`of up to 40% may still leave resulting files that represent substantial
`
`transmission costs for distributers of those files). There would be no logical
`
`rational for a skilled artisan to employ the opposite approach and add the
`
`“copy” primitive of Miller to the process of Balcha because execution of the
`
`“copy” primitive within the process of Balcha would require the coping of data
`
`into the updated file that was already included within the file, thereby causing
`
`redundant data to be unnecessarily and illogically added to the updated version
`
`of the file. Such redundancy would necessarily increase the memory and
`
`processing costs associated with the storage and processing of the revised file, a
`
`concept inapposite to both Balcha and Miller.
`
`25. With respect to the proposed combination of Balcha and Frievald, I note
`
`that claims 37 and 42 each recite “determining whether the second computer
`
`has a latest version of a file . . . [and] generating an update[] if the second
`
`
`
`
`
`16
`
`
`
`
`
`computer does not have a latest version of the file.” Ex 1001 at 18:32-37 and
`
`18:56-19:7. Freivald does not mention such features and, furthermore, is
`
`unconcerned with whether the client computer has any copy of a file. In the
`
`Freivald system, registered Web pages are checked periodically to see if they
`
`have changed since a last check. When changes are noted, a minder server so
`
`notifies the user by way of email. Ex. 1005. at col 5, ll. 24-29. In an enhanced
`
`version of the service, users are allowed to specify portions of interest of Web
`
`pages so that they receive notices only when those portions of interest have
`
`changed. Id. at col. 7, ll. 3-54. Thus, Freivald is unconcerned with whether or
`
`not a subscribed client has a latest version of a Web page (or any version at all
`
`for that matter), and sends notifications whenever qualifying changes in a Web
`
`page have been detected, regardless of whether the modifications reflect the
`
`latest version of the file or not.
`
`
`
`IV. Analysis with Respect to Williams.
`
`26. Williams, U.S. Patent 5,990,810 (Ex. 1006) describes a procedure for
`
`partitioning blocks of data into subblocks for ease of communicating and
`
`storing same. Ex 1006 at col. 1, ll. 7-10. In my opinion, however, Williams
`
`
`
`17
`
`
`
`
`
`
`
`does not teach a command to copy or a command to insert as recited in
`
`independent claims 1, 12, 23, and 30 and construed by the Board.
`
`27. According to Williams,
`
`To perform the backup, E1 compares the hash of Y
`
`(stored in S) against the hash of X to see if X has
`
`changed. If X hasn’t changed, there is no need to
`
`perform any further backup action. If X has
`
`changed, E1 partitions X into subblocks, and
`
`compares the hashes of these subblocks with the
`
`hashes in the shadow file S, so as to find all identical
`
`hashes. Identical hashes identify identical subblocks
`
`in Y that can be transmitted [to E2] by reference. E1
`
`then transmits the [incremental backup D] file as a
`
`mixture of raw subblocks and references to subblocks
`
`whose hashes appear in S and which are therefore
`
`known to appear as subblocks in Y.
`
`Ex. 1006, at 19:44-55. Then, “[t]o reconstruct X from Y and D [ ], E2
`
`partitions Y into subblocks [and] calculates the hashes of the subblocks . . . .
`
`
`
`18
`
`
`
`
`
`
`
`[E2] then processes the incremental backup information [D by] copying
`
`subblocks that were transmitted raw and looking up the references either in Y
`
`or in the part of X already reconstructed. Id. at 19:66-20:5.
`
`28. Thus, Williams teaches the construction of incremental backup
`
`information of X that includes raw subblocks, which represents data not
`
`included in the previously saved version of X (i.e., Y) and references to
`
`subblocks that are included in Y. Absent from this incremental backup
`
`information is any command to copy (or it equivalent) a segment of Y into X as
`
`reconstructed at E2. Instead, all that is included in the incremental backup
`
`information is a reference to a segment of Y to be retained, by E2, when
`
`reconstructing X. However, neither this reference, nor the incremental backup
`
`information, includes any command, or instruction, to copy or duplicate the
`
`related segment of Y when reconstructing X at E2. Williams is concerned with
`
`an incremental backup system in which Y is updated to become a copy of X.
`
`Ex. 1006 at 19:31-33. Therefore, any encoding in the D file would not be to
`
`“copy,” or perform the action of copying segments from an old version of Y to
`
`a new version of Y, but rather to modify the old version of Y so it becomes a
`
`replica of X. This would be consistent with the stated goal of Williams and
`
`
`
`19
`
`
`
`
`
`
`
`would not entail copying of segments of Y.3 As no such copying is needed,
`
`there is no need for an instruction to effect same to be written in the D file.
`
`29.
`
`I also note that Williams describes an incremental backup procedure in
`
`which a computer E1 backs up a file to computer E2 so that the version of a file
`
`Y stored on E2 is changed to match the version of file X stored on E1. Id. at
`
`19:29-33. Prior to initiating a backup procedure, computer E1 cannot be
`
`certain whether or not computer E2 stores a latest version of the subject file.
`
`Nor does Williams mandate such a situation. Indeed, as part of the backup file
`
`itself, computer E1 includes an MD5 digest of the old and new versions of the
`
`file. Id. This is to ensure, in part, that the backup is applied to the same version
`
`of the file for which the comparisons of hashes was made. Thus, Williams is
`
`both anticipating and accommodating situations in which computer E2 may
`
`
`
`store a different, but not necessarily a latest, version of a file than computer E1.
`
`3 Insofar as ephemeral copies of files or portions thereof may be duplicated in
`
`one or memories of a computer system during these operations, such
`
`duplication is not equivalent to a “command to copy” (or other instruction that
`
`causes the computer to duplicate information or data) that is written in the
`
`Williams D file. It is merely the mechanism by which a computer processor is
`
`required to operate on data.
`
`
`
`20
`
`
`
`
`
`
`
`30. With respect to a proposed combination of Williams and Miller,
`
`although Miller does teach the inclusion of a copy command in a DIFF file, Ex.
`
`1004 at col. 8, ll. 27-29, Miller stresses the importance of using the smallest
`
`DIFF file possible to reflect the changes between the old and new versions of
`
`the subject file. Id. at col. 2, ll. 31-33. Accordingly, one of ordinary skill in the
`
`art would recognize that Williams difference file (which uses only references to
`
`prior subblocks and not primitives) is in line with that goal. By avoiding the use
`
`of a copy command, Williams necessarily reduces the number of bytes needed
`
`to convey information in the difference file. Hence, when combining the
`
`teachings of Williams and Miller it would be natural for a person of ordinary
`
`skill in the art to adopt the Williams approach and eliminate copy commands.
`
`Doing so would reduce the number of bytes required in the difference file and
`
`save on transmission costs. Cf. Ex. 1004 at col. 1, ll. 65-67 (noting that even
`
`compression schemes which reduce file sizes of up to 40% may still leave
`
`resulting files that represent substantial transmission costs for distributers of
`
`those files).
`
`
`
`
`
`
`
`21
`
`
`
`
`
`
`
`V. Patent Owner’s Proposed Claim 47.
`
`31.
`
`I understand the Patent Owner has proposed a substitute claim 47 for
`
`original claim 42 of the ’799 Patent. Proposed claim 47 reads:
`
`47. (Proposed Substitute for Original Claim 42) A computer
`readable storage medium, comprising computer readable
`program code embodied on said computer readable storage
`medium, said computer readable program code for
`programming a first computer to provide updates for
`transmission to a second computer that permits the second
`computer to obtain most recent versions of files, the computer
`readable program code causing the first computer to perform
`the following steps: (a) determining whether the second
`computer has a latest version of a file, wherein said
`determining is performed by the first computer without
`interaction with the second computer by comparing
`representations of segments of the latest version of the file with
`representations of segments of an earlier version of the file in
`which ends of each of the segments of the earlier version of the
`file are defined by segment delimiters that are statistically
`determined to be optimal division points for the segments; (b)
`generating an update, if the second computer does not have a
`latest version of the file, wherein said generating is performed
`by the first computer without interaction with the second
`
`22
`
`
`
`
`
`
`
`
`
`computer; and (c) transmitting the update from the first
`computer to the second computer.
`
`32.
`
`In my opinion, a person of ordinary skill in the art would have
`
`understood the inventor to be in possession of the invention recited in claim 47
`
`at the time of filing of the original disclosure because the inventor specifically
`
`described the embodiment of the invention recited in proposed claim 47
`
`therein:
`
`Symantec's Delta Technology according to the present invention
`has been optimized to detect and process changes quickly and
`efficiently, while concurrently maintaining the integrity of the
`file. . . . The server reads the file from the network and determines
`the most efficient “delimiter” or “dividing point” to break the file
`into segments as shown in Figure 3.
`
`. . .
`
`Segments A1 through A6 represent variable length portions of
`the earlier version of the subscription file. The ends of each of
`the segments (A1 through A6) are determined by segment
`delimiters 301 through 306. The segment delimiters 301 through
`306 are specific portions of data, perhaps bytes, that are
`statistically determined to be an optimal, or at least acceptable,
`division point for the variable length segments A1 through A6 for
`the earlier version of the subscription file.
`
`23
`
`
`
`
`
`
`
`
`
`. . .
`
`When the server 203 polls the subscription file at a future time
`and detects a change, a second “snapshot” is generated using
`the same process as the first snapshot as shown in Figure 7. . . .
`The Delta Engine according to the present invention then
`compares the two sets of segments to determine which
`segments have been altered, which ones are new and which
`ones have remained unchanged, as illustrated in Figure 8.
`
`. . .
`
`According to the present invention, the new or changed
`segments B2, B4 and B5 are extracted from the current version
`of the subscription file stored on the network drive 202 by the
`server computer 203, and are packaged in an update file 801
`for transmission to the client computer 201 shown in FIG. 2
`so that the client computer 201 can build a copy of the current
`version of the subscription file from its copy of the earlier
`version of the subscription file.
`
`Ex. 2007 at p. 12, l. 14 – p. 15, l. 23.
`
`33. Proposed claim 47 recites,
`
`determining whether the second computer has a latest
`version of a file . . . ; and
`
`
`
`24
`
`
`
`
`
`
`
`generating an update, if the second computer does not have
`a latest version of the file,
`
`In my opinion, the plain meaning of this limitation, from the standpoint of the
`
`person of ordinary skill in the art, is that the second computer must currently
`
`possess some version of the file. By articulating a process that requires a first
`
`computer to determine whether a second computer has a copy of a file (i.e., a
`
`latest version of that file), claim 47 necessarily requires that the second
`
`computer must already possess some version of the file. Indeed, inherent in the
`
`invention of the ‘799 patent is the recognition that various versions of files are
`
`stored on various client computers and what is being proposed is a procedure
`
`for synchronizing those different versions. Such synchronization makes sense
`
`only in a context where the different versions of the files exist on the different
`
`computers. Absent such different versions, there is no need for the
`
`synchronization in the first place.
`
`34. Proposed claim 47 also recites, “an update” that that is transmitted from
`
`the first computer to the second computer and that permits the second
`
`computer to obtain a most recent version of a file. According to the ‘799
`
`Patent, an update is something that is to be applied to an existing copy of a file
`
`at the second computer that allows the second computer to obtain a newer
`
`version of that file. Ex. 1001 at col. 10, ll. 15-22. To the person of ordinary
`
`
`
`
`
`25
`
`
`
`
`
`skill in the art, then, the plain meaning of “update” is an item that allows a
`
`computer to obtain a current version of a file from its existing copy of that file.
`
`35. Proposed claim 47 requires that “determining whether the second
`
`computer has a latest version of a file . . . ;” and “generating an update, if the
`
`second computer does not have a latest version of the file,” be performed
`
`“without interaction.” No such constraint is imposed on “transmitting the
`
`update.” In accordance with the plain language of the claim then, a person of
`
`ordinary skill in the art would understand that the constraint of “without
`
`interaction” limits the interaction between first and second computer systems
`
`only where specifically recited in the claim and not necessarily at other times
`
`when the two computers are operating.
`
`36. A person of ordinary skill in the art would further understand claim 47
`
`to require that the first computer determines whether the second computer has
`
`a latest version of a file by comparing representations of segments of the latest
`
`version of the file with representations of segments of an earlier version of the
`
`file. In this context, a segment would be understood as a portion of a file. Ex.
`
`1001 at col. 7, l. 66 – col. 8, l. 6. More specifically, segments would be
`
`understood as variable length portions of a file, defined by segment delimiters.
`
`Id. at col. 8, ll. 10-14. This is consistent with the plain meaning of the term
`
`
`
`26
`
`
`
`
`
`
`
`segment, as understood by a person of ordinary skill in the art, namely, a part
`
`into which a file may be divided.
`
`37. A person of ordinary skill in the art would understand also claim 47 to
`
`require that ends of each of the segments of the earlier version of the file be
`
`defined by segment delimiters that are statistically determined to be optimal
`
`division points for the segments. That is, optimal locations for the file seg