throbber
IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`PATENT TRIAL & APPEAL BOARD
`
`Peter Dickinson
`6,738,799
`May 18, 2004
`10/452,156
`June 2, 2003
`Methods and Apparatuses for File Synchronization and
`Updating Using a Signature List
`
`DECLARATION OF DR. ANDREW GRIMSHAW, PH.D.
`
`
`
`In re Patent of:
`U.S. Patent No.:
`Issue Date:
`Appl. No.:
`Filing Date:
`Title:
`
`I, Dr. Andrew Grimshaw, Ph.D., declare as follows:
`
`(1.)
`
`I am currently a Professor of Computer Science at the University of Virginia’s
`
`School of Engineering and Applied Science and Chief Architect for the NCSA-led eXtrem
`
`Science and Engineering Discovery Environment (XSEDE) project. XSEDE is the cornerstone
`
`of the National Science Foundation’s cyber-infrastructure program for science and engineering
`
`in the United States.
`
`(2.)
`
`For more than 30 years, I have studied, designed, and worked in the field of
`
`computer science and engineering. My experience includes more than 25 years of teaching and
`
`research, with research interests in distributed systems including client-server and peer-2-peer
`
`interaction, grid computing, high-performance parallel computing, compilers for parallel
`
`systems, and operating systems, just to name a few.
`
`(3.)
`
`I received a Bachelor of Arts degree in Political Science and Economics from the
`
`University of California, San Diego in 1981, a Master of Science degree in Computer Science
`
`from the University of Illinois at Urbana-Champaign in 1986, and a Doctor of Philosophy degree
`
`in Computer Science from the University of Illinois at Urbana-Champaign in 1988.
`
`
`
`SAP Exhibit 1009, Page 1 of 36
`
`

`
`
`
`(4.) Over the last three decades, I have architected, developed, and released to
`
`customers five large distributed systems: two in industry (Open Access at SPI and the Avaki
`
`Data Grid at Avaki), two in academia (Mentat and Gensis II), and one that spanned both
`
`environments (Legion).
`
`(5.)
`
`In 1999 I co-founded Avaki Corporation, which offered enterprise level grid
`
`computing software solutions. I served as Avaki’s Chairman and Chief Technical Officer until
`
`2005 when Avaki was acquired by Sybase.
`
`(6.)
`
`I am a member of the Global Grid Forum (GGF) Steering Committing and the
`
`Architecture Area Director of the GGF. I have also served on the National Partnership for
`
`Advanced Computational Infrastructure (NPACI) Executive Committee, the DoD MSRC
`
`Programming Environments and Training (PET) Executive Committee, the Center of Excellence
`
`in Space Data and Information Sciences (CESDIS) Science Council, the National Research
`
`Counsel (NRC) Review Panel for Information Technology, and the Board on Assessment of
`
`National Institute of Standards and Technology (NIST) Programs.
`
`(7.)
`
`I have served on the Editorship and Program Committees for over 35 scientific
`
`conferences and symposiums covering the fields of distributed computing, parallel computing,
`
`grid-based computing, and supercomputing. I have also served on over 20 professional panels
`
`and working groups in the same fields for the National Science Foundation (NSF), National
`
`Aeronautics and Space Administration (NASA), and the NRC, among others.
`
`(8.)
`
`I have presented as a panelist in over 30 conferences throughout the United States
`
`and across the globe regarding grid computing, parallel computing, and distributed computing.
`
`(9.)
`
`I am the author or co-author of over 50 publications and book chapters in the field
`
`of distributed computing, and over 65 articles from conference proceedings and standards
`
`
`
`2
`
`SAP Exhibit 1009, Page 2 of 36
`
`

`
`
`
`documents. Many of these publications describe distributed computing systems, some of which
`
`are directed specifically to client-server interaction and replication. These publications highlight
`
`my familiarity with client-server file synchronization. Below is a list of my publications that are
`
`particularly relevant to the above topics:
`
` Nguyen-Tuong and A.S. Grimshaw, “Using Reflection for Incorporating Fault-
`Tolerance Techniques into Distributed Applications,” Parallel Processing Letters,
`vol. 9, No. 2 (1999), 291-301.
`
` Michael J. Lewis, Adam J. Ferrari, Marty A. Humphrey, John F. Karpovich, Mark M.
`Morgan, Anand Natrajan, Anh Nguyen-Tuong, Glenn S. Wasson and Andrew S.
`Grimshaw, “Support for Extensibility and Site Autonomy in the Legion Grid System
`Object Model” Journal of Parallel and Distributed Computing, Volume 63, pp. 525-
`38, 2003.
`
` A.S. Grimshaw, A. Natrajan, “Legion: Lessons Learned Building a Grid Operating
`System”, Proceedings of the IEEE, vol. 93, number 3, March, 2005, pp. 589-603.
`
` S. Grimshaw, Mark Morgan, Karolina Sarnowska, “WS-Naming: Location
`Migration, Replication, and Failure Transparency Support for Web Services,”
`Concurrency and Computation: Practice and Experience, vol. 21, issue 8, pp. 1013-
`1028.
`
` Sal Valente and Andrew Grimshaw, Replicated Grid Resources, Grid 2011: 12th
`IEEE/ACM International Conference on Grid Computing, September, 2011, Lyon,
`France.
`
` K. Sarnowska, A. Grimshaw, E. Laure. “Using Standards-based Interfaces to Share
`Data across Grid Infrastructures,” 38th International Conference on Parallel
`Processing (ICPP09), Page(s):254 – 260, Vienna, AU, Sept. 22-25, 2009.
`
` Sosa, C. and A.S. Grimshaw, Bringing the Grid home, in Proceedings of the 2008 9th
`IEEE/ACM International Conference on Grid Computing. 2008, IEEE Computer
`Society.
`
` H. Huang, and A. S. Grimshaw, “The Cost of Transparency: Grid-Based File Access
`on the Avaki Data Grid,” International Symposium on Parallel and Distributed
`Processing and Applications 2006, pp. 642-659, LNCS 4330, December 3-6 2006,
`Sorrento, Italy.
`
` White, M. Walker, M. Humphrey, and A. Grimshaw “LegionFS: A Secure and
`Scalable File System Supporting Cross-Domain High-Performance Applications”,
`Proceedings SC 01, Denver, CO.
`www.sc2001.org/papers/pap.pap324.pdf
`
`
`
`3
`
`SAP Exhibit 1009, Page 3 of 36
`
`

`
`
`
` J.F. Karpovich, A.S. Grimshaw, and J. C. French, “Extensible File Systems (ELFS):
`An Object-Oriented Approach to High Performance File I/O,” Proceedings of
`OOPSLA ‘94, Portland, OR, Oct 1994: 191-204.
`
` A.S. Grimshaw and E.C. Loyot Jr., “ELFS: Object- Oriented Extensible File
`Systems,” Proceedings 1991 Parallel and Distributed Information Systems
`Conference, Miami, FL, Dec 1991: 510-513.
`
` A.S. Grimshaw and J. Prem, “High Performance Parallel File Objects,’’ Proceedings
`of the Sixth Distributed Memory Computing Conference, Portland, OR, April 1991:
`720-723.
`
`(10.) A copy of my curriculum vitae, which describes in further detail my
`
`qualifications, responsibilities, employment history, honors, awards, professional associations,
`
`invited presentations, and publications is attached to this declaration as Appendix A-1.
`
`(11.)
`
`I have reviewed United States Patent No. 6,739,7991 (“the ‘799 patent”) to Peter
`
`Dickinson as well as the patents and applications referenced in the section of the ‘799 patent
`
`entitled “Related U.S. Application Data.” I have also reviewed the publications cited in the
`
`footnotes of this declaration and referenced in the inter partes review petition submitted
`
`herewith. Additionally, I have reviewed the petitions and related documents in IPR2012-00073,
`
`IPR2013-00261 and IPR2013-00586. I note that I maintain my previous opinions provided in
`
`IPR2012-00073 and IPR2013-00261, and agree with the Petitioners’ other experts in those
`
`proceedings and share many of the same opinions below. Because my independent analysis of
`
`the claims and prior art led to the same conclusions as the previous experts, I have incorporated
`
`many of their arguments and characterizations below as my own.
`
`STATE OF THE ART AS OF 1999
`
`(12.) From the 1970s until the present day, a substantial body of research has reported
`
`on the advent and subsequent advancement in distributed computing systems. In its simplest
`
`
`1 Dickinson, P., “Methods and Apparatuses for File Synchronization and Updating Using a
`Signature List.” U.S. Patent No. 6,738,799, filed June 2, 2003, claiming priority to May 3, 1999.
`
`
`
`4
`
`SAP Exhibit 1009, Page 4 of 36
`
`

`
`
`
`form, a distributed system is a collection of stand-alone computing machines (servers, client-
`
`PCs, etc.) that are connected through a network, such as the internet or a corporate intranet. One
`
`area of distributed system research which is of particular relevance to the ‘799 patent is
`
`commonly referred to as event-based notification.
`
`(13.) Generalized in the 1990s, event-based notification systems utilized a
`
`publish/subscribe mechanism to push notifications from a publisher to a subscriber regarding a
`
`specified event. In a publish/subscribe system, clients subscribe to events in which they are
`
`interested and, when that event occurs, the publisher (a server) notifies the subscribers with a
`
`notification message2. The notification message lets subscribers know that the event occurred
`
`and may also contain arbitrary data, such as a document of interest that triggered the event
`
`notification.3 For instance, by 1995, Stanford University had developed the SIFT system which
`
`automatically disseminated text documents (specifically, news articles) that matched the profile
`
`of a subscribed client.4 By 1996, the publish/subscribe push methodology was in widespread use
`
`and being used to automatically deliver web content (such as news headlines, weather forecasts,
`
`etc.) to subscribed clients.5 The methodology was also being used during this time period to
`
`transparently deliver software updates to subscribed clients.
`
`(14.) Developing in parallel to these advancements was a body of research regarding
`
`efficient mechanisms for synchronizing copies of files. The concept of constructing delta files
`
`2 Franklin, M. et al., “A Framework for Scalable Dissemination-Based System,” Proceedings of
`the 12th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and
`Applications, 94-105, 96-97 (1997). (See A-3).
`3 Id. at 101-102, § 4.3.
`4 Id.; see also Yan, T.W., et al., “SIFT – A Tool for Wide-Area Information Dissemination,”
`Proceedings of the USENIX 1995 Technical Conference, 176-186 (1995). (See A-4).
`5 Franklin, M., et al., “Data In Your Face:” Push Technology in Perspective,” SIGMOD ‘98
`Proceedings of the 1998 ACM SIGMOD International Conference on Management of Data, 516-
`519, 516 (June 1-4, 1998). (See A-5).
`
`
`
`5
`
`SAP Exhibit 1009, Page 5 of 36
`
`

`
`
`
`was introduced into Unix in 1974 via the diff command that creates a set of differences between
`
`two text files (later versions supported binary files).6 The output of diff could then be used with
`
`the Unix patch command to update an old file by applying the generated differences to the out-of-
`
`date file.
`
`(15.) The Unix diff tool was often used to construct delta files for synchronizing files
`
`saved at multiple locations across a network. For example, a master copy of a file may be
`
`located at a server (“computer A”), and a replica of the file may be saved at a client PC
`
`(“computer B”). When the master copy is updated, it does not make sense to transfer the entire
`
`new file to computer B. Rather, to conserve network resources, an efficient system would only
`
`transfer the differences between the new file and the old file to computer B.
`
`(16.) To address the efficiency issue, the “rsync algorithm” was developed by Andrew
`
`Tridgell and Paul Mackerras in 1996.7 The heart of the algorithm is the means to identify parts
`
`of the old and new files that are identical to one another and only transmit raw data for those
`
`parts of the new file that did not previously exist in the old file. Following the scenario
`
`described above involving computers A and B, the rsync protocol operates as follows. Computer
`
`A and computer B at some point each have a copy of the same version of a file. At some later
`
`point, the file is updated on computer A, and the system must then update the same file on
`
`computer B. First, computer B is instructed to split its copy of the old file into a series of
`
`
`6 See, e.g., Hunt, J.W., et al., “An algorithm for differential file comparison,” Bell Laboratories
`Computing Science Technical Report #41, Abstract (July 1976) (describing the diff algorithm
`which “reports differences between two files, expressed as a minimal list of line changes to bring
`either file into agreement with the other”). (See A-6).
`7 Tridgell, A., et al., “The rsync algorithm,” The Australian National University Joint Computer
`Science Technical Report Series, TR-CS-95-05, 1-6 (June 1996). (See A-7).
`
`
`
`6
`
`SAP Exhibit 1009, Page 6 of 36
`
`

`
`
`
`segments and to generate a table of checksums and location offsets for each segment.8
`
`Checksums are simply unique identifiers (or signatures) generated for each segment of the file
`
`and used to compare segments of data to determine if the segment has changed. A change in the
`
`checksum related to a specific segment of data (otherwise known as a “signature mis-match”)
`
`indicates that the segment has changed in some way between file versions. Next, computer B
`
`transmits the generated checksums and offsets relating to computer B’s version of the file to
`
`computer A, which computer A then uses to search for any segment in the new file that matches
`
`the checksum for a segment in the old file.9 Once the comparison process is complete, computer
`
`A generates an update file that is a sequence of copy or insert commands.10 A copy command
`
`refers to a segment that existed in the old file and an insert command comprises new data for
`
`which there was no corresponding segment in the old version of the file. Lastly, computer A
`
`sends the update file to computer B, which allows computer B to generate a copy of the new file
`
`using the transmitted update file and its copy of the old file.11 Rsync rapidly became part of the
`
`Unix/Linux culture and was widely used in the computer science field.
`
`(17.) Further, by February 1999 at the latest, Tridgell had recognized rsync’s
`
`applicability to incremental backup systems.12 In this scenario, the entire rsync procedure used to
`
`generate an update file is carried out by a single computer, without the need for a second
`
`
`8 Id. at 2.
`9 Id.
`10 Id.
`11 Id.
`12 Tridgell, A., “Efficient Algorithms for Sorting and Synchronization,” Doctoral Dissertation
`Presented at the Australian National University, 92 (Feb. 1999). (See A-8).
`
`
`
`7
`
`SAP Exhibit 1009, Page 7 of 36
`
`

`
`
`
`computer to initially send checksums for a reference file, as discussed above.13 Rather, the
`
`backup system stores the signature list associated with the last transmitted backup and compares
`
`this list to the current version of the file to generate a new delta file, which corresponds to all file
`
`changes carried out since the last backup procedure.14 In this manner, the backup system
`
`operates as a subscription server, maintaining a list of all updates transmitted to a backup
`
`medium and initiating the rsync algorithm after a given file has been updated since a previous
`
`transmission.
`
`(18.) An earlier patent to Cane et al. (“Cane”)15, describes an incremental backup system
`
`as envisioned by Tridgell. In Cane, a “changed block file” is transmitted from a first computer to a
`
`backup system (such as a tape drive) and includes raw data only for those segments of the file which
`
`have been added or modified since a previous backup procedure.16 Changed file segments are
`
`identified by comparing a signature list for the current version of the file with a signature list
`
`representative of the file prior to the last backup procedure.17 The “changed block file” can later
`
`be used to create a copy of the most current version of the file by replacing all blocks of data in
`
`the original file for which there is a corresponding block, as identified by location offset
`
`information, in the changed block file.18
`
`
`13 Id. at 92-93 (stating “that the backup system does not need to read the old file from tape [or a
`second computer] in order to compute the differences”).
`14 Id.
`15 Cane, D., et al., “High Performance Backup via Selective File Saving Which Can Perform
`Incremental Backups and Exclude Files and Uses a Changed Block Signature List,” U.S. Patent
`No. 5,765,173, filed January 11, 1996 and issued June 9, 1998. (See A-9).
`16 Id. at 1:50-56.
`17 Id. at 4:7-17.
`18 Id. at 4:40-57.
`
`
`
`8
`
`SAP Exhibit 1009, Page 8 of 36
`
`

`
`
`
`(19.) The “final frontier” for the push methodology (at least according to the patentee)
`
`was “electronic document delivery.19” Electronic document delivery simply entails generating
`
`and transmitting a difference-based update file “that permits the client computer to generate a
`
`copy of a current version of a subscription file from a copy of an earlier version of the
`
`subscription file.20” As shown by the discussion of relevant patents and articles below, the
`
`technique proposed by the patentee represents nothing more than a straightforward document
`
`push implementation of the systems described by Tridgell and Cane, which was pursued and
`
`accomplished by many before the Patent Owner.
`
`THE ‘799 PATENT
`
`(20.) The ‘799 patent describes a method for synchronizing files between a server and
`
`client computer using a publish/subscribe push methodology. The patent describes a “mobile
`
`update server” that tracks files for changes and, when a change is detected to a monitored file,
`
`the server pushes an update via e-mail to all interested clients.21 Interested clients are those that
`
`the server has determined do not have the latest version of the monitored file. The update pushed
`
`from the server to the client is a delta or update file, which contains copy commands for blocks
`
`of the file that have not changed and raw data for those portions of the file that have been
`
`modified or created since the last synchronization between server and client.22 The client uses
`
`the delta file, along with the previous version of the monitored file saved at the client, to
`
`construct a copy of the new version of the file.23
`
`
`19 ‘799 patent at 2:56-63. (Ex. 1001)
`20 Id. at 3:47-49.
`21 Id. at 7:50-60.
`22 Id. at 3:58 - 4:22.
`23 Id. at 3:45-49.
`
`
`
`9
`
`SAP Exhibit 1009, Page 9 of 36
`
`

`
`
`
`(21.) The update file is generated using a standard differencing algorithm that compares
`
`a signature list for the most current version of the monitored file with an old signature list
`
`corresponding to the version of the file last transmitted to the client computer.24 The signature list
`
`is nothing more than a listing of unique identifiers, generated using known hashing or signature
`
`algorithm techniques25, which correspond to each segment of the file. The file is broken into n
`
`number of segments to promote efficient file comparison. For example, if a 50 page document
`
`was only broken into 5 segments, then a change to one paragraph on the second page of the
`
`document would require 1/5 of the document to be transmitted as raw data in the update file.
`
`However, if that same document was broken into 100 or 1,000 segments, the granularity of the
`
`comparison is substantially finer and requires substantially less raw data to be transmitted in the
`
`update.
`
`Scientific Principles Underlying the ‘799 Patent
`
`(22.) As shown by the Balcha (Ex. 1003), Miller (Ex. 1004), and Williams (Ex. 1006)
`
`references discussed below and in the accompanying petition, there was nothing novel or unique
`
`about generating an update file (also referred to in the prior art as a “delta,” “diff,” or “difference
`
`file”) by 1999. In fact, the tools for building an update file would have been well-known and
`
`easily implemented by any computer scientist with an understanding of file systems and
`
`distributed computing. When designing a system to generate an update file, a skilled artisan, as a
`
`matter of design choice, would have employed one of two basic design methodologies – either a
`
`discard-by-default process (with a “copy” command) or a retain-by-default process (with a
`
`“delete” command). As described below, each methodology achieves the exact same result and,
`
`24 Id. at 11:3-8.
`25 Id. at 8:18-28.
`
`
`
`10
`
`SAP Exhibit 1009, Page 10 of 36
`
`

`
`
`
`based upon the known duality between the methodologies, are indistinguishably different from
`
`one another.
`
`(23.)
`
`In describing the discard-by-default and retain-by-default methodologies below, I
`
`refer to Fig. 9 of the ‘799 patent for ease of explanation and illustration. However, I must note
`
`that this figure discloses nothing new to a person of skill in the art and simply illustrates the prior
`
`art process for creating an update file. For example (and as will be discussed later) Fig. 18 of
`
`Williams illustrates the exact procedure described in Fig. 9 of the ‘799 patent.
`
`
`
`
`
`‘799 Patent Fig. 9
`
`Williams Fig. 18
`
`(24.) To efficiently create a new version of a file (e.g., “903” in Fig. 9 of the ‘799
`
`patent) given that the content of a previous version of the file (e.g., “901” in Fig. 9 of the ‘799
`
`patent) is available, there are fundamentally three types of content that must be identified: (i) new
`
`(or “changed”) chunks of data that are not in the previous version of the file (e.g., segments B2,
`
`B4, and B5 in “902” in Fig. 9 of the ‘799 patent), (ii) chunks of data from the previous version of
`
`the file that are to be retained (e.g., segments A1, A3, A5, and A6 in “901” in Fig. 9 of the ‘799
`
`patent), and (iii) chunks of data from the previous version of the file that are to be discarded
`
`(e.g., segments A2 and A4 in “901” in Fig. 9 of the ‘799 patent). The new file (“903”) is created
`
`
`
`11
`
`SAP Exhibit 1009, Page 11 of 36
`
`

`
`
`
`by stitching together these new and retained chunks in the appropriate order, while skipping over
`
`the discarded chunks.
`
`(25.) Regarding the content of a delta/update file that is needed to capture how the new
`
`version of the file is to be created from the old version, the handling of new chunks (e.g.,
`
`segments B2, B4, and B5 in “902” in Fig. 9) is fairly straightforward: since this data does not
`
`already exist in the previous version of the file (e.g., in “901” in Fig. 9), the full content of these
`
`new chunks must be included in the update file and inserted at the appropriate places in the new
`
`version of the file. Hence an “insert” command (for handling these new chunks) is common to
`
`each of the ‘799, Balcha (see, e.g., Ex. 1003 at 3:54-58), Miller (see, e.g., Ex. 1004 at 5:56-60),
`
`and Williams (see, e.g., Ex. 1006 at 19:66 - 20:5; Fig. 18) patents.
`
`(26.) Regarding the chunks of data from the earlier version of the file that are to be
`
`retained and discarded, one possibility would be for the delta/update file to explicitly indicate for
`
`each chunk in the earlier version of the file whether it should be retained or discarded. In that
`
`case, the delta/update file would contain the following three commands: “insert” (for new
`
`segments, as discussed already), “copy” (i.e., retain a given chunk from the earlier file – e.g.,
`
`segments A1, A3, A5, and A6 in “901” in Fig. 9 of the ‘799 patent), and “delete” (i.e., discard a
`
`given chunk from the earlier file - e.g., segments A2 and A4 in “901” in Fig. 9 of the ‘799
`
`patent). However, one skilled in the art would quickly realize that a design with all three of these
`
`commands is overly pedantic (and inefficient) because it is not necessary to explicitly indicate
`
`both the chunks to retain and discard: explicitly specifying either one of these sets (i.e., all
`
`chunks to retain or all chunks to discard) will implicitly identify the other set. In other words,
`
`one can have either a retain-by-default policy where only the chunks to be discarded are
`
`specified (via a “delete” command) and all other chunks will be implicitly retained, or a discard-
`
`
`
`12
`
`SAP Exhibit 1009, Page 12 of 36
`
`

`
`
`
`by-default policy where only the chunks to be retained must be specified (via a “copy”
`
`command) and all other chunks will be implicitly discarded. A person skilled in the art would
`
`have realized that the choice between either a retain-by-default or a discard-by-default policy is a
`
`simple engineering design choice.
`
`(27.) Accordingly, we observe both design choices in practice. The ‘799, Miller, and
`
`Williams patents chose a discard-by-default policy (where items to be retained are explicitly
`
`identified in the delta/update file), and the Balcha patent chose a retain-by-default policy (where
`
`items to be discarded are explicitly identified). In fact, as will be described in more detail below,
`
`the retain-by-default policy is explicitly shown in the Balcha patent in the definitions of the
`
`insertion, deletion, and modification primitives (Ex. 1003 at col. 7, lines 7-14), which each begin
`
`with “S[l, i]+”, designating that the next “i” bytes of the old file (i.e., stream “S”) are to be
`
`copied to the new file (i.e., stream “S*”) if parameter “i” in the primitive is greater than zero.
`
`CLAIM INTERPRETATION
`
`(28.)
`
`In proceedings before the USPTO, I understand that the claims of an unexpired
`
`patent are to be given their broadest reasonable interpretation in view of the specification from
`
`the perspective of one skilled in the field. I have been informed that the ‘799 patent has not
`
`expired. In comparing the claims of the ‘799 patent to the known prior art, I have carefully
`
`considered the ‘799 patent, and the ‘799 patent file history based upon my experience and
`
`knowledge in the relevant field. In my opinion, the claim terms of the ‘799 patent are used in
`
`their ordinary and customary sense as one skilled in the relevant field would understand them.
`
`(29.)
`
`In addition, it is my understanding that the Patent Office provided definitions for
`
`certain claim limitations as part of its Decision Instituting Inter Partes Review with respect to
`
`the first petition filed by Oracle against the ‘799 patent. (See Ex. 1008 at 7-17). Thus, in
`
`
`
`13
`
`SAP Exhibit 1009, Page 13 of 36
`
`

`
`
`
`conducting my analysis, I have utilized the following claim constructions, as set forth by the
`
`Board.
`
`Signature List = a collection (e.g., table) of representations of variable length
`segments of a subject file, which representations serve to identify the segments
`from which they are determined (e.g., a table of hashes).
`
`Update = information for updating a file or an up-to-date version of a file.
`
`Command to Copy = an instruction that causes the computer to duplicate
`information or data.
`
`Command to Insert = an instruction that causes the computer to put or introduce
`certain information or data into another file.
`
`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 a
`file = this term does not require that the second computer have a latest version of
`the file prior to transmitting the update from the first computer to the second
`computer.
`
`Without Interaction = this term only limits the interaction between first and
`second computers as specifically recited in the claims.
`
`The Preambles – I have considered the preambles as being limitations in
`conducting my analysis.
`
`DISCUSSION OF RELEVANT PRIOR ART
`
`(30.) As an initial matter, the Petition challenges claims 1, 5-10, 12, 16-21, 23, 24, 30,
`
`31, 37, and 42. I note that claims 1, 5-10, 23, 24, and 37 are method claims and claims 12, 16-
`
`21, 30, 31, and 42 are computer readable storage claims, which are identical to the method
`
`claims except for the recitation of “computer readable storage medium” and “computer readable
`
`program code” in the claim preambles. Below, I discuss the Williams, Miller, Balcha and
`
`Freivald patents and discuss how each of these patents either individually or in various
`
`combinations discloses the methods of the method claims. The patents disclose those methods
`
`through computers utilizing computer readable program code residing in computer readable
`
`
`
`14
`
`SAP Exhibit 1009, Page 14 of 36
`
`

`
`
`
`storage mediums—such as memory, secondary storage, and the like. This would be readily
`
`apparent to one of ordinary skill in the art.
`
`The Combination of Balcha and Miller
`
`(31.)
`
`I have been asked to consider the Balcha et al. patent (“Balcha”)26 and Miller
`
`patent (“Miller”)27, and whether a person of ordinary skill in the field would be inclined to
`
`combine the techniques of Balcha and Miller.
`
`(32.) Balcha describes a mechanism for synchronizing files on two different computers
`
`using an update or delta file. In order to best understand the mechanism of Balcha, reference to
`
`Fig. 1 of the patent is appropriate.
`
`Servers 22 and 24 each store base files 21 and 27, which are initially identical to one another.28
`
`Files 20 and 28 represent base signature files for base files 21 and 27, respectively.29 The base
`
`
`
`
`26 Balcha, M., et al., “Method and System for Reflecting Differences Between Two Files,” U.S.
`Patent No. 6,233,589, filed July 31, 1998 and issued May 15, 2001. (Ex. 1003).
`27 Miller, W.A., “Automatic File Differencing and Updating System,” U.S. Patent No.
`5,832,520, filed Nov. 22, 1996 and issued Nov. 3, 1998. (Ex. 1004).
`28 Ex. 1003 at 4:51-56.
`29 Id. at 4:56-60.
`
`
`
`15
`
`SAP Exhibit 1009, Page 15 of 36
`
`

`
`
`
`signature files 20 and 28 comprise a “plurality of bit patterns,” which are CRC patterns30, for
`
`each n number of segments created for base files 21 and 27.31
`
`(33.) As a brief aside, it is worth noting that the prior art patents relied upon in the
`
`petition and described herein variously use the terms “hash,” “checksum,” or cyclic-redundancy-
`
`check (“CRC”) (sometimes also MD4 or MD5) to describe the specific type of signature used
`
`during the file comparison process underlying each patent. Although each procedure may vary
`
`slightly in technical implementation, which is beyond the scope of the ‘799 patent, they each
`
`represent a specific technique which falls under the general umbrella of signatures known to a
`
`person of ordinary skill in the field. Moreover, the file comparison procedure claimed in the
`
`‘799 patent may be implemented using “any one of a variety of hashing methods or signature
`
`algorithms” and, therefore, each procedure described in the prior art is compatible with the
`
`procedure described and claimed in the ‘799 patent.32
`
`(34.) Continuing with the description of Balcha from above, at some later point in time,
`
`base file 21, for example, may be updated. Once updated, a new base signature file is created,
`
`compared to base signature file 20, and based upon the comparison, a delta file is created
`
`reflecting the differences between the base file and the revised file.33 The comparison process
`
`described by Balcha directly corresponds, and is indistinguishably different from, the signature
`
`list search process (for example, at step (a) of claim 1) described in the ‘799 patent. The
`
`generated delta file is then transmitted over communication link 26 to server 24 where a copy of
`
`
`30 Id. at 8:19-24.
`31 Id. at 7:46-49.
`32 Ex. 1001 at 8:18-28.
`33 Ex. 1003 at 3:7-11; see also 7:65 – 8:6.
`
`
`
`16
`
`SAP Exhibit 1009, Page 16 of 36
`
`

`
`
`
`the revised file can be created using base file 27 and the delta file.34 In accordance with common
`
`practice, the delta file of Balcha includes raw data only for those segments of the revised base
`
`file that do not match a segment of the base file, and excludes raw data for matching segments
`
`between the files.35 Because base files 21 and 27 were initially maintained in a consistent state
`
`and should remain identical to one another, a change to either file indicates to the detecting
`
`server that the disclosed differencing process must be initiated.36 Moreover, because the
`
`detecting server stores a local copy of the base signature file, it can generate the disclosed delta
`
`file without interaction with the receiving server.37 I also note that in the example shown at
`
`column 14 of Balcha the non-zero offsets on the delete and insert comm

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket