throbber
IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`––––––––––
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`
`––––––––––
`
`NETFLIX, INC.,
`
`Petitioner,
`
`v.
`
`CA, INC.,
`
`Patent Owner.
`
`––––––––––
`
`Case No. IPR2022-00322
`
`U.S. Patent 8,656,419
`
`––––––––––
`
`Declaration of H. V. Jagadish, Ph.D.
`
`Netflix, Inc. - Ex. 1003, Page 000001
`IPR2022-00322 (Netflix, Inc. v. CA, Inc.)
`
`

`

`
`
`
`I. 
`II. 
`
`TABLE OF CONTENTS
`
`III. 
`
`VI. 
`
`OVERVIEW OF THE TECHNOLOGY ......................................................... 4 
`THE ’419 PATENT ....................................................................................... 11 
`A.  Overview ............................................................................................. 11 
`B. 
`Prosecution History ............................................................................. 16 
`C. 
`Priority Date ........................................................................................ 20 
`D. 
`Challenged Claims .............................................................................. 20 
`SUMMARY OF THE PRIOR ART .............................................................. 20 
`A. 
`Invalidity Grounds ............................................................................... 21 
`B. 
`Verbeke (Exhibit 1004) ....................................................................... 21 
`C. 
`Jalan (Exhibit 1005) ............................................................................ 25 
`D. 
`Neiman (Exhibit 1006) ........................................................................ 28 
`IV.  LEVEL OF ORDINARY SKILL IN THE ART ........................................... 29 
`V. 
`CLAIM CONSTRUCTION .......................................................................... 31 
`A. 
`“a procedure of an application” / “a procedure of the
`application” ......................................................................................... 31 
`INVALIDITY ................................................................................................ 33 
`A.  Ground 1: Claims 1-4, 6-10, 12, 13, 15, 16, and 18 are
`Rendered Obvious in View of Verbeke ............................................... 33 
`1. 
`Independent Claims 1, 12, and 18 ............................................. 33 
`2. 
`Dependent Claim 2 ................................................................... 79 
`3. 
`Dependent Claim 3 ................................................................... 83 
`4. 
`Dependent Claim 4 ................................................................... 87 
`5. 
`Dependent Claim 13 ................................................................. 91 
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000002
`
`

`

`B.
`
`Dependent Claim 6 ................................................................... 91
`6.
`Dependent Claims 7, 8, and 15 ................................................. 94
`7.
`Dependent Claims 9 and 16 ...................................................... 97
`8.
`Dependent Claim 10 ............................................................... 100
`9.
`Grounds 2 and 3: Claims 5, 11, 14, 17, 19, and 20 are Rendered
`Obvious in View of Verbeke and Jalan; and are Rendered
`Obvious in View of Verbeke, Jalan, and Neiman ............................. 103
`1.
`Combination of Verbeke and Jalan ........................................ 103
`2.
`Combination of Verbeke, Jalan, and Neiman ......................... 107
`3.
`Dependent Claims 5 and 14 .................................................... 111
`4.
`Dependent Claims 11, 17, 19, and 20 ..................................... 119
`VII. BACKGROUND AND QUALIFICATIONS ............................................. 131
`A.
`Compensation .................................................................................... 133
`B. Materials and Other Information Considered ................................... 133
`VIII. UNDERSTANDING OF THE LAW .......................................................... 133
`IX. RESERVATION OF RIGHTS .................................................................... 134
`APPENDIX 1: CURRICULUM VITAE OF H. V. JAGADISH .......................... 135
`APPENDIX 2: MATERIALS CONSIDERED IN THE PREPARATION OF
`THIS DECLARATION ...............................................................................162
`APPENDIX 3: CHALLENGED CLAIMS ............................................................164
`APPENDIX 4: UNDERSTANDING OF THE LAW ...........................................171
`
`Netflix, Inc. - Ex. 1003, Page 000003
`
`

`

`I, H.V. Jagadish, declare as follows:
`
`1.
`
`My name is H.V. Jagadish. I am the Bernard A Galler Collegiate
`
`Professor of Electrical Engineering and Computer Science at the University of
`
`Michigan, Ann Arbor and the Director of the Michigan Institute for Data Science
`
`at the University of Michigan, Ann Arbor. I have prepared this report as an expert
`
`witness retained by Netflix, Inc. In this report I give my opinions as to whether
`
`certain claims of U.S. Patent No. 8,656,419 (“the ’419 patent”) are valid. I provide
`
`technical bases for these opinions as appropriate.
`
`2.
`
`This report contains statements of my opinions formed to date and the
`
`bases and reasons for those opinions. I may offer additional opinions based on
`
`further review of materials in this case, including opinions and/or testimony of
`
`other expert witnesses. I make this declaration based upon my own personal
`
`knowledge and, if called upon to testify, would testify competently to the matters
`
`contained herein.
`
`I.
`
`OVERVIEW OF THE TECHNOLOGY
`
`3.
`
`4.
`
`The ’419 patent generally relates to distributed computing.
`
`Distributed computing concepts have been known for decades. Ex.
`
`1008 (Kisor), 3:19-21; Ex. 1009 (Downs), 3:10-29; Ex. 1010 (Fellenstein),
`
`¶¶[0042]-[0044]. Often, distributed computing involves a client computing device
`
`submitting some type of computing job or task, such as the performance of a
`
`Netflix, Inc. - Ex. 1003, Page 000004
`
`

`

`portion of an application, to a set of computers (called a grid, framework, server
`
`farm, etc.), and the set of computers placing the job on one or more of the
`
`computers of the set (a node, server, worker, etc.) to perform the task. Id. Initially,
`
`distributed computing focused on placing particular tasks on servers that were best
`
`able to handle the task based on their hardware or software configurations and
`
`processing load. Id. As distributed computing concepts advanced and the
`
`heterogeneity and capability of the servers increased, systems would also
`
`sometimes provide code to perform tasks to the server nodes. Ex. 1011 (Harris),
`
`6:9-14; Ex. 1006 (Neiman), ¶[0113]; Ex. 1009 (Downs), 4:10-23.
`
`5. While distributed computing may differ in forms, the common thread
`
`in each is that the distributed system utilizes components arranged on different
`
`networked computers that coordinate their actions via messaging to achieve a
`
`common goal, such as the processing of a particular job, in a way transparent to a
`
`user submitting the job. See Ex. 1007 (Tanenbaum)1, pp. 2-4; Ex. 1005 (Jalan),
`
`¶[0004]. In short, as described in Tanenbaum, a “distributed system is a collection
`
`of independent computers that appears to its users as a single coherent system.” Ex.
`
`1 Tanenbaum bears a copyright date of 2007 and includes Library of Congress
`
`Cataloging-in-Publication Data on its copyright page. I was familiar with
`
`Tanenbaum by 2008-2009.
`
`Netflix, Inc. - Ex. 1003, Page 000005
`
`

`

`
`
`1007 (Tanenbaum), p. 2; see also Ex. 1011 (Harris), 1:30-40. Distributed systems
`
`make it easy for numerous users to access remote resources, and to share them in a
`
`controlled and efficient way, and in many cases, across networks and across a
`
`diverse geographic area. Ex. 1007 (Tanenbaum), pp. 3-4; Ex. 1011 (Harris), 1:15-
`
`40.
`
`6.
`
`Distributed Systems: From a systemic viewpoint, there are many
`
`types of distributed computing arrangements, including grid computing systems
`
`consisting of nodes of differing hardware, software, and networks; cluster
`
`computing systems consisting of groups of similar workstations on a local area
`
`network; and peer-to-peer systems consisting of self-organizing nodes that take
`
`advantage of distributed resources. In each system, some type of scheduler, master
`
`node, controller, etc. – rather than the client submitting the job – decides which
`
`tasks are sent to which nodes. See, e.g., Ex. 1006 (Neiman), ¶¶[0037]-[0038]; Ex.
`
`1007 (Tanenbaum), pp. 17, 44; Ex. 1012 (Talia), p. 1; Ex. 1011 (Harris), 4:56-5:2;
`
`Ex. 1014 (Bacthavachalu), 3:57-4:44; Ex. 1016 (Broussard), ¶[0044]; Ex. 1017
`
`(Barsness), ¶¶[0024]-[0025], [0035]. See also Ex. 1007 (Tanenbaum), Fig. 1-6; Ex
`
`1013 (El-Desoky), Fig. 1, reproduced below:
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000006
`
`

`

`
`
`The individual computers making up each system may be referred to as “nodes.”
`
`Ex. 1007 (Tanenbaum), p. 17; Ex. 1013 (El-Desoky), p. 2; Ex. 1014
`
`(Bacthavachalu), 3:57-4:7.
`
`7.
`
`Distributed Processing: To process a job using these hardware
`
`configurations for distributed computing, the job, such as the running of an
`
`application, must be divided into multiple discrete tasks or operations (sometimes
`
`themselves called “jobs”) so the tasks can be distributed amongst the different
`
`nodes and processed individually. Different methods are used to subdivide each
`
`job into subtasks following a logical division of the original job such that each
`
`subtask can be independently managed. See, e.g., Ex. 1004 (Verbeke), Fig. 5,
`
`¶¶[0071], [0074] (multiple tasks of a job are distributed to different nodes); Ex.
`
`1005 (Jalan), Abstract, FIGS. 1, 2, ¶¶[0098]-[0099] (a master process spawns
`
`parallel slave processes to be executed on different nodes); Ex. 1006 (Neiman),
`
`Abstract, FIG. 9, ¶¶[0116]-[0120] (a parent job configured to produce descendant
`
`jobs for computation on different nodes); Ex. 1007 (Tanenbaum), p. 23 (nested
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000007
`
`

`

`
`
`transactions provide a natural way of distributing transactions); Ex. 1018
`
`(Woodgeard), ¶[0004] (data and task decomposition); Ex. 1011 (Harris), 7:45-8:56
`
`(large processing problems are broken up into “grid packets”). Individual tasks
`
`were known to run in different programming languages, and on different operating
`
`systems, on the individual nodes. Ex. 1014 (Bacthavachalu), 6:41-45; Ex. 1006
`
`(Neiman), ¶¶[0049], [0087], [0089].
`
`8.
`
`Transparency: As discussed in Tanenbaum, one of the goals of
`
`distributed computing is to “hide the fact that its processes and resources are
`
`physically distributed across multiple computers. A distributed system that is able
`
`to present itself to users and applications as if it were only a single computer
`
`system is said to be transparent.” Ex. 1007 (Tanenbaum), p. 4. Transparency, a
`
`central feature of distributed computing, eliminates, for example, the necessity for
`
`a user to manage the processing of multiple applications on computer systems that
`
`may run on different operating systems or to manage the location of resources that
`
`may be moving. Ex. 1007 (Tanenbaum), p. 5. Transparency can be implemented
`
`in many ways; for example, by using “middleware” to distribute operations to
`
`nodes. See, e.g., Ex. 1004 (Verbeke), ¶¶[0076], [0071] (“a task dispatcher group
`
`distributes individual tasks to workers”); Ex. 1006 (Neiman), ¶[0066]-[0067] (tasks
`
`submitted via a transaction manager); Ex. 1007 (Tanenbaum), p. 23, Fig. 1-10 (a
`
`“transaction processing monitor” that “handleddistributed (or nested)
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000008
`
`

`

`
`
`transactions”); Ex. 1011 (Harris), Fig. 1, 5:27-6:4 (a “grid switch” routes requests
`
`“based on a DNS round robin process”); Ex. 1014 (Bacthavachalu) 6:23-52, 9:43-
`
`35 (a queue service and a scheduling component scheduling jobs among nodes
`
`based on job dependencies and load balancing). The user submitting the job in
`
`each system does not know, and does not care, which node will process its job.
`
`9.
`
`Dependent Processes and Tasks: The scheduling of tasks on a
`
`framework to run dependent on one another (e.g., task B uses the results from task
`
`A) has long been known. See, e.g., Ex. 1006 (Neiman), ¶¶[0015]-[0016], [0039],
`
`[0041] (teaching parent tasks with descendent tasks); Ex. 1014 (Bacthavachalu),
`
`4:30-4:44, 6:23-6:52, 8:63-9:12 (teaching calculating job dependencies and using
`
`outputs from some jobs on some nodes as inputs to summary jobs on different
`
`nodes).
`
`10. Knowledge Sharing: Distributed computing systems have been
`
`known to share information, data, instructions, code, and results between and
`
`among nodes of the system. See Ex. 1007 (Tanenbaum), pp. 3-4 (sharing
`
`hardware, software, groupware, storage); Ex. 1011 (Harris), 1:15-40 (teaching
`
`computing resources sharing and “applications and data sharing”). For example, it
`
`has been known since the 1990s to transfer code between nodes to where it is
`
`needed (known as “code mobility” or “code migration”), such as to a node that has
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000009
`
`

`

`
`
`availability to run a distributed task but does not have the code installed. See Ex.
`
`1015 (Fuggetta), pp. 1-2, 11-12, Table 2; Ex. 1007 (Tanenbaum), pp. 103-104.
`
`11. Results: It has also long been known to return results of the task(s)
`
`being performed to the task submitter, either directly by some type of manager or
`
`through placing the result(s) in a log file or other storage in the distributed system
`
`that may be accessed by the task submitter. Ex. 1006 (Neiman), ¶¶[0044], [0066]-
`
`[0067], [0111]; Ex. 1009 (Downs), 4:10-23; Ex. 1011 (Harris), 5:2-14; Ex. 1017
`
`(Barsness), ¶¶[0006], [0034]; Ex. 1018 (Woodgeard), ¶[0024].
`
`12. Object-Oriented Distributed Systems: As object-oriented
`
`programming has become dominant, it has been advantageously used in distributed
`
`systems. Object-oriented programming utilizes “objects” and “classes” that
`
`describe the object (e.g., with variables, properties, procedures, and events). This
`
`logical structure naturally lends itself to distributed implementations where objects
`
`and classes may be stored and run on different nodes. Ex. 1007 (Tanenbaum), p.
`
`443; Ex. 1005 (Jalan), ¶¶[0010]-[0011]. Distributed object-based systems employ
`
`a class loader on a node to retrieve classes from other nodes as needed. See Ex.
`
`1004 (Verbeke), ¶¶[0004], [0005]; Ex. 1007 (Tanenbaum), p. 423; Ex. 1011
`
`(Harris), 2:14-38; Ex. 1015 (Fuggetta), p. 8; Ex. 1016 (Broussard), ¶[0046]; Ex.
`
`1017 (Barsness), ¶[0011]. For example, when a class is needed by the executing
`
`code, or triggered by an application, the class loader retrieves the class from a
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000010
`
`

`

`
`
`server or remote host, and then loads the class so that the corresponding code may
`
`be executed. See id.
`
`13. While various types of hardware implementations, software calls,
`
`discrete processes, and particular methodologies for distributed computing have
`
`been developed over the years, as briefly discussed above, the concepts developed
`
`for these various applications are generally broadly interchangeable, such that
`
`techniques useful for one hardware and software implementation are applicable to
`
`other hardware and software implementations, and such that concepts and
`
`methodologies developed for one application might be generally applied across
`
`similar applications. This is demonstrated by the example art discussed above.
`
`14. Accordingly, the concepts and architectures of distributed computing
`
`were well-known by 2008-2009.2
`
`II. THE ’419 PATENT
`A. Overview
`15. The ’419 patent states it “relates generally to distributed computing.”
`
`Ex. 1001 (’419 patent), 1:5-7. In its Summary of the Invention section, the ’419
`
`patent states:
`
`
`2 “2008-2009,” as used herein, is intended to represent the general time frame
`
`before the July 2, 2009 filing date of the ’419 patent.
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000011
`
`

`

`
`
`According to one embodiment a first node of a network communicates
`with a second node of the network. The first node tells the second
`node to perform an operation and how to perform the operation using
`computer code. Additionally, the first node tells the second node what
`to do with the result of the operation.
`
`Ex. 1001 (’419 patent), 1:19-24. This embodiment description is no different from
`
`many standard client/server processes known to a POSITA3 by 2008-2009, as it
`
`describes only a one-to-one client/server arrangement, not a distributed system.
`
`Despite this, the ’419 patent indicates that its arrangement provides “one or more
`
`technical advantages,” including that: (i) “an operation may be called without
`
`knowing the node that will perform the operation;” and (ii) “nodes may share
`
`knowledge for performing an operation” to allow “an application to be distributed,
`
`with different nodes performing different operations of the application.” Ex. 1001
`
`(’419 patent), 1:25-41. As discussed above, however, a POSITA would have
`
`recognized these advantages (transparency, knowledge sharing, and distributed
`
`processing) as well-known aspects of distributed computing by 2008-2009. See §I.
`
`
`3 A “POSITA” is a person of ordinary skill in the art at the time of the alleged
`
`invention of the challenged claims, as explained below. See infra §IV.
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000012
`
`

`

`
`
`16. The ’419 patent depicts the basic arrangement of its “dynamic
`
`distributed evaluator system 10” in FIG. 1 as nodes 20 in communication network
`
`12. Ex. 1001 (’419 patent), 2:1-
`
`4. The ’419 patent indicates
`
`evaluator 10 may run an
`
`application that “comprise[s] a
`
`number of operations that the
`
`nodes 20 may perform using code.” Ex. 1001 (’419 patent), 2:4-8. The evaluators
`
`46 in nodes 20 may send and receive instructions, locate and transmit code, and
`
`perform operations, where the instructions and code may be sent over network 12
`
`to the other nodes 20. Ex. 1001 (’419 patent), 2:8-12.
`
`17. The ’419 patent indicates that, where an application is distributed,
`
`multiple nodes 20 may perform related operations, but “[t]he distributed nature of
`
`the application may be transparent to a node 20 that calls for the performance of an
`
`operation” such that “node 20 may not know if the operation it called is being
`
`performed by another node 20.” Ex. 1001 (’419 patent), 2:34-40. Similarly, “an
`
`instruction requesting an operation may be sent without knowing the specific node
`
`20 that has the resources to perform the operation or how to reach that node 20.”
`
`Ex. 1001 (’419 patent), 2:41-44. Instead, “[t]he instruction may simply request a
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000013
`
`

`

`
`
`resource, and the evaluator 46 may then find the resource within the system.” Ex.
`
`1001 (’419 patent), 2:44-48.
`
`18. The ’419 patent’s FIG. 2
`
`depicts node 20 with interface 30,
`
`logic 32 with processor 42, and
`
`memory 34. Ex. 1001 (’419 patent),
`
`2:49-62. Logic 32 performs
`
`operations via instructions that include “an operation to perform, how to perform
`
`the operation, the code to use, how to get the code, how to format the result, what
`
`to do with the result, and/or a combination.” Ex. 1001 (’419 patent), 2:63-3:14.
`
`19. The ’419 patent’s FIG. 3
`
`depicts its method. Ex. 1001 (’419
`
`patent), 4:15-21. At 102, a node may be
`
`added to the network. Ex. 1001 (’419
`
`patent), 4:22-31. At 104, a first node
`
`may establish communication with a
`
`second node, such as through the
`
`network. Ex. 1001 (’419 patent), 4:32-
`
`35.
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000014
`
`

`

`
`
`20. At “108, the first node may tell the second node to perform an
`
`operation.” Ex. 1001 (’419 patent), 4:36-37. The instructions may be sent without
`
`the first node “knowing the code that will be required, when the code will be
`
`needed, or the identity of the node that will perform the operation.” Ex. 1001
`
`(’419 patent), 4:37-40. In other words, the ’419 patent indicates that the
`
`instructions of step 108 (and steps 112 and 116) themselves are not directed to a
`
`particular node in advance of the node performing the instructions, but are sent to
`
`the ’419 patent’s grid of nodes 20a-20n, which will determine which node actually
`
`performs the instructions of step 108 (and 112 and 116) as the “second node.”
`
`21. The ’419 patent indicates that instructions can be many different
`
`things, including “inputs, expected outputs, and/or aspect oriented features to
`
`control the execution and results on remote nodes.” Ex. 1001 (’419 patent), 4:43-
`
`45. The instructions can also be sent from the first node to multiple nodes (as
`
`discussed above), and may be related operations of a common application. Ex.
`
`1001 (’419 patent), 4:46-58.
`
`22. At 112, “[t]he first node may instruct the second node how to perform
`
`the operation using code[.]” Ex. 1001 (’419 patent), 4:59-60. Where the second
`
`node does not have the relevant code, “the first node may provide the code to the
`
`second node or tell the second node how to obtain the code,” such as from a third
`
`node storing the code. Ex. 1001 (’419 patent), 4:60-5:13. Nodes may also make
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000015
`
`

`

`
`
`local copies of retrieved code. Ex. 1001 (’419 patent), 5:14-23. Code may also be
`
`removed from a node after it is executed. Ex. 1001 (’419 patent), 5:24-41.
`
`Different code may be used on different nodes. Ex. 1001 (’419 patent), 5:65-6:11.
`
`23. At “116, the first node may instruct the second node what to do with
`
`the result of the operation.” Ex. 1001 (’419 patent), 6:35-36. Examples include
`
`“returning the result to the first node, sending the result to a third node, or using
`
`the result in another operation.” Ex. 1001 (’419 patent), 6:36-48.
`
`24. Thus, the specification of the ’419 patent appears to be directed to two
`
`main concepts: (i) obscuring which nodes are performing operations from the
`
`standpoint of a requesting node; and (ii) instructing a node framework to perform
`
`operations using code and returning the results. But, again, a POSITA would have
`
`understood these functions (transparency and distributed processing) to be well-
`
`known concepts of distributed computing systems by 2008-2009. See §I. The
`
`’419 patent provides no description of how its processes differ from these well-
`
`known techniques.
`
`B.
`Prosecution History
`25. The ’419 patent was filed as Application No. 12/497,323 on July 2,
`
`2009. Ex. 1002 (’419 patent FH), pp. 296-332. The as-filed application included
`
`independent application claims 1, 11, and 16 (corresponding to issued claims 1, 12,
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000016
`
`

`

`
`
`and 18 of the ’419 patent, respectively). Ex. 1002 (’419 patent FH), pp. 319-322.
`
`As a matter of example, originally filed claim 1 recited:
`
`
`
`26. The language of, for example, claim 1 is similar to the ’419 patent’s
`
`description of its alleged invention in the Summary of the Invention section
`
`discussed above (see ¶15, citing Ex. 1001 (’419 patent), 1:19-24) and thus reads on
`
`a normal one-to-one client/server process. Thus, the Examiner repeatedly rejected
`
`the original independent claims (and slightly amended versions) and the various
`
`dependent claims in view of various prior art teachings, including those of U.S.
`
`Patent No. 6,457,066 to Mein et al., U.S. Patent No. 6,321,274 to Shakib et al.,
`
`U.S. Patent Application Pub. No. 2004/0078486 to Salashoor, U.S. Patent
`
`Application Pub. No. 2005/0114534 to Lee, and U.S. Patent Application Pub. No.
`
`2009/0204694 to Kaneko.
`
`27. After several Office Actions, the Applicant added new application
`
`claims 18, 20, and 22 that specified that the telling and instructing steps involved a
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000017
`
`

`

`
`
`“plurality of nodes” (rather than just a “second node” as recited in, e.g., claim 1)
`
`and that the first node “does not know which one of the plurality of nodes will
`
`perform the operation.” Ex. 1002 (’419 patent FH), pp. 155-156. For example,
`
`new application claim 18 recited:
`
`28. Moreover, the Applicant argued that claims 18, 20, and 22 were
`
`allowable over Mein and Shakib because, in Applicant’s view, those references
`
`teach operation requests being sent directly to the server which performs the
`
`operation, rather than to a plurality, or framework or grid, of nodes. Ex. 1002
`
`(’419 patent FH), p. 161-162, reproduced in part below:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000018
`
`

`

`
`
`
`
`29.
`
`In the next Office Action, the Examiner found each of the added
`
`claims 18, 20, and 22 to be allowable over the applied references if rewritten in
`
`independent form. Ex. 1002 (’419 patent FH), p. 118.
`
`30. Applicant thereafter added the features of application claims 18, 20,
`
`and 22 to respective independent application claims 1, 11, and 16 (corresponding
`
`to issued claims 1, 12, and 18 of the ’419 patent, respectively). Ex. 1002 (’419
`
`patent FH), pp. 83-89.
`
`31. However, the addition of the features by the Applicant resulted in
`
`redundant and inconsistent language. Thus, the Examiner proposed further
`
`substantive revisions in an interview (Ex. 1002 (’419 patent FH), p. 54) after which
`
`the ’419 patent was allowed (Ex. 1002 (’419 patent FH), pp. 37-53).
`
`32. However, this allowance was in error, as the features added to the
`
`claims to gain allowance – the telling and instructing elements being directed to a
`
`plurality of nodes and that the first node “does not know which one of the plurality
`
`of nodes will perform the operation” – were well-known to a POSITA by 2008-
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000019
`
`

`

`
`
`2009. As discussed above, the concepts of: (i) distribution transparency of nodes
`
`to a requesting node; and (ii) instructing a framework of nodes to perform
`
`operations using code and returning results, were well-known concepts of
`
`distributed computing systems by 2008-2009. See §I.
`
`C.
`Priority Date
`33. The ’419 patent was filed on July 2, 2009. It does not claim priority
`
`to any other U.S. or foreign Application. Nor am I aware of any evidence that the
`
`alleged inventions recited in the challenged claims were made earlier than July 2,
`
`2009.
`
`D. Challenged Claims
`34.
`I understand Petitioner is challenging the validity of claims 1-20 of
`
`the ’419 patent in the Petition for Inter Partes Review to which this declaration
`
`will be attached. Those claims are reproduced in Appendix 3. I have considered
`
`each of these claims, as well the ’419 patent prosecution history (Ex. 1002) and the
`
`other exhibits identified herein in forming my opinions.
`
`III. SUMMARY OF THE PRIOR ART
`35. There are a number of patents and publications that constitute prior art
`
`to the ’419 patent. I have reviewed and considered the prior art discussed in this
`
`section, along with the materials listed in Appendix 2.
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000020
`
`

`

`
`
`A.
`Invalidity Grounds
`36. Based on my review and analysis of the materials cited herein, my
`
`opinions regarding the understanding of a POSITA in the 2008-2009 timeframe,
`
`and my training and experience, it is my opinion that the challenged claims of the
`
`’419 patent are invalid based on the following grounds:
`
`Grounds
`
`Claims
`
`1
`
`2
`
`3
`
`1-4, 6-10,
`12, 13, 15,
`16, 18
`5, 11, 14,
`17, 19, 20
`5, 11, 14,
`17, 19, 20
`
`Statutory
`Basis
`Obviousness
`under §103
`
`Obviousness
`under §103
`Obviousness
`under §103
`
`Prior Art
`
`Verbeke
`
`Verbeke in view of Jalan
`
`Verbeke in view of Jalan and
`Neiman
`
`37.
`
`I understand that none of the references identified in the table above
`
`
`
`was cited or considered during prosecution of the ’419 patent. None of the
`
`references or any related patents are listed on the face of the ’419 patent. In
`
`addition, I reviewed the file history for the ’419 patent and am not aware of any of
`
`the above references being discussed in any office action or in the prosecution
`
`history generally.
`
`B.
`Verbeke (Exhibit 1004)
`38. Verbeke (Ex. 1004) is U.S. Patent Application Publication No.
`
`2004/0261069 to Verbeke. It was filed on June 20, 2003, and published on
`
`December 24, 2004.
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000021
`
`

`

`
`
`39.
`
`I understand that Verbeke is prior art under pre-AIA §102(b) because
`
`it is a publication of a U.S. patent application that was published more than one
`
`year before the earliest possible priority date of the ’419 patent (July 2, 2009).
`
`40.
`
`I have reviewed Verbeke. Verbeke is in the same field of endeavor as
`
`the ’419 patent (distributed computing). See infra §IV. Verbeke teaches4 a
`
`distributed computing system to run an application across multiple nodes. Ex.
`
`1004 (Verbeke), ¶[0016]. In Verbeke, the application is divided into N different
`
`code fragments (“tasks”) that are distributed across a plurality of worker nodes. Id.
`
`The worker nodes contain remote class loader mechanisms that locate and
`
`download classes needed for execution of the distributed code fragments. Id.; see
`
`also ¶¶[0066]-[0069].
`
`41. Exemplary embodiments of Verbeke’s distributed computing system
`
`are shown in, for example, its FIGS. 5 and 6, reproduced here.
`
`
`4 I use “teaches” herein to represent the broader concept of “teaches or suggests.”
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000022
`
`

`

`
`
`42. Verbeke teaches that a job submitter (e.g., job submitter node 1206 of
`
`FIG. 6) sends a message to a framework of nodes (e.g., including peer group 1200
`
`with worker nodes 1202a-1202h, task dispatcher peer group with task dispatcher
`
`nodes, and repository peer group of repository nodes) identifying a job to be
`
`performed, the code to be used, and how results are to be returned, where
`
`management of the job on the framework is by a task dispatcher node(s) (e.g., task
`
`dispatcher 1106 in FIG. 5 or a node in task dispatcher peer group in FIG. 6). Ex.
`
`1004 (Verbeke), ¶¶[0066]-[0076], [0079]-[0082], [0093], [0096]. In Verbeke, jobs
`
`are made up of common code for the job and individual tasks (code fragments) for
`
`particular nodes to run. Ex. 1004 (Verbeke), ¶[0073].
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000023
`
`

`

`
`
`43. To run a job, Verbeke teaches that its task dispatcher node(s) polls
`
`code repository node(s) (e.g., via repository manager 1108 in FIG. 5) to determine
`
`if the requested code is stored therein, and obtains it from job submitter node 1206
`
`if necessary. Ex. 1004 (Verbeke), ¶¶[0074]-[0075], [0096]. Repository manager
`
`1108 then creates a job repository for the requested job (e.g., job repositories
`
`1102a, 1102b, and 1102c in FIG. 5) on repository nodes. Id. Tasks may then be
`
`received from the job submitter and stored in the related job repositories (e.g.,
`
`tasks 1104a, 1104b, and 1104c). Ex. 1004 (Verbeke), ¶¶[0074]-[0075], [0096].
`
`44. The task dispatcher node(s) may then distribute tasks and code to
`
`worker nodes it has determined are available to perform the tasks. Ex. 1004
`
`(Verbeke), ¶¶[0076], [0096]. The worker nodes then execute the tasks and send
`
`them back with results to the task dispatcher node(s), which may then store the
`
`results in the relevant job repository in conjunction with the repository manager.
`
`Ex. 1004 (Verbeke), ¶¶[0079], [0096]. The results are then sent back to the job
`
`submitter pursuant to its instructions. Ex. 1004 (Verbeke), ¶[0082].
`
`45. Thus, Verbeke teaches a job submitter communicating with a
`
`framework of nodes (including worker nodes 1202a-1202h, task dispatcher nodes,
`
`and repository nodes), and telling the nodes to perform an operation (e.g., a task)
`
`using code (e.g., the code) and what to do with a result (e.g., return to the job
`
`submitter). Moreover, because the task dispatcher nodes, and not the job submitter
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. - Ex. 1003, Page 000024
`
`

`

`
`
`node, distributes the tasks to the worker nodes, the job submitter node does not
`
`know which worker nodes will perform the tasks it submits. Ex. 1004 (Verbeke),
`
`¶[0071]. These are all the alleged inventive features of the ’419 patent.
`
`Additionally, Verbeke is not cumulative to the references applied by the Examiner
`
`during pros

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