`
`(12) United States Patent
`Bates et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,276,115 B2
`Sep. 25, 2012
`
`(54) AUTOMATED CONSTRUCTION AND
`DEPLOYMENT OF COMPLEX EVENT
`PROCESSINGAPPLICATIONS AND
`BUSINESS ACTIVITY MONITORING
`DASHBOARDS
`
`(75) Inventors: John Bates, Nashua, NH (US); Gareth
`Smith, Cambridge (GB); Richard M.
`tly i.S. thenault
`erst,
`Aston nan,
`Merrimack, NH (US); Kevin A.
`Palfreyman, Cambridge (GB); Robert
`Scott Mitchell, Cambridge (GB)
`
`(73) Assignee: Progress Software Corporation,
`Bedford, MA (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1237 days.
`
`(21) Appl. No.: 12/025,586
`
`1-1.
`(22) Filed:
`
`Feb. 4, 2008
`
`(65)
`
`Prior Publication Data
`US 2008/0209,078 A1
`Aug. 28, 2008
`
`O
`O
`Related U.S. Application Data
`(60) Provisional application No. 60/888,500, filed on Feb.
`6, 2007
`isional application No. 60/896,266, filed
`s
`prov1s10nal application No.
`Zoo, Ille
`on Mar. 21, 2007.
`
`(51) Int. Cl.
`(2006.01)
`G06F 9/44
`(52) U.S. Cl. ........ 71710.71710s. 717/100.71713.
`71.5/779
`(58) Field of Classification Search ........................ None
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5.245,616 A
`9, 1993 Olson
`5,392,398 A
`2/1995 Meyer
`5,596,720 A
`1/1997 Hamada et al.
`5,758,354 A
`5/1998 Huang et al.
`5,765,033 A
`6/1998 Miloslavsky
`5,805,825 A
`8. 1998 El et al.
`5,822,526 A 10, 1998 Waskiewicz
`5,850,525 A 12/1998 Kalkunte et al.
`5,857,201 A
`1/1999 Wright, Jr. et al.
`5,870,605 A
`2/1999 Bracho et al.
`5,878,056 A
`3, 1999 Black et al.
`5,951,648 A
`9, 1999 Kailash
`6,016,515 A
`1/2000 Shaw et al.
`6,061,559 A
`5, 2000 Eriksson et al.
`6,112,323 A
`8, 2000 Meizlik et al.
`(Continued)
`
`OTHER PUBLICATIONS
`Title: Vision-Based Methods for Driver Monitoring, author:
`Wahlstrometal, dated: 2003, source: IEEE.*
`(Continued)
`Primary Examiner — Chameli Das
`(74) Attorney, Agent, or Firm — Wilmer Cutler Pickering
`Hale & Dorr LLP.
`
`ABSTRACT
`(57)
`A system and method for constructing and deploying a busi
`ness activity monitoring (BAM) dashboard associated with
`an event-based process are disclosed. A configuration module
`receives an event-based process identifier for an event-based
`process and data, such as inputs or outputs, for the event
`based process. A generation module then generates a dash
`board description that includes the identifier and an associ
`ated dashboard template having one or more dashboard
`components. This dashboard description is used by a dash
`board server to automatically generate a BAM dashboard for
`monitoring the event-based process by using the association
`bet
`the dashboard template and th
`t-based
`Deyenneslashboard emplate and neven based process
`to display data associated with the event-based process using
`one or more dashboard components.
`21 Claims, 10 Drawing Sheets
`
`Ewent-BASED Process
`
`A. A
`
`22
`
`EVENT-Ased Process
`
`732
`
`EVENT-BASPROCESS
`C
`
`
`
`ashboard Server 137
`First Dashboard Description
`TEMPAE
`370
`
`710A
`
`Second Dashboard Description
`B
`EMPLA
`743
`370
`
`Third dashboard description
`to c
`--
`EMPLATE
`- 740C
`370
`
`742
`
`CIENT DEVICE
`A
`30A
`
`CLIENT DEVICE
`B
`739B
`
`CLIENT DEVICE
`C
`3C
`
`SAP Exhibit 1013
`SAP v. Express Mobile, Inc.
`IPR2021-01146
`Page 00001
`
`
`
`US 8,276.115 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`Miloslavsky
`10, 2000
`6,128,646
`A
`11, 2000
`Kawabe et al.
`6,145,781
`A
`12, 2000
`Gaiet al.
`6,167.445
`A
`9, 2001
`Stein et al.
`6,289,212
`B1
`Knapman et al.
`10, 2001
`6,298.455
`B1
`1, 2002
`Banavar et al.
`6,336,119
`B1
`3, 2002
`6,359,635
`Perttunen
`B1
`5, 2002
`Chandrasekaran et al.
`6,397,352
`B1
`9, 2002
`Nakata
`6,452.934
`B1
`Garg et al.
`9, 2002
`6,453,346
`B1
`11, 2002
`Milovanovic et al.
`6,484, 198
`B1
`1, 2003
`Porterfield
`6,513,154
`B1
`Olshansky et al. ........... 709,229
`5/2003
`6,567,854
`B1
`11, 2003
`Todd et al.
`6,643,682
`B1
`Ryman et al.
`11, 2003
`6,647,544
`B1
`Astley et al.
`4, 2004
`6,728,715
`B1
`Abjanic
`5, 2004
`6,732, 175
`B1
`8, 2004
`Gebauer
`6,782,386
`B1
`9, 2004
`Oulu et al.
`6,792.460
`B2
`10, 2004
`Maes et al.
`6,801,604
`B2
`10, 2004
`Hartman et al.
`6,807,636
`B2
`Scarpelli et al.
`11, 2004
`6,816,898
`B1
`Massengale et al.
`2, 2005
`6,854,088
`B2
`5/2005
`Smocha et al.
`6,898,556
`B2
`5/2005
`Koo et al.
`6,901.447
`B2
`9, 2005
`Devine et al.
`6,944,662
`B2
`1, 2006
`Salas et al.
`6,983,479
`B1
`Gungabeesoon
`2, 2006
`7,007,278
`B2
`Agarwalla et al.
`4, 2006
`7,028,089
`B2
`Wesley
`5, 2006
`7,039,701
`B2
`Leighton et al.
`8, 2006
`7,096,263
`B2
`9, 2006
`7,103,054
`Novaes
`B2
`1/2007
`7,171,628
`Perttunen
`B1
`2, 2007
`Burbeck et al.
`7, 177,929
`B2
`Wesley
`7/2007
`7,251,689
`B2
`10, 2007
`Friend et al.
`7,287,097
`B1
`Lucovsky et al.
`11/2007
`7,302,634
`B2
`2, 2008
`Nishimura et al.
`7,334,022
`B2
`4, 2008
`Cohen et al.
`7,359,919
`B2
`5/2008
`Miller et al.
`7,379,971
`B2
`Liong et al.
`6, 2008
`7,386,630
`B2
`T/2008
`Szabo et al.
`7,395,349
`B1
`Napier et al.
`T/2008
`7.406,440
`B2
`T/2008
`Cullen
`7.406,537
`B2
`8, 2008
`Davis et al.
`7,418,501
`B2
`10, 2008
`Fredericket al.
`7,433,835
`B2
`12, 2008
`Dicket al.
`7.464,154
`B2
`12, 2008
`Di Luoffo et al.
`7.467,196
`B2
`2, 2009
`7.487,510
`Carr
`B1
`2, 2009
`Han et al.
`7,496,637
`B2
`3, 2009
`Cohen et al.
`7,512,957
`B2
`4, 2009
`Brouk et al.
`7,516, 191
`B2
`5/2009
`Traversat et al.
`7,533,172
`B2
`5/2009
`Fratkina et al.
`7,539,656
`B2
`6, 2009
`Rosenthal et al.
`7,543,280
`B2
`10, 2009
`Anderson et al.
`7,603,358
`B1
`12, 2009
`Clater ............................. TO6.50
`7,640,225
`B2
`4, 2010
`Sholtis et al.
`7,702,636
`B1
`Illowsky et al.
`6, 2010
`7,747,980
`B2
`T/2010
`Genkin et al.
`7,752,604
`B2
`Kornerup et al.
`T/2010
`7,761,847
`B2
`9, 2010
`7,801.946
`Bearman
`B2
`Hodges et al.
`9, 2010
`7,801,976
`B2
`Kornerup et al.
`9, 2010
`7,802,229
`B2
`2, 2011
`Seaman et al.
`7,881,992
`B1
`2, 2011
`Mernoe et al.
`7,887,511
`B2
`Angelo et al. ................ 707/752
`2, 2011
`7,890,517
`B2
`2, 2011
`Nielsen et al.
`7,895,262
`B2
`5, 2011
`Broda et al.
`7,941,542
`B2
`5, 2011
`Forstall et al. ................ 71.5/779
`7,954.064
`B2
`De Angelo
`8, 2011
`7.992,102
`B1
`Saulpaugh et al.
`8, 2011
`8,001.232
`B1
`11, 2011
`Mamou et al.
`8,060,553
`B2
`T/2001
`2001/OOO7993
`Wu
`A1
`1, 2002
`2002/0010781
`Tuatini
`A1
`2, 2002
`2002fOO26473
`Gourraud
`A1
`8, 2002
`2002/0107992
`Osbourne et al.
`A1
`Arteaga et al.
`10, 2002
`2002fO161826
`A1
`
`2002fO165745 A1 11/2002 Greene et al.
`2003,0005174 A1
`1/2003 Coffman et al.
`2003, OO14733 A1
`1/2003 Ringseth et al.
`2003/0041178 A1
`2/2003 Brouk et al.
`2003/0055920 A1
`3/2003 Kakadia et al.
`2003, OO61404 A1
`3/2003 Atwal et al.
`2003/0074579 A1
`4/2003 Della-Libera et al.
`2003/00935OO A1
`5/2003 Khodabakchian et al.
`2003/010121.0 A1
`5/2003 Goodman et al.
`2003/0106039 A1
`6/2003 ROSnow et al.
`2003/O120665 A1
`6/2003 Fox et al.
`2003. O145281 A1
`7/2003 Thames et al.
`2003/0172368 A1* 9/2003 Alumbaugh et al. ......... 717/106
`2003/0204644 A1 10, 2003 Vincent
`2004/0030947 A1
`2/2004 Aghili et al.
`2004/0054770 A1
`3/2004 Touboul ........................ 709,223
`2004/008814.0 A1
`5, 2004 OKonski et al.
`2004/O133633 A1
`7/2004 Fearnley et al.
`2004/O186817 A1
`9, 2004 Thames et al.
`2004/O193703 A1
`9/2004 Loewy et al.
`2004/0216127 A1 10, 2004 Datta et al.
`2004/0225,724 A1 11, 2004 Pavlik et al.
`2005/0O27853 A1
`2/2005 Martin et al.
`2005/OO38708 A1
`2, 2005 Wu
`2005/0097480 A1
`5, 2005 Care
`2005/0289508 A1 12/2005 Illowsky et al.
`2006/0031481 A1
`2/2006 Patricket al.
`2006,0041461 A1
`2/2006 Vucina et al.
`2006,0041859 A1
`2/2006 Vrancic et al.
`2006, OO69603 A1
`3/2006 Williams et al.
`2006, OO74732 A1
`4/2006 Shukla et al.
`2006/0095915 A1
`5/2006 Clater ........................... T18, 100
`2006/0173985 A1
`8, 2006 Moore
`2006, O195819 A1
`8/2006 Chory et al.
`2006/0206440 A1
`9/2006 Anderson et al.
`2006/0224702 A1 10, 2006 Schmidt et al.
`2006/0224750 A1 10, 2006 Davies et al.
`2006/0225.032 A1* 10, 2006 Klerk et al. ................... 717/105
`2006/0230432 A1 10, 2006 Lee et al.
`2006/0271563 A1* 1 1/2006 Angelo et al. ................ 7O7/1OO
`2006, O294499 A1 12/2006 Shim
`2007/0174393 A1
`7/2007 BOSSchaert et al.
`2007/0192678 A1
`8/2007 Tang et al.
`2007/0268300 A1 1 1/2007 (Janet) et al.
`2008, 0046861 A1
`2/2008 Grieser
`2008/0059220 A1
`3/2008 Roth et al.
`2008/O120574 A1
`5/2008 Heredia et al.
`2008/O120593 A1* 5/2008 Keren et al. ................... 717/105
`2008/O126932 A1
`5/2008 Eladet al.
`717/105
`2008/O127052 A1* 5, 2008 Rostoker ..
`2008/O141237 A1* 6/2008 Eladet al. ..................... 717/171
`2008. O148346 A1
`6/2008 Gill et al.
`2008/0163164 A1* 7/2008 Chowdhary et al. .......... 717/106
`2008/O172270 A1
`7/2008 Eckenroth
`2008/0307369 A1 12/2008 Liu et al.
`2009/0262131 A1 10/2009 Suntinger et al.
`2009,0276,771 A1* 11/2009 Nickolov et al. ............. 717/177
`2009/0319832 Al 12/2009 Zhang et al.
`2009/0326997 A1 12/2009 Becker et al.
`2010.0017853 A1
`1/2010 Readshaw
`2010.0030718 A1
`2/2010 Anderson et al.
`2010/0304992 A1 12/2010 An et al.
`
`
`
`OTHER PUBLICATIONS
`Progress Software, Apama Event Modeler v2.0 Professional
`Edition & Client Edition, Published Apr. 1, 2005. (selected pages),
`United Kingdom of Great Britian.
`PCT International Search Report and Written Opinion, PCT/US08/
`52928, Jul. 25, 2008, 8 pages.
`* cited by examiner
`
`IPR2021-01146 Page 00002
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 1 of 10
`
`US 8,276,115 B2
`
`pueoquseO
`
`| || NOLLOV |-
`
`() ()
`
`| NOILOV |-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LINEAE\_
`
`00||
`
`IPR2021-01146 Page 00003
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 2 of 10
`
`US 8,276,115 B2
`
`130
`
`
`
`PROCESSOR
`210
`
`INPUT DEVICE
`220
`
`
`
`
`
`OUTPUT DEVICE
`230
`
`
`
`
`
`
`
`
`
`COMMUNICATION
`MODULE
`
`
`
`STORAGE MODULE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`GENERATION
`MODULE
`270
`
`DEPLOYMENT
`MODULE
`275
`
`x8wsw888.8xxxas-six
`
`IPR2021-01146 Page 00004
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 3 of 10
`
`US 8,276,115 B2
`
`310
`
`TEMPLATE 370
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DASHEOARD
`COMPONENT
`STORE
`33
`
`8
`
`COMPONENT
`PROCESS
`ASSOCATION
`MODULE
`340
`
`
`
`
`
`SUPPLEMENTAL
`E DATA MODULE
`350
`
`
`
`
`
`
`
`DISPLAY FORMAT
`MODULE
`36O
`
`PROCESS
`DENTIFICATION
`MODULE
`320
`
`FIG 3
`
`IPR2021-01146 Page 00005
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 4 of 10
`
`US 8,276,115 B2
`
`400 y
`
`
`
`DENTIFY EVENT-BASED
`PROCESS
`410
`
`ASSOCATE TEMPLATE
`WITH EVENT-BASED
`PROCESS
`
`GENERATE DASHBOARD
`DEPLOYMENT PACKAGE
`
`TRANSMIT DEPLOYMENT
`PACKAGE
`440
`
`GENERATE DASHBOARD
`450
`
`IPR2021-01146 Page 00006
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 5 of 10
`
`US 8,276,115 B2
`
`DASHBOARD
`SERVER
`137
`
`CONFIGURATION
`MODULE
`130
`
`DENTIFY
`PROCESS
`
`ASSOCATE
`TEMPLATE
`520
`
`GENERATE
`DEPLOYMENT
`PACKAGE
`530
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ESTABLISH CONNECTION
`540
`
`
`
`TRANSMI DASHBOARD
`DEPLOYMENT PACKAGE
`550
`-m-la-m-e-
`
`GENERATE
`DASHBOARD
`560
`
`DISPLAY
`DASHBOARD
`570
`
`
`
`F.G. 5
`
`IPR2021-01146 Page 00007
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 6 of 10
`
`US 8,276,115 B2
`
`
`
`Apama Dashboard Wizard
`Dashboard Wizard
`
`X.
`
`610
`
`Scenario Summary Page - Properties
`Text and button labels for the Summary page of the Dashboard
`Web Application. The Fields to appear on the Summary page are
`selected on the next Wizard page.
`Page Title
`Page Heading Text
`
`Create Button Label
`Details Button Label
`
`Cancel
`
`Page 2/10
`
`<Back
`
`Next
`
`Finish
`
`FIG. 6A
`
`IPR2021-01146 Page 00008
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 7 of 10
`
`US 8,276,115 B2
`
`
`
`O Apama Dashboard Wizard
`
`Dashboard Wizard
`
`?
`
`620
`
`X
`
`630
`
`Scenario Summary Page - Field Selection
`
`Please select the Scenario variables to be displayed on each row of the
`Summary page of the Dashboard Web Application.
`LOWer Band
`instrument 1
`Current Spread
`Instrument 2
`Upper Band
`Std Dev Multiplier
`Total Quality in Market
`Current Position 1
`Order Status 1
`Current Position 2
`Order Status 2
`Trades Executed
`Quantity 1
`Profit/LOSS
`Quantity 2
`Status Message
`Order TimeOut Secs
`Max Quantity1
`Field Display Name
`Visible Lines
`Receive RealTime Updates?
`Field Width
`
`Pixels
`
`v
`
`640
`
`650
`J
`
`660
`
`EditGhoice Display Names.
`
`Page 3/10
`
`<Back Next
`
`Finish->
`
`F.G. 6B
`
`IPR2021-01146 Page 00009
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 8 of 10
`
`US 8,276,115 B2
`
`
`
`
`
`952mmEmoncwmo
`
`
`
`<0:whdfiiiwh<m:
`
`owm<0»:
`
`
`
`coicommoEmoncmmoEE
`
`
`
`wwwOOmmDmm<m-._.zm>m
`
`00:
`
`mo;
`
`
`
`
`
`8286meEmonsmmoccooow
`
`m._.<4n=>_w._.mn:
`
`Ohmmovh
`
`wdemEmH
`
`own
`
`OovnOn:
`
`
`
`8:95me9.8280PE:
`
`
`
` Dawn0mo_>woHzmfio
`
`
`
` moanmmagmaHZMZO
`
`
`
`th
`
`NE
`
`IPR2021-01146 Page 00010
`
`IPR2021-01146 Page 00010
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Sep. 25, 2012
`
`Sheet 9 of 10
`
`US 8,276,115 B2
`
`860 Y
`Statistical Arbitrage Details Page-Microsoft Internet Explorerprovided by Apama
`File Edit View Favorites Tools Help
`Links
`Apama
`
`
`
`-Ox
`
`Instance Details
`
`User:
`apama admin
`System
`Scenario UP Logout
`(Directory
`
`MSFT
`ORCL
`
`10000
`10000
`
`instance parameters
`Instrument 1
`Instrument2
`Quantity1
`Quantity2
`Multiplier
`Max Quantity1
`Max Quantity2
`Instance updates
`-360
`Current Position 1
`510
`Current Position2
`Submitting Orders
`StatusMessage
`36
`Trades Executed
`Order Manager Details
`OM1 Status Message Partial fill of 115G)27.17
`OM2 Status Message Partial fill of 93G10.17
`
`Applet Dashboard PushletApplet started
`
`Local intranet
`
`FIG. 8A
`
`IPR2021-01146 Page 00011
`
`
`
`U.S. Patent
`U.S. Patent
`
`Sep. 25, 2012
`eS
`1
`2D...
`
`Sheet 10 of 10
`01f001t
`hS
`
`US 8,276,115 B2
`1,672,
`
`5
`
`2
`
`SU
`
`w<23mmomo
`
`0FW~OJC_2ill.5,m33<>mmszzSE30”
`
`
`
`2N230
`
`
`
`
`
`
`
`
`
`u33<>_ImszzSaz.“
`
`@090M8m:mEm‘m
`
`
`
`5E0
`
`
`
`
`.rl.........xIL
`
`500:23_.:.i:z«3c_9.5:~5%:
`
`
`€950
`
`
`
`om<m:3me
`
`00>E<S=23m
`
`
`
`B.
`1mw0_n_
`
`IPR2021-01146 Page 00012
`
`IPR2021-01146 Page 00012
`
`
`
`
`US 8,276,115 B2
`
`1.
`AUTOMATED CONSTRUCTION AND
`DEPLOYMENT OF COMPLEX EVENT
`PROCESSINGAPPLICATIONS AND
`BUSINESS ACTIVITY MONITORING
`DASHBOARDS
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`This application claims priority under 35 U.S.C. S 119(e)
`from U.S. Provisional Patent Application No. 60/888,500,
`titled “A Set Of Techniques And A Process To Create And
`Deploy. Over The Internet, Complex Event Processing (CEP)
`Applications That Support Rich Interactive Dashboards To
`Enable Business Activity Monitoring (BAM), filed Feb. 6,
`2007, and U.S. Provisional Patent Application No. 60/896,
`266, entitled “A Process For The Graphical Modelling, Con
`struction And Deployment Of Complex Event Processing
`Business Activity Monitoring Processes.” filed Mar. 21,
`2007, which are incorporated by reference herein in their
`entirety.
`
`10
`
`15
`
`BACKGROUND
`
`2
`in monitoring of business activities. For example, event
`based computing using BAM techniques allow hedge funds
`to monitor trades, logistics operators to monitor locations and
`delays in a shipment, and Surveillance personnel to detect
`fraudulent behavior at different devices.
`However, there are no standard development tools and
`techniques for creating and deploying event-based BAM
`applications. Conventional development methods require use
`of a bespoke-based method, resulting in a long development
`cycle and a difficult to maintain system. As conventional
`development techniques rely on user entry of text data in a
`structured format, these techniques also cannot uniformly
`abstract multiple application or scenario types, distinguish
`between different input parameters and Support streaming
`output parameters. Existing event-based BAM application
`construction techniques require initial development of the
`underlying event-based process or scenario, using a text
`based event programming language having multiple syntax
`rules.
`
`SUMMARY
`
`A system for constructing and deploying a complex event
`processing application and a business activity monitoring
`(BAM) dashboard comprises a configuration module and a
`dashboard server adapted for communication with an event
`engine. The configuration module includes a generation mod
`ule, a deployment module and a template storage module. The
`configuration module receives an event-based process iden
`tifier that describes or identifies an event-based process and
`data related to the event-based process, such as an input to the
`event-based process and/or an output generated by the event
`based process. In an embodiment, the event-based process
`identifier also describes or identifies additional information,
`Such as data used internally by the event-based process or
`associated with the event-based process. The generation
`module automatically associates a template stored in the tem
`plate storage module with the event-based process. The tem
`plate includes one or more dashboard components for dis
`playing data associated with the event-based process. During
`execution of the event-based process, the dashboard compo
`nents from the template are used to display data associated
`with the event-based process in a manner specified by in the
`template. This allows the template to automatically generate
`a BAM dashboard for monitoring data associated with event
`based process without requiring user configuration of the
`BAM dashboard appearance or configuration of relationships
`between dashboard components and data associated with the
`event-based process.
`The template storage module stores templates having a
`dashboard component. The template storage module is
`adapted to communicate with an editing module that receives
`data identifying or describing an event-based process. The
`generation module associates the event-based process with a
`template. For example, the generation module associates an
`input to the event-based process with a first dashboard com
`ponent and associates an output from the event-based process
`with a second dashboard component characteristic for the
`template. This allows data from the event-based process to be
`displayed in a format or configuration specified by the tem
`plate. By automatically associating event-based process input
`data and/or output data with display characteristics, the gen
`eration module allows automatic generation of a BAM dash
`board for monitoring data associated with the event-based
`process. This simplifies BAM dashboard generation by
`removing the need for manual identification of what data
`
`1. Field of Art
`The present invention generally relates to the field of event
`based computer systems, and more specifically, to construct
`ing and deploying complex event processing (CEP) applica
`tions and business activity monitoring (BAM) dashboards.
`2. Description of the Related Art
`Recently, the availability and amount of real-time informa
`tion has significantly increased. This allows businesses to
`monitor events in real time and to automatically respond, with
`minimal latency, when certain events or conditions. Such as
`threats or business opportunities, arise. However, conven
`tional computer systems, such as database systems, are not
`designed for Such real-time event monitoring, analysis and
`response. Although conventional sequential programming
`languages, such as C++ or JavaMallow construction of cus
`tomized systems for event detection and response, construct
`ing Such an event-based system is time-intensive and the
`inherent sequential nature of such programming languages is
`not suitable for various types of real-time event monitoring,
`analysis and response.
`Event-based computing systems allow real-time monitor
`ing, analysis and response to various types of events. In event
`based systems, incoming events are monitored for pre-de
`fined patterns and defined actions are taken when a pattern is
`detected. Hence, these event-based systems Support applica
`tions requiring proactive responses to patterns in changing
`data, Such as real-time algorithmic trading, risk, compliance,
`telecommunications, digital battlefield applications, terrorist
`tracking, Supply chain monitoring and logistics.
`Additionally, business activity monitoring (BAM) tech
`niques allow visualization of event patterns detected by an
`event-based computing system, providing real-time insights
`into an event flow. Business activity monitoring is any auto
`matic monitoring of business-related events. Examples of
`BAM include: business activity management; the combina
`tion of business process management and historical analytics;
`automatically monitoring events associated with specific
`activities in an executing business process; monitoring busi
`ness processes and generating alerts about pending and actual
`problems; managing aggregations, alerts and profiles to
`monitor relevant business metrics; real-time access to critical
`business performance indicators to improve the speed and
`effectiveness of business operations; or any software that aids
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`IPR2021-01146 Page 00013
`
`
`
`US 8,276,115 B2
`
`3
`associated with the event-based process to display and how to
`display the data associated with the event-based process.
`A method for constructing and deploying a complex event
`processing application and a BAM dashboard comprises
`receiving an identifier for an event-based process; selecting a
`dashboard template including one or more dashboard com
`ponents; relating data associated with the event-based process
`and a dashboard component; creating a deployment package,
`and deploying the deployment package on a server, and then
`using the selected dashboard template and the relationship
`between data associated with the event-based process and the
`one or more dashboard components to visually display data
`associated with the event-based process.
`The features and advantages described in the specification
`are not all inclusive and, in particular, many additional fea
`tures and advantages will be apparent to one of ordinary skill
`in the art in view of the drawings, specification and claims.
`Moreover, it should be noted that the language used in the
`specification has been principally selected for readability and
`instructional purposes, and may not have been selected to
`delineate or circumscribe the inventive subject matter.
`
`10
`
`15
`
`4
`invention is described in the context of business application
`monitoring (BAM) dashboards, those skilled in the art will
`recognize that the present invention may also be used for
`configuring other types of dashboards.
`Reference in the specification to “one embodiment” or “an
`embodiment’ means that a particular feature, structure or
`characteristic described in connection with the embodiment
`is included in at least one embodiment of the invention. The
`appearances of the phrase “in one embodiment in various
`places in the specification are not necessarily all referring to
`the same embodiment.
`Some embodiments may be described using the expression
`“coupled and “connected along with their derivatives. It
`should be understood that these terms are not intended as
`synonyms for each other. For example, Some embodiments
`may be described using the term “connected to indicate that
`two or more elements are in direct physical or electrical
`contact with each other. In another example, some embodi
`ments may be described using the term “coupled to indicate
`that two or more elements are in direct physical or electrical
`contact. The term “coupled, however, may also mean that
`two or more elements are not in direct contact with each other,
`but yet still co-operate or interact with each other. The
`embodiments are not limited in this context.
`As used herein, the terms “comprises.” “comprising.”
`“includes.” “including.” “has.” “having or any other varia
`tion thereof, are intended to cover a non-exclusive inclusion.
`For example, a process, method, article, or apparatus that
`comprises a list of elements is not necessarily limited to only
`those elements but may include other elements not expressly
`listed or inherent to Such process, method, article or appara
`tus. Further, unless expressly stated to the contrary, "or”
`refers to an inclusive or and not to an exclusive or. For
`example, a condition A or B is satisfied by any one of the
`following: A is true (or present) and B is false (or not present),
`A is false (or not present) and B is true (or present), and both
`A and B are true (or present).
`In addition, use of the “a” or “an are employed to describe
`elements and components of the invention. This is done
`merely for convenience and to give a general sense of the
`invention. This description should be read to include one or at
`least one and the singular also includes the plural unless it is
`obvious that it is meant otherwise.
`The algorithms and displays presented hereinare not inher
`ently related to any particular computer or other apparatus.
`Various general-purpose systems may be used with programs
`in accordance with the teachings herein, or it may prove
`convenient to construct a more specialized apparatus to per
`form the required method steps. The required structure for a
`variety of these systems will be apparent from the description
`below. In addition, the present invention is not described with
`reference to any particular programming language. It will be
`appreciated that a variety of programming languages may be
`used to implement the teachings of the invention as described
`herein.
`System Architecture
`FIG. 1 is a block diagram of a distributed computing sys
`tem 100 for event processing according to an embodiment of
`the present invention. The distributed computing system 100
`comprises an event engine 120, a configuration module 130,
`an event integration layer 140, an event store 127, a relational
`database management system (RDBMS) 150 and an event
`monitoring module 160 coupled by a network (shown as
`various connecting lines between these components). The
`distributed computing system 100 also comprises a dash
`board server 137 coupled to a plurality of client devices
`having a browser 110 for presenting a deployed dashboard
`
`BRIEF DESCRIPTION OF DRAWINGS
`
`25
`
`30
`
`35
`
`The disclosed embodiments have other advantages and
`features which will be more readily apparent from the follow
`ing detailed description and the appended claims, when taken
`in conjunction with the accompanying drawings, in which:
`FIG. 1 is a block diagram of a distributed computing sys
`tem for event processing according to one embodiment of the
`invention.
`FIG. 2 is a block diagram of a configuration module for
`generating an event-driven BAM dashboard according to one
`embodiment of the invention.
`FIG. 3 is a block diagram of a deployment packet for a
`BAM dashboard according to one embodiment of the inven
`tion.
`FIG. 4 is a flow chart of a method for generating and
`deploying a BAM dashboard according to one embodiment of
`the invention.
`40
`FIG. 5 is a trace diagram of the method for generating and
`deploying a BAM dashboard in a distributed computer sys
`tem according to one embodiment of the invention.
`FIGS. 6A and 6B are graphic representations of example
`user interfaces for automatically generating a BAM dash
`board according to one embodiment of the invention.
`FIG. 7 is a block diagram of the dashboard server generat
`ing a plurality of BAM dashboards for a plurality of clients
`according to one embodiment of the invention.
`FIG. 8A is a graphical representation of an example dash
`board generated for real time event visualization.
`FIG. 8B is a graphical representation of an example user
`interface for a BAM dashboard according to one embodiment
`of the invention.
`
`45
`
`50
`
`DETAILED DESCRIPTION
`
`A system and method for configuring dashboards associ
`ated with an event-based process, such as generating or modi
`fying a dashboard responsive to a received description of the
`event-based process, are described. For purposes of explana
`tion, numerous specific details are set forthin order to provide
`a thorough understanding of the invention. It will be apparent,
`however, to one skilled in the art that the invention can be
`practiced without these specific details. In other instances,
`structures and devices are shown in block diagram form in
`order to avoid obscuring the invention. While the present
`
`55
`
`60
`
`65
`
`IPR2021-01146 Page 00014
`
`
`
`5
`145. The event engine 120, the configuration module 130 and
`the dashboard server 137 are adapted for generating, modi
`fying and deploying a business application monitoring
`(BAM) dashboard. A BAM dashboard receives data associ
`ated with an application of an event-based process from the
`event engine 120 and then displays the received data using
`one or more dashboard components, allowing visualization of
`the event-based process. An example BAM dashboard is fur
`ther described below in conjunction with FIGS. 8A and 8B.
`The event engine 120 receives input events 105 from one or
`more sources, such as computing devices (not shown) which
`include computing capabilities and data communication
`capabilities, and generates output actions 115 using an event
`based process. Multiple computing devices are used to allow
`the distributed computing system 100 to process multiple
`input events 105 to generate multiple output actions 115. For
`example, different computing devices transmit different input
`events 105 and receive different output actions 115. The input
`events 105 received by the event engine 120 describe occur
`rences, such as an inventory level, a shipping delay or similar
`occurrence, or responses to detecting an event, such as invok
`ing a service, notifying a user, initiating a process or other
`similar action.
`In one embodiment, input events 105 are transmitted to the
`event engine 120 using a data packet including an event
`header and an event body. The event header comprises an
`event identifier, an event type, an event name, a time stamp
`and an event occurrence number. The event body comprises
`data describing the occurrence, for example a description of a
`product having sales below a threshold.
`The event engine 120 can be implemented in many ways.
`For example, it is a software process executable by a proces
`Sor (not shown) and/or a firmware application. The process
`and/or firmware can be configured to operate on a general
`purpose microprocessor or controller, a field programmable
`gate array (FPGA), an application specific integrated circuit
`(ASIC) or a combination thereof. Alternatively, the event
`engine 120 comprises a processor configured to process data
`describing events and may comprise various computing
`architectures including a complex instruction set computer
`(CISC) architecture, a reduced instruction set computer
`(RISC) architecture or an architecture implementing a com
`bination of instruction sets. The event engine 120 can com
`prise a single processor or multiple processors. Alternatively,
`the event engine 120 comprises multiple software or firmware
`processes running on a general purpose computer hardware
`device. For purposes of illustration, FIG. 1 shows the distrib
`uted computing system 100 as having a single event engine;
`however, in various embodiments, the distributed computing
`system 100 includes a plurality of event engines.
`The event engine 120 includes the rule store 125 having
`one or more event processing rules describing the event-based
`process. The rules are applied to the received input event 105
`to generate an output action 115. In one embodiment, the rule
`store 125 also includes one or more states corresponding to
`the application of event-processing rules to input events 105.
`Additionally, the event engine 120 receives input from the
`configuration module 130 and modifies the contents of the
`rule store 125, such as the event processing rules or states of
`the event-based process, accordingly. For example, respon
`sive to input from the configuration module 130, the event
`engine 120 adds additional states to the event-based process,
`modifies existing states of the event-based process, modifies
`event processing rules, adds additional event processing rules
`or performs similar actions.
`The event engine 120 also comprises a dashboard store 126
`including data used by one or more BAM dashboards. Data in
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 8,276,115 B2
`
`10
`
`15
`
`6
`the dashboard store 126 describes what information from an
`event-based process is output for presentation in the BAM
`dashboard and how data is communicated out of the event
`engine 120. For example, the dashboard store 126 identifies
`data from an event-based process for display to a user, a