1:18-cv-01572
Aqua Connect Inc v. Teamviewer US Inc
I. Executive Summary and Procedural Information
- Parties & Counsel:- Plaintiff: Aqua Connect, Inc. (Nevada) and Strategic Technology Partners, LLC (Nevada)
- Defendant: TeamViewer US, LLC (Delaware)
- Plaintiff’s Counsel: Stamoulis & Weinblatt LLC; Law Office of Ryan E. Hatch
 
- Case Identification: 1:18-cv-01572, D. Del., 10/11/2018
- Venue Allegations: Venue is alleged to be proper in the District of Delaware because the Defendant is a resident of Delaware and has committed acts of infringement in the District.
- Core Dispute: Plaintiff alleges that Defendant’s remote access and support software infringes patents related to a software architecture for managing remote user sessions on Mach-derived computer systems.
- Technical Context: The technology concerns terminal server environments, specifically methods for providing multiple, isolated remote user sessions on a single host machine, a key function for enterprise and remote support software.
- Key Procedural History: The complaint alleges that during the prosecution of the reissued ’386 Patent, the patent examiner found the claims to be patent-eligible under the standard set forth in Alice Corp. v. CLS Bank International.
Case Timeline
| Date | Event | 
|---|---|
| 2008-09-23 | Priority Date for ’386 and ’502 Patents | 
| 2014-12-30 | U.S. Patent No. 8,924,502 Issued | 
| 2017-05-02 | U.S. Reissue Patent No. RE46,386 Issued | 
| 2018-10-11 | Complaint Filed | 
II. Technology and Patent(s)-in-Suit Analysis
U.S. Reissue Patent No. RE46,386, “Updating a user session in a Mach-derived computer system environment,” Issued May 2, 2017
The Invention Explained
- Problem Addressed: The patent addresses challenges in terminal server environments, where conventional remote access solutions could not securely and synchronously update the graphical displays for multiple independent remote users, leading to potential security vulnerabilities where information could be passed across user session boundaries (’502 Patent, col. 1:13-28). The complaint also notes that prior art solutions often exposed a user’s session directly to the network and could not support multiple, concurrent, and isolated remote sessions on a single host computer (Compl. ¶8).
- The Patented Solution: The invention proposes a software architecture that splits remote desktop functions into two separate components: an "agent server" operating within a specific user’s context and an "agent client" operating in a separate context (e.g., a system-level context) on the same host machine (’502 Patent, col. 2:31-50; Compl. ¶5). These two components communicate with each other, for instance by passing data through a shared memory location, to manage and update the remote user's session securely and efficiently (’502 Patent, Fig. 1, col. 4:46-65).
- Technical Importance: This split architecture is alleged to enable true multi-user terminal server functionality on Mach-derived systems, allowing for the isolation of user tasks and data, which improves security over conventional solutions (Compl. ¶7).
Key Claims at a Glance
- The complaint asserts independent claim 1 (Compl. ¶21).
- Essential elements of claim 1 include:- A method for updating a user instance on a Mach-derived computing device.
- Creating a user computer context that incorporates an "agent server."
- Associating the agent server with an "agent client," with the two executing in separate processes and separate Mach contexts.
- The agent server generates data for an updated user instance.
- The agent server determines that user computer data has been updated.
- Transferring the corresponding data between the agent server and agent client via a "computer system communication facility" (e.g., a socket, port, or shared memory).
- Transmitting the data over a network to a remote computer system.
 
- The complaint reserves the right to assert additional claims (Compl. ¶21).
U.S. Patent No. 8,924,502, “System, method and computer program product for updating a user session in a Mach-derived system environment,” Issued December 30, 2014
The Invention Explained
- Problem Addressed: The technology addresses the same set of problems as the ’386 Patent: providing secure, efficient, and multi-user remote access in a terminal server environment, particularly for Mach-derived operating systems (’502 Patent, col. 1:13-28; Compl. ¶8).
- The Patented Solution: The solution is a method for transmitting and receiving data that relies on the same core architecture of an "agent server" and an "agent client" operating in separate contexts (’502 Patent, Abstract). The method involves the agent client receiving data from a remote system, transferring it to the agent server, which then processes the data to update the local user instance (’502 Patent, col. 13:19-51).
- Technical Importance: This method provides a bidirectional communication pathway that enables a remote user to not only view but also control a firewalled user session on the host machine, facilitating secure interactive remote sessions (Compl. ¶4, 7).
Key Claims at a Glance
- The complaint asserts independent claim 37 (Compl. ¶37).
- Essential elements of claim 37 include:- A method for transmitting and receiving data.
- Creating a first context with an "agent server" and a second context with an "agent client" on a Mach-derived system, where they run in separate processes.
- The agent client receives data over a network from a remote system.
- Transferring the data to or from the agent server via a "system communication facility."
- The agent server processes the data corresponding to the updated user instance.
- The agent server determines that user data has been updated.
- Transferring the data back to the agent client based on the determination.
- Transmitting the data from the agent client over the network to the remote system.
 
- The complaint reserves the right to assert additional claims (Compl. ¶37).
III. The Accused Instrumentality
Product Identification
- The accused products include TeamViewer 13, Teamviewer Host, TeamViewer QuickSupprt, and TeamViewer QuickJoin. TeamViewer 13 version 13.2.14328 is identified as a representative product (Compl. ¶21, 37).
Functionality and Market Context
- The accused products provide remote access, remote control, and remote support functionality (Compl. ¶4, 8). The complaint alleges that when operating on a Mach-derived system like macOS, the accused products implement a split architecture. Specifically, it is alleged that a "TeamViewer_Desktop program" runs in a user context and functions as the claimed "agent server," while a "TeamViewer_Service program" runs in the system context and functions as the claimed "agent client" (Compl. ¶23-24, 40-41).
- The complaint alleges these two programs communicate to transfer user interface and input data. This transfer is allegedly performed using system communication facilities like sockets and shared memory, with the complaint identifying specific macOS APIs and disassembled function names allegedly involved in these operations (Compl. ¶28, 44, 49).
- No probative visual evidence provided in complaint.
IV. Analysis of Infringement Allegations
RE46,386 Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation | 
|---|---|---|---|
| creating at least one user computer context configured to be executed on a Mach-derived computing device ... wherein each of the at least one user computer context is configured to incorporate an agent server | Teamviewer 13 allegedly creates a user context on a macOS device, which incorporates the "TeamViewer_Desktop program" as the agent server. | ¶23 | col. 3:57-65 | 
| associating the agent server with an agent client, wherein the agent client and the agent server are configured to be executed on the Mach-derived computing device, but in separate processes and in separate Mach contexts | The "TeamViewer_Desktop program" (agent server) is allegedly associated with the "TeamViewer_Service program" (agent client), with the two running in separate processes in the user and system contexts, respectively. | ¶24 | col. 4:12-20 | 
| generating, by the agent server, data corresponding to an updated user instance, wherein the data ... comprises user computer data | The "TeamViewer_Desktop program" allegedly generates data for the user instance, including display, image, video, and input data, citing specific class methods from disassembled code. | ¶25, 26 | col. 5:20-29 | 
| determining, by the agent server, that any portion of the user computer data has been updated | The "TeamViewer_Desktop program" allegedly determines that user data has been updated and processes the data. | ¶27 | col. 5:20-29 | 
| transferring the data corresponding to the updated user instance between the agent server and the agent client via a computer system communication facility | Teamviewer 13 allegedly transfers data between the two programs using a socket facility, citing the macOS API "write" in a disassembled function. The transfer also allegedly involves metadata corresponding to shared memory. | ¶28, 29 | col. 4:46-54 | 
| transmitting the data corresponding to the updated user instance over a communications network to a remote computer system | The accused product allegedly connects over a TCP/IP network to the agent client ("TeamViewer_Service program"), and a specific disassembled function transmits the data to the remote system. | ¶30 | col. 4:60-65 | 
8,924,502 Infringement Allegations
| Claim Element (from Independent Claim 37) | Alleged Infringing Functionality | Complaint Citation | Patent Citation | 
|---|---|---|---|
| creating a first context on a Mach-derived system ... wherein the first context incorporates an agent server | Teamviewer 13 allegedly creates a user context on a macOS device, which incorporates the "TeamViewer_Desktop program" as the agent server. | ¶40 | col. 7:42-45 | 
| creating a second context on the Mach-derived system, wherein the second context incorporates an agent client | Teamviewer 13 allegedly creates a system context which incorporates the "TeamViewer_Service program" as the agent client. | ¶41 | col. 7:46-48 | 
| receiving by the agent client the data over a network from a remote system for update of a user instance | The "TeamViewer_Service program" allegedly receives data from a remote system over a TCP/IP network, citing a disassembled function that uses the "read" API on a network socket. | ¶42, 43 | col. 9:8-13 | 
| transferring the data to or from the agent server via a system communication facility | The "TeamViewer_Desktop program" (agent server) allegedly connects with the "TeamViewer_Service program" (agent client) using a socket, citing the "connect" API in a disassembled function. | ¶44 | col. 9:55-61 | 
| processing, by the agent server, the data corresponding to the updated user instance | The "TeamViewer_Desktop program" allegedly processes data corresponding to the updated user instance, citing several class methods from disassembled code related to display and input events. | ¶45, 46, 47 | col. 14:15-22 | 
| determining, by the agent server, that any portion of the user data has been updated | The "TeamViewer_Desktop program" allegedly determines that user data has been updated and determines which portion has been updated. | ¶48 | col. 8:51-53 | 
| transferring the data to the agent client via a system communication facility based on said determining | Data is allegedly transferred to the "TeamViewer_Service program" from the agent server using the macOS API "write" via a socket or shared memory. | ¶49 | col. 8:54-61 | 
| transmitting from the agent client the data over the network to the remote system | The "TeamViewer_Service program" allegedly transmits data to the remote system over a TCP/IP connection, citing a specific disassembled function. | ¶50 | col. 8:9-17 | 
- Identified Points of Contention:- Technical Questions: The complaint’s infringement theory relies heavily on analysis of disassembled code, citing specific function names (e.g., "sub_100990dcc") while noting that "Actual source code function names may be different" (Compl. ¶22, 38). A central question will be whether discovery and expert analysis validate that these low-level functions perform the specific actions required by the claims, such as the "determining" and "transferring" steps.
- Scope Questions: The dispute may turn on whether TeamViewer’s software architecture, which allegedly uses a "TeamViewer_Desktop" and a "TeamViewer_Service" program, constitutes the claimed "agent server" and "agent client" operating in "separate Mach contexts." The definition of "context" (e.g., user vs. system) and whether the accused product's architecture truly mirrors the claimed separation will be a likely point of dispute.
 
V. Key Claim Terms for Construction
- The Term: "agent server" / "agent client" 
- Context and Importance: These terms define the core components of the patented architecture. The entire infringement case rests on mapping the "TeamViewer_Desktop" and "TeamViewer_Service" programs to these two claim terms. Practitioners may focus on these terms because they appear to be coined by the inventor, and their scope will be defined primarily by the specification. 
- Intrinsic Evidence for Interpretation: - Evidence for a Broader Interpretation: The specification describes the components functionally, for instance, stating the "KVM agent server 106 and the KVM agent client 110 can provide remote input and output for a user context 104" (’502 Patent, col. 4:12-14). Plaintiff may argue that any software modules performing these respective roles fall within the claim scope.
- Evidence for a Narrower Interpretation: The specification repeatedly refers to the components as a "KVM agentserver/client system" (’502 Patent, col. 2:41-42), referencing keyboard, video, and mouse. Defendant may argue this limits the terms to an architecture specifically designed to handle only KVM-type data, as depicted in the embodiments.
 
- The Term: "Mach-derived system" / "Mach-derived computing device" 
- Context and Importance: This term defines the environment in which the invention operates. The infringement allegation depends on the accused TeamViewer products running on macOS qualifying as a "Mach-derived system" (Compl. ¶23). 
- Intrinsic Evidence for Interpretation: - Evidence for a Broader Interpretation: The specification explicitly lists "a Mac OS provided by Apple Inc." as an example of an operating system that can be used (’502 Patent, col. 3:50-53). Plaintiff will argue this shows a clear intent for the term to cover Apple's operating systems.
- Evidence for a Narrower Interpretation: Defendant could argue that "Mach-derived" implies a closer relationship to the original Mach kernel than modern macOS possesses, or that the invention is tied to specific features of the Mach architecture as it existed at the time of the invention which are no longer present or used in the same way in the accused products.
 
VI. Other Allegations
- Indirect Infringement: The complaint makes conclusory allegations of indirect infringement for both patents (Compl. ¶31, 51). However, it does not plead specific facts to support the required elements of knowledge and intent for induced or contributory infringement, such as citing user manuals that instruct infringing use or alleging the sale of a component with no substantial non-infringing use.
VII. Analyst’s Conclusion: Key Questions for the Case
- A core issue will be one of technical mapping: Can Plaintiff's analysis of disassembled code, which it admits may be inexact, provide sufficient evidence that the accused TeamViewer software performs the specific "determining," "transferring," and "processing" steps as recited in the claims, or will discovery reveal a fundamental mismatch in technical operation?
- The case will also turn on a question of definitional scope: Are the terms "agent server" and "agent client," described in the patent as a "KVM agent" system, limited to the specific embodiments shown, or can they be construed more broadly to read on the alleged "TeamViewer_Desktop" and "TeamViewer_Service" programs?
- A final key question relates to architectural equivalence: Does the accused product's separation of processes into "user" and "system" contexts constitute the "separate Mach contexts" required by the claims, or does that term imply a more specific and distinct technical implementation rooted in the Mach kernel that the accused product does not practice?