`
`
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`PATENT TRIAL & APPEAL BOARD
`
`
`
`
`
`
`
`In re Patent of: Peter Dickenson
`U.S. Patent No.: 6,738,799
`Issue Date:
` May 18, 2004
`Appl. No.:
`
`10/452,156
`Filing Date:
`
`June 2, 2003
`Title:
`Methods and Apparatuses for File Synchronization and
`Updating Using a Signature List
`
`DECLARATION OF DR. ANDREW GRIMSHAW, Ph.D.
`
`
`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.
`
`
`
`‐ 1 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`(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.
`
`(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.
`
`
`
`‐ 2 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`(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 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
`
`
`
`
`
`‐ 3 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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
`
` 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.
`
`‐ 4 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`
`
` 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 Dickenson 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.
`
`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 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
`
`
`1 Dickenson, 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.
`
`
`
`‐ 5 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`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 message.2 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.
`
`
`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-2).
`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-3).
`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-4).
`
`
`
`‐ 6 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`(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 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.)
`
`Differences were often constructed 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 conserver 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
`
`
`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-5).
`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-6).
`
`
`
`‐ 7 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`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 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
`
`
`8 Id. at 2.
`9 Id.
`10 Id.
`
`
`
`‐ 8 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`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 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.
`
`
`11 Id.
`12 Tridgell, A., “Efficient Algorithms for Sorting and Synchronization,” Doctoral Dissertation
`Presented at the Australian National University, 92 (Feb. 1999). (See A-7).
`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 computer the differences”).
`14 Id.
`
`
`
`‐ 9 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`(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
`
`(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
`
`
`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-8).
`16 Id. at 1:50-56.
`17 Id. at 4:7-17.
`18 Id. at 4:40-57.
`19 ‘799 patent at 2:56-63. (Ex. 1001)
`20 Id. at 3:47-49.
`
`
`
`‐ 10 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`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
`
`
`21 Id. at 7:50-60.
`22 Id. at 3:58 - 4:22.
`23 Id. at 3:45-49.
`
`
`
`‐ 11 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`(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 must be broken into n
`
`number of fixed-sized 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.
`
`DISCUSSION OF RELEVANT PATENTS AND ARTICLES
`
`(22.)
`
`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.
`
`
`24 Id. at 11:3-8.
`25 Id. at 8:18-28.
`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).
`
`
`
`‐ 12 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`)
`(23.)
`
`
`
`Balchha describees a mechaanism for ssynchronizzing files onn two diffeerent
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`computers using aan update oor delta filee. In orderr to best unnderstand tthe mechannism
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`of Balch
`
`
`
`
`ha, referennce to Fig. 1 of the paatent is apppropriate.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Servers 22 and 244 each storee base filess 21 and 277, which arre initially
`
`
`
`
`
`
`one ano
`
`
`
`
`
`
`
`other.28 Filles 20 and 28 represeent base siggnature filees for base
`
`
`
`
`
`identical tto
`
`
`
`files 21 annd
`
`
`
`27, resppectively.299 The basee signature files 20 annd 28 compprise a “pluurality of bbit
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`segments ccreated forr
`
`
`
`patternss,” which aare CRC paatterns30, foor each n nnumber of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`base filees 21 and 227.31
`
`
`
`)
`(24.)
`
`
`
`e, it is wortth noting thhat the prioor art patennts relied uupon
`
`
`
`brief aside
`
`As a
`
`
`
`
`
`
`in the p
`
`
`
`s “hash,” “e the termsriously used herein varetition andd described
`
`
`
`
`
`
`
`
`
`checksum,,” or
`
`
`
`
`
`
`
`CRC”) (soy-check (“Ccyclic-rredundancy
`
`
`
`metimes aalso MD4 oor MD5) too describe tthe
`
`
`
`
`
`
`
`ed during t
`specificc type of siggnature us
`
`
`
`
`
`
`
`
`the file commparison pprocess un
`
`
`
`derlying eaach
`
`
`
`hnical implhtly in techvary sligheach proceedure may
`
`
`
`
`
`
`patent. Although
`
`
`
`
`
`
`28 Ex. 10003 at 4:51-556.
`
`29 Id. at 44:56-60.
`30 Id. at
`8:19-24.
`
`31 Id. at 77:46-49.
`
`
`
`ementationn,
`
`
`
`‐ 13 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`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
`
`(25.)
`
`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 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
`
`
`32 Ex. 1001 at 8:18-28.
`33 Ex. 1003 at 3:7-11; see also 7:65 – 8:6.
`34 Id. at 4:61-67.
`
`
`
`‐ 14 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`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 offsets
`
`on the delete and insert commands cause the skipped data bits to be carried over, or
`
`copied into the revised, updated file. In other words, the commands embedded in
`
`the delta file cause the unchanged bits to be effectively copied into the revised file.
`
`(26.)
`
`Just as in Balcha, Miller discloses a technique for generating and
`
`transmitting a DIFF file (which is synonymous with a delta file) between two
`
`computers such that the second computer can create a copy of the most up-to-date
`
`version of a given file using the DIFF file and the second computer’s copy of the
`
`previous version of that file.38 However, unlike Balcha, which does not specify a
`
`
`35 Id. at 13:47 - 14:18 (note that the delta file in the provided example only includes insert
`commands, which associated raw data, non-matching file segments).
`36 Id. at 4:52-67 (“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… Either base file 21 or 27 can be
`modified at either server. Upon detection of a modification to the file, the detecting server
`[initiates the discloses delta file generation technique]”); see also id. at 3:11-14 (“Once the base
`signature file is generated from the base file, the base file need not be accessed to generate the
`delta file reflecting the differences between the base file and the revised file”).
`37 Id.
`38 Ex. 1004 at 2:38-46.
`
`
`
`‐ 15 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`specific communication link to transmit the delta file between first and second
`
`computers, Miller states that a delta file can be transmitted as a self-executing file
`
`via an electronic e-mail attachment.39 Further, Miller also states that a delta file
`
`can be transmitted by “any means by which a file can be communicated between
`
`computer system 1 and computer system 2, including a removable fixed
`
`medium…, or a communication medium such as an interoffice network, a
`
`telephone line, a bus, or the Internet.”40
`
`(27.)
`
`I believe that it is reasonable and entirely expected for a person of
`
`ordinary skill in this area to combine Miller’s approach of transmitting a DIFF file
`
`by executable e-mail attachment with Balcha’s technique for generating a delta
`
`file, and subsequently transmitting the delta file to a second computer. When
`
`combined in this fashion, once an update file is generated using Balcha’s
`
`technique, it would be transmitted to a second computer via executable e-mail
`
`attachment and, once opened, a replica of the up-to-date file would be created at
`
`the second computer. I believe that it would be reasonable and expected for a
`
`person of ordinary skill to combine these references for a variety of reasons. First,
`
`both Balcha and Miller are directed to techniques for synchronizing files between
`
`two computers using delta or DIFF files. Second, Balcha’s file synchronization
`
`technique is not reliant upon a specific communication mechanism to transport the
`
`
`39 Id. at 5:15-16; 5:35-39; 15:41-43.
`40 Id. at 5:9-15.
`
`
`
`‐ 16 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`generated delta file between first and second computers. Balcha simply calls for
`
`the delta file to be transmitted across a general communication network41 which, as
`
`shown by Miller, can predictably be implemented by an e-mail mechanism.
`
`Similarly, the vast array of communication options detailed by Miller shows that
`
`such mechanisms are interchangeable and can be substituted for one another. In
`
`fact, even the ‘799 patent recognizes that when pushing updates from server to
`
`client, “the importance lies in the distinction between the data being delivered
`
`[e.g., content vs. software vs. document]; and not the delivery mechanism itself.42”
`
`Lastly, Balcha notes that it is an “object of the present invention to provide a
`
`method and system for reflecting the differences between two files that is highly
`
`efficient and reduces network traffic.43” Transmitting Balcha’s delta file via
`
`executable attachment over an e-mail network would reduce general network
`
`traffic and provide a motivation to combine the references.
`
`(28.) Miller also explicitly recognizes that update files, such as Miller’s
`
`DIFF file or Balcha’s delta file, can be used to efficiently transmit a wide array of
`
`file and object updates including, without limitation, software patches44 (i.e.,
`
`software updates) or general document updates45. As this was also ubiquitously
`
`known to a person of ordinary skill in the relevant field, it would be entirely
`
`41 Ex. 1003 at 4:52-54.
`42 Ex. 1001 at 2:52-55.
`43 Ex. 1003 at 2:48-50.
`44 Ex. 1004 at 1:42-44; 5:21-26.
`45 Id. at 5:21-26.
`
`
`
`‐ 17 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`reasonable and expected for Balcha’s delta file generation technique to be used to
`
`provide software and document updates, as stated in Miller.
`
`(29.)
`
`I have also been asked to consider the Freivald et al. patent
`
`(“Freivald”)46 and whether the techniques and procedures discussed in Freivald
`
`could be combined with the techniques and procedures of Balcha and Miller.
`
`(30.)
`
`Freivald describes a “change-detection web server” for monitoring
`
`web page documents for changes and, when a change is detected to a monitored
`
`web page, the server sends a notification message to registered clients that the web
`
`page has been updated.47 In particular, Freivald states that he has developed
`
`a software tool which automatically retrieves files and compares the
`retrieved files to an archived checksum of the file to determine if a
`change in the file has occurred. When a change is detected, the user is
`notified by an electronic mail message (e-mail). A copy of the new
`file may be attached to the e-mail notification, allowing the user to
`review the changes.48
`
`
`Freivald goes on to state that the disclosed change-detection web server performs
`
`three basic functions. First, the server registers web pages for change detection by
`
`accepting subscription requests from a client computer.49 The client specifies
`
`which portions of the web page it wants the server to track and then the server
`
`breaks that portion of the web page into segments and generates a unique signature
`
`46 Freivald., M.P., et al., “Change-Detection Tool Indicating Degree and Location of Change of
`Internet Documents by Comparison of Cyclic-Redundancy-Check (CRC) Signatures,” U.S.
`Patent No. 5,898,836, filed Jan. 14, 1997 and issued April 27, 1999. (Ex. 1005).
`47 Id. at Abstract.
`48 Id. at 6:24-31.
`49 Id. at 7:3-5.
`
`
`
`‐ 18 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`for each segment using the cyclic-redundancy-check (CRC) hashing technique.50
`
`Second, the server periodically re-fetches each registered web-page and creates a
`
`new set of CRCs for each segment of the re-fetched page.51 To determine how the
`
`web page has changed, the server compares this new set of CRCs with the
`
`previously archived set of CRCs and, if the CRCs for equivalent segments do not
`
`match, this indicates that those segments of the web page have been updated.52
`
`Third, the server sends an e-mail notification to the client indicating that the page
`
`has changed.53 The notification may include an attached copy of the new file, an
`
`indication of a specific section of the document that has changed, information as to
`
`the extent of changes in the document, and/or a listing of changes.54 After the
`
`client initially specifies all web pages that it wants the server to monitor, the server
`
`operates completely independent from the client.55
`
`(31.)
`
`Before performing the CRC comparison procedure discussed above,
`
`an efficiently designed system would first perform an initial version check on the
`
`monitored web page to universally determine if the page was altered before
`
`proceeding with a detailed segment comparison process. As recognized by
`
`Freivald, one of the most common techniques for performing a universal version
`
`
`50 Id. at 5-15.
`51 Id. at 7:35-39.
`52 Id.; see also id. at 13:22-27.
`53 Id. at 7:40-47.
`54 Id. at 6:27-31; 12:25-32; 13:37-40.
`55 Id. at 7:25-29.
`
`
`
`‐ 19 ‐
`
`Oracle Exhibit 1007
`
`
`
`
`
`check involves the comparison of time stamp data at periodic intervals.56 In this
`
`manner, the change-detection server periodically polls and records version time
`
`stamp data for a monitored web page. If the web pages time stamp has changed
`
`since the server last polled the page, this indicates that an update may have
`
`occurred. Alternatively, rather than the server periodically polling monitored web
`
`pages an