System, method, and computer program product for generating a single software code based on a description of a distributed architecture

US9600767B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9600767-B1
Application numberUS-31788408-A
CountryUS
Kind codeB1
Filing dateDec 30, 2008
Priority dateOct 6, 2006
Publication dateMar 21, 2017
Grant dateMar 21, 2017

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.

The present invention relates to a system, method, and computer program product for generating a single software code based on a description of a distributed architecture. The present invention introduces a BICA-SMART development framework that implements a distributed architecture in a flexible, parallel and scalable implementation that is embodied by a single software code. Thus, using the present invention, a user can input a description of the architecture into the system, with the system automatically generating the software code to implement the architectural description.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for generating a single software code based on a description of a distributed architecture, comprising acts of: receiving a description of an architecture having a set of functional modules with data flows specified between the functional modules, the data flows having data flow specifications; using one or more processors to perform operations of: generating a distributed architecture description language file describing the architecture such that the distributed architecture description language file contains descriptions of data event-driven functional modules; generating code for each functional module that includes: initialization code having code selected from a group consisting of code for starting the functional module, code for communicating with other functional modules, and code for controlling the functional module; and module wrapper code to be subsequently filled with implementation code; generating a build specification that is needed by build tools to compile and link all functional modules into a single software code; describing a communication style to functionally specify data flow between the functional modules of the architecture and generating communication code to support the communication style; filling the module wrapper code with implementation code to create a filled wrapper code; generating the single software code using the filled wrapper code, the communication code, initialization code, and build specification; and affixing the single software code on a computer-readable medium as instruction means that are executable by a computer; and converting the description into a graphical layout of the architecture, the graphical layout using the distributed architecture description language to specify information about the functional modules and the data flows between the functional modules. 2. A method as set forth in claim 1 , further comprising an act of using one or more processors to perform operations of controlling, executing, and debugging the single software code. 3. A method as set forth in claim 2 , further comprising an act of using one or more processors to perform an operation of generating code for collecting and visualizing statistics as the single software code is running to facilitate debugging and performance evaluations. 4. A method as set forth in claim 3 , wherein receiving a description of an architecture having a set of functional modules with data flows specified between the functional modules, the function modules include: primary input and auxiliary input channels and primary output and auxiliary output channels; wherein arrival of new data on a primary input channel causes the functional module to initiate a compute function and perform a round of computation on the new data; and wherein arrival of new data on an auxiliary channel is saved and utilized later when a new round of computation is triggered by an input arriving on a primary input channel. 5. A method as set forth in claim 4 , further comprising an act of using one or more processors to perform operations of: implementing a parser and syntax checker; formulating consistency criteria for determining if all the data flows for each of the functional modules are satisfied, where consistency criteria includes a presence of a primary input channel in each functional module; implementing a checker for the consistency criteria; and implementing a compiler module that takes the data flow specifications for a specific functional module and creates a “stub” header for an appropriate “compute” function. 6. A method for generating a single software code based on a description of a distributed architecture, comprising acts of: receiving a description of an architecture having a set of functional modules with data flows specified between the functional modules, the data flows having data flow specifications; using one or more processors to perform operations of: generating a distributed architecture description language file describing the architecture such that the distributed architecture description language file contains descriptions of data event-driven functional modules; generating code for each functional module that includes: initialization code having code selected from a group consisting of code for starting the functional module, code for communicating with other functional modules, and code for controlling the functional module; and module wrapper code to be subsequently filled with implementation code; generating a build specification that is needed by build tools to compile and link all functional modules into a single software code; describing a communication style to functionally specify data flow between the functional modules of the architecture and generating communication code to support the communication style; filling the module wrapper code with implementation code to create a filled wrapper code; generating the single software code using the filled wrapper code, the communication code, initialization code, and build specification; and affixing the single software code on a computer-readable medium as instruction means that are executable by a computer; and wherein receiving a description of an architecture having a set of functional modules with data flows specified between the functional modules, the function modules include: primary input and auxiliary input channels and primary output and auxiliary output channels; wherein arrival of new data on a primary input channel causes the functional module to initiate a compute function and perform a round of computation on the new data; and wherein arrival of new data on an auxiliary channel is saved and utilized later when a new round of computation is triggered by an input arriving on a primary input channel. 7. A system for generating a single software code based on a description of a distributed architecture having a set of functional modules with data flows, having data flow specifications, specified between the functional modules, the system comprising one or more processors configured to perform operations of: generating a distributed architecture description language file describing the architecture such that the distributed architecture description language file contains descriptions of data event-driven functional modules; generating code for each functional module that includes: initialization code having code selected from a group consisting of code for starting the functional module, code for communicating with other functional modules, and code for controlling the functional module; and module wrapper code to be subsequently filled with implementation code; generating a build specification that is needed by build tools to compile and link all functional modules into a single software code; describing a communication style to functionally specify data flow between the functional modules of the architecture and generating communication code to support the communication style; filling the module wrapper code with implementation code to create a filled wrapper code; generating the single software code using the filled wrapper code, the communication code, initialization code, and build specification; affixing the single software code on a computer-readable medium as instruction means that are executable by a computer; and converting the description into a graphical layout of the architecture, the graphical layout using the distributed architecture description language to specify information about the functional modules and the data flows between the functional modules. 8. A system as set forth in claim 7 , wherein the one or more processors are further configured to perform operati

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • Inference or reasoning models · CPC title

  • G06N5/02Primary

    Knowledge representation; Symbolic representation · CPC title

  • Graphical or visual programming · CPC title

  • Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs · 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 US9600767B1 cover?
The present invention relates to a system, method, and computer program product for generating a single software code based on a description of a distributed architecture. The present invention introduces a BICA-SMART development framework that implements a distributed architecture in a flexible, parallel and scalable implementation that is embodied by a single software code. Thus, using the pr…
Who is the assignee on this patent?
Nogin Aleksey, Khosla Deepak, Chen Yang, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06N5/02. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 21 2017 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).