In accordance with an embodiment, described herein is a system and method for providing unique identifiers for use with enterprise software application environments. A unique id server (service) operates to provide calling applications with unique identifiers, for use by the applications in storing, accessing, or using data stored at a database or data warehouse. A database sequence provided by the database can be leveraged for issuing unique id sequences for use by the applications. A calling application can reserve and/or request, via the unique id service, sequences of unique IDs, ahead of time, either as a single sequence or bulk sequence. The unique id can be subsequently used within the enterprise application environment for various purposes.
|
0. 1. A system for providing unique identifiers for use with enterprise software application environments, comprising:
a computer having a processor, memory, and enterprise application environment operating thereon; and
a unique identifier (id) service that operates in association with a database to issue sequences of unique identifiers (IDs), wherein the unique id service:
caches a plurality of sequences of unique IDs provided by the database, and
provides an interface for receiving requests from calling applicants for unique IDs, for use with the database;
wherein a calling application can reserve and/or request, via the unique id service, one or more sequences of unique IDs, wherein in response the unique id service reserves the one or more sequences of unique IDs, from its cached plurality of sequences of unique IDs provided by the database, for use by the calling application in accessing or inserting data at one or more tables stored at the database; and
wherein a unique id received by the calling application is subsequently used by the calling application within the enterprise application environment as a key during the accessing or inserting of the data at the one or more tables stored at the database.
0. 11. A method for providing unique identifiers for use with enterprise software application environments, comprising:
providing, at a computer having a processor and memory, an enterprise application environment; and
providing a unique identifier (id) service that operates in association with a database to issue sequences of unique identifiers (IDs), wherein the unique id service:
caches a plurality of sequences of unique IDs provided by the database, and
provides an interface for receiving requests from the calling applications for unique IDs, for use with the database;
wherein a calling application can reserve and/or request, via the unique id service, one or more sequences of unique IDs, wherein in response the unique id service reserves the one or more sequences of unique IDs, from its cached plurality of sequences of unique IDs provided by the database, for use by the calling application in accessing or inserting data at one or more tables stored at the database; and
wherein a unique id received by the calling application is subsequently used by the calling application within the enterprise application environment as a key during the accessing or inserting of the data at the one or more tables stored at the database.
0. 20. A non-transitory computer readable storage medium having instructions thereon, which when read and executed by a computer including one or more processors cause the computer to perform a method comprising:
providing an enterprise application environment; and
providing a unique identifier (id) server or service that operates in association with a database to issue unique id sequences, wherein the unique id server or service:
caches a plurality of sequences of unique identifiers (IDs) provided by the database, and
provides an interface for receiving requests from calling applications for unique IDs, for use with the database;
wherein a calling application can reserve or request, via the unique id server or service, one or more sequences of unique IDs, wherein in response the unique id server or service reserves the one or more sequences of unique IDs, from its cached plurality of sequences of unique IDs provided by the database, for use by the calling application in accessing or inserting at one or more tables stored at the database; andwherein a unique id received by the calling application is subsequently used by the calling application within the enterprise application environment as a key during the accessing or inserting of the data at the one or more tables stored at the database.
0. 2. The system of
0. 3. The system of
0. 4. The system of
0. 5. The system of
0. 6. The system of
0. 7. The system of
0. 8. The system of
0. 9. The system of
0. 10. The system of
0. 12. The method of
0. 13. The method of
0. 14. The method of
0. 15. The method of
0. 16. The method of
0. 17. The method of
0. 18. The method of
0. 19. The method of
|
This application claims the benefit of priority to U.S. Provisional Pat. Application titled “SYSTEM AND METHOD FOR PROVIDING UNIQUE IDENTIFIERS FOR USE WITH ENTERPRISE APPLICATION ENVIRONMENTS”, Application No. 63/237,966, filed Aug. 27, 2021; which above application and the content thereof is herein incorporated by reference.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Embodiments described herein are generally related to enterprise software application environments, and are particularly related to a system and method for providing unique identifiers for use with enterprise application environments.
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 describing their enterprise data in a format that enables those business users to make strategic business decisions.
Such data analytics or business intelligence tools can be provided within the context of an organization’s enterprise software application 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 environment, which store data in a database for use by various applications.
In accordance with an embodiment, described herein is a system and method for providing unique identifiers for use with enterprise software application environments. A unique ID server (service) operates to provide calling applications with unique identifiers, for use by the applications in storing, accessing, or using data stored at a database or data warehouse. A database sequence provided by the database can be leveraged for issuing unique ID sequences for use by the applications. A calling application can reserve and/or request, via the unique ID service, sequences of unique IDs, ahead of time, either as a single sequence or bulk sequence. The unique ID can be subsequently used within the enterprise application environment for various purposes.
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 describing their enterprise data in a format that enables those business users to make strategic business decisions.
Such data analytics or business intelligence tools can be provided within the context of an organization’s enterprise software application 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 environment, which store data in a database for use by various applications.
Some enterprise application environments, such as for example Oracle Fusion SaaS applications, require the use of a unique identifier (ID) for an application’s database tables. Such unique IDs are generally used for the primary key columns, and must be globally unique due to various functional requirements.
In accordance with an embodiment, described herein is a system and method for providing unique identifiers for use with enterprise software application environments. A unique ID server (service) operates to provide calling applications with unique identifiers, for use by the applications in storing, accessing, or using data stored at a database or data warehouse. A database sequence provided by the database can be leveraged for issuing unique ID sequences for use by the applications. A calling application can reserve and/or request, via the unique ID service, sequences of unique IDs, ahead of time, either as a single sequence or bulk sequence. The unique ID can be subsequently used within the enterprise application environment for various purposes.
For example, in accordance with an embodiment, technical advantages of the described approach include that a unique ID can be subsequently used by a calling application within the enterprise application environment as a primary key (e.g., a table column identifier), during access to or insertion of data into enterprise application tables that are stored at a shared database and/or shared by multiple tenants of the enterprise application environment.
In accordance with an embodiment, the components and processes illustrated in
As illustrated in
In accordance with an embodiment, the environment supports the use of availability domains, such as for example availability domains A 180, and availability domains A B 182, which enables customers to access networks 184, 186, and (e.g., cloud or enterprise application) instances A 192, B 194.
For example, in accordance with an embodiment of a cloud or SaaS environment that supports access by tenants, each tenant A 142, B 144 can create, organize, and administer their cloud resources or instances.
In accordance with an embodiment, a client device, such as, for example, a computing device 160 having a device hardware 162 (e.g., processor, memory), and graphical user interface 166, can enable an administrator or other user to communicate with the environment via a network such as, for example, a wide area network, local area network, or the Internet.
In accordance with an embodiment, the system includes an enterprise application environment 120 (e.g., a Fusion Applications environment) that provides access to a variety of software enterprise applications 122 or other components, such as, for example, customer relationship management (CRM), Financials, human capital management (HCM), or other types of applications or components that can be used to access data stored in a data warehouse 130 or database 132 (for example, in a Fusion Applications environment, an Oracle Fusion Database).
In accordance with an embodiment, the enterprise application environment can include one or more presentation layer 124, or middleware/other enterprise application components 126 that facilitate access to the database, for storage and retrieval of table data.
As further illustrated in
In accordance with an embodiment, the unique ID server can provide, for example, an individual single unique ID, or a single sequence or a sequence of bulk IDs, without breaking sequence consistency in the database.
In accordance with various embodiment, the unique ID server can be provided, for example, as a microservice or service that can be deployed and run independently, or as a sub-service provided inside a larger service layer.
As illustrated in
As illustrated in
As illustrated in
As illustrated in
As illustrated in
In accordance with an embodiment, a cluster of Java REST application (unique ID servers) can be running, for example as Helidon based web applications, or other types of microservices or services.
In accordance with an embodiment, the unique ID server gets the initial sequences from the database and caches the sequences.
In accordance with an embodiment, the unique ID server asynchronously replenishes the sequence cache, on a certain threshold. If a unique ID server crashes, it takes all the sequences down along with it.
In accordance with an embodiment, the system can expose two endpoints, for example:
In accordance with an embodiment, a caller can reserve sequences ahead of time. The caller can request for a single sequence or a bulk sequence. The caller can retrieve partial sequences in case of bulk sequence request.
In accordance with an embodiment, sequences may be re-used, if they were not issued to any caller.
In accordance with an embodiment, the calling application can request for a sequence by passing the sequence name. The caller can reserve sequence ahead of time by sending a reserve call. The caller should send an ‘ack’ to expire the issued sequences. If no ‘ack’ is received, after a pre-defined period those sequences will be auto-expired
As illustrated in
In accordance with an embodiment, the unique ID server responds with a Start and End of sequence, and the count of sequences.
As illustrated in
In accordance with an embodiment, the requestor can send the reserve request, ahead of time, during the start of their process. In this example, the requestor is ‘reserving’ 1000000 sequences.
In accordance with an embodiment, the unique ID server will respond back with a “token” with an indicative time, in milliseconds, providing the time when the sequences will be ready.
In accordance with an embodiment, the requestor sends a ‘Sequence Request’ with the token that was assigned earlier.
In accordance with an embodiment, the unique ID server issues the sequence, for example in a JSON structure, with start and end elements that will provide actual sequence(s).
In accordance with an embodiment, the unique ID server issues all (in this example 1000000) sequences, if it is available, else issues whatever is available at that point in time and provides a time estimation for the requestor to come back.
In accordance with an embodiment, the approach described herein for providing unique identifiers can be used with other types of computing environments, including other types of data analytics environments, wherein data is stored in a shared database for use by software applications.
The example shown and described in
As illustrated in
In accordance with an embodiment, the control plane operates to provide control for cloud or other software products offered within the context of a SaaS or cloud environment, such as, for example, an Oracle Analytics Cloud environment. For example, in accordance with an embodiment, the control plane can include a console interface 310 that enables access by a customer (tenant) and/or a cloud environment having a provisioning component 311.
In accordance with an embodiment, the console interface can enable access by a customer (tenant) operating a graphical user interface (GUI) and/or a command-line interface (CLI) or other interface; and/or can include interfaces for use by providers of the SaaS or cloud environment and its customers (tenants).
In accordance with an embodiment, the provisioning component can be used to update or edit a data warehouse instance, and/or an ETL process that operates at the data plane, for example, by altering or updating a requested frequency of ETL process runs, for a particular customer (tenant).
In accordance with an embodiment, the data plane can include a data pipeline or process layer 320 and a data transformation layer 334, that together process operational or transactional data from an organization’s enterprise software application or data environment, such as, for example, business productivity software applications provisioned in a customer’s (tenant’s) SaaS environment.
In accordance with an embodiment, the data transformation layer can include a data model, such as, for example, a knowledge model (KM), or other type of data model, that the system uses to transform data into a model format understood by the analytics environment.
In accordance with an embodiment, a data pipeline or process can be scheduled to execute at intervals (e.g., hourly/daily/weekly) to extract 308 transactional data from an enterprise software application or data environment, such as, for example, business productivity software applications and corresponding transactional databases 306.
In accordance with an embodiment, after transformation of the extracted data, the data pipeline or process can execute a warehouse load procedure 350, to load the transformed data into the data warehouse instance.
In accordance with an embodiment, the data warehouse can include a default analytic applications schema (referred to herein in accordance with some embodiments as an analytic warehouse schema) and, for each customer (tenant) of the system, a customer schema. Different customers of a data analytics environment may have different requirements with regard to how their data is classified, aggregated, or transformed, for purposes of providing data analytics or business intelligence data, or developing software analytic applications.
In accordance with an embodiment, to support different customer requirements as to how their data is classified, aggregated, or transformed, a semantic layer 380 can include data defining a semantic model of a customer’s data; which is useful in assisting users in understanding and accessing that data using commonly-understood business terms; and provide custom content to a presentation layer 390.
In accordance with an embodiment, the presentation layer can enable access to the data content using, for example, a software analytic application, user interface, dashboard, key performance indicators (KPI’s), visualizations; or other type of report or interface as may be provided by products such as, for example, Oracle Analytics Cloud.
In accordance with an embodiment, a user/developer can interact with a client computer device that includes a computer hardware (e.g., processor, storage, memory), user interface, and software application. A query engine (e.g., OBIS) operates to serve analytical queries within, e.g., an Oracle Analytics Cloud environment, pushes down operations to supported databases, and translates business user queries into appropriate database-specific query languages.
In accordance with an embodiment, the approach described herein for providing unique identifiers can be used with data analytics or computing environments such as those shown in
As illustrated in
At step 404, a unique ID service is provided, that operates in association with a database to issue sequences of unique IDs.
At step 406, the system can receive, from a calling application a request to reserve and/or receive, via the unique ID service, one or more sequences of unique IDs.
At step 408, a unique ID received by the calling application is subsequently used by the calling application, for example as a primary key, during access to or insertion of data into enterprise application tables stored at a shared database and/or shared by multiple tenants of the environment.
In accordance with an embodiment, technical features of the system include, for example: support for asynchronous replenishment of IDs without making the caller wait for IDs during request; support for both bulk and singular ID requests; and support for advance reservation of IDs before the actual need for such IDs.
In accordance with an embodiment, additional advantages of the described approach include, for example: the caller does not have to wait for the ID when the actual request is issued; the ID is issued from an already pre-populated cache in the Java REST server; and there is no server roundtrip to the database, which typically slows down.
In accordance with an embodiment, for example in a Fusion Applications (FA) environment, the described approach supports a centralized and efficient unique ID provider for Primary Key usage during insert into FA tables, that supports both monolith ADF application and Spectra based Fusion Cloud applications.
In accordance with an embodiment, the unique ID can satisfy various requirements, for example: a capability to generated unique ID across an application; the ID is numeric and not alpha-numeric or hex value; the ID does not have any business meaning attached, it will be a running sequence number; the ID can be called by multiple parts of the application concurrently; the ID service should be high resilient, fault tolerant and should handle peaks gracefully with not much of a wait time for the callers; and a capability to generate thousands of IDs per second with a fast response rate of a few milliseconds.
In accordance with various embodiments, additional features can include, for example:
In accordance with various embodiments, the teachings herein may be conveniently implemented using one or more conventional general purpose or specialized computer, computing device, machine, or microprocessor, including one or more processors, memory and/or computer readable storage media programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
In some embodiments, the teachings herein can include a computer program product which is a non-transitory computer readable storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the present teachings. Examples of such storage mediums can include, but are not limited to, hard disk drives, hard disks, hard drives, fixed disks, or other electromechanical data storage devices, floppy disks, optical discs, DVD, CD-ROMs, microdrive, 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 non-transitory storage of instructions and/or data.
The foregoing description has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the scope of protection to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art.
For example, although several of the examples provided herein illustrate operation of a data analytics environment with an enterprise software application or 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; in accordance with various embodiments, the systems and methods described herein can be used with other types of enterprise software application or data environments, cloud environments, cloud services, cloud computing, or other computing environments.
The embodiments were chosen and described in order to best explain the principles of the present teachings and their practical application, thereby enabling others skilled in the art to understand the various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope be defined by the following claims and their equivalents.
Krishnan, Balaji, Du, Junsheng, Gayen, Prasenjit
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
11010191, | Jul 02 2020 | Platform-independent interface for generating virtualized multi-service hardware systems and infrastructure | |
11095506, | Jul 22 2020 | ServiceNow, Inc | Discovery of resources associated with cloud operating system |
8316213, | Jul 31 2009 | Amazon Technologies, Inc | Management of object mapping information corresponding to a distributed storage system |
9430490, | Mar 28 2014 | eBay Inc | Multi-tenant secure data deduplication using data association tables |
9612815, | Aug 22 2013 | CA, Inc. | Method and tool for automating deployment of reference implementation architectures for pre-integrated multi-product solutions |
9641598, | Mar 31 2014 | Amazon Technologies, Inc | Contextually unique identifier generation service |
9787671, | Jan 30 2017 | XACTLY CORPORATION | Highly available web-based database interface system |
9811684, | Jun 17 2015 | Amazon Technologies, Inc. | Token-based storage service |
20070276833, | |||
20090030975, | |||
20100241804, | |||
20120011096, | |||
20120254949, | |||
20170223003, | |||
20170364601, | |||
20170371716, | |||
20180234356, | |||
20190372924, | |||
20200050608, | |||
20200104389, | |||
20210027115, | |||
20210112059, | |||
20210133340, | |||
20210349870, | |||
20220253788, | |||
WO2017120570, | |||
WO2019134226, | |||
WO2020049215, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 26 2022 | KRISHNAN, BALAJI | Oracle International Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 058833 | /0451 | |
Jan 26 2022 | DU, JUNSHENG | Oracle International Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 058833 | /0451 | |
Jan 26 2022 | GAYEN, PRASENJIT | Oracle International Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 058833 | /0451 | |
Jan 31 2022 | Oracle International Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jan 31 2022 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Aug 01 2026 | 4 years fee payment window open |
Feb 01 2027 | 6 months grace period start (w surcharge) |
Aug 01 2027 | patent expiry (for year 4) |
Aug 01 2029 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 01 2030 | 8 years fee payment window open |
Feb 01 2031 | 6 months grace period start (w surcharge) |
Aug 01 2031 | patent expiry (for year 8) |
Aug 01 2033 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 01 2034 | 12 years fee payment window open |
Feb 01 2035 | 6 months grace period start (w surcharge) |
Aug 01 2035 | patent expiry (for year 12) |
Aug 01 2037 | 2 years to revive unintentionally abandoned end. (for year 12) |