System and method for customizing cloud console for use with cloud environment
By generating customized console configuration resources, the problem of consoles being unable to be personalized in cloud computing environments is solved, thereby improving brand recognition and user experience.
Patent Information
- Application Number
- CN202480028707.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-18
- Filing Date
- 2024-04-25
- Publication Date
- 2025-11-28
AI Technical Summary
Existing cloud computing environments struggle to provide customized consoles, resulting in poor brand recognition and user experience, failing to meet the personalized needs of businesses.
A system and method are provided to generate customized console configuration resources through a configuration service, allowing third-party operators to customize the console in the cloud environment so that customers can better manage and access subscription-based products and services.
It enables personalized customization of the console in the cloud environment, enhances brand recognition and user experience, and meets the personalized needs of enterprises.
Smart Images

Figure CN121039628A_ABST
Abstract
Description
[0001] Copyright Notice
[0002] This patent document contains copyrighted material. The copyright holder does not object to any fax reproduction of the patent document or patent disclosure as it appears in the patent documents or records of the Patent and Trademark Office, but otherwise retains all copyright.
[0003] Cross-referencing of priority claims and related applications:
[0004] This application claims U.S. Provisional Patent Application No. 63 / 462,868, filed April 28, 2023, entitled "SYSTEM AND METHOD FOR PROVIDING DEDICATED CLOUD ENVIRONMENTS FOR USE WITH A CLOUD COMPUTING INFRASTRUCTURE"; U.S. Provisional Patent Application No. 63 / 462,875, filed April 28, 2023, entitled "SYSTEM AND METHOD FOR PROVIDING DEDICATED CLOUD ENVIRONMENTS FOR USE WITH A CLOUD COMPUTING INFRASTRUCTURE"; and U.S. Provisional Patent Application No. 63 / 462,875, filed April 28, 2023, entitled "SYSTEM AND METHOD FOR PROVIDING DEDICATED CLOUD ENVIRONMENTS FOR USE WITH A CLOUD COMPUTING INFRASTRUCTURE". U.S. Provisional Patent Application No. 63 / 462,878, entitled "System and Method for Providing Dedicated Cloud Environments for Use with a Cloud Computing Infrastructure"; U.S. Provisional Patent Application No. 63 / 462,880, entitled "System and Method for Providing Dedicated Cloud Environments for Use with a Cloud Computing Infrastructure"; U.S. Provisional Patent Application No. 63 / 462,882, entitled "System and Method for Providing Dedicated Cloud Environments for Use with a Cloud Computing Infrastructure"; and U.S. Provisional Patent Application No. 63 / 462,882, entitled "System and Method for Providing Dedicated Cloud Environments for Use with a Cloud Computing Infrastructure"; all filed on April 28, 2023. U.S. provisional patent application No. 63 / 462,885, entitled "INFRASTRUCTURE";The priority interests of U.S. Patent Application No. 18 / 639,777, filed April 18, 2024, entitled "SYSTEM AND METHOD FOR CUSTOMIZING A CLOUDCONSOLE FOR USE WITH CLOUD ENVIRONMENTS"; each of the foregoing applications and the contents thereof are incorporated herein by reference. Technical Field
[0005] The embodiments described herein generally relate to systems and methods for providing cloud environments for tenants of cloud infrastructure environments to use when accessing software products, services, or other offers associated with that environment, including providing a console debugging mode for a custom console. Background Technology
[0006] Cloud computing environments can be used to provide access to a range of complementary cloud-based components, such as software applications or services, enabling organizations or enterprise customers to operate their applications and services in a highly available managed environment.
[0007] The benefits of organizations moving their application and service needs to the cloud include reduced costs and complexity in designing, building, operating, and maintaining their own on-premises data centers, software application frameworks, or other IT infrastructure; and allowing them to focus on managing their day-to-day operations. Summary of the Invention
[0008] In some cloud environments, there is a desire to provide mechanisms that allow customization of consoles (such as those provided by the cloud environment). This allows for customization of, for example, the look and feel of publicly accessible pages or consoles, or customer-accessible pages. Such customization is desired to, for example, enhance brand identity and loyalty, or facilitate efficient identification of the brand or ownership of the page or console.
[0009] The embodiments described herein generally relate to systems and methods for providing a cloud environment for tenants of a cloud infrastructure environment to use when accessing software products, services or other offerings associated with that environment, including customized cloud consoles.
[0010] The systems and methods described in this paper provide a customizable console. Cloud computing provisioning (e.g., privately tagged cloud provisioning) enables third-party operators to access, within the context of a cloud environment, acting as resellers of products or services owned or managed by the cloud provider. Operators provide access to their customers via a console that can be customized by the operator, enabling them to better control their cloud-based products and services.
[0011] According to an embodiment, the method can provide a computer including a microprocessor. The method can provide a customizable console within the context of a cloud environment, which provides access to subscription-based products, services, and other provisioning items. The method can provide access to the customizable console within the context of a cloud environment. The method can allow a first entity associated with a first lease in the cloud environment to customize the customizable console via a configuration service, wherein the configuration service, in response to instructions received from the first entity associated with the first lease, generates console configuration resources, which are used to customize the customizable console when providing access to it.
[0012] According to an embodiment, the method can provide a computer including a microprocessor. The method can provide a customizable console within the context of a cloud environment, offering access to subscription-based products, services, and other services. The method can customize the customizable console via a configuration service, wherein the configuration service generates a console configuration resource in response to received instructions. Based on the generated console configuration resource, the method can generate a modified preview of the console, including multiple console elements based on the generated console configuration resource, for debugging the generated console configuration resource. Attached Figure Description
[0013] Figure 1 The illustration depicts a system for providing a cloud infrastructure environment according to an embodiment.
[0014] Figure 2 The illustration further illustrates how a cloud infrastructure environment can be used to provide cloud-based applications or services according to embodiments.
[0015] Figure 3 The illustration shows an example cloud infrastructure architecture according to an embodiment.
[0016] Figure 4 The illustration shows another example of a cloud infrastructure architecture according to an embodiment.
[0017] Figure 5 The illustration shows another example of a cloud infrastructure architecture according to an embodiment.
[0018] Figure 6 The illustration shows another example of a cloud infrastructure architecture according to an embodiment.
[0019] Figure 7 The illustration depicts a system, according to an embodiment, that provides a dedicated or privately tagged cloud environment for use by tenants or customers of a cloud infrastructure environment.
[0020] Figure 8 The illustration further illustrates the use of the cloud domain by tenants or customers in a cloud infrastructure environment according to an embodiment.
[0021] Figure 9 The illustration further illustrates the use of the cloud domain by tenants or customers in a cloud infrastructure environment according to an embodiment.
[0022] Figure 10 The illustration depicts a system according to an embodiment for providing access to software products or services in a cloud computing or other computing environment.
[0023] Figure 11 The illustration depicts an architecture for providing console customization according to an embodiment.
[0024] Figure 12 Multiple paths for providing console customization are described according to embodiments.
[0025] Figure 13 This is a lifecycle diagram of backend resources for console customization according to an embodiment.
[0026] Figure 14 This is a depiction of a user interface for console customization according to an embodiment.
[0027] Figure 15 This is a depiction of a user interface for console customization according to an embodiment.
[0028] Figure 16 This is a depiction of a user interface for console customization according to an embodiment.
[0029] Figure 17 A color space generated by a custom color palette for console customization, according to an embodiment, is described.
[0030] Figure 18 This is a flowchart of a method for customizable console generation according to an embodiment.
[0031] Figure 19 The illustration shows an architecture for providing a console-customized debug mode according to an embodiment.
[0032] Figure 20 A screenshot of the debug mode according to an embodiment is shown.
[0033] Figure 21 This is a flowchart of a method for a console debug mode of a custom console according to an embodiment. Detailed Implementation
[0034] Cloud computing or cloud infrastructure environments can be used to provide access to a range of complementary cloud-based components, such as software applications or services, enabling organizations or enterprise customers to operate their applications and services in a highly available managed environment.
[0035] The benefits of organizations moving their application and service needs to a cloud infrastructure environment include reduced costs and complexity in designing, building, operating, and maintaining their own on-premises data centers, software application frameworks, or other IT infrastructure; and allowing them to focus on managing their day-to-day operations.
[0036] cloud infrastructure environment
[0037] Figure 1 and Figure 2 The illustration depicts a system for providing a cloud infrastructure environment according to an embodiment.
[0038] According to an embodiment, Figure 1 The components and processes shown herein, as well as those further described herein with respect to various embodiments, may be provided as software or program code executable by a computer system or other type of processing device (e.g., a cloud computing system).
[0039] The illustrated examples are provided to illustrate computing environments that can be used to provide dedicated or privately tagged cloud environments for tenants of cloud infrastructure to use when accessing subscription-based software products, services, or other provisioning items associated with the cloud infrastructure environment. According to other embodiments, the various components, processes, and features described herein can be used with other types of cloud computing environments.
[0040] like Figure 1 As shown, according to an embodiment, cloud infrastructure environment 100 can operate on cloud computing infrastructure 102, which includes hardware (e.g., processor, memory), software resources, and one or more cloud interfaces 104 or other application programming interfaces (APIs) that provide access to shared cloud resources via one or more load balancers 106.
[0041] According to the embodiment, the cloud infrastructure environment supports the use of availability domains, such as availability domains A 180 and B 182, which enables customers to create and access cloud networks 184 and 186, and run cloud instances A 192 and B 194.
[0042] According to an embodiment, a tenancy can be created for each cloud tenant / customer (e.g., tenants A 142 and B 144), which provides a secure and isolated partition within the cloud infrastructure environment where the customer can create, organize, and manage their cloud resources. Cloud tenants / customers can access availability domains and cloud networks to access each of their cloud instances.
[0043] According to an embodiment, a client device (such as a computing device 160 having device hardware 162 (e.g., a processor, memory) and a graphical user interface 166) can enable administrators or other users to communicate with the cloud infrastructure environment via a network (such as a wide area network, local area network, or the Internet) to create or update cloud services.
[0044] According to an embodiment, the cloud infrastructure environment provides access to the shared cloud resource 140 via, for example, a compute resource layer 150, a network resource layer 164, and / or a storage resource layer 170. Customers can launch cloud instances as needed to meet computing and application requirements. After a customer has provisioned and launched a cloud instance, the provisioned cloud instance can be accessed from, for example, a client device.
[0045] According to an embodiment, the computing resource layer may include resources such as, for example, bare-metal cloud instance 152, virtual machine 154, graphics processing unit (GPU) computing cloud instance 156, and / or container 158. The computing resource layer may be used, for example, to provision and manage bare-metal computing cloud instances, or to provision cloud instances as needed to deploy and run applications, just like in an on-premises data center.
[0046] For example, according to an embodiment, a cloud infrastructure environment can provide control over physical host (bare metal) machines within a computing resource tier, which run directly on bare metal servers as computing cloud instances without the need for a hypervisor.
[0047] According to an embodiment, the cloud infrastructure environment can also provide control over virtual machines within the computing resource layer, which can be booted, for example, from an image, wherein the type and quantity of resources available to the virtual machine cloud instance can be determined, for example, based on the image from which the virtual machine is booted.
[0048] According to an embodiment, the network resource layer may include multiple network-related resources, such as, for example, a virtual cloud network (VCN) 165, a load balancer 167, an edge service 168, and / or a connectivity service 169.
[0049] According to an embodiment, the storage resource layer may include multiple resources, such as, for example, data / block volume 172, file storage device 174, object storage device 176 and / or local storage device 178.
[0050] like Figure 2 As shown, according to an embodiment, the cloud infrastructure environment may include a series of complementary cloud-based components, such as cloud infrastructure applications and services 200, which enables organizations or enterprise customers to operate their applications and services in a highly available managed environment.
[0051] For example, according to an embodiment, a self-contained cloud region can be provided within an organization's data center as a complete, for example, Oracle Cloud Infrastructure (OCI) dedicated region, which can provide data center operators with the flexibility, scalability, and cost-effectiveness of a public cloud while retaining full control over their data and applications to meet security, regulatory, or data residency requirements.
[0052] For example, according to an embodiment, such an environment may include racks physically managed by a cloud infrastructure provider; customer racks; access rights for cloud operators to perform setup and hardware support; customer data center power and cooling; customer floor space; customer data center personnel area; and physical access cages.
[0053] According to the implementation, the dedicated zone provides tenants / customers with the same set of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) products or services available in the cloud infrastructure provider's public cloud zone, such as ERP, finance, HCM, and SCM. Customers can seamlessly extract and replace legacy workloads using the cloud infrastructure provider's services (such as bare metal computing, VMs, and GPUs; database services, such as autonomous databases; or container-based services, such as Kubernetes container engines).
[0054] According to an embodiment, a cloud infrastructure environment can operate according to an Infrastructure as a Service (IaaS) model, which enables the environment to provide virtualized computing resources over a public network (e.g., the Internet).
[0055] In the IaaS model, cloud infrastructure providers can host infrastructure components (e.g., servers, storage devices, network nodes (e.g., hardware), deployment software, platform virtualization (e.g., hypervisor layer), etc.). In some cases, cloud infrastructure providers can also supply various services to complement these infrastructure components (example services include billing software, monitoring software, logging software, load balancing software, or clustering software). Therefore, because these services can be policy-driven, IaaS users can implement policies to drive load balancing, thereby maintaining application availability and performance.
[0056] According to the embodiments, IaaS customers can access resources and services via a wide area network (WAN) such as the Internet, and can use the services of the cloud infrastructure provider to install the remaining elements of the application stack. For example, a user can log in to the IaaS platform to create virtual machines (VMs), install an operating system (OS) on each VM, deploy middleware such as a database, create buckets for workloads and backups, and even install enterprise software into the VM. The customer can then use the provider's services to perform various functions, including balancing network traffic, troubleshooting application problems, monitoring performance, or managing disaster recovery.
[0057] According to the embodiments, cloud infrastructure providers may, but are not necessarily, third-party services that exclusively provide (e.g., provision, lease, or sell) IaaS. Entities may also choose to deploy private clouds, thereby becoming their own infrastructure service providers.
[0058] According to an embodiment, IaaS deployment is the process of placing a new application or a new version of an application onto a prepared application server, etc. It may also include the processing of a preparation server (e.g., an installation library or daemon). This is typically managed by the cloud infrastructure provider, below the hypervisor layer (e.g., servers, storage devices, network hardware, and virtualization). Therefore, the customer can be responsible for disposition (OS), middleware, and / or application deployment (e.g., on self-service virtual machines, etc., which can be started on demand).
[0059] According to embodiments, IaaS provisioning may refer to acquiring computers or virtual hosts for use, and even installing necessary libraries or services on them. In most cases, deployment does not include provisioning, and provisioning may need to be performed first.
[0060] According to embodiments, the challenges of IaaS provisioning include: the initial challenge of provisioning an initial set of infrastructure before anything is operational; and the challenge of evolving the existing infrastructure (e.g., adding new services, changing services, or removing services) once everything is provisioned. In some cases, these two challenges can be addressed by enabling configuration that declaratively defines the infrastructure. In other words, the infrastructure (e.g., which components are needed and how they interact) can be defined by one or more configuration files. Therefore, the overall topology of the infrastructure (e.g., which resources depend on which resources and how they work together) can be described declaratively. In some cases, once the topology is defined, workflows for creating and / or managing the different components described in the configuration files can be generated.
[0061] According to embodiments, cloud infrastructure can have many interconnected elements. For example, there may be one or more Virtual Private Clouds (VPCs) (e.g., potential on-demand pools of configurable and / or shared computing resources), also known as the core network. In some examples, one or more inbound / outbound traffic group rules may also be provided to define how inbound / outbound traffic to the network and one or more virtual machines (VMs) will be configured. Other infrastructure elements, such as load balancers, databases, etc., may also be provided. The infrastructure can evolve incrementally as more and / or more infrastructure elements are desired and / or added.
[0062] According to embodiments, continuous deployment techniques can be employed to enable the deployment of infrastructure code across various virtual computing environments. Furthermore, the described techniques enable infrastructure management within these environments. In some examples, service teams may write code that is intended to be deployed to one or more, but typically many, different production environments (e.g., across various geographical locations). However, in some examples, the infrastructure on which the code will be deployed must first be established. In some cases, provisioning can be done manually, resources can be provisioned using provisioning tools, and / or once the infrastructure is provisioned, deployment tools can be used to deploy the code.
[0063] Figure 3 The illustration shows an example cloud infrastructure architecture according to an embodiment.
[0064] like Figure 3 As shown, according to an embodiment, service operator 202 can communicatively couple to secure host lease 204, which may include virtual cloud network (VCN) 206 and secure host subnet 208.
[0065] In some examples, service operators may use one or more client computing devices, which may be portable handheld devices (e.g., telephones, computing tablets, personal digital assistants (PDAs)) or wearable devices (e.g., head-mounted displays), running software such as Microsoft Windows and / or various mobile operating systems (e.g., iOS, Android, etc.), and supporting the Internet, email, short message service (SMS), or other communication protocols. Alternatively, client computing devices may be general-purpose personal computers, including, for example, personal computers and / or laptops running various versions of Microsoft Windows®, Apple Macintosh®, and / or Linux operating systems. Client computing devices may be workstation computers running various commercially available UNIX® or UNIX-like operating systems, including but not limited to any of various GNU / Linux operating systems (such as, for example, Chrome). Alternatively or additionally, client computing devices may be any other electronic device, such as thin client computers, Internet-enabled gaming systems (e.g., Microsoft Xbox game consoles), and / or personal messaging devices capable of communicating over networks with access to VCNs and / or the Internet.
[0066] According to an embodiment, the VCN may include a local peering gateway (LPG) 210, which may be communicatively coupled to an SSH VCN 212 via an LPG contained in a Secure Shell (SSH) VCN. The SSH VCN may include an SSH subnet 214, and the SSH VCN may be communicatively coupled to a control plane VCN 216 via an LPG contained in a control plane VCN. Furthermore, the SSH VCN may be communicatively coupled to a data plane VCN 218 via an LPG. The control plane VCN and data plane VCN may be contained in a service lease 219 that may be owned and / or operated by a cloud infrastructure provider.
[0067] According to an embodiment, the control plane VCN may include a control plane demilitarized zone (DMZ) layer 220 that acts as a peripheral network (e.g., part of an enterprise network between an internal and external network). DMZ-based servers may have limited responsibility to help contain potential vulnerabilities. Furthermore, the DMZ layer may include one or more load balancer (LB) subnets 222, a control plane application layer 224 that may include one or more application subnets 226, and a control plane data layer 228 that may include one or more database (DB) subnets 230 (e.g., one or more front-end DB subnets and / or one or more back-end DB subnets). The one or more LB subnets included in the control plane DMZ layer may communicatively couple to the one or more application subnets included in the control plane application layer and to an Internet gateway 234 that may be included in the control plane VCN, and the one or more application subnets may communicatively couple to the one or more DB subnets included in the control plane data layer, as well as a service gateway 236 and a Network Address Translation (NAT) gateway 238. The control plane VCN may include a service gateway and a NAT gateway.
[0068] According to an embodiment, the control plane VCN may include a data plane mirror application layer 240, which may include one or more application subnets. The one or more application subnets included in the data plane mirror application layer may include a virtual network interface controller (VNIC) capable of executing compute instances. The compute instances may communicatively couple the one or more application subnets of the data plane mirror application layer to the one or more application subnets that may be included in the data plane application layer.
[0069] According to an embodiment, the data plane VCN may include a data plane application layer 246, a data plane DMZ layer 248, and a data plane data layer 250. The data plane DMZ layer may include one or more LB subnets communicatively coupled to one or more application subnets of the data plane application layer and an internet gateway of the data plane VCN. The one or more application subnets may communicatively couple to a service gateway and a NAT gateway of the data plane VCN. The data plane data layer may also include one or more DB subnets communicatively coupled to one or more application subnets of the data plane application layer.
[0070] According to an embodiment, the internet gateways of the control plane VCN and the data plane VCN can be communicatively coupled to a metadata management service 252, which can be communicatively coupled to a public internet 254. The public internet can be communicatively coupled to a NAT gateway of the control plane VCN and the data plane VCN. The service gateways of the control plane VCN and the data plane VCN can be communicatively coupled to a cloud service 256.
[0071] According to an embodiment, the service gateway of the control plane VCN or data plane VCN can make application programming interface (API) calls to cloud services without traversing the public internet. API calls from the service gateway to the cloud service can be unidirectional: the service gateway can make API calls to the cloud service, and the cloud service can send requested data to the service gateway. Generally, the cloud service may not initiate API calls to the service gateway.
[0072] According to an embodiment, a secure host lease can be directly connected to a service lease, which may otherwise be isolated. A secure host subnet can communicate with an SSH subnet via an LPG, which enables bidirectional communication between otherwise isolated systems. Connecting a secure host subnet to an SSH subnet allows the secure host subnet to access other entities within the service lease.
[0073] According to embodiments, a control plane VCN can allow users of a service lease to set up or otherwise provision desired resources. The desired resources provisioned in the control plane VCN can be deployed or otherwise used in the data plane VCN. In some examples, the control plane VCN can be isolated from the data plane VCN, and the data plane mirror application layer of the control plane VCN can communicate with the data plane application layer of the data plane VCN via VNICs, which can be included in both the data plane mirror application layer and the data plane application layer.
[0074] According to an embodiment, users or clients of the system can make requests, such as create, read, update, or delete (CRUD) operations, via the public internet that can transmit requests to the metadata management service. The metadata management service can transmit requests to the control plane VCN via an internet gateway. The request can be received by one or more LB subnets contained in the control plane DMZ layer. The one or more LB subnets can determine that the request is valid, and in response to this determination, the one or more LB subnets can transmit the request to one or more application subnets contained in the control plane application layer. If the request is verified and a call to the public internet is required, the call to the internet can be transmitted to a NAT gateway that can make the call to the internet. The metadata to be stored can be stored in one or more DB subnets.
[0075] According to an embodiment, the data plane mirroring application layer can facilitate direct communication between the control plane VCN and the data plane VCN. For example, it may be desirable to apply configuration changes, updates, or other suitable modifications to resources contained in the data plane VCN. With the help of the VNIC, the control plane VCN can communicate directly with the resources contained in the data plane VCN, and thus can perform configuration changes, updates, or other suitable modifications to these resources.
[0076] According to one embodiment, the control plane VCN and data plane VCN can be included in a service lease. In this case, the system's users or customers may not own or operate the control plane VCN or data plane VCN. Alternatively, the cloud infrastructure provider may own or operate both the control plane VCN and data plane VCN, both of which can be included in a service lease. This embodiment enables network isolation, which can prevent users or customers from interacting with the resources of other users or customers. Furthermore, this embodiment allows the system's users or customers to privately store databases without relying on the public internet for storage, which may not provide the desired level of threat protection.
[0077] According to one embodiment, one or more LB subnets included in the control plane VCN can be configured to receive signals from the serving gateway. In this embodiment, the control plane VCN and the data plane VCN can be configured to be invoked by customers of the cloud infrastructure provider without invoking the public internet. Customers of the cloud infrastructure provider may expect this embodiment because the database(s) used by the customer can be controlled by the cloud infrastructure provider and can be stored on a service lease that is isolated from the public internet.
[0078] Figure 4 The illustration shows another example of a cloud infrastructure architecture according to an embodiment.
[0079] like Figure 4 As shown, according to an embodiment, a data plane VCN may be included in customer lease 221. In this case, the cloud infrastructure provider may provide a control plane VCN for each customer, and the cloud infrastructure provider may establish a unique compute instance for each customer included in the service lease. Each compute instance may allow communication between the control plane VCN included in the service lease and the data plane VCN included in the customer lease. The compute instance may allow resources provisioned in the control plane VCN included in the service lease to be deployed or otherwise used in the data plane VCN included in the customer lease.
[0080] According to an embodiment, a cloud infrastructure provider's customer may have a database managed and operated within a customer lease. In this example, the control plane VCN may include a data plane mirror application layer, which may include one or more application subnets. The data plane mirror application layer may reside in the data plane VCN, but it may not be provided within the data plane VCN. That is, the data plane mirror application layer may access the customer lease, but it may not exist in the data plane VCN, or be owned or operated by the customer. The data plane mirror application layer may be configured to invoke the data plane VCN, but cannot be configured to invoke any entity contained within the control plane VCN. The customer may expect to deploy or otherwise use resources provided in the control plane VCN within the data plane VCN, and the data plane mirror application layer may facilitate the customer's expected deployment or other use of resources.
[0081] According to one embodiment, a cloud infrastructure provider's customers can apply filters to a data plane VCN. In this embodiment, customers can determine what the data plane VCN can access and can restrict access to the public internet from the data plane VCN. The cloud infrastructure provider may not be able to apply filters or otherwise control the data plane VCN's access to any external networks or databases. Applying filters and controls to the data plane VCN included in the customer's lease helps isolate the data plane VCN from other customers and the public internet.
[0082] According to embodiments, cloud services can be invoked by a service gateway to access services that may not exist on the public internet, the control plane VCN, or the data plane VCN. The connection between the cloud service and the control plane VCN or data plane VCN may not be contiguous. Cloud services can reside on different networks owned or operated by a cloud infrastructure provider. Cloud services can be configured to accept calls from the service gateway and can be configured not to accept calls from the public internet. Some cloud services can be isolated from other cloud services, and the control plane VCN can be isolated from cloud services that may not be in the same region as the control plane VCN.
[0083] For example, according to an embodiment, the control plane VCN may be located in "Region 1", and the cloud service "Deployment 1" may be located in both Region 1 and "Region 2". If a service gateway contained in the control plane VCN located in Region 1 makes a call to Deployment 1, then the call can be transmitted to Deployment 1 in Region 1. In this example, the control plane VCN or Deployment 1 in Region 1 may not be communicatively coupled to or otherwise communicate with Deployment 1 in Region 2.
[0084] Figure 5The illustration shows another example of a cloud infrastructure architecture according to an embodiment.
[0085] like Figure 5 As shown, according to an embodiment, one or more trusted application subnets 260 can be communicatively coupled to a service gateway contained in a data plane VCN, a NAT gateway contained in a data plane VCN, and one or more database subnets contained in a data plane data layer. One or more untrusted application subnets 264 can be communicatively coupled to a service gateway contained in a data plane VCN and one or more database subnets contained in a data plane data layer. The data plane data layer may include one or more database subnets that can be communicatively coupled to a service gateway contained in a data plane VCN.
[0086] According to an embodiment, one or more untrusted application subnets may include one or more primary VNICs (1)-(N) communicatively coupled to tenant virtual machines (VMs). Each tenant VM may be communicatively coupled to a corresponding application subnet 267 (1)-(N) that may be contained in a corresponding container egress VCN 268 (1)-(N), which may be contained in a corresponding customer lease 270 (1)-(N). A corresponding secondary VNIC may facilitate communication between the one or more untrusted application subnets contained in the data plane VCN and the application subnets contained in the container egress VCN. Each container egress VCN may include a NAT gateway communicatively coupled to the public internet.
[0087] According to an embodiment, the public internet can communicatively couple to a NAT gateway contained in a control plane VCN and a data plane VCN. Service gateways contained in the control plane VCN and the data plane VCN can communicatively couple to cloud services.
[0088] According to an embodiment, the data plane VCN can be integrated with customer leases. This integration may be useful or desirable for cloud infrastructure provider customers where additional support may be required when executing code. For example, a customer may provide code to be run that may be potentially destructive, may communicate with other customer resources, or may otherwise cause undesirable effects.
[0089] According to an embodiment, a cloud infrastructure provider's customer can grant temporary network access to the cloud infrastructure provider and request functionality to be attached to the data plane application layer. The code running this functionality can execute within a VM, and this code may not be configured to run anywhere else on the data plane VCN. Each VM can be connected to a customer lease. The corresponding containers (1)-(N) contained within the VM can be configured to run the code. In this case, dual isolation can exist (e.g., containers running code, where the containers may be contained within at least one or more untrusted application subnets containing VMs), which helps prevent incorrect or otherwise unintended code from corrupting the cloud infrastructure provider's network or the networks of different customers. Containers can be communicatively coupled to the customer lease and can be configured to transmit or receive data from the customer lease. Containers may not be configured to transmit or receive data with any other entity in the data plane VCN. After the code execution is complete, the cloud infrastructure provider can dispose of these containers.
[0090] According to an embodiment, one or more trusted application subnets may run code that can be owned or operated by a cloud infrastructure provider. In this embodiment, one or more trusted application subnets may be communicatively coupled to one or more database subnets and configured to perform CRUD operations within the one or more database subnets. One or more untrusted application subnets may be communicatively coupled to one or more database subnets and configured to perform read operations within the one or more database subnets. Containers that may be contained in each customer's VM and may run code from the customer may not be communicatively coupled to the one or more database subnets.
[0091] According to embodiments, the control plane VCN and data plane VCN may be coupled without direct communication; or there may be no direct communication between them. However, communication can occur indirectly, where the cloud infrastructure provider can establish an LPG that facilitates communication between the control plane VCN and data plane VCN. In another example, either the control plane VCN or the data plane VCN can invoke cloud services via a service gateway. For example, an invocation of a cloud service from the control plane VCN may include a request for a service that can communicate with the data plane VCN.
[0092] Figure 6 The illustration shows another example of a cloud infrastructure architecture according to an embodiment.
[0093] like Figure 6As shown, according to an embodiment, one or more trusted application subnets may be communicatively coupled to a service gateway contained in the data plane VCN, a NAT gateway contained in the data plane VCN, and one or more database subnets contained in the data plane data layer. One or more untrusted application subnets may be communicatively coupled to a service gateway contained in the data plane VCN and one or more database subnets contained in the data plane data layer. The data plane data layer may include one or more database subnets that can be communicatively coupled to a service gateway contained in the data plane VCN.
[0094] According to an embodiment, one or more untrusted application subnets may include primary VNICs that are communicatively coupled to tenant virtual machines (VMs) residing within one or more untrusted application subnets. Each tenant VM may run code in a corresponding container and be communicatively coupled to an application subnet that may be included in a data plane application layer 281, which may be included in a container egress VCN 280. Corresponding auxiliary VNICs 282(1)-(N) may facilitate communication between the one or more untrusted application subnets included in the data plane VCN and the application subnets included in the container egress VCN. The container egress VCN may include a NAT gateway that is communicatively coupled to the public internet.
[0095] According to an embodiment, an Internet gateway contained in a control plane VCN and a data plane VCN can be communicatively coupled to a metadata management service, which can be communicatively coupled to the public Internet. The public Internet can be communicatively coupled to a NAT gateway contained in both the control plane VCN and the data plane VCN. A service gateway contained in both the control plane VCN and the data plane VCN can be communicatively coupled to a cloud service.
[0096] According to an embodiment, Figure 6 The pattern shown can be regarded as Figure 5 Exceptions to the pattern illustrated, and patterns that customers might expect if the cloud infrastructure provider cannot communicate directly with the customer (e.g., in a disconnected region). Customers have live access to the corresponding containers contained within each customer's VM. Containers can be configured to invoke appropriate secondary VNICs contained in one or more application subnets within the data plane application layer, which may be contained in the container's egress VCN. The secondary VNICs can then route the calls to a NAT gateway, which can then route the calls to the public internet. In this example, the containers that customers can access live can be isolated from the control plane VCN, and can also be isolated from other entities contained within the data plane VCN. Containers can also be isolated from resources from other customers.
[0097] In other examples, customers can use containers to invoke cloud services. In this example, a customer can run code within a container that requests a service from the cloud service. The container can then forward the request to a secondary VNIC, which in turn forwards it to a NAT gateway, which in turn forwards it to the public internet. The public internet can then be used to forward the request via an internet gateway to one or more load balancer (LB) subnets contained within the control plane VCN. In response to determining that the request is valid, the LB subnets can forward the request to one or more application subnets, which in turn forward the request to the cloud service via a service gateway.
[0098] It should be recognized that the IaaS architecture depicted in the figures above may have components other than those depicted. Furthermore, the embodiments shown in the figures are merely some examples of cloud infrastructure systems that can be combined with embodiments of this disclosure. In some other embodiments, the IaaS system may have more or fewer components than shown in the figures, may combine two or more components, or may have different component configurations or arrangements.
[0099] In some embodiments, the IaaS system described herein may include a suite of application, middleware, and database service providers delivered to customers in a self-service, subscription-based, elastically scalable, reliable, highly available, and secure manner.
[0100] cloud environment
[0101] According to an embodiment, a cloud infrastructure environment can be used to provide a dedicated cloud environment, such as one or more privately tagged cloud environments, for tenants of the cloud infrastructure environment to use when accessing subscription-based software products, services, or other provisioning items associated with the cloud infrastructure environment.
[0102] Figure 7 The illustration shows how a system according to an embodiment can provide a dedicated or private tagged cloud environment for use by tenants or customers of a cloud infrastructure environment.
[0103] While the examples described herein illustrate various systems, methods, and / or technologies that can be used in the context of providing a private tag cloud (PLC) environment, the systems, methods, and technologies described herein can be used within or with other types of cloud environments, depending on the various embodiments.
[0104] like Figure 7As shown, according to an embodiment, a cloud infrastructure provider may supply one or more cloud environments (e.g., PLC environments) or domains to an operator 320 (e.g., a cloud infrastructure customer operating as a reseller). The operator / reseller may then customize and extend the cloud environment for use by its customer 330 to access subscription-based software products, services, or other offerings associated with the cloud infrastructure environment.
[0105] For illustrative purposes, examples of such subscription-based products, services, or other offerings may include a variety of cloud infrastructure software products, such as Oracle Fusion Applications, or other types of products or services that allow customers to subscribe to use these products or services.
[0106] Figure 8 The illustration further illustrates the use of the cloud domain by tenants or customers in a cloud infrastructure environment according to an embodiment.
[0107] like Figure 8 As shown, according to an embodiment, the system may include a cloud subscription service or component, referred to herein as a subscription manager in some embodiments, which exposes one or more subscription management APIs for creating orders for joining new customers or initiating a workflow that may create subscriptions and coordinate billing and pricing services or other components for cloud domain 400.
[0108] According to an embodiment, when an operator (e.g., a PLC operator) or its customers request a cloud environment, the system creates domains for use within regions 402 and 404; and leases 416 owned by one or more providers. These leases allow the domains to operate using their required service infrastructure and to be managed by the cloud infrastructure provider.
[0109] According to an embodiment, the first step in this process is to create an operator lease 406 for the operator, and then transfer the region and associated domains to the operator for subsequent management. The operator then becomes the administrator of the lease, and they can view and manage everything that happens within the region, including their customer accounts and those customers' use of cloud resources 412.
[0110] Generally, once a region is handed over or provided to an operator, the cloud infrastructure provider cannot subsequently access the data within the operator's lease unless the operator authorizes the cloud infrastructure provider to do so, for example, to troubleshoot any problems that may arise.
[0111] According to an embodiment, the operator can then create additional internal leases 408 for its own internal use, such as for evaluating end-user or customer experience, providing sales demonstration leases, or operating databases for its own internal use. The operator can also create one or more customer leases 410, with the end-user or customer acting as its administrator. The use of cloud infrastructure (e.g., compute, storage, and other infrastructure resources) is consolidated by the operator, reflecting its own and its customers' usage, and reported to the cloud infrastructure provider.
[0112] According to embodiments, a user interface or console may be provided that allows operators to manage their customer accounts and provide services to customers. Cloud infrastructure providers may also use cloud infrastructure leasing (e.g., Fusion Applications leasing) to install any required infrastructure services for use by operators and their customers.
[0113] Figure 9 The illustration further illustrates the use of the cloud domain by tenants or customers in a cloud infrastructure environment according to an embodiment.
[0114] like Figure 9 As shown, according to an embodiment, the subscription manager 424 service or component exposes one or more subscription management APIs for creating orders for joining new customers, or initiating workflows for creating subscriptions and coordinating billing and pricing services or other components.
[0115] According to an embodiment, the system may also include a billing service 428 or component that operates on a logical container for billing accounts or subscriptions and preferences used to generate invoices for customers.
[0116] According to an embodiment, the system may also include a subscription pricing service (SPS) 426 or component that operates based on a product catalog that defines which products a customer can purchase, and a price list (e.g., a rate card) that can be used to provide the product, which the pricing service also owns.
[0117] According to an embodiment, to support sales processing via subscription creation in domains 420 and 422, products can be selected from a product hub. Once an order is created via subscription service 430, a subscription is created in the subscription manager, which then manages the subscription's lifecycle and supplies the content required for downstream services. The SPS component then manages pricing and usage aspects for the ability to collect final fees from the operator or for the operator to charge its customers. Usage events are forwarded to a billing service or component, where, depending on the subscription's billing preferences, an invoice is created and pushed to the accounts receivable component.
[0118] According to an embodiment, although the services provided in the field report their usage to the metering service or component 432, such usage does not have any associated price. Rate processing, for example, involves determining the cost of each specific event by applying a rate card, determining the unit and cost of the subscription, associating the cost with the record, and then forwarding it to the billing service or component.
[0119] like Figure 9 As further shown in the embodiments, according to one embodiment, an operator can control multiple domains A and B—for example, an operator operating in multiple countries might want to operate a completely isolated data center for the United States and a completely isolated separate data center for Europe, for example, to meet governance or regulatory requirements. According to one embodiment, usage associated with these multiple domains can be aggregated 434 for use by a central subscription manager 435 and (where applicable) a primary billing service 436 for billing the operator.
[0120] The examples of the various systems shown above are intended to illustrate what can be used to provide dedicated or privately tagged cloud environments for tenants of cloud infrastructure to use when accessing subscription-based software products, services, or other provisioning items associated with the cloud infrastructure environment. According to other embodiments, the various components, processes, and features described herein can be used with other types of cloud computing environments.
[0121] Cloud subscription
[0122] Figure 10 The illustration depicts a system according to an embodiment for providing access to software products or services in a cloud computing or other computing environment.
[0123] like Figure 10 As shown, according to an embodiment, the system can be provided as a cloud computing or other computing environment, referred to herein as a platform in some embodiments, which supports the use of subscription-based products, services or other offerings.
[0124] Examples of such subscription-based products, services, or other offerings can include a variety of cloud infrastructure software products or services that allow customers to subscribe to use.
[0125] According to an embodiment, the environment may include multiple components provided as operator singleton 438, domain singleton 439, and regional service 440, as further described below.
[0126] According to embodiments, subscriptions may include artifacts such as products, commitments, billing models, and states. A subscription manager service or component may expose one or more subscription management APIs for creating orders for joining new customers, or for initiating workflows to create subscriptions and coordinate the creation of appropriate footprints in the billing and pricing service or component, as further described below.
[0127] According to an embodiment, the billing service or component operates based on a logical container of billing accounts or subscriptions and preferences used to generate invoices. Each billing account generates one invoice per billing period. The billing service includes a first pipeline and a second pipeline. The first pipeline receives usage and costs from the metering service or component via a REST API, whereby billing writes usage to a database, and a billing worker aggregates and calculates the balance from that database. The second pipeline is responsible for retrieving the aggregated usage and commitments, and calculating the costs within the billing interval.
[0128] According to an embodiment, the Subscription Pricing Service (SPS) 426 or component operates based on a product catalog that defines which products a customer can purchase. The product catalog forms the backbone of a price list (i.e., rate cards) also owned by the pricing service. Rate cards are modeled as pricing rules on top of publicly listed prices. The pricing service maintains a single price list for all products, allowing the addition of new product prices and the modification of existing prices. The price list has a complete history, with the latest version being the current rate card. Because some contracts may require a snapshot of the rate card, the pricing service handles this by recording when a customer's rate card was created and then querying the price list at that time.
[0129] According to an embodiment, the SPS or pricing service is responsible for communicating with the product and pricing hub 421 to provide information about products, the global price list, and specific price lists and discounts for end-user or customer subscriptions. For example, according to an embodiment, the SPS can synchronize product information from the product hub and the global price list from the pricing hub.
[0130] According to an embodiment, the subscription manager service or component operates as an upstream service to receive new order requests from the order management component (e.g., from an Oracle FusionOrder Management environment). The subscription manager service or component can provide subscription information, including subscription details such as the quote configuration time or subscription type (commitment, PayG), to the SPS service to help the SPS determine the effective base price (rate card) for the subscription. The subscription manager service or component can also send subscription discounts received from the order management component, which the SPS stores as a pricing rule entity.
[0131] In one embodiment, the SPS service runs as a background process to manage a ratecard service or component responsible for generating ratecards for new subscriptions and updating these ratecards when prices change. The SPS service can provide APIs to access ratecards and pricing rules. The metering inline rate engine can leverage these APIs to obtain subscription-specific ratecards and pricing rules, and then use this data for cost calculations.
[0132] According to an embodiment, additional SPS components may include, for example, a pricing / product hub integration component that allows operator entities providing subscription-based products, services, or other offerings within the environment to manage their product and price lists, such as product and price lists provided by a product hub and a pricing hub, respectively.
[0133] For example, according to such an embodiment, the SPS product integration process can listen for creation / update events in the product hub and make calls to the SPS product API. Similarly, the SPS pricing integration process can pull new price lists from the pricing hub to create them and call the corresponding SPS pricing API.
[0134] According to an embodiment, the system may also include an SPS core module that provides APIs for managing and accessing pricing entities. Pricing entities can be accessed through internal services (e.g., an inline rate engine).
[0135] According to an embodiment, the system may also include a rate card manager component. The SPS service maintains a single base price for a product at a given time. However, the price of a subscribed product depends on the base price at the time of the quote configuration and the subscription's price list change policy attributes. The SPS service uses these attributes to internally maintain the price to be used for the subscription. All these price lists are grouped in rate cards. The rate card manager can create and maintain rate cards, listen for price list changes and update existing rate cards with the new prices, and listen for new subscriptions and assign rate cards based on subscription attributes.
[0136] According to an embodiment, the SPS service manages the pricing rules for subscriptions, including discounts offered to end users or customers. The applicability of pricing rules can be based on product attributes such as discount groups, product categories, or specific SKUs. The SPS internally needs to identify a list of products to which these rules will apply. To achieve this, the rule decoder engine can compile the pricing rules into a format that allows the inline rate engine to use this information for cost calculations. This compilation process can be triggered when a product or pricing rule is created or updated.
[0137] like Figure 10As shown in the example, according to the embodiment: at 441, product and pricing information (e.g., managed in FusionApplications) is sent to the SPS component.
[0138] At position 442, the order is sent to the subscription manager component to create the subscription, rate card, and billing account.
[0139] At point 443, the pricing configuration and pricing rules are sent to SPS for use with new orders.
[0140] At 444, the subscription manager component is used to set up billing accounts in a billing service or component.
[0141] At 445, the subscription manager component publishes the event to the subscription manager stream component.
[0142] At point 446, the expense data is sent to accounts receivable component 425 to generate an invoice.
[0143] At 447, the subscription manager component uses the recycling and subscription lifecycle (RASL) events from the subscription manager stream.
[0144] At 448, the activation service 427 reads the subscription manager event stream.
[0145] At point 449, the customer obtains activation data from activation portal 429.
[0146] At 450, the lease lifecycle service 461 provides leases as part of a subscription activation.
[0147] At point 451, the lease lifecycle service creates an account footprint during the account provisioning period within component 463 of the account.
[0148] At location 452, the lease lifecycle service sets a restriction template for the account supply period within the restricted service 467.
[0149] At 453, the account component acts as a downstream RASL client to handle legacy recycling and subscription lifecycle. 465.
[0150] At 454, the aggregated costs and usage are sent to billing service 428 or component.
[0151] At point 455, organizations can use the lease lifecycle service to create subleases.
[0152] At position 456, metering service 432 or component obtains subscription mapping data.
[0153] At 457, subscription service 430 obtains organization data 469 for subscription mapping.
[0154] At 458, the RASL component reads the subscription manager event stream.
[0155] At 459, the subscription service reads the subscription manager event stream; and at 460, the metering service or component obtains the rate card data for each subscription, which can then be used to collect the final charge from the operator or the operator to charge its customers.
[0156] The examples provided above are intended to illustrate how they can be used to provide dedicated or privately tagged cloud environments for use by tenants of cloud infrastructure when accessing subscription-based software products, services, or other provisioning items associated with the cloud infrastructure environment. According to other embodiments, the various components, processes, and features described herein can be used with other types of cloud computing environments.
[0157] Console Customization
[0158] As described above, according to embodiments, the systems and methods can provide cloud computing capabilities to operators, such as via a private tag cloud. These operators can then supply cloud infrastructure services to their own customers (e.g., end users) via such cloud computing systems and methods, including using a cloud console that can be used as a login platform for the operator's end customers.
[0159] According to embodiments, the systems and methods described herein (e.g., for operators) provide the tools needed to customize and / or rebrand cloud consoles, enabling them to provide a customized look and feel for instances of the cloud console. As an example, tools are provided for customizing cloud consoles to match the branding or theme desired by the operator. Customization may include, but is not limited to, colors, logos, or alternative product labels.
[0160] According to embodiments, the systems and methods described herein provide operators with tools for unified management of their realms, configuration of how they deliver cloud services to customers (e.g., subscriptions, pricing, billing), and customization of the look and feel of their consoles (e.g., logos, colors, branding). The systems and methods also, for example, work with cloud providers to provide controlled access, service management, viewing service health, and troubleshooting capabilities. Customizing the console provides a mechanism that allows operators to brand their consoles and centrally access the tools used to manage their cloud environments.
[0161] According to embodiments, the operator console can be based on a scalable federated platform, similar to a cloud infrastructure console. By being based on a scalable federated platform, this allows cloud infrastructure providers to offer access to the operator platform's tools in the form of plug-ins, thereby improving and ensuring the stability of operations performed within the operator console. This delivery model also enables operators to easily develop and deploy their own services to customers, as operators can build their own plug-ins that can be added to the operator console (e.g., after passing certain testing and stability methodologies), thus providing operators with greater customization and flexibility within the provided operator console.
[0162] According to embodiments, the system and method can ingest and store operator-customized rebranding (e.g., logo, color scheme, text (e.g., copyright, terms and conditions, service name)) via an implemented backend. This backend can process these customizations and store them in persistent storage accessible to the console. Upon publication / access, the console can pull from such backend storage to publish an operator-customized user interface that has already been selected and configured by the console UI.
[0163] While the examples described herein illustrate various systems, methods, and / or technologies that can be used in the context of providing a private tag cloud (PLC) environment, the systems, methods, and technologies described herein can be used within or with other types of cloud environments, depending on the various embodiments.
[0164] Console architecture
[0165] According to embodiments, the user experience configuration service (referred to herein as the UX configuration service in some embodiments) may include a control plane service (e.g., a low-traffic service) provided for serverless applications using APIs (such as API gateways) and cloud provider functionalities. Furthermore, the configuration service may be fronted by a proxy (e.g., a service platform, a Splat proxy) that can handle certain aspects of authentication, authorization, and load balancing (e.g., authentication via one or more methods (such as authentication via an authentication service), authorization via one or more methods (such as authorization via authorization processing), auditing and logging, and load balancing via throttling).
[0166] According to an embodiment, the API gateway may expose a public endpoint (though not necessarily accessible to clients), which may be referred to as a Splat proxy. This endpoint can be protected by an authentication method (e.g., mTLS, a method for mutual authentication). To prevent attacks (e.g., DDoS), systems and methods may leverage the rate-limiting features provided by the API gateway. Invocation of cloud infrastructure provider functions may be controlled by an internal identity and access management service or other similar service, ensuring that only API gateways created within the configured service lease can invoke cloud infrastructure provider function endpoints.
[0167] Figure 11 The illustration depicts an architecture for providing console customization according to an embodiment.
[0168] like Figure 11 As shown, according to an embodiment, within a cloud infrastructure environment 100, an operator domain 1100 may be provided / defined, which may be associated with an operator of the cloud infrastructure environment (such as the operator described above). The cloud infrastructure provider may supply one or more cloud environments (e.g., private label cloud environments) to the operator (e.g., a customer operating as a reseller), in which the operator domain 1100 may be defined.
[0169] According to the embodiments, multiple leases may be defined within or in relation to the operator domain, such as operator access lease 1101, console configuration service lease 1105, service lease 1108, and customer lease 1113.
[0170] According to an embodiment, from operator access lease 1101, users (such as users of operator 1120) can interact with operator console 1102 via, for example, a branded plug-in user interface 1103. This can take the form of, for example, a privately accessible website that provides customization options for an operator website hosted at / provided by cloud infrastructure environment 100 via a branded plug-in user interface.
[0171] According to an embodiment, at 1121, an operator or an authorized user of the operator (such as operator user 1120) can interact with the branded plugin (e.g., via a web interface or other API within the operator console 1102).
[0172] According to an embodiment, such interaction between operator users and branded plugins may include, for example, the processing of the look and feel (such as the look and feel of customer experience 1112) of the operator space (e.g., an internal webpage or an external webpage or console) hosted in a cloud infrastructure environment.
[0173] According to an embodiment, such interaction with the branding plugin may also include instructions for updating the theme (e.g., colors, branding, logo, trademark, text font, text size, color palette) of the operator's page or console. Once the operator user completes the desired changes / updates / customizations at the branding plugin, instructions to save these changes can be received, and these instructions can then be translated into one or more calls to be passed to the configuration service. Such calls may include, for example, REST API calls.
[0174] According to an embodiment, based on the interactions and instructions received at the branding plugin from step 1121, the branding plugin can interact with a configuration service, including various calls such as REST API calls. Such calls can be directed at 1122 via a proxy (such as a Splat proxy). In some embodiments, the proxy can handle aspects of authentication (e.g., authentication via one or more methods, such as authentication via an authentication service), authorization (e.g., authorization via one or more methods, such as authorization via authorization processing), load balancing (e.g., load balancing via throttling), auditing, and logging (e.g., logging the interaction to accessible storage).
[0175] According to an embodiment, the proxy can forward a call (e.g., a REST API call) at 1123 to a configuration service within the configuration service lease. The configuration service can perform checks to determine various characteristics associated with the call received from the proxy.
[0176] According to embodiments, such checks may include, for example, whether the provided colors are within the correct color range and whether the uploaded logo is the correct size. In this way, the configuration service can act as a validator to determine whether expected input submitted by the operator user is valid for any given page or console. The configuration service (e.g., a user experience configuration service) can generate and process configuration artifacts (e.g., user experience configuration artifacts). The configuration service can then store these artifacts in a configuration staging bucket at 1124, which may be associated with storage accessible to the configuration service. When operator users are actively making changes, it is not expected that such changes will be published immediately after receiving a call. For this reason, such changes are stored in a temporary staging bucket, allowing operator users to preview changes in batches or in stages before publishing them.
[0177] According to an embodiment, to verify a custom UX configuration, upon receiving an upload or other custom artifact (e.g., a brand logo) from a carrier, the system may perform checks such as the storage size, dimensions, and non-maliciousness (e.g., malicious scripts or HTML code) of supported file types (supported file types may include, for example, PNG or JPG formats). The system and method may perform such checks depending on the artifact in question.
[0178] For example, the branding plugin can check the dimensions and storage size of uploaded artifacts, and the UX configuration service can check if the file type is valid. If all checks pass, but the uploaded artifact still breaks the console code, then the uploaded / custom artifact will not be pushed to the console. The console can fall back to all or some of the general UX configurations, which will allow the console to continue working. In some embodiments, if some uploaded custom artifacts pass validation while others fail, the fallback scheme can be a combination of the default / general UX configuration and other elements of the configured custom UX configuration.
[0179] According to an embodiment, upon receiving a request to preview changes made by an operator user to an operator's page or console, the configuration service may, at 1125, transfer such artifacts from the staging bucket to a configuration preview bucket for a service lease (such as the original service lease) based on artifacts stored in the staging bucket. From this preview bucket, the console may render a preview of the page or console based on the artifacts stored in the staging bucket. Such previews may include, for example, one, some, or all of the changes / customizations made by the operator user at a branding plugin. Such previews may be rendered via a service (e.g., the original service) at 1127 and rendered as, for example, a private access website available to the operator.
[0180] According to the embodiment, the preview is not merely a generated image (displayed in the branded plugin user interface) as a preview of the console with new colors selected by the operator. The preview also provides UI components and interactions with these components. Operators are provided with a dynamic way to preview changes to their console, where they can interact with the console plugin and UI components without actually publishing the changes.
[0181] According to an embodiment, in order to provide this generation of a live preview of the console, the service provides an API that receives identifiers of the UX configuration (UxConfig) and theme (UxTheme) that the operator wants to preview, and the API returns the path from which the console can load the UX configuration and other basic properties.
[0182] According to an embodiment, upon receiving an instruction to publish changes / customizations made by an operator user via a branding plugin, the configuration service can retrieve artifacts stored in a staging bucket and transmit such artifacts 1126 to a configuration production bucket at the service rental location. From there, the service caches 1128 the artifacts in its server host. The artifacts can then be provided 1129 to end users 1130 via a service (e.g., the original service), allowing end users to interact with rendered pages / consoles 1130.
[0183] According to an embodiment, since any changes to configurations (e.g., user experience configurations) or themes (e.g., user experience themes) can affect all customer leases in the domain, it is important for operators to preview such changes before publishing them in real time. To support preview functionality, the configuration service can maintain multiple separate buckets. The first two buckets can serve as front-ends for services (e.g., the original service) that can serve files from these buckets. Configuration production bucket 1110 can store all configuration and theme artifacts published by the operator. Any changes in this bucket are visible to all end clients in the console. Configuration preview bucket 1109 can store configuration and theme artifacts to allow operators to preview changes before publishing them to the production bucket.
[0184] According to one embodiment, the console can read manifest files from both the production configuration bucket and the preview configuration bucket (used only for previewing changes). These manifest files act as the entry point for loading configurations and themes in the console. All other files and folders are referenced from the manifest file using relative paths, allowing for a flexible folder structure. The name and location of this file are governed by a contract between the configuration service and the console.
[0185] According to an embodiment, Figure 11 The document displays multiple leases, including Carrier Access Lease 1101, Console Configuration Service Lease 1105, Service Lease 1108, and Customer Lease 1113. Of these four leases, two can be exclusively operated and accessed by the cloud infrastructure environment provider: Console Configuration Lease 1105 and Service Lease 1108. Carrier Access Leases (referred to herein as OATs in some embodiments) may include leases set up / configured by the cloud infrastructure environment provider for authorized use by carriers and carrier users, who can be configured as administrators of the OATs. Customer Leases are carrier leases through which the carrier's customers can access and interact with the carrier's customized consoles / pages running within the cloud infrastructure environment. These customized consoles / pages are transparent to end users (e.g., end user 1130) when accessed.
[0186] Figure 12 Multiple paths for providing console customization are described according to embodiments.
[0187] like Figure 12 As shown, according to an embodiment, multiple paths for providing console customization can be provided, including operator path 1210, console developer path 1220, and end-user path 1240.
[0188] According to an embodiment, on operator path 1210 (e.g., an operator in a cloud infrastructure environment, such as a PLC operator), one or more domain operators 1211 can utilize branding plugin 1212 to define / interact with custom user experience configuration 1213, thereby defining custom configuration 1214, custom theme 1215, and custom asset 1216. Custom configurations may include structures with nested key-value pair fields, such as JSON structures. Configuration files may represent unique aspects of the customization (e.g., custom strings, branded HTML metadata, feature toggle overlays, navigation registry overlays).
[0189] According to the embodiments, the configuration file is a singleton—only one configuration of each type can exist in the domain. Custom themes can include special configurations that define style hints (colors, fonts, layouts) for the console. Multiple themes can be defined in the domain (e.g., a red theme, a blue theme). Custom resources can include, for example, images, icons, or fonts. In some embodiments, executable code (html, css, js) is not stored as assets. Assets can be theme-agnostic (e.g., a website icon (favicon)) or theme-specific (e.g., a colored version of a logo).
[0190] According to an example, operators can utilize branding plugins to manage custom UX configurations. Branding plugins also allow operators to upload configurations, assets, and themes to a UX configuration service. This allows operators to preview their changes in real time and publish them to services, such as the original service, after the preview.
[0191] According to an embodiment, these operators are permitted to publish, for example, custom user experience configurations to represent their branding / theming / customization within a domain (e.g., a PLC domain) by uploading 1217 to the user experience configuration server 1218. Such customizations can be published 1219 to a service 1230, such as the original service.
[0192] According to an embodiment, the UX configuration service 1218 can provide functionality for customizing UX configurations (e.g., CRUD (create, read, update, and delete) functions) and allows custom UX configurations to be published to services (such as the original service) so that consoles can use them. This service is accessible to the operator because end users do not need to interact with it. Thus, the UX configuration service can be gated / protected through authentication and authorization services, and access can be restricted to users within the operator's lease.
[0193] According to the embodiment, the above path can support theme selection. When multiple themes are defined in a domain, a customized console can allow operator users to select their preferred theme. The associated theme ID can be stored as a user-level preference in the console personalization service. If the user has not yet selected a preferred theme or if the service is unavailable, the console will fall back to the domain's default theme (as set by, for example, the console developer path).
[0194] According to an embodiment, to render the console using an active theme, runtime injection of CSS (Cascading Style Sheets) styles can be provided. The console configuration service can tokenize each themeable CSS property, allowing values to be populated at runtime. For component colors, this means mapping each component color in the console to one of a predefined color palette.
[0195] According to an embodiment, each definition / configuration element of the custom UX configuration can be tokenized, for example, by a configuration service. This tokenization can be used to populate a custom console and can also be used in debug / error checking modes.
[0196] According to an embodiment, the UX configuration service can store UX configurations (configuration and asset files) in an object repository. The service has two private buckets in the object repository—a staging bucket and a production bucket. This enables two-phase deployment of the UX configuration. In the staging bucket, the operator creates and manages drafts of the UX configuration. In the production bucket, once the operator is satisfied with the draft, instructions can be received to tell the UX configuration service to publish it to the production bucket. The service (e.g., the original service) can poll the production bucket for changes to the published custom UX configuration at configurable intervals, such as every 3 minutes, and make the custom UX configuration available to all console users in the domain. A preview bucket in the service rental area can be used to preview the console with the staging configuration applied.
[0197] According to an example, the UX configuration service can identify / utilize two separate backend resources. These backend resources are transparent to the console, but branding plugins need to be aware of them. First, the UX configuration backend resource can represent a package of common assets and configurations that are not theme-dependent. This is a singleton resource—there can only be one active UX configuration resource per domain. Second, the UxTheme backend resource can represent a package of theme-specific configurations (e.g., theme.json) and assets. Multiple UxTheme resources can be defined per domain.
[0198] According to an embodiment, on the console developer path 1220, the console team 1221 can pull / request 1222 a default user experience configuration 1223, which may include a default configuration 1224, a default theme 1225, and a default asset 1226. The default user experience configuration can be merged 1227 at an artifact repository 1228 that may include a repository manager, and can be deployed 1229 to a service 1230 (e.g., a raw service) along with custom user experience configurations provided on the operator path. This default user experience configuration can be used, for example, in non-PLC domains (e.g., domains where no operator-defined configurations are applied), and can also be used in PLC domains as a fallback solution in error situations such as when the console cannot load operator-defined custom configurations.
[0199] According to an embodiment, on end-user path 1240, when end-user 1243 invokes to load console 1241 (e.g., cloud console), the console obtains a custom or default user experience configuration from service 1230 (e.g., original service) during initialization. It uses the obtained user experience configuration to render a themed / branded console / page.
[0200] Figure 13 This is a lifecycle diagram of backend resources for console customization according to an embodiment.
[0201] like Figure 13 As shown in the embodiment, each backend resource (described above in the context of custom UX configuration 1213, which may include custom configuration 1214, custom theme 1215, and custom asset 1216) can undergo... Figure 13 The lifecycles mapped to UI operations / service APIs are described in the diagram. These lifecycle states include staging buckets 1301, 1303, 1305, 1307, 1309, and 1311, and production buckets 1312, 1313, 1315, 1317, 1320, and 1322.
[0202] According to the embodiment, at point 1302, the operator can create a new empty custom UX configuration in the staging bucket, with the status "CREATED". From there, the operator can upload the first set of configurations and assets at point 1304. The operator can then create a new draft of the custom UX configuration by, for example, uploading more configurations and assets. The resources are then in the "MODIFIED" state. The operator can create a new draft by uploading more configurations and assets to it (in the "MODIFIED" state) or discard the draft. Once satisfied, the operator publishes the draft at point 1306 in the staging bucket or production bucket.
[0203] According to the embodiment, when viewing resources in the staging bucket, if the operator expects a restart, the operator can upload another set of initial configurations and assets 1308, and then edit and upload more configurations and assets, bringing the resources back to the MODIFIED state. Once satisfied, the operator can publish the draft 1310 in the staging bucket or production bucket. This cycle can be repeated, discarding some parts of the resources 1314, until the operator is satisfied with the resources, at which point the resources can be published to the production bucket.
[0204] According to the embodiment, the lifecycle additionally supports cancellation release 1318, which removes the published custom UX configuration from the production bucket, thus removing the file from the service (e.g., the original service). Cancellation release also moves the custom UX configuration back to the draft (MODIFIED) state in the staging bucket, but does not delete the custom UX configuration from the system. The operator will still be able to access the draft if needed. Finally, deletion 1321 removes the custom UX configuration from the system. To ensure that the operator does not accidentally delete published (end-user available) custom UX configurations, the deletion operation only occurs from the CREATED lifecycle state, while discarding 1319 can occur from the MODIFIED state.
[0205] According to the embodiments, the lifecycle transformation transitions depicted and described support several functions, including allowing updates to published UX configurations / UX themes, and preventing the deletion of published UX configurations / UX themes in a single step, since deletion could be triggered by an error, which could break console functionality for all end users in the field.
[0206] Figure 14 This is a depiction of a user interface for console customization according to an embodiment.
[0207] like Figure 14As shown, according to an embodiment, a user interface 1400 for console customization, generated by a branded user interface, may include multiple components, including an image portion 1410 and a color portion 1420, wherein the color portion is divided into different parts, including a regular color 1430 and a header / footer color 1440.
[0208] According to an embodiment, within the image section, operator users can upload various assets, such as logos and images to be used in browser tabs, as indicated in the illustrated embodiment. For example, such assets can then be added to a custom UX configuration resource, as described above, which can be used to publish a live preview 1450.
[0209] According to an embodiment, a color section 1420 can be displayed, allowing operator users to select a limited number of colors to use for customizing the console, including a general color 1430 and header and footer colors 1440. Branded UIs can utilize a color palette generator (see below). Figure 17 (As described in the context) Generate a color palette from these colors to be used in a custom console within the operator. For example, such assets can then be added to a custom UX configuration resource, as described above, which can be used to publish a live preview 1450.
[0210] According to an embodiment, UI 1400 additionally includes a preview and publish button 1460, which allows operator users to save resources selected on a custom branding page to a custom UX configuration resource, which can be published via a service (such as the original service) upon successful completion.
[0211] Figure 15 This is a depiction of a user interface for console customization according to an embodiment.
[0212] like Figure 15 As shown in the embodiment, a user interface 1500 for console customization generated by a branded user interface may include multiple components, including an image portion 1510 and a color portion 1520, wherein the color portion is divided into different parts, including a regular color 1530, a header / footer color 1540, a main button color 1550, and a secondary button color 1560.
[0213] According to an embodiment, within the image section, operator users can upload various assets, such as logos and images to be used in browser tabs, as indicated in the illustrated embodiment. For example, such assets can then be added to a custom UX configuration resource, as described above, which can be used to publish a live preview 1570.
[0214] According to an embodiment, a color section 1520 can be displayed, allowing operator users to select a limited number of colors to use for customizing the console, including a general color 1530, header and footer colors 1540, main button colors 1550, and secondary button colors 1560. Branded UIs can utilize a color palette generator (see below). Figure 17 (As described in the context) Generate a color palette from these colors to be used in a custom console within the operator. For example, such assets can be added to a custom UX configuration resource, as described above, which can be used to publish a live preview 1570.
[0215] According to an embodiment, UI 1500 additionally includes a preview and publish button 1580, which allows operator users to save resources selected on a custom branding page to a custom UX configuration resource, which can be published via a service (such as an original service) upon successful completion.
[0216] Figure 16 This is a depiction of a user interface for console customization according to an embodiment.
[0217] like Figure 16 As shown, according to an embodiment, a user interface 1600 for console customization, generated by a branded user interface, may include multiple components, including a homepage promotion 1610 section, which includes a text section 1620.
[0218] According to an embodiment, within the homepage promotion section 1610, operator users can use, for example, drop-down menus or other selections, to specify text in the text input field 1620 of the console, as well as the formatting of that text. Information in the homepage promotion section and text entered in the text field 1620 can be used to generate or modify, for example, custom UX configuration resources.
[0219] According to an embodiment, UI 1500 additionally includes a live preview window 1630 that can display a live preview of the custom console, and a preview and publish button 1640 that allows operator users to save resources selected on the custom branding page to a custom UX configuration resource, which can be published via a service (such as the original service) upon successful completion.
[0220] Figure 17 A color space generated by a custom color palette for console customization, according to an embodiment, is described.
[0221] like Figure 17As shown, according to the embodiments described above, a custom console can be generated for operators (such as operators in PLC environments). Such a custom console may include, for example, a custom logo (e.g., the operator's logo), and the console may be rendered with custom colors and a custom color palette, which can be applied to headers, footers, navigation menus, backgrounds, accent colors, or link colors.
[0222] According to one embodiment, custom color palette generation can begin by allowing the operator user to select a limited set of primary colors (e.g., seven colors) for the generated custom console. These primary colors can be defined, for example, from a branding plugin. From these primary colors, the branding plugin can generate a color palette scaled by chroma and luminance to generate all possible colors to be used within the custom console. This custom color palette generation improves computational efficiency.
[0223] According to an example, using the Hue-Chroma-Luminosity color space 1700 and inputting a limited set of primary colors as defined by the carrier user, the branding plugin can generate a custom color palette for the carrier user to use when designing and customizing the console. As an example, by inputting seven primary colors, the custom color palette generator can generate more than 50 unique colors to be used within the carrier's custom console. This ensures consistency and reduces the overhead that developers and designers must bear when tracking and mapping dozens of unique colors.
[0224] According to an embodiment, the system can utilize the HCL (Hue-Chroma-Luminosity) color space for palette generation. This can include cylindrical color spaces specifically designed to ensure that scaled colors are perceptually similar. Standard RGB and HSL color spaces do not support perceptual mapping, making them unsuitable for palette generation.
[0225] Figure 18 This is a flowchart of a method for customizable console generation according to an embodiment.
[0226] like Figure 18 As shown, according to an embodiment, the method may provide a computer including a microprocessor as part of a cloud infrastructure environment in step 1810.
[0227] According to an embodiment, the method may provide a customizable console in the context of a cloud environment at step 1820, which provides access to subscription-based products, services and other offerings.
[0228] According to an embodiment, the method can provide access to a customizable console within the context of a cloud environment at step 1830.
[0229] According to an embodiment, the method may, at step 1840, allow a first entity associated with a first lease in the cloud environment to customize a customizable console via a configuration service, wherein the configuration service generates a console configuration resource in response to an instruction received from the first entity associated with the first lease, and the generated console configuration resource is used to customize the customizable console when providing access to the customizable console.
[0230] According to an embodiment, the generated console configuration resources can be stored in a first storage location.
[0231] According to an embodiment, the first storage location may include preview storage. Based on the generated console configuration resources stored in the preview storage location, a live preview of the console is generated for use within the console configuration user interface.
[0232] According to an embodiment, the method may tokenize the generated console configuration resources before storing them in a first storage location and a second storage location.
[0233] According to an embodiment, the received instructions may include a selected set of colors for use within a customizable console. Based on the received instructions, the method can generate a color palette comprising multiple colors for use within the customizable console, the color palette including colors that have perceptual similarity to the set of colors.
[0234] According to an embodiment, the method can tokenize each of the multiple colors in the generated color palette.
[0235] According to an embodiment, further instructions to publish a customizable console can be received. Upon receiving such instructions, the generated console configuration resources can be stored in a second storage location, including production storage. A live version of the customizable console can be generated by polling this storage location to detect the generated console configuration resources stored therein. This live version can then be made accessible to customers in a cloud environment.
[0236] According to an embodiment, the generated console configuration resources can follow a lifecycle that supports generation, modification, deletion, and unpublishing.
[0237] According to an embodiment, the instruction can be received at the agent before it is received at the configuration service. The agent can then perform at least one of the following: authentication, authorization, auditing, and load balancing.
[0238] According to an embodiment, the received instructions can be received from a first lease in the cloud environment, which is associated with a first identity provider. The configuration service can be associated with a second lease in the cloud environment, which is associated with a second identity provider.
[0239] Customizable console debugging mode
[0240] According to embodiments, the systems and methods described herein can support a debugging mode (also referred to herein as "debug mode") for customizable consoles. Debug mode can include systems and methods for determining whether all portions of a custom UX configuration resource for a custom console are valid for generating the custom console. This debugging mode allows for easy detection and identification of defects or errors within the custom UX configuration, and determines whether such a custom console can be generated error-free when based on the custom UX configuration resource.
[0241] According to an embodiment, the debug mode can, for example, generate a modified version of a preview of a custom console based on custom UX configuration resources via a debug service. The modified version of the custom console preview can be generated in such a way that, when displayed via a user interface, it allows easy detection of correctly configured (e.g., correctly tokenized) parts or components of the custom console, as well as parts or components that are not correctly configured (e.g., untokenized or that would cause the console to fail to render).
[0242] According to an embodiment, when a modified version of a preview of a custom console is generated by the debugging service, a color palette generated with bright and saturated hues can be used to generate the custom console (this color palette is typically not based on a color palette selected and generated for the operator, but is generated to have distinct color differences between different parts of the modified version of the preview in order to quickly identify certain parts of the preview).
[0243] Then, when generating a modified version of the preview, the debug service can use certain colors from the generated color palette to color any tokenized elements in the custom console, as well as elements configured for error-free rendering. Any untokenized elements in the modified preview can be generated with different and unique colors from the color palette to easily visually detect untokenized portions of the custom console that would otherwise cause errors in the rendered custom console or prevent the custom console from rendering for customers in cloud infrastructure environments.
[0244] According to an embodiment, debug mode can be run before saving custom UX configuration resources to the production bucket, thereby saving computing resources and making the system more efficient.
[0245] Figure 19 The illustration shows an architecture for providing a console-customized debug mode according to an embodiment.
[0246] like Figure 19As shown, according to an embodiment, within a cloud infrastructure environment 100, an operator domain 1100 may be provided / defined, which may be associated with an operator of the cloud infrastructure environment (such as the operator described above). A cloud infrastructure provider (e.g., Oracle Cloud Infrastructure, OCI) may supply one or more cloud computing environments (such as private tagged cloud environments) to an operator (e.g., an OCI customer operating as a reseller), in which the operator domain 1100 may be defined.
[0247] According to the embodiments, multiple leases may be defined within or in relation to the operator domain, such as operator access lease 1101, console configuration service lease 1105, service lease 1108, and customer lease 1113.
[0248] According to an embodiment, from operator access lease 1101, users (such as users of operator 1120) can interact with operator console 1102 via, for example, a branded plug-in user interface 1103. This can take the form of, for example, a privately accessible website that provides customization options for an operator website hosted at / provided by cloud infrastructure environment 100 via a branded plug-in user interface.
[0249] According to an embodiment, at 1121, the operator or an authorized user of the operator (such as operator user 1120) can interact with the branded plugin, for example, via a web interface or other API within the operator console 1102.
[0250] According to an embodiment, such interaction between operator users and branded plugins may include, for example, the processing of the look and feel (such as the look and feel of customer experience 1112) of the operator space (e.g., an internal webpage or an external webpage or console) hosted in a cloud infrastructure environment.
[0251] According to an embodiment, such interaction with the branding plugin may also include instructions for updating the theme (e.g., colors, branding, logo, trademark, text font, text size, color palette) of the operator's page or console. Once the operator user completes the desired changes / updates / customizations at the branding plugin, instructions to save these changes can be received, and these instructions can then be translated into one or more calls to be passed to the configuration service. Such calls may include, for example, REST API calls.
[0252] According to an embodiment, based on the interactions and instructions received at the branding plugin from step 1121, the branding plugin can interact with a configuration service, including various calls such as REST API calls. Such calls can be directed at 1122 via a proxy (such as a Splat proxy). In some embodiments, the proxy can handle aspects of authentication (e.g., authentication via one or more methods, such as authentication via an authentication service), authorization (e.g., authorization via one or more methods, such as authorization via authorization processing), load balancing (e.g., load balancing via throttling), auditing, and logging (e.g., logging the interaction to accessible storage).
[0253] According to an embodiment, the proxy can forward a call (e.g., a REST API call) at 1123 to a configuration service within the configuration service lease. The configuration service can perform checks to determine various characteristics associated with the call received from the proxy.
[0254] According to an embodiment, such checks may include, for example, whether the provided color is within the correct color range and whether the uploaded logo is the correct size. In this way, the configuration service can act as a validator to determine whether expected input submitted by the operator user is valid for any given page or console. The configuration service (e.g., a user experience configuration service) can generate and process configuration artifacts (e.g., user experience configuration artifacts). The configuration service can then store these artifacts at 1124 in a configuration staging bucket, which may be associated with storage accessible to the configuration service.
[0255] When carrier users are proactively making changes, they do not expect to publish such changes immediately upon receiving a call. For this reason, such changes are stored in a temporary staging bucket, allowing carrier users to preview the changes in batches or in stages before publishing them.
[0256] According to an embodiment, to verify a custom UX configuration, upon receiving an upload or other custom artifact (e.g., a brand logo) from a carrier, the system may perform checks such as the storage size, dimensions, and non-maliciousness (e.g., malicious scripts or HTML code) of supported file types (supported file types may include, for example, PNG or JPG formats). The system and method may perform such checks depending on the artifact in question.
[0257] For example, the branding plugin can check the dimensions and storage size of uploaded artifacts, and the UX configuration service can check if the file type is valid. Ultimately, if all checks pass, but the uploaded artifact still breaks the console code, then the uploaded / custom artifact will not be pushed to the console. The console can then revert to all or some common UX configurations, which will allow the console to continue functioning.
[0258] In some embodiments, if some uploaded custom artifacts pass validation while others fail, the fallback scheme can be a combination of the default / generic UX configuration and other elements of the configured custom UX configuration.
[0259] According to an embodiment, upon receiving a request to preview changes made by an operator user to an operator's page or console, the configuration service may, at 1125, transfer such artifacts from the staging bucket to a configuration preview bucket for a service lease (such as the original service lease) based on artifacts stored in the staging bucket. From this preview bucket, the console may render a preview of the page or console based on the artifacts stored in the staging bucket. Such previews may include, for example, one, some, or all of the changes / customizations made by the operator user at a branding plugin. Such previews may be rendered 1127 via a service (e.g., the original service) and rendered as, for example, a private access website available to the operator.
[0260] According to the embodiment, the preview is not merely a generated image (displayed in the branded plugin user interface) as a preview of the console with new colors selected by the operator. The preview also provides UI components and interactions with these components. Operators are provided with a dynamic way to preview changes to their console, where they can interact with the console plugin and UI components without actually publishing the changes.
[0261] According to an embodiment, in order to provide this generation of a live preview of the console, the service provides an API that receives identifiers of the UX configuration (UxConfig) and theme (UxTheme) that the operator wants to preview, and the API returns a path and other basic properties of the UX configuration that the console can use to load from it.
[0262] According to an embodiment, upon receiving an instruction to publish changes / customizations made by an operator user via a branding plugin, the configuration service can retrieve artifacts stored in a staging bucket and transmit such artifacts 1126 to a configuration production bucket at the service rental location. From there, the service caches 1128 the artifacts in its server host. The artifacts can then be provided 1129 to end users 1130 via a service (e.g., the original service), allowing end users to interact with rendered pages / consoles 1130.
[0263] According to an embodiment, since any changes to configurations (e.g., user experience configurations) or themes (e.g., user experience themes) can affect all customer leases in the domain, it is important for operators to preview such changes before publishing them in real time. To support preview functionality, the configuration service can maintain three separate buckets. The first two buckets can serve as front-ends for services (e.g., the original service) that can serve files from these buckets. Configuration production bucket 1110 can store all configuration and theme artifacts published by the operator. Any changes in this bucket are visible to all end clients in the console. Configuration preview bucket 1109 can store configuration and theme artifacts to allow operators to preview changes before publishing them to the production bucket.
[0264] According to one embodiment, the console can read the manifest file from both the production configuration bucket and the preview configuration bucket (used only for previewing changes). This manifest file serves as the entry point for loading configurations and themes in the console. All other files and folders are referenced from the manifest file using relative paths, allowing for a flexible folder structure. The name and location of this file are governed by a contract between the configuration service and the console.
[0265] According to an embodiment, a debugging service 1905 can be provided within a cloud infrastructure environment, wherein the debugging service can interact with a staging bucket to generate a modified preview of a custom console for quickly identifying errors or potential errors that may occur if / when a custom console is generated based on custom UX configuration resources stored in the staging bucket. As described above, the debugging service can generate a modified preview to be displayed via a user interface based on its interaction with the staging bucket (or another bucket within the staging bucket, such as a preview bucket or a production bucket).
[0266] According to an embodiment, when a modified version of a preview of a custom console is generated by the debugging service, a color palette generated with bright and saturated hues can be used to generate the custom console (this color palette is typically not based on a color palette selected and generated for the operator, but is generated to have distinct color differences between different parts of the modified version of the preview in order to quickly identify certain parts of the preview).
[0267] Then, when generating a modified version of the preview, the debug service can use certain colors from the generated color palette to color any tokenized elements in the custom console, as well as elements configured for error-free rendering. Any untokenized elements in the modified preview can be generated with different and unique colors from the color palette to easily visually detect untokenized portions of the custom console that would otherwise cause errors in the rendered custom console or prevent the custom console from rendering for customers in cloud infrastructure environments.
[0268] According to an embodiment, Figure 19 The document displays multiple leases, including Carrier Access Lease 1101, Console Configuration Service Lease 1105, Service Lease 1108, and Customer Lease 1113. Of these four leases, two can be exclusively operated and accessed by the cloud infrastructure environment provider: Console Configuration Lease 1105 and Service Lease 1108. Carrier Access Leases (OATs) can include leases set up / configured by the cloud infrastructure environment provider for authorized use by carriers and carrier users, who can be configured as administrators of the OAT. Customer leases are carrier leases through which their customers can access and interact with a customized console / page of the carrier running within the cloud infrastructure environment. These customized consoles / pages are transparent to end users when accessed by customers (e.g., end user 1130).
[0269] According to an embodiment, debugging services can be provided within the context of a lease exclusively owned and operated by a cloud infrastructure provider.
[0270] Figure 20 A screenshot of the debug mode according to an embodiment is shown.
[0271] According to an embodiment, such as that generated at the graphical user interface 166, the debugging service can generate a modified preview 2000 for the console based on, for example, a custom UX configuration resource set by the operator or its users.
[0272] According to an embodiment, as depicted in the various shades shown in the figure, the correctly configured and tokenized portions of console 2010 can be rendered using certain hues of a generated color palette that indicate that these portions of the console are correctly configured and tokenized.
[0273] According to an embodiment, as depicted in the various shades within the figure, misconfigured and / or untokenized portions of the console 2020 can be rendered using certain hues from a generated color palette that indicate that these portions of the console are not correctly configured or untokenized.
[0274] According to the embodiment, based on this modified rendering of the custom console, various parts of the custom UX configuration resource can then be quickly identified as untokenized or incorrectly configured. In this case, error solutions can then be addressed before the custom UX configuration resource is delivered to the production bucket, where such errors or untokenized artifacts cause the console rendered for the underlying user to display incorrectly, or even be completely or partially defaulted to the generic user interface.
[0275] Figure 21 This is a flowchart of a method for a console debug mode of a custom console according to an embodiment.
[0276] According to an embodiment, the method may provide a computer including a microprocessor at step 2110.
[0277] According to an embodiment, the method may provide a customizable console in the context of a cloud environment at step 2120, which provides access to subscription-based products, services and other offerings.
[0278] According to an embodiment, the method can customize a customizable console via a configuration service at step 2130, wherein the configuration service generates console configuration resources in response to received instructions.
[0279] According to an embodiment, the method can generate a modified preview of the console, which includes multiple console elements based on the generated console configuration resource, from a temporary storage area at step 2140, for debugging the generated console configuration resource.
[0280] According to an embodiment, generating a modified preview of the console may include generating a color palette for the modified preview, the color palette including multiple colors with high saturation.
[0281] According to an embodiment, the first group of multiple colors can be used within the modification preview to indicate the first group of console elements corresponding to the tokenized assets within the generated console configuration resource.
[0282] According to an embodiment, a second group of multiple colors can be used within the modification preview to indicate a second group of console elements corresponding to the untokenized assets within the generated console configuration resource.
[0283] According to an embodiment, the first group of console elements may be different from the second group of console elements.
[0284] According to an embodiment, the modified preview can be generated by a debugging service running in the context of a first lease in a cloud infrastructure environment.
[0285] According to an embodiment, the received instructions can be received from the context of a second lease in the cloud infrastructure environment.
[0286] According to an embodiment, the first lease is associated with a first identity provider, and the second lease may be associated with a second identity provider.
[0287] According to various embodiments, the teachings herein can be implemented using one or more computers, computing devices, machines, or microprocessors, including one or more processors, memories, and / or computer-readable storage media programmed according to the teachings herein. It will be apparent to those skilled in the art that a skilled programmer can easily prepare appropriate software code based on the teachings of this disclosure.
[0288] In some embodiments, the teachings herein may include a computer program product, which is one or more nontransitory computer-readable storage media having instructions stored thereon / therein that can be used to program a computer to perform any of the processing described herein. Examples of such storage media may include, but are not limited to, hard disk drives, solid disks, ROM, RAM, EPROM, EEPROM, DRAM, VRAM, flash memory devices, or other types of storage media or devices suitable for nontransitory storage of instructions and / or data.
[0289] The above description is provided for illustrative and descriptive purposes only. It is not intended to be exhaustive or to limit the scope of protection to the precise forms disclosed. Further modifications and variations will be apparent to those skilled in the art.
[0290] The embodiments were chosen and described to better explain the principles taught herein and their practical application, thereby enabling others skilled in the art to understand the various embodiments and modifications suitable for the intended particular use. The scope of the invention is defined by the following claims and their equivalents.
Claims
1. A method comprising: providing a computer comprising a microprocessor; providing a customizable console within the context of a cloud environment, the customizable console providing access to subscription-based products, services, and other offerings; providing access to the customizable console within the context of the cloud environment; and customizing the customizable console by a first entity associated with a first tenancy of the cloud environment via a configuration service, wherein the configuration service, in response to instructions received from the first entity associated with the first tenancy, generates a console configuration resource, the generated console configuration resource being used to customize the customizable console when providing access to the customizable console.
2. The method of claim 1, further comprising: storing the generated console configuration resource at a first storage location.
3. The method of claim 2, wherein the first storage location comprises a preview storage; and wherein, generating a live preview of the console for use within a console configuration user interface based on the generated console configuration resource stored at the preview storage location.
4. The method of claim 2, further comprising: tokenizing the generated console configuration resource prior to storing the generated console configuration resource to the first storage location and a second storage location.
5. The method of claim 1, wherein the received instructions comprise a selected set of colors for use within the customizable console, the method further comprising: based on the received instructions, generating a color palette comprising a plurality of colors for use within the customizable console, the color palette comprising colors having perceptual similarity to the set of colors.
6. The method of claim 5, further comprising: tokenizing each of the plurality of colors of the generated color palette.
7. The method of claim 6, further comprising: receiving further instructions to publish the customizable console, storing the generated console configuration resource at a second storage location, the second storage location comprising a production storage; detecting the generated console configuration resource stored therein by polling the storage location, generating a live version of the customizable console.
8. The method of claim 7, wherein the live console is accessible by customers of the cloud environment.
9. The method of claim 1, wherein the generated console configuration resource adheres to a lifecycle that supports generation, modification, deletion, and unpublishing.
10. The method of claim 1, wherein, prior to the instructions being received at the configuration service, the instructions are received at a proxy; wherein the proxy performs at least one of authentication, authorization, auditing, and load balancing.
11. The method of claim 1, wherein the received instructions are received from a first tenancy of the cloud environment, the first tenancy being associated with a first identity provider; and wherein the configuration service is associated with a second tenancy of the cloud environment, the second tenancy being associated with a second identity provider.
12. A system comprising: a computer comprising a microprocessor; wherein the microprocessor performs a method, the method comprising: providing a customizable console within the context of a cloud environment, the customizable console providing access to subscription-based products, services, and other offerings; providing access to the customizable console within the context of the cloud environment; and customizing the customizable console by a first entity associated with a first tenancy of the cloud environment via a configuration service, wherein the configuration service, in response to instructions received from the first entity associated with the first tenancy, generates a console configuration resource, the generated console configuration resource being used to customize the customizable console when providing access to the customizable console. providing a customizable console within the context of a cloud environment, the customizable console providing access to subscription-based products, services, and other offerings; providing access to the customizable console within the context of the cloud environment; and customizing the customizable console by a first entity associated with a first tenancy of the cloud environment via a configuration service, wherein the configuration service, in response to instructions received from the first entity associated with the first tenancy, generates a console configuration resource, the generated console configuration resource being used to customize the customizable console when providing access to the customizable console.
13. The system of claim 12, wherein the method further comprises: storing the generated console configuration resource at a first storage location.
14. The system of claim 13, wherein the first storage location comprises a preview storage; and wherein generating a live preview of the console for use within the console configuration user interface based on the generated console configuration resource stored at the preview storage location.
15. The system of claim 14, wherein the method further comprises: tokenizing the generated console configuration resource prior to storing the generated console configuration resource to the first storage location and a second storage location.
16. The system of claim 12, wherein the received instructions comprise a selected set of colors for use within the customizable console, wherein the method further comprises: generating, based on the received instructions, a color palette comprising a plurality of colors for use within the customizable console, the color palette comprising colors having perceptual similarity to the set of colors.
17. The system of claim 16, wherein the method further comprises: tokenizing each of the plurality of colors of the generated color palette.
18. The system of claim 17, wherein the method further comprises: receiving further instructions to publish the customizable console, storing the generated console configuration resource at a second storage location, the second storage location comprising a production storage; generating a live version of the customizable console by polling the storage locations for the generated console configuration resource stored therein.
19. The system of claim 18, wherein the live console is accessible by customers of the cloud environment.
20. The system of claim 12, wherein the generated console configuration resource adheres to a lifecycle that supports generation, modification, deletion, and unpublishing.
21. The system of claim 12, wherein receiving the instructions at a proxy prior to receiving the instructions at the configuration service; wherein the proxy performs at least one of authentication, authorization, auditing, and load balancing.
22. The system of claim 12, wherein the received instructions are received from a first tenancy of the cloud environment, the first tenancy being associated with a first identity provider; and wherein the configuration service is associated with a second tenancy of the cloud environment, the second tenancy being associated with a second identity provider.
23. A non-transitory computer-readable storage medium having instructions thereon that, when read and executed, cause a computer to perform steps comprising: providing a customizable console within the context of a cloud environment, the customizable console providing access to subscription-based products, services, and other offerings; providing access to the customizable console within the context of the cloud environment; and customizing the customizable console by a first entity associated with a first tenancy of the cloud environment via a configuration service, wherein the configuration service, in response to instructions received from the first entity associated with the first tenancy, generates a console configuration resource, the generated console configuration resource being used to customize the customizable console when providing access to the customizable console. providing a customizable console within the context of a cloud environment, the customizable console providing access to subscription-based products, services, and other offerings; providing access to the customizable console within the context of a cloud environment; and customizing the customizable console by a first entity associated with a first tenancy of a cloud environment via a configuration service, wherein the configuration service, in response to instructions received from the first entity associated with the first tenancy, generates a console configuration resource that is used to customize the customizable console when providing access to the customizable console.