US20140280806A1 - System and method for a self service portal and automation for internally hosted virtual server resources - Google Patents
System and method for a self service portal and automation for internally hosted virtual server resources Download PDFInfo
- Publication number
- US20140280806A1 US20140280806A1 US13/826,753 US201313826753A US2014280806A1 US 20140280806 A1 US20140280806 A1 US 20140280806A1 US 201313826753 A US201313826753 A US 201313826753A US 2014280806 A1 US2014280806 A1 US 2014280806A1
- Authority
- US
- United States
- Prior art keywords
- computer code
- code file
- computer
- cloud computing
- computing system
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/173—Customisation support for file systems, e.g. localisation, multi-language support, personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Definitions
- the present disclosure generally relates to a system and method for a self service portal and automation for internally hosted virtual server resources and for provisioning cloud resources among various cloud computing system assets.
- Provisioning is a process to prepare nodes of a computer network for new services to network users.
- the provisioning process closely monitors the rights of a user attempting to change the network to ensure other users' privacy and network resource security.
- Provisioning also ensures compliance with network protocols and minimizes the vulnerability of systems to penetration and abuse while reducing a user's ability to customize any configurations.
- Cloud-based systems are generally described as providing on-demand self-service to its users.
- the self-service nature of cloud computing typically lets users edit and obtain cloud services (e.g., configurations, applications, the infrastructure supporting the applications, etc.) without action from a system administrator.
- a cloud service portal provides this access to system users.
- Provisioning in cloud-based systems most often occurs when a company transitions its existing applications or new applications to the cloud.
- cloud-based systems often require new applications to be significantly re-engineered before they may be provisioned.
- a computer-implemented method for provisioning computer code in a cloud computing system may receive a computer code file at a repository server via a portal interface to an automation service.
- the computer code file may include a discrete file or package of files corresponding to a complete application or an update for the application for execution on a plurality of cloud computing system nodes.
- the method may also receive one or more provisioning conditions at the automation service via the portal interface, and send the computer code file to a plurality of cloud computing system end nodes based on the received provisioning conditions. Further, the method may cause the sent computer code file to be installed on each of the plurality of cloud computing system end nodes.
- a computer device may provision computer code in a cloud computing system.
- the computer device may comprise one or more processors and one or more memories coupled to the one or more processors.
- the one or more memories may include computer executable instructions stored therein that, when executed by the one or more processors, cause the one or more processors to receive a computer code file at a repository server via a portal interface to an automation service.
- the computer code file may include a discrete file or package of files corresponding to a complete application or an update for the application for execution on a plurality of cloud computing system nodes.
- the instructions when executed, may also receive one or more provisioning conditions at the automation service via the portal interface, and send the computer code file to a plurality of cloud computing system end nodes based on the received provisioning conditions. Further, the instructions, when executed, may cause the sent computer code file to be installed on each of the plurality of cloud computing system end nodes.
- a tangible computer-readable medium may include non-transitory computer readable instructions stored thereon for provisioning computer code in a cloud computing system.
- the instructions may comprise receiving a computer code file at a repository server via a portal interface to an automation service.
- the computer code file may include a discrete file or package of files corresponding to a complete application or an update for the application for execution on a plurality of cloud computing system nodes.
- the instructions may also comprise receiving one or more provisioning conditions via the portal at the automation service and sending the computer code file to a plurality of cloud computing system end nodes based on the received provisioning conditions. Further, the instruction may comprise causing the sent computer code file to be installed on each of the plurality of cloud computing system end nodes.
- FIG. 1 illustrates a block diagram of one portion of a computer-implemented system for provisioning applications in a cloud computing environment
- FIG. 2 illustrates one embodiment of a flowchart for a method for preparing code for provisioning in a cloud computing system
- FIG. 3 illustrates one embodiment of a portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in cloud computing environment;
- FIG. 4 illustrates one embodiment of another portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in a cloud computing environment
- FIG. 5 illustrates one embodiment of still another portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in a cloud computing environment
- FIG. 6 illustrates a block diagram of another portion of a computer-implemented system for provisioning applications in a cloud computing environment
- FIGS. 7A and 7B illustrate embodiments of flowcharts for methods for provisioning code in the cloud computing system
- FIG. 8 illustrates one embodiment of still another portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in a cloud computing environment
- FIG. 9 illustrates a block diagram of a computer to implement the various methods and functions for provisioning code in the cloud computing system.
- a system 100 for provisioning applications and other code in a cloud computing environment may include front end components 102 and backend components 104 in communication with each other via a communication link 106 (e.g., computer network, telephone system, in-person communication, etc.).
- FIG. 1 illustrates a block diagram of a high-level architecture of a provisioning system 100 including various software and hardware components or modules that may employ a method to provision applications and other code to users or nodes 105 a , 105 b , and 105 c in a cloud computing environment.
- the various modules may be implemented as computer-readable storage memories containing computer-readable instructions (i.e., software) for execution by a processor of the computer system 100 .
- the modules may perform the various tasks associated with deploying, provisioning, and verifying installation of new code to nodes 105 a - c within a cloud computing system.
- the computer system 100 also includes both hardware and software applications, as well as various data communications channels for communicating data between the various hardware and software components.
- the provisioning system 100 may include various entities at the front end 102 that may communicate code and other data to the backend components 104 to complete deployment and provisioning of new code in a cloud computing system.
- the front end components 102 may include a self service portal 108 and various end nodes 105 .
- the portal 108 may include an interface for communicating new code and applications to the backend components 104 of the provisioning system 100 .
- the portal may be implemented as a web-based application executing with web browser application on a computing device of an application developer.
- the portal may be implemented as a web-browser plug-in.
- the portal 108 may use the memory and processing services of a developer's computing device.
- the computing device including a browser and portal application 108 may include a memory 108 a storing various instructions or functions described herein and a processor 108 b and new code 109 or an application for provisioning.
- the portal 108 may execute instructions to communicate with an automation service 111 and cause the service 111 to access a memory 112 using a processor 114 to send instructions to the portal to display a graphical interface (GUI) 112 a for the provisioning system 100 .
- GUI graphical interface
- the GUI 112 a may be displayed within a web browser executing on the portal 108 .
- the portal 108 includes a computing device that executes instructions stored in the memory 108 a using the processor 108 b to upload new code 109 to a code repository server, select provisioning conditions through the GUI 112 a , cause the backend components to build a metabase 116 for the code, and execute a provisioning process for the new code 109 .
- the new code 109 may include a discrete file or package of files for a complete application or an application update.
- the new code 109 may be written for execution on each of the plurality of cloud computing system nodes 105 .
- a system administration server 118 may also include a memory 118 a storing instructions for execution by a processor 118 b to store metadata and other information corresponding to the new code.
- the automation service 111 builds the metabase 116 to provide information about the new code 109 for provisioning while the system administration server 118 builds a system administration database 120 to provide information about the new code 109 to automate repetitive network administrative tasks, quickly deploy critical applications, and proactively manage infrastructure changes within the system 100 .
- the system 100 described herein may be employed in a method 200 ( FIG. 2 ) to provision new code and applications within a cloud computing system.
- the method 200 may include one or more functions or routines in the form of non-transitory computer-executable instructions that are stored in a tangible computer-readable storage medium and executed using a processor of a computing device (e.g., the portal 108 , the automation service 111 , or any combination of computing devices within the system 100 ).
- the routines may be included as part of any of the modules or instructions described in relation to FIG. 1 , above, or FIG. 6 , below, or as part of a module that is external to the system illustrated by FIGS. 1 and 6 .
- the method may upload new code to a repository server 122 .
- a user may cause the processor 108 b of the portal 108 to execute instructions stored in the memory 108 a to upload the new code to a remote repository server 122 via the network 106 .
- a Maven plug-in causes instructions to be executed to upload the new code 109 to the repository server 122 .
- the method 200 may access the automation service 111 via the network 106 .
- the function 204 may cause the portal 108 to login to a user interface 112 a for the service 111 .
- FIG. 3 illustrates an example interface 300 of the portal 108 for the system 100 .
- the interface 300 may include the GUI 112 a described herein and may generally be described as an “Integrated Customer Platform/Technical Platform” to provision new code and applications to end nodes in a cloud computing system.
- the interface 300 may include a first web page for a browser application to facilitate the provisioning process as described herein.
- a user or automated service may access the interface 300 using login credentials 302 .
- the interface 300 may present several services 304 to the user.
- the services include providing access to security settings 304 a , rules for provisioning new code and applications in a cloud computing system 304 b , access to data objects 304 c , and processes for provisioning new code and applications in the cloud computing system 304 d.
- the method 200 may select the application service 304 d to begin a provisioning process.
- a user or an automated process may initiate the application service 304 d using the interface 300 .
- a user may select an icon for the application service 304 a displayed within the interface 300 to begin the provisioning process. Selecting an icon may cause the system 100 (or system 600 of FIG. 6 , described below) to execute one or more instructions to complete the provisioning process as herein described.
- FIG. 4 illustrates an example interface 400 of the portal 108 for the system 100 .
- the interface 400 may include a second web page for a browser application to facilitate the provisioning process as described herein.
- the interface 400 may also include the GUI 112 a as described herein and may also be generally described as an “Integrated Customer Platform/Technical Platform” to provision new code and applications in a cloud computing system.
- the interface 400 may include several icons 402 that, upon selection by a user or automated process, cause the system 100 to execute various other instructions that are related to the provisioning process described herein.
- the icons and functions may include a deploy function 402 a , a view info function 402 b , a promote function 402 c , a veracode function 402 d , a credentials function 402 e , an application activation function 402 f , an application rollback function 402 g , an assign to a pod function 402 h , and a manage access control 402 i.
- the method 200 may select a deploy function 402 a .
- Selection of the deploy function 402 a may cause the method 200 to display another interface to facilitate the provisioning process, generally, and to provide various conditions for a user or automated process to select for the provisioning process.
- FIG. 5 illustrates an example interface 500 of the portal 108 for the system 100 .
- the interface 500 may include several conditions 502 to shape the provisioning process.
- the interface 500 may include a third web page for a browser application to facilitate the provisioning process as described herein.
- the configurable conditions 502 may include an environment 502 a , a type 502 b , a pod 502 c , a deployable indicator 502 d , a profile 502 e , a template 502 f , a server farm 502 g , a description 502 h , a reason 502 i , and an environment descriptor 502 j .
- the environment descriptor 502 j may indicate whether the new code 109 is to be provisioned to a test environment or deployed to nodes 105 for live use in a deploy environment.
- the pod 502 c may indicate how many and what type of machines the nodes 105 are for the provisioning process.
- the method 200 may select one or more of the conditions 502 for the provisioning process.
- the interface. 500 may also include one or more selectable objects 504 , 506 that, upon selection by a user or automated process, cause the system to execute further instructions to deploy the new code 109 .
- selection of a reset object 504 may cause the system 100 to execute instructions to clear any selected conditions 502
- a deploy object 504 may cause the system 100 to begin a deployment and provisioning process.
- the method 200 may use the code 109 and any conditions 502 selected by function 210 to, build a metabase 116 for the provisioning process.
- the method 200 may use characteristics of the new code 109 (e.g., version number, build date, length, and data, flow, output, and control dependencies, etc.), the conditions 502 selected at function 210 to create the metabase 116 (i.e., a database storing metadata), as well as information about the system 100 to determine how the new code 109 will be provisioned within a cloud computing system.
- the metabase 116 may be a physical database or may be a virtual database in which the metadata necessary to provision the new code 109 is gathered from various sources on the fly when it is needed.
- FIG. 6 illustrates a block diagram of a high-level architecture of a provisioning system 600 including various software and hardware components or modules that may employ a method to provision applications and other code to users or end nodes in a cloud computing environment.
- the various modules e.g., 111 , 604 , 608 , 612 , 616 , 620 , 624 , and 628 ) may be implemented as a computing device ( FIG.
- the computer system 600 also includes both hardware and software applications, as well as various data communications channels for communicating data between the various hardware and software components.
- the system 600 modules may communicate code and other data to each other to complete deployment and provisioning of new code in a cloud computing system.
- the portal 108 may include instructions for execution on a processor to initiate deployment and provisioning of new code 109 with the automation service 111 .
- the automation service 111 may include instructions for execution on a processor in response to the instructions received from the portal 108 .
- the automation service 111 may include instructions to initiate a deployment procedure call 602 to an automation service agent 604 .
- the automation service agent may also be configured to execute instructions to send data to various other modules of the system 600 .
- the automation agent service 604 may be further configured to send data and commands to a load balancer 608 , a virtual integrated system server 612 , and a system administration server 118 , among other modules of the system 600 .
- the virtual integrated system server 612 is a server including virtual integrated system software such as the Dell® VIS Creator® produced by Dell Inc. of Round Rock, Tex.
- the virtual integrated system server 612 may include instructions to send data and commands to a DNS service 616 , the automation service 111 , and a provisioning server 620 .
- the provisioning server 620 is a virtual server including a system administration server agent 620 a and configured to communicate the new code 109 to the various nodes 105 of the system 100 .
- the provisioning server 620 and the system administration server agent 620 a may also be configured to communicate data and instructions to the system administration server 118 ( FIG. 1 ).
- the system administration server 118 may be configured to communicate data and instructions to the automation agent service 604 .
- the data and commands of the system 600 and various modules described above may be used in methods 700 and 750 to provision new code to a plurality of nodes in a cloud computing system.
- the methods 700 and 750 may include one or more functions or routines in the form of non-transitory computer-executable instructions that are stored in a tangible computer-readable storage medium and executed using a processor of a computing device (the modules 111 , 604 , 608 , 612 , 616 , 620 , 624 , and 628 ) or any combination of computing devices within the system 600 ).
- the routines may be included as part of any of the modules or instructions described in relation to FIG. 1 or FIG. 6 , or as part of a module that is external to the system illustrated by FIGS. 1 and 6 .
- the method 700 may deploy and provision the new code 109 .
- the method may execute instructions to create a load balancer pool and assign a load balancer context to the new code 109 for layer seven load balancing.
- the function 702 may send data 606 resulting from execution of the method 200 to a load balancer 608 .
- the function 702 may send one or more of a server farm identification, a pod identification, and other information describing the new code 109 and the selected conditions 502 .
- the method 700 may execute instructions to provision the new code to the nodes of the cloud computing system.
- a method 750 may complete the provisioning process.
- the method may execute instructions to cause a domain name service (DNS) module 616 to register the new code 109 .
- DNS domain name service
- the function 752 registers each node 105 identified by the provisioning conditions 502 as including the new code file 109 .
- each node 105 may include a friendly name and an internet protocol (IP) address to be registered with the DNS module 616 .
- Function 752 may also execute instructions to initiate a callback to the virtual integrated system server 612 with data indicating that the new code is registered with the DNS server 616 .
- IP internet protocol
- the method 750 may send the new code 109 to a provisioning server 620 and a system administration server agent 620 a may cause the new code 109 to be sent to all nodes 105 identified by the selected conditions 502 .
- the method 705 may execute instructions to initiate a call back 622 to the automation service 111 indicating that the deployment of the new code 109 to the nodes 105 is complete.
- a function 706 may add a virtual machine 624 for the new code 109 to a load balancer pool and cause the automation service agent 604 to call the load balancer module 608 to add each node 105 to the load balancer pool to complete the configuration of the load balancer for each provisioned node.
- a function 708 may then execute instructions to cause the system administration server agent 620 a to update the system administration server 118 and provisioning records 632 .
- the provisioning records may include an XML data repository for the provisioning record.
- the records 632 may allow any updates or further installations of the new code 109 to occur automatically.
- the method 700 may execute instructions to send a call back 634 to the automation agent service 604 indicating that installation of the new code at the nodes 105 is complete.
- the portal 108 may display a interface 800 ( FIG. 8 ) indicating that the new code 109 has been provisioned.
- FIG. 9 is a high-level block diagram of an example computing environment for a system and method for provisioning cloud resources among various cloud computing system assets.
- the computing device 901 may include a server, a client computing device (e.g., a personal computer, a tablet computer, a Wi-Fi-enabled device, cellular phone, or other personal computing device capable of wireless or wired communication), a thin client, or other known type of computing device.
- client computing device e.g., a personal computer, a tablet computer, a Wi-Fi-enabled device, cellular phone, or other personal computing device capable of wireless or wired communication
- a thin client or other known type of computing device.
- Processor systems similar or identical to the example provisioning system 900 may be used to implement and execute the example system of FIGS. 1 and 6 , the example methods of FIGS.
- example system 900 is described below as including a plurality of peripherals, interfaces, chips, memories, etc., one or more of those elements may be omitted from other example processor systems used to implement and execute the example system 100 , 600 including a portal 108 , automation service 111 , automation service agnet 604 , etc. Also, other components may be added.
- the computing device 901 includes a processor 902 that is coupled to an interconnection bus 904 .
- the processor 902 includes a register set or register space 906 , which is depicted in FIG. 9 as being entirely on-chip, but which could alternatively be located entirely or partially off-chip and directly coupled to the processor 902 via dedicated electrical connections and/or via the interconnection bus 904 .
- the processor 902 may be any suitable processor, processing unit or microprocessor.
- the computing device 901 may be a multi-processor device and, thus, may include one or more additional processors that are identical or similar to the processor 902 and that are communicatively coupled to the interconnection bus 904 .
- the processor 902 of FIG. 9 is coupled to a chipset 908 , which includes a memory controller 910 and a peripheral input/output (I/O) controller 912 .
- a chipset typically provides I/O and memory management functions as well as a plurality of general purpose and/or special purpose registers, timers, etc. that are accessible or used by one or more processors coupled to the chipset 908 .
- the memory controller 910 performs functions that enable the processor 902 (or processors if there are multiple processors) to access a system memory 914 and a mass storage memory 916 .
- the system memory 914 may include any desired type of volatile and/or non-volatile memory such as, for example, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, read-only memory (ROM), etc.
- the mass storage memory 916 may include any desired type of mass storage device. For example, if the computing device 901 is used to implement a provisioning system 100 , 600 having an API 919 (including functions and instructions as described by the methods 200 , 700 , and 750 of FIGS.
- the mass storage memory 916 may include a hard disk drive, an optical drive, a tape storage device, a solid-state memory (e.g., a flash memory, a RAM memory, etc.), a magnetic memory (e.g., a hard drive), or any other memory suitable for mass storage.
- non-transitory program functions, modules and routines are stored in mass storage memory 916 , loaded into system memory 914 , and executed by a processor 902 or can be provided from computer program products that are stored in tangible computer-readable storage mediums (e.g. RAM, hard disk, optical/magnetic media, etc.).
- Mass storage 916 may also include a cache memory 921 storing application data, user profile data, and timestamp data corresponding to the application data, and other data for use by the application 918 .
- the peripheral I/O controller 910 performs functions that enable the processor 902 to communicate with peripheral input/output (I/O) devices 922 and 924 , a network interface 926 , via a peripheral I/O bus 928 .
- the I/O devices 922 and 924 may be any desired type of I/O device such as, for example, a keyboard, a display (e.g., a liquid crystal display (LCD), a cathode ray tube (CRT) display, etc.), a navigation device (e.g., a mouse, a trackball, a capacitive touch pad, a joystick, etc.), etc.
- the I/O devices 922 and 924 may be used with the application 918 to provide a portal 108 and other interfaces for the systems 100 , 600 as described in relation to the figures.
- the local network transceiver 928 may include support for Wi-Fi network, Bluetooth, Infrared, cellular, or other wireless data transmission protocols.
- one element may simultaneously support each of the various wireless protocols employed by the computing device 901 .
- a software-defined radio may be able to support multiple protocols via downloadable instructions.
- the computing device 901 may be able to periodically poll for visible wireless network transmitters (both cellular and local network) on a periodic basis. Such polling may be possible even while normal wireless traffic is being supported on the computing device 901 .
- the network interface 926 may be, for example, an Ethernet device, an asynchronous transfer mode (ATM) device, an 802.11 wireless interface device, a DSL modem, a cable modem, a cellular modem, etc., that enables the system 100 , 600 to communicate with another computer system having at least the elements described in relation to the systems 100 , 600 .
- ATM asynchronous transfer mode
- 802.11 wireless interface device a DSL modem, a cable modem, a cellular modem, etc.
- the system 900 may also implement the portal 108 and various system modules on remote computing devices 930 and 932 .
- the remote computing devices 930 and 932 may communicate with the computing device 901 over a network link 934 .
- the computing device 901 may receive location data created by an application executing on a remote computing device 930 , 932 .
- the application 918 including the portal 108 may be retrieved by the computing device 901 from a cloud computing server 936 via the Internet 938 .
- the retrieved application 918 may be programmatically linked with the computing device 901 .
- the application 918 may be a Java® applet executing within a Java® Virtual Machine (JVM) environment resident in the computing device 901 or the remote computing devices 930 , 932 .
- the application 918 may also be a web-based application (e.g., the portal interface 108 of FIG. 1 ) adapted to execute in a web-browser located on the computing devices 901 , 930 , and 932 .
- the application 918 may communicate with back end components 940 via the Internet 938 or other type of network.
- a self-service portal 108 and various interfaces 300 , 400 , 500 , and 800 coupled with the methods 200 , 700 , and 750 may allow rapid provisioning, installation, and/or removal of virtual resources on internal hosted infrastructure.
- the portal 108 and system 100 , 600 described herein may eliminated the need for manually-integrated tools for provisioning that are error prone and time consuming.
- the embodiments described herein may provide a tool that integrates various products together to provide a seamless experience for end users. Because the portal 108 may be implemented as a web-based application, underlying products and applications may be allowed to change without affecting end node users.
- virtual server resources may be provisioned in minutes instead of hours or days. Further, the provision process occurs almost entirely automatically, thus eliminating the need for human resources and interaction in the provisioning process and provides a single unified experience for new code and application provisioning.
- the network 938 may include but is not limited to any combination of a LAN, a MAN, a WAN, a mobile, a wired or wireless network, a private network, or a virtual private network.
- a portal 108 is illustrated in FIG. 1 to simplify and clarify the description, it is understood that any number of instances of the portal 108 are supported and can be in communication with the systems 100 and 600 .
- functions may constitute either software modules (e.g., non-transitory code stored on a tangible machine-readable storage medium) or hardware modules.
- a hardware module is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner.
- one or more computer systems e.g., a standalone, client or server computer system
- one or more hardware modules of a computer system e.g., a processor or a group of processors
- software e.g., an application or application portion
- a hardware module may be implemented mechanically or electronically.
- a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain functions.
- a hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- the term hardware should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein.
- hardware modules are temporarily configured (e.g., programmed)
- each of the hardware modules need not be configured or instantiated at any one instance in time.
- the hardware modules comprise a general-purpose processor configured using software
- the general-purpose processor may be configured as respective different hardware modules at different times.
- Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware and software modules can provide information to, and receive information from, other hardware and/or software modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple of such hardware or software modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware or software modules. In embodiments in which multiple hardware modules or software are configured or instantiated at different times, communications between such hardware or software modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware or software modules have access. For example, one hardware or software module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware or software module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware and software modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- a resource e.g., a collection of information
- processors may be temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions.
- the modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
- the methods or functions described herein may be at least partially processor-implemented. For example, at least some of the functions of a method may be performed by one or processors or processor-implemented hardware modules. The performance of certain of the functions may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
- the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the functions may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs).
- a network e.g., the Internet
- APIs application program interfaces
- the performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines.
- the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
- such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
- any reference to “some embodiments” or “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment.
- the appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- Coupled and “connected” along with their derivatives.
- some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact.
- the term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
- the embodiments are not limited in this context.
- the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion.
- a function, process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
- “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The present disclosure generally relates to a system and method for a self service portal and automation for internally hosted virtual server resources and for provisioning cloud resources among various cloud computing system assets.
- The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
- Provisioning is a process to prepare nodes of a computer network for new services to network users. Typically, the provisioning process closely monitors the rights of a user attempting to change the network to ensure other users' privacy and network resource security. Provisioning also ensures compliance with network protocols and minimizes the vulnerability of systems to penetration and abuse while reducing a user's ability to customize any configurations.
- Cloud-based systems are generally described as providing on-demand self-service to its users. The self-service nature of cloud computing typically lets users edit and obtain cloud services (e.g., configurations, applications, the infrastructure supporting the applications, etc.) without action from a system administrator. A cloud service portal provides this access to system users. Provisioning in cloud-based systems most often occurs when a company transitions its existing applications or new applications to the cloud. However, cloud-based systems often require new applications to be significantly re-engineered before they may be provisioned.
- In one embodiment, a computer-implemented method for provisioning computer code in a cloud computing system may receive a computer code file at a repository server via a portal interface to an automation service. The computer code file may include a discrete file or package of files corresponding to a complete application or an update for the application for execution on a plurality of cloud computing system nodes. The method may also receive one or more provisioning conditions at the automation service via the portal interface, and send the computer code file to a plurality of cloud computing system end nodes based on the received provisioning conditions. Further, the method may cause the sent computer code file to be installed on each of the plurality of cloud computing system end nodes.
- In a further embodiment, a computer device may provision computer code in a cloud computing system. The computer device may comprise one or more processors and one or more memories coupled to the one or more processors. The one or more memories may include computer executable instructions stored therein that, when executed by the one or more processors, cause the one or more processors to receive a computer code file at a repository server via a portal interface to an automation service. The computer code file may include a discrete file or package of files corresponding to a complete application or an update for the application for execution on a plurality of cloud computing system nodes. The instructions, when executed, may also receive one or more provisioning conditions at the automation service via the portal interface, and send the computer code file to a plurality of cloud computing system end nodes based on the received provisioning conditions. Further, the instructions, when executed, may cause the sent computer code file to be installed on each of the plurality of cloud computing system end nodes.
- In a still further embodiment, a tangible computer-readable medium may include non-transitory computer readable instructions stored thereon for provisioning computer code in a cloud computing system. The instructions may comprise receiving a computer code file at a repository server via a portal interface to an automation service. The computer code file may include a discrete file or package of files corresponding to a complete application or an update for the application for execution on a plurality of cloud computing system nodes. The instructions may also comprise receiving one or more provisioning conditions via the portal at the automation service and sending the computer code file to a plurality of cloud computing system end nodes based on the received provisioning conditions. Further, the instruction may comprise causing the sent computer code file to be installed on each of the plurality of cloud computing system end nodes.
- The features and advantages described in this summary and the following detailed description are not all-inclusive. Many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims hereof.
-
FIG. 1 illustrates a block diagram of one portion of a computer-implemented system for provisioning applications in a cloud computing environment; -
FIG. 2 illustrates one embodiment of a flowchart for a method for preparing code for provisioning in a cloud computing system; -
FIG. 3 illustrates one embodiment of a portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in cloud computing environment; -
FIG. 4 illustrates one embodiment of another portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in a cloud computing environment; -
FIG. 5 illustrates one embodiment of still another portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in a cloud computing environment; -
FIG. 6 illustrates a block diagram of another portion of a computer-implemented system for provisioning applications in a cloud computing environment; -
FIGS. 7A and 7B illustrate embodiments of flowcharts for methods for provisioning code in the cloud computing system; -
FIG. 8 illustrates one embodiment of still another portion of a user interface for a self-service portal for the computer-implemented system for provisioning applications in a cloud computing environment; and -
FIG. 9 illustrates a block diagram of a computer to implement the various methods and functions for provisioning code in the cloud computing system. - The figures depict a preferred embodiment of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
- With reference to
FIG. 1 , asystem 100 for provisioning applications and other code in a cloud computing environment may includefront end components 102 andbackend components 104 in communication with each other via a communication link 106 (e.g., computer network, telephone system, in-person communication, etc.).FIG. 1 illustrates a block diagram of a high-level architecture of aprovisioning system 100 including various software and hardware components or modules that may employ a method to provision applications and other code to users ornodes computer system 100. The modules may perform the various tasks associated with deploying, provisioning, and verifying installation of new code to nodes 105 a-c within a cloud computing system. Thecomputer system 100 also includes both hardware and software applications, as well as various data communications channels for communicating data between the various hardware and software components. - The
provisioning system 100 may include various entities at thefront end 102 that may communicate code and other data to thebackend components 104 to complete deployment and provisioning of new code in a cloud computing system. For example, thefront end components 102 may include aself service portal 108 and various end nodes 105. Theportal 108 may include an interface for communicating new code and applications to thebackend components 104 of theprovisioning system 100. In some embodiments, the portal may be implemented as a web-based application executing with web browser application on a computing device of an application developer. In other embodiments, the portal may be implemented as a web-browser plug-in. Implemented as a web-based application, theportal 108 may use the memory and processing services of a developer's computing device. For example, the computing device including a browser andportal application 108 may include amemory 108 a storing various instructions or functions described herein and aprocessor 108 b andnew code 109 or an application for provisioning. For example, theportal 108 may execute instructions to communicate with anautomation service 111 and cause theservice 111 to access amemory 112 using aprocessor 114 to send instructions to the portal to display a graphical interface (GUI) 112 a for theprovisioning system 100. The GUI 112 a may be displayed within a web browser executing on theportal 108. In some embodiments theportal 108 includes a computing device that executes instructions stored in thememory 108 a using theprocessor 108 b to uploadnew code 109 to a code repository server, select provisioning conditions through theGUI 112 a, cause the backend components to build ametabase 116 for the code, and execute a provisioning process for thenew code 109. Thenew code 109 may include a discrete file or package of files for a complete application or an application update. Thenew code 109 may be written for execution on each of the plurality of cloud computing system nodes 105. - A
system administration server 118 may also include amemory 118 a storing instructions for execution by aprocessor 118 b to store metadata and other information corresponding to the new code. In some embodiments, theautomation service 111 builds themetabase 116 to provide information about thenew code 109 for provisioning while thesystem administration server 118 builds asystem administration database 120 to provide information about thenew code 109 to automate repetitive network administrative tasks, quickly deploy critical applications, and proactively manage infrastructure changes within thesystem 100. - With reference to
FIGS. 2-6 , thesystem 100 described herein may be employed in a method 200 (FIG. 2 ) to provision new code and applications within a cloud computing system. Themethod 200 may include one or more functions or routines in the form of non-transitory computer-executable instructions that are stored in a tangible computer-readable storage medium and executed using a processor of a computing device (e.g., the portal 108, theautomation service 111, or any combination of computing devices within the system 100). The routines may be included as part of any of the modules or instructions described in relation toFIG. 1 , above, orFIG. 6 , below, or as part of a module that is external to the system illustrated byFIGS. 1 and 6 . - At
function 202, the method may upload new code to arepository server 122. For example, a user may cause theprocessor 108 b of the portal 108 to execute instructions stored in thememory 108 a to upload the new code to aremote repository server 122 via thenetwork 106. In some embodiments, a Maven plug-in causes instructions to be executed to upload thenew code 109 to therepository server 122. - At
function 204, themethod 200 may access theautomation service 111 via thenetwork 106. In some embodiments, thefunction 204 may cause the portal 108 to login to auser interface 112 a for theservice 111.FIG. 3 illustrates anexample interface 300 of the portal 108 for thesystem 100. Theinterface 300 may include theGUI 112 a described herein and may generally be described as an “Integrated Customer Platform/Technical Platform” to provision new code and applications to end nodes in a cloud computing system. In some embodiments, theinterface 300 may include a first web page for a browser application to facilitate the provisioning process as described herein. A user or automated service may access theinterface 300 usinglogin credentials 302. Theinterface 300 may present several services 304 to the user. In some embodiments, the services include providing access tosecurity settings 304 a, rules for provisioning new code and applications in acloud computing system 304 b, access todata objects 304 c, and processes for provisioning new code and applications in thecloud computing system 304 d. - At
function 206, themethod 200 may select theapplication service 304 d to begin a provisioning process. In some embodiments, a user or an automated process may initiate theapplication service 304 d using theinterface 300. For example, using a mouse or other pointing device, a user may select an icon for theapplication service 304 a displayed within theinterface 300 to begin the provisioning process. Selecting an icon may cause the system 100 (orsystem 600 ofFIG. 6 , described below) to execute one or more instructions to complete the provisioning process as herein described. - Upon selection of the
application service 304 d, themethod 200 may display another interface to facilitate the provisioning process.FIG. 4 illustrates anexample interface 400 of the portal 108 for thesystem 100. In some embodiments, theinterface 400 may include a second web page for a browser application to facilitate the provisioning process as described herein. Theinterface 400 may also include theGUI 112 a as described herein and may also be generally described as an “Integrated Customer Platform/Technical Platform” to provision new code and applications in a cloud computing system. Theinterface 400 may include several icons 402 that, upon selection by a user or automated process, cause thesystem 100 to execute various other instructions that are related to the provisioning process described herein. For example, the icons and functions may include a deployfunction 402 a, aview info function 402 b, a promotefunction 402 c, averacode function 402 d, a credentials function 402 e, anapplication activation function 402 f, anapplication rollback function 402 g, an assign to apod function 402 h, and a manageaccess control 402 i. - At
function 208, themethod 200 may select a deployfunction 402 a. Selection of the deployfunction 402 a may cause themethod 200 to display another interface to facilitate the provisioning process, generally, and to provide various conditions for a user or automated process to select for the provisioning process.FIG. 5 illustrates anexample interface 500 of the portal 108 for thesystem 100. Theinterface 500 may includeseveral conditions 502 to shape the provisioning process. In some embodiments, theinterface 500 may include a third web page for a browser application to facilitate the provisioning process as described herein. Theconfigurable conditions 502 may include anenvironment 502 a, atype 502 b, apod 502 c, adeployable indicator 502 d, aprofile 502 e, atemplate 502 f, aserver farm 502 g, adescription 502 h, areason 502 i, and an environment descriptor 502 j. The environment descriptor 502 j may indicate whether thenew code 109 is to be provisioned to a test environment or deployed to nodes 105 for live use in a deploy environment. Thepod 502 c may indicate how many and what type of machines the nodes 105 are for the provisioning process. - At
function 210, themethod 200 may select one or more of theconditions 502 for the provisioning process. The interface. 500 may also include one or moreselectable objects new code 109. For example, selection of areset object 504 may cause thesystem 100 to execute instructions to clear any selectedconditions 502, while a deployobject 504 may cause thesystem 100 to begin a deployment and provisioning process. - At
function 212, themethod 200 may use thecode 109 and anyconditions 502 selected byfunction 210 to, build ametabase 116 for the provisioning process. In some embodiments, themethod 200 may use characteristics of the new code 109 (e.g., version number, build date, length, and data, flow, output, and control dependencies, etc.), theconditions 502 selected atfunction 210 to create the metabase 116 (i.e., a database storing metadata), as well as information about thesystem 100 to determine how thenew code 109 will be provisioned within a cloud computing system. Themetabase 116 may be a physical database or may be a virtual database in which the metadata necessary to provision thenew code 109 is gathered from various sources on the fly when it is needed. - With reference to
FIGS. 6-8 , asystem 600,method 700, andinterface 800 of the portal 108 for thesystem interface 800 may include a fourth web page for a browser application to facilitate the provisioning process as described herein.FIG. 6 illustrates a block diagram of a high-level architecture of aprovisioning system 600 including various software and hardware components or modules that may employ a method to provision applications and other code to users or end nodes in a cloud computing environment. The various modules (e.g., 111, 604, 608, 612, 616, 620, 624, and 628) may be implemented as a computing device (FIG. 9 ) including processors and tangible computer-readable storage memories containing computer-readable instructions (i.e., software) for execution by various processors. The modules may perform the various tasks associated with deploying, provisioning, and verifying installation of new code to nodes within a cloud computing system. Thecomputer system 600 also includes both hardware and software applications, as well as various data communications channels for communicating data between the various hardware and software components. - The
system 600 modules may communicate code and other data to each other to complete deployment and provisioning of new code in a cloud computing system. From thesystem 100 andmethod 200, the portal 108 may include instructions for execution on a processor to initiate deployment and provisioning ofnew code 109 with theautomation service 111. Theautomation service 111 may include instructions for execution on a processor in response to the instructions received from the portal 108. In some embodiments, theautomation service 111 may include instructions to initiate a deployment procedure call 602 to anautomation service agent 604. The automation service agent may also be configured to execute instructions to send data to various other modules of thesystem 600. For example, theautomation agent service 604 may be further configured to send data and commands to aload balancer 608, a virtualintegrated system server 612, and asystem administration server 118, among other modules of thesystem 600. In some embodiments, the virtualintegrated system server 612 is a server including virtual integrated system software such as the Dell® VIS Creator® produced by Dell Inc. of Round Rock, Tex. The virtualintegrated system server 612 may include instructions to send data and commands to aDNS service 616, theautomation service 111, and aprovisioning server 620. In some embodiments, theprovisioning server 620 is a virtual server including a systemadministration server agent 620 a and configured to communicate thenew code 109 to the various nodes 105 of thesystem 100. Theprovisioning server 620 and the systemadministration server agent 620 a may also be configured to communicate data and instructions to the system administration server 118 (FIG. 1 ). Thesystem administration server 118 may be configured to communicate data and instructions to theautomation agent service 604. - With reference to
FIGS. 6-8 , the data and commands of thesystem 600 and various modules described above may be used inmethods FIG. 2 ), themethods 700 and 750 (FIGS. 7 a and 7 b) may include one or more functions or routines in the form of non-transitory computer-executable instructions that are stored in a tangible computer-readable storage medium and executed using a processor of a computing device (themodules FIG. 1 orFIG. 6 , or as part of a module that is external to the system illustrated byFIGS. 1 and 6 . - Using the
new code 109, the selectedconditions 502 and the metabase 116 from themethod 200, themethod 700 may deploy and provision thenew code 109. Atfunction 702, the method may execute instructions to create a load balancer pool and assign a load balancer context to thenew code 109 for layer seven load balancing. In some embodiments, thefunction 702 may senddata 606 resulting from execution of themethod 200 to aload balancer 608. Thefunction 702 may send one or more of a server farm identification, a pod identification, and other information describing thenew code 109 and the selectedconditions 502. - At
function 704, themethod 700 may execute instructions to provision the new code to the nodes of the cloud computing system. With reference toFIG. 7 b, amethod 750 may complete the provisioning process. Atfunction 752, the method may execute instructions to cause a domain name service (DNS)module 616 to register thenew code 109. In some embodiments, thefunction 752 registers each node 105 identified by theprovisioning conditions 502 as including thenew code file 109. For example, each node 105 may include a friendly name and an internet protocol (IP) address to be registered with theDNS module 616.Function 752 may also execute instructions to initiate a callback to the virtualintegrated system server 612 with data indicating that the new code is registered with theDNS server 616. - At
function 754, themethod 750 may send thenew code 109 to aprovisioning server 620 and a systemadministration server agent 620 a may cause thenew code 109 to be sent to all nodes 105 identified by the selectedconditions 502. Atfunction 756, the method 705 may execute instructions to initiate a call back 622 to theautomation service 111 indicating that the deployment of thenew code 109 to the nodes 105 is complete. - Returning to
method 700, afunction 706 may add avirtual machine 624 for thenew code 109 to a load balancer pool and cause theautomation service agent 604 to call theload balancer module 608 to add each node 105 to the load balancer pool to complete the configuration of the load balancer for each provisioned node. Afunction 708 may then execute instructions to cause the systemadministration server agent 620 a to update thesystem administration server 118 and provisioning records 632. The provisioning records may include an XML data repository for the provisioning record. Therecords 632 may allow any updates or further installations of thenew code 109 to occur automatically. - At
function 710, themethod 700 may execute instructions to send a call back 634 to theautomation agent service 604 indicating that installation of the new code at the nodes 105 is complete. Upon receiving thecallback 634, the portal 108 may display a interface 800 (FIG. 8 ) indicating that thenew code 109 has been provisioned. -
FIG. 9 is a high-level block diagram of an example computing environment for a system and method for provisioning cloud resources among various cloud computing system assets. Thecomputing device 901 may include a server, a client computing device (e.g., a personal computer, a tablet computer, a Wi-Fi-enabled device, cellular phone, or other personal computing device capable of wireless or wired communication), a thin client, or other known type of computing device. As will be recognized by one skilled in the art, in light of the disclosure and teachings herein, other types of computing devices can be used that have different architectures. Processor systems similar or identical to theexample provisioning system 900 may be used to implement and execute the example system ofFIGS. 1 and 6 , the example methods ofFIGS. 2 , 7 a, and 7 b, the user interfaces ofFIGS. 3 , 4, 5, and 8, and the like. Although theexample system 900 is described below as including a plurality of peripherals, interfaces, chips, memories, etc., one or more of those elements may be omitted from other example processor systems used to implement and execute theexample system automation service 111,automation service agnet 604, etc. Also, other components may be added. - As shown in
FIG. 9 , thecomputing device 901 includes aprocessor 902 that is coupled to aninterconnection bus 904. Theprocessor 902 includes a register set or registerspace 906, which is depicted inFIG. 9 as being entirely on-chip, but which could alternatively be located entirely or partially off-chip and directly coupled to theprocessor 902 via dedicated electrical connections and/or via theinterconnection bus 904. Theprocessor 902 may be any suitable processor, processing unit or microprocessor. Although not shown inFIG. 9 , thecomputing device 901 may be a multi-processor device and, thus, may include one or more additional processors that are identical or similar to theprocessor 902 and that are communicatively coupled to theinterconnection bus 904. - The
processor 902 ofFIG. 9 is coupled to achipset 908, which includes amemory controller 910 and a peripheral input/output (I/O)controller 912. As is well known, a chipset typically provides I/O and memory management functions as well as a plurality of general purpose and/or special purpose registers, timers, etc. that are accessible or used by one or more processors coupled to thechipset 908. Thememory controller 910 performs functions that enable the processor 902 (or processors if there are multiple processors) to access asystem memory 914 and amass storage memory 916. - The
system memory 914 may include any desired type of volatile and/or non-volatile memory such as, for example, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, read-only memory (ROM), etc. Themass storage memory 916 may include any desired type of mass storage device. For example, if thecomputing device 901 is used to implement aprovisioning system methods FIGS. 2 , 7 a, and 7 b, respectively), and portal 108 to receive user input (e.g., thenew code 109, selected conditions 502), themass storage memory 916 may include a hard disk drive, an optical drive, a tape storage device, a solid-state memory (e.g., a flash memory, a RAM memory, etc.), a magnetic memory (e.g., a hard drive), or any other memory suitable for mass storage. In one embodiment, non-transitory program functions, modules and routines (e.g.,methods mass storage memory 916, loaded intosystem memory 914, and executed by aprocessor 902 or can be provided from computer program products that are stored in tangible computer-readable storage mediums (e.g. RAM, hard disk, optical/magnetic media, etc.).Mass storage 916 may also include acache memory 921 storing application data, user profile data, and timestamp data corresponding to the application data, and other data for use by theapplication 918. - The peripheral I/
O controller 910 performs functions that enable theprocessor 902 to communicate with peripheral input/output (I/O)devices network interface 926, via a peripheral I/O bus 928. The I/O devices O devices application 918 to provide a portal 108 and other interfaces for thesystems local network transceiver 928 may include support for Wi-Fi network, Bluetooth, Infrared, cellular, or other wireless data transmission protocols. In other embodiments, one element may simultaneously support each of the various wireless protocols employed by thecomputing device 901. For example, a software-defined radio may be able to support multiple protocols via downloadable instructions. In operation, thecomputing device 901 may be able to periodically poll for visible wireless network transmitters (both cellular and local network) on a periodic basis. Such polling may be possible even while normal wireless traffic is being supported on thecomputing device 901. Thenetwork interface 926 may be, for example, an Ethernet device, an asynchronous transfer mode (ATM) device, an 802.11 wireless interface device, a DSL modem, a cable modem, a cellular modem, etc., that enables thesystem systems - While the
memory controller 912 and the I/O controller 910 are depicted inFIG. 9 as separate functional blocks within thechipset 908, the functions performed by these blocks may be integrated within a single integrated circuit or may be implemented using two or more separate integrated circuits. Thesystem 900 may also implement the portal 108 and various system modules onremote computing devices remote computing devices computing device 901 over anetwork link 934. For example, thecomputing device 901 may receive location data created by an application executing on aremote computing device application 918 including the portal 108 may be retrieved by thecomputing device 901 from acloud computing server 936 via theInternet 938. When using thecloud computing server 936, the retrievedapplication 918 may be programmatically linked with thecomputing device 901. Theapplication 918 may be a Java® applet executing within a Java® Virtual Machine (JVM) environment resident in thecomputing device 901 or theremote computing devices application 918 may also be a web-based application (e.g., theportal interface 108 ofFIG. 1 ) adapted to execute in a web-browser located on thecomputing devices application 918 may communicate with back end components 940 via theInternet 938 or other type of network. - Using the
systems methods service portal 108 andvarious interfaces methods system - The following additional considerations apply to the foregoing discussion. Throughout this specification, plural instances may implement functions, modules, components, operations, or structures described as a single instance. Although individual functions and instructions of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
- For example, the
network 938, may include but is not limited to any combination of a LAN, a MAN, a WAN, a mobile, a wired or wireless network, a private network, or a virtual private network. Moreover, while only oneportal 108 is illustrated inFIG. 1 to simplify and clarify the description, it is understood that any number of instances of the portal 108 are supported and can be in communication with thesystems - Additionally, certain embodiments are described herein as including logic or a number of functions, components, modules, blocks, or mechanisms. Functions may constitute either software modules (e.g., non-transitory code stored on a tangible machine-readable storage medium) or hardware modules. A hardware module is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
- In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain functions. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- Accordingly, the term hardware should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where the hardware modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware and software modules can provide information to, and receive information from, other hardware and/or software modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple of such hardware or software modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware or software modules. In embodiments in which multiple hardware modules or software are configured or instantiated at different times, communications between such hardware or software modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware or software modules have access. For example, one hardware or software module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware or software module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware and software modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- The various operations of example functions and methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
- Similarly, the methods or functions described herein may be at least partially processor-implemented. For example, at least some of the functions of a method may be performed by one or processors or processor-implemented hardware modules. The performance of certain of the functions may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
- The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the functions may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs).
- The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
- Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data and data structures stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, a “method” or a “function” or an “algorithm” or a “routine” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, methods, functions, algorithms, routines and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
- Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information.
- As used herein any reference to “some embodiments” or “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. For example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
- As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a function, process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
- In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the description. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
- Still further, the figures depict preferred embodiments of a
computer system - Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and method for a self service portal and automation for internally hosted virtual server resources and for provisioning cloud resources among various cloud computing system assets through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/826,753 US8819241B1 (en) | 2013-03-14 | 2013-03-14 | System and method for a self service portal and automation for internally hosted virtual server resources |
US14/308,249 US9547670B2 (en) | 2013-03-14 | 2014-06-18 | System and method for a self service portal and automation for internally hosted virtual server resources |
US15/368,277 US10652083B1 (en) | 2013-03-14 | 2016-12-02 | System and method for a self service portal and automation for internally hosted virtual server resources |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/826,753 US8819241B1 (en) | 2013-03-14 | 2013-03-14 | System and method for a self service portal and automation for internally hosted virtual server resources |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/308,249 Continuation US9547670B2 (en) | 2013-03-14 | 2014-06-18 | System and method for a self service portal and automation for internally hosted virtual server resources |
Publications (2)
Publication Number | Publication Date |
---|---|
US8819241B1 US8819241B1 (en) | 2014-08-26 |
US20140280806A1 true US20140280806A1 (en) | 2014-09-18 |
Family
ID=51358737
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/826,753 Active US8819241B1 (en) | 2013-03-14 | 2013-03-14 | System and method for a self service portal and automation for internally hosted virtual server resources |
US14/308,249 Active 2034-08-04 US9547670B2 (en) | 2013-03-14 | 2014-06-18 | System and method for a self service portal and automation for internally hosted virtual server resources |
US15/368,277 Active 2033-05-25 US10652083B1 (en) | 2013-03-14 | 2016-12-02 | System and method for a self service portal and automation for internally hosted virtual server resources |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/308,249 Active 2034-08-04 US9547670B2 (en) | 2013-03-14 | 2014-06-18 | System and method for a self service portal and automation for internally hosted virtual server resources |
US15/368,277 Active 2033-05-25 US10652083B1 (en) | 2013-03-14 | 2016-12-02 | System and method for a self service portal and automation for internally hosted virtual server resources |
Country Status (1)
Country | Link |
---|---|
US (3) | US8819241B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11425001B2 (en) * | 2019-06-18 | 2022-08-23 | Hewlett Packard Enterprise Development Lp | Node addition in cloud networks |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10129213B2 (en) * | 2010-05-26 | 2018-11-13 | Automation Anywhere, Inc. | System and method for compliance based automation |
US10430180B2 (en) | 2010-05-26 | 2019-10-01 | Automation Anywhere, Inc. | System and method for resilient automation upgrade |
US10733540B2 (en) | 2010-05-26 | 2020-08-04 | Automation Anywhere, Inc. | Artificial intelligence and knowledge based automation enhancement |
EP3309723A1 (en) * | 2016-10-11 | 2018-04-18 | Siemens Aktiengesellschaft | An engineering method, system, and computer program product |
US10618137B2 (en) * | 2017-03-24 | 2020-04-14 | National Cheng Kung University | Automated constructing method of cloud manufacturing service and cloud manufacturing system |
USD837248S1 (en) * | 2017-08-25 | 2019-01-01 | State Farm Mutual Automobile Insurance Company | Display screen with a graphical user interface for compressed insurance exploration menu |
US11775814B1 (en) | 2019-07-31 | 2023-10-03 | Automation Anywhere, Inc. | Automated detection of controls in computer applications with region based detectors |
US11693923B1 (en) | 2018-05-13 | 2023-07-04 | Automation Anywhere, Inc. | Robotic process automation system with hybrid workflows |
CN108733805B (en) * | 2018-05-18 | 2020-12-08 | 招银云创(深圳)信息技术有限公司 | File interaction method, system, computer equipment and storage medium |
EP3871371B1 (en) * | 2018-10-25 | 2023-07-19 | Telefonaktiebolaget LM Ericsson (publ) | Network function upgrade method, system and apparatus |
US11556362B2 (en) | 2019-03-31 | 2023-01-17 | Automation Anywhere, Inc. | Robotic process automation system with device user impersonation |
US11243803B2 (en) | 2019-04-30 | 2022-02-08 | Automation Anywhere, Inc. | Platform agnostic robotic process automation |
US11301224B1 (en) | 2019-04-30 | 2022-04-12 | Automation Anywhere, Inc. | Robotic process automation system with a command action logic independent execution environment |
US11113095B2 (en) | 2019-04-30 | 2021-09-07 | Automation Anywhere, Inc. | Robotic process automation system with separate platform, bot and command class loaders |
US11614731B2 (en) | 2019-04-30 | 2023-03-28 | Automation Anywhere, Inc. | Zero footprint robotic process automation system |
US12017362B2 (en) | 2019-10-31 | 2024-06-25 | Automation Anywhere, Inc. | Productivity plugin for integration with robotic process automation |
US11481304B1 (en) | 2019-12-22 | 2022-10-25 | Automation Anywhere, Inc. | User action generated process discovery |
US10911546B1 (en) | 2019-12-30 | 2021-02-02 | Automation Anywhere, Inc. | Robotic process automation with automated user login for multiple terminal server hosted user sessions |
US11348353B2 (en) | 2020-01-31 | 2022-05-31 | Automation Anywhere, Inc. | Document spatial layout feature extraction to simplify template classification |
US11514154B1 (en) | 2020-01-31 | 2022-11-29 | Automation Anywhere, Inc. | Automation of workloads involving applications employing multi-factor authentication |
US11086614B1 (en) | 2020-01-31 | 2021-08-10 | Automation Anywhere, Inc. | Robotic process automation system with distributed download |
US11182178B1 (en) | 2020-02-21 | 2021-11-23 | Automation Anywhere, Inc. | Detection of user interface controls via invariance guided sub-control learning |
US11734061B2 (en) | 2020-11-12 | 2023-08-22 | Automation Anywhere, Inc. | Automated software robot creation for robotic process automation |
US11782734B2 (en) | 2020-12-22 | 2023-10-10 | Automation Anywhere, Inc. | Method and system for text extraction from an application window for robotic process automation |
US11968182B2 (en) | 2021-07-29 | 2024-04-23 | Automation Anywhere, Inc. | Authentication of software robots with gateway proxy for access to cloud-based services |
US11820020B2 (en) | 2021-07-29 | 2023-11-21 | Automation Anywhere, Inc. | Robotic process automation supporting hierarchical representation of recordings |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311194B1 (en) * | 2000-03-15 | 2001-10-30 | Taalee, Inc. | System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising |
AU2001280998A1 (en) * | 2000-08-03 | 2002-02-18 | Bruce A. Epstein | Information collaboration and reliability assessment |
US7076728B2 (en) * | 2000-12-22 | 2006-07-11 | International Business Machines Corporation | Method and apparatus for end-to-end content publishing system using XML with an object dependency graph |
KR20040065643A (en) * | 2003-01-15 | 2004-07-23 | 삼성전자주식회사 | Method for performing automatic registration of IP address and IP domain name in IP protocol version 6 |
US7873684B2 (en) * | 2003-08-14 | 2011-01-18 | Oracle International Corporation | Automatic and dynamic provisioning of databases |
US20050060535A1 (en) * | 2003-09-17 | 2005-03-17 | Bartas John Alexander | Methods and apparatus for monitoring local network traffic on local network segments and resolving detected security and network management problems occurring on those segments |
US7603266B2 (en) * | 2003-09-19 | 2009-10-13 | Microsoft Corporation | Generic emulator of devices in a device communications protocol |
US7827294B2 (en) * | 2004-05-06 | 2010-11-02 | American Express Travel Related Services Company, Inc. | System and method for dynamic security provisioning of computing resources |
US7707178B2 (en) * | 2005-11-28 | 2010-04-27 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US7822749B2 (en) * | 2005-11-28 | 2010-10-26 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US8103673B2 (en) * | 2006-10-02 | 2012-01-24 | Presenceid, Inc. | Systems and methods for provisioning content from multiple sources to a computing device |
US9069599B2 (en) * | 2008-06-19 | 2015-06-30 | Servicemesh, Inc. | System and method for a cloud computing abstraction layer with security zone facilities |
US8209568B2 (en) * | 2009-08-21 | 2012-06-26 | Novell, Inc. | System and method for implementing an intelligent backup technique for cluster resources |
US20110112973A1 (en) * | 2009-11-09 | 2011-05-12 | Microsoft Corporation | Automation for Governance, Risk, and Compliance Management |
US8914469B2 (en) * | 2009-12-11 | 2014-12-16 | International Business Machines Corporation | Negotiating agreements within a cloud computing environment |
US9298732B2 (en) * | 2010-09-29 | 2016-03-29 | Red Hat, Inc. | Searching cloud-based distributed storage resources using a set of expendable probes |
US8949246B2 (en) * | 2012-01-01 | 2015-02-03 | The United States Of America, As Represented By The Secretary Of The Navy | System and method for importing NetCDF data |
US8909769B2 (en) * | 2012-02-29 | 2014-12-09 | International Business Machines Corporation | Determining optimal component location in a networked computing environment |
US8892945B2 (en) * | 2012-04-02 | 2014-11-18 | International Business Machines Corporation | Efficient application management in a cloud with failures |
-
2013
- 2013-03-14 US US13/826,753 patent/US8819241B1/en active Active
-
2014
- 2014-06-18 US US14/308,249 patent/US9547670B2/en active Active
-
2016
- 2016-12-02 US US15/368,277 patent/US10652083B1/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11425001B2 (en) * | 2019-06-18 | 2022-08-23 | Hewlett Packard Enterprise Development Lp | Node addition in cloud networks |
US20220368609A1 (en) * | 2019-06-18 | 2022-11-17 | Hewlett Packard Enterprise Development Lp | Node addition in cloud networks |
US11799743B2 (en) * | 2019-06-18 | 2023-10-24 | Hewlett Packard Enterprise Development Lp | Node addition in cloud networks |
Also Published As
Publication number | Publication date |
---|---|
US20140304222A1 (en) | 2014-10-09 |
US10652083B1 (en) | 2020-05-12 |
US9547670B2 (en) | 2017-01-17 |
US8819241B1 (en) | 2014-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10652083B1 (en) | System and method for a self service portal and automation for internally hosted virtual server resources | |
CN112119374B (en) | Selectively providing mutual transport layer security using alternate server names | |
US10397064B2 (en) | System and method for custom graph generation | |
US11842222B2 (en) | Using scripts to bootstrap applications with metadata from a template | |
US8910294B1 (en) | System and method for application failure testing in a cloud computing environment | |
US11200157B1 (en) | Automated execution reporting for container builds | |
EP2808790A2 (en) | Migration assessment for cloud computing platforms | |
US9652220B2 (en) | Zero down-time deployment of new application versions | |
US10402188B1 (en) | Network-independent modular applications | |
US9590854B1 (en) | Automated network security | |
US20130227085A1 (en) | Terminal and method for using cloud services | |
US10055393B2 (en) | Distributed version control of orchestration templates | |
US20200233678A1 (en) | Extension points for web-based applications and services | |
US20150350341A1 (en) | Application gateway for cloud computing systems | |
KR20150132155A (en) | Diagnostics storage within a multi-tenant data center | |
Collier et al. | Microsoft azure essentials-fundamentals of azure | |
US20180234329A1 (en) | Test building for testing server operation | |
US9658933B2 (en) | Automatically modifying a test for a program on multiple electronic devices | |
Shahan | Microsoft Azure Essentials-Fundamentals of Azure | |
US11048853B2 (en) | System and method for resource presentation | |
US10079720B2 (en) | Dynamically managing different versions of a service | |
US9430530B1 (en) | Reusing database statistics for user aggregate queries | |
US20200081812A1 (en) | Intelligent configuration management of user devices | |
US20150051943A1 (en) | System and method of integrating device data with customer relationship management | |
CN114218160A (en) | Log processing method and device, electronic equipment and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: STATE FARM MUTUAL AUTOMOBILE INSURANCE COMPANY, IL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WASHBURN, CALEB;REEL/FRAME:030032/0083 Effective date: 20130311 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: STATE FARM MUTUAL AUTOMOBILE INSURANCE COMPANY, ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WASHBURN, CALEB;REEL/FRAME:043100/0568 Effective date: 20170609 Owner name: STATE FARM MUTUAL AUTOMOBILE INSURANCE COMPANY, IL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WASHBURN, CALEB;REEL/FRAME:043100/0568 Effective date: 20170609 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) 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 |