`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`APPENDIX A
`
`
`Each Claim as a Whole
`
`HTTP DRP: Discloses all elements and functions of each claim arranged as in
`the claim. See below. The HTTP DRP protocol uses a “unique” (3:13-15) MD5
`digest (“checksum”) calculated on a file or other content item as a content
`identifier (2:37-39, 3:12-33, 7:20-31), in part “to avoid downloading the same data
`more than once” (2:29-30). Each client and each HTTP server calculates, stores,
`transmits, receives and compares these MD5 identifiers. Client: A client stores in
`its “disk cache” (7:25) “index” files (4:36-5:40) which include the MD5 identifiers
`for other files in a file system. When it receives a new index file from a server, a
`client compares the new MD5 identifiers with ones stored on disk. (5:30-33, 6:38-
`7:8, 8:7-23). For those identifiers that don’t match, it sends the new identifier in
`its Get (or differential Get) request for files (or file differences) to the server.
`(5:30-33, 6:38-7:8, 7:15-32, 8:7-23). (When the MD5 identifier associated with a
`file name has changed, a client requests only the differences between the old and
`new file version, by including in its differential Get request both the old and new
`MD5 identifiers. (Id.)) On receiving the new file, a client recomputes that file’s
`MD5 identifier and compares it against the identifier provided in the server’s
`reply. (7:43-45, 11:3-6). HTTP Server: Each server stores files, including index
`files, in its “file cache.” (4:40-42, 5:22-28, 5:34-6:20, 8:25-34, 10:45-11:2). The
`server computes MD5 identifiers on all files in its file system, including its index
`files. (6:35, 10:45-11:2). When the server receives a request identifying an MD5
`identifier, it looks in its file cache for that identifier. (7:30-32, 8:25-27). The
`server includes the MD5 identifier in its reply sending a file to the client. (7:33-
`34, 8:29-31). The server can calculate the differences between two files. (8:26-
`27). Some of these caching servers also act as an HTTP proxy server serving as a
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 1 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`gateway between the clients and HTTP server(s). (2:15-16, 6:32-34, 9:36-10:42).
`It too stores files (including index files) in cache, and compares received MD5
`identifiers to those it has stored in cache. (Id.) This way, it can avoid
`downloading the same redundant content from another server if it already has that
`same content but under a different file name. (9:43-45). The proxy cache server
`also can calculate the differences between two files in response to a differential
`Get request. (10:1-2).
`
`Mattis: Discloses all elements and functions of each claim (against which it is
`mapped) arranged as in the claim. See below. Mattis discloses a web proxy cache
`(1) storing in non-volatile “cache storage devices” (e.g., hard disks) both network-
`obtained objects and their MD5 digests (“unique” “content fingerprint” “object
`keys” (’880, 8:18-36)), (2) calculating those MD5 digests on those objects stored
`on disk; and (3) using comparisons of those MD5 digests to search for, and
`eliminate duplicate copies of, objects on disk. (E.g., ’880, Figs. 1-4, 6, 9A, 11,
`Abstract, 8:18-9:12, 17:45-57, 20:13-18, 27:50-28:55). Although the Mattis web
`proxy cache is capable of processing client requests that provide only the name of
`the requested object (e.g., URL), Mattis also discloses that a request sometimes,
`identifies the object by its object key: “Unfortunately, requests for objects
`typically do not identify requested objects using the object keys for the objects.
`Rather, requests typically identify requested objects by name.” (Id., 9:65-10:1).
`To handle requests by object key, Mattis discloses a search procedure for objects
`in the cache using an object key. (Id., 8:20-21, 8:31-36, 10:23, 10:33-37, 11:35-
`52, 12:7-12).
`
`Yohe: Except as otherwise noted, discloses all of the elements and all of the
`functions of each claim (against which it is mapped) arranged as they are arranged
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 2 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`6. A system for data access
`in a packet-switched
`network, comprising:
`
`in the claim. See below. (See generally ’943, 2:41-61, claims 1, 6, 8). E.g.: “The
`performance gains realized by the present invention are derived from the fact that
`remote clients tend to repetitively access the same data by performing file reads. If
`a copy of the data can be stored in the permanent storage memory of the remote
`client computer and also verified to be current when it is subsequently retrieved,
`this will improve performance significantly. This is because it requires much less
`bandwidth to verify a block of data than it would to actually transfer a block of
`data.” (Id., 4:32-40).
`
`HTTP DRP: Discloses a system for accessing data over a packet-switched
`network such as the Internet. (2:11-3:4).
`
`Mattis: Discloses a client-proxy-server web proxy cache communicating with the
`packet-switched Internet, to facilitate client access to objects from Web sites.
`(’880, Figs. 1-2, 11, 1:12-2:28, 7:7-26, 35:59-36:9, 37:9-48).
`
`Yohe: “An apparatus for increased data access in a network” (’943, 2:41-42),
`such as the world wide web (id., 4:23-27) or other wide area network (id., Fig. 2),
`using “packet[s]” (id., 8:24-25). (See id., title, Abstract, 1:12-15, 2:43-46, 2:51,
`2:54-57, 3:8-21, 4:22-24, 5:45-50, 5:59-60, 6:22-23, Fig. 2, claim 1).
`
`(a)* a gateway including
`
`{* - reference labels added
`throughout this claim
`listing}
`
`HTTP DRP: The HTTP proxy cache server acts as a gateway, intercepting
`network requests and replies between other HTTP servers and clients. (9:36-
`10:32). Each HTTP server computer also is a gateway. Each can store index files
`for files stored on a different server: “This allows an index to describe files that
`are located in a different directory, or even on a different server.” (5:40-41).
`
`Mattis: The cache-enabled web proxy 30, which “provides a ‘middleman’
`gateway service” (’880, 2:1-2), receives client requests to servers for objects and
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 3 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`responds to those requests with objects it has cached or which it retrieves from a
`web server over the Internet. (Id., Figs. 1-2, 11, 1:12-2:28, 7:7-26, 9:65-10:4,
`20:27-31, 23:51-24:9). Also, a local network 1112, a host 1124 and
`“intermediary” (id., 1:26-31) Internet Service Provider (ISP) 1126, each receive
`communications between clients and servers over the Internet. (Id., Fig. 11, 37:9-
`45). The proxy server (e.g., its I/O core 60 and protocol engine 70, see Fig. 2),
`local network, data equipment operated by an ISP, and host individually and
`combined constitute a gateway. Network traffic, including data and program code
`(id., 37:40) between the client and sources from the Internet passes through the
`gateway. (Id., 37:26-31, 37:42-45).
`
`Yohe: The “communication server 16” (’943, 4:46-57, 5:11-14; Fig. 2), which
`may be a router, acts as a gateway for communications between the client 12 and
`the caching computer (cache verifying computer 14 and file server computer 18)
`on the same LAN link. “The communication server 16 links the remote client
`computer 12 to the LAN 20, which in turn permits communication with the cache
`verifying computer 14 and the file server computer 18.” (Id., 4:46-50).
`
`HTTP DRP: The proxy cache server and other servers each operates to cache
`files and MD5 identifiers on disk, store and compare MD5 identifiers, and perform
`other operations. The ’717 does not describe anything reasonably called an
`“operating unit” which is not also disclosed in this reference.
`
`Mattis: Each gateway (see above) is an operating computer (e.g., workstation
`(’880, 18:12), computer system 1100 (‘880, 36:23-24)) or network or combination
`of computers and networks. The ’717 does not describe anything reasonably
`called an “operating unit” which is not also disclosed in this reference.
`
` (i) an operating unit,
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 4 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
` (ii) a memory,
`
` (iii) and a processor
`
`Yohe: The “communication server 16” (e.g., router) has an ability to operate and
`provide its routing, WAN driver and LAN driver functionality. (’943, 4:46-57,
`5:11-14; Fig. 2). The ’717 does not describe anything reasonably called an
`“operating unit” which is not also disclosed in this reference.
`
`HTTP DRP: The proxy cache server and other servers each stores files on cache
`and has sufficient memory to store the HTTP DRP protocol code and perform its
`other operations.
`
`Mattis: Each gateway computer and network of computers (see above) has a
`memory. (E.g., ’880, Figs. 2, 11, 2:40-43, 11:1-7, 16:14-15).
`
`Yohe: The “communication server 16” (e.g., a router) has a memory storing at
`least its LAN and WAN drivers and code providing its routing functionality.
`(’943, 4:46-57, 5:11-14; Fig. 2).
`
`HTTP DRP: The proxy cache server and other servers each necessarily has a
`processor to perform the HTTP DRP protocol and otherwise perform its other
`operations.
`
`Mattis: Each gateway computer and network of computers (see above) has a
`processor. (E.g., ’880, Figs. 2, 11, 35:59-37:8).
`
`Yohe: The “communication server 16” (e.g., a router) has a processor executing
`at least its LAN and WAN drivers and code providing its routing functionality.
`(’943, 4:46-57, 5:11-14; Fig. 2).
`
` (iv) connected to said
`packet-switched network in
`
`HTTP DRP: Each gateway server computer (see above) is connected to the
`packet-switched Internet in such a way that packets sent between a client computer
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 5 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`such a way that network
`packets sent between at
`least two other computers
`pass through it;
`
`(b) a caching computer
`
`and a server computer storing the requested file, pass through the gateway proxy
`cache server or other gateway HTTP server. (9:36-10:42).
`
`Mattis: Each gateway computer and network of computers (see above) is
`connected to the packet-switched Internet in such a way that packets sent between
`a client computer and a server computer, addressed to the server computer (e.g.,
`naming an URL) or client computer, pass through the gateway. (’880, Figs. 1-2,
`11, 1:14-2:14, 9:65-10:10, 27:50-28:2, 37:26-31, 37:42-45).
`
`Yohe: The “communication server 16” (’943, 4:46-57, 5:11-14; Fig. 2), which
`may be a router, acts as a gateway for communications between the client 12 and
`the caching computer (cache verifying computer 14 and file server computer 18)
`on the same LAN link. “The communication server 16 links the remote client
`computer 12 to the LAN 20, which in turn permits communication with the cache
`verifying computer 14 and the file server computer 18.” (Id., 4:46-50).
`
`HTTP DRP: Each client, proxy cache server (“caching servers and proxies”
`(2:15)) and HTTP server computer running the HTTP DRP protocol, is a caching
`computer. Each stores files or other content transmitted over the network in its file
`cache. (6:32-33, 7:2-5, 8:25-34, 9:36-10:2, 10:45-11:2).
`
`Mattis: Mattis discloses a web proxy cache, called a “traffic server” (’880, 7:6-
`11) (1) storing in non-volatile memory (e.g., “high-capacity, fast disk drives” (id.,
`7:60-62)) both network-obtained objects and their MD5 digests (id., 9:50-63)
`(“object keys” (Fig. 3A) or “fingerprints” (id., 8:18-36)), (2) calculating those
`MD5 digests on those objects stored on disk (id., 8:55-9:6, 17:45-55); and (3)
`using those MD5 digests to search for, and eliminate duplicate copies of, objects
`on disk. (’880, Figs. 2-6, 9, 11, Abstract, 1:53-2:28, 5:40-55, 7:58-62, 8:18-9:6,
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 6 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
` (i) connected to said
`gateway through a fast local
`network, wherein said
`caching computer includes
`
`9:50-63, 10:23-39, 11:3-20, 11:43-56, 12:42-50, 13:15-17, 13:34-38, 14:6-27,
`16:49-62, 17:27-55, 20:13-18, 21:1-2, 24:24-47, 27:49-28:55, 35:43-52, 36:23-28,
`36:38-50, 37:53-38-24).
`
`Yohe: The cache verifying computer 14 and file server computer 18 on LAN link
`20 together form a caching computer which stores files in disk cache. (’943, 4:42-
`43, 5:14-28, 5:59-65, 6:17-20, 6:22-37, 7:19-8:4, 13:30-14:17, claims 1, 6 and 8).
`These files include those received over the network from the client computer 12.
`(Id., 6:45-55). (See id., Abstract, Fig. 2, claims 1, 8).
`
`HTTP DRP: As noted, each proxy cache server and HTTP server computer
`running the HTTP DRP protocol, is both a gateway and a caching computer,
`integrally formed. In addition, HTTP DRP “can be deployed anywhere where
`HTTP is available today,” including “existing HTTP servers and proxies” (2:12-
`22) and therefore applies to both “forward” proxy servers on the same local
`network as the caching clients, and to “reverse” proxy servers on the same local
`network as the HTTP server, which were common configurations in 1998-99..
`
`Mattis: The cache 80 is integral with the protocol engine 70 and I/O core 60
`within the proxy 30, communicating via a workstation computer bus. (’880, Fig.
`2, 7:7-63). Web caching proxy 1100 is connected to ISP 1126 and host 1124 via
`LAN card or other communication interface (37:9-23) and local network 1122.
`(Id., Fig. 11).
`
`Yohe: The cache verifying computer 14 and file server computer 18 are
`connected to the communication server/router 16 via LAN link 20. (’943, 4:46-57,
`5:11-14; Fig. 2).
`
` (ii) an operating unit,
`
`HTTP DRP: The client, proxy cache server and other servers each operates to
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 7 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`cache files and MD5 identifiers on disk, store and compare MD5 identifiers, and
`perform other operations. The ’717 does not describe anything reasonably called
`an “operating unit” which is not also disclosed in this reference.
`
`Mattis: The web caching proxy is an operating computer (e.g., workstation (’880,
`18:12)) or other general-purpose computer. (Id., Figs. 2, 11). The ’717 does not
`describe anything reasonably called an “operating unit” which is not also disclosed
`in this reference.
`
`Yohe: The cache verifying computer 14 and file server computer 18 include an
`operating system and other elements and functionality as necessary to operate in
`the described manner. (’943, Fig. 2, 2:42-51, Abstract, claims 1 and 8). The ’717
`does not describe anything reasonably called an “operating unit” which is not also
`disclosed in this reference.
`
`HTTP DRP: The client, proxy cache server and other caching servers each has
`sufficient memory to store the HTTP DRP protocol code and perform its other
`operations.
`
`Mattis: The web caching proxy has a memory. (E.g., ’880, Figs. 2, 11, 2:40-43,
`11:1-7, 16:14-15, 35:64-66).
`
`Yohe: The cache verifying computer includes “a first memory” (’943, 2:47) (e.g.,
`RAM) as does the file server computer. (See id., Abstract, 2:46-47, 5:34-36,
`claims 1, 6, 8).
`
` (iii) a first memory,
`
` (iv) a permanent storage
`memory and
`
`HTTP DRP: The client, proxy cache server and other caching servers each has a
`disk (permanent memory) on which it caches both files and file indices. E.g., “a
`client can use a disk cache for data files, which is accessed using content
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 8 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`identifiers.” (7:3-4). “The index can be specified using a normal file on a server
`that describes part or all of the site. It is easy to generate an index file using a
`simple program that scans the file system.” (10:45-11:2). “An HTTP proxy may
`cache indexes if the HTTP header indicates that this is allowed. An HTTP proxy
`should treat indexes just like normal files.” (6:32-33).
`
`Mattis: The web caching proxy has permanent non-volatile storage memory (e.g.,
`’880, Fig. 2, 90a – 90n “cache storage devices” (’880, 11:40-41), Fig. 4B, 90a, Fig.
`11, 1110) such as “high-capacity, fast disk drives” (id., 7:60-62) for “terabyte
`caches and billions of objects” (id., 4:4:56-58). (Id., 10:24-26, 11:3-7, 11:43-56,
`12:35-50, 13:13-38, 14:17-27, 16:49-17:55, 19:5-7, 21:1-3, 24:14-23, 24:39-42,
`36:7-10, 37:58-67).
`
`Yohe: File server includes “a DD [(disk driver)] 78 and a PSD [(permanent
`storage disk)] 80.” (’943, 5:22-24). (See id., Abstract, 2:47-49, 3:5-7, 3:22-24,
`claims 1, 6, 8). The cache verifying computer also necessarily has a permanent
`memory in order to store its boot-up code, “operating system,” LAN Driver 68,
`Network Transport Layer 66, etc. (Id., 5:14-21, 5:34-36, Fig. 2).
`
`HTTP DRP: The client, proxy cache server and other caching servers each
`necessarily has a processor to perform the HTTP DRP protocol and otherwise
`perform its other operations.
`
`Mattis: The web caching proxy has a processor. (E.g., ’880, Figs. 2, 11, 35:59-
`37:8).
`
`Yohe: File server computer includes “a processor” (’943, claim 8) and cache
`verifying computer includes “a processor” (id., 2:47) and cache verifying agent
`
` (v) a processor,
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 9 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`(c) said caching computer
`further including a network
`cache memory in its
`permanent storage memory,
`
`could be “a stand alone processor with its own memory and operating system” (id.,
`5:34-36). (See id., Abstract, claim 1).
`
`HTTP DRP: The client, proxy cache server and other caching servers each has a
`disk (permanent memory) on which it caches both files and file indices. E.g., “a
`client can use a disk cache for data files, which is accessed using content
`identifiers.” (7:3-4). “When the server receives a get request that includes a
`Differential-ID field, it can look in its file cache for both versions of the requested
`file using the content identifiers . . . .” (8:25-26). “An HTTP proxy may cache
`indexes if the HTTP header indicates that this is allowed. An HTTP proxy should
`treat indexes just like normal files.” (6:32-33).
`
`Mattis: Under control of its cache 80, the web caching proxy stores in its non-
`volatile memory (e.g., its “cache storage devices 90a-90n” (’880, 11:40-41)),
`copies of objects it receives over the network from servers, and serves those stored
`objects to clients requesting an object having the same MD5 digest (object key)
`instead of that object being re-served by the original web server. (Id., Figs. 1-6, 9,
`11, Abstract, 1:12-2:28, 5:40-55, 7:7-26, 7:58-62, 8:18-9:6, 9:50-63, 9:65-10:4,
`10:23-39, 11:3-20, 11:43-56, 12:42-50, 13:15-17, 13:34-38, 14:6-27, 16:49-62,
`17:27-55, 20:13-18, 21:1-2, 23:51-24:9, 24:24-47, 27:49-28:55, 35:43-52, 36:23-
`28, 36:38-50, 37:53-38-24).
`
`Yohe: File server includes “a DD [(disk driver)] 78 and a PSD [(permanent
`storage disk)] 80” for storing files for later transmission and use over the network,
`after those cached files have been verified by the cache verifying agent. (’943,
`Abstract, 2:47-49, 3:5-7, 3:22-24, 5:22-24, claims 1, 6, 8).
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 10 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
` (i) means for calculating a
`digital digest and;
`
`HTTP DRP: A caching client and a caching server each calculates MD5 digests
`on data objects. (6:35, 7:43-45, 9:29-32, 10:45-11:6). “Typically a checksum
`algorithm is used to generate a content identifier for a piece of content. One of the
`checksum algorithms which can be used is the Message Digest algorithm from
`RSA. The MD5 algorithm is a well-known algorithm for computing a 128-bit
`checksum for any file or object.” (3:24-26). E.g., “When the requested content
`identifier contains a verifiable checksum URN, the client should always
`recomputed the checksum to verify that the correct content was returned.” (7:43-
`45; see also 11:5-6). “The index can be specified using a normal file on a server
`that describes part or all of the site. It is easy to generate an index file using a
`simple program that scans the file system.” (10:45-11:2). “A server which
`generates personalized indexes . . . .” (6:35). (See also 9:29-32, 11:5-6).
`
`Mattis: The web caching proxy processor is programmed for “computing a
`content key that uniquely identifies the information object by applying an MD5
`one-way hash function to the information object.” (’880, 5:43-46, see also id.,
`Figs. 3A, 11, Abstract, 5:27-6:4, 8:18-9:6, 9:36-63, 20:13-18). These 128-bit
`MD5 digests are calculated, using an MD5 hash function, from each byte of a
`stored, arbitrary-length object file and are “unique” “content fingerprint” “object
`keys.” (Id., 8:18-36). The processor also is programmed to calculate a fixed-
`length (128-bit) MD5 digest from the content of an arbitrary-length object name
`such as an URL. (Id., Fig. 3B, 10:11-16, 27:61-28:1).
`
`Yohe: Cache verifying computer calculates “a signature of the data characteristic
`of one of a file and [file-system] directory” (’943, 2:47-51) and includes “a BSG
`[(block signature generator)] 56 (of the type described herein), a directory
`signature generator (DSG) 57…” (id., 5:14-16) which use MD5 or CRC to
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 11 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
` (ii) means for comparison
`between a digital digest on
`data in its network cache
`memory and a digital digest
`received from said packet-
`switched network through
`said gateway.
`
`calculate these signatures (id., 7:19-8:3, 8:7-9) from data of arbitrary length (id.,
`3:19). (See id., 5:14-17, 5:33-36, 7:24-25, 11:56-12:65, 13:36-40, 13:65-67, 14:1-
`12, Fig. 2, Fig. 8, step 354, Figs. 15, 16, claims 1, 8).
`
`HTTP DRP: The client, proxy cache server and other caching servers each has
`the ability to compare an MD5 identifier received over the network through a
`gateway to an MD5 identifier stored in its disk cache. A client compares the MD5
`identifiers in a newly downloaded index file to those MD5 identifiers in its stored
`version of that index file to look for matches. E.g., “Once the initial download is
`complete, a client can update the content by downloading a new version of the
`index, and comparing it against the previous version of the index. Because each
`file entry in the index has a content identifier, the client can determine which files
`have changed and so determine the minimal set of files that need to be downloaded
`in order to bring the client up-to-date.” (5:30-32). Also, both HTTP proxy servers
`and other HTTP caching servers look in their caches for MD5 identifiers that
`match those included in a request received over the network from a client. E.g.,
`“When the server receives a get request that includes a Differential-ID field, it can
`look in its file cache for both versions of the requested file using the content
`identifiers specified by the Content-ID field and the Differential-ID field.” (8:25-
`27). (See also 3:14-16, 3:28-31, 4:39, 6:40-42, 7:2-8, 8:8-12, 8:32-33, 9:38-45,
`10:1-2).
`
`Mattis: The web caching proxy processor is programmed to search (or “lookup”)
`for an object in its cache storage that matches an object requested by a client
`computer. (E.g., ’880, Fig. 9A, 11:21-12:33, 15:13-23, 20:13-18, 27:39-40, 27:49-
`28:55, 31:40-51). The processor is programmed to compare two MD5 object keys
`to determine if they match, one being the “request key value” and one being the
`cached object key value. (Id., Fig. 9A, 27:49-28:55, 8:18-36, 12:7-12). It also
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 12 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`compares the MD5-digest object key it has just calculated on a newly obtained
`object to the object keys already stored in its cache storage, to identify and delete
`duplicate objects with different names but an identical MD5-digest object key
`from its cache storage. (Id., 8:4-9:6). The processor also is programmed to
`compare two MD5-digest name keys to see if they match. (Id., 10:32-39). The
`MD5-digest object keys representing the cached objects on disk had been
`calculated by the processor immediately upon storing each new object in cache
`storage. (Id., 8:18-9:6, 17:45-57, 20:13-18). The MD5-digest request key value
`(representing the desired object) is determined in one of two ways from the client’s
`request over the network through the gateway. That MD5-digest request key value
`may either be in the request itself (id., 9:65-10:4) or instead typically is derived
`from the object name contained in the request. (Id., Fig. 9A, step 904 (“convert
`object name in request to key value”) plus a two-phase search process (10:5-10)).
`In any event, the processor’s comparison functionality is capable of comparing
`these two MD5 digests (request key value vs. cached object key values) whether
`that conversion step 904 is needed or not. E.g., the search (lookup) operation uses
`the object key value as the search parameter. (Id., 12:7-51). A read process is
`executed to return an object that was found in the cache by the search (lookup)
`process. (Id., 28:67-29:2). In the read process, a “Vector of Alternates” structure
`is searched to determine the version of object based on, e.g. browser type,
`language, etc., to be returned to the client. (Id., 13:56-14:27, 29:14-18). If the
`object is not found in cache, then it is requested from the original server. (Id., 9:8-
`12, 20:27-31, 28:43-49). If the object retrieved from the server is determined to be
`cacheable (id., 20:31-56), the object is written and committed to disk (id., 24:14-
`23, 28:50-51).
`
`Yohe: The cache verifying computer 14 includes comparator 58 as part of its
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 13 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`7. The system as claimed in
`claim 6, wherein said
`caching computer further
`includes means for
`calculating a digital digest
`for data in its network cache
`memory.
`
`cache verifying agent 54. (’943, 5:14-18, 6:22-38, claims 1, 6 and 8). The caching
`computer’s comparator compares a digital digest received from the client via the
`gateway to a digital digest that the caching computer itself calculates on data
`stored in in its disk cache. (Id., 6:22-38). “CVA 54 via FSI 62 ‘reads’ 352 data
`from the file server computer 18. CVA 54 ‘invokes’ 354 BSG 56 to generate a
`second signature of data. CVA 54 ‘invokes’ 356 comparator 58 to compare the
`first and second signatures of data and ‘asks whether there is a match?’” (Id.,
`6:27-32).
`
`HTTP DRP: Each client and each caching server stores files, including index
`files, in its “file cache.” (4:40-42, 5:22-28, 5:34-6:20, 8:25-34, 10:45-11:2). The
`server computes MD5 identifiers on all files in its file system, including its index
`files. (6:35, 9:29-32, 10:45-11:6). The client also calculates MD5 digests on files
`it has downloaded. (11:3-6).
`
`Mattis: Mattis discloses its web proxy cache calculating MD5 digests on objects
`stored in its disk cache. For example, when the web proxy cache downloads and
`stores a new object it immediately calculates that object’s MD5 digest (and
`compares it to previously stored MD5 digest values). (E.g., ’880, Figs. 1-4, 6, 9A,
`11, Abstract, 8:18-9:12, 17:45-57, 20:13-18.)
`
`Yohe: The cache verifying agent 54 in the caching computer includes both a
`block signature generator 56 and a directory signature generator 57 for calculating
`MD5 digests or CRC fingerprints on files and other content stored in disk cache of
`the connected file server computer 18. (’943, Fig. 2, 6:22-38, 7:19-8:4, claims 1, 6
`and 8).
`
`9. The system as claimed in HTTP DRP: Each caching server has the ability to store on disk index files (4:37-
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 14 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`Claim Element-BRI
`
`HTTP DRP, MATTIS & YOHE CLAIM MAPPINGS
`
`claim 6, wherein said
`caching computer further
`includes means for storing
`said calculated digital digest
`in said permanent storage
`memory.
`
`43) including the MD5 content identifier(s) it calculates. The HTTP caching
`server can calculate an MD5 identifier on all files in its cache file system and then
`store the resulting index files in cache as well. E.g., “The index can be specified
`using a normal file on a server that describes part or all of the site. It is easy to
`generate an index file using a simple program that scans the file system.” (10:45-
`11:2).
`
`11. A method performed by
`a sender/computer in a
`packet-switched network for
`increasing data access,
`
`Mattis: The web cache proxy processor is programmed to store in its non-volatile
`disk cache storage the MD5-digest object keys it calculates, contiguous to the
`corresponding stored objects from which they were calculated. (E.g., ’880, Fig.
`4B, object keys (see 15:31-50), Fig. 6, key 206a (see 17:39-41)). (See id. 17:45-
`57). The processor also is programmed to store in its non-volatile disk cache
`storage the MD5-digest name keys it calculates. (Id., Fig. 3B, 24:27-42).
`
`HTTP DRP: Both proxy servers and origin servers implementing HTTP DRP
`perform this claimed method. The goal of HTTP Distribution and Replication
`Protocol (DRP) is to “significantly improve the efficiency and reliability of data
`distribution over HTTP.” (2:11-13). Specifically, it is designed to “provide a
`widely applicable mechanism for the efficient replication of data and content,
`improve the efficiency and reliability of caching servers and proxies” (2:14-16)
`and “to efficiently replicate a hierarchical set of files to a large number of clients”
`(2:23-25). The method works with servers and clients that communicate using
`HTTP and hence it is used in a packet-switched network.
`
`Mattis: Discloses a proxy computer that acts as a sender computer to provide data
`access for client machines in a packet-switched network which is either the
`Internet or a local network. (’880, Figs. 2, 11, 2:1-14, 7:7-21, 38:18-22). The
`proxy server acts “as a server to the client” (id., 2:2-3) and hence it is the
`
`
`
`Appendix A to Microsoft’s Second Petition for Inter Partes Review of U.S. Patent No. 6,757,717
`Page 15 of 22
`
`
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`1