`RPX v. AIT
`
`
`
`U.S. Patent
`
`%mDH0.,_2.m.Hm_..3o_m_mss
`J“<._.<0FH
`
`u3.m1...........W3,.s.........1-_zflmsmam
`_1E3818
`
`003.,
`
`ws_=am_s_8H,mmmoéom¢mE,__E
`
`
`
`
`U.S. Patent
`
`Jan. 20, 1993
`
`Sheet 2 of 12
`
`5,710,900
`
`_2m_.5_,m
`
`moEm5_z_s_2
`
`mo<“_mEz_
`
`mmm_z_m:m
`
`zo_Es_mou_z_
`
`nsmm
`
`sm5>mm:m
`
`2.232%22:
`
`
`
`m_oEE_.z_m<m:oo._
`
`263
`
`msooz
`
`N.UHm
`
`55%.
`
`m_._=B:om
`
`s_Em>mm:m
`
`._.m>._<z<¢m_n_J_E
`
`EommmEém
`
`zoEz_”_ma
`
`zmzwamam
`
`:,m_s_ma<z§
`
`sm_B>mm:m
`
`wz_2m_>
`
`s_m_5>mm=m
`
`E3452
`
`Hn_<
`
`8
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 20, 1998
`
`Sheet 3 of 12
`
`5,710,900
`
`16
`
`SUBSYSTEM
`
`DSM
`
`
`
`SMART
`REPORT
`GENERATOR
`
`
`
` METADATA
`
`REQUEST
`MODULE
`
`CLIENT
`SUBSYSTEM
`
`1 3
`METADATA
`RE POSITORY
`
`
`SCHEDULER
`SUBSYSTEM
`
`METADATA
`LOAD AND UPDATE
`MODULE
`
`
`
`U.S. Patent
`
`Jan. 20, 1998
`
`Sheet 4 of 12
`
`5,710,900
`
`
`
`DAI
`SUBSYSTEM
`
`
`SOL
`GENERATOR
`
`
`
`
`
`METADATA
`QUERY
`MODULE
`
`
`
`DATA
`WAREHOUSE
`
`
`
`
`
` REPORT
`
`DAI
`SUBSYSTEM
`
`SCHEDULER
`
`
`
`m0SU.
`
`m1.m,2
`
`_.DS
`
`t
`
`21
`
`‘I5
`
`009ll01HI
`
`
`
`
`
`8fiE_o:m..mpmE.c>m_2.._=.“n§mama.3._._n_5.38:335>tag::9:sanemm52...:2;¢_n.._mmmaa.ma.2ouaoucmB«mam.._.2.5omm?
`
`
`
`
`
`
`3.5.95_mw.5aoEoEwm..__§__.a_2J2..t._a...uu3.5.?ma5.o._.§n_Em.3«mam_€2._a_._c.u.__.u.:.—race»;_U
`ma::D.5EU___.Eh.!m.EN
`
`
`mm..nB—$~3_a..._m.33:3$3:count:2...
`
`
`
`
`
`t
`
`t..%._..
`
`ann=H
`
`
`
`U.S. Patent
`
`Jan. 20, 1998
`
`Sheet 6 of 12
`
`5,710,900
`
`
`
`fig_m_!_s_§_a
`
`
`
`u....5n_m:oo8._moE_._.
`
`
`
`—.m_fi.o—.6225E_:om:aqEoo
`
`
`
`”E_._mmu_2.cuE__._n_
`
`32:3»:
`
`.mEeEmmw
`
`
`
`”mEuEmmmmama.no:25.”mEoEmmwuwczuo
`
`
`
`
`
`
`
`mmE_u_u<Sewu:wEmmm_.C.mE_..n_
`
`
`
`mmm_oou_Emsom22m
`
`mmEuu<Eofi
`
`
`
`
`
`baconc£.u_:n.on_Eem
`
`
`
`
`
`Sun.m:__ouoEu:23m
`
`
`
`n..ua.auoEnm
`
`
`
`
`
`Emam_.__..2_o22m
`
`
`
`._uo.=o..._wE_._.:om_..EEooanunuonnmmE:.wmmmm.£_._uEmomEinm_m.__._mams.2552mm
`
`
`
`
`
`
`
`.%_smHm._m:<
`
`”m_..u._u:<Euni...
`
`_oEmZ32¢
`
`h E
`
`m
`
`
`
`OS
`
`m
`
`4...
`
`m10:2m
`
`Llu_._uS
`
`,mn....
`
`21.
`
`II5
`
`0001I!0.I.__7.
`
`
`
`
`
`Dnlaazuwmco_fiE5__c_mmo_.__m:m
`
`
`
`Hmagic:2:98:
`
`
`
`n_.._w_..._mmm_u2ow_om
`
`
`
`009’0
`
`
`
`nE“Em,1n.
`
`u
`
`1.mm
`
`n"m8mS
`
`mEBBB!BBB
`
`
`
`m=._mmo—2Waaomco_~mEE_E_4mm_._o=u_mr._
`mmmcfiamHa.9m
`
`
`
`US. Patent
`
`Jan. 20, 1993
`
`Sheet 9 of 12
`
`003,017,5
`
`
`
`
`
`Em:=o=n_Eauo:_._o____._ou
`
`
`
`“sumaauoi.£.____<
`
`
`
`_._o=a_w_n_:_m._.m_.60
`
`.336850
`
`umxoflw«E0:.0$23.32
`
`
`
`>0...:o_5n__.._m_n
`
`
`
`m_._o=oEoi22m
`
`
`
`__._aoom_n_>n_n_m_o
`
`
`
`==._oom_n_E:_wan_
`
`E .
`
`
`
`..3032.39omflopt
`
`munuo..u_.__©I
`
`mumuflao
`
`U0.0F__.__O.>@260=
`
`u2_w_a._=:
`
`
`
`
`
`conaamau_n_m_ooo_.n_mwubgw
`
`
`
`mo_uw§:nE..._u
`
`mmogmzm
`
`E592.92,. naom:o_.mc.coE_
`
`N9.
`
`2Ohm
`
`
`
`
`3U
`
`e
`
`2mJ
`
`am01whS
`
`P.
`
`003,017,5
`
`
`
`wofim_U8.¢2:o..._.__m___m_anon.UWmum?_._o_=9.=_E1muonom:2...GE,2.3»:
`
`
`
`
`
`
`
`
`
`mm_a§__umH
`
`.mE.
`
`nP.a—GE
`
`
`
`..lH84|.3PamU
`
`Jan. 20, 1998
`
`Sheet 11 of 12
`
`003,017’5
`
`«mamm._EwwEmm
`
`‘~‘1--Lf./ff’!/.1/Ar//_f_I
`
`_..-_‘t‘rI.r_/tr.//I/.(/.//_/I
`
`32wa__8
`
`IW‘...
`
`
`
`Em_mc<mmEH2_oo._.am>8m_n_.cmEm»m:m__2
`
`
`
`
`
`
`
`.m.am555!.3..._5.:has
`
`
`
`
`
`
`EoflRad5En.comaUumufluuumac?n55uufiuuwum...flzouwyoumuim22w«Pamum.:u><o
`
`
`
`newuuaauaufimainunoum«Ema09:24.mmm.HBu.»3HuhmficavE.E—.mn9Hum5.3E.Em.mn
`
`Emu?m.55uoumuuwum¢magnum
`
`
`
`nan?uma..—.m>mama33.cunmumr
`
`
`
`mafiauufimufifim
`
`
`
`mmfinaaflumnano
`
`
`
`E“Savannanu:_..£uuoEu._m32wuuoumwas
`
`u..o.mufiwwEuamyfiuuavan
`
`U5095.;553».ma?523main
`
`
`
`ucaaficofixi:35uu_u.uaEu.mwfloum
`
`
`
`£398in55hawvu_uuoEuMwuuofi
`
`
`
`mfinafia=3:33uuflovofiummuuoum
`
`
`
`dmflupu55.23.»uofim29mufinm
`
`unamEcassava.nununnfinofim55$2
`
`duim33w
`
`
`
`
`
`one55._Smo«.Uuofiuofiommagnum
`
`madam9.3m«E5uafiyfiEuumuruuvBE.
`
`Hmfl..—._5D=Om2.655Uflauommm2$3?n5.5.u.au._Uum<3.§...,.you
`
`
`
`
`
`Snwuxuoum».Eo=._o535:2Euamubun
`
`mm89¢wnotofioumwe.unE:Z3umaubufl
`
`o8.:.9a8.nmEoaasm
`
`
`
`uaomwununfikm.wwrficoumuuw.unoum.wfifim.
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 20, 1998
`
`Sheet 12 of 12
`
`5,710,900
`
`FIG. 13
`
`140
`
`START
`
`
`
`THE USER SPECIFIES A
`BUSINESS CONCEPT
`
`141
`
`142
`
`CLIENT SUBSYSTEM 12
`PROVIDES TI-IE usen w|TH
`THE USER SPECIFIES ONE
`A LIST OF coI_uMNs son
`oR MORE ATTFIIBUTES FOR
`THE BUSINESS CONCEPT.
`THE PURPOSE OF MAPPING
`
`BUSINESS INDICATORS
`
`
`
`
`
`
`
`
`150
`
`152
`
`154
`
`156
`
`CLIENT SUBSYSTEM 12
`
`PROVIDES THE USER WITH
`U353 SELECTS AM
`
`"AGGREGATE METHOD‘ FOR
`THE LIST OF COLUMNS OF
`TABLES IN DATA
`THE BUSINESS INDICATOR
`WAREHOUSE 24
`THAT Is MAPPED
`
`
`
`
`THE USER MAPS EVERY
`ATTFIIBUTE T0 A COLUMN
`
`THE USER SELECTS THE
`UNIT OF MEASUREMENT
`
`
`
`
`
`
`THE USER SPEGIFIES ONE
`OR MOFIE BUSINESS
`INDICATORS BY 'MAPPING"
`A BUSINESS INDICATOR TO
`A COLUMN IN A TABLE
`WITHIN DATA
`WAREHOUSE 24
`
`158
` ENTER
`ADDITIONAL
`
`BUSINESS
`
`CON(;’EPTS
`
`
`
`
`
`
`CLIENT su|3sYsTEM 12
`ENSURES THAT TABLES
`HAVING BUSINESS
`INDICATOR coI_uMNs CAN
`BE JOINED WITH TABLES
`THAT HAVE BUSINESS
`ATTFIIBUTE COLUMNS
`
`
`
`
`
`5 ,7 10,900
`
`1
`SYSTEM AND METHOD FOR GENERATING
`REPORTS FROM A COMPUTER DATABASE
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates to expert systems and
`reporting systems. and more specifically to a system and
`method for generating reports from a computer database
`from a computer database.
`Storing large amounts of transaction-level data for later
`analysis (data warehousing) is becoming recognized as an
`enabler for businesses that are seeking a competitive advan-
`tage. Tightening competitive environments and global eco-
`nomic trends are forcing businesses and entire industries to
`search for a means to gain an advantage. This advantage can
`be realized through the use of strategic data relating to their
`business—al.lowing better and more timely decisions, lead-
`ing to a better understanding of their business and support
`for their customers, that ultimately leads to growth. To make
`use of data warehouses, the data must be retrieved, orga-
`nized and then presented in an undastandable format.
`Discovery tools are used to retrieve, analyze and present
`data from data warehouses. ‘These tools can range from very
`complex modeling tools to relatively simple end user query
`tools designed to do no more than mask the complexity of
`the SQL programming language from the user. Automated
`tools that search the data for trends or relationships are also
`considered discovery tools.
`The marketplace is comprised of various tool vendors
`whose products provide solutions for a portion of the entire
`knowledge discovery process. Therefore. to effectively uti-
`lize their data, the user community is forced to pick multiple.
`disjoint tools. In addition. these tools are targeted toward the
`expert user who has an in-depth knowledge of the data and
`database formats or the various analytic methods that are
`implemented in the tool. Existing products also do not let the
`business user explicitly and iteratively represent business
`knowledge. Finally, the output of existing tools consists of
`tables of numbers that users have to analyze and interpret.
`Data warehouses, and databases in general, typically have
`complex structure organized for efliciency of data retrieval,
`not ease-of-use by the end user. Users, especially business
`users, desire reports in their vocabulary, not the vocabulary
`of the database. While some tools in the marketplace allow
`a user to define new terms and map those terms to the
`database, the management of related sets of new terms is not
`supported. That is. the relationship of a new t'e11'n to existing
`terms is not automatically detected for the user.
`In addition to these diiliculties, it is common for the
`contents of a. report to cause a user to desire another, similar
`report. Saving and reusing sets of related reports (re-
`generating the reports over a new set of data) is also desired.
`The generation of related reports and the re-generation of
`reports over new data is a capability not adequately available
`in the marketplace.
`Therefore. it would be desirable to provide a system and
`method for generating reports from a computer database
`which allow a user to retrieve and analyze data with one tool
`without requiring the user to have knowledge of underlying
`data structures or of the SQL programming language, which
`allow a user to define new terms and detect and manage
`relationships between terms. which allow a user to easily
`generate related reports, and which allow a user to re-run
`sets of related reports over new data.
`SUMIMARY OF THE ]NVEN"l'ION
`In accordance with the teachings of the present invention,
`a system and method for genuatingreports from a computer
`database are provided.
`
`2
`
`5
`
`An application within the system includes a graphical user
`interface (GUI) which allows the user to select and specify
`the parameters for the report. display the report. print the
`report. and save the report Afolder management subsystem
`allows the user to create a folder object for storing the report
`within the database, store the report within the folder object,
`and retrieve the report from the folder object using the GUI.
`_A business information setup subsystem allows the user to
`create data types and create and-constrain relationships
`between the data types. An analyst definition subsystem
`allows the user to select an analyst representing a method of
`analysis to use in generating the report using the GUI.
`Finally, a viewer module displays the report.
`A database computer includes a database containing the
`data. The data includes a collection of information about an
`enterprise of the user. A server computer is coupled to the
`database computer and executes a database management
`program. A client computer is coupled to the server and
`executes an application program. The application program
`allows a user to define predetermined data types, to define
`relationships between the data types. to define parameters
`for the report, to define a method of analysis for the report,
`and to create the report. The report summarizes the data in
`terms of the data types, the data relationships, and the
`method of analysis.
`It is accordingly an object of the present invention to
`provide a system and method for generating reports Erom a
`computer database which includes a single application or
`tool.
`
`35
`
`45
`
`55
`
`It is another object of the present invention to provide a
`system and method for generating reports from a computer
`database which allow a user to define and select variables
`and relationships between variables in creating a report.
`It is another object of the present invention to provide a
`sy stem and method for automatically detecting relationships
`between new terms entered by the user, and for managing
`these relationships in a hierarchy of related terms.
`It is another object of the present invention to provide a
`system and method for generating related reports. and allow
`for the regeneration of related reports over new data.
`It is another object of the invention to provide a system
`and method for iteratively entering business knowledge.
`It is another object of the invention to provide a system
`that generates reports which combines natural language text.
`tables and graphs.
`It is another object of the invention to provide a system
`that generates reports based on a user specified schedule or
`a user defined business exception.
`It is another object of the invention to provide a system
`that is easy to use by business users who do not have
`knowledge of database formats,
`the SQL programming
`language and statistical or artificial intelligence based ana-
`lytic methods.
`It is another object of the invention to adhere to existing
`and emerging open systems standards.
`It is another object of the invention to abstract data
`analysis into generic analyses. These analyses are
`Sumrnarization, Change, Trend and Comparison.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`65
`
`Additional benefits and advantages of the present inven-
`tion will become apparent to those skilled in the art to which
`this invention relates from the subsequent description of the
`preferred embodiments and the appended claims, taken in
`conjunction with the accompanying drawings, in which:
`
`
`
`5,710,900
`
`3
`FIG. 1 is a block diagram of the system of the present
`Invention;
`
`FIG. 2 is a block diagram of a client subsystem within the
`system of FIG. 1;
`FIG. 3 is a block diagram of a data abstraction intelligence
`subsystem within the system of FIG. 1;
`FIG. 4 is a block diagram of a data and schema manipu-
`lation subsystem within the system of FIG. 1;
`FIG. 5 is a block diagram of a scheduler subsystem within
`the system of FIG. 1;
`FIGS. 6-12 are views of a tool for creating reports which
`employs a graphic user interface;
`FIG. 13 is a flow diagram illustrating how metadata is
`created.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMIBODIMENT
`
`Referring now to FIG. 1. system 10 includes four major
`subsystems: client subsystem 12. data abstraction intelli-
`gence (DAT) subsystem 14, data and schema manipulation
`(DSM) subsystem 16, and scheduler subsystem 18.
`In connection with the description of system 10. the
`following definitions are provided:
`An Alert Condition is a user-defined condition or set of
`conditions that when satisfied returns an Alert Message.
`For instance, an Alert Condition may he defined so that
`when the inventory of brand A shins drops below 200
`units for a given week, system 10 produces an Alert
`Message.
`An Alert Message is a message that notifies the user that an
`Alert Condition has been satisfied. From an Alert Mes-
`sage the user can select any number of Smart Report
`Definitions to run. An example of an Alert Message would
`be “Alert: the inventory of brand A shirts is below 200."
`An Alert Smart Report is a type of Smart Report that
`describes an Alert Message in detail. The Alert Smart
`Report has a description of what happened. when, and
`probable reasons why it occurred.
`Business Concepts are high-level classifications within a
`certain business that are used to further describe indica-
`tors of the business’ success (e.g.. Customers. Products.
`Geography, Profitability). Each Business Concept has
`attributes that fiuther define each Business Concept (e.g.
`Brand, Manufacturer‘. Size for the Business Concept
`Product).
`Business Indicators are classifications across Business Con-
`cepts that are usually related to numerical values Sales
`Volume. Inventory. Price). Business indicators have meth-
`ods and formulae that pertain to their computation (e.g.
`Total Sales) and causal associations between Business
`Indicators (e.g. If Price increases Sales Volume should
`decrease). Wiflrin a Business Indicator, segments can be
`defined which describe a specific group of Business
`Indicators of interest (e.g. Senior Customer. Company A
`Products).
`A Change Analysis Report is a compound document describ-
`ing Business Indicators over two time periods. Within
`system 10, one can specify two periods of time and see the
`difference of a chosen Business Indicator for that paiod
`(e.g.. How did this year’s sales of textiles compare to last
`years sales?) Change Analysis Reports can report results
`for a day, week, month, quarter. year. or other defined
`period.
`Compound Business lndicators are user-defined Business
`Indicators created by combining primitive Business Indi-
`cators with arithmetic and set operations.
`
`4
`A Data Warehouse is a very large collection of data that is
`housed in one oi-more databases. These databases usually
`reside on database server computers and can be either in
`one location or distributed geographically.
`End Users are users for which system 10 is specifically
`designed. End users typically have knowledge of a busi-
`ness’ operations and for this example have used Microsoft
`Windows (Windows 3.1, Windows NT & Windows 95).
`End users typically do not have expertise in SQL code
`generation or the specific data structrnes of the databases
`they want to access.
`Enterprise Inforrnaliou Factory (EIF) is a commercial soft-
`ware package that allows typical business users to access
`their data warehouse data. The data warehouse is essen-
`tially a passive environment that usually requires the use
`of SQL code and knowledge about the structure of the
`database to access data. The EIF differs from the data.
`warehouse by providing a foundation for providing tools
`to allow users without SQL or database knowledge to get
`data out of their databases.
`Hyper’I'ext Markup Language (HTML) is an emerging stan-
`dard format for software documents that allows for the
`inclusion of hyperlinks and graphics (pictures, graphs,
`tables) in text documents. A hyperlink is a "hot" area in
`the document (usually text in a difierem color than the
`surrounding text). that when clicked on. shows another
`document that is related or linked to the original HTML
`document.
`System Administrators are those users of system 10 who
`have an intimate knowledge of the databases and data
`structures of an organization. Often the System Admin-
`istrator has the title of "database manager".
`Metadata is the collection of information about the end
`user’s particular business. After installation this informa-
`tion is stored in the end user's database and is used to
`tailor reports to the end user’s particular business needs.
`Metadata includes. but
`is not
`limited to, Business
`Concepts. Business Indicators and Segments.
`Object Linking and Embedding (OLE) is a computer format
`that allows objects (e.g.. graphs.
`tables) in computer
`documents to, when double clicked on, bring up the
`software application that created the object (graph. table.
`document).
`Primitive Business Indicators are Business Indicators that
`are directly mappable to data in the data warehouse. They
`are set up during installation of the present invention and
`are not changeable by the user.
`Segments are user-defined groups that are defined witlrin a
`Business Concept having a meaningful attribute in com-
`mon. For instance. the a segment “Senior Customers”
`might be those customers whose age is greater than 65
`years.
`Reports are compound documents that display data from a
`database in text and graphics (e.g., graphs,
`tables).
`Reports are the result of running a Smart Report Defini-
`tion. Smart Reports are in the I-l'I'MLformat and are OLE
`2.0 compliant.
`Smart Report Definitions are System Templates that have
`been customized to include particular Business Concepts,
`Business Indicators. andlor segments. Smart Report Defi-
`nitions can be immediately ‘run” to produce a “Smart
`Report", saved to he run later or saved and scheduled to
`be run later.
`
`Structured Query Language (SQL) is a structured language
`for viewing the contents of a relational database.
`Summarization Smart Report is a type of Smart Report that
`shows a roll-up or summarization of a specified Business
`
`5
`
`ID
`
`15
`
`25
`
`30
`
`35
`
`45
`
`55
`
`60
`
`65
`
`
`
`5,710,900
`
`5
`
`Indicator across one or more specified Business Concepts
`or segments. By selecting a particular Business Indicator
`in this report a Smart Report showing the “winners” and
`“losers" for the specified period can be automatically
`produced.
`templates for Smart
`System Templates are the internal
`Report Definitions that come with system 10. System 10
`provides four System Templates; Sumnaarization, Trend
`Analysis, Change Analysis, and Alert Monitoring. A Sys-
`tem Template can be ctlstomized to create a Smart Reput
`Definition by renaming it and selecting Business
`Concepts. Business Indicators and a time interval for that
`Smart Report Definition.
`A Trend Analysis Smart Report is a type of Smart Report
`that. when defined, shows the trend for a specific Business
`Indicator or indicators over a specified period of time.
`This analysis can aid in forecasting the future by identi-
`fying patterns in past activities.
`A Comparison Analysis Smart Report is a type of Smart
`Report helps a business user compare the value of two
`Business indicators across the same time period or com-
`pare the value of the same Business Indicator across two
`sibling segments across the same time period.
`Client subsystem 12 is a single application program which
`has a graphical has a graphical user interface (GUI) 40
`and which allows a user to select and specify parameters
`for Smart Reports, view Smart Reports, print Smart
`Reports, and save Smart Reports. Client subsystem 12
`also displays to a user the results of performing Alerts.
`Finally, the user can specify Business Indicators and
`Segments. specify additional Alerts, or modify the sched-
`ule of Alerts client subsystem 12.
`DAI subsystem 14 provides intelligent middleware for
`translating graphical user requests, selecting system
`templates, manipulating data views. and generating dimen-
`sional queries for retrieving data from data warehouse 24. It
`also contains rules for choosing default parameters. for
`choosing layout and display formats. and for generating text
`from data. DAI subsystem I4 is responsible for instantiating
`user selected Smart Reports and managing several kinds of
`metadata 25 used in this instantiation. This metadam 25
`represents Business Concepts and Business Indicators that
`provide a customizable “d.iinensionalization” of the rela-
`tional data in data warehouse 24. DAI subsystem 14 also
`processes updates to this metadata 25 that originate in client
`subsystem 12 and handles seve.ral other kinds of user
`updates, primmily bypassing them to DSM subsystem 16.
`DSM subsystem 16 reads schema from data warehouse
`24, creates data views. and creates a mapping between the
`two. It also uses that mapping to translate the Dimensional
`Queries received from DAI subsystem 14 into SQL and
`package and return the results.
`Scheduler subsystem 18 is responsible for launching
`Alerts and running any Smart Reports which the user
`specified to execute in batch mode at some specified time
`interval. When the requested time interval occurs.
`the
`Scheduler starts up, requests a list of Alerts and scheduled
`Smart Report Requests from DAI subsystem 14. From those
`lists. scheduler subsystem 18 determines which should be
`run dining the current time interval and sends those requests
`to DAI subsystem 14 as if they were sent by client sub-
`system 12.
`Thus. system 10 is implemented as a tln'ee-tier architec-
`ture. Client computer 30 executes client subsystem 12.
`Client computer 30 preferably executes ‘Windows 3.1, Win-
`dows NT, or Windows 95. although other operating systems
`are also envisioned by the present invention. Client sub-
`
`6
`system 12 (FIGS. 6-12) is suitable for use with these
`operating systems. Display 22 and input device 2] allow a
`user to view GUI 40 and enter choices of metadata 25 used
`in creating Smart Reports. Input device 21 may be a
`keyboard, mouse, or other pointing device. Printer 23 allows
`a user to print a Smart Report. Storage medium 26 allows a
`user to store a Smart Report.
`Server computa 32 executes DAI subsystem 14, DSM
`subsystem 16, and scheduler subsystem 18. These three
`subsystems combine to satisfy user requests from client
`subsystem 12 using information from data warehouse 24.
`Server computer 32 is preferably a multi-processor com-
`puter and executes the UNlX opuating system or Windows
`NT, although other computer and operating system configu-
`rations are also envisioned by the present invention.
`Client and server computers 30 and 32 are preferably
`coupled asynchronously for report requests; all other
`requests are satisfied synchronously. Communication
`between client and server computers 30 and 32 is preferably
`through transmission control protocollinternet protocol
`(TCPIIP), although other transmission protocols are also
`envisioned by the present invention.
`Database computer 34 includes one or more storage
`media 36 containing data warehouse 24. Database computer
`34 is preferably a massively parallel processor computer and
`executes the UNIX operating system or Windows NT,
`although other computer and operating system configura-
`tions are also envisioned by the present invention. Data
`warehouse 24 is suited to run on any computer which
`supports an Open Database Connect (ODBC) interface to
`data warehouse 24. Communication between server com-
`puter 32 and database computer 34 is preferably via ODBC,
`although other database interfaces are also envisioned by the
`present invention.
`Turning now to FIG. 2, client subsystem 12 is an appli-
`cation program which gives a user control over system 10
`and is suitable for execution on top of the Windows 3.1.
`Windows NT, or Windows 95 operating systems. Client
`subsystem 12 includes log-in module 50. folder manage-
`ment subsystem 54, business information setup subsystem
`55, analyst definition subsystem 56, Smart Report viewing
`subsystem 53, master schedule subsystem 52. and System
`Administrator interface 57.
`Log-in module 50 verifies that only one copy of the client
`subsystem 12 is running on computer 30. checks the local-
`ization of computer 30, connects to computer 32, and
`interacts with the user to log him onto client subsystem 12.
`During logon, log-in module 50 verifies a user's name and
`password and lhen retrieves any user preferences that may
`have been earlier defined. The only request from a user that
`is handled by log-in module 50 is a request to log onto client
`subsystem 12.
`Log-in module 50 issues the following requests:
`
`
`I retrieve localhtation
`
`I single pug-am running
`
`to Operating System (DOS, NT,
`Windows 95)
`t1o0peratin.gSystem(DOS,NT.
`Windows 95)
`to Clieutlsuerver module
`I connect to server
`to Clientlserver module
`I disconnect lion: server
`to Metadata API
`I authenticate user
`to Main Menu
`I run main menu
`to Sysnem Adniinistrator
`I run admin menu
`liiterface
`
`
`15
`
`30
`
`35
`
`45
`
`55
`
`65
`
`If the user is the System Administrator. log—in module 50
`displays System Administrator interface 57. If the user is a
`regular user. a Main menu and toolbar interface 51 are
`displayed.
`
`
`
`5,710,900
`
`7
`System Administrator interface 5'! is used by a System
`Administrator to perform system administration tasks. such
`as making user—define-d segments available globally and
`treating and editing Business Concepts.
`interface 62 is
`preferably only available to System Administrators dining
`system installation.
`Folder management subsystem S4 handles all functions
`related to manipulating. storing, and retrieving Folder
`hierarchies, and the Sma11.Reports andAgents that are stored
`in those Folders. It also handles querying from DAI sub-
`system 14 for newly-completed Smart Reports, both when
`client subsystem 12. starts up, and then periodically there-
`after.
`
`Folder management subsystem 54 also handles User
`requests for operations on:
`Folders (new, delete, rename)
`Agents (edit. delete. run now. print)
`Smart Reports (view. delete. print [in coopm-ation with the
`Smart Report View Window])
`Each folder is represented by one folder object. A folder
`stores a list of child folders, a list of Smart Reports. and a list
`of Agents. Folder objects are created and deleted by folder
`management subsystem 54 in response to user requests.
`Business information setup subsystem 55 provides a user
`with the ability to create new measures. update measures, or
`delete existing measures. This information is sent
`to a
`Metadata API 60 and thereafter to DAI subsystem 14 for
`updating the user’s Metadata 25.
`Business information setup subsystem 55 provides a user
`with the ability to create new Segments, update segments, or
`delete existing Segments. This infcnmation is sent to a
`Metadata API 60 and thereafter to DAI subsystem 14 for
`updating the user‘s Metadata 25.
`Finally. business information setup subsystem 55 pro-
`vides a user with an interface to modify measure relations
`and to constrain measure relations. The user selects the
`current measure and whether to evaluate that measure's
`relationships when it increases or decrease. Then the user
`can then select from a list of other measures and define their
`relationship to the current measure. These relationships are
`in the form of “decreases”, “increases”. or “is unrelated to
`the current measure“. Also, every relationship between two
`measures can be constrained. The relationship between
`measures and the constraints placed upon them are saved on
`computer 32 for use in generating Smart Reports.
`Analyst definition subsystem 56 handles all functions
`related to user selection of parameters needed to generate
`specific reports. It also allows the user to define and schedule
`Alerts for scheduled reports.
`The user may invoke an existing Analyst. delete one from
`within the folder management subsystem 54, or create a new
`Analyst. There are live types of Analysts are:
`Sumrnarization
`
`Segment Comparison
`Measure Comparison
`Change Analysis
`Trend Analysis
`‘The Surnmarization Analyst requires the following user
`selection requirements:
`Analyst name
`Primary measure, other optional measures
`Primary segment, other segments
`Time segment
`The Segment Comparison Analyst requires the following
`user selection requirements:
`Analyst name
`Primary measure
`
`10
`
`15
`
`30
`
`35
`
`45
`
`55
`
`8
`Primary segment, a comparison segment
`Time segment.
`The Measure Comparison Analyst requires the following
`user selection requirements:
`Analyst name
`Primary measure, Comparison measure
`P1‘in:Ia.ry segment. other optional segments
`base time segment, comparison time segment.
`The Change Analysis Analyst requires the following user
`selection requirements:
`Analyst name
`Primary measure
`Primary segment, Other optional segments
`base time segment, comparison lime segment
`The Trend Analysis Analyst requires the following user
`selection requirements:
`Analyst name
`Primary measure
`Primary segment, other optional segments.
`Time segment, '1irne interval.
`The user is responsible for selecting one or more
`measures, a base period, and a comparison period. The user
`then can save, submit, and schedule the analyst definition.
`The user is restricted to choosing one Segment from Within
`each Business Concept with the exception of Target
`Segment. in which case he may select only one segment and
`more than one child partition of the selected segment. The
`user may choose to schedule an Smart Report to be gener-
`ated periodically. All Analyst Definition objects are sched~
`nled. The user may modify an attached schedule.
`Used for exception monitoring. all analyst Definitions
`will have a trigger object attached to them. If a user decides
`not to have any triggers, a null trigger object will be attached
`to Analyst Definition Object.
`The Analyst definition subsystem 56 makes the following
`requests to the folder management subsystem 54:
`
`Save
`Check if the user has
`selected the appropriate
`parameters for tln selected
`analyst. Send a request to
`the folder management
`subsystem 54 to save an
`existing Analyst Definition
`Check if the user has
`selected the appropriate
`parameters for the selected
`analyst. Send a request to
`the folder management
`subsystem 54 to save an
`existing Analyst Definition
`Check if the Leer has
`selected the appropriate
`parameters for the selected
`analyst. Send a request to
`the folder manngerrrent
`subsystcnl 54 to stllnntl a
`report generation
`
`
`Save As
`
`Submit
`
`The Analyst definition subsystem also makes the following
`requests to Metadata API 60:
`
`Geta]lMeasures
`Tlnerequestwilllaemadeto
`MetadataAPI60eaei1t'n:ne
`lhereisaneedfioritatthe
`mtt1a].1z’”' ationpoimofa
`dialog
`
`
`
`5,7 10,900
`
`10
`delete a user. The communication for data warehouse
`schema is to retrieve it.
`Metadata API 60 allows a user to define new ways of
`looking at his business. A user cannot modify the segments
`that were created during installation. However. he can create
`new Business Indicators and new Segments. In a typical
`organization of users and system administrators. only sys-
`tem administrators can create or change business
`The MetaData API will handle the following requests
`from other client subsystems:
`
`
`9
`-continued
`Get allBusiness Concepts
`The request will be math to
`Metadata API 60 subsystem
`eachtimetlaercisaneedfm
`
`Get a Business Conccpfs
`Parhtions
`
`dependi.ngonauser's
`
`Get Partitions
`
`Get Seglnents
`
`
`
`Smart Report viewing subsystem 53 includes a “what-
`you-see-is-whaI—you-get" (VVYSIWYG) browser which dis-
`plays a selected Smart Report on screen. when Smart Report
`viewing subsystem 53 gets a notification from folder man-
`agement subsystem 54 to view a Smart Report. If the user
`decides to drill down from the current Smart Report. Smart
`Report viewing subsystem 53 notifies the folder manage-
`ment subsystem 54 to send a new report request.
`When the user double-clicks on an Smart Report or
`chooses “menu item-View” from the File menu in the labor:
`
`Manager, the folder management subsystem 54 notifies the
`Smart Report viewing subsystem to view the Smart Report.
`When the user clicks on a hypertext to drill down from the
`current Smart Report, the Smart Report viewing subsystem
`53 passes the drill down inforrnation to the folder manage-
`ment subsystem 5-4 to send a new report request to DAI
`subsystem 14.
`Smart Report viewing subsystem 53 includes a parser
`which parses the Smart Report, which is in an HTM1. file.
`In an HTML file. HTML tags indicate document elements,
`structure, formatting. and hypertext linkzing to other docu-
`ments or to included media. The parser then outputs all the
`information for display.
`The Smart Report viewing subsystem 53 allows a user