SYSTEM AND METHOD FOR USE AND ALLOCATION OF SaaS_PaaS RESOURCES IN ANALYTICAL APPLICATION ENVIRONMENT

The analytics application environment addresses the inefficiencies of traditional SaaS/PaaS billing systems by implementing a hybrid billing system that allows for flexible resource allocation and scaling, enhancing efficiency and cost-effectiveness.

JP2025063067AActive Publication Date: 2025-04-15ORACLE INT CORP

Patent Information

Application Number
JP2024227239
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2019-04-30
Filing Date
2024-12-24
Publication Date
2025-04-15
Estimated Expiration
2040-04-29

AI Technical Summary

Technical Problem

Traditional SaaS/PaaS billing systems face challenges when customers need additional resources beyond what they initially purchased, as the only available option is to purchase additional seats, which can be inefficient.

Method used

The analytics application environment provides a hybrid billing system that supports the development of software analytics applications, allowing data pipelines to operate according to an analytics application schema and receive data from enterprise software applications for loading into a data warehouse instance, with provisioning components that integrate with cloud environments for flexible resource allocation.

Benefits of technology

This approach enables more efficient resource utilization and allocation, allowing customers to scale resources as needed without the limitations of traditional billing models, thereby improving flexibility and cost-effectiveness.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025063067000001_ABST
    Figure 2025063067000001_ABST
Patent Text Reader

Abstract

To provide a system and a method for use and allocation of SaaS_PaaS resources in an analytical application environment.SOLUTION: With a method, a control plane is configured by a provisioning component and a console interface, provides a data warehouse and a monitoring agent, and provisions an instance of the data warehouse in relation to a tenant. The provisioned instance of the data warehouse has an initial size. The method also adds an entry to a metrics repository of a monitoring agent when the instance of the data warehouse is provisioned. An entry indicates an initial size of the provisioned instance of the data warehouse and tagged indicating a tenant. The method further monitors an amount of data stored in the instance of the data warehouse provisioned by the monitoring agent.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Copyright Notice A portion of the disclosure of this patent document contains material that is subject to copyright protection. As the patent document or patent disclosure is publicly disclosed in the U.S. Patent and Trademark Office patent files and records, the copyright owner has no objection to the copying thereof by anyone, but otherwise reserves all copyright rights without exception.

[0002] Priority claim This application claims the benefit of priority to U.S. Provisional Application No. 62 / 841,058, filed April 30, 2019, and entitled "SYSTEM AND METHOD FOR PROVIDING HYBRID BILLING IN AN ANALYTICS APPLICATION ENVIRONMENT," which is incorporated herein by reference.

[0003] Technical Field FIELD OF THE DISCLOSURE The embodiments described herein relate generally to computer data analytics and business intelligence, and more particularly to a system and method for providing an application analytics environment that enables development of software analytics applications. [Background technology]

[0004] background Generally described, within an organization, data analytics enables the computer-based examination or analysis of large amounts of data in order to derive conclusions or other information from that data, while business intelligence tools provide an organization's business users with information that describes enterprise data in a form that enables strategic management decisions to be made.

[0005] There is growing interest in developing software applications that leverage the use of data analytics in connection with an organization's enterprise software application / data environment (e.g., an Oracle Fusion Applications environment or other type of enterprise software application / data environment) or in connection with a Software-As-A-Service (SaaS) or cloud environment (e.g., an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment or other type of cloud environment).

[0006] Traditional Software as a Service (SaaS) / Platform as a Service (PaaS) billing systems generally bill customers / tenants for SaaS / PaaS usage based on the number of seats (e.g., users who can access the SaaS at any time) that the customer / tenant selected during the initial purchase / license agreement for the SaaS / PaaS. While this model has worked well so far for SaaS / PaaS, problems can arise when a customer / tenant wants or needs more resources than have been purchased. In such a situation, the only mechanism available to a customer / tenant is to, for example, purchase the SaaS / PaaS The alternative is to purchase additional seats of AS. Summary of the Invention [Means for solving the problem]

[0007] overview According to an embodiment, the analytic application environment enables data analytics associated with an organization's enterprise software application / data environment, or Software-As-A-Service or other type of cloud environment, and supports the development of computer-executable software analytic applications.

[0008] According to an embodiment, a data pipeline / processing, e.g., extraction, transformation, and loading processes, may operate according to an analytical application schema adapted to address a particular analytical use case or best practice to receive data from a customer's (tenant's) enterprise software application / data environment for loading into the data warehouse instance.

[0009] According to an embodiment, each customer (tenant) can be further associated with a customer tenancy and a customer schema. The data pipeline / processing adds data received from the enterprise software applications / data environment to the data warehouse instance and database tables as defined by the combination of the analytic application schema and the customer schema.

[0010] According to an embodiment, access to the analytics application environment may be provided, for example, as a Software-As-A-Service (SaaS) application or product offering that is made accessible to customers in a cloud environment (e.g., Oracle Cloud Infrastructure, OCI, or other cloud environment) or may be provided as a cloud service (e.g., Oracle Analytics Cloud service, OAC, Oracle Fusion Analytics service, or other cloud service).

[0011] According to an embodiment, the cloud environment, e.g., provisioning provided by OCI, that enables support of functions such as pipelines and data backup, restore, and patching, can be integrated with other SaaS or PaaS (Platform-as-a-Service) components, including, for example, customer-specific limits on data processing, and a billing component that provides support for hybrid billing (e.g., based on a SaaS / PaaS combination).

[0012] Described herein are systems and methods for SaaS / PaaS resource utilization and allocation in an analytical application environment. An exemplary method can provide an application analytics environment and a control plane comprised of a server, the control plane further comprising a provisioning component and a console interface, and the exemplary method can further provide a data warehouse and a monitoring agent. The method can provision an instance of the data warehouse in relation to a tenant, the provisioned data warehouse instance having an initial size. Once the data warehouse instance is provisioned, the method can add an entry to a metrics repository of the monitoring agent, the added entry representing the provisioned data warehouse instance. The method further comprises: monitoring, by a monitoring agent, an amount of data stored in the provisioned data warehouse instance; [Brief description of the drawings]

[0013] [Figure 1] FIG. 1 illustrates a system for providing an analytical application environment according to an embodiment. [Diagram 2] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Diagram 3] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 4] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Diagram 5] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 6] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 7] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 8] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 9] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 10] FIG. 2 illustrates a flowchart of a method for providing an analytical application environment, according to an embodiment. [Figure 11] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 12] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 13] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 14] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 15]FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 16] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 17] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 18] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 19] FIG. 1 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. [Figure 20] 1 is a flowchart of a method for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Detailed Description As mentioned above, within an organization, data analytics allows you to draw conclusions from large amounts of data. Business intelligence tools enable computer-based examination or analysis of that data to derive business or other information, and provide an organization's business users with information that describes the enterprise data in a form that enables them to make strategic management decisions.

[0015] There is growing interest in developing software applications that leverage the use of data analytics in connection with an organization's enterprise software application / data environment (e.g., an Oracle Fusion Applications environment or other type of enterprise software application / data environment) or in connection with a Software-As-A-Service (SaaS) or cloud environment (e.g., an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment or other type of cloud environment).

[0016] According to an embodiment, the analytic application environment enables data analytics associated with an organization's enterprise software application / data environment, or Software-As-A-Service or other type of cloud environment, and supports the development of computer-executable software analytic applications.

[0017] According to an embodiment, a data pipeline / processing, e.g., extraction, transformation, and loading processes, may operate according to an analytical application schema adapted to address a particular analytical use case or best practice to receive data from a customer's (tenant's) enterprise software application / data environment for loading into the data warehouse instance.

[0018] According to an embodiment, each customer (tenant) can be further associated with a customer tenancy and a customer schema. The data pipeline / processing adds data received from the enterprise software applications / data environment to the data warehouse instance and database tables as defined by the combination of the analytic application schema and the customer schema.

[0019] According to embodiments, technical advantages of the described systems and methods include utilizing a system-wide application schema or data model or a shared analytical application schema or data model maintained in an analytical application environment (cloud) tenancy in conjunction with tenant-specific customer schemas maintained in a customer tenancy to automatically or periodically (e.g., hourly / daily / weekly or other basis) populate or map actual data (actual tables) received from an enterprise software application / data environment to each customer's (tenant's) data warehouse instance or database table to reflect best practices for a particular analytical use case. Such analytical use cases may include Enterprise Resource Planning (ERP), Human Capital Management (HCM), Customer Experience (CX), Supply Chain Management (SCM), Enterprise Performance Management (EPM), or other types of analytical use cases. The populated data warehouse instance or database tables may then be utilized to create computer executable software analytical applications or to determine data analytics or other information associated with the data.

[0020] According to an embodiment, a computer-executable software analytic application may be associated with a data pipeline / processing, such as an ETL (extract, transform, load) process or an ELT (extract, load, transform) process, maintained by a data integration component, such as an ODI (Oracle Data Integrator) environment or other type of data integration component.

[0021] According to an embodiment, the analysis application environment is, for example, ADW (Oracle The analytics application environment may operate with a data warehouse environment or component, such as Oracle Autonomous Data Warehouse (ADWC), Oracle Autonomous Data Warehouse Cloud (ADWC), or other types of data warehouse environments or components adapted to store large amounts of data. Data may be added to the data warehouse environment or component via, for example, a star schema sourced from an enterprise software application / data environment, such as Oracle Fusion Applications, or other types of enterprise software application / data environments. Data made available to each customer (tenant) of the analytics application environment may be provisioned, for example, in an ADWC tenancy. The ADWC tenancy is associated with and accessible only to that customer (tenant), while providing access to other features of the shared infrastructure.

[0022] For example, according to an embodiment, an analytical application environment may include a data pipeline / processing tier coupled to a shared data pipeline / processing infrastructure that provides a common transformation map or repository. The data pipeline / processing tier enables customers (tenants) to ingest data extracted from their Oracle Fusion Applications environments that is loaded into a data warehouse instance within the ADWC tenancy, and includes support for functionality such as multiple data warehouse schemas, data extract and target schemas, and monitoring of the data pipeline / processing stages.

[0023] Introduction According to an embodiment, a data warehouse environment or component, such as, for example, an Oracle Autonomous Data Warehouse (ADW), an Oracle Autonomous Data Warehouse Cloud (ADWC), or any other type of data warehouse environment or component adapted to store large amounts of data, can provide a central repository for storing data collected by one or more business applications.

[0024] For example, according to an embodiment, a data warehouse environment or component may be provided as a multi-dimensional database employing OLAP (Online Analytical Processing) or other techniques to generate business-related data from multiple disparate sources of data. An organization may extract such business-related data from one or more vertical and / or horizontal business applications and inject the extracted data into a data warehouse instance associated with the organization.

[0025] Horizontal business applications include ERP, HCM, CX, SCM, and EPM, as mentioned above, and can provide a wide range of functions across various corporate organizations.

[0026] Vertical applications are generally narrower in scope than horizontal applications, but provide access to a set of data up or down a defined area or industry. An application may include medical software for use within a particular organization, or banking software.

[0027] Software vendors are increasingly offering enterprise software products or components, such as Oracle Fusion Applications, as SaaS or cloud-oriented offerings, while other enterprise software products or components, such as Oracle ADWC, may be offered as one or more of SaaS, Platform-as-a-Service (PaaS), or hybrid subscriptions. Enterprise users of traditional business intelligence (BI) applications and processes are typically faced with the task of extracting data from horizontal and vertical line of business applications and putting the extracted data into a data warehouse, a process that can require both significant time and resources.

[0028] According to an embodiment, the analytical application environment enables a customer (tenant) to develop computer-executable software analytical applications for use with a BI component, such as, for example, an OBIA (Oracle Business Intelligence Applications) environment or other type of BI component adapted to examine large amounts of data obtained by the customer (tenant) itself or from multiple third-party entities.

[0029] For example, according to an embodiment, when used with a SaaS business productivity software product suite that includes a data warehouse component, the analytic application environment can be utilized to populate the data warehouse component with data from the business productivity software applications of the suite. Defined data integration flows can automate the ETL process of data between the business productivity software applications and the data warehouse, a process that may previously have been performed manually by users of the service.

[0030] As another example, according to embodiments, the analytical application environment can be pre-configured with a database schema for storing integrated data obtained across various business productivity software applications of the SaaS product suite. Such pre-configured database schema can be used to homogenize across the productivity software applications and corresponding transactional databases offered in the SaaS product suite while avoiding the user having to manually design, tune, and model the provided data warehouse.

[0031] As another example, according to an embodiment, the analytical application environment may be utilized to pre-populate the reporting interface of the data warehouse instance with associated metadata describing business-related data objects associated with various business productivity software applications, for example, to include pre-defined dashboards, key performance indicators (KPIs), or other types of reports.

[0032] Analytical Application Environment FIG. 1 is a diagram illustrating a system for providing an analysis application environment according to an embodiment.

[0033] As shown in FIG. 1, according to an embodiment, an analysis application environment 100 includes computer hardware (e.g., processor, memory) 101 and one or more software components operating as a control plane 102 and a data plane 104. The data warehouse 160 may be provided by or run on a computer system that includes the data warehouse components and provides access to the data warehouse or data warehouse instance 160.

[0034] According to an embodiment, the components and processes illustrated in FIG. 1 and further described with respect to various other embodiments may be provided as software or program code executable by a computer system or other type of processing device.

[0035] For example, according to an embodiment, the components and processes described herein may be provided by a cloud computing system, or other suitably programmed computer system.

[0036] According to an embodiment, the control plane operates to control cloud or other software products offered in connection with a SaaS or cloud environment, such as, for example, an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment, or any other type of cloud environment.

[0037] For example, according to an embodiment, under the control of a customer (tenant) 20 and / or a cloud environment having a provisioning component 111, the control plane may include a console interface 110 that allows access by a client computing device 10 having device hardware 12, management application 14, and user interface 16.

[0038] According to an embodiment, the console interface may allow access by customers (tenants) operating a graphical user interface (GUI) and / or a command line interface (CLI) or other interface, and / or may include an interface for use by a SaaS or cloud environment provider and its customers (tenants).

[0039] For example, according to an embodiment, the console interface may provide an interface that enables a customer to provision services for use within the customer's SaaS environment, and an interface that enables the customer to configure those provisioned services.

[0040] According to an embodiment, the provisioning component may include various functions for provisioning the service specified by the provisioning command.

[0041] For example, according to an embodiment, a customer (tenant) can access and utilize the provisioning component via a console interface to purchase one or more suites of business productivity software applications along with a data warehouse instance for use with those software applications.

[0042] According to an embodiment, a customer (tenant) can request provisioning of a customer schema 164 in the data warehouse. The customer can also provide a number of attributes associated with the data warehouse instance through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size or speed). The provisioning component then provisions the requested data warehouse instance including the customer schema of the data warehouse, and the customer can provision the requested data warehouse instance. The appropriate information to be provided may be added to the data warehouse instance.

[0043] Additionally, according to an embodiment, the provisioning component can be utilized to update or edit a data warehouse instance and / or ETL processes operating in the data plane, for example, by changing or updating the requested frequency of ETL process execution for a particular customer (tenant).

[0044] Also, according to an embodiment, the provisioning component, as further described below, may comprise a provisioning application programming interface (API) 112, a number of workers 115, a metering manager 116, and a data plane API 118. When a command, instruction, or other input is received at the console interface to provision a service or change the configuration of a provisioned service within the SaaS environment, the console interface may communicate with the provisioning API, for example, by making an API call.

[0045] According to an embodiment, the data plane API can communicate with the data plane. For example, according to an embodiment, provisioning and configuration changes for services provided by the data plane may be communicated to the data plane via a data plane API.

[0046] According to an embodiment, the metering manager may include various functions for metering services and usage of services provisioned through the control plane.

[0047] For example, according to an embodiment, the metering manager can record the usage of processors provisioned via the control plane over time for a particular customer (tenant) for billing purposes. Similarly, the metering manager can record the amount of data warehouse storage space partitioned for use by a customer of a SaaS environment for billing purposes.

[0048] According to an embodiment, the data plane may include a data pipeline / processing layer 120 and a data transformation layer 134. Together, the data pipeline / processing layer 120 and the data transformation layer 134 process operational or transactional data from an organization's enterprise software application / data environment, such as, for example, business productivity software applications provisioned in a customer's (tenant's) SaaS environment. The data pipeline / processing may include various functions to extract transactional data from business applications and databases provisioned in the SaaS environment and then load the transformed data into a data warehouse.

[0049] According to an embodiment, the data transformation layer may include data models, such as knowledge models (KMs) or other types of data models, that the system utilizes to transform transactional data received from business applications and corresponding transactional databases provisioned in the SaaS environment into a model format understood by the analytical application environment. The model format may be provided in any data format suitable for storage in a data warehouse.

[0050] According to an embodiment, the data pipeline / processing provided by the data plane may comprise a monitoring component 122, a data staging component 124, a data quality component 126, and a data projection component 128, as further described below.

[0051] According to an embodiment, the data transformation layer may include a dimension creation component 136, a fact creation component 138, and an aggregate creation component 140, as described further below. The data plane may also include a data / configuration user interface 130 and a mapping / configuration database 132.

[0052] According to an embodiment, the data warehouse may include a default analysis application schema (referred to herein, in accordance with some embodiments, as an analysis warehouse schema) 162 and customer schemas, as described above, for each customer (tenant) of the system.

[0053] According to an embodiment, the data plane is responsible for performing ETL (extract, transform, load) operations that include extracting transactional data from an organization's enterprise software application / data environment, such as business productivity software applications and corresponding transactional databases provided in a SaaS environment, transforming the extracted data into a model format, and loading the transformed data into customer schemas in a data warehouse.

[0054] For example, according to an embodiment, each customer (tenant) of the environment may be associated with its own customer tenancy in the data warehouse. The customer tenancy may be associated with its own customer schema and may additionally be provided with read-only access to an analytical application schema. The analytical application schema may be updated periodically or on other basis by a data pipeline / processing, e.g., an ETL process.

[0055] According to an embodiment, to support multiple tenants, the system may enable the use of multiple data warehouses or multiple data warehouse instances.

[0056] For example, according to an embodiment, a first warehouse customer tenancy of a first tenant may be comprised of a first database instance, a first staging area, and a first data warehouse instance of the multiple data warehouses or multiple data warehouse instances, and a second customer tenancy of a second tenant may be comprised of a second database instance, a second staging area, and a second data warehouse instance of the multiple data warehouses or multiple data warehouse instances.

[0057] According to an embodiment, the data pipeline / processing can be scheduled to extract transactional data at regular intervals (e.g., hourly / daily / weekly) from an enterprise software application / data environment, such as, for example, a business productivity software application and corresponding transaction database 106 provisioned in a SaaS environment.

[0058] According to an embodiment, an extraction process 108 can extract the transactional data, which can then be inserted into a data staging area by a data pipeline / processing. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data.

[0059] For example, according to an embodiment, the data quality component can perform validation of the extracted data while it is temporarily held in the data staging area.

[0060] According to an embodiment, once the extraction process has completed the extraction, a data transformation layer can begin a transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0061] As described above, according to an embodiment, the data pipeline / processing can work in conjunction with a data transformation layer to transform data into a model format. A mapping / configuration database can store metadata and data mappings that define the data models used by the data transformation. A data / configuration user interface (UI) can facilitate access to and modification of the mapping / configuration database.

[0062] According to an embodiment, based on the data model defined in the mapping / configuration database, the monitoring component can determine dependencies of the different data sets to be converted. Based on the determined dependencies, the monitoring component can determine which of the different data sets should be converted to the model format first.

[0063] For example, according to an embodiment, if a first model dataset has no dependencies on other model datasets, and a second model dataset has a dependency on the first model dataset, the monitoring component can transform the first dataset before the second dataset to accommodate the dependency of the second dataset on the first dataset.

[0064] According to an embodiment, the data transformation layer can transform the extracted data into a format suitable for loading into a data warehouse customer schema, for example according to a data model as described above. During transformation, the data transformation can create dimensions, create facts, and create aggregates as appropriate. Creating dimensions can include creating dimensions or fields for loading into the data warehouse instance.

[0065] For example, according to an embodiment, a dimension may include a number of categories of data, such as, for example, "Name," "Address," or "Age." Creating a fact involves creating values ​​that data can take on or that can be "measured." Facts are mapped to appropriate dimensions in the data warehouse instance. Creating an aggregate involves creating a data mapping that computes an aggregation of transformed data to existing data in the customer schema 164 of the data warehouse instance.

[0066] According to an embodiment, once the transformations have been performed (as defined by the data model), a data pipeline / processing can read the source data, apply the transformations, and send this data to a data warehouse instance.

[0067] According to an embodiment, data transformations can be expressed as rules and values ​​can be persisted in a staging area as soon as the transformations are performed. In the staging area, data quality and data projection components can validate the integrity of the transformed data before it is uploaded to a customer schema in a data warehouse instance. Monitoring can occur as the extract, transform, load process is executed, for example, on multiple compute instances or multiple virtual machines. Also, dependencies can be persisted during the extract, transform, load process and the data pipeline / processing can handle such ordering decisions.

[0068] According to an embodiment, after the transformation of the extracted data, the data pipeline / processing is A load procedure 150 can be executed to load the transformed data into a customer schema instance of the data warehouse. Following loading the transformed data into the customer schema, the transformed data can be analyzed and utilized in a variety of additional business intelligence processes.

[0069] Horizontally and vertically integrated business software applications are generally targeted at collecting data in real time, since horizontally and vertically integrated business software applications are generally utilized for daily workflow and store data in transactional databases, i.e., typically only the most recent data is stored in such databases.

[0070] For example, an HCM application may update records associated with an employee if the employee moves locations, but such HCM applications typically do not maintain records of each location that the employee has worked at during their tenure with the company. Thus, BI-related queries that attempt to determine employee movements within the company do not have sufficient records in the transactional database to complete such queries.

[0071] According to an embodiment, by storing historical data in addition to current data generated by horizontally and vertically integrated business software applications in a context that is easily understood by a BI application, a data warehouse instance populated using the above techniques provides resources for the BI application to process such queries, for example, utilizing an interface provided by a business productivity / analytics product suite or by a customer's chosen SQL tool.

[0072] Data Pipeline Process FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0073] 2, according to an embodiment, the data pipeline process described above can be utilized to obtain data, for example, from a customer's (tenant's) enterprise software application / data environment (106) and, in the case of custom data 109, from one or more customer-specific applications 107, and loaded into a data warehouse instance. In some examples, the data warehouse instance includes the use of object storage 105 to store the data.

[0074] According to an embodiment, the data pipeline / processing maintains an analytical application schema, e.g., as a star schema, for each customer (tenant), which is updated by the system periodically or on other basis according to best practices for a particular analytical use case, e.g., Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0075] According to an embodiment, for each customer (tenant), the system utilizes an analytical application schema that the system maintains and updates in an analytical application environment (cloud) tenancy 114 to pre-populate the customer's data warehouse instance based on an analysis of data in that customer's enterprise application environment and in the customer tenancy 117. In this manner, the analytical application schema maintained by the system enables data pipelines / processing to retrieve data "live" from customer environments and load it into customer data warehouse instances.

[0076] Also, according to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema that the customer can easily modify. The customer schema allows the customer to supplement and utilize the data in the data warehouse instance. For each customer of the analytic application environment, the resulting data warehouse instance acts as a database. The contents of this database are partly controlled by the customer and partly controlled by the analytic application environment (system), including cases where the database is pre-populated with appropriate data retrieved from the enterprise application environment to address various analytic use cases, such as HCM analytics or ERP analytics.

[0077] For example, according to an embodiment, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include analytical application schemas and customer schemas sourced from the enterprise software application / data environment for each customer / tenant. Data provisioned in the data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of the shared analytical application environment.

[0078] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0079] According to an embodiment, for each particular customer / tenant, once that data has been extracted, a data pipeline / processing can insert the extracted data into a data staging area for the tenant. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area. Once the extraction process has completed the extraction, a data transformation layer can be used to initiate a transformation process to change the extracted data into a model format for loading into the customer schema in the data warehouse.

[0080] Extract, Transform, Load / Publish FIG. 3 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0081] As shown in FIG. 3 , in accordance with an embodiment, utilizing the data pipeline process described above to, for example, extract data from a customer's (tenant's) enterprise software application / data environment, or in the case of custom data, source that data from one or more customer-specific applications, and load or refresh this data in a data warehouse instance generally involves three broad stages performed by ETP services 160 or processes including one or more of an extract service 163, a transform service 165, and a load / publish service 167 performed by one or more compute instance(s) 170.

[0082] Extraction: According to an embodiment, a list of view objects to extract can be submitted to an OracleBICC (Oracle BI Cloud Connector) component, for example by a ReST call. The extracted files can be uploaded to an object storage component for storing data, such as an OSS (Oracle Storage Service) component.

[0083] Transformation: According to an embodiment, the transformation process takes data files from an object storage component (e.g., OSS) and applies business logic while loading the data files into a target data warehouse, such as an ADWC database. The target data warehouse exists inside the data pipeline / processing and is invisible to the customer (tenant).

[0084] Load / Publish: According to an embodiment, a load / publish service or process takes data from, for example, an ADWC database or warehouse and publishes it to a data warehouse instance accessible to customers (tenants).

[0085] Multiple customers (tenants) FIG. 4 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0086] As shown in FIG. 4, which illustrates operation of an embodiment of a system with multiple tenants (customers), the data pipeline process described above can be used to obtain data from, for example, each of multiple customer (tenant) enterprise software application / data environments and load it into a data warehouse instance.

[0087] According to an embodiment, the data pipeline / processing maintains an analytical application schema for each of multiple customers (tenants), e.g., Customer A 180, Customer B 182, that the system updates periodically or on other basis according to best practices for the particular analytics use case.

[0088] According to an embodiment, for each of a number of customers (e.g., Customer A, B), the system utilizes analytical application schemas 162A, 162B maintained and updated by the system to pre-populate the customer's data warehouse instance so that a data pipeline / processing can retrieve data from the customer's environment and load it into the customer's data warehouse instance 160A, 160B based on analysis of data in that customer's enterprise application environment 106A, 106B and in each customer's tenancy (e.g., Customer A tenancy 181, Customer B tenancy 183).

[0089] According to an embodiment, the analytic application environment also provides a customer schema (e.g., customer A schema 164A, customer B schema 164B) for each of multiple customers of the environment, which enables the customers to supplement and utilize the data in their data warehouse instance.

[0090] As described above, according to an embodiment, for each of multiple customers of the analytical application environment, the resulting data warehouse instance acts as a database. The contents of this database are partly controlled by the customer and partly controlled by the analytical application environment (system), including the possibility of pre-populating the database with appropriate data retrieved from the enterprise application environment to address various analytical use cases. Extraction processes for a particular customer are then generated. Once processes 108A, 108B are completed, a transformation process can begin using a data transformation layer to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0091] Activation Plan FIG. 5 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0092] According to an embodiment, activation plans 186 may be utilized to control the operation of a customer's data pipeline / processing services for a particular functional area to address that customer's (tenant's) specific needs.

[0093] For example, according to an embodiment, an activation plan may specify multiple extract services / steps, transform services / steps, and store (publish) services / steps to be executed in a particular order, at a particular time, and within a particular time period.

[0094] According to an embodiment, each customer may be associated with its own activation plan(s). For example, a first customer A's activation plan may determine which tables to retrieve from that customer's enterprise software application environment (e.g., a Fusion Applications environment) or determine how services and their processes are sequenced, and a second customer B's activation plan may similarly determine which tables to retrieve from that customer's enterprise software application environment or determine how services and their processes are sequenced.

[0095] According to an embodiment, activation plans can be stored in a mapping / configuration database and can be customized by customers via a data / configuration UI. Each customer can have multiple activation plans. Compute instances / services (virtual machines) running ETL processes for various customers can be dedicated to a specific service to use the activation plan according to the activation plan and then released for use by other services and activation plans.

[0096] According to an embodiment, based on determining historical performance data recorded over a period of time, the system can optimize the execution of, for example, an activation plan for one or more functional areas associated with a particular tenant, or an entire set of activation plans associated with multiple tenants, to address the utilization of VMs and Service Level Agreements (SLAs) for those tenants. Such historical data can include load volume and load time statistics.

[0097] For example, according to an embodiment, the historical data may include extract size, number of extracts, extract time, warehouse size, conversion time, publish (load) time, view object extract size, number of view object extract records, view object extract time, number of warehouse tables, number of processed records for a table, warehouse table conversion time, number of publish tables, and publish time. Such historical data may be utilized to forecast and plan current and future activation plans, for example, to orchestrate various tasks to be executed sequentially or in parallel to achieve minimum time execution of an activation plan. In addition, the collected historical data may be utilized to optimize the overall activation plans of a tenant. In some embodiments, the activation plan (i.e., Optimization of jobs (i.e. jobs that run in a specific order, such as ETL) can be done automatically.

[0098] ETL process flow FIG. 6 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0099] 6, according to an embodiment, the system enables the flow of data from each customer's enterprise software application environment (e.g., Fusion Applications environment) controlled by a data configuration / management / ETL / status service 190 in a (e.g., Oracle) management tenancy. In this example, the data flow includes data flow through a BICC component, a storage cloud service 192, e.g., an OSS, and from there to a data warehouse instance.

[0100] As discussed above, according to an embodiment, the flow of data may be managed by one or more services (e.g., including the extraction services discussed above, transformation services, as described in ETL repository 193) that take data from the storage cloud services and load it into an internal target data warehouse (e.g., ADWC database) 194. The target data warehouse is internal to the data pipeline / processing and is invisible to the customer.

[0101] According to an embodiment, data is moved in multiple stages to the data warehouse and then to database table change log 195. A load / publish service can load customer data from database table change log 195 into a target data warehouse instance in the customer tenancy that is associated with and accessible to the customer.

[0102] ETL Stages FIG. 7 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0103] According to an embodiment, extracting data from enterprise applications, transforming it, and loading it into a data warehouse instance involves multiple stages, each of which may have several sequential or parallel jobs, running on different space / hardware, including different staging areas 196, 198 for each customer.

[0104] Analyze Application Environment Metrics FIG. 8 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0105] As shown in FIG. 8, according to an embodiment, the metering manager may provide provisioned metrics 142 including functionality for metering services and usage of services provisioned through the control plane.

[0106] For example, a metering manager can record the usage of processors provisioned through the control plane over time for a particular customer (tenant) for billing purposes. Similarly, a metering manager can record the amount of data warehouse storage space partitioned for use by a customer of a SaaS environment for billing purposes.

[0107] Customizing your analytical application environment FIG. 9 further illustrates a system for providing an analytical application environment, according to an embodiment.

[0108] 9, according to an embodiment, in addition to data available from the customer's enterprise software applications / data environment using, for example, the data pipeline process described above, one or more additional custom data 109A, 109B available from one or more customer specific applications 107A, 107B may be extracted, transformed, and loaded into the data warehouse instance using either a data pipeline process as described above, including in some examples using object storage for storing the data, and / or a custom ETL process 144 or other process that may be modified from a customer perspective. Once the data is loaded into the data warehouse instance, the customer may create business database views that combine tables from both the customer schema and the software analytic application schema, and may query the data warehouse instance using, for example, an interface provided by the business productivity / analytics product suite or by the customer's SQL tool of choice.

[0109] Analytical Application Environment Methodology FIG. 10 illustrates a flow diagram of a method for providing an analytical application environment, according to an embodiment.

[0110] As shown in Figure 10, according to an embodiment, the analytical application environment provides access to a data warehouse for storing data by multiple tenants at step 200. The data warehouse is associated with an analytical application schema.

[0111] In step 202, each tenant of the multiple tenants is associated with a customer tenancy and a customer schema that the tenant will use when adding data to the data warehouse instance.

[0112] At step 204, the data warehouse instance is populated with the data received from the enterprise software application / data environment. Data associated with a particular tenant in the analytic application environment is provisioned in the data warehouse instance accessible to the particular tenant according to the analytic application schema and customer schema associated with the particular tenant.

[0113] Hybrid SaaS / PaaS model According to an embodiment, the control plane may operate to control cloud products offered within the SaaS environment. For example, the console interface may provide an interface that allows a customer to provision services for use within the customer's SaaS environment, and an interface that allows the customer to configure those provisioned services. The provisioning component may include functionality for provisioning the services specified in the provisioning command. For example, a customer (tenant) may access and utilize the provisioning component via the console interface to purchase one of a suite of applications along with a data warehouse instance.

[0114] FIG. 11 illustrates a system for utilization and allocation of SaaS / PaaS resources in an analytical application environment according to an embodiment.

[0115] As shown in FIG. 11, the control plane 1102 may include, for example, a console interface 1110 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1111.

[0116] According to an embodiment, for example, a customer may request provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0117] According to an embodiment, for example, this provisioning can be further utilized to provision seats and compute units available to a customer, for example, based on an order, which may represent, for example, part of a SaaS component.

[0118] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0119] 11, the data plane 1104 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1120 and a data transformation layer 1134. The data pipeline 1120 and the data transformation layer 1134 may be integrated with a customer enterprise application or transactional database environment, such as Oracle They work together to extract 1108a, process, and load operational or transactional data from the Fusion Applications environment into a data warehouse instance 1150. The data plane may also include a data / configuration user interface 1130 and a mapping / configuration database 1132.

[0120] According to an embodiment, as noted above, such systems and methods can support multiple tenants, although the embodiment depicted in Figure 11 shows only one tenant, namely, Customer A, represented by 1106a, and only one tenant is shown for the sake of clarity of the drawing.

[0121] According to an embodiment, the data pipeline maintains an analytical application schema 1162, for example as a star schema, for each customer / tenant (e.g., Customer A associated with Customer A application / transaction database 1106a). The analytical application schema 1162 is updated by the system periodically (e.g., hourly / daily / weekly) according to best practices for a particular analytical use case, such as, for example, Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0122] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to transform transactional data received from enterprise or business applications into a model format for loading into the data warehouse.

[0123] According to an embodiment, for each customer, the system pre-populates the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1106a, using an analytical application schema that the system maintains and updates.

[0124] Thus, according to an embodiment, the system maintains an analytical application schema that allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1160a, without otherwise making that data available to the customer in a read-only manner and without the customer being able to make any direct changes to it.

[0125] According to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema, such as 1164a, whose contents can be easily modified by the customer to allow the customer to supplement or utilize the data in the data warehouse instance.

[0126] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0127] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytic application schema (analytic warehouse schema) and may include customer schemas for each customer / tenant sourced from enterprise application components. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of a shared analytic application environment.

[0128] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0129] According to an embodiment, for each particular customer / tenant, once that data is extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area.

[0130] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0131] Using the provisioning component, a customer can request provisioning of a customer schema 1164 in a data warehouse. The customer can also provide multiple attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., customer schema of the data warehouse) and populate the warehouse with the necessary customer-provided information.

[0132] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0133] According to an embodiment, a monitoring agent 1180 may be provided (e.g., in the data warehouse or in the control plane) associated with data warehouse instance 1160a. An additional such monitoring agent 1183 may be provided in the control plane. (Although shown in the figure as two separate components, according to an embodiment, monitoring agents 1180 and 1183 may be one entity, with the communication lines between 1180 and 1183 indicating the nature of the SaaS-PaaS relationship.)

[0134] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with the tenants / customers. The monitoring agents 1180, 1183 may be responsible for monitoring (1182 / 1185) (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer / tenant's computing device usage for use in analytics), for example, by monitoring resources tagged by each tenant in the system. This may include, for example, monitoring and metering the customer's computing device usage in relation to provisioned metrics, or metering the number of seats in use by the customer in relation to provisioned metrics.

[0135] According to an embodiment, the monitoring agent can utilize the provisioned metrics 1181 / 1184 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) in monitoring and tracking resource utilization by tenants, which can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged as associated with each tenant, the monitoring agent can identify resource usage per tenant by tracking the tagged resources (each resource allocated to a tenant is tagged to identify it as belonging to and allocated to that tenant). In addition, the monitoring agent can provide notifications / instructions 1186 to the provisioning component 1111, or other backend systems, indicating that a tenant has exceeded its provisioned resources or that a given tenant should be provided with additional resources (e.g., computing devices) for a set amount of time based on the monitored metrics associated with the tenant. Similarly, the monitoring agent 1180 / 1183 can provide instructions 1188 indicating that too many resources (more than provisioned) are being allocated to a customer / tenant and are not being utilized. In these cases, the provisioning component can then, for example, Such resources can be reclaimed in order to eliminate and / or provision such resources to a different tenant / customer.

[0136] According to an embodiment, for example, 20 seats and 4 computing devices may be provisioned to a tenant. During periods of high utilization, the monitoring agent may detect that the tenant is utilizing more than the provisioned components via tags associated with the tenant. In such a case, the monitoring agent may detect that the tenant is utilizing more than, for example, 4 computing devices and may provide provisioning of additional computing resources accordingly. Based on such provisioning, the monitoring agent may also notify such utilization.

[0137] FIG. 12 illustrates a system for utilization and allocation of SaaS / PaaS resources in an analytical application environment according to an embodiment.

[0138] More specifically, FIG. 12 illustrates a system for SaaS / PaaS resource utilization and allocation in situations where storage / data warehouse resources are scarce, according to an embodiment.

[0139] As shown in FIG. 12, the control plane 1202 may include, for example, a console interface 1210 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1211.

[0140] According to an embodiment, for example, a customer may request provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0141] According to an embodiment, for example, this provisioning can be further utilized to provision seats and compute units available to the provisioning customer, for example, based on an order, which can represent, for example, part of a SaaS component.

[0142] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0143] 12, the data plane 1204 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1220 and a data transformation layer 1234. The data pipeline 1220 and the data transformation layer 1234 may be integrated with a customer enterprise application or transactional database environment, such as Oracle They work together to extract 1208a, process, and load 1250 operational or transactional data from the Fusion Applications environment into a data warehouse instance. The data plane may also include a data / configuration user interface 1230 and a mapping / configuration database 1232.

[0144] According to an embodiment, the embodiment shown in FIG. 12 shows only one tenant, namely, Customer A, represented by 1206a, but as described above, such a system and The method and apparatus can support multiple tenants. Only one tenant is shown for clarity of illustration.

[0145] According to an embodiment, the data pipeline maintains an analytical application schema 1262, for example as a star schema, for each customer / tenant (e.g., Customer A associated with Customer A application / transaction database 1206a). The analytical application schema 1262 is updated by the system periodically (e.g., hourly / daily / weekly) according to best practices for a particular analytical use case, such as, for example, Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0146] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to load transactional data received from enterprise or business applications into a model format for storage in the data warehouse.

[0147] According to an embodiment, for each customer, the system pre-populates the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1206a, using an analytical application schema that the system maintains and updates.

[0148] Thus, according to an embodiment, the system maintains an analytical application schema that allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1260a, without otherwise making that data available to the customer in a read-only manner and without the customer being able to make any direct changes to it.

[0149] According to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema, such as 1264a, whose contents can be easily modified by the customer, allowing the customer to supplement or utilize the data in their data warehouse instance.

[0150] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0151] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytic application schema (analytic warehouse schema) and may include customer schemas for each customer / tenant sourced from enterprise application components. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of a shared analytic application environment.

[0152] According to an embodiment, to support multiple customers / tenants, the system For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0153] According to an embodiment, for each particular customer / tenant, once that data is extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area.

[0154] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0155] Using the provisioning component, a customer can request provisioning of a customer schema 1264 in a data warehouse. The customer can also provide a number of attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., customer schema of the data warehouse) and populate the warehouse with the necessary customer-provided information.

[0156] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0157] According to an embodiment, a monitoring agent 1280 may be provided (e.g., in the data warehouse or in the control plane) associated with data warehouse instance 1260a. An additional such monitoring agent 1283 may be provided in the control plane. (Although shown in the figure as two separate components, according to an embodiment, monitoring agents 1280 and 1283 may be one entity, with the communication lines between 1280 and 1283 indicating the nature of the SaaS to PaaS relationship.)

[0158] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with the tenants / customers. The monitoring agents 1280, 1283 may be responsible for monitoring (1282 / 1285) (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer / tenant's computing device usage for use in analytics), for example, by monitoring resources tagged by each tenant in the system. This may include, for example, monitoring and metering the customer's computing device usage in relation to provisioned metrics or metering the number of seats in use by the customer in relation to provisioned metrics.

[0159] According to an embodiment, the monitoring agent monitors and manages resource utilization by tenants. In tracking, provisioned metrics 1281 / 1284 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) can be utilized to improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged as associated with each tenant, by tracking the tagged resources (each resource allocated to a tenant is tagged to identify it as belonging to and allocated to that tenant), the monitoring agent can identify resource usage per tenant. In addition, the monitoring agent can provide notifications / instructions 1286 to the provisioning component 1211, or other backend systems, indicating that a tenant has exceeded its provisioned resources or that a given tenant should be provided with additional resources (e.g., computing devices) for a set amount of time due to the monitored metrics associated with the tenant. Similarly, the monitoring agent 1280 / 1283 can provide instructions 1288 indicating that too many resources (more than provisioned) are being allocated to a customer / tenant and are not being utilized. In these cases, the provisioning component can then reclaim such resources, for example, to streamline utilization and / or provision such resources to a different tenant / customer.

[0160] According to an embodiment, as shown in the embodiment of FIG. 12, the monitoring agent 1280 may detect 1282 that a customer / tenant's data warehouse instance is not providing sufficient resources to the associated customer / tenant. This may be, for example, during a period of onboarding large amounts of data when the current size of the provisioned data warehouse instance is not sufficient for onboarding the new data (ETL process). In such an embodiment, the monitoring agent may then communicate 1287 the overprovisioning and relay instructions 1286 to the provisioning component 1211 to allocate / provision 1288 additional resources (in the illustrated example, additional storage space) to the customer instance of the data warehouse in order to seamlessly meet the client's current demands without administrative effort.

[0161] FIG. 13 illustrates a system for utilization and allocation of SaaS / PaaS resources in an analytical application environment according to an embodiment.

[0162] More specifically, FIG. 13 illustrates a system for SaaS / PaaS resource utilization and allocation in situations where storage / data warehouse resources are not being utilized effectively by tenants / customers, according to an embodiment.

[0163] As shown in FIG. 13, the control plane 1302 may include, for example, a console interface 1310 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1311.

[0164] According to an embodiment, for example, a customer may request provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0165] According to an embodiment, for example, this provisioning may be further utilized to provision a number of seats and a number of computing devices (e.g., based on an order) available to the provisioning customer. A compute unit (LU) may be provisioned, which may represent, for example, a portion of a SaaS component.

[0166] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0167] 13, the data plane 1304 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1320 and a data transformation layer 1334. The data pipeline 1320 and the data transformation layer 1334 may be integrated with a customer enterprise application or transactional database environment, e.g., Oracle They work together to extract 1308a, process, and load 1350 operational or transactional data from the Fusion Applications environment into the data warehouse instance. The data plane may also include a data / configuration user interface 1330 and a mapping / configuration database 1332.

[0168] According to an embodiment, as noted above, such systems and methods can support multiple tenants, although the embodiment depicted in Figure 13 shows only one tenant, namely, Customer A, represented by 1306a, and only one tenant is shown for the sake of clarity of the drawing.

[0169] According to an embodiment, the data pipeline maintains an analytical application schema 1362, for example as a star schema, for each customer / tenant (e.g., Customer A associated with Customer A application / transaction database 1306a). The analytical application schema 1362 is updated by the system periodically (e.g., hourly / daily / weekly) according to best practices for a particular analytical use case, such as, for example, Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0170] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to transform transactional data received from enterprise or business applications into a model format for loading into the data warehouse.

[0171] According to an embodiment, for each customer, the system pre-populates the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1306a, using an analytical application schema that the system maintains and updates.

[0172] Thus, according to an embodiment, the system maintains an analytical application schema that allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1360a, without otherwise making that data available to the customer in a read-only manner and without the customer being able to make any direct changes to it.

[0173] According to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema, such as 1364a, whose contents can be easily modified by the customer to allow the customer to supplement or utilize the data in the data warehouse instance.

[0174] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0175] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytic application schema (analytic warehouse schema) and may include customer schemas for each customer / tenant sourced from enterprise application components. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of a shared analytic application environment.

[0176] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0177] According to an embodiment, for each particular customer / tenant, once that data is extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area.

[0178] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0179] Using the provisioning component, a customer can request provisioning of a customer schema 1364 in a data warehouse. The customer can also provide a number of attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., customer schema of the data warehouse) and populate the warehouse with the necessary customer-provided information.

[0180] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0181] According to an embodiment, a monitoring agent 1380 may be provided (e.g., in the data warehouse or in the control plane) associated with data warehouse instance 1360a. An additional such monitoring agent 1383 may be provided in the control plane (according to an embodiment, shown as two separate components in the figure). Although shown as components, monitoring agents 1380 and 1383 may be a single entity, with the communication lines between 1380 and 1383 indicating the nature of the SaaS-PaaS relationship.

[0182] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with a tenant / customer. The monitoring agents 1380, 1383 may be responsible for monitoring (1382 / 1385) (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer / tenant's computing device usage for use in analytics), for example, by monitoring resources tagged by each tenant in the system. This may include, for example, monitoring and metering the customer's computing device usage in relation to provisioned metrics or metering the number of seats in use by the customer in relation to provisioned metrics.

[0183] According to an embodiment, the monitoring agent can utilize the provisioned metrics 1381 / 1384 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) in monitoring and tracking resource utilization by tenants, which can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged as associated with each tenant, the monitoring agent can identify resource usage per tenant by tracking the tagged resources (each resource allocated to a tenant is tagged to identify it as belonging to and allocated to that tenant). In addition, the monitoring agent can provide notifications / instructions 1386 to the provisioning component 1311, or other backend systems, indicating that a tenant has exceeded its provisioned resources or that a given tenant should be provided with additional resources (e.g., computing devices) for a set amount of time based on the monitored metrics associated with the tenant. Similarly, the monitoring agent 1380 / 1383 can provide instructions 1388 indicating that too many resources (more than provisioned) are being allocated to a customer / tenant and are not being utilized. In these cases, the provisioning component can then reclaim such resources, for example, to streamline utilization and / or provision such resources to a different tenant / customer.

[0184] According to an embodiment, as shown in the embodiment of FIG. 13, a monitoring agent 1380 may detect (1382) that a customer / tenant's data warehouse instance is providing more than enough resources and the utilization of the resources provided to the customer / tenant is above current demand. This may be, for example, during normal operation when the tenant / customer's data warehouse instance (e.g., 1364a) is allocated excess storage space. In such an embodiment, the monitoring agent may then communicate 1387 the underutilization and instructions 1386 may be relayed to the provisioning component 1311. Then, according to some embodiments, the provisioning component may deallocate the resources (e.g., storage size) to the customer / tenant and reallocate them elsewhere or set them aside for reallocation to the customer / tenant if they are needed again, in order to seamlessly meet the client's current demands without administrative effort.

[0185] FIG. 14 illustrates a system for utilization and allocation of SaaS / PaaS resources in an analytical application environment according to an embodiment.

[0186] More specifically, FIG. 14 illustrates a system for SaaS / PaaS resource utilization and allocation in situations where storage / data warehouse resources are not being utilized effectively by tenants / customers, according to an embodiment.

[0187] As shown in FIG. 14, the control plane 1402 may include, for example, a console interface 1410 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1411.

[0188] According to an embodiment, for example, a customer may request provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0189] According to an embodiment, for example, this provisioning can be further utilized to provision seats and compute units available to the provisioning customer, for example, based on an order, which can represent, for example, part of a SaaS component.

[0190] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0191] 14, the data plane 1404 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1420 and a data transformation layer 1434. The data pipeline 1420 and the data transformation layer 1434 may be integrated with a customer enterprise application or transactional database environment, such as Oracle They work together to extract 1408a, process, and load 1450 operational or transactional data from the Fusion Applications environment into the data warehouse instance. The data plane may also include a data / configuration user interface 1430 and a mapping / configuration database 1432.

[0192] According to an embodiment, although the embodiment shown in Figure 14 shows only one tenant, namely Customer A, represented by 1406a, as discussed above, such a system and method may support multiple tenants. Only one tenant is shown for the sake of clarity of the drawing.

[0193] According to an embodiment, the data pipeline maintains an analytical application schema 1462, for example as a star schema, for each customer / tenant (e.g., Customer A associated with Customer A application / transaction database 1406a). The analytical application schema 1462 is updated by the system periodically (e.g., hourly / daily / weekly) according to best practices for a particular analytical use case, such as, for example, Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0194] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to transform transactional data received from enterprise or business applications into a model format for loading into the data warehouse.

[0195] According to an embodiment, for each customer, the system pre-populates the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1406a, using an analytical application schema that the system maintains and updates.

[0196] Thus, according to an embodiment, the system maintains an analytical application schema that allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1460a, without otherwise making that data available to the customer in a read-only manner and without the customer being able to make any direct changes to it.

[0197] According to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema, such as 1464a, whose contents can be easily modified by the customer to allow the customer to supplement or utilize the data in the data warehouse instance.

[0198] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0199] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytic application schema (analytic warehouse schema) and may include customer schemas for each customer / tenant sourced from enterprise application components. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of a shared analytic application environment.

[0200] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0201] According to an embodiment, for each particular customer / tenant, once that data is extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area.

[0202] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0203] Using the provisioning component, a customer can request provisioning of a customer schema 1464 in a data warehouse. The customer can also provide a number of attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., customer schema of the data warehouse) and populate the warehouse with the necessary customer-provided information.

[0204] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0205] According to an embodiment, a monitoring agent 1480 may be provided (e.g., in the data warehouse or in the control plane) associated with data warehouse instance 1460a. An additional such monitoring agent 1483 may be provided in the control plane. (Although shown in the figure as two separate components, according to an embodiment, monitoring agents 1480 and 1483 may be one entity, with the communication lines between 1480 and 1483 indicating the nature of the SaaS to PaaS relationship.)

[0206] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with the tenants / customers. The monitoring agents 1480, 1483 may be responsible for monitoring (1482 / 1485) (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer / tenant's computing device usage for use in analytics), for example, by monitoring resources tagged by each tenant in the system. This may include, for example, monitoring and metering the customer's computing device usage in relation to provisioned metrics, or metering the number of seats in use by the customer in relation to provisioned metrics.

[0207] According to an embodiment, the monitoring agent can utilize the provisioned metrics 1481 / 1484 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) in monitoring and tracking resource utilization by tenants. This can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged as being associated with each tenant, the monitoring agent can identify resource usage per tenant by tracking the tagged resources (each resource allocated to a tenant is tagged to identify it as belonging to and allocated to that tenant). In addition, the monitoring agent can provide notifications / instructions 1486 to the provisioning component 141 indicating that a tenant has exceeded its provisioned resources or indicating that a given tenant should be provided with additional resources (e.g., computing devices) for a set period of time based on the monitored metrics associated with the tenant. 1, or other backend system. Similarly, the monitoring agent 1480 / 1483 can provide instructions 1488 indicating that too many resources allocated to a customer / tenant are being underutilized (more than was provisioned). In these and other cases, the provisioning component can then reclaim such resources, for example, to streamline utilization and / or provision such resources to a different tenant / customer.

[0208] According to an embodiment, as shown in the embodiment of FIG. 14, the monitoring agent 1483 may detect that the resources (e.g., computing devices, seats, etc.) provisioned to a customer / tenant in a console interface are fully utilized and that the customer / tenant is requesting an over-provisioning of such resources (1485). This may be the case, for example, when the customer / tenant is running intensive analytics at scale, e.g., running analytics on hundreds of gigabytes of data that requires more computing devices than were originally provisioned for the customer / tenant (e.g., 1464a). In such an embodiment, an instruction 1486 may be relayed to the provisioning component 1411. The provisioning component may then allocate additional computing resources (or seats) to the customer / tenant in order to seamlessly meet the client's current demands without administrative effort, according to some embodiments.

[0209] FIG. 15 illustrates a system for utilization and allocation of SaaS / PaaS resources in an analytical application environment according to an embodiment.

[0210] More specifically, FIG. 15 illustrates a system for SaaS / PaaS resource utilization and allocation in situations where storage / data warehouse resources are not being utilized effectively by tenants / customers, according to an embodiment.

[0211] As shown in FIG. 15, the control plane 1502 may include, for example, a console interface 1510 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1511.

[0212] According to an embodiment, for example, a customer may request provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0213] According to an embodiment, for example, this provisioning can be further utilized to provision seats and compute units available to the provisioning customer, for example, based on an order, which can represent, for example, part of a SaaS component.

[0214] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0215] 15, the data plane 1504 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1520 and a data transformation layer 1534. The data pipeline 1520 and the data transformation layer 1534 may be integrated with a customer enterprise application or transactional database environment, such as Oracle They work together to extract 1508a, process, and load operational or transactional data from the Fusion Applications environment into the data warehouse instance 1550. The data plane may also include a data / configuration user interface 1530 and a mapping / configuration database 1532.

[0216] According to an embodiment, as noted above, such systems and methods can support multiple tenants, although the embodiment depicted in Figure 15 shows only one tenant, namely, Customer A, represented by 1506a, and only one tenant is shown for the sake of clarity of the drawing.

[0217] According to an embodiment, the data pipeline maintains an analytical application schema 1562, for example as a star schema, for each customer / tenant (e.g., Customer A associated with Customer A application / transaction database 1506a). The analytical application schema 1562 is updated by the system periodically (e.g., hourly / daily / weekly) according to best practices for a particular analytical use case, such as, for example, Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0218] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to transform transactional data received from enterprise or business applications into a model format for loading into the data warehouse.

[0219] According to an embodiment, for each customer, the system pre-populates the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1506a, using an analytical application schema that the system maintains and updates.

[0220] Thus, according to an embodiment, the system maintains an analytical application schema that allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1560a, without otherwise making that data available to the customer in a read-only manner and without the customer being able to make any direct changes to it.

[0221] According to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema, such as 1564a, whose contents can be easily modified by the customer to allow the customer to supplement or utilize the data in the data warehouse instance.

[0222] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0223] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and may be used by enterprise applications. Each data warehouse tenancy may contain a customer schema for each customer / tenant sourced from the data warehouse application component. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time allows access to various functions, e.g., ETL-related functions or other functions of the shared analytical application environment.

[0224] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0225] According to an embodiment, for each particular customer / tenant, once that data is extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area.

[0226] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0227] Using the provisioning component, a customer can request provisioning of a customer schema 1564 in a data warehouse. The customer can also provide a number of attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., customer schema of the data warehouse) and populate the warehouse with the necessary customer-provided information.

[0228] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0229] According to an embodiment, a monitoring agent 1580 may be provided (e.g., in the data warehouse or in the control plane) associated with data warehouse instance 1560a. An additional such monitoring agent 1583 may be provided in the control plane. (Although shown in the figure as two separate components, according to an embodiment, monitoring agents 1580 and 1583 may be one entity, with the communication lines between 1580 and 1583 indicating the nature of the SaaS to PaaS relationship.)

[0230] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with a tenant / customer. The monitoring agents 1580, 1583 may, for example, monitor resources tagged by each tenant in the system to monitor the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer's / tenant's resource usage for use in analytics). The customer account manager may be responsible for monitoring (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) 1582 / 1585 the usage of computing devices by the customer / tenants. This may include, for example, monitoring and metering the usage of the customer's computing devices relative to provisioned metrics or metering the number of seats that a customer has in use relative to provisioned metrics.

[0231] According to an embodiment, the monitoring agent can utilize the provisioned metrics 1581 / 1584 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) in monitoring and tracking resource utilization by tenants, which can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged as associated with each tenant, the monitoring agent can identify resource usage per tenant by tracking the tagged resources (each resource allocated to a tenant is tagged to identify it as belonging to and allocated to that tenant). In addition, the monitoring agent can provide notifications / instructions 1586 to the provisioning component 1511, or other backend systems, indicating that a tenant has exceeded its provisioned resources or that a given tenant should be provided with additional resources (e.g., computing devices) for a set amount of time based on the monitored metrics associated with the tenant. Similarly, the monitoring agent 1580 / 1583 can provide instructions 1588 indicating that too many resources (more than provisioned) are being allocated to a customer / tenant and are not being utilized. In these cases, the provisioning component can then reclaim such resources, for example, to streamline utilization and / or provision such resources to a different tenant / customer.

[0232] According to an embodiment, as shown in the embodiment of FIG. 15, a monitoring agent 1583 may detect that resources (e.g., computing devices, seats, etc.) provisioned to a customer / tenant in a console interface are not being effectively utilized and that the customer / tenant does not currently need the amount of resources provisioned 1585. This may be the case, for example, when the customer / tenant is not currently running analytics. Then, according to some embodiments, in order to seamlessly meet the client's current demands without administrative effort, the provisioning component may deallocate the resources (e.g., computing devices) to the customer / tenant and reallocate them elsewhere or set them aside for reallocation to the customer / tenant if they are needed again.

[0233] FIG. 16 illustrates a system for utilization and allocation of SaaS / PaaS resources in an analytical application environment according to an embodiment.

[0234] More specifically, FIG. 16 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment supporting multiple customers / tenants.

[0235] As shown in FIG. 16, the control plane 160 may include, for example, a console interface 1610 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1611.

[0236] According to an embodiment, for example, a customer may provision a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with the necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0237] According to an embodiment, for example, this provisioning can be further utilized to provision seats and compute units available to the provisioning customer, for example, based on an order, which can represent, for example, part of a SaaS component.

[0238] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0239] 16, the data plane 1604 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1620 and a data transformation layer 1634. The data pipeline 1620 and the data transformation layer 1634 may be integrated with a customer enterprise application or transactional database environment, such as Oracle They work together to extract (1608) operational or transactional data from the Fusion Applications environment (where each extraction process is separate for each tenant / customer and / or associated application or transaction database), process it, and load (1650) it into a data warehouse instance. The data plane may also include a data / configuration user interface 1630 and a mapping / configuration database 1632.

[0240] According to an embodiment, the system for SaaS / PaaS resource utilization and allocation in an analytical application environment can support multiple tenants / customers, each sharing the analytical application environment 1600 via multiple instances of data warehouse F60. As shown, customers / tenants can be supported, each associated with a separate application / transaction database 1606.

[0241] According to an embodiment, the data pipeline maintains an analysis application schema 1662, for example as a star schema, for each customer / tenant (e.g., Customers A-C associated with Customers A-C application / transaction database 1606). The analysis application schema 1662 is updated by the system periodically (e.g., hourly / daily / weekly) according to best practices for a particular analysis use case, such as, for example, Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0242] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to transform transactional data received from enterprise or business applications into a model format for loading into the data warehouse.

[0243] According to an embodiment, for each customer, the system utilizes an analytical application schema that the system maintains and updates to pre-populate the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1606a.

[0244] In this manner, according to an embodiment, the system maintains an analytical application schema that allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1660. The data is otherwise made available to the customer in a read-only manner, without the customer being able to make any direct changes to it.

[0245] According to an embodiment, the analytical application environment provides, for each customer of the environment, a customer schema, such as 1664, whose contents can be easily modified by the customer, allowing the customer to supplement or utilize the data in their data warehouse instance.

[0246] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0247] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytic application schema (analytic warehouse schema) and may include customer schemas for each customer / tenant sourced from enterprise application components. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of a shared analytic application environment.

[0248] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0249] According to an embodiment, for each particular customer / tenant, once that data is extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area.

[0250] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0251] Using the provisioning component, a customer can request provisioning of a customer schema 1664 in a data warehouse. The customer can also provide multiple attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The requested data warehouse (e.g., A provisioning component can provision a customer schema (a-house customer schema) to populate the warehouse with necessary customer-supplied information.

[0252] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0253] According to an embodiment, a monitoring agent 1680 may be provided (e.g., in the data warehouse or control plane) associated with each data warehouse instance 1660. In addition, monitoring agents 1683 may be provided in the control plane, each associated with a customer / tenant instance. (Although shown as two separate components in the diagram, according to an embodiment, each instance of monitoring agents 1680 and 1683 may be a single entity, with the communication lines between 1680 and 1683 indicating the nature of the SaaS to PaaS relationship.)

[0254] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with the tenant / customer to which the monitoring agent is associated (e.g., based on tags of the metrics being monitored). The monitoring agents 1680, 1683 may be responsible for monitoring (1682 / 1685) (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer / tenant's usage of computing devices for use in analytics), for example, by monitoring resources tagged by each tenant in the system. This may include, for example, monitoring and metering the customer's usage of computing devices in relation to provisioned metrics, or metering the number of seats in use by the customer in relation to provisioned metrics.

[0255] According to an embodiment, the monitoring agent can utilize the provisioned metrics 1681 / 1684 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) in monitoring and tracking resource utilization by tenants, which can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged as associated with each tenant, the monitoring agent can identify resource usage per tenant by tracking the tagged resources (each resource allocated to a tenant is tagged to identify it as belonging to and allocated to that tenant). In addition, the monitoring agent can provide notifications / instructions 1686 to the provisioning component 1611, or other backend systems, indicating that a tenant has exceeded its provisioned resources or that a given tenant should be provided with additional resources (e.g., computing devices) for a set amount of time based on the monitored metrics associated with the tenant. Similarly, the monitoring agent 1680 / 1683 can provide instructions 1688 indicating that too many resources (more than provisioned) are being allocated to a customer / tenant and are not being utilized. In these cases, the provisioning component can then reclaim such resources, for example, to streamline utilization and / or provision such resources to a different tenant / customer.

[0256] FIG. 17 illustrates a system for utilization and allocation of SaaS / PaaS resources in an analytical application environment according to an embodiment.

[0257] More specifically, FIG. 17 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment supporting multiple customers / tenants.

[0258] As shown in FIG. 17, the control plane 1702 may include, for example, a console interface 1710 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1711.

[0259] According to an embodiment, for example, a customer may request provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0260] According to an embodiment, for example, this provisioning can be further utilized to provision seats and compute units available to the provisioning customer, for example, based on an order, which can represent, for example, part of a SaaS component.

[0261] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0262] 17, the data plane 1704 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1720 and a data transformation layer 1734. The data pipeline 1720 and the data transformation layer 1734 may be integrated with a customer enterprise application or transactional database environment, such as Oracle They work together to extract (1708) operational or transactional data from the Fusion Applications environment (where each extraction process is separate for each tenant / customer and / or associated application or transaction database), process it, and load (1750) it into a data warehouse instance. The data plane may also include a data / configuration user interface 1730 and a mapping / configuration database 1732.

[0263] According to an embodiment, the system for SaaS / PaaS resource utilization and allocation in an analytical application environment can support multiple tenants / customers, each sharing the analytical application environment 1700 via multiple instances of data warehouse F60. As shown, customers / tenants can be supported, each associated with a separate application / transaction database 1706.

[0264] According to an embodiment, the data pipeline maintains an analysis application schema 1762, for example as a star schema, for each customer / tenant (e.g., Customers A-C associated with Customers A-C application / transaction database 1706). The analysis application schema 1762 may be, for example, HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics. Updated periodically (for example, hourly / daily / weekly) by the system in accordance with best practices for a particular analytical use case, such as Data Protection and Resource Planning analytics.

[0265] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to transform transactional data received from enterprise or business applications into a model format for loading into the data warehouse.

[0266] According to an embodiment, for each customer, the system utilizes an analytical application schema that the system maintains and updates to pre-populate the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1706a.

[0267] In this manner, according to an embodiment, the system maintains analytical application schemas that allow the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1760. The data is otherwise made available to the customer in a read-only manner, without the customer being able to make any direct changes to it.

[0268] According to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema, such as 1764, whose contents can be easily modified by the customer, allowing the customer to supplement or utilize the data in their data warehouse instance.

[0269] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0270] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytic application schema (analytic warehouse schema) and may include customer schemas for each customer / tenant sourced from enterprise application components. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of a shared analytic application environment.

[0271] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0272] According to an embodiment, for each particular customer / tenant, once that data has been extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components may be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in a data staging area.

[0273] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0274] Using the provisioning component, a customer can request provisioning of a customer schema 1764 in a data warehouse. The customer can also provide a number of attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., customer schema of the data warehouse) and populate the warehouse with the necessary customer-provided information.

[0275] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0276] According to an embodiment, one monitoring agent 1780 may be provided (e.g., in the data warehouse or control plane) that supports multiple data warehouse instances 1760. The one monitoring agent 1780 may monitor multiple instances of the data warehouse by monitoring tag-based resources 1781, where the tag indicates the customer / tenant for which the resource is provisioned. In addition, one monitoring agent 1783 may be provided in the control plane, where the monitoring agent supports multiple customer / tenant instances. The one monitoring agent 1783 may monitor multiple instances of the data warehouse by monitoring tag-based resources 1784, where the tag indicates the customer / tenant for which the resource is provisioned. (Although shown as two separate components in the diagram, according to an embodiment, each instance of monitoring agents 1780 and 1783 may be one entity, and the communication lines between 1780 and 1783 indicate the nature of the SaaS to PaaS relationship.)

[0277] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with the tenant / customer to which the monitoring agent is associated (e.g., based on tags of the metrics being monitored). The monitoring agents 1780, 1783 may be responsible for monitoring (1782 / 1785) (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer / tenant's usage of computing devices for use in analytics), for example, by monitoring resources tagged by each tenant of the system. This may include, for example, monitoring and metering the customer's usage of computing devices in relation to provisioned metrics, or metering the number of seats in use by the customer in relation to provisioned metrics.

[0278] According to an embodiment, the monitoring agent monitors and manages resource utilization by tenants. In tracking, provisioned metrics 1781 / 1784 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) can be utilized to improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged as associated with each tenant, by tracking the tagged resources (each resource allocated to a tenant is tagged to identify it as belonging to and allocated to that tenant), the monitoring agent can identify resource usage per tenant. In addition, the monitoring agent can provide notifications / instructions 1786 to the provisioning component 1711, or other backend systems, indicating that a tenant has exceeded its provisioned resources or that a given tenant should be provided with additional resources (e.g., computing devices) for a set amount of time due to the monitored metrics associated with the tenant. Similarly, the monitoring agent 1780 / 1783 can provide instructions 1788 indicating that too many resources (more than provisioned) are being allocated to a customer / tenant and are not being utilized. In these cases, the provisioning component can then reclaim such resources, for example, to streamline utilization and / or provision such resources to a different tenant / customer.

[0279] FIG. 18 illustrates a system for a SaaS / PaaS billing model in an analytical application environment, according to an embodiment.

[0280] More specifically, FIG. 18 illustrates a system for SaaS / PaaS resource utilization and allocation in an analytical application environment supporting multiple customers / tenants.

[0281] As shown in FIG. 18, the control plane 1802 may include, for example, a console interface 1810 that controls cloud products offered within the SaaS environment and enables access by client (computer) devices controlled by the customer / tenant, and a provisioning component 1811.

[0282] According to an embodiment, for example, a customer may request provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and populates the warehouse with necessary customer-supplied information. This may represent, for example, part of a PaaS component.

[0283] According to an embodiment, for example, this provisioning can be further utilized to provision seats and compute units available to the provisioning customer, for example, based on an order, which can represent, for example, part of a SaaS component.

[0284] According to an embodiment, each such provisioned resource, including database instances, seats, computing devices, etc., can be tagged with a tenant (or subtenant) of the system.

[0285] 18, the data plane 1804 may comprise a data pipeline (e.g., an ETL (extract, transform, load) process) 1820 and a data transformation layer 1834. The data pipeline 1820 and the data transformation layer 1834 may be integrated with a customer enterprise application or transactional database environment, such as Oracle They work together to extract 1808 operational or transactional data from the Fusion Applications environment (where each extraction process is separate for each tenant / customer and / or associated application or transaction database), process it, and load 1850 it into a data warehouse instance. The data plane may also include a data / configuration user interface 1830 and a mapping / configuration database 1832.

[0286] According to an embodiment, the system for SaaS / PaaS resource utilization and allocation in an analytical application environment can support multiple tenants / customers, each sharing the analytical application environment 1800 via multiple instances of data warehouse F60. As shown, customers / tenants can be supported, each associated with a separate application / transaction database 1806.

[0287] According to an embodiment, the data pipeline maintains an analysis application schema 1862, for example as a star schema, for each customer / tenant (e.g., Customers A-C associated with Customers A-C application / transaction database 1806). The analysis application schema 1862 is updated by the system periodically (e.g., hourly / daily / weekly) according to best practices for a particular analysis use case, such as, for example, Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.

[0288] According to an embodiment, the data transformation layer may include data models (e.g., knowledge models, KMs, or other types of data models) that the system uses to transform transactional data received from enterprise or business applications into a model format for loading into the data warehouse.

[0289] According to an embodiment, for each customer, the system utilizes an analytical application schema that the system maintains and updates to pre-populate the customer's data warehouse instance based on analysis of data within that customer's enterprise application environment, e.g., 1806a.

[0290] In this manner, according to an embodiment, the system maintains an analytical application schema that allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1860. The data is otherwise made available to the customer in a read-only manner, with no direct modifications by the customer.

[0291] According to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema, such as 1864, whose contents can be easily modified by the customer, allowing the customer to supplement or utilize the data in their data warehouse instance.

[0292] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), possibly pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases, such as HCM analytics or ERP analytics.

[0293] According to an embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytic application schema (analytic warehouse schema) and may include customer schemas for each customer / tenant sourced from enterprise application components. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of a shared analytic application environment.

[0294] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.

[0295] According to an embodiment, for each particular customer / tenant, once that data is extracted, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can act as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by validating the extracted data while it is temporarily held in the data staging area.

[0296] Once the extraction process has completed the extraction, a data transformation layer can begin the transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.

[0297] Using the provisioning component, a customer can request provisioning of a customer schema 1864 in a data warehouse. The customer can also provide a number of attributes associated with the data warehouse through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., customer schema of the data warehouse) and populate the warehouse with the necessary customer-provided information.

[0298] Such provisioning may be based on an order, including, for example, the number of seats, and database size and number of computing devices. Such provisioned components may be tagged to each tenant of the system.

[0299] According to an embodiment, a single monitoring agent 1880 may be provided (e.g., in the data warehouse or control plane) that supports multiple data warehouse instances 1860. The single monitoring agent 1880 may monitor multiple instances of the data warehouse by monitoring tag-based resources 1881, where the tag indicates the customer / tenant for which the resource is provisioned. In addition, a single monitoring agent 1883 may be provided in the control plane, where the monitoring agent supports multiple customer / tenant instances. The single monitoring agent 1883 may monitor multiple instances of the data warehouse by monitoring tag-based resources 1884, where the tag indicates the customer / tenant for which the resource is provisioned. (Although shown as two separate components in the figure, according to an embodiment, the monitoring agent 1880 may be provided in the control plane.) Each instance of agent 1880 and 1883 may be an entity, and the communication lines between 1880 and 1883 indicate the nature of the relationship between SaaS and PaaS).

[0300] According to an embodiment, the monitoring agent(s) may have access to provisioned metrics associated with the tenant / customer to which the monitoring agent is associated (e.g., based on tags of the metrics being monitored). The monitoring agents 1880, 1883 may be responsible for monitoring (1882 / 1885) (e.g., dynamically, at set configurable intervals, hourly, daily, etc.) the tenant / customer's resource usage in the data warehouse (e.g., monitoring the storage utilized by the customer / tenant in the associated data warehouse instance) and the tenant / customer's resource usage in the control plane (e.g., monitoring the customer / tenant's usage of computing devices for use in analytics), for example, by monitoring resources tagged by each tenant in the system. This may include, for example, monitoring and metering the customer's usage of computing devices in relation to provisioned metrics, or metering the number of seats in use by the customer in relation to provisioned metrics.

[0301] According to an embodiment, customer provisioning may be based in part on an order specifying the number of seats / users the customer wants to access both the analytics environment and the data warehouse 1860. Based on the number of users / seats the customer purchases (plus optional attributes such as increasing or decreasing database size for analytics or data warehouse, or increasing or decreasing computing power), multiple tagged provisioned metrics 1881 and 1884 may be configured in association with the customer schema. Such initial orders may form part of the billing model 1890 in the form of a setup fee 1891. This setup fee may be thought of as an initial subscription for the customer / tenant.

[0302] According to an embodiment, monitoring agent 1880 and / or 1883 (which in some embodiments may be considered as one logical entity) can report to billing system 1890, for example, when additional resources are provisioned for a customer / tenant. In addition to notifying billing 1890, the monitoring agent can additionally provide information in the form of overprovisioning 1892 about the amount of additional resources provisioned to the customer / tenant. The billing system can utilize such overprovisioning in combination with a set fee 1891 to automatically generate an invoice combining the initial subscription with one or more additional resources provisioned based on the monitoring.

[0303] According to an embodiment, traditional Software as a Service (SaaS) / Platform as a Service (PaaS) billing systems typically bill customers / tenants for SaaS / PaaS usage based on the number of seats (e.g., users that can access the SaaS at any time) that the customer / tenant selected during the initial purchase / license agreement for the SaaS / PaaS. While this model has worked well so far for SaaS / PaaS, problems can arise when a customer / tenant wants or needs more resources than have been purchased. In such a situation, the only mechanism available to the customer / tenant is, for example, to purchase any number of additional seats of the SaaS / PaaS.

[0304] According to an embodiment, when a customer / tenant orders a SaaS / PaaS analytics data warehouse (e.g., Oracle's Fusion Analytics Warehouse), the data warehouse (e.g., An instance of an Analytics Cloud (Autonomous Data Warehouse) may be provisioned. Provisioning of the Autonomous Data Warehouse may be based on criteria selected by the customer / tenant at the time of purchase / license agreement. For example, a sales order placed by a customer may specify the number of seats the customer purchased. Based on the number of seats, the control plane described above may provision the customer schema in the data warehouse. The provisioned data warehouse may specify multiple items for the provisioned data warehouse, including the number of compute units (e.g., OCPUs (Oracle® Compute Units)) for both the Analytics Cloud as well as the Autonomous Data Warehouse, and the database size. For example, if a customer purchases 20-100 seats, the system will provision 4 compute units (e.g., processors, or the maximum limit of compute power associated with the cores of a processor) for the Analytics Cloud, provision 4 compute units for the Autonomous Data Warehouse, and provision a 1 terabyte database.

[0305] According to an embodiment, the systems and methods described herein provide a way for customers to adjust the provisioned computing resources associated with their order on demand, rather than simply purchasing more seats, and billing for this on-demand adjustment can be done on a cash-on-demand model, which combines a subscription-based model with a cash-on-delivery model.

[0306] FIG. 19 illustrates a flowchart of a SaaS / PaaS billing model in an analytical application environment, according to an embodiment.

[0307] According to an embodiment, an order / license agreement 1900 may be received. The order may specify a number of seats 1901. The number of seats 1901 may indicate the type and amount of resources included in the customer's license agreement based on a table lookup. These resources may include data warehouse computing equipment, database size, and analytics computing equipment.

[0308] According to an embodiment, this information, along with customer-specific information, may be passed to a Tenancy Management System (TAS) 1910. The TAS 1910 may be configured by a provisioning system, as described above. The TAS may communicate with a Service Manager 1915. The Service Manager 1915 may process analytics entitlements (e.g., based on the specified number of seats and analytics computing resources). This may then be passed to an Analytics Control Plane. The Analytics Control Plane may provision an analytics environment (e.g., based on the specified number of seats and analytics computing resources). As part of this provisioning, information may be passed to a Data Warehouse Control Plane 1920 along with minimum provisioned metrics (database size, data warehouse computing equipment). The Data Warehouse Control Plane may then create an ADW instance.

[0309] According to an embodiment, as described above, the data warehouse is responsible for metering usage and reporting over-provisioning to a billing system 1930. The billing system 1930 then generates an invoice based on the subscription fee 1931 and the over-provisioning 1932 reported by the data warehouse.

[0310] FIG. 20 is a flowchart of a method for SaaS / PaaS resource utilization and allocation in an analytical application environment, according to an embodiment.

[0311] According to an embodiment, in step 2010, the method may provide an analytical application environment.

[0312] According to an embodiment, in step 2020, the method may provide a control plane consisting of a server. The control plane further consists of a provisioning component and a console interface.

[0313] According to an embodiment, in step 2030, the method may provide a data warehouse.

[0314] According to an embodiment, in step 2040, the method may provide a monitoring agent.

[0315] According to an embodiment, the method can provision an instance of the data warehouse in relation to the tenant, at step 2050. The provisioned data warehouse instance has an initial size.

[0316] According to an embodiment, upon provisioning a data warehouse instance in step 2060, the method may add an entry to the monitoring agent's metrics repository, the entry indicating the initial size of the provisioned data warehouse instance, the entry being tagged, and the tag indicating the tenant.

[0317] According to an embodiment, in step 2070, the method may monitor, by a monitoring agent, the amount of data stored in the provisioned data warehouse instance.

[0318] According to various embodiments, the teachings herein may be conveniently implemented by one or more conventional general purpose or special purpose digital computers, computing devices, machines, or microprocessors, including one or more processors, memory, and / or computer-readable storage media programmed according to the teachings of the present disclosure. A programmer skilled in the art can readily prepare appropriate software coding based on the teachings of the present disclosure, as will be apparent to one skilled in the software arts.

[0319] In some embodiments, the present invention includes a computer program product that is a non-transitory computer readable storage medium(s) having instructions stored thereon. A computer can be programmed to perform any of the processes of the present teachings using the computer program product. For example, such storage media can include, but are not limited to, any type of disk, including hard disk drives, hard disks, fixed disks, or other electromechanical data storage devices, floppy disks, optical disks, DVDs, CD-ROMs, microdrives, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems, or other types of storage media or devices suitable for temporarily storing instructions and / or data.

[0320] The above description has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the scope of protection to the precise form disclosed. Many modifications and variations will be apparent to those skilled in the art.

[0321] For example, although some of the examples provided herein illustrate operation of an analytics application environment with an enterprise software application / data environment, such as, for example, an Oracle Fusion Applications environment, or within the context of a Software-As-A-Service (SaaS) or cloud environment, such as, for example, an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment, according to various embodiments, the systems and methods described herein may be used with other types of enterprise software application / data environments, cloud environments, cloud services, cloud computing, or other computing environments.

[0322] The embodiments have been selected and described to best explain the principles of the present teachings and their practical application, thereby enabling those skilled in the art to appreciate the various embodiments and, in addition, various modifications thereof suited to particular applications contemplated. The scope of the present disclosure is indicated by the appended claims and their equivalents.

Claims

1. SaaS / PaaS (Software as a Service) in analytical application environments A system for allocation and utilization of Service / Platform as a Service (PAS) resources, comprising: An analytical application environment; A control plane consisting of servers; Data warehouse and a monitoring agent; the control plane further comprises a provisioning component and a console interface; an instance of the data warehouse is provisioned in association with a tenant, the provisioned instance of the data warehouse having an initial size; when the data warehouse instance is provisioned, an entry is added to a metrics repository of the monitoring agent, the added entry indicating the initial size of the provisioned data warehouse instance, the added entry being tagged, the tag indicating the tenant; The monitoring agent monitors the amount of data stored in the provisioned instances of the data warehouse.

2. The system of claim 1 , wherein the monitoring agent detects that an amount of data stored in the provisioned data warehouse instance is equal to the initial size of the provisioned data warehouse instance.

3. The system of any one of claims 1 to 2, wherein when the monitoring agent detects that the amount of data stored in the provisioned data warehouse instance is equal to the initial size of the provisioned data warehouse instance, the monitoring agent instructs the provisioning component of the control plane to increase the initial size of the provisioned data warehouse instance.

4. The system of any one of claims 1 to 3, wherein the monitoring component sends a notification to a billing component when the provisioning component increases the initial size of the provisioned instance of the data warehouse.

5. 5. The system of claim 4, wherein in response to receiving the notification from the monitoring component, the billing component generates a bill reflecting an increase in the initial size of the provisioned data warehouse instance.

6. a discrete number of computing devices are provisioned in association with the tenant; The system of any one of claims 1 to 5, wherein the monitoring agent detects that a number of computing devices that is greater than the discrete number of computing devices provisioned in association with the tenant is in use by the tenant.

7. 7. The system of claim 6, wherein when the monitoring agent detects that a greater number of computing devices are being used by the tenant than the discrete number of computing devices provisioned in association with the tenant, the monitoring agent instructs the provisioning component of the control plane to provision a greater discrete number of computing devices for use by the tenant.

8. SaaS / PaaS (Software as a Service) in analytical application environments A method for allocation and utilization of Service / Platform as a Service (PAS) resources, comprising: providing an analytical application environment; and providing a control plane comprised of a server, the control plane further comprising a provisioning component and a console interface, the method further comprising: providing a data warehouse; providing a monitoring agent; and provisioning an instance of the data warehouse in relation to a tenant, the provisioned instance of the data warehouse having an initial size, the method further comprising: adding an entry to a metrics repository of the monitoring agent when the data warehouse instance is provisioned, the added entry indicating the initial size of the provisioned data warehouse instance, the added entry being tagged, the tag indicating the tenant, the method further comprising: The method includes the step of the monitoring agent monitoring an amount of data stored in the provisioned instances of the data warehouse.

9. 9. The method of claim 8, further comprising the monitoring agent detecting that an amount of data stored in the provisioned instance of the data warehouse is equal to the initial size of the provisioned instance of the data warehouse.

10. 10. The method of claim 8, further comprising the step of: when the monitoring agent detects that the amount of data stored in the provisioned data warehouse instance is equal to the initial size of the provisioned data warehouse instance, the monitoring agent instructs the provisioning component of the control plane to increase the initial size of the provisioned data warehouse instance.

11. The method of any one of claims 8 to 10, further comprising the step of said monitoring agent sending a notification to a billing component when said provisioning component increases said initial size of said provisioned instance of said data warehouse.

12. 12. The method of claim 11, further comprising: in response to receiving the notification from the monitoring component, the billing component generates a bill reflecting an increase in the initial size of the provisioned instance of the data warehouse.

13. a discrete number of computing devices are provisioned in association with the tenant; The method of any one of claims 8 to 12, wherein the monitoring agent detects that a number of computing devices is in use by the tenant that is greater than the discrete number of computing devices provisioned in association with the tenant.

14. When the monitoring agent detects that a number of computing devices that is greater than the discrete number of computing devices provisioned in association with the tenant is being used by the tenant, the monitoring agent monitors the provisioning control of the control plane.

14. The method of claim 13, further comprising providing instructions to a component to provision a greater discrete number of computing devices for use by the tenant.

15. SaaS / PaaS (Software as a Service) in analytical application environments A non-transitory computer-readable storage medium having instructions for allocating and utilizing Service / Platform as a Service (PAS) resources, the instructions, when read and executed, causing a computer to perform steps including: providing an analytical application environment; and providing a control plane comprising a server, the control plane further comprising a provisioning component and a console interface, the steps further comprising: providing a data warehouse; providing a monitoring agent; and provisioning an instance of the data warehouse in relation to a tenant, the provisioned instance of the data warehouse having an initial size, the step further comprising: adding an entry to a metrics repository of the monitoring agent when the data warehouse instance is provisioned, the added entry indicating the initial size of the provisioned data warehouse instance, the added entry being tagged, the tag indicating the tenant, the step further comprising: The non-transitory computer readable storage medium includes the monitoring agent monitoring an amount of data stored in the provisioned instance of the data warehouse.

16. 20. The non-transitory computer-readable storage medium of claim 15, further comprising the monitoring agent detecting that an amount of data stored in a provisioned instance of the data warehouse is equal to the initial size of the provisioned instance of the data warehouse.

17. 17. The non-transitory computer-readable storage medium of claim 15, further comprising the step of: when the monitoring agent detects that an amount of the data stored in the provisioned data warehouse instance is equal to the initial size of the provisioned data warehouse instance, the monitoring agent providing instructions to the provisioning component of the control plane to increase the initial size of the provisioned data warehouse instance.

18. 18. The non-transitory computer-readable storage medium of claim 15, further comprising the step of the monitoring agent sending a notification to a billing component when the provisioning component increases the initial size of the provisioned instance of the data warehouse.

19. 20. The non-transitory computer-readable storage medium of claim 18, wherein the steps further comprise: in response to receiving the notification from the monitoring component, the billing component generates an invoice reflecting an increase in the initial size of the provisioned instance of the data warehouse.

20. a discrete number of computing devices are provisioned in association with the tenant; the monitoring agent detects that a number of computing devices is being used by the tenant that is greater than the discrete number of computing devices provisioned in association with the tenant; 20. The non-transitory computer-readable storage medium of claim 15, wherein when the monitoring agent detects that a number of computing devices is being used by the tenant that is greater than the discrete number of computing devices provisioned in association with the tenant, the monitoring agent provides instructions to the provisioning component of the control plane to provision a greater discrete number of computing devices for use by the tenant.

Citation Information

Patent Citations

  • Methods and systems for deploying applications to one or more cloud systems in a mobile manner.

    JP2017529633A

  • Automatic demand-driven resource scaling for relational database-as-a-service

    US20160321588A1

  • Tracking query execution status for selectively routing queries

    US20180060400A1

  • Elastic multi-tenant container architecture

    US20190042322A1

Cited By

  • Femoral component for an implantable hip prosthesis and method of making same

    US12295851B2