IP Library Granted Patent US 9,736,098
Granted Patent B2
US 9,736,098 · App. 14/175,382 · Granted Aug 15, 2017

Email-based software delivery

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,736,098
App. No.
14/175,382
Granted
Aug 15, 2017
Kind
B2
Abstract

A method, apparatus, and program product are disclosed for dividing, by a processor, a code segment into one or more portions that together form the code segment, generating a plurality of email messages, combining one or more portions of the code segment into an email message of the plurality of email messages, and sending the plurality of email messages to a client to be reassembled on the client.

Claims (29)

1. An apparatus comprising:

a server comprising a processor, wherein the server communicates with a client;

a partition module that divides, by the processor, a code segment into one or more portions that together form the code segment, each of the one or more portions of the code segment having a size specified by a user associated with the server;

an email module that generates a plurality of email messages and combines one or more portions of the code segment into each email message of the plurality of email messages; and

a communication module that sends the plurality of email messages to the client to be reassembled on the client, each of the plurality of email messages being sent in succession, wherein a subsequent email message is not sent until an acknowledgement email message is received from the client, the acknowledgement email message acknowledging successful receipt of a preceding email message,

wherein at least a portion of the said modules comprise one or more of a hardware circuit, a programmable hardware device, and code executable by a processor, the executable code stored on one or more non-transitory computer readable storage media.

2. The apparatus of claim 1 , further comprising an action module that confirms an action related to the code segment, wherein the action is selected from the group consisting of a reassembly on the client and an execution on the client.

3. The apparatus of claim 1 , wherein the email module combines one or more portions of the code segment into an email message by attaching the one or more portions to the email message.

4. The apparatus of claim 1 , further comprising a sequence module that determines an order to send the plurality of email messages to the client.

5. The apparatus of claim 1 , wherein an email message of the plurality of email messages comprises instructions for reassembling the one or more portions of the code segment.

6. The apparatus of claim 1 , wherein the communication module pauses sending email messages of the plurality of email messages in response to communication with the client being interrupted, and wherein the communication module continues sending email messages of the plurality of email messages in response to communication with the client being restored.

7. The apparatus of claim 1 , further comprising an integrity module that resends one or more email messages in response to receiving an integrity email from the client, the integrity email indicating that one or more portions of the code segment lacks integrity.

8. The apparatus of claim 1 , further comprising a security module that encrypts each email message of the plurality of email messages.

9. The apparatus of claim 1 , further comprising a status module that determines the status of one or more code segments sent to a client, the status of the one or more code segments being presented to a user.

10. The apparatus of claim 1 , wherein the code segment comprises one of a software update, a patch, and a software application.

11. A method comprising:

dividing, by a processor, a code segment into one or more portions that together form the code segment, each of the one or more portions of the code segment having a size specified by user input;

generating a plurality of email messages and combining one or more portions of the code segment into each email message of the plurality of email messages, wherein at least one email message includes additional data associated with the code segment in a body of the at least one email message; and

sending the plurality of email messages to a client to be reassembled on the client, each of the plurality of email messages being sent in succession, wherein a subsequent email message is not sent until an acknowledgement email message is received from the client, the acknowledgement email message acknowledging successful receipt of a preceding email message.

12. The method of claim 11 , further comprising confirming an action related to the code segment wherein the action is selected from the group consisting of a reassembly on the client and an execution on the client.

13. The method of claim 11 , further comprising wherein combining one or more portions of the code segment into an email message comprises attaching the one or more portions to the email message.

14. The method of claim 11 , further comprising determining an order to send the plurality of email messages to the client.

15. The method of claim 11 , further comprising resending one or more email messages in response to receiving an integrity email from the client, the integrity email indicating that one or more portions of the code segment lacks integrity.

16. The method of claim 11 , further comprising encrypting each email message of the plurality of email messages.

17. The method of claim 11 , further comprising determining the status of one or more code segments sent to a client, the status of the one or more code segments being presented to a user.

18. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor to perform:

dividing a code segment into one or more portions that together form the code segment, each of the one or more portions of the code segment having a size specified by user input;

generating a plurality of email messages and combining one or more portions of the code segment into each email message of the plurality of email messages, wherein at least one email message includes additional data associated with the code segment in one or more email header fields, the additional data comprising one or more of, a size of a code portion attached to the at least one email message, a total size of the code segment, and one or more error codes; and

sending the plurality of email messages to a client to be reassembled on the client, each of the plurality of email messages being sent in succession, wherein a subsequent email message is not sent until an acknowledgement email message is received from the client, the acknowledgement email message acknowledging successful receipt of a preceding email message.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2019
From: LENOVO (SINGAPORE) PTE. LTD.
To: LENOVO PC INTERNATIONAL LIMITED
Reel/Frame 049693/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2014
From: PARKER, JOSEPH ROBERT
To: LENOVO (SINGAPORE) PTE. LTD.
Reel/Frame 032173/0021 →