DCT
1:16-cv-02880
Kaufman v. Microsoft Corp
I. Executive Summary and Procedural Information
- Parties & Counsel:
- Plaintiff: Michael Philip Kaufman (New York)
- Defendant: Microsoft Corporation (Washington)
- Plaintiff’s Counsel: LEWIS BAACH pllc KAUFMANN MIDDLEMISS
- Case Identification: 1:16-cv-02880, S.D.N.Y., 04/18/2016
- Venue Allegations: Plaintiff alleges venue is proper because Microsoft is subject to personal jurisdiction in the district, maintains a regular and established place of business in the district, and substantial parts of the alleged infringement have occurred there.
- Core Dispute: Plaintiff alleges that Defendant’s ASP.NET software development frameworks and related tools infringe a patent for technology that automatically generates a user interface based on a relational database's structure.
- Technical Context: The technology addresses the automatic creation of data-driven software applications, a foundational element of enterprise software development used to provide user access to large, complex databases.
- Key Procedural History: The complaint alleges that Microsoft had pre-suit knowledge of the technology and the patent-in-suit based on citations made to the inventor's patent family in Microsoft's own U.S. and European patent applications. This alleged knowledge forms the basis for the willfulness claim.
Case Timeline
| Date | Event |
|---|---|
| 2001-03-16 | '981 Patent Priority Date |
| 2009-12-17 | Earliest Alleged "Notice Date" (Microsoft EP Application citation) |
| 2011-02-08 | '981 Patent Issue Date |
| 2016-04-18 | Complaint Filing Date |
II. Technology and Patent(s)-in-Suit Analysis
U.S. Patent No. 7,885,981 - "System and Method for Generating Automatic User Interface for Arbitrarily Complex or Large Databases"
- Patent Identification: U.S. Patent No. 7,885,981, "System and Method for Generating Automatic User Interface for Arbitrarily Complex or Large Databases," issued February 8, 2011.
The Invention Explained
- Problem Addressed: The patent describes the process of creating user interfaces for complex relational databases as traditionally being a manual, repetitive, and tedious coding task ('981 Patent, col. 2:20-37; Compl. ¶9). Prior art automated tools were often too rigid or limited, failing to properly handle the complex data dependencies and relationships within large enterprise-level databases (Compl. ¶9).
- The Patented Solution: The invention provides a system that automatically analyzes the structure (or "schema") of an existing relational database and, based on that analysis, generates a complete and functional user interface ('981 Patent, Abstract). This generated UI allows end-users to perform standard database operations—create, retrieve, update, and delete (CRUD)—while automatically enforcing the underlying data relationships and integrity rules, thereby preventing data corruption ('981 Patent, col. 3:21-28). The system is designed to work with any relational database, regardless of its size or complexity (Compl. ¶9).
- Technical Importance: By automating the UI generation process, the invention aimed to drastically reduce the development cost and time required to build enterprise-grade, data-driven applications (Compl. ¶9).
Key Claims at a Glance
- The complaint asserts independent claims 1 (a method), 4 (a system), and 5 (a computer-readable storage medium) (Compl. ¶18).
- The essential elements of independent claim 1 include:
- Operating a server to automatically generate an end-user interface for a relational database.
- The database comprises a plurality of tables, constraints, and relationships.
- The server scans the database to determine its structure and relationships based on a set of rules.
- It stores representations of this determined structure.
- It uses these representations to construct a client application.
- The generated application provides displays for various modes (e.g., create, retrieve, update, delete) and includes integrated processes for navigating between tables while enforcing the relational interdependencies.
III. The Accused Instrumentality
Product Identification
- The complaint names several Microsoft software development tools, collectively referred to as the "Accused Products." These include "ASP.NET Dynamic Data," "ASP.NET MVC," "ASP.NET Dynamic Data Scaffolding," "ASP.NET MVC Scaffolding," and "LightSwitch" (Compl. ¶11).
Functionality and Market Context
- The Accused Products are described as development tools within Microsoft's .NET Framework that automate the generation of web applications based on a database schema or data model (Compl. ¶11). The complaint alleges that ASP.NET Dynamic Data, for example, "automatically generate[s] Web pages for each table in the database" using a feature called "scaffolding" to create a functional website for viewing and editing data (Compl. ¶20).
- These tools allegedly use technologies like LINQ to SQL and the ADO.NET Entity Framework to create a data model from a connected database, which is then used to generate the application's user interface (Compl. ¶21, ¶26).
- The complaint alleges the Accused Products are widely used by Microsoft's customers, including large enterprises, to develop data-driven applications (Compl. ¶12).
- No probative visual evidence provided in complaint.
IV. Analysis of Infringement Allegations
'981 Patent Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| a method for operating a server... for automatically generating an end-user interface for... a relational database | ASP.NET Dynamic Data is a web application framework requiring a server. It "automatically generate[s] Web pages for each table in the database" using "scaffolding" to create a functional site for "viewing and editing data." | ¶19, ¶20 | col. 377:1-5 |
| defining a user interface paradigm comprising a set of modes for interacting with a given database table, said modes comprising create, retrieve, update and delete... | The accused "scaffolding" generates web pages that "provide create, read, update and delete (CRUD) operations for each table." The system uses "page templates for different views of data." | ¶25 | col. 377:18-22 |
| causing said server to scan said database and apply a body of rules to determine the table structures, constraints and relationships of said data model... | "At run time, Dynamic Data automatically extracts metadata information from the data model" using technologies like "LINQ to SQL and ADO.NET Entity Framework that are used to generate data models." | ¶26 | col. 378:1-5 |
| and storing representations thereof in machine-readable media accessible to said server... | The "Dynamic Data architecture contains... [a d]ata layer, which contains the data model that represents the database entities as CLR types." | ¶27 | col. 378:5-7 |
| and, causing said server to use said representations to construct a corresponding client application... | "ASP.NET analyzes the data model and generates Web pages dynamically based on the metadata information" to create "data-driven Web applications by inferring at run time the appearance and behavior of data entities from the database schema." | ¶28 | col. 378:7-11 |
| and for interacting in accordance the selected mode with the data in the tables... | A user interacts with data via "predefined pages to perform CRUD operations." | ¶34 | col. 378:22-25 |
| while observing and enforcing relational interdependencies among data across said tables | Dynamic Data allegedly enforces relationships by rendering foreign keys as "hyperlinks that navigate to a scaffolded page for the parent table" and as "drop-down lists that let a user modify the foreign-key value" in edit mode. | ¶35 | col. 378:25-28 |
- Identified Points of Contention:
- Scope Questions: The complaint alleges that "scaffolding" in modern frameworks like ASP.NET MVC is equivalent to "automatically generating an end-user interface" as claimed in the patent. A potential point of dispute is whether "scaffolding," which often generates template source code for a developer to then modify, meets the claim requirement of constructing a "corresponding client application," or if it is merely a developer's tool that falls short of full, automatic generation.
- Technical Questions: The patent describes a process of "scanning" the database to "determine" its structure. The complaint alleges that Microsoft's use of Object-Relational Mappers (ORMs) like the Entity Framework satisfies this step. A question for the court may be whether the process by which an ORM generates a data model (which can be "database-first," "model-first," or "code-first") is technically equivalent to the direct database "scan" and "interrogation" described in the patent specification ('981 Patent, col. 4:38-39).
V. Key Claim Terms for Construction
The Term: "automatically generating an end-user interface"
Context and Importance: This phrase is central to the invention. Its construction will likely determine whether the "scaffolding" functionality of the Accused Products infringes. The dispute will center on the required level of automation and the finality of the generated product.
Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: Plaintiff may point to the abstract, which states the invention "dynamically generates" a UI, and language in the complaint describing how ASP.NET "automatically generate[s] Web pages" (Compl. ¶20). This could support a reading where any automatic creation of UI components, even if intended for further development, falls within the claim scope.
- Evidence for a Narrower Interpretation: Defendant may highlight specification language stating an object of the invention is to provide a "complete and fully functional user interface... without any custom software programming" ('981 Patent, col. 3:9-12). This suggests the generation must result in a final, ready-to-use application, which could be argued as distinct from "scaffolding" that produces a starting point for a developer.
The Term: "scan said database"
Context and Importance: This term defines the mechanism for discovering the database structure. Its construction is critical because the Accused Products allegedly use modern ORM technology, and the parties will likely dispute whether this constitutes a "scan."
Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The patent specification refers to an "automated interrogation of the RDBMS" and its schema ('981 Patent, col. 4:38-39). Plaintiff may argue this language is broad enough to encompass the methods used by an ORM to reflect a database's structure into a data model.
- Evidence for a Narrower Interpretation: Defendant may argue that the term, in the context of the patent's 2001 priority date, implies a more direct, procedural query of the database's system tables. This could be contrasted with modern ORM approaches, particularly "code-first" development where the application code, not a database scan, is the primary source of truth for the data model.
VI. Other Allegations
- Indirect Infringement: The complaint alleges that Microsoft induces infringement by providing the Accused Products to its customers and actively encouraging and instructing them, via user guides and training materials, to use the infringing database application-creation features (Compl. ¶54). It also alleges contributory infringement, stating the accused software modules are a material component of the invention, not suitable for substantial non-infringing use, and supplied with knowledge of their adaptation for infringement (Compl. ¶59-60).
- Willful Infringement: The complaint asserts willful infringement based on alleged pre-suit knowledge of the patent (Compl. ¶66). This knowledge is predicated on Microsoft's own patent applications citing the inventor's patent family, with the earliest alleged "Notice Date" being December 17, 2009 (Compl. ¶14, ¶65).
VII. Analyst’s Conclusion: Key Questions for the Case
- A core issue will be one of technological translation: Can the specific, multi-step method of automatically generating a UI described in the '981 Patent, which has a 2001 priority date, be read to cover the functionality of modern, pattern-based "scaffolding" tools in frameworks like ASP.NET? The case may turn on whether "scaffolding" is merely a code-generation aid for developers or if it performs the claimed function of constructing a client application.
- A central question of claim scope will be: What degree of automation and finality is required by the term "automatically generating an end-user interface"? The resolution of this question will likely decide whether a tool that creates a developer-extensible starting point infringes a claim for a system that creates a "complete and fully functional" UI.
- A key question for damages will be one of intent: Does Microsoft's alleged knowledge of the inventor's patent family, derived from citations in its own unrelated patent prosecution, suffice to prove the specific intent required for inducement and the "egregious" conduct necessary for a finding of willful infringement regarding the Accused Products?