7:26-cv-00304
S3G Technology LLC v. Expedia Inc
I. Executive Summary and Procedural Information
- Parties & Counsel:
- Plaintiff: S3G Technology LLC (California)
- Defendant: Expedia, Inc. (Washington)
- Plaintiff's Counsel: Parker, Bunt & Ainsworth, P.C.
- Case Identification: 7:26-cv-00304, W.D. Tex., 08/07/2026
- Venue Allegations: Venue is alleged to be proper based on Defendant Expedia, Inc. having a regular and established place of business in Austin, Texas, within the judicial district.
- Core Dispute: Plaintiff alleges that Defendant's mobile travel applications and associated backend server systems infringe six patents related to methods for efficiently modifying software on remote devices.
- Technical Context: The technology addresses the challenge of updating applications on networked devices, such as smartphones, by using small "dialogue modules" to modify application logic instead of transmitting entire new application files, a method significant for systems operating over bandwidth-limited networks.
- Key Procedural History: The complaint references prior litigation involving some of the asserted patents, including a lawsuit against Expedia subsidiary HomeAway, Inc. that resulted in a license and settlement agreement. The complaint also cites a claim construction order from a separate case, S3G Tech. LLC v. Unikey Techs., Inc., which construed several key terms, including "code" and "dialogue module." During prosecution, the USPTO allegedly allowed the patents over prior art and subject matter eligibility challenges.
Case Timeline
| Date | Event |
|---|---|
| 2009-07-23 | Earliest Priority Date for all Asserted Patents |
| 2013-10-29 | U.S. Patent No. 8,572,571 Issued |
| 2015-12-XX | Expedia Group acquires HomeAway, Inc. |
| 2016-04-05 | U.S. Patent No. 9,304,758 Issued |
| 2018-04-10 | U.S. Patent No. 9,940,124 Issued |
| 2019-04-16 | U.S. Patent No. 10,261,774 Issued |
| 2019-08-20 | U.S. Patent No. 10,387,140 Issued |
| 2020-06-24 | S3G files complaint against HomeAway |
| 2020-10-XX | S3G and HomeAway enter license and settlement agreement |
| 2023-05-30 | U.S. Patent No. 11,662,995 Issued |
| 2026-07-30 | Accused Android App updated |
| 2026-08-03 | Accused iOS App updated |
| 2026-08-07 | Complaint Filed |
II. Technology and Patent(s)-in-Suit Analysis
U.S. Patent No. 9,940,124 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
- Patent Identification: U.S. Patent No. 9,940,124, "Modification of Terminal and Service Provider Machines Using an Update Server Machine", issued April 10, 2018 (Compl. ¶13).
- The Invention Explained:
- Problem Addressed: The patent's background describes the difficulty of distributing large, newly compiled software updates to numerous, geographically dispersed devices, especially over wireless networks with limited bandwidth, which can be slow and infeasible (Compl. ¶¶19-21; '124 Patent, col. 2:12-64).
- The Patented Solution: The invention proposes a three-part system architecture-a terminal machine, a service provider machine, and an update server machine-to modify applications efficiently (Compl. ¶22). Instead of replacing entire applications, the system sends small "dialogue modules" containing "code." This "code" is specifically defined as information that must be translated by the existing application software before it can be executed, distinguishing it from "computer-executable instructions" that run directly on the processor (Compl. ¶23; '124 Patent, col. 4:30-40). This allows for lightweight updates to application logic and user interface flows (Compl. ¶¶25-26).
- Technical Importance: This method is presented as a way to significantly reduce network bandwidth consumption, enabling efficient modification and customization of applications on remote devices with limited connectivity (Compl. ¶31; '124 Patent, col. 6:61-63).
- Key Claims at a Glance:
- The complaint asserts at least independent claim 1 (Compl. ¶56).
- The essential elements of method claim 1 include:
- Displaying a first prompt on a terminal machine by running a terminal application that comprises first computer-executable instructions and first code.
- Accepting a first data entry at the terminal machine.
- Communicating information to a service provider machine, which uses a provider application comprising second computer-executable instructions and second code.
- Storing at least a portion of the communicated information in memory for analysis.
- Receiving, at the terminal machine, a terminal dialogue module that updates at least a portion of the first code to produce first updated code.
- The first updated code adapts the terminal application to display a second prompt for a modified dialogue sequence.
- At least one of the first code, the second code, and the first updated code comprise intermediate code.
- The complaint alleges infringement of "one or more claims," preserving the right to assert additional dependent claims (Compl. ¶56).
U.S. Patent No. 10,387,140 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
- Patent Identification: U.S. Patent No. 10,387,140, "Modification of Terminal and Service Provider Machines Using an Update Server Machine", issued August 20, 2019 (Compl. ¶14).
- The Invention Explained:
- Problem Addressed: The '140 patent, being in the same family as the '124 patent, addresses the same technical problem of inefficiently distributing large software updates to remote devices over networks (Compl. ¶¶19-21).
- The Patented Solution: The '140 patent describes a similar method and system for modifying applications using lightweight modules containing translatable "code" rather than full executables (Compl. ¶¶22-26). This patent adds specific limitations, including that the update is initiated in response to a "trigger condition" and that the terminal and server machines use different types of processors ('140 Patent, claim 1). The system architecture involves a terminal machine, service provider machine, and a separate update server machine ('140 Patent, claim 1).
- Technical Importance: The solution aims to provide network-efficient and context-aware software updates, which is valuable for managing applications on diverse, geographically distributed devices (Compl. ¶31).
- Key Claims at a Glance:
- The complaint asserts at least independent claim 1 (Compl. ¶75).
- The essential elements of method claim 1 include:
- Providing a first prompt via a terminal application comprising first computer-executable instructions and first code.
- Receiving a first data entry in response to the prompt.
- Communicating information to a provider application on a service provider machine.
- Receiving, at the terminal machine, "third code" that modifies the "first code" to produce "first updated code" for a modified dialogue.
- Receiving the third code is performed in response to the terminal machine satisfying a "trigger condition."
- The third code is received from an "update server machine" that is separate and distinct from the terminal and service provider machines.
- The terminal and service provider machines include "different types of processors," making their respective computer-executable instructions non-interchangeable.
- The computer-executable instructions are "fully compiled."
- The complaint's allegation of infringement of "one or more claims" reserves the right to assert other claims (Compl. ¶75).
U.S. Patent No. 9,304,758 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
- Patent Identification: U.S. Patent No. 9,304,758, "Modification of Terminal and Service Provider Machines Using an Update Server Machine", issued April 5, 2016 (Compl. ¶15).
- Technology Synopsis: The patent describes a method for modifying software applications that are composed of both directly executable instructions and translatable code, such as "Java Byte code." The system updates the application by receiving a "terminal dialogue module" that replaces a portion of the bytecode, thus avoiding the need to transfer a full application update (Compl. ¶¶19-26; Compl. ¶104).
- Asserted Claims: At least independent claim 1 (Compl. ¶99).
- Accused Features: The complaint alleges that the "Trip Saves" feature of the Expedia app infringes, where the app (a terminal application) has its functionality modified by receiving a "terminal dialogue module" that replaces a portion of its "Java Byte code" to display a new prompt or dialogue sequence (Compl. ¶¶101-104).
U.S. Patent No. 11,662,995 - "Network Efficient Location-Based Dialogue Sequence Using Virtual Processor"
- Patent Identification: U.S. Patent No. 11,662,995, "Network Efficient Location-Based Dialogue Sequence Using Virtual Processor", issued May 30, 2023 (Compl. ¶16).
- Technology Synopsis: This patent describes a system for conducting a dialogue sequence between at least two user devices, facilitated by one or more provider applications. The system works by sending authorizations to each device, receiving "second code" from a first device to supplement the provider application's "first code," and then sending "third code" to a second device to facilitate its part of the dialogue (Compl. ¶¶118-121).
- Asserted Claims: At least independent claim 1 (Compl. ¶117).
- Accused Features: The accused feature is the sharing of "Trip Saves" between devices. A user on a website (first device) saves a trip, which sends code to the Expedia server; another user on the mobile app (second device) then receives an authorization and code to conduct their portion of the dialogue, such as reviewing the shared trip (Compl. ¶¶119-120).
U.S. Patent No. 8,572,571 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
- Patent Identification: U.S. Patent No. 8,572,571, "Modification of Terminal and Service Provider Machines Using an Update Server Machine", issued October 29, 2013 (Compl. ¶17).
- Technology Synopsis: As the parent patent in the family, it establishes the core three-entity architecture (terminal, service provider, update server). It claims a method where both the terminal and service provider machines receive "dialogue modules" from the update server to modify their respective "code" portions, without altering the underlying "computer-executable instructions," thereby enabling a modified dialogue sequence between them (Compl. ¶¶19-26; Compl. ¶143).
- Asserted Claims: At least independent claim 1 (Compl. ¶138).
- Accused Features: The "Trip Saves" functionality is accused. A user's device is alleged to act as an "update server machine" sending a "dialogue module" to Expedia's server, while the server also sends a dialogue module to the user's app, modifying both to enable an updated user interaction (Compl. ¶¶142-143).
U.S. Patent No. 10,261,774 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
- Patent Identification: U.S. Patent No. 10,261,774, "Modification of Terminal and Service Provider Machines Using an Update Server Machine", issued April 16, 2019 (Compl. ¶18).
- Technology Synopsis: The technology is highly similar to the '124 patent, describing a method where a terminal machine receives "third code" that modifies its "first code" to produce "first updated code." This updated code adapts the terminal application to display a new prompt for a modified dialogue sequence with the service provider machine ('774 Patent, claim 1; Compl. ¶161).
- Asserted Claims: At least independent claim 1 (Compl. ¶156).
- Accused Features: The "Trip Saves" feature is accused. The Expedia app on a user's phone allegedly receives information (e.g., JSON data) from the server, which acts as "third code" modifying the app's bytecode ("first code") to enable new interactions, such as reviewing or deleting a Trip Save (Compl. ¶¶158-161).
III. The Accused Instrumentality
- Product Identification: The "Accused Instrumentalities" are Defendant Expedia's mobile applications for Android and iOS devices, along with the supporting backend systems, servers, and software (Compl. ¶11).
- Functionality and Market Context:
- The complaint focuses on the functionality related to "Trip Saves," "Trip Bookings," and "Trip Itinerary" within the Expedia mobile apps (Compl. ¶58; Compl. ¶101; Compl. footnote 17). The system operates on a client-server model where the user's mobile device (the "terminal machine") runs the Expedia app (the "terminal application"), which communicates with Expedia's backend servers (the "service provider machine") (Compl. ¶¶57-58; Compl. ¶60).
- The complaint alleges that when a user interacts with a feature like Trip Saves, the mobile app receives data, such as in JSON format, from the server. This data is alleged to be a "dialogue module" or "code" that updates a portion of the application's bytecode, thereby changing the app's behavior or displayed content without requiring a full application reinstall (Compl. ¶62; Compl. ¶81).
- The complaint identifies the client-side terminal application as running in the Android Runtime (ART) environment and the server-side provider application as being a .NET application (Compl. ¶58; Compl. ¶60).
- Expedia is positioned as "one of the world's largest travel platforms," and the complaint alleges it derives a significant portion of its revenue from the accused products and services (Compl. ¶4; Compl. ¶9). The complaint includes a graphic illustrating the portfolio of brands under the Expedia Group, including Hotels.com, Vrbo, and Orbitz, to underscore its market presence (Compl. p. 4).
IV. Analysis of Infringement Allegations
U.S. Patent No. 9,940,124 Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| displaying a first prompt on a terminal display of a terminal machine by running a terminal application, the terminal application comprising first computer-executable instructions and first code that conduct the terminal machine's portion of the dialogue | The Expedia app ("terminal application") on a user's smartphone ("terminal machine") displays prompts related to "Trip Saves." The app is alleged to comprise the Android Runtime (ART) as "computer-executable instructions" and the app's bytecode as "first code." | ¶58 | col. 7:52-58 |
| accepting a first data entry at the terminal machine, wherein the first data entry is associated with the first prompt | A user saves a new "Trip Save" or reviews existing ones in the app. | ¶59 | col. 7:58-61 |
| communicating information associated with the first data entry from the terminal machine to the service provider machine, wherein the service provider machine uses a provider application comprising second computer-executable instructions and second code | Trip Save data is sent from the user's app to Expedia's server ("service provider machine"), which runs a .NET application. The .NET execution environment (CLR) is alleged to be the "second computer-executable instructions" and the .NET program is the "second code." | ¶60 | col. 8:1-11 |
| storing at least a portion of the information associated with the first data entry in memory for analysis | The Expedia server stores the Trip Save information so it can be analyzed and displayed to the user at a later time. | ¶61 | col. 8:17-19 |
| receiving, at the terminal machine, a terminal dialogue module that updates at least a portion of the first code to produce first updated code | The Expedia app receives information from the server (e.g., in JSON format) which is identified as the "terminal dialogue module." This module updates the app's bytecode ("first code") to produce "first updated code." | ¶62 | col. 9:1-9 |
| wherein the first updated code adapts the terminal application to display a second prompt for the terminal machine's portion of a modified dialogue sequence with the service provider machine | The updated code enables the app to display a new prompt, such as the ability to access a new Trip Save. | ¶62 | col. 9:9-15 |
| wherein at least one of the first code, the second code, and the first updated code comprise intermediate code | The complaint alleges that the app's bytecode constitutes "intermediate code." | ¶62 | col. 9:15-17 |
U.S. Patent No. 10,387,140 Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| providing a first prompt by running a terminal application, the terminal application comprising first computer-executable instructions and first code... | The Expedia app on a user's smartphone provides prompts related to "Trip Saves," comprising the Android Runtime (executable instructions) and the app's bytecode (code). | ¶77 | col. 42:2-9 |
| receiving entry of first data in response to the first prompt | The user saves a new "Trip Save" in the app. | ¶78 | col. 42:10-11 |
| communicating information associated with the first data from the terminal machine to a provider application at the service provider machine... the provider application comprising second computer-executable instructions and second code... | Data is sent from the app to Expedia's server, which runs a .NET application (comprising computer-executable instructions and code). | ¶79 | col. 42:12-22 |
| receiving, at the terminal machine, third code that modifies at least a portion of the first code to produce first updated code, wherein the first updated code adapts the terminal application to conduct a modified dialogue sequence... | The app receives information (e.g., JSON) from the server, which is alleged to be "third code" that modifies the app's bytecode ("first code") to adapt the application for a new dialogue. | ¶81 | col. 42:23-32 |
| wherein receiving the third code is performed in response to the terminal machine satisfying a trigger condition | The trigger condition is alleged to be a user action, such as connecting to a network, accessing the app, or based on location/proximity. | ¶82 | col. 42:49-51 |
| wherein the third code is received from an update server machine that is separate and distinct from the terminal machine and the service provider machine | The "update server machine" is alleged to be another device, such as another smartphone, accessing the system, which is distinct from the user's phone and the Expedia server. | ¶83 | col. 42:52-58 |
| wherein the terminal machine and the service provider machine include different types of processors, whereby the first computer-executable instructions are not able to be executed on the service provider machine and the second computer-executable instructions are not able to be executed on the terminal machine | The user's smartphone is alleged to use an ARM-based processor, while the Expedia server uses an x86-based processor, making their respective native executables incompatible. | ¶84 | col. 42:59-67 |
| wherein the first and second computer-executable instructions are fully compiled | This is alleged to be understood by one of ordinary skill, as the instructions execute directly on their respective processors. | ¶85 | col. 43:1-2 |
| wherein the terminal machine is distinct from the service provider machine | The user's smartphone is a distinct physical device from Expedia's server. | ¶86 | col. 43:11-13 |
- Identified Points of Contention:
- Scope Questions: A central question for all asserted patents will be whether the accused system's use of a standard runtime environment (e.g., Android's ART) executing intermediate code (e.g., bytecode) and receiving data (e.g., JSON objects) from a server fits the patents' specific definitions of "computer-executable instructions," "code," and "dialogue module," particularly as those terms were construed in the prior Unikey litigation (Compl. ¶¶23-27). The analysis will question whether a JSON object is a structural "module" that modifies application logic or is merely data content.
- Technical Questions: For the '140 patent, a key factual question is whether the accused system truly employs a three-entity architecture with a distinct "update server machine" as required by claim 1. The complaint's allegation that another user's smartphone could serve this role (Compl. ¶83) suggests a potential mismatch between the accused system's architecture and the claimed structure.
- Evidentiary Questions: The court will likely examine the nature of the "trigger condition" alleged for the '140 patent (Compl. ¶82). A question will be whether the complaint provides evidence of a specific, claim-compliant trigger, or if it describes standard client-initiated data requests that may not meet the claim's requirements.
V. Key Claim Terms for Construction
The Term: "code"
Context and Importance: This term is the cornerstone of the asserted patents' claimed novelty, distinguishing the invention from methods that update entire executable files. The complaint relies on a prior construction from the Unikey case: "information that must be translated before it can be executed on a processor" (Compl. ¶23, footnote 11). The dispute will hinge on whether modern software components like Android bytecode or .NET programs, which are often just-in-time (JIT) compiled, meet this definition of "translated" "code" as distinct from directly-run "computer-executable instructions."
Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The specification explicitly gives "Java Byte Code" as an example of intermediary code that is translated by a virtual machine ('124 Patent, col. 1:60-65). This may support a reading that covers various forms of intermediate, non-native code used in modern application frameworks.
- Evidence for a Narrower Interpretation: The patents consistently create a dichotomy between "code" that "must be translated" and "computer-executable instructions" that run "directly" on a processor ('124 Patent, col. 2:23-28). A defendant may argue that the JIT compilation used in modern runtimes like ART is a form of direct execution that blurs this line, making the bytecode function more like the patent's "computer-executable instructions" than its "code." The patent's statement that code "must be translated by the software application" may be a focal point of this dispute ('124 Patent, col. 4:34-37).
The Term: "dialogue module"
Context and Importance: This term defines the vehicle for the lightweight updates. The infringement theory depends on data packets, such as JSON objects, qualifying as the claimed "dialogue module." The complaint cites the Unikey construction that it is a "particular type of structure rather than to any structure for performing a function" (Compl. ¶27).
Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The specification states that a dialogue module "can contain code or other data and can be communicated" ('124 Patent, col. 11:1-3, as cited in Compl. ¶27), suggesting it can be a flexible data container. The disclosure that it is preferably "less than 1 Mb" is a very general constraint that could encompass many types of data packets ('124 Patent, col. 6:61-63).
- Evidence for a Narrower Interpretation: The claims require the dialogue module to perform a function: it "modifies the first set of code to produce a first set of updated code" which in turn "adapts the terminal application" ('124 Patent, claim 1). This implies a structural or logical modification to the application's behavior, not just providing data for display. A defendant may argue that a JSON object containing trip details is merely content, not a structural "module" that adapts application logic in the claimed manner.
VI. Other Allegations
- Indirect Infringement: The complaint alleges that Expedia induces infringement by marketing and promoting the accused system and providing instructions to customers to download and use the app in an infringing manner (Compl. ¶¶66, 68). Contributory infringement is alleged on the basis that the accused system is not a staple article of commerce and is especially made to be used in an infringing way (Compl. ¶¶69, 93).
- Willful Infringement: The willfulness allegation is based on alleged pre-suit knowledge of the patents. The complaint asserts that Expedia knew of at least the '140, '758, and '571 patents since June 24, 2020, the date S3G filed suit against Expedia's subsidiary, HomeAway. Knowledge is also alleged from the October 2020 license and settlement agreement with HomeAway (Compl. ¶¶40-49). For all asserted patents, knowledge is also alleged from at least the filing of the present complaint (Compl. ¶55).
VII. Analyst's Conclusion: Key Questions for the Case
- A core issue will be one of definitional scope: can the patents' specific dichotomy between directly-run "computer-executable instructions" and translatable "code" be mapped onto modern software environments like Android's ART and .NET's CLR? The case may turn on whether standard application bytecode and data objects (like JSON) are found to be the specific, structurally-defined "code" and "dialogue modules" required by the claims, especially in light of constructions from prior litigation.
- A key architectural question will be one of structural equivalence: do the accused instrumentalities truly operate as the three-distinct-entity system (terminal, service provider, update server) claimed in patents like the '140 patent? The court will need to determine whether the complaint provides sufficient factual support for the existence of a separate "update server machine" or if it is conflating standard client-server or peer-to-peer interactions with the claimed architecture.
- A central evidentiary question will concern causation and functionality: does the accused system's receipt of data from the server, allegedly in response to a "trigger condition," represent a specific, inventive process as claimed, or is it functionally indistinguishable from conventional client-server data requests inherent to any networked application? The analysis will likely focus on whether the facts alleged show a technical operation that is distinct from the ordinary functioning of mobile apps.