This application claims the priority benefit of U.S. application Ser. No. 11/868,472 filed Oct. 6, 2007.
1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, apparatus, and products for generating Business Process Execution Language (‘BPEL’) control flows.
2. Description of Related Art
The development of the EDV AC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely complicated devices. Today's computers are much more sophisticated than early systems such as the EDVAC. Computer systems typically include a combination of hardware and software components, application programs, operating systems, processors, buses, memory, input/output devices, and so on. As advances in semiconductor processing and computer architecture push the performance of the computer higher and higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
Modem businesses rely on database technology to track critical business information. This information is often spread across many database systems. The information may, in any business activity, be modified, moved, or otherwise used. To increase efficiency in business activities, a business may from time to time examine the information in the database system. To analyze information without increasing the strain on the database system used for typical business activities, the information may be extracted, transformed, and loaded (‘ETL’) into an external system, called a data warehouse, where it is analyzed. Each ETL dataflow from the database system to the data warehouse may be a database application program, a Sequenced Query Language script, or a batch script. ETL performed on any database system may include many discrete ETL dataflows. Currently, creating a single control flow to represent the combination of many ETL dataflows is a tedious, manual, error-prone, and time-consuming task.
Methods, apparatus, and products for generating Business Process Execution Language (‘BPEL’) control flows to populate a data warehouse for analysis of data of an operational system are disclosed that include identifying source tables in the operational system and one or more corresponding target tables in the data warehouse; creating BPEL steps to represent links between each source table in the operational system and each corresponding target table in the data warehouse; determining a sequence for the BPEL step; and adding the BPEL steps to a BPEL control flow according to the determined sequence.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular descriptions of exemplary embodiments of the invention as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts of exemplary embodiments of the invention.
Exemplary methods, apparatus, and products for generating BPEL control flows in accordance with the present invention are described with reference to the accompanying drawings, beginning with
The system of
Businesses may analyze data in the operational system (322) to increase efficiency of the operational system (322). To analyze the data without increasing the strain on the operational system caused by examining the data in the operational system, the data is transferred to an external system, a data warehouse. A data warehouse is a repository of a historical data. Data in a data warehouse is typically:
The process of populating such a data warehouse is typically described as ETL—Extract, Transform, and Load. ETL is a process that involves extracting data from sources, transforming the data, and loading the data into the data warehouse.
The operational system (322) of
The system of
As mentioned above the system of
The system of
Generating BPEL control flows in accordance with the present invention is generally implemented with computers, that is, with automated computing machinery. In the system of
Stored in RAM (168) is a BPEL control flow creator (125), a module of computer program instructions improved for generating BPEL control flows according to embodiments of the present invention. The BPEL control flow creator (125) is capable of identifying source tables in the operational system (322) and one or more corresponding target tables in the data warehouse (324) and creating BPEL steps (328) to represent links between each source table in the operational system (322) and each corresponding target table in the data warehouse (324). The BPEL control flow creator (125) of
Also stored in RAM (168) is an operating system (154). Operating systems useful generating BPEL control flows according to embodiments of the present invention include UNIX™, Linux™, Microsoft XP™, AIX™, IBM's i5/0S™, and others as will occur to those of skill in the art. The operating system (154), BPEL control flow creator (125), BEP steps (328), and sequence (344) in the example of
The computer (152) of
The example computer (152) of
The exemplary computer (152) of
For further explanation,
The method of
Creating (326) BPEL steps (328) to represent links (306, 308, 310, 320) between each source table (302) in the operational system (322) and each corresponding target table (304) in the data warehouse (324) may be carried out by implementing a placeholder associated with an identification of the target and source table connected by the link. A placeholder may be implemented as an element in an XML markup document. Consider for example, the following exemplary XML pseudocode:
The exemplary XML above includes a <step> tag. The <step> tag identifies a placeholder for a user assigned BPEL action. The <step> tag above identifies the BPEL step as step number 129309. The step number is a number that uniquely identifies a BPEL step. In this example the step number does not identify the sequence in which the BPEL step is executed in a BPEL control flow.
The exemplary XML above also includes a <sourceTable> tag. The <sourceTable> tag identifies the source table from which data is extracted during population of the data warehouse. In this example, the source table is identified as Operational System\CustomerInfo.
The exemplary XML above also includes a <column> tag. The <column> tag identifies the column of data that is to be extracted from the source table during population of the data warehouse. In this example, the column of data that is to be extracted from the source table is the “CustomerName” column.
The exemplary XML above also includes a <targetTable> tag. The <targetTable> tag identifies the target table that is loaded during population of the data warehouse. In this example, the target table is identified as DataWarehouse\CustomerInfo.
The exemplary XML above also includes a <column> tag for the target table. The <column> tag identifies the column of data in the target table that is to be loaded during population of the data warehouse. In this example, the column of data that is to be loaded during population of the data warehouse is the “CustomerName” column in the target table.
The method of
Determining (332) relationships among source tables (302) in the operational system (322) may be carried out by retrieving metadata describing the source tables in the operational system. Such metadata may explicitly describe the relationships among the source tables. Determining (332) relationships among source tables (302) in the operational system (322) may also include inferring the relationships from the operational system. Relationships among tables may be inferred by creating a profile of the system. Database profiling tools create a profile of a database by identifying foreign and primary keys, foreign and primary tables, identifying a database schema that defines the structure of the database, monitoring movement, insertion, deletion, and transformation of data within the database, identifying names of tables in the database, and in other ways as will occur to those of skill in the art.
Determining (334) relationships among target tables (304) in the data warehouse (324) may be carried out in a manner similar to that of determining relationships among source tables in the operational system. Determining (334) relationships among target tables (304) in the data warehouse (324) may be carried out by retrieving metadata describing the target tables in the data warehouse or by inferring the relationships from the data warehouse.
The method of
This exemplary XML is an example of a pre-BPEL control flow having several steps in a determined sequence which may be converted into a BPEL control flow. As explained above, a BPEL step is not a BPEL action that may be carried out, but instead is a placeholder for such an action. To convert the exemplary pre-BPEL control flow to a BPEL control flow, a user may assign specific BPEL actions for each step. BPEL actions may include an ETL specific activity, a call to a Web service, or some other action useful in populating a data warehouse for analysis.
The exemplary XML above includes a <flow> tag that identifies the pre-BPEL control flow. In this example the <flow> tag has a name attribute identifying the control flow as, “PreControlFlowExample.”
The exemplary XML above also includes a <step> tag having an identification of 129309. In this example, step 129309 is the first BPEL step in the determined sequence of BPEL steps for the exemplary pre-BPEL control flow. This exemplary step includes a <source Table> tag that identifies the source table from which data is extracted during population of a data warehouse. In this example, the source table is identified as OperationalSystem\CustomerInfo. This exemplary step also includes a <targetTable> tag that identifies the target table that is loaded during population of the data warehouse. In this example, the target table is identified as Data Warehouse\CustomerInfo.
The exemplary XML above also includes a <step> tag having an identification of 129420. In this example, step 129420 is the second BPEL step in the determined sequence of BPEL steps for the exemplary pre-BPEL control flow. This exemplary step includes a <source Table> tag that identifies the source table from which data is extracted during population of a data warehouse. In this example, the source table is identified as OperationalSystem\ProductInfo. This exemplary step also includes a <targetTable> tag that identifies the target table that is loaded during population of the data warehouse. In this example, the target table is identified as Data Warehouse\ProductInfo.
For further explanation,
The method of
The method of
A parallel container is a portion of a BPEL control flow that represents actions that may be carried out in parallel during the population of the data warehouse. Creating (410) one or more parallel containers (412) for the BPEL steps (328) having the same sequence number (408) may be carried out by creating for each step having the same sequence number, a sequence element in a pre-BPEL control flow markup language document and adding (414) the BPEL steps (328) having the same sequence number (408) to a same parallel container may be carried out by inserting those BPEL steps with the same sequence number into their corresponding sequence elements in the pre-BPEL control flow. Consider as an example, the following XML code:
This exemplary XML is an example of a pre-BPEL control flow having several parallel steps which may be converted into a BPEL control flow. As explained above, a BPEL step is not a BPEL action that may be carried out, but instead is a placeholder for such an action. To convert the exemplary pre-BPEL control flow to a BPEL control flow, a user may assign specific BPEL actions for each step. BPEL actions may include an ETL specific activity, a call to a Web service, or some other action useful in populating a data warehouse for analysis.
In the exemplary XML above the pre-BPEL control flow includes a <sequence> element that identifies parallel BPEL steps. BPEL steps included in sequence elements of the same hierarchical level in the pre-BPEL control flow are parallel BPEL steps. There are five BPEL steps represented in the exemplary XML above including steps 129309, 10103, 10104, 10250, 102940. Steps 129309 and 129420 are parallel BPEL steps. Within step 129309 are three other BPEL steps. BPEL step 10103 is parallel to steps 10104 and 10250. Only steps having identification numbers are shown in the above example for clarity but readers of skill in the art will recognize that such a pre-BPEL control flow may also include other information such as, for example, target and source tables for each BPEL step.
For further explanation,
The method of
The method of
The method of
Exemplary embodiments of the present invention are described largely in the context of a fully functional computer system for generating BPEL control flows. Readers of skill in the art will recognize, however, that the present invention also may be embodied in a computer program product disposed on signal bearing media for use with any suitable data processing system. Such signal bearing media may be transmission media or recordable media for machine-readable information, including magnetic media, optical media, or other suitable media. Examples of recordable media include magnetic disks in hard drives or diskettes, compact disks for optical drives, magnetic tape, and others as will occur to those of skill in the art. Examples of transmission media include telephone networks for voice communications and digital data communications networks such as, for example, Ethernets™ and networks that communicate with the Internet Protocol and the World Wide Web as well as wireless transmission media such as, for example, networks implemented according to the IEEE 802.11 family of specifications. Persons skilled in the art will immediately recognize that any computer system having suitable programming means will be capable of executing the steps of the method of the invention as embodied in a program product. Persons skilled in the art will recognize immediately that, although some of the exemplary embodiments described in this specification are oriented to software installed and executing on computer hardware, nevertheless, alternative embodiments implemented as firmware or as hardware are well within the scope of the present invention.
It will be understood from the foregoing description that modifications and changes may be made in various embodiments of the present invention without departing from its true spirit. The descriptions in this specification are for purposes of illustration only and are not to be construed in a limiting sense. The scope of the present invention is limited only by the language of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6014670 | Zamanian et al. | Jan 2000 | A |
6167405 | Rosensteel et al. | Dec 2000 | A |
6850952 | Tse et al. | Feb 2005 | B2 |
20030033155 | Peerson et al. | Feb 2003 | A1 |
20030217069 | Fagin et al. | Nov 2003 | A1 |
20050086297 | Hinks | Apr 2005 | A1 |
20050251527 | Phillips et al. | Nov 2005 | A1 |
20050257098 | Andrews et al. | Nov 2005 | A1 |
20050261918 | Carr et al. | Nov 2005 | A1 |
20070074155 | Ama et al. | Mar 2007 | A1 |
20070209041 | Exley et al. | Sep 2007 | A1 |
20080320486 | Bose et al. | Dec 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20120226657 A1 | Sep 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11868472 | Oct 2007 | US |
Child | 13467304 | US |