US9069637B2 - Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration - Google Patents

Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration Download PDF

Info

Publication number
US9069637B2
US9069637B2 US13/556,899 US201213556899A US9069637B2 US 9069637 B2 US9069637 B2 US 9069637B2 US 201213556899 A US201213556899 A US 201213556899A US 9069637 B2 US9069637 B2 US 9069637B2
Authority
US
United States
Prior art keywords
application
server
plug
module
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US13/556,899
Other versions
US20130191823A1 (en
Inventor
Jason A. Davidson
Somnath Chakrabarti
Neeru S. Pahwa
Micah K. Bhatki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to US13/556,899 priority Critical patent/US9069637B2/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PAHWA, NEERU S., CHAKRABARTI, SOMNATH, DAVIDSON, JASON A.
Publication of US20130191823A1 publication Critical patent/US20130191823A1/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA PREVIOUSLY RECORDED ON REEL 029611 FRAME 0696. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: PAHWA, NEERU S., CHAKRABARTI, SOMNATH, DAVIDSON, JASON A., BHAKTI, MICAH K.
Priority to US14/721,138 priority patent/US9798881B2/en
Application granted granted Critical
Publication of US9069637B2 publication Critical patent/US9069637B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • H04L67/42

Definitions

  • the present disclosure relates to client server applications, and more particularly, to dynamic feature enhancement in client server applications.
  • the present disclosure also relates to high volume server deployment, and more particularly, to high volume server deployment with dynamic application (app) store integration.
  • computing system manufacturers and/or distributors typically build and configure systems by cloning a disk or memory system that, upon boot up, will perform limited customizations. Generally, these systems must subsequently undergo more extensive customization and configuration at the customer site, including error-prone license key acquisition, rather than being ready to use “out of the box.” This is particularly true with systems that employ a redundant array of independent disks (RAID), encrypted file systems and/or trusted boot or execution environments.
  • RAID redundant array of independent disks
  • FIG. 1 illustrates a top-level block diagram of one exemplary embodiment consistent with the present disclosure
  • FIG. 2 illustrates a block diagram of one exemplary embodiment consistent with the present disclosure
  • FIG. 3 illustrates a flowchart of operations of one exemplary embodiment consistent with the present disclosure
  • FIG. 4 illustrates a block diagram of another exemplary embodiment consistent with the present disclosure
  • FIG. 5 illustrates a flowchart of operations of another exemplary embodiment consistent with the present disclosure
  • FIG. 6 illustrates a flowchart of operations of another exemplary embodiment consistent with the present disclosure.
  • FIG. 7 illustrates a flowchart of operations of another exemplary embodiment consistent with the present disclosure.
  • this disclosure provides methods and systems for dynamic feature enhancement in client server applications and for high volume server deployment with dynamic app store integration. These techniques enable the addition of new features in a client server software product through the use of script engines and application emulation without requiring an upgrade of client or server components or associated interruption of services. These techniques further enable the delivery of a secure server in a pre-configured turnkey state through an automated process with increased efficiency tailored to mass production. The automated process may also provide for the dynamic addition of services, including product keys, from an app store over the internet.
  • FIG. 1 illustrates a top-level block diagram 100 of one exemplary embodiment consistent with the present disclosure.
  • a number of client premises 102 , 120 are connected to the internet 130 .
  • Remote servers (or plug-in stores) 140 may be available over the internet 130 to maintain a collection of updated plug-ins that may include the latest available features and functionality.
  • the remote servers 140 may obtain these plug-ins from third party developers 150 .
  • FIG. 2 illustrates a block diagram 200 of one exemplary embodiment consistent with the present disclosure. Details of the client-server system at client premises 102 are shown. At each client premises 102 there are a number of web based client applications 204 which may be run on one or more client computer systems. The web based client applications 204 are communicatively coupled to a server 206 which may be local to the client premises 102 . Server 206 may host a server application 212 , a script engine 214 and one or more feature plug-in components 210 . Feature plug-in components 210 may be software modules that, when executed, perform particular functions and/or provide specific features that are requested by the web based client application 204 .
  • Server application 212 acts as an interface between web based client application 204 and script engine 214 .
  • Server application 212 receives data from web based client application 204 , where such data may represent input to one of the feature plug-in components 210 .
  • the input data may be wrapped in hypertext transfer protocol (HTTP) request packets.
  • Server application 212 unwraps the input data and passes it to script engine 214 , which determines the appropriate feature plug-in component 210 for processing of the input data and passes that data to the selected component.
  • script engine 214 determines the appropriate feature plug-in component 210 for processing of the input data and passes that data to the selected component.
  • script engine 214 determines the appropriate feature plug-in component 210 for processing of the input data and passes that data to the selected component.
  • script engine 214 determines the appropriate feature plug-in component 210 for processing of the input data and passes that data to the selected component.
  • script engine 214 determines the appropriate feature plug-in component 210 for processing of the input data and passes that
  • the HTTP response packets may be, for example, hypertext markup language (HTML) packets or extensible markup language (XML) packets.
  • HTML hypertext markup language
  • XML extensible markup language
  • the web based client application 204 receives these packets and renders a response that emulates the feature plug-in component 210 that produced the output data.
  • Script engine 214 may also detect and identify the availability of new and/or updated plug-ins from remote servers (or plug-in stores) 140 over the internet 130 .
  • the remote servers 140 maintain a collection of updated plug-ins having the latest available features and functionality.
  • the remote servers 140 may obtain these plug-ins from third party developers 150 .
  • Script engine 214 may be capable of dynamically loading and executing these plug-ins, which enable Server 206 at client premises 102 to provide the updated features and functionality to web based client applications 204 in a transparent manner, that is, without requiring a reload or restart of any client components or local server components.
  • Script engine 214 may be configured with information about the external interface of each feature plug-in component 210 which enables it to expose the plug-in 210 to the web based client application 204 without requiring changes to the web based client application 204 .
  • any suitable transfer protocol may be used as a substitute for HTTP, including proprietary protocols.
  • Some examples of web based client applications include, but are not limited to, Adobe AIR®, Microsoft® Silverlight and NETFLIX video applications.
  • Feature plug-in components 210 may be standalone applications implemented as binary executables or scripts.
  • the server application 212 may serve an asynchronous JavaScript and XML (AJAX) based HTML/JavaScript web page to wrap the input and output data to the web based client application 204 .
  • the web based client application 204 may be an HTML/JavaScript aware client application.
  • FIG. 3 illustrates a flowchart 300 of operations of one exemplary embodiment consistent with the present disclosure.
  • the availability of plug-in applications from third party developers is determined.
  • the plug-in applications are obtained from the third party developers. They may be downloaded over the internet.
  • the downloaded plug-in applications are stored on a server.
  • the requested plug-in applications are downloaded to the client-server system. The request from the client-server system may be for new plug-ins or for updates to existing plug-ins.
  • FIG. 4 illustrates a block diagram 400 of another exemplary embodiment consistent with the present disclosure.
  • the embodiment may be implemented as a system which is hosted, in part, on a platform comprising a control domain 402 , one or more virtual machines (VMs) 408 , and a VM manager 420 .
  • a virtual machine may be a real machine, including processor and memory for example, or may be a software implementation that emulates a machine.
  • the virtual machine may include one or more isolated guest operating systems installed within a host operating system.
  • the platform may further comprise processors (CPUs), memory, storage, network ports, user interfaces and other suitable components which are not illustrated for simplicity.
  • the control domain 402 may host one or more features 406 which may be applications (apps) to perform certain functions or services.
  • features 406 may be provided, in whole or in part, by third party developers.
  • Management agent 404 maintains features 406 by obtaining new features and updates to existing features as they become available.
  • Management agent 404 also makes features 406 available to VMs 408 as needed.
  • VMs 408 provide workspaces for independent software vendors (ISVs) 410 to develop, configure and test software products and services.
  • VMs 408 provide operational capabilities such as operating systems 412 which may include Windows, Linux or other suitable operating systems.
  • VMs 408 may be individual real machines, partitions within real machines or any other suitable configuration of processing capability across a platform.
  • VM manager 420 integrates and/or supervises the control domain 402 and VMs 408 .
  • VM manager 420 may also provide access to the internet 430 .
  • VM manager 420 may also be configured with a trusted boot capability as part of a secure operating environment. The trusted boot capability can verify that unauthorized modifications to the system have not occurred.
  • VM manager 420 may also communicate with web portal 440 over internet 430 .
  • Web portal 440 may be configured to direct users to the system.
  • VM manager 420 may also communicate with managed service providers (MSPs) 450 that interact with the system over internet 430 .
  • MSPs managed service providers
  • FIG. 5 illustrates a flowchart 500 of operations of an exemplary embodiment consistent with the present disclosure.
  • a system is configured with a boot partition comprising trusted boot software (T-Boot), a temporary file system, kernel software and a virtual machine manager (VMM).
  • T-Boot trusted boot software
  • VMM virtual machine manager
  • the T-Boot is executed to perform software initialization on the system.
  • the software initialization comprises building a root partition and building a virtual machine (VM) partition.
  • the root partition build may include configuring an encrypted root file system and software stack.
  • the VM partition build may include configuring an encrypted application and customer data storage repository. Components needed for the software initialization are obtained from a local application store on network area storage (NAS).
  • NAS network area storage
  • the software initialized system is cloned so that it can be made available for configuration and initialization during subsequent system builds, contributing to improved efficiency for mass production.
  • a service model through which ISVs may access a provided workspace in which they develop, configure and test their software products and services.
  • the workspace is an ISV factory which may be implemented in an environment such as the Intel® Hybrid Cloud product or other suitable cloud environment.
  • the workspace may generally include a machine, in the cloud, that is configured with a requested operating system and any other desired capabilities, upon which the ISV may perform their setup, development and validation, including customer trials.
  • SDK software development kit
  • FIG. 6 illustrates a flowchart 600 of operations of an exemplary embodiment consistent with the present disclosure.
  • a request is accepted from an ISV to participate in an integration service.
  • the ISV is granted access to participate, which may comprise a login capability. The decision to grant access may be based on an agreement, such as a non-disclosure agreement. The ISV may also, at this point, make decisions about price, deployment strategies and model or product configurations.
  • a cloud environment workspace is generated.
  • the workspace is configured based on requirements specified by the ISV. These requirements may include specifications regarding the hardware and/or operating systems of the workspace.
  • the ISV may specify, for example, a particular operating system such as Windows or Linux.
  • the ISV is enabled to remotely develop a software product or service in the workspace.
  • a final integration, test and release of the software product or service is performed from the workspace. This process, or portions thereof, may be repeated as necessary to generate product updates including fixes and patches.
  • a method for dynamic deployment of software at a customer location The customer is prompted for basic information (if any) that is needed for the installation and the process automatically installs the software in a working configuration, with license keys pulled from a remote portal and activated into the product.
  • FIG. 7 illustrates a flowchart 700 of operations of an exemplary embodiment consistent with the present disclosure.
  • a request from a customer, to install a new application is accepted.
  • customization information for the application is obtained from the customer. This information may include requirements for features and options, information about the customer for licensing purposes, or any other information relevant to setup of the application.
  • a workspace is provided for configuration and installation of the application. Any associated data structures, schema, or plug-ins for the application may also be provided to the workspace for the configuration and installation process.
  • a license key is assigned from a license key store.
  • the license key is configured based on the customization information.
  • the application, along with the configured license key is installed from the workspace to the customer location.
  • Embodiments of the methods described herein may be implemented in a system that includes one or more storage mediums having stored thereon, individually or in combination, instructions that when executed by one or more processors perform the methods.
  • the processor may include, for example, a system CPU (e.g., core processor) and/or programmable circuitry.
  • a system CPU e.g., core processor
  • programmable circuitry e.g., programmable circuitry.
  • operations according to the methods described herein may be distributed across a plurality of physical devices, such as processing structures at several different physical locations.
  • the method operations may be performed individually or in a subcombination, as would be understood by one skilled in the art.
  • the present disclosure expressly intends that all subcombinations of such operations are enabled as would be understood by one of ordinary skill in the art.
  • the storage medium may include any type of tangible medium, for example, any type of disk including floppy disks, optical disks, compact disk read-only memories (CD-ROMs), compact disk rewritables (CD-RWs), digital versatile disks (DVDs) and magneto-optical disks, semiconductor devices such as read-only memories (ROMs), random access memories (RAMs) such as dynamic and static RAMs, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), flash memories, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
  • ROMs read-only memories
  • RAMs random access memories
  • EPROMs erasable programmable read-only memories
  • EEPROMs electrically erasable programmable read-only memories
  • flash memories magnetic or optical cards, or any type of media suitable for storing electronic instructions.
  • Circuitry may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry, state machine circuitry, and/or firmware that stores instructions executed by programmable circuitry.
  • An app may be embodied as code or instructions which may be executed on programmable circuitry such as a host processor or other programmable circuitry.
  • a module as used in any embodiment herein, may be embodied as circuitry.
  • the circuitry may be embodied as an integrated circuit, such as an integrated circuit chip.
  • the present disclosure provides methods and systems for dynamic feature enhancement in client server applications and for high volume server deployment with dynamic app store integration and further enable the delivery of a secure server in a pre-configured turnkey state through an automated process with increased efficiency tailored to mass production.
  • the system may include a server application module configured to receive request packets from, and send response packets to, a web based client application, and the packets include input data, output data and control commands associated with a feature.
  • the system of this example may also include a script engine module coupled to the server application module, the script engine module configured to identify a plug-in application on a remote server, download the plug-in application and execute the plug-in application under control of the server application module, and the plug-in application implements the feature.
  • Another example system includes the forgoing components and the feature implementation includes processing the input data and generating the output data in accordance with the control commands.
  • Another example system includes the forgoing components and the script engine module exposes an interface of the plug-in application to the web based client application.
  • Another example system includes the forgoing components and the server application module is an HTTP server application.
  • Another example system includes the forgoing components and the input data, the output data and the control commands are wrapped in HTML packets.
  • Another example system includes the forgoing components and the input data, the output data and the control commands are wrapped in XML packets.
  • the method may include determining availability of plug-in applications from third party developers.
  • the method of this example may also include obtaining the plug-in applications from the third party developers in response to the determining.
  • the method of this example may further include storing the plug-in application on a server.
  • the method of this example may further include responding to requests for the plug-in applications from a client-server system at a client premises by downloading the plug-in applications to the client-server system.
  • the method may include configuring a system with a boot partition including T-Boot software, a temporary file system, kernel software and a VMM.
  • the method of this example may also include executing the T-Boot to perform software initialization on the system, and the software initialization includes building a root partition and building a VM partition, and components needed for the software initialization are obtained from a local application store on NAS.
  • the method of this example may further include cloning the software initialized system, and the cloned system is available for configuration and initialization of subsequent systems.
  • Another example method includes the forgoing operations and the root partition building includes configuring an encrypted root file system and software stack.
  • Another example method includes the forgoing operations and the VM partition building includes configuring encrypted application and customer data storage.
  • the method may include accepting a request from an ISV, the request to participate in an integration service.
  • the method of this example may also include granting access to the ISV in response to the request.
  • the method of this example may further include generating a cloud environment workspace.
  • the method of this example may further include configuring the workspace based on requirements specified by the ISV.
  • the method of this example may further include enabling the ISV to remotely develop a software product or service in the workspace.
  • the method of this example may further include performing a final integration, test and release of the software product or service in the workspace.
  • Another example method includes the forgoing operations and the granting is based on reaching an agreement with the ISV.
  • Another example method includes the forgoing operations and the remote development further includes testing and configuring the software product or service.
  • the method may include accepting a request from a customer, the request to install a new application.
  • the method of this example may also include obtaining application customization information from the customer.
  • the method of this example may further include providing a workspace for configuration and installation of the application.
  • the method of this example may further include obtaining a license key from a license key store.
  • the method of this example may further include configuring the license key based on the application customization information.
  • the method of this example may further include installing the application with the configured license key from the workspace.
  • Another example method includes the forgoing operations and further includes supplying data structures and plug-ins associated with the application to the workspace.
  • At least one computer-readable storage medium having instructions stored thereon which when executed by a processor, cause the processor to perform the methods as described in the examples above.

Abstract

Generally, this disclosure provides methods and systems for dynamic feature enhancement in client server applications and for high volume server deployment with dynamic app store integration and further enable the delivery of a secure server in a pre-configured turnkey state through an automated process with increased efficiency tailored to mass production. The system may include a server application module configured to receive request packets from, and send response packets to, a web based client application, the packets comprising input data, output data and control commands associated with a feature; and a script engine module coupled to the server application module, the script engine module configured to identify a plug-in application on a remote server, download the plug-in application and execute the plug-in application under control of the server application module, wherein the plug-in application implements the feature.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 61/511,410 filed Jul. 25, 2011, which is incorporated by reference herein in its entirety.
FIELD
The present disclosure relates to client server applications, and more particularly, to dynamic feature enhancement in client server applications. The present disclosure also relates to high volume server deployment, and more particularly, to high volume server deployment with dynamic application (app) store integration.
BACKGROUND
Many computing systems are based on a client-server model and provide features and functionality through plug-in applications. Typically, when new software features become available, they are distributed as patches, upgrades or updates. These upgrades are generally installed through a relatively inefficient process that involves stopping the existing applications that may be executing on either the client or the server, performing the update, and then restarting the application. This process creates undesirable downtime and application unavailability.
Additionally, computing system manufacturers and/or distributors typically build and configure systems by cloning a disk or memory system that, upon boot up, will perform limited customizations. Generally, these systems must subsequently undergo more extensive customization and configuration at the customer site, including error-prone license key acquisition, rather than being ready to use “out of the box.” This is particularly true with systems that employ a redundant array of independent disks (RAID), encrypted file systems and/or trusted boot or execution environments.
BRIEF DESCRIPTION OF THE DRAWINGS
Features and advantages of embodiments of the claimed subject matter will become apparent as the following Detailed Description proceeds, and upon reference to the Drawings, wherein like numerals depict like parts, and in which:
FIG. 1 illustrates a top-level block diagram of one exemplary embodiment consistent with the present disclosure;
FIG. 2 illustrates a block diagram of one exemplary embodiment consistent with the present disclosure;
FIG. 3 illustrates a flowchart of operations of one exemplary embodiment consistent with the present disclosure;
FIG. 4 illustrates a block diagram of another exemplary embodiment consistent with the present disclosure;
FIG. 5 illustrates a flowchart of operations of another exemplary embodiment consistent with the present disclosure;
FIG. 6 illustrates a flowchart of operations of another exemplary embodiment consistent with the present disclosure; and
FIG. 7 illustrates a flowchart of operations of another exemplary embodiment consistent with the present disclosure.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.
DETAILED DESCRIPTION
Generally, this disclosure provides methods and systems for dynamic feature enhancement in client server applications and for high volume server deployment with dynamic app store integration. These techniques enable the addition of new features in a client server software product through the use of script engines and application emulation without requiring an upgrade of client or server components or associated interruption of services. These techniques further enable the delivery of a secure server in a pre-configured turnkey state through an automated process with increased efficiency tailored to mass production. The automated process may also provide for the dynamic addition of services, including product keys, from an app store over the internet.
FIG. 1 illustrates a top-level block diagram 100 of one exemplary embodiment consistent with the present disclosure. A number of client premises 102, 120 are connected to the internet 130. At each client premises 102, 120 there is a client-server with dynamic feature enhancement capability through the remote acquisition of binary or script applications (e.g., apps or plug-ins), as will be described in greater detail below. Remote servers (or plug-in stores) 140 may be available over the internet 130 to maintain a collection of updated plug-ins that may include the latest available features and functionality. The remote servers 140 may obtain these plug-ins from third party developers 150.
FIG. 2 illustrates a block diagram 200 of one exemplary embodiment consistent with the present disclosure. Details of the client-server system at client premises 102 are shown. At each client premises 102 there are a number of web based client applications 204 which may be run on one or more client computer systems. The web based client applications 204 are communicatively coupled to a server 206 which may be local to the client premises 102. Server 206 may host a server application 212, a script engine 214 and one or more feature plug-in components 210. Feature plug-in components 210 may be software modules that, when executed, perform particular functions and/or provide specific features that are requested by the web based client application 204.
Server application 212 acts as an interface between web based client application 204 and script engine 214. Server application 212 receives data from web based client application 204, where such data may represent input to one of the feature plug-in components 210. The input data may be wrapped in hypertext transfer protocol (HTTP) request packets. Server application 212 unwraps the input data and passes it to script engine 214, which determines the appropriate feature plug-in component 210 for processing of the input data and passes that data to the selected component. Similarly, when a feature plug-in component 210 produces output data, that data is passed back to server application 212, through script engine 214, where it may be wrapped in HTTP response packets and sent to the appropriate web based client application 204. In some embodiments, the HTTP response packets may be, for example, hypertext markup language (HTML) packets or extensible markup language (XML) packets. The web based client application 204 receives these packets and renders a response that emulates the feature plug-in component 210 that produced the output data.
Script engine 214 may also detect and identify the availability of new and/or updated plug-ins from remote servers (or plug-in stores) 140 over the internet 130. The remote servers 140 maintain a collection of updated plug-ins having the latest available features and functionality. The remote servers 140 may obtain these plug-ins from third party developers 150. Script engine 214 may be capable of dynamically loading and executing these plug-ins, which enable Server 206 at client premises 102 to provide the updated features and functionality to web based client applications 204 in a transparent manner, that is, without requiring a reload or restart of any client components or local server components.
Script engine 214 may be configured with information about the external interface of each feature plug-in component 210 which enables it to expose the plug-in 210 to the web based client application 204 without requiring changes to the web based client application 204.
In some embodiments, any suitable transfer protocol may be used as a substitute for HTTP, including proprietary protocols. Some examples of web based client applications include, but are not limited to, Adobe AIR®, Microsoft® Silverlight and NETFLIX video applications. Feature plug-in components 210 may be standalone applications implemented as binary executables or scripts.
In some embodiments, the server application 212 may serve an asynchronous JavaScript and XML (AJAX) based HTML/JavaScript web page to wrap the input and output data to the web based client application 204. The web based client application 204 may be an HTML/JavaScript aware client application.
FIG. 3 illustrates a flowchart 300 of operations of one exemplary embodiment consistent with the present disclosure. At operation 310, the availability of plug-in applications from third party developers is determined. At operation 320, the plug-in applications are obtained from the third party developers. They may be downloaded over the internet. At operation 330, the downloaded plug-in applications are stored on a server. At operation 340, in response to requests for plug-in applications from a client server at a client premises, the requested plug-in applications are downloaded to the client-server system. The request from the client-server system may be for new plug-ins or for updates to existing plug-ins.
FIG. 4 illustrates a block diagram 400 of another exemplary embodiment consistent with the present disclosure. The embodiment may be implemented as a system which is hosted, in part, on a platform comprising a control domain 402, one or more virtual machines (VMs) 408, and a VM manager 420. In some embodiments, a virtual machine may be a real machine, including processor and memory for example, or may be a software implementation that emulates a machine. The virtual machine may include one or more isolated guest operating systems installed within a host operating system. The platform may further comprise processors (CPUs), memory, storage, network ports, user interfaces and other suitable components which are not illustrated for simplicity. The control domain 402 may host one or more features 406 which may be applications (apps) to perform certain functions or services. In some embodiments, features 406 may be provided, in whole or in part, by third party developers. Management agent 404 maintains features 406 by obtaining new features and updates to existing features as they become available. Management agent 404 also makes features 406 available to VMs 408 as needed.
VMs 408 provide workspaces for independent software vendors (ISVs) 410 to develop, configure and test software products and services. VMs 408 provide operational capabilities such as operating systems 412 which may include Windows, Linux or other suitable operating systems. VMs 408 may be individual real machines, partitions within real machines or any other suitable configuration of processing capability across a platform.
VM manager 420 integrates and/or supervises the control domain 402 and VMs 408. VM manager 420 may also provide access to the internet 430. VM manager 420 may also be configured with a trusted boot capability as part of a secure operating environment. The trusted boot capability can verify that unauthorized modifications to the system have not occurred. VM manager 420 may also communicate with web portal 440 over internet 430. Web portal 440 may be configured to direct users to the system. VM manager 420 may also communicate with managed service providers (MSPs) 450 that interact with the system over internet 430.
In one embodiment, a method is provided, through access to the VMs 408, for building and configuring systems at a factory with reduced user intervention. The systems may be matched to the underlying hardware platform through use of an appropriately configured VM 408. FIG. 5 illustrates a flowchart 500 of operations of an exemplary embodiment consistent with the present disclosure. At operation 510, a system is configured with a boot partition comprising trusted boot software (T-Boot), a temporary file system, kernel software and a virtual machine manager (VMM). At operation 520, the T-Boot is executed to perform software initialization on the system. The software initialization comprises building a root partition and building a virtual machine (VM) partition. The root partition build may include configuring an encrypted root file system and software stack. The VM partition build may include configuring an encrypted application and customer data storage repository. Components needed for the software initialization are obtained from a local application store on network area storage (NAS). At operation 530, the software initialized system is cloned so that it can be made available for configuration and initialization during subsequent system builds, contributing to improved efficiency for mass production.
In another embodiment of the present disclosure, there is provided a service model through which ISVs may access a provided workspace in which they develop, configure and test their software products and services. The workspace is an ISV factory which may be implemented in an environment such as the Intel® Hybrid Cloud product or other suitable cloud environment. The workspace may generally include a machine, in the cloud, that is configured with a requested operating system and any other desired capabilities, upon which the ISV may perform their setup, development and validation, including customer trials. This provides an alternative to the traditional model where an ISV builds their own development environment, obtains a local copy of a software development kit (SDK), builds and tests their product locally and then submits a final version to an app store for review.
FIG. 6 illustrates a flowchart 600 of operations of an exemplary embodiment consistent with the present disclosure. At operation 610, a request is accepted from an ISV to participate in an integration service. At operation 620, the ISV is granted access to participate, which may comprise a login capability. The decision to grant access may be based on an agreement, such as a non-disclosure agreement. The ISV may also, at this point, make decisions about price, deployment strategies and model or product configurations. At operation 630, a cloud environment workspace is generated. At operation 640, the workspace is configured based on requirements specified by the ISV. These requirements may include specifications regarding the hardware and/or operating systems of the workspace. The ISV may specify, for example, a particular operating system such as Windows or Linux. At operation 650, the ISV is enabled to remotely develop a software product or service in the workspace. At operation 660, a final integration, test and release of the software product or service is performed from the workspace. This process, or portions thereof, may be repeated as necessary to generate product updates including fixes and patches.
In another embodiment of the present disclosure, there is provided a method for dynamic deployment of software at a customer location. The customer is prompted for basic information (if any) that is needed for the installation and the process automatically installs the software in a working configuration, with license keys pulled from a remote portal and activated into the product.
FIG. 7 illustrates a flowchart 700 of operations of an exemplary embodiment consistent with the present disclosure. At operation 710, a request from a customer, to install a new application, is accepted. At operation 720, customization information for the application is obtained from the customer. This information may include requirements for features and options, information about the customer for licensing purposes, or any other information relevant to setup of the application. At operation 730, a workspace is provided for configuration and installation of the application. Any associated data structures, schema, or plug-ins for the application may also be provided to the workspace for the configuration and installation process. At operation 740, a license key is assigned from a license key store. At operation 750, the license key is configured based on the customization information. At operation 760, the application, along with the configured license key, is installed from the workspace to the customer location.
Embodiments of the methods described herein may be implemented in a system that includes one or more storage mediums having stored thereon, individually or in combination, instructions that when executed by one or more processors perform the methods. Here, the processor may include, for example, a system CPU (e.g., core processor) and/or programmable circuitry. Thus, it is intended that operations according to the methods described herein may be distributed across a plurality of physical devices, such as processing structures at several different physical locations. Also, it is intended that the method operations may be performed individually or in a subcombination, as would be understood by one skilled in the art. Thus, not all of the operations of each of the flow charts need to be performed, and the present disclosure expressly intends that all subcombinations of such operations are enabled as would be understood by one of ordinary skill in the art.
The storage medium may include any type of tangible medium, for example, any type of disk including floppy disks, optical disks, compact disk read-only memories (CD-ROMs), compact disk rewritables (CD-RWs), digital versatile disks (DVDs) and magneto-optical disks, semiconductor devices such as read-only memories (ROMs), random access memories (RAMs) such as dynamic and static RAMs, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), flash memories, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
“Circuitry”, as used in any embodiment herein, may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry, state machine circuitry, and/or firmware that stores instructions executed by programmable circuitry. An app may be embodied as code or instructions which may be executed on programmable circuitry such as a host processor or other programmable circuitry. A module, as used in any embodiment herein, may be embodied as circuitry. The circuitry may be embodied as an integrated circuit, such as an integrated circuit chip.
Thus the present disclosure provides methods and systems for dynamic feature enhancement in client server applications and for high volume server deployment with dynamic app store integration and further enable the delivery of a secure server in a pre-configured turnkey state through an automated process with increased efficiency tailored to mass production.
According to one aspect there is provided a system. The system may include a server application module configured to receive request packets from, and send response packets to, a web based client application, and the packets include input data, output data and control commands associated with a feature. The system of this example may also include a script engine module coupled to the server application module, the script engine module configured to identify a plug-in application on a remote server, download the plug-in application and execute the plug-in application under control of the server application module, and the plug-in application implements the feature.
Another example system includes the forgoing components and the feature implementation includes processing the input data and generating the output data in accordance with the control commands.
Another example system includes the forgoing components and the script engine module exposes an interface of the plug-in application to the web based client application.
Another example system includes the forgoing components and the server application module is an HTTP server application.
Another example system includes the forgoing components and the input data, the output data and the control commands are wrapped in HTML packets.
Another example system includes the forgoing components and the input data, the output data and the control commands are wrapped in XML packets.
According to another aspect there is provided a method. The method may include determining availability of plug-in applications from third party developers. The method of this example may also include obtaining the plug-in applications from the third party developers in response to the determining. The method of this example may further include storing the plug-in application on a server. The method of this example may further include responding to requests for the plug-in applications from a client-server system at a client premises by downloading the plug-in applications to the client-server system.
According to another aspect there is provided a method. The method may include configuring a system with a boot partition including T-Boot software, a temporary file system, kernel software and a VMM. The method of this example may also include executing the T-Boot to perform software initialization on the system, and the software initialization includes building a root partition and building a VM partition, and components needed for the software initialization are obtained from a local application store on NAS. The method of this example may further include cloning the software initialized system, and the cloned system is available for configuration and initialization of subsequent systems.
Another example method includes the forgoing operations and the root partition building includes configuring an encrypted root file system and software stack.
Another example method includes the forgoing operations and the VM partition building includes configuring encrypted application and customer data storage.
According to another aspect there is provided a method. The method may include accepting a request from an ISV, the request to participate in an integration service. The method of this example may also include granting access to the ISV in response to the request. The method of this example may further include generating a cloud environment workspace. The method of this example may further include configuring the workspace based on requirements specified by the ISV. The method of this example may further include enabling the ISV to remotely develop a software product or service in the workspace. The method of this example may further include performing a final integration, test and release of the software product or service in the workspace.
Another example method includes the forgoing operations and the granting is based on reaching an agreement with the ISV.
Another example method includes the forgoing operations and the remote development further includes testing and configuring the software product or service.
According to another aspect there is provided a method. The method may include accepting a request from a customer, the request to install a new application. The method of this example may also include obtaining application customization information from the customer. The method of this example may further include providing a workspace for configuration and installation of the application. The method of this example may further include obtaining a license key from a license key store. The method of this example may further include configuring the license key based on the application customization information. The method of this example may further include installing the application with the configured license key from the workspace.
Another example method includes the forgoing operations and further includes supplying data structures and plug-ins associated with the application to the workspace.
According to another aspect there is provided at least one computer-readable storage medium having instructions stored thereon which when executed by a processor, cause the processor to perform the methods as described in the examples above.
The terms and expressions which have been employed herein are used as terms of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding any equivalents of the features shown and described (or portions thereof), and it is recognized that various modifications are possible within the scope of the claims. Accordingly, the claims are intended to cover all such equivalents. Various features, aspects, and embodiments have been described herein. The features, aspects, and embodiments are susceptible to combination with one another as well as to variation and modification, as will be understood by those having skill in the art. The present disclosure should, therefore, be considered to encompass such combinations, variations, and modifications.

Claims (10)

What is claimed is:
1. A system, comprising: a server to execute a server application module to cause said server to receive request packets from, and send response packets to, a client computer system executing a web based client application, wherein said packets comprise input data, output data and control commands associated with a feature; wherein said server is further to execute a script engine module coupled to said server application module, said script engine module to cause said server to identify a plug-in application on a remote server base at least on said input data received in said server from web based client application in said client computer system, download said plug-in application to said server, execute said plug-in application utilizing said input data in said server under control of said server application module, and pass said output data resulting from said execution of said plug-in back to said web based client application in said client computer system, wherein said plug-in application implements said feature.
2. The system of claim 1, wherein implementing said feature comprises processing said input data and generating said output data in accordance with said control commands.
3. The system of claim 1, wherein said script engine module exposes an interface of said plug-in application to said web based client application.
4. The system of claim 1, wherein said server application module is a hypertext transport protocol (HTTP) server application.
5. The system of claim 1, wherein said input data, said output data and said control commands are wrapped in hypertext markup language (HTML) packets.
6. The system of claim 1, wherein said input data, said output data and said control commands are wrapped in extensible markup language (XML) packets.
7. The system of claim 1, wherein: said server application module is further configured to act as an interface between said web based client application and said script engine module and to unwrap said input data and pass the unwrapped input data to said script engine module; said plug-in application is to process said input data; and said script engine module is further configured to pass said input data to said plug-in application.
8. The system of claim 7, wherein: said plug-in application produces said output data; said script engine module is further configured to provide said output data to said server application module; and said server application module is configured to include said output data in said response packets.
9. The system of claim 7, wherein said script engine module is configured to dynamically load and execute said plug-in application without requiring a restart or reload of a client executing said web based client application.
10. The system of claim 3, wherein said script engine module is configured to expose said plug-in module without requiring changes to said web-based client application.
US13/556,899 2011-07-25 2012-07-24 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration Active US9069637B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/556,899 US9069637B2 (en) 2011-07-25 2012-07-24 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration
US14/721,138 US9798881B2 (en) 2011-07-25 2015-05-26 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161511410P 2011-07-25 2011-07-25
US13/556,899 US9069637B2 (en) 2011-07-25 2012-07-24 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/721,138 Continuation US9798881B2 (en) 2011-07-25 2015-05-26 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration

Publications (2)

Publication Number Publication Date
US20130191823A1 US20130191823A1 (en) 2013-07-25
US9069637B2 true US9069637B2 (en) 2015-06-30

Family

ID=48798319

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/556,899 Active US9069637B2 (en) 2011-07-25 2012-07-24 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration
US14/721,138 Active 2033-01-15 US9798881B2 (en) 2011-07-25 2015-05-26 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/721,138 Active 2033-01-15 US9798881B2 (en) 2011-07-25 2015-05-26 Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration

Country Status (1)

Country Link
US (2) US9069637B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210247974A1 (en) * 2015-05-27 2021-08-12 Google Llc Online marketplace of plugins for enhancing dialog systems

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250213B2 (en) 2009-11-16 2012-08-21 At&T Intellectual Property I, L.P. Methods and apparatus to allocate resources associated with a distributive computing network
US9116680B2 (en) 2012-09-26 2015-08-25 International Business Machines Corporation Dynamically building locale objects or subsections of locale objects based on historical data
US9141352B2 (en) * 2012-09-26 2015-09-22 International Business Machines Corporation Dynamically building locale objects at run-time
US9778917B2 (en) 2012-09-26 2017-10-03 International Business Machines Corporation Dynamically building subsections of locale objects at run-time
US9946528B2 (en) * 2013-06-10 2018-04-17 Bmc Software, Inc. System and method for automated customization of applications
US10862731B1 (en) * 2013-06-27 2020-12-08 EMC IP Holding Company LLC Utilizing demonstration data based on dynamically determining feature availability
CN104601628B (en) * 2013-10-31 2018-02-13 京信通信系统(中国)有限公司 Client, service end and its remote download method
US9753784B2 (en) 2013-11-27 2017-09-05 At&T Intellectual Property I, L.P. Cloud delivery platform
CN104244225B (en) * 2014-09-03 2018-10-23 南京跃豚智能科技有限公司 A kind of mobile application distributing rationally in acquisition process
US9667628B2 (en) * 2014-11-06 2017-05-30 Intel Corporation System for establishing ownership of a secure workspace
GB2552605A (en) 2015-05-27 2018-01-31 Google Inc Enhancing functionalities of virtual assistants and dialog systems via plugin marketplace
CN105119790B (en) * 2015-09-09 2019-02-19 小米科技有限责任公司 Apparatus control method and device
CN108710304B (en) * 2015-11-20 2021-07-06 海信视像科技股份有限公司 Client operation management method and client
WO2017105641A1 (en) 2015-12-15 2017-06-22 Cortica, Ltd. Identification of key points in multimedia data elements
US11195043B2 (en) 2015-12-15 2021-12-07 Cortica, Ltd. System and method for determining common patterns in multimedia content elements based on key points
US10003677B2 (en) * 2016-01-31 2018-06-19 Nxp Usa, Inc. Network application verification at a network processor
CA2972178A1 (en) * 2016-06-29 2017-10-05 Sphere 3D Inc. Systems and methods for emulating resources using abstract containerization with abstract categorization and policy setting
CN108733455B (en) * 2018-05-31 2020-08-18 上海交通大学 Container isolation enhancing system based on ARM TrustZone
US10846070B2 (en) 2018-07-05 2020-11-24 At&T Intellectual Property I, L.P. Facilitating cloud native edge computing via behavioral intelligence
CN111475193B (en) * 2020-06-04 2021-03-30 成都安易迅科技有限公司 Plug-in dynamic updating method and device, electronic equipment and storage medium
US11514129B1 (en) 2020-10-13 2022-11-29 Cisco Technology, Inc. Customizable redaptor extensions for single-page web applications
US11556336B2 (en) 2021-02-16 2023-01-17 Bank Of America Corporation System for computer code development environment cloning and authentication using a distributed server network and machine learning
US11836227B2 (en) * 2021-03-19 2023-12-05 Dell Products L.P. License verification system and method for workspace-based applications
CN114827257A (en) * 2022-05-10 2022-07-29 携程旅游网络技术(上海)有限公司 Method, device, equipment and medium for pushing application program of enterprise client

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109801A1 (en) * 2006-11-06 2008-05-08 International Business Machines Corporation Dynamically generating installable software artifacts in a canonical form
US7493654B2 (en) 2004-11-20 2009-02-17 International Business Machines Corporation Virtualized protective communications system
US7912822B2 (en) * 2004-12-02 2011-03-22 Desktopsites Inc. System and method for launching a resource in a network
US20110126192A1 (en) * 2009-10-26 2011-05-26 Simon Frost Systems and methods for providing and updating a unified client
US20110258301A1 (en) * 2010-04-15 2011-10-20 Research In Motion Limited Method and system for transmitting an application to a device
US8060074B2 (en) 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
US20120124581A1 (en) 2010-03-10 2012-05-17 Hitachi, Ltd. Virtual computer system and control method of virtual computer system
US20130031158A1 (en) * 2010-08-20 2013-01-31 Salsburg Michael A Moving enterprise software applications to a cloud domain
US8813223B2 (en) 2011-07-26 2014-08-19 Intel Corporation Secure network topology on a virtualized server

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574709B2 (en) * 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
US20080126792A1 (en) * 2006-09-19 2008-05-29 Herington Daniel E Systems and methods for achieving minimal rebooting during system update operations
US20090125901A1 (en) * 2007-11-13 2009-05-14 Swanson Robert C Providing virtualization of a server management controller
US8977842B1 (en) * 2010-02-05 2015-03-10 Symantec Corporation Hypervisor enabled secure inter-container communications

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493654B2 (en) 2004-11-20 2009-02-17 International Business Machines Corporation Virtualized protective communications system
US7912822B2 (en) * 2004-12-02 2011-03-22 Desktopsites Inc. System and method for launching a resource in a network
US20080109801A1 (en) * 2006-11-06 2008-05-08 International Business Machines Corporation Dynamically generating installable software artifacts in a canonical form
US8060074B2 (en) 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
US20110126192A1 (en) * 2009-10-26 2011-05-26 Simon Frost Systems and methods for providing and updating a unified client
US20120124581A1 (en) 2010-03-10 2012-05-17 Hitachi, Ltd. Virtual computer system and control method of virtual computer system
US20110258301A1 (en) * 2010-04-15 2011-10-20 Research In Motion Limited Method and system for transmitting an application to a device
US20130031158A1 (en) * 2010-08-20 2013-01-31 Salsburg Michael A Moving enterprise software applications to a cloud domain
US8813223B2 (en) 2011-07-26 2014-08-19 Intel Corporation Secure network topology on a virtualized server

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Customizing the vSphere Client"; VMWare.com website; May 21, 2009. *
"What is SaaS"; webopedia.com website as captured by the Wayback Machine Internet Archive on May 2, 2010. *
Jim Bird; "Developing and Testing in the Cloud"; Building Real Software blog on blogspot.com, Jul. 11, 2011. *
Ken Saunders; "Firefox Add-ons Installation Guide"; accessfirefox.org website; Aug. 7, 2008. *
Office Action mailed Dec. 4, 2013 from related U.S. Appl. No. 13/557,336.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210247974A1 (en) * 2015-05-27 2021-08-12 Google Llc Online marketplace of plugins for enhancing dialog systems
US11861346B2 (en) * 2015-05-27 2024-01-02 Google Llc Online marketplace of plugins for enhancing dialog systems

Also Published As

Publication number Publication date
US20150254460A1 (en) 2015-09-10
US9798881B2 (en) 2017-10-24
US20130191823A1 (en) 2013-07-25

Similar Documents

Publication Publication Date Title
US9798881B2 (en) Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration
US20210349706A1 (en) Release lifecycle management system for multi-node application
US11405274B2 (en) Managing virtual network functions
US11513809B2 (en) Kernel-integrated instance-specific operational resources with virtualization
US10095496B2 (en) Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud infrastructure
US20150074659A1 (en) Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software
US11941452B2 (en) System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9262193B2 (en) Multi-tier platform-as-a-service deployment reduced to single-tier architecture for development
EP3017397B1 (en) Cryptographically attested resources for hosting virtual machines
US9612815B1 (en) Method and tool for automating deployment of reference implementation architectures for pre-integrated multi-product solutions
US10031783B2 (en) Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US20160371102A1 (en) System and method for supporting execution of application based on multi-platform using virtual platform service
US11403147B2 (en) Methods and apparatus to improve cloud management
US10761823B2 (en) Imposing a common build system for services from disparate sources
Ferreira et al. libboincexec: A generic virtualization approach for the boinc middleware
US11856067B2 (en) Methods and apparatus to centralize localization of micro-services messages in a distributed cloud environment
Mongkolluksame et al. A management system for software package distribution

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DAVIDSON, JASON A.;CHAKRABARTI, SOMNATH;PAHWA, NEERU S.;SIGNING DATES FROM 20120929 TO 20130111;REEL/FRAME:029611/0696

AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA PREVIOUSLY RECORDED ON REEL 029611 FRAME 0696. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DAVIDSON, JASON A.;CHAKRABARTI, SOMNATH;PAHWA, NEERU S.;AND OTHERS;SIGNING DATES FROM 20120926 TO 20130111;REEL/FRAME:034237/0605

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8