System and method for providing real-time execution of source code in a collaborative online software development environment

US9940127B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9940127-B1
Application numberUS-201615292171-A
CountryUS
Kind codeB1
Filing dateOct 13, 2016
Priority dateMay 7, 2012
Publication dateApr 10, 2018
Grant dateApr 10, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Access to a source code file stored at a server is provided to a plurality of user devices, via a network. The source code file may comprise software code. The source code file stored at the server is updated based on a plurality of changes received from respective user devices, substantially in real-time. A selection of an option to execute the source code file is received from one of the plurality of user devices. In response to the selection, the source code file is executed, substantially in real-time.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of providing software development services, the method comprising: providing, by one or more processors, to a plurality of user devices, access to a source code file via a network; receiving, by the one or more processors, a first change to the source code file and a second change to the source code file; detecting, by the one or more processors, a conflict between the first and second change to the source code file; determining, in response to the detection of the conflict, by the one or more processors, a first transformed operation based on the first change to the source code file and a second transformed operation based on the second change to the source code file; modifying, by the one or more processors, the source code by applying the first transformed operation and the second transformed operation to the source code; determining, for each of the plurality of user devices, by the one or more processors, a local portion of the source code file stored by each respective user device, the local portion being less than all of the source code file and each respective user device storing only a local portion of the source code file; determining, by the one or more processors, whether a modified portion of the source code corresponds to any of the local portion of the source code file stored by the plurality of user devices; and transmitting; by the one or more processors, the modified portion of the source code to a respective user device when the modified portion of the source code corresponds to the local portion of the source code file stored by the respective user device. 2. The method of claim 1 , wherein the conflict is detected by determining that updating the source code in accordance with the first change produces an updated source code inconsistent with the second change. 3. The method of claim 1 , wherein applying the first change to the source code file followed by applying the second change to the source code file produces a different result than applying the second change to the source code file followed by applying the first change to the source code file. 4. The method of claim 1 , wherein determining the first transformed operation and the second transformed operation comprises determining that an application of the first transformed operation to the source code followed by an application of the second transformed operation to the source code is equivalent to the application of the second transformed operation to the source code followed by the application of the first transformed operation to the source code. 5. The method of claim 1 , wherein the first change is received from a first user and the second change is received from a second user, and the first change and the second change are received substantially simultaneously. 6. The method of claim 1 , wherein the source code file comprises software code, the method further comprising: allowing a plurality of users employing the plurality of user devices to collaboratively edit the software code. 7. The method of claim 6 , wherein the plurality of users have substantially simultaneous access to the source code file stored at a server, via the network. 8. The method of claim 1 , wherein modifying the source code comprises modifying only a portion of the source code. 9. A non-transitory computer-readable medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to perform a method of providing software development services, the method comprising: providing to a plurality of user devices, access to a source code file via a network; receiving a first change to the source code file and a second change to the source code file; detecting a conflict between the first and second change to the source code file; determining, in response to the detection of the conflict, a first transformed operation based on the first change to the source code file and a second transformed operation based on the second change to the source code file; modifying the source code by applying the first transformed operation and the second transformed operation to the source code; determining, for each of the plurality of user devices, a local portion of the source code file stored by each respective user device, the local portion being less than all of the source code file and each respective user device storing only a local portion of the source code file; determining whether a modified portion of the source code corresponds to any of the local portion of the source code file stored by the plurality of user devices; and transmitting the modified portion of the source code to a respective user device when the modified portion of the source code corresponds to the local portion of the source code file stored by the respective user device. 10. The non-transitory computer-readable medium of claim 9 , wherein the conflict is detected by determining that updating the source code in accordance with the first change produces an updated source code inconsistent with the second change. 11. The non-transitory computer-readable medium of claim 9 , wherein applying the first change to the source code file followed by applying the second change to the source code file produces a different result than applying the second change to the source code file followed by applying the first change to the source code file. 12. The non-transitory computer-readable medium of claim 9 , wherein determining first transformed operation and the second transformed operation comprises determining that the an application of the first transformed operation to the source code followed by the an application of the second transformed operation to the source code is equivalent to the application of the second transformed operation to the source code followed by the application of the first transformed operation to the source code. 13. The non-transitory computer-readable medium of claim 9 , wherein the first change is received from a first user and the second change is received from a second user, and the first change and the second change are received substantially simultaneously. 14. The non-transitory computer-readable medium of claim 9 , wherein the source code file comprises software code, the method further comprising: allowing a plurality of users employing the plurality of user devices to collaboratively edit the software code. 15. The non-transitory computer-readable medium of claim 14 , wherein the plurality of users have substantially simultaneous access to the source code file stored at a server, via the network. 16. The non-transitory computer-readable medium of claim 9 , wherein modifying the source code comprises modifying only a portion of the source code. 17. A system for providing software development services, the system comprising: one or more computing devices having one or more processors coupled to memory, the one or more processors being configured to: provide to a plurality of user devices, access to a source code file via a network; receive a first change to the source code file and a second change to the source code file; detect a conflict between the first and second change to the source code file; determine, in response to the detection of the conflict, a first transformed operation based on the first change to the source code file and a second transformed operation based on the second change to the source code file; modify the source code by applying the first transformed operation and the second transformed operation to the sou

Assignees

Inventors

Classifications

  • G06F8/70Primary

    Software maintenance or management · CPC title

  • Creation or generation of source code · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • Compilation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9940127B1 cover?
Access to a source code file stored at a server is provided to a plurality of user devices, via a network. The source code file may comprise software code. The source code file stored at the server is updated based on a plurality of changes received from respective user devices, substantially in real-time. A selection of an option to execute the source code file is received from one of the plur…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification G06F8/70. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 10 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).