DCT
2:24-cv-01069
S3G Technology LLC v. Walgreen Co
I. Executive Summary and Procedural Information
- Parties & Counsel:- Plaintiff: S3G Technology LLC (California)
- Defendant: Walgreen Co. (Illinois)
- Plaintiff’s Counsel: Parker, Bunt & Ainsworth, P.C.
 
- Case Identification: 2:24-cv-01069, E.D. Tex., 12/20/2024
- Venue Allegations: Plaintiff alleges venue is proper in the Eastern District of Texas because Defendant Walgreens has a regular and established place of business in the district, specifically citing a store location in Marshall, Texas.
- Core Dispute: Plaintiff alleges that Defendant’s mobile applications and associated backend systems infringe four patents related to methods for efficiently modifying and updating software on remote devices.
- Technical Context: The technology addresses updating distributed software systems, such as client-server mobile applications, by sending small packets of modifiable "code" rather than full application replacements to conserve network bandwidth and computing resources.
- Key Procedural History: The complaint references prior litigation involving the asserted patent family, S3G Tech. LLC v. Unikey Techs., Inc., in which the Eastern District of Texas construed several key claim terms, including "computer-executable instructions," "code," and "dialogue module." Plaintiff also notes that during prosecution, the U.S. Patent and Trademark Office considered and allowed the claims over prior art, finding the claimed three-machine structure and the distinction between executable instructions and translatable code to be non-obvious.
Case Timeline
| Date | Event | 
|---|---|
| 2009-07-23 | Earliest Priority Date ('124, '468, '082, '995 Patents) | 
| 2017-07-07 | E.D. Tex. issues claim construction order in related litigation | 
| 2018-04-10 | '124 Patent Issued | 
| 2020-11-10 | '468 Patent Issued | 
| 2021-12-28 | '082 Patent Issued | 
| 2023-05-30 | '995 Patent Issued | 
| 2024-11-25 | Last update date noted for accused Walgreens Android app | 
| 2024-12-17 | Last update date noted for accused Walgreens iOS app | 
| 2024-12-20 | 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"
The Invention Explained
- Problem Addressed: The patent’s background section describes the difficulty of distributing large, newly compiled software updates to a large number of remote devices, particularly over wireless networks with limited bandwidth and slow transfer rates ('124 Patent, col. 2:39-56). This process is described as potentially time-consuming and economically infeasible (Compl. ¶¶ 15-16).
- The Patented Solution: The invention proposes a three-part system architecture comprising a terminal machine (e.g., a mobile device), a service provider machine (e.g., a backend server), and an update server machine (Compl. ¶ 17; ’124 Patent, Fig. 1). Applications on the terminal and service provider machines are structured with two distinct components: a stable set of "computer-executable instructions" and a separate, modifiable set of "code" that must be translated before execution ('124 Patent, col. 4:30-40). The update server sends small "dialogue modules" containing new or updated "code" to modify the application's behavior (e.g., changing prompts in a user dialogue) without replacing the entire application, thereby saving bandwidth (Compl. ¶¶ 18, 21). The complaint references Figure 1 of the patent, which illustrates the communication pathways between the update server, service provider machine, and terminal machine (Compl. ¶ 17).
- Technical Importance: This architectural approach aims to reduce network bandwidth utilization and improve the efficiency of modifying applications running on remote devices (Compl. ¶ 26).
Key Claims at a Glance
- The complaint asserts at least independent claim 1 ('124 Patent, Compl. ¶ 33).
- Claim 1 of the ’124 Patent is a method claim with the following essential elements:- Displaying a first prompt on a terminal machine by running a terminal application, where the application comprises first computer-executable instructions and first code.
- Accepting a first data entry at the terminal machine.
- Communicating information from the terminal machine to a service provider machine running a provider application, which comprises second computer-executable instructions and second code.
- Storing at least a portion of the 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, second code, or first updated code comprises intermediate code.
 
- The complaint does not explicitly reserve the right to assert dependent claims for this patent.
U.S. Patent No. 10,831,468 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
The Invention Explained
- Problem Addressed: As a continuation of the ’124 Patent, the ’468 Patent addresses the same technical problem of inefficiently updating software on distributed remote devices over networks with limited data transfer capabilities (’468 Patent, col. 2:36-59; Compl. ¶¶ 14-16).
- The Patented Solution: The ’468 Patent describes the same three-machine system and dual-component application structure as the ’124 Patent (’468 Patent, col. 3:41-4:40). The solution focuses on sending targeted updates that modify only the translatable "code" portion of an application, rather than the entire executable, to conduct a modified dialogue sequence between a terminal and a server (’468 Patent, Abstract). Figure 2 of the patent illustrates the application structure, distinguishing between computer-executable instructions (224) and code (222) (’468 Patent, Fig. 2; Compl. ¶ 18).
- Technical Importance: This method allows for efficient modification of application behavior, such as user interface flows and prompts, without the overhead of full application redeployment (Compl. ¶ 26).
Key Claims at a Glance
- The complaint asserts at least independent claim 1 (’468 Patent, Compl. ¶ 52).
- Claim 1 of the ’468 Patent is a method claim with the following essential elements:- Displaying a first prompt on a terminal machine via a terminal application comprising first computer-executable instructions and first code, where the first code comprises information to be translated.
- Receiving entry of first data at the prompt.
- Communicating information to a provider application on a service provider machine.
- Receiving, at the terminal machine, third code that replaces or supplements at least a portion but not all of the first code to produce first updated code.
- The first updated code adapts the terminal application to conduct a modified dialogue sequence.
- The third code comprises information to be translated and is received after the terminal machine satisfies a trigger condition.
- The terminal and service provider machines include different processor types, and their respective executable instructions are not cross-compatible.
 
- The complaint does not explicitly reserve the right to assert dependent claims for this patent.
U.S. Patent No. 11,210,082 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
- Technology Synopsis: The ’082 Patent is part of the same patent family and is directed to the server-side method of the claimed invention (Compl. ¶ 12). It describes a service provider machine receiving information from a user, and then receiving "second code" that supplements its own application code to produce "first updated code," thereby adapting the server's portion of a modified dialogue sequence (Compl. ¶¶ 79, 82).
- Asserted Claims: At least independent claim 1 (Compl. ¶ 77).
- Accused Features: The complaint alleges that Walgreens’ backend servers, which run a .NET application, infringe the ’082 patent by receiving user data from the mobile app (e.g., "Clipped Coupons" interactions) and then receiving "second code" (allegedly JSON data) that updates the server application's code to conduct a modified dialogue with the user's device (Compl. ¶¶ 79, 82).
U.S. Patent No. 11,662,995 - "Network Efficient Location-Based Dialogue Sequence Using Virtual Processor"
- Technology Synopsis: The ’995 Patent extends the core technology to a scenario involving a dialogue sequence between at least two user devices that is facilitated by one or more provider applications (Compl. ¶ 97). The system involves sending authorizations to each device, and then receiving "second code" from a first user device that supplements the provider application's code, which in turn facilitates the dialogue with a second user device (Compl. ¶¶ 98-100).
- Asserted Claims: At least independent claim 1 (Compl. ¶ 96).
- Accused Features: The accused functionality involves a user interacting with Walgreens’ services across multiple devices, such as saving a coupon on the Walgreens website (first user device) and having that action update the provider application, which then facilitates a modified dialogue (e.g., showing the new coupon) on the Walgreens mobile app (second user device) (Compl. ¶¶ 98-100).
III. The Accused Instrumentality
Product Identification
- The accused instrumentalities are the Walgreens mobile applications for Android and iOS (collectively, the "Defendant app") and the associated backend "systems, methods, computing devices, servers, software" that support the apps (collectively, the "Accused System") (Compl. ¶ 8).
Functionality and Market Context
- The complaint focuses on the "Clipped Coupons" feature within the Walgreens app (Compl. ¶ 35). This feature allows a user to view, select, and manage digital coupons on their mobile device. This functionality requires a "dialogue" between the user's mobile device (the terminal machine) and Walgreens’ backend servers (the service provider machine) to synchronize the coupon list and user actions, such as deleting a coupon (Compl. ¶¶ 35, 37). The complaint alleges this client-server interaction for managing coupons constitutes the infringing method (Compl. ¶ 34).
IV. Analysis of Infringement Allegations
'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 ... by running a terminal application, the terminal application comprising first computer-executable instructions and first code | The Walgreens app displays a list of "Clipped Coupons," which acts as a prompt for the user to review or delete items. The app is alleged to comprise computer-executable instructions (the Android Runtime) and first code (the app's bytecode). | ¶35 | col. 7:56-61 | 
| communicating information associated with the first data entry from the terminal machine to the service provider machine... [which] uses a provider application comprising second computer-executable instructions and second code | User actions, such as removing a coupon, are communicated to the Walgreens server. The server runs a provider application (allegedly .NET) comprising executable instructions (the Common Language Runtime) and second code (the .NET program). | ¶37 | col. 7:22-30 | 
| 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 Walgreens app receives information from the server, allegedly in JSON format, which represents a "terminal dialogue module." This JSON data updates the app's coupon list data, which is alleged to be the "first code." | ¶39 | col. 8:63-9:3 | 
| 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 | The updated coupon list data (the "first updated code") adapts the app to display a new or modified list of coupons, which constitutes a second prompt in a modified dialogue. For example, the ability to access new clipped coupons is described as a second prompt. | ¶39 | col. 12:4-12 | 
| wherein at least one of the first code, the second code, and the first updated code comprise intermediate code | The Walgreens app's bytecode is alleged to be "intermediate code" that satisfies this limitation. | ¶40 | col. 2:65-68 | 
'468 Patent Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation | 
|---|---|---|---|
| displaying a first prompt on a terminal display... the terminal application comprising first computer-executable instructions and first code that conduct the terminal machine's portion of the dialogue sequence... wherein the first code comprises information to be translated | The Walgreens app displays a list of Clipped Coupons. The app's bytecode is alleged to be the "first code" that comprises "information to be translated" by the Android Runtime (ART). | ¶54 | col. 7:56-61 | 
| receiving, at the terminal machine, third code that replaces or supplements at least a portion but not all of the first code to produce first updated code | Information sent from the Walgreens server to the app, allegedly in JSON format, updates the coupon list. This is alleged to supplement a portion (the coupon data) but not all of the app's bytecode. | ¶57 | col. 8:63-9:3 | 
| wherein the first updated code adapts the terminal application... to conduct a modified dialogue sequence | The updated coupon data allows the app to display a new list of coupons and prompts, such as the ability to access new coupons, which constitutes a modified dialogue sequence. | ¶57 | col. 12:4-12 | 
| 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 complaint alleges the "third code" is received from an update server machine, identifying it as a device accessing the Accused System, which is distinct from the user's phone and the Walgreens server. | ¶60 | col. 3:41-47 | 
| 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 mobile device (e.g., using an ARM-based processor) and the Walgreens server (e.g., using an x86 processor) are alleged to have different, non-compatible processor architectures. | ¶61 | col. 2:50-56 | 
Identified Points of Contention
- Scope Questions: A central issue may be whether the architectural distinction claimed in the patents between "computer-executable instructions" and "code [that] comprises information to be translated" maps onto the real-world operation of the accused system. The allegation that the Android Runtime (ART) is the "instructions" and the app's bytecode is the "code" raises the question of whether bytecode is truly just "information to be translated" or if it is directly executed by components within the ART, such as a Just-in-Time (JIT) compiler.
- Technical Questions: The infringement theory hinges on characterizing data payloads (e.g., JSON files representing coupon lists) as "dialogue modules" containing "code" that structurally "updates" or "supplements" the application's own code. A key technical question will be whether this characterization holds, or if the accused app is simply processing data using its pre-existing, unmodified logic. The complaint's reliance on a prior construction of "dialogue module" as a "particular type of structure" suggests this will be a focal point of dispute (Compl. ¶ 22).
V. Key Claim Terms for Construction
- The Term: "code" - Context and Importance: This term is the technological linchpin of the asserted patents, as it is defined in opposition to directly "computer-executable instructions." The entire infringement theory depends on mapping the accused app's bytecode to this term. Practitioners may focus on this term because the complaint relies on a prior construction defining it as "information that must be translated before it can be executed on a processor" (Compl. ¶ 18, fn. 6). The dispute will likely center on whether modern mobile runtimes like ART "translate" bytecode in the manner contemplated by the patent, or execute it more directly.
- Intrinsic Evidence for Interpretation:- Evidence for a Broader Interpretation: The specification states that the system allows for modification "without modifying the computer executable instructions of the software applications," suggesting "code" is anything that can be modified separately from the core executable engine (Compl. ¶ 25).
- Evidence for a Narrower Interpretation: The specification explicitly states that "[t]he code represents at least some information that must be translated by the software application before it can be implemented on the machine processor" (’468 Patent, col. 4:30-33, emphasis added). This "must be translated" requirement could support a narrower definition that excludes code formats handled by JIT compilers or other modern execution environments.
 
 
- The Term: "dialogue module" - Context and Importance: The infringement allegations characterize a JSON data file from a server as a "dialogue module" (Compl. ¶ 39). The viability of this theory depends on whether a data structure containing application data (like a list of coupons) meets the definition of a "module" that structurally modifies the application. Practitioners may focus on this term because the complaint highlights a prior judicial finding that the term refers to "a particular type of structure rather than to any structure for performing a function" (Compl. ¶ 22).
- Intrinsic Evidence for Interpretation:- Evidence for a Broader Interpretation: The patent abstract states the module "modifies the first... set of code to produce a first... set of updated code," which could be read to cover any data that causes the application's internal state (the code) to change (’124 Patent, Abstract).
- Evidence for a Narrower Interpretation: The specification states the module "adapts the terminal application to perform a modified dialogue protocol," which could imply a structural or logical modification to the application's conversational flow, rather than just an update of the data used within that flow (’124 Patent, col. 8:63-9:3).
 
 
VI. Other Allegations
- Indirect Infringement: The complaint alleges inducement by asserting that Walgreens instructs customers to download and use the accused app, knowing that its use in connection with Walgreens' servers infringes the patents (Compl. ¶¶ 43, 45, 70). Contributory infringement is alleged on the basis that the accused system is not a staple article of commerce and is especially adapted for infringement (Compl. ¶¶ 46, 71).
- Willful Infringement: The complaint alleges knowledge of the patents "At least since the filing of this complaint" (Compl. ¶¶ 32, 51, 76, 95). This forms the basis for a claim of post-suit willful infringement.
VII. Analyst’s Conclusion: Key Questions for the Case
- A core issue will be one of definitional scope: can the patent's architectural distinction between directly "computer-executable instructions" and "code" that "must be translated" be construed to map onto the technical reality of modern mobile application environments, where bytecode is processed by complex runtimes that may include Just-in-Time compilation?
- A key evidentiary question will be one of structural equivalence: does a data payload, such as a JSON file containing a list of coupons, constitute the "particular type of structure" required by the term "dialogue module," or is it merely data being processed by a static, unmodified application logic, creating a fundamental mismatch in technical operation?
- A third question will concern the evolution of the technology: for the ’995 Patent, the case may turn on whether a user’s multi-device interaction (e.g., website and mobile app) constitutes the claimed method of conducting a dialogue "between at least two user devices" facilitated by a provider application, or if it is simply two separate dialogues between each device and a central server.