DCT

5:24-cv-00048

S3G Technology LLC v. Ulta Beauty Inc

Key Events
Complaint
complaint

I. Executive Summary and Procedural Information

  • Parties & Counsel:
  • Case Identification: 5:24-cv-00048, E.D. Tex., 04/04/2024
  • Venue Allegations: Plaintiff alleges venue is proper in the Eastern District of Texas because Defendant maintains a regular and established place of business within the district, such as a retail store in Texarkana, and commits acts of alleged infringement there, including by distributing its mobile application to local customers.
  • Core Dispute: Plaintiff alleges that Defendant’s mobile e-commerce application and its associated server infrastructure infringe patents related to a system and method for efficiently modifying remote software applications without requiring a full application update.
  • Technical Context: The technology addresses client-server systems for updating application logic and user interfaces on remote devices, a critical function for conserving network bandwidth and enhancing the performance of distributed mobile applications.
  • Key Procedural History: The complaint references prior litigation involving the asserted patents, S3G Tech. LLC v. Unikey Techs., Inc., in which a court in the same district previously construed key claim terms. These prior constructions may significantly influence the current proceedings. The complaint also notes a licensing history and highlights favorable statements from the U.S. Patent and Trademark Office during prosecution to support the patents' validity.

Case Timeline

Date Event
2009-07-23 Earliest Priority Date for ’897, ’124, and ’468 Patents
2015-07-14 U.S. Patent No. 9,081,897 Issues
2018-04-10 U.S. Patent No. 9,940,124 Issues
2020-11-10 U.S. Patent No. 10,831,468 Issues
2024-02-26 Accused Android App Last Updated
2024-02-27 Accused iOS App Last Updated
2024-04-04 Complaint Filing Date

II. Technology and Patent(s)-in-Suit Analysis

U.S. Patent No. 9,081,897 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"

  • Patent Identification: U.S. Patent No. 9081897, "Modification of Terminal and Service Provider Machines Using an Update Server Machine," issued July 14, 2015.

The Invention Explained

  • Problem Addressed: The patent addresses the technical challenge of updating software applications distributed across a network of remote devices, such as mobile phones. Distributing newly compiled versions of an entire application is described as difficult and inefficient, particularly over wireless networks with limited bandwidth and slow transfer rates (Compl. ¶¶12-14; ’897 Patent, col. 2:12-64).
  • The Patented Solution: The invention proposes a three-entity architecture: a "terminal machine" (e.g., a mobile device), a "service provider machine" (e.g., a back-end server), and an "update server machine." Instead of sending a full application update, the update server sends small "dialogue modules" containing "code" to the other machines. This "code" is defined as information that must be translated by the application before execution. These modules modify the application's behavior and user interface flow without altering the underlying, pre-compiled "computer-executable instructions," thereby enabling lightweight and efficient updates (Compl. ¶¶15-19; ’897 Patent, Abstract, col. 4:26-40, Fig. 1). The complaint includes a reproduction of the patent's Figure 1, which visually depicts the three-machine architecture (Compl. p. 7).
  • Technical Importance: This architectural approach aims to reduce network bandwidth consumption and improve the efficiency of modifying applications on remote devices, a significant consideration in distributed and mobile computing environments (Compl. ¶24; ’897 Patent, col. 6:61-63).

Key Claims at a Glance

  • The complaint asserts at least independent claim 1 (Compl. ¶31).
  • The essential elements of claim 1 include:
    • An update server machine for sending a terminal dialogue module and a provider dialogue module.
    • A terminal machine configured to run a terminal application, which comprises a first set of computer-executable instructions and a first set of code; the instructions can execute directly on the processor, but the code cannot.
    • A service provider machine configured to run a provider application, which comprises a second set of computer-executable instructions and a second set of code with similar properties.
    • The terminal dialogue module modifies the first set of code to produce a first set of updated code, without modifying the first set of computer-executable instructions.
    • The provider dialogue module modifies the second set of code to produce a second set of updated code, without modifying the second set of computer-executable instructions.
    • The updated code adapts the respective applications to use a modified dialogue sequence.

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. 9940124, "Modification of Terminal and Service Provider Machines Using an Update Server Machine," issued April 10, 2018.

The Invention Explained

  • Problem Addressed: As a continuation of the same patent family, the ’124 Patent addresses the same technical problems of inefficient and bandwidth-intensive software updates for remote devices (Compl. ¶12; ’124 Patent, col. 2:12-28).
  • The Patented Solution: The ’124 Patent claims a method for conducting a dialogue using the system architecture described in the family. The claimed process involves the terminal machine displaying a prompt, accepting data entry, and communicating that information to the service provider machine. Crucially, the method includes the terminal machine receiving a "terminal dialogue module" that updates at least a portion of the application's "first code" to produce "first updated code," which in turn adapts the application to display a second, modified prompt (’124 Patent, Abstract, Claim 1).
  • Technical Importance: This patent protects the process of dynamically modifying an interactive user dialogue on a remote device, enabling customization of the user experience without deploying a full software update (Compl. ¶¶22, 24).

Key Claims at a Glance

  • The complaint asserts at least independent claim 1 (Compl. ¶49).
  • The essential elements of method claim 1 include:
    • Displaying a first prompt by running a terminal application comprising first computer-executable instructions and first code.
    • Accepting a first data entry at the terminal machine.
    • Communicating information associated with the data entry to a service provider machine that uses a provider application comprising second computer-executable instructions and second code.
    • 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, second code, and first updated code comprises intermediate code.

U.S. Patent No. 10,831,468 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"

  • Patent Identification: U.S. Patent No. 10831468, "Modification of Terminal and Service Provider Machines Using an Update Server Machine," issued November 10, 2020.
  • Technology Synopsis: This patent claims a method for conducting a dialogue sequence between a terminal machine and a service provider machine. The method involves receiving "third code" at the terminal machine that "replaces or supplements at least a portion but not all of the first code" to adapt the application for a modified dialogue. The claims further require that the third code is received from an update server distinct from the terminal and provider machines and that the machines use different processor types, rendering their respective computer-executable instructions incompatible with each other ('468 Patent, Abstract, Claim 1).
  • Asserted Claims: The complaint asserts at least independent claim 1 (Compl. ¶68).
  • Accused Features: The complaint alleges that the Ulta Beauty app and server system practice the claimed method when a user interacts with features like the "favorite items" list. The user's device (terminal) receives data (allegedly the "third code" in JSON format) from a server (update server) that modifies the app's behavior to reflect, for instance, a newly added favorite item (Compl. ¶¶69-77).

III. The Accused Instrumentality

Product Identification

The accused instrumentalities are collectively identified as the "Accused System," which includes the Ulta Beauty mobile applications for Android and iOS ("Defendant app") and the associated back-end systems, servers, software, and methods that support the app's functionality (Compl. ¶¶7-8).

Functionality and Market Context

The Accused System provides mobile e-commerce services, allowing users to browse and purchase products. The complaint's infringement theory centers on interactive features such as the "favorite list," where a user can add, view, order from, or delete items. This functionality is alleged to involve a dialogue between the user's mobile device and Defendant's servers. During this dialogue, the servers allegedly transmit "dialogue modules" (e.g., data in JSON format) to the mobile app to update the user interface and interaction flow without requiring a new version of the app to be installed from an app store (Compl. ¶¶33-34, 51). The complaint states the app is distributed via the Apple App Store and Google Play and is a source of significant revenue for the Defendant (Compl. ¶¶4, 7).

IV. Analysis of Infringement Allegations

9,081,897 Patent Infringement Allegations

Claim Element (from Independent Claim 1) Alleged Infringing Functionality Complaint Citation Patent Citation
an update server machine ... operable for sending a terminal dialogue module ... and a provider dialogue module A user's device or Defendant's server sends a dialogue module, such as data for a "favorite list item," to the terminal machine and service provider machine respectively. ¶33 col. 4:1-12
a terminal machine ... configured to run a terminal application ... comprises a first set of computer executable instructions and a first set of code The user's smartphone is the terminal machine. The Android Runtime (ART) is the "first set of computer executable instructions," while the Ulta app's bytecode is the "first set of code." ¶34 col. 7:49-61
a service provider machine ... configured to run a provider application ... comprises a second set of computer-executable instructions and a second set of code Defendant's server is the service provider machine. The .Net execution environment (CLR) is the "second set of computer-executable instructions," while the .Net server application is the "second set of code." ¶35 col. 7:62-8:2
wherein the terminal dialogue module modifies the first set of code to produce a first set of updated code ... [and] does not modify the first set of computer-executable instructions Data for a favorite list item modifies the app's bytecode to produce updated code that adapts the dialogue sequence, but does not modify the underlying Android Runtime. ¶36 col. 8:63-9:13
  • Identified Points of Contention:
    • Scope Questions: The case may turn on whether the patent's distinction between "computer-executable instructions" (alleged to be an operating system runtime like ART) and "code" (alleged to be application bytecode or interpreted data like JSON) applies to the architecture of a modern mobile app. A central question is whether receiving and interpreting structured data like JSON to update a UI constitutes modifying code to produce updated code as claimed, or if it is merely an application rendering data as designed.
    • Technical Questions: The complaint alleges that data representing a "favorite list item" is a "terminal dialogue module" that modifies the "first set of code." A key technical question is what evidence demonstrates that the app's bytecode is actually modified, as opposed to the pre-existing, unmodified application logic simply processing new data. The complaint's reproduction of the patent's Figure 2 illustrates the conceptual separation of executable instructions (224) and code (222) within a terminal application (Compl. p. 7).

9,940,124 Patent 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 The Ulta app, comprising the Android Runtime (instructions) and app bytecode (code), displays a prompt for a user to create or review a favorite list. ¶51 col. 1:15-21
accepting a first data entry at the terminal machine The user interacts with the prompt, for example, by adding an item to their favorite list. ¶52 col. 1:22-24
communicating information associated with the first data entry from the terminal machine to the service provider machine The user's action (e.g., adding an item) is communicated from the mobile app to Defendant's server. ¶53 col. 1:25-33
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 app receives data from the server (e.g., in JSON format) that updates the app's bytecode to reflect the new favorite list, which is then displayed to the user. ¶55 col. 1:37-46
wherein at least one of the first code, the second code, and the first updated code comprise intermediate code The complaint identifies the app's bytecode as constituting intermediate code. ¶55 col. 2:54-67
  • Identified Points of Contention:
    • Scope Questions: As with the ’897 Patent, a definitional question arises: does receiving a JSON object and using it to render an updated list on screen meet the claim limitation of "receiving... a terminal dialogue module that updates... the first code to produce first updated code"?
    • Technical Questions: The infringement allegation hinges on whether the received data (e.g., JSON) is merely data processed by the application or if it functions as "intermediate code" that actively updates the application's existing "first code" (bytecode) in the manner required by the claim.

V. Key Claim Terms for Construction

  • The Term: "code"
    • Context and Importance: The patent's inventive concept rests on the architectural separation between un-modifiable "computer-executable instructions" and modifiable "code." The viability of the infringement case depends on whether the accused functionality—interpreting data like bytecode or JSON—falls within the construed scope of this term. Practitioners may focus on this term because the distinction between code and data is a frequent and critical battleground in software patent litigation.
    • Intrinsic Evidence for Interpretation:
      • Evidence for a Broader Interpretation: The complaint cites a prior judicial construction of this term as "information that must be translated before it can be executed on a processor" (Compl. ¶16, fn. 6). Plaintiff may argue this broad definition covers application bytecode or even structured data formats that are interpreted by a runtime engine.
      • Evidence for a Narrower Interpretation: The specification states that "code represents at least some information that must be translated by the software application before it can be implemented on the machine processor" (’897 Patent, col. 4:30-33). Defendant may argue this language implies something more structured and instruction-like than simple data values in a JSON object, which an application is merely designed to display.
  • The Term: "dialogue module"
    • Context and Importance: This term defines the vehicle for the update. Its construction will determine whether a standard data packet, like a JSON object, can be considered the claimed "module."
    • Intrinsic Evidence for Interpretation:
      • Evidence for a Broader Interpretation: The complaint references a prior construction of "code or instructions related to a dialogue sequence" (Compl. ¶18, fn. 7), which could be argued to cover a data object that dictates the content and flow of a user interaction.
      • Evidence for a Narrower Interpretation: The complaint also quotes language from the prior construction order emphasizing that "module" refers to a "particular type of structure rather than to any structure for performing a function" (Compl. ¶20). Defendant may argue that a standard JSON data packet is purely functional data and lacks the specific, inherent "structure" of a module as contemplated by the patent.

VI. Other Allegations

  • Indirect Infringement: The complaint alleges inducement of infringement based on Defendant's acts of marketing, promoting, and instructing customers to download and use the accused mobile application in a manner that allegedly practices the claimed methods (Compl. ¶¶42, 61, 85).
  • Willful Infringement: The complaint alleges that Defendant has had actual knowledge of the patents "At least since the filing of this complaint" (Compl. ¶¶30, 48, 67), establishing a basis for post-suit willfulness. The prayer for relief explicitly requests a finding that infringement is willful (Compl. p. 36).

VII. Analyst’s Conclusion: Key Questions for the Case

  • A core issue will be one of definitional scope: can the patent's distinction between "computer-executable instructions" and "code" be mapped onto modern mobile application architecture, and can the term "code" be construed to cover structured data formats like JSON, or is it limited to information that is more akin to executable script?
  • A key evidentiary question will be one of technical operation: does the accused system's process of receiving data and updating a user interface constitute the claimed act of a "dialogue module" modifying existing application "code" to produce "updated code", or is it more accurately described as a pre-compiled application simply rendering new data as it was originally designed to do?