DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-29 are pending and examined in this office action.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-2, 8-11, 13-15, 19-23 and 27-29 are rejected under 35 U.S.C. 103 as being unpatentable over Bruening et al. (US PGPUB 2022/0083025) hereinafter Bruening, in view of Lovisa et al. (US PGPUB 2017/0003939) hereinafter Lovisa.
Per claim 1, Bruening discloses One or more non-transitory computer readable media comprising instructions that, when executed by one or more hardware processors, cause performance of operations comprising: receiving, by a computing device, a plurality of user-selected component types for a corresponding plurality of components for a computing environment, the plurality of user-selected component types comprising: a first user-selected component type for a first component of the plurality of components; and a second user-selected component type for a second component of the plurality of components (claims 1, 14; paragraph [0013]; using a GUI, a user can select at least two component types among a plurality of components for a target system); selecting, by the computing device, a first set of code for the first component, the first set of code comprising: a first subset of code that is statically associated with the first user-selected component type; selecting, by the computing device, a second set of code for the second component; and generating sample code that is executable in the computing environment corresponding to the first and second user-selected component types at least by incorporating the first subset of static code, the second subset of code, and the second set of code into the sample code (claims 1, 4, 9; paragraphs [0072][0073]; assigning each selectable component type a component type data object (a first set of code and a second set of code) in a data storage device, generating program code (sample code) for controlling the system based on component type data which contains predefined program code modules).
Bruening does not explicitly teach selecting, a second subset of code that is selected based on a compatibility between the first user-selected component type and the second user-selected component type; generating sample code at least by incorporating the second subset of code. However, Bruening discloses (paragraph [0025]; checking compatibility between a first user selected component type and a second user selected component type). Lovisa further suggests the above limitations (claim 1; paragraphs [0374]-[0377][0396]; after two components are selected, determine if they are compatible; if they are compatible, then generating a connection representation connecting the two components; connection data (a second subset of code) is generated from the connection representation; during a build process, computer executable code (sample code) is generated based on the component data and connection data). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Bruening and Lovisa to select connection code that is compatible with two components and generate executable code based on the connection code; this would ensure the two components can work together and communicate correctly in a system.
Per claim 2, Lovisa further suggests selecting a subset of code from a plurality of subsets of code as the second subset of code based on the second subset of code enabling communication with the second component (claim 1; paragraphs [0374]-[0377][0396]; after two components are selected, determine if they are compatible; if they are compatible, then generating a connection representation connecting the two components; connection data (a second subset of code) is generated from the connection representation; if they are not compatible, the process allows one or more alternative components to be selected (i.e. other connections representing a plurality of subsets of code)).
Per claim 8, Lovisa further suggests wherein the second user-selected component type corresponds to an existing component, and the operations further comprising: accessing configuration information for the existing component; and selecting the second subset of code based on the configuration information of the existing component (claim 1; paragraphs [0374]-[0377][0396]; after two components are selected (including selecting a second component), determine if they are compatible using their communication configuration information; if they are compatible, then generating a connection representation connecting the two components; connection data (a second subset of code) is generated from the connection representation).
Per claim 9, Bruening further suggests presenting a candidate set of existing components, responsive to receiving the second user-selected component type, by analyzing the computing environment; and receiving a selection of the existing component from the candidate set (claims 1, 4, 9, 14; paragraph [0013]; related module types can be combined to form groups, wherein a module type group is first of all selected, for example, the user can select the “robotic arms” module type group and can then choose between robotic arms having a different number of axes; thus, a user can select an existing component from a candidate set).
Per claim 10, Bruening further suggests generating the sample code includes: incorporating, into the sample code, the first set of code for the first user-selected component type and a second set of code for the second user-selected component type; and configuring the first set of code and the second set of code to enable communication between components corresponding to the first user-selected component type and the second user-selected component type (claims 1, 4, 9; paragraphs [0041][0072][0073]; assigning each selectable component type a component type data object (a first set of code and a second set of code) in a data storage device, generating program code (sample code) for controlling the system based on component type data which contains predefined program code modules; checking compatibility between a first user selected component type and a second user selected component type; therefore, the generated program code allows a first component to control/communicate with a second component).
Per claim 11, Bruening further suggests generating a graphical user interface (GUI) configured to present selectable component types for a plurality of component types and to receive a selection of a component type for a presented component type (claims 1, 4, 9, 14; providing a GUI to allow a user to select component types).
Per claim 13, Lovisa further suggests wherein the computing environment is a cloud computing environment (paragraph [0306]; a distributed system with components communicate through the Internet).
Claims 14-15, 19-21 recite similar limitations as claims 1-2, 8, 10-11. Therefore, claims 14-15, 19-21 are rejected under similar rationales as claims 1-2, 8, 10-11.
Claims 22-23, 27-29 recite similar limitations as claims 1-2, 8, 10-11. Therefore, claims 22-23, 27-29 are rejected under similar rationales as claims 1-2, 8, 10-11.
Claims 3-7, 16-18, 24-26 are rejected under 35 U.S.C. 103 as being unpatentable over Bruening, in view of Lovisa, in view Balasubramanian et al. (US PGPUB 2014/0068546) hereinafter Balasubramanian.
Per claim 3, Bruening does not explicitly teach based on the plurality of user-selected component types for the plurality of components, generating, by the computing device, deployment code for deploying the computing environment, with the plurality of components of the user-selected component types, on a set of hardware resources. However, Balasubramanian suggests the above (claim 10; paragraphs [0024][0036]; a user selecting a plurality of components from a component library; the system determines component dependencies among the selected component; providing deployment code to deploy the selected components based on an deployment order, to a target computing environment containing hardware resources). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Bruening, Lovisa and Balasubramanian to provide deployment code that can deploy the selected components in a specific deployment order that satisfies component dependencies; this would ensure a proper deployment process (incorrect deployment order can result in errors).
Per claim 4, Bruening in view of Balasubramanian further suggests the operations further comprising generating a code repository and storing the first set of code, the second set of code, and the deployment code therein (Bruening; paragraphs [0012][0093][0094]; storing component type data (first and second sets of data) in a data storage device (repository); Balasubramanian; claim 10; paragraphs [0024][0036]; a user selecting a plurality of components from a component library; the system determines component dependencies among the selected component; providing deployment code to deploy the selected components based on an deployment order; it would have been obvious to store the deployment code also in the data storage device for possible future reuse).
Per claim 5, Balasubramanian further suggests determining a system architecture for the computing environment based on the first user-selected component type and the second user-selected component type; and generating the deployment code based on the system architecture (claim 10; paragraphs [0023][0024][0036]; a user selecting a plurality of components from a component library; the selected components forms a system architecture; determine the component dependencies and a deployment order based on the system architecture; providing deployment code to deploy the selected components based on the deployment order).
Per claim 6, Balasubramanian further suggests wherein the system architecture comprises supporting components that are (a) not user-selected components and (b) required for implementation of the plurality of components of the plurality of user-selected component types. (claim 10; paragraphs [0023][0024][0030][0036]; a user selecting a plurality of components from a component library; the selected components forms a system architecture; determine the component dependencies and a deployment order based on the system architecture; the component dependencies also include components not selected but are required, such as a requirement of a specific java version or a relational database management).
Per claim 7, Balasubramanian further suggests determining an ordered sequence of operations for deploying the computing environment based on the first user-selected component type and the second user-selected component type; and generating the deployment code based on the ordered sequence of operations (claim 10; paragraphs [0023][0024][0036]; a user selecting a plurality of components from a component library; the selected components forms a system architecture; determine the component dependencies and a deployment order based on the system architecture; providing deployment code to deploy the selected components based on the deployment order).
Claims 16-18 recite similar limitations as claims 3-4, 7. Therefore, claims 16-18 are rejected under similar rationales as claims 3-4, 7.
Claims 24-26 recite similar limitations as claims 3-4, 7. Therefore, claims 24-26 are rejected under similar rationales as claims 3-4, 7.
Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Bruening, in view of Lovisa, in view Rebh et al. (US patent 11625229) hereinafter Rebh.
Per claim 12, Bruening does not explicitly teach “wherein the GUI is further configured to dynamically update the selectable component types based on a previous user selection”. However, Rebh suggests the above (column 13, line 38-55; after a component is selected by a user, a list of components is refreshed, only the compatible components are shown, incompatible components are filtered out). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Bruening, Lovisa and Rebh to refresh the selectable component types after a first user selection, so only compatible component types are displayed to prevent incompatibility error.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HANG PAN whose telephone number is (571)270-7667. The examiner can normally be reached 9 AM to 5 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Chat Do can be reached at 571-272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/HANG PAN/Primary Examiner, Art Unit 2193