US2019042283A1PendingUtilityA1

Software application delivery and launching system

Assignee: URBACH JULIAN MICHAELPriority: Feb 22, 2011Filed: Oct 9, 2018Published: Feb 7, 2019
Est. expiryFeb 22, 2031(~4.6 yrs left)· nominal 20-yr term from priority
G06F 9/4484G06F 9/44573G06F 9/44584G06F 9/44526G06F 9/44594G06F 12/08G06F 15/16
56
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

One embodiment allocates a first virtual memory; receives executable code of a first piece of software; writes the executable code of the first piece of software directly into the first virtual memory; marks the first virtual memory as executable; executes the executable code of the first piece of software directly from the first virtual memory; and downloads and executes executable code of a second piece of software as facilitated by the executable code of the first piece of software.

Claims

exact text as granted — not AI-modified
1 - 30 . (canceled) 
     
     
         31 . A method comprising:
 establishing, by a processor on a client, a network connection between the client and a server;   receiving, by the processor over the network connection, a data stream from the server, the data stream having at least an executable code of a software program embedded therein;   validating, by the processor, the executable code of the software program embedded in the data stream;   upon validating the executable code of the software program, allocating, by the processor, memory on the client for loading and executing the executable code of the software program;   writing, by the processor, the executable code of the software program into the allocated memory;   launching, by the processor, the executable code of the software program from the allocated memory; and   passing, by the processor, a socket associated with the network connection and the data stream to the software program that is executed on the client configured to extract additional data in the data stream for executing the software program.   
     
     
         32 . The method of  claim 31 , wherein establishing the network connection is by taking over an existing connection already established between the client and the server. 
     
     
         33 . The method of  claim 32 , wherein the existing connection already established between the client and the server is a connection established by a web browser. 
     
     
         34 . The method of  claim 31 , wherein establishing the network connection is by establishing a new connection. 
     
     
         35 . The method of  claim 34 , wherein establishing a new network connection comprises:
 sending, by the processor, a connection request to the server;   receiving, by the processor, a response from the server indicating whether the connection request is accepted or rejected; and   upon receiving the response indicating that the server has accepted the connection request, establishing, by the processor, the network connection between the client and the server.   
     
     
         36 . The method of  claim 35 , wherein a communication between the client and the server is by applying a communication protocol selected from a group of communication protocols consisting of Hypertext Transfer Protocol (HTTP), User Datagram Protocol (UDP), and Transport Control Protocol (TCP). 
     
     
         37 . The method of  claim 31 , wherein multiple versions of multiple software programs are stored on the server and configured to be downloaded by the client. 
     
     
         38 . The method of  claim 31 , wherein a version of the software program is identified by a unique identifier. 
     
     
         39 . The method of  claim 31 , wherein establishing the network connection is via a stub executing on the client. 
     
     
         40 . The method of  claim 31 , wherein a version of the software program is downloaded by a stub executing on the client. 
     
     
         41 . The method of  claim 31 , wherein the executable code of the software program is embedded in the data stream as one or more data packets. 
     
     
         42 . The method of  claim 31 , wherein the data stream includes a first portion of the data stream that contains the executable code of the software program and a second portion of the data stream that contains the additional data configured to be consumed by the software program during its execution. 
     
     
         43 . The method of  claim 42 , wherein the executable code of the software program of the first portion of the data stream is compressed. 
     
     
         45 . The method of  claim 43 , further comprising:
 upon receiving the data stream, accessing, by the processor, the first portion of the data stream to extract the executable code of the software program via decompressing the extracted executable code of the software program.   
     
     
         46 . The method of  claim 31 , wherein the socket is a network socket configured to deliver incoming data packets to an appropriate application process or thread. 
     
     
         47 . The method of  claim 42 , wherein the executable code of the software program from the first portion of the data stream launched by the processor causes another process to be generated by requesting the second portion of the data stream to be launched as a child process. 
     
     
         48 . A system, comprising:
 a memory comprising instructions executable by one or more processors; and   one or more processors coupled to the memory and operable to execute the instructions, the memory comprising instructions for:   establishing, on a client, a network connection between the client and a server;   receiving, over the network connection, a data stream from the server, the data stream having at least an executable code of a software program embedded therein;   validating the executable code of the software program embedded in the data stream;   upon validating the executable code of the software program, allocating memory on the client for loading and executing the executable code of the software program;   writing the executable code of the software program into the allocated memory;   launching the executable code of the software program from the allocated memory; and   passing a socket associated with the network connection and the data stream to the software program that is executed on the client configured to extract additional data in the data stream for executing the software program.   
     
     
         49 . The system recited in  claim 48 , wherein the instructions for establishing the network connection is by establishing a new connection, comprising:
 sending a connection request to the server;   receiving a response from the server indicating whether the connection request is accepted or rejected; and   upon receiving the response indicating that the server has accepted the connection request, establishing the network connection between the client and the server.   
     
     
         50 . One or more computer-readable storage media embodying software operable when executed by a computer system to:
 establish, on a client, a network connection between the client and a server;   receive, over the network connection, a data stream from the server, the data stream having at least an executable code of a software program embedded therein;   validate the executable code of the software program embedded in the data stream;   upon validate the executable code of the software program, allocate memory on the client for loading and executing the executable code of the software program;   write the executable code of the software program into the allocated memory;   launch the executable code of the software program from the allocated memory; and   pass a socket associated with the network connection and the data stream to the software program that is executed on the client configured to extract additional data in the data stream for executing the software program.

Join the waitlist — get patent alerts

Track US2019042283A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.