`
`(12) United States Patent
`Moore, Jr. et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,285,678 B2
`*Oct. 9, 2012
`
`gggig ;S>1’1ga“Si‘iYe”‘1~ ~~~~~~~~ ~ 707/803
`Ztggaggg 33*
`e
`et a .
`,
`,
`7/2010 Savage
`7,752,606 B2
`...................... .. 703/1
`4/2011 Haag et al.
`7,930,149 B2*
`5/2011 Weiss ei ai. N
`707/795
`7,945,589 131*
`2002/0198868 A1* 12/2002 Kinzhalin et al.
`707/3
`2003/0050886 A1*
`3/2003 Cohen et al.
`...... ..
`705/37
`
`
`
`auernsc
`l
`C 3.
`.
`:33:/liziiiz 2:: 12/223: §“d“””LZE-*3; {"1rrrrr at 312253
`l ere 3.
`.
`. . . . ..
`§882§8§3‘§Z§3‘ :1: 13/3882 El‘-i’1“‘°“,"1'1 """""""" " 7°7/$82‘;
`
`2006/0241999 A1* 10/2006 Tsyganskiy etal.
`705/9
`. . . . .. 707/2
`. . . . . . . .
`2006/0277155 A1* 12/2006 Bell et al.
`
`.
`.. 707/102
`2007/0033212 A1*
`2/2007 Fifield etal.
`2007/0038977 A1>I<
`2/2007 savage
`717/106
`.... .. 705/1
`2007/0061154 A1*
`3/2007 Markvooit et
`
`(Continued)
`
`OTHER PUBLICATIONS
`_
`_
`_
`_
`Continuous Integration by Martin Fowler, et a1.; www.mart1nf0w1er.
`
`(54) CONTINUOUS INTEGRATION OF BUSINESS
`INTELLIGENCE SOFTWARE
`
`(75)
`
`Inventors: J. Lynn Moore, Jr., Lucas, TX (US);
`Lance W Hankins, Allen, TX (US)
`
`<7»
`'
`<*> Notice»
`
`T><<Us>
`’
`subject to any disclaimer the term ofthis
`Patent is extended Or adjusted under 35
`U.S.C. 154(b) by Odays.
`,
`,
`,
`,
`,
`This patent is SUIJJBCI to a terminal dis-
`claimer.
`
`(21) App1.No.: 12/982,620
`
`(22)
`
`Filed:
`
`Dec. 30, 2010
`
`(65)
`
`Prior Publication Data
`
`com/articles/continuouslntegrationhtml; Oct. 14, 2005; pp. 1-9.
`
`US 2011/0167042 A1
`
`Jul. 7, 2011
`
`(Continued)
`
`Related U.s. Application Data
`.
`.
`.
`.
`(63) Continuation of application No. 11/324,603, filed on
`Jan. 3, 2006, now Pat. No. 7,885,929.
`
`Primaw Examiner — Phong Nguyen
`(74) Attorney, Agent, or Firm — Sharmon W. Bates;
`Kiemchuk Kubasta LLP
`
`(51)
`
`Int. Cl.
`(2006.01)
`G06F 7/00
`(2006.01)
`G06F 17/00
`(52) U_S_ CL ...... U 707/638; 707/695; 707/944; 715/229;
`.
`717/127, 717/170
`(58) Field of Classification Search .................. 707/638,
`707/695, 944; 715/229; 717/127, 170
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`6,539,396 B1*
`6,542,841 B1*
`7,243,090 B2
`7,505,991 B2
`
`3/2003 Bowman-Amuah ........ .. 707/769
`4/2003 Snyder ........................ .. 702/104
`7/2007 Kinzhalin et al.
`3/2009 Fifield etal.
`
`57
`
`ABSTRACT
`
`)
`(
`A method for providing automatic version control to a busi-
`ness intelligence system includes receiving business metric
`dataifrom a business intelligence system, creating an initial
`version of a business intelligence artifact derived from the
`,
`,
`,
`,
`,
`,
`,
`r.e°1e1Ved. I-"“S1i{“”§S i‘)ne‘.“° d?“a= 1aiP‘°ma‘1°aI1,Y S‘°‘.“i11g‘he1m‘
`tia verisiono t ei usinessinte igence 2111111 abct wit asouiiice
`Comm System’
`eteqmg a r.eq.u.eSt to t. e usmess m.te 1'
`gence system to modify the initial version of the business
`intelligence artifact, creating a subsequent version of the
`business intelligence artifact
`that
`includes the requested
`modification, and automatically storing the subsequent ver-
`sion ofthe business intelligence artifact with the source con-
`trol system.
`
`10 Claims, 2 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`DETERMINING OUTPUT REQUIRED
`PROVIDING AVERSION OF THEARTIFACT
`CREATING TESTCASES
`COMPRISING ASSERTIONS
`PROVIDING SOURCE CONTROL SYSTEM
`PROVIDINGAUTOMATEDAGENT
`UTILIZING SOURCE CONTROLSYSTEM
`TOAUTOMATICALLY REOORD
`CURRENTAND PREVIOUSVERSIONS
`OF THE ARTIFACTAT FIRST INTERVAL
`TESTING THEARTIFACT FUR
`ERRORSAT SECOND INTERVAL VIA
`AUTOMATED AGENT av DEFERMINING
`WHETHER ARTIFACT sATIsFIEs
`REQUIREMENTS OFASSERTIONS
`
`
`
`
`
`ERRORS
`DETECTED FROM
`
`
`
`
`GENERATING SUMMARVOF
`RESULTS OFTEST
`DELIVERING SUMMARY
`TO STAKEHOLDERS
`
`CORRECTING ERRORS
`
`
`000001
`000001
`
`BSP SOFTWARE LLC 1001
`BSP SOFTWARE LLC 1001
`
`
`
`US 8,285,678 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`2007/0067254 A1*
`3/2007 Chen et al.
`...................... .. 707/1
`2007/0192113 A1*
`8/2007 Sadowski et al.
`............... .. 705/1
`
`OTHER PUBLICATIONS
`
`Cognos Incorporated, “Architecture and Planning Guide”, Cognos
`Enterprise BI Series—Cognos ReportNet Version 1.1.MR2, 2004,
`pp. 1-5, 13-19 and 35-39 (17 total pages).
`Cognos
`Incorporated, “Cognos Report Studio Users Guide”,
`Congnos Enterprise BI Series—Cognos ReportNet Version
`1.1.MR2, 2004, pp. 1-15, 21-33 and 93-95 (31 total pgs).
`Cognos Incorporated, “Framework Manager User Guide”, Cognos
`Enterprise BI Series—Cognos ReportNet Version 1.1.MR1, 2004,
`pp. 1-159.
`“EBI Experts: Version Manager for Business Objects”, Feb. 2004,
`available
`at
`http://web.a1'chive.org/web/20050305091907/http://
`www.ebiexperts.com/products/vm4bo.html (3 pages).
`Infosol, “Business Intelligence Solutions—Version Manager for
`Business Objects” product brochure, Sep. 20, 2005 (3 pages).
`Kirk Haselden; “Editing a Package with SQL Server 2005 Integration
`Service Designer” and Figure 4, SQL Server Pro Magazine, Feb. 15,
`2005 (5 pages).
`
`Noad Business Intelligence BV, “EQM—Intelligent Thinking, Intel-
`lige11t Results” overview brochure, Jan. 30, 2004 (4 pages).
`Noad Business Intelligence BV, “Technical Insight, EQM—Intelli-
`gent Thinking, Intelligent Results” technical brochure, Oct. 13, 2004
`(3 pages).
`Software Forces, LLC, “.rpt INSPECTOR softwareforces.com Prod-
`uct Information” product brochure, Aug. 2002 (5 pages).
`“.rpt Inspector 3 Enterprise Suite” armotated screen shot. Feb. 2005.
`from
`http://www.softwareforces.com/sites/default/files/RIES/
`screen-shots/featuresEnt_14.jpg (1 page).
`. ”, Dec. 1,
`.
`“Experience the Power and Scope of Software Forces .
`2005, at http://web.archive.org/web/20051201032006/http://www.
`softwareforces.com/Product/products_index.htm (3 pg).
`“.rpt Inspector .
`.
`.
`: Features”, May 11, 2006, at http://web.archive.
`org/web/20060511225959/http://www.softwareforces.com/Prod-
`uct/ri/ent/3_1/rptInspector_Features.htm (9 pages).
`“.rpt Inspector 3.1 Enterprise Suite .
`.
`. ” annotated screen shot, Oct.
`2006,
`at http://www.softwareforces.com/sites/default/files/RIES/
`screen-shots/ri3es%20Interfacejpg (1 page).
`
`* cited by examiner
`
`000002
`000002
`
`
`
`U.S. Patent
`
`Oct. 9, 2012
`
`Sheet 1 of2
`
`US 8,285,678 B2
`
`DETERMINING OUTPUT REQUIRED
`
`PROVIDING A VERSION OF THE ARTIFACT
`
`CREATING TEST CASES
`
`COMPRISING ASSERTIONS
`
`PROVIDING SOURCE CONTROL SYSTEM
`
`PROVIDING AUTOMATED AGENT
`
`UTILIZING SOURCE CONTROL SYSTEM
`TO AUTOMATICALLY RECORD
`
`CURRENT AND PREVIOUS VERSIONS
`OF THE ARTIFACT AT FIRST INTERVAL
`
`TESTING THE ARTIFACT FOR
`ERRORS AT SECOND INTERVAL VIA
`
`AUTOMATED AGENT BY DETERMINING
`
`WHETHER ARTIFACT SATISFIES
`
`REQUIREMENTS OF ASSERTIONS
`
`ERRORS
`
`NO
`
`DETECTED FROM
`
`TEST?
`
`
`
`GENERATING SUMMARY OF
`
`RESULTS OF TEST
`
`DELIVERING SUMMARY
`
`TO STAKEHOLDERS
`
`CORRECTING ERRORS
`
`FIG. 1
`
`000003
`000003
`
`
`
`U.S. Patent
`
`Oct. 9, 2012
`
`Sheet 2 of2
`
`US 8,285,678 B2
`
`PRIOR ART
`
`BUSINESS INTELLIGENCE SOFTWARE ENVIRONMENT
`
`I" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ "I
`BI SOFTWARE INSTALLATION
`
`BI SOFTWARE
`
`ANALYZES/REPORTS
`
`ON DATA FROM
`
`DATA
`SOURCE
`
`CUBE
`
`Top OF
`
`DATA LAYER
`
`BUSINESS
`FRIENDLY
`
`VIEW OF
`
`REPORT
`
`SPECIFICATION
`
`BUILT ON TOP OF
`
`|
`CONTINUALLY MONITORS,
`VERIFIES AND REPORTS UPON |
`
`TEST SUITE
`
`EXECUTES
`
`TEST CASES
`
`AUTOMATICALLY
`STORES
`VERSIONS
`
`VERSION CONTROL
`REPOSITORY
`
`000004
`000004
`
`
`
`US 8,285,678 B2
`
`1
`CONTINUOUS INTEGRATION OF BUSINESS
`INTELLIGENCE SOFTWARE
`
`CROSS REFERENCE TO RELATED
`APPLICATION
`
`This application is a continuation of U.S. patent applica-
`tion Ser. No. 11/324,603, filed Jan. 3, 2006 and entitled “Con-
`tinuous Integration of Business Intelligence Software,” and
`this application is related to U.S. patent application Ser. No.
`12/982560 filed Dec. 30,2010 and entitled “Continuous Inte-
`gration of Business Intelligence Software” , both hereby
`incorporated by reference for all purposes.
`
`FIELD OF THE INVENTION
`
`This invention relates to continuous integration ofbusiness
`intelligence software, and more particularly to establishing an
`automated agent that continuously monitors changes to, and
`the health and consistency of, a business intelligence software
`installation and its corresponding metadata models, report
`specifications, and analysis cubes, as well as the correspond-
`ing data sources that the business intelligence software ana-
`lyzes.
`
`BACKGROUND AND SUMMARY
`
`Business intelligence systems are used in substantially all
`industries to gather, store, analyze, and report on business
`data or business intelligence. For example, manufacturing
`facilities use business intelligence systems to evaluate and
`report on factory production and personnel productivity as
`well as other critical metrics. Retailers use business intelli-
`
`gence systems to analyze trends in sales and to prepare reports
`for upper management.
`Traditional business intelligence systems are not well-de-
`fined, predictable, or testable. For example, using traditional
`business intelligence systems to develop a report specifica-
`tion might be done as follows.
`First, a business consumer requests a new report specifica-
`tion, and the task of creating the report specification is
`assigned to a report author skilled in the use of the report-
`authoring tool provided by the business intelligence software
`suite. While creating this report the report author might, for
`example, discover that the metadata model contained within
`the business intelligence software suite does not provide the
`information required for the report. The report author would
`in that case request that a change be made to the metadata
`model, and finish developing the report specification after the
`change is made.
`Once the report author finishes the report specification it is
`sent to a quality inspector or directly to the business customer
`for testing. Whoever is testing the report must manually
`execute the report, visually inspect the report for defects,
`make notes about any defects found, and generate an error
`report that is returned to the report author for correction. The
`report author will attempt to make corrections to the report
`according to the new requirements provided in the notes.
`Once the report author corrects the report it is submitted for
`testing all over again, and this process continues until there
`are no errors found.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`2
`
`is stored in a content repository and is lost if the repository is
`lost or corrupted. Third, information stored in a repository
`carmot be accessed to convert an updated version having new
`errors back to a previous working version without errors.
`Last, there is no way to see the changes that have been made
`to the report specification, or to view recent outputs without
`manually running every report.
`The present invention comprises a method and a system for
`applying continuous integration to business intelligence envi-
`ronments, including the business intelligence software instal-
`lations, metadata models, report specifications, and analysis
`cubes, that overcomes the foregoing and other difiiculties that
`have characterized the prior art. Continuous integration is a
`technique that has been practiced in the field of software
`development and is well known in the art. However, continu-
`ous integration has never been applied to business intelli-
`gence systems. The invention also employs version control,
`which is used to automatically record versions of business
`intelligence artifacts, including report specifications, meta-
`data models, and analysis cubes.
`The present invention applies continuous integration and
`automatic version control to improve the efiiciency of devel-
`oping, deploying, and altering business intelligence artifacts.
`In accordance with broader aspects ofthe invention, test cases
`can be defined for business intelligence artifacts. The test
`cases contain one or more assertions of characteristics that
`should be true of the business intelligence artifacts at a pre-
`determined time. The assertions are used to verify that the
`business intelligence artifacts are working properly. There
`may be pre—execution assertions of characteristics that the
`business intelligence artifacts should possess before being
`executed, and post-execution assertions regarding character-
`istics of the outputs produced by execution of the business
`intelligence artifact. The test cases can be grouped into test
`suites and further into projects.
`At a predetermined time interval, an automated agent
`executes any pre—execution assertions, executes the business
`intelligence artifact, stores the output of the execution of the
`business intelligence artifact and associates it with a version
`number, and executes any po st-execution assertions. Any fail-
`ures, or errors, are reported to the registered stakeholders,
`who are any persons with vested interests in the business
`intelligence artifacts, including business consumers, authors,
`etc. Thus, stakeholders are always assured that the system
`operates correctly and they are always aware of what has
`changed in the system.
`By practicing the method ofthe present invention, business
`intelligence environments are better managed and more
`stable and predictable. Further, business intelligence artifact
`developers are able to better serve customers’ ongoing needs
`by having the ability to update existing artifacts or revert to
`previously used artifacts without causing errors to or losing
`existing artifacts.
`
`DESCRIPTION OF THE DRAWINGS
`
`A more complete understanding of the present invention
`may be had by reference to the following Detailed Descrip-
`tion when taken in connection with the accompanying Draw-
`ings, wherein:
`FIG. 1 is a flowchart illustrating one embodiment of the
`steps of the method of the present invention; and
`FIG. 2 is an analysis class diagram showing the system of
`the invention in conjunction with the business intelligence
`software that is known in the art.
`
`This process leads to numerous problems. First, if the
`metadata model is changed pursuant to the author’s request,
`one or more previously created report specifications may fail
`to execute or produce incorrect results. Second, once a report
`Referring now to the Drawings, and in particular to FIG. 1,
`specification is edited the previous version no longer exists
`and carmot be accessed for reference, or the previous version
`there is shown a flowchart
`illustrating the steps of one
`000005
`000005
`
`65
`
`DETAILED DESCRIPTION
`
`
`
`US 8,285,678 B2
`
`3
`embodiment ofthe invention. The method of continuous inte-
`
`gration and automatic version control can be used in cor1junc-
`tion with any business intelligence artifacts, including report
`specifications, analysis cubes, metadata models, etc.
`When a business intelligence artifact is requested by a
`stakeholder, typically a business consumer, the first step of
`the invention is determining the output required from the
`business intelligence artifact by the stakeholder. This output
`may be a new business intelligence artifact or the revision of
`an existing one. Thus, the next step is providing a version of
`the business intelligence artifact, either by developing an
`original version of the artifact or creating a revised version.
`The project of developing or revising a business intelligence
`artifact may be assigned to one or more authors.
`An author may then create a test case for the business
`intelligence artifact comprising at least one assertion having
`requirements that should be satisfied by the business intelli-
`gence artifact at a predetermined time. A test case may com-
`prise numerous assertions that are defined by the author, and
`multiple test cases may be created and grouped into test
`suites.
`
`The assertions are used in the practice of the method to
`determine whether the business intelligence artifact is func-
`tioning properly. Examples of assertions are that the artifact is
`valid, has a specified name, has specified headers or footers,
`has specified colors, executes in a specified amount of time,
`produces a specified number of lines when executed, etc. The
`assertions may be requirements of the report specification
`before it is run or executed, i.e., pre-execution assertions, and
`requirements of the report specification after it is executed,
`i.e., post-execution assertions.
`The creation of test suites, test cases, and assertions is
`subject to the needs and desires of the stakeholders, and can
`be varied in terms of the number of assertions created, the
`requirements established, and the time at which they are
`created during the process. In fact, assertions can be defined
`before the report authors begin building the business intelli-
`gence artifact as well as during the building of the artifact as
`the report authors prepare the artifact.
`The method utilizes a source control system to record and
`maintain current and historical versions of the business intel-
`
`ligence artifacts during the development or revision of the
`business intelligence artifacts. The source control system
`records and saves the artifacts at a predetermined time inter-
`val that may be established to run every thirty (30) minutes,
`every hour, or at any other interval determined by the stake-
`holders of the business intelligence environment.
`The method also utilizes an automated agent to test the
`business intelligence artifact at another predetermined time
`interval. This time interval may be set as frequently as every
`four (4) hours, as infrequently as once per day, or other time
`intervals as determined by the stakeholders of the business
`intelligence environment. Generally this predetermined time
`interval is longer than the predetermined time interval for the
`source control system.
`The automated agent executes the most current version of
`the business intelligence artifact and all of the assertions to
`determine whether everything withi11 the business intelli-
`gence artifact is working as expected. In one embodiment the
`automated agent may test the business intelligence artifact
`against pre-execution assertions to determine whether the
`artifact is valid, then execute the artifact, and finally test the
`results or output of the execution of the artifact against post-
`execution assertions to verify the results. This step of testing
`the business intelligence artifact is repeated for every test case
`that is created by an author.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`The method of defining and running assertions is well
`known in the art of software development but has never been
`applied to business intelligence systems.
`It is through testing of the artifact via the automated agent
`that the invention allows the artifact to be continuously inte-
`grated by the changes that are made thereto while monitoring
`and testing the artifact for errors that may result from those
`changes.
`After the assertions and/or the business intelligence artifact
`are executed, a summary report of the results of the testing is
`created and made available to registered stakeholders. Then
`the authors that are responsible for the artifact can review any
`errors included within the report and make the necessary
`corrections. The authors may recognize additional assertions
`needed while making corrections and cause them to be
`executed during the next testing interval. The testing via the
`automated agent and the version control continues through-
`out the time that the business intelligence artifacts are cor-
`rected.
`
`In FIG. 2 there is shown an analysis class diagram showing
`the system of the invention. A typical business intelligence
`installation comprises software that typically employs at least
`one metadata layer that allows the software user to understand
`a data source. The business intelligence software will also
`often employ report specifications and/or analysis cubes that
`are built on top ofand use the metadata layer to understand the
`data source.
`
`FIG. 2 illustrates the system of the invention working in
`conjunction with the business intelligence software installa-
`tion. The purpose ofthe invention is to continuously monitor,
`verify, and report on the business intelligence software. This
`is done via an automated agent that executes one or more test
`cases that are comprised within a test suite. The invention also
`automatically stores versions of the work done by the busi-
`ness intelligence software user.
`Although preferred embodiments of the invention have
`been illustrated in the accompanying Drawings and described
`in the foregoing Summary and Detailed Description, it will be
`understood that the invention is not limited to the embodi-
`
`ments disclosed, but is capable of numerous rearrangements,
`modifications, and substitutions of parts and elements with-
`out departing from the spirit of the invention.
`
`What is claimed is:
`
`1. In a general purpose computer, a method for providing
`automatic version control to a business intelligence system,
`comprising:
`creating an initial version of a business intelligence artifact
`in the business intelligence system, wherein the business
`intelligence artifact is a user-authored object that pro-
`duces output when the business intelligence artifact is
`executed in the business intelligence system, and
`wherein the business intelligence artifact is selected
`from the group consisting of: a report specification and
`an analysis cube;
`providing an automated agent that interfaces with the busi-
`ness intelligence system to provide automated version
`control to the business intelligence artifact; the auto-
`mated agent independently performing the steps of:
`automatically storing the initial version of the business
`intelligence artifact with a version control system;
`detecting a request to the business intelligence system to
`modify the initial version of the business intelligence
`artifact to create a subsequent version of the business
`intelligence artifact that includes the requested modi-
`fication; and
`
`000006
`000006
`
`
`
`US 8,285,678 B2
`
`5
`automatically storing the sub sequent version ofthe busi-
`ness intelligence artifact in the version control sys-
`tem.
`
`2. The method according to claim 1, further comprising the
`automated agent recording metadata associated with the sub-
`sequent version of the business intelligence artifact.
`3. The method according to claim 1, further comprising:
`the automated agent automatically storing in the version
`control system a current version of the business intelli-
`gence artifact whenever modifications to the business
`intelligence artifact are detected.
`4. In a general purpose computer, with installed and run-
`ning business intelligence software forming at least part of a
`business intelligence system, a method for providing auto-
`matic version control
`to a business intelligence artifact
`authored by a user of the business intelligence system, the
`method comprising:
`the user creating a business intelligence artifact selected
`from the group consisting of: a report specification and
`an analysis cube;
`wherein the business intelligence artifact, when executed
`in the business intelligence system, generates output
`based upon business metric data obtained from the busi-
`ness intelligence system, wherein the business metric
`data corresponds to information related to the operation
`ofa business;
`providing an automated agent that interfaces with the busi-
`ness intelligence system; and
`
`10
`
`15
`
`20
`
`25
`
`6
`at a predetermined interval, the automated agent indepen-
`dently performing the steps of: monitoring the business
`intelligence system for modifications to the business
`intelligence artifact, and if modifications to the business
`intelligence artifact are detected, recording the modified
`version of the business intelligence artifact as a new
`revision of the business intelligence artifact in a version
`control system.
`5. The method according to claim 4, wherein the predeter-
`mined interval is every thirty (30) minutes.
`6. The method according to claim 4, wherein the predeter-
`mined interval is every one (1) hour.
`7. The method according to claim 4, further comprising the
`automated agent detecting a request to the business intelli-
`gence system to modify the business intelligence artifact to
`create a new version of the business intelligence artifact that
`includes the requested modification.
`8. The method of claim 7, further comprising the auto-
`mated agent automatically recording with the version control
`system the new version of the business intelligence artifact.
`9. The method of claim 7, further comprising the auto-
`mated agent recording metadata associated with the new ver-
`sion of the business intelligence artifact.
`10. The method of claim 7, further comprising the auto-
`mated agent automatically recording in the version control
`system a current version of the business intelligence artifact
`whenever modifications to the business intelligence artifact
`are detected.
`
`000007
`000007