US20170132183A1 - Methods, Systems, and Products for Generating Mashups - Google Patents
Methods, Systems, and Products for Generating Mashups Download PDFInfo
- Publication number
- US20170132183A1 US20170132183A1 US15/399,834 US201715399834A US2017132183A1 US 20170132183 A1 US20170132183 A1 US 20170132183A1 US 201715399834 A US201715399834 A US 201715399834A US 2017132183 A1 US2017132183 A1 US 2017132183A1
- Authority
- US
- United States
- Prior art keywords
- mashup
- widget
- data
- graphical
- stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 abstract description 5
- 230000007246 mechanism Effects 0.000 description 8
- 238000012800 visualization Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G06F17/2247—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/338—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G06F17/212—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G06F17/3089—
Definitions
- a mashup may integrate data specified by one or more widgets. Widgets, though, are difficult to specify, thus leading to errors in integration.
- FIG. 1 is a simplified schematic illustrating an environment in which exemplary embodiments may be implemented
- FIGS. 2-3 are screen shots illustrating a mashup, according to exemplary embodiments.
- FIG. 4 is a schematic illustrating a widget, according to exemplary embodiments.
- FIGS. 5-7 are more detailed schematics illustrating an operating environment, according to exemplary embodiments.
- FIG. 8 is a schematic illustrating a database of mashup components, according to exemplary embodiments.
- FIG. 9 is an alternate detailed schematic illustrating an operating environment, according to exemplary embodiments.
- FIG. 10 is a schematic illustrating streaming sources, according to exemplary embodiments.
- FIGS. 11-12 are schematics illustrating a detailed operating environment, according to exemplary embodiments.
- FIGS. 13-14 are schematics illustrating a single file structure of the widget, according to exemplary embodiments.
- FIG. 15 is another schematic illustrating the mashup, according to exemplary embodiments.
- FIG. 16 is another schematic illustrating the widget, according to exemplary embodiments.
- FIGS. 17-18 are flowcharts illustrating a method or algorithm for generating mashups, according to exemplary embodiments.
- FIGS. 19-20 depict still more operating environments for additional aspects of the exemplary embodiments.
- first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device without departing from the teachings of the disclosure.
- FIG. 1 is a simplified schematic illustrating an environment in which exemplary embodiments may be implemented.
- FIG. 1 illustrates a client device 20 that communicates with a mashup server 22 via a communications network 24 .
- the client device 20 for simplicity, is illustrated as a tablet computer 26 , but the client device 20 may be any processor-controlled device (as later paragraphs will explain).
- the mashup server 22 generates a software-based mashup 28 for delivery to the client device 20 .
- the mashup 28 may be a composite software product, such as a digital dashboard 30 or any other graphical user interface. Whatever the mashup 28 , the mashup 28 integrates one or more widgets 32 for presenting data 34 . Each widget 32 may be a software element for visual presentation.
- a widget 32 may be a self-contained graphical user interface, such as a pie chart, bar chart, or other software object.
- the widget 32 obtains its data 34 from a source, such as a data server 36 .
- the mashup server 22 collects the data 34 required by each widget 32 to build the mashup 28 .
- the mashup server 22 then sends the mashup 28 to the client device 20 .
- the mashup server 22 may generate the mashup 28 as a web page 38 , thus allowing a browser application 40 in the client device 20 to visually present the mashup 28 .
- the mashup 28 may visually display each widget 32 , thus graphically presenting the corresponding data 34 in a pie chart, bar chart, or any other visual object.
- FIGS. 2-3 are screen shots illustrating the mashup 28 , according to exemplary embodiments.
- FIG. 2 illustrates the mashup 28 having a single widget 32 in a single columnar layout.
- the widget 32 is a bar chart object that is processed for integration into the mashup 28 .
- FIG. 3 illustrates the mashup 28 having two different widgets 32 in a two columnar layout.
- the mashup 28 may have any layout and configuration that arranges the widgets 32 into a graphical user interface.
- the mashup 28 provides tabular and/or graphical views of the data 34 , such as key metrics or performance indicators.
- the user may interact with the mashup 28 to request and receive more detailed views of the data 34 , such as drilling down for trends, comparisons, and/or distributions.
- FIG. 4 is a schematic illustrating the widget 32 , according to exemplary embodiments.
- the widget 32 is illustrated as a single file 50 in memory 52 of the mashup server 22 .
- the widget 32 has a file structure that embodies everything needed for processing.
- the mashup server 22 reads the single file 50
- the mashup server 22 obtains a source definition 54 and a presentation definition 56 . That is, the single file 50 self-specifies both the source of the data 34 to be presented by the widget 32 and how the data 34 is presented in the mashup 28 .
- conventional widgets are composed of multiple files
- exemplary embodiments utilize the single file 50 to completely specify everything needed for processing of the widget 32 .
- the single file 50 structure allows faster processing of the widget 32 , thus allowing the mashup server 22 to more quickly respond to dynamic changes in the data 34 .
- FIGS. 5-7 are more detailed schematics illustrating an operating environment, according to exemplary embodiments.
- the client device 20 may have a processor 60 (e.g., “ ⁇ P”), application specific integrated circuit (ASIC), or other component that executes the browser application 40 stored in a local memory 62 .
- the browser application 40 instructs the client device 20 to send a web page request 64 to the mashup server 22 .
- the web page request 64 routes along the communications network (illustrated as reference numeral 24 in FIG. 1 ) to the network address associated with the mashup server 22 .
- the web page request 64 specifies a mashup identifier 66 associated with the mashup 28 desired by the client device 20 .
- the mashup identifier 66 may be a name that uniquely identifies the mashup 28 desired by the client device 20 .
- the mashup server 22 generates the mashup 28 .
- the mashup server 22 has a processor 70 (e.g., “ ⁇ P”), application specific integrated circuit (ASIC), or other component that executes a mashup algorithm 72 stored in the local memory 52 .
- the mashup algorithm 62 retrieves the widget 32 associated with the mashup identifier 66 .
- the mashup algorithm 62 reads the single file 50 structure of the widget 32 to obtain the source definition 54 and the presentation definition 56 .
- the source definition 54 specifies the data 34 to be retrieved, and the presentation definition 56 specifies how the data 34 is presented in the mashup 28 .
- FIG. 6 further illustrates the data 34 .
- the mashup algorithm 62 obtains both the source definition 54 and the presentation definition 56 .
- the mashup algorithm 62 instructs the processor 70 to send a query 74 according to the source definition 54 .
- the source definition 54 may specify a source network address 76 from which the data 34 is obtained.
- FIG. 6 illustrates the query 74 routing to the source network address 76 associated with the data server 36 .
- the data server 36 retrieves the source data 34 and sends the data 34 in a query response.
- the data 34 routes along the communications network (illustrated as reference numeral 24 in FIG. 1 ) to the network address associated with the mashup server 22 .
- the mashup algorithm 62 incorporates the source data 34 into the mashup 28 according to the presentation definition 56 .
- the mashup server 22 may further generate or convert the mashup 28 into the web page 38 .
- FIG. 7 further illustrates the web page 38 .
- the mashup server 22 may respond to the web page request 64 .
- the mashup server 22 may send the web page 38 to the network address associated with the client device 20 .
- the client-side browser application 40 causes the processor 60 to generate the mashup 28 as a graphical user interface (“GUI”) 80 that is displayed on a display device 82 .
- GUI graphical user interface
- the user of the client device 20 thus receives a graphical view of the source data 34 , such as key metrics or performance indicators that are presented by the web page 38 .
- FIG. 8 is a schematic illustrating a database 90 of mashup components, according to exemplary embodiments.
- the mashup algorithm 62 may need to determine what software components are to be integrated into the mashup 28 .
- the mashup algorithm 62 may cause the mashup server 22 to query the database 90 of mashup components.
- the database 90 of mashup components specifies the software components that are to be integrated into the desired mashup 28 .
- the database 90 of mashup components may be remotely stored and accessed from any location in the communications network (illustrated as reference numeral 24 in FIG. 1 ).
- the database 90 of mashup components may be a table that maps, relates, or associates the mashup identifier 66 to a listing of software components.
- the mashup algorithm 62 retrieves the software components of the desired mashup 28 , such as the widget 32 .
- the mashup algorithm 62 reads the single file 50 structure of the widget 32 to obtain the source definition 54 and the presentation definition 56 .
- the mashup server 22 retrieves the source data 34 for the widget 32 , and the source data 34 is incorporated into the mashup 28 according to the presentation definition 56 .
- the communications network may be a wired and/or wireless network having cellular and/or WI-FI® capabilities.
- the communications network 24 may also operate using any other frequency or standard, such as the BLUETOOTH® standard or the Internet Protocol (IP).
- IP Internet Protocol
- the communications network 24 may be a cable network operating in the radio-frequency domain and/or the Internet Protocol (IP) domain.
- the communications network 24 may also include a distributed computing network, such as the Internet or an application of the Internet (such as cloud-based computing), an intranet, a local-area network (LAN), and/or a wide-area network (WAN).
- the communications network 24 may include coaxial cables, copper wires, fiber optic lines, and/or hybrid-coaxial lines.
- the communications network 24 may even include wireless portions utilizing any portion of the electromagnetic spectrum and any signaling standard (such as the IEEE 802 family of standards, GSM/CDMA/TDMA or any cellular standard, and/or the ISM band).
- the communications network 24 may even include powerline portions, in which signals are communicated via electrical wiring.
- the concepts described herein may be applied to any wireless/wireline communications network, regardless of physical componentry, physical configuration, or communications standard(s).
- FIG. 9 is an alternate detailed schematic illustrating an operating environment, according to exemplary embodiments.
- a separate collector mechanism 100 may be used to collect the source data 34 required by the widget 32 .
- Exemplary embodiments in other words, may not burden the mashup server 22 with both collection of the source data 34 and generation of the mashup 28 .
- Exemplary embodiments instead, may use the separate collector mechanism 100 to retrieve the source data 34 .
- a collector server 102 may collect the source data 34 required by the widget 32 .
- the collector server 102 has a processor (e.g., “ ⁇ P”), application specific integrated circuit (ASIC), or other component that executes a collector algorithm 104 stored in a local memory.
- the collector mechanism 100 collects the source data 34 specified by the source definition 54 .
- the collector server 102 may then send, forward, or pass the source data 34 to the mashup server 22 .
- the collector server 102 may even transform the source data 34 into any format desired by the mashup algorithm 72 .
- the mashup algorithm 72 and the collector algorithm 104 may thus cooperate in a client-server relationship to build the mashup 28 using the source data 34 specified by the widget 32 .
- FIG. 10 is a schematic illustrating streaming sources, according to exemplary embodiments.
- the widget 32 has the single file 50 structure specifying the source definition 54 and the presentation definition 56 .
- the source definition 54 may specify a real-time or near real-time stream 110 of data as its source.
- FIG. 10 illustrates the stream 110 of data being retrieved from the data server 36 .
- the stream 110 of data may be retrieved from any third party provider, any subscription service, or any web service. Regardless, the provider may convert the stream 110 of data into plain old JAVA® objects (such as a JavaBean) using JAVA® database connectivity, JAVA® message service, web services, data logging, or any other formatting.
- the mashup algorithm 72 incorporates the stream 110 of data into the widget 32 to build the mashup 28 .
- FIGS. 11-12 are schematics illustrating a detailed operating environment, according to exemplary embodiments.
- one or more streams 110 of data are collected from stream providers, according to the source definition 54 specified by each widget 32 .
- the collector mechanism 100 passes the streams 110 of data to the mashup server 22 .
- the mashup server 22 acts as a software engine to incorporate the streams 110 of data into the mashup 28 , according to the widget 32 .
- Exemplary embodiments may include thresholding and alerting. As the one or more streams 110 of data are received, exemplary embodiments may compare the stream 110 of data to one or more threshold values. Some logical statement is defined that compares any data value in the stream 110 of data to a threshold value. If the data value satisfies or matches the threshold value, then an action is taken. The action, for example, may include a visual notification that is displayed in the mashup 28 . The visual notification alerts the user of the client device 20 to some unexpected or out-of-spec condition in the source data 34 .
- a Visualization Engine may be triggered by a Loader and installs resources required for visualization of the widget 32 .
- a dashboard controller provides web services for widget 32 (or dashlet) installation and management, stream management, and threshold and alerting management.
- the Loader provisions the mashup 28 with new dashlets and loads pre-packaged and installable widgets (perhaps in the JAVA® archive format).
- An alerts engine includes a pre-packaged alerts dashlet that subscribes to threshold streams (with stream subscription service of streams cache) and configurable alert destinations.
- a streams cache provides another web service that supports fetching of stream posts and cache control.
- the streams cache may have any type and/or characteristic, such as a weak hashmap (homegrown, on vm heap, single instance), an off heap map (homegrown, nio, single instance), an ORACLE® Coherence (distributed, commercial, non-persistent, non-time series), and/or an APACHE® Cassandra (distributed, open-source, persistent, time-series).
- the dashboard controller may interact with a model view controller (MVC) framework that provides streams access to controllers and delivers alerts to controllers.
- MVC model view controller
- the dashboard controller may also have an interface to a collector and thresholding engine that compares any data value in the stream 110 of data to a threshold value for both direct (in-process) and indirect (out-of-process w/s) sources.
- FIG. 12 further illustrates an architecture for the model view controller (MVC) illustrated in FIG. 11 .
- MVC model view controller
- the collector mechanism 100 may also be further explained.
- the collector and thresholding engine manages the stream providers, the stream definitions, and the stream subscription services.
- the collector and thresholding engine also provides a web service to the collector mechanism 100 .
- the web service provides stream definition, stream control, and stream subscriptions.
- the stream providers collect the source data, support scheduling, support threshold detection (basis for alert definitions), support aggregation and/or summarization, and broadcast the stream(s) 110 of data.
- the collector mechanism 100 may also provide an outgoing interface to the dashboard engine for direct (in-process) and indirect, processing that isolates the collector from the engine data path (stream results).
- FIGS. 13-14 are more detailed schematics illustrating the single file 50 structure of the widget 32 , according to exemplary embodiments.
- the widget 32 is a pluggable component of the mashup 28 and defined by its source definition 54 and its presentation definition 56 .
- the widget 32 may self identify itself with a text identifier 120 and a classification 122 .
- the source definition 54 identifies its controller component(s) 124 , streaming engine data source(s) 126 , and a polling interval 128 of the streaming data to obtain.
- the presentation definition 56 specifies the corresponding visualization parameters (such as JSP, HTML, CSS, images, and other resource specifications).
- the single file 50 structure of the widget 32 embeds the visualization elements in the dashboard resources, and the controller and stream classes are pre-defined in the single file 50 structure.
- the controller component(s) 124 may instruct the mashup server 22 (or software engine) to pre-load the streams 110 of data.
- the mashup server 22 calls, invokes, or uses application programming interfaces (or APIs) for dynamic control of the widget 32 .
- the widget's resources may be held in a JAVA® archive (or JAR) using a pre-defined widget format.
- FIG. 14 illustrates the single file 50 structure of the widget 32 in the JAVA® archive (or JAR) format.
- the JAVA® archive format may be used to provide both the visualization definition and tailoring.
- the stream 110 of data may thus define its origination and syntax.
- the stream 110 of data may thus specify its collection method and syntax of the source data 34 processed by the engine.
- Each stream 110 of data may be named and typed, and a group of streams 110 of data, having a same type classification, may share a single stream provider.
- Each stream 110 of data may thus be registered with its provider.
- Each stream 110 of data may define the one or more polling intervals 128 or be on-demand.
- Each stream 110 of data may self-represent itself as the plain old JAVA® objects.
- Each stream provider may source all streams 110 of data in its type class and works with any underlying data source(s).
- the stream provider may be responsible for starting or stopping the stream 110 of data.
- the stream provider may obtain any supplemental stream information (e.g., query string), and the stream provider may provides a stream listener to enable cache updates.
- FIG. 15 is another schematic illustrating the mashup 28 , according to exemplary embodiments.
- the mashup's look and feel determines the user's overall experience.
- the widget 32 and/or the mashup 28 may have one or more themes, drag and drop panels (portlet like), and layout control (panel grid in 2 ⁇ 2, 2 ⁇ 4, etc).
- Exemplary embodiments may utilize asynchronous Javascript (or AJAX) for dynamic updates to the widget content without performing a refresh of the web page 38 .
- Exemplary embodiments may utilize a push mechanism for live updates and/or asynchronous autonomous data pushes for real-time updates.
- FIG. 16 is another schematic illustrating the widget 32 , according to exemplary embodiments.
- the source definition 54 specifies the stream provider (ESPER) using SQL query support and “cron-like” polling.
- the source definition 54 also specifies a simple WeakHashMap in cache memory.
- FIG. 16 thus illustrates an example of the data source definition 54 specifying a JSP/JQuery format as a data table utilizing asynchronous Javascript (or AJAX) for dynamic updates.
- the single file 50 structure of the widget 32 may utilize file compression.
- the widget 32 may have multiple components that are compressed into the single file 50 structure. Each file component may be individually compressed and archived within the single file 50 structure. When the single file 50 is read, each component file may be individually extracted and decompressed. The widget 32 may thus have its required components zipped into the single file 50 structure.
- the single file 50 may then unzip and reveal its component files.
- the single file 50 may automatically unzip when a logical rule is satisfied.
- the single file 50 for example, may automatically bloom to reveal its component files based upon a location or an internal temperature of the client device 20 and/or the mashup server 22 .
- FIGS. 17-18 are flowcharts illustrating a method or algorithm for generating mashups, according to exemplary embodiments.
- the web page request 64 is received from the client device 20 (Block 130 ).
- the web page request 64 may specify the mashup identifier 66 associated with the requested mashup 28 .
- a query is made for the software components of the mashup 28 (Block 132 ).
- the widget 32 is retrieved as one of the software components of the mashup 28 (Block 134 ).
- the single file 50 is retrieved that completely defines the widget (Block 136 ).
- the source definition 54 and the presentation definition 56 are read from the single file 50 (Block 138 ).
- a query is made for the source data 34 specified by the source definition 54 (Block 140 ).
- the source data 34 is retrieved (Block 142 ).
- the algorithm continues with FIG. 18 .
- the source data 34 is integrated into the mashup 28 according to the single file (Block 144 ).
- the mashup 28 is converted into the web page 38 (Block 146 ).
- the web page 38 is sent to the client device 20 (Block 148 ).
- the source data 34 is compared to a threshold value (Block 150 ). When the source data satisfies the threshold value, an alarm is generated (Block 152 ).
- the alarm is incorporated into the mashup 28 (Block 154 ) and into the web page 38 (Block 156 ).
- FIG. 19 is a schematic illustrating still more exemplary embodiments.
- FIG. 19 is a more detailed diagram illustrating a processor-controlled device 300 .
- the mashup algorithm 72 may operate in any processor-controlled device.
- FIG. 19 illustrates the mashup algorithm 72 stored in a memory subsystem of the processor-controlled device 300 .
- One or more processors communicate with the memory subsystem and execute either or both applications. Because the processor-controlled device 300 is well-known to those of ordinary skill in the art, no further explanation is needed.
- FIG. 20 depicts still more operating environments for additional aspects of the exemplary embodiments.
- FIG. 20 illustrates that the exemplary embodiments may alternatively or additionally operate within other processor-controlled devices 300 .
- FIG. 20 illustrates that the mashup algorithm 72 may entirely or partially operate within a set-top box (“STB”) ( 302 ), a personal/digital video recorder (PVR/DVR) 304 , personal digital assistant (PDA) 306 , a Global Positioning System (GPS) device 308 , an interactive television 310 , an Internet Protocol (IP) phone 312 , a pager 314 , a cellular/satellite phone 316 , or any computer system, communications device, or any processor-controlled device utilizing a digital signal processor (DP/DSP) 318 .
- STB set-top box
- PVR/DVR personal/digital video recorder
- PDA personal digital assistant
- GPS Global Positioning System
- IP Internet Protocol
- IP Internet Protocol
- pager 314 a
- the processor-controlled device 300 may also include watches, radios, vehicle electronics, clocks, printers, gateways, mobile/implantable medical devices, and other apparatuses and systems. Because the architecture and operating principles of the various processor-controlled devices 300 are well known, the hardware and software componentry of the various processor-controlled devices 300 are not further shown and described.
- Exemplary embodiments may be physically embodied on or in a computer-readable storage medium.
- This computer-readable medium for example, may include CD-ROM, DVD, tape, cassette, floppy disk, optical disk, memory card, memory drive, and large-capacity disks.
- This computer-readable medium, or media could be distributed to end-subscribers, licensees, and assignees.
- a computer program product comprises processor-executable instructions for generating mashups, as the above paragraphs explained.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Methods, systems, and products simplify widgets for graphical mashups, such as digital dashboards and other user interfaces. When a software widget is a component of a graphical mashup, the widget is completely defined using a single file. The single file specifies both source data and presentation of the source data. Because the widget is completely defined by the single file, the single file allows faster processing of the widget.
Description
- This application is a continuation of U.S. application Ser. No. 13/706,375 filed Dec. 6, 2012 and since issued as U.S. Pat. No. ______, which is incorporated herein by reference in its entirety.
- Graphical mashups visually present data. A mashup may integrate data specified by one or more widgets. Widgets, though, are difficult to specify, thus leading to errors in integration.
- The features, aspects, and advantages of the exemplary embodiments are understood when the following Detailed Description is read with reference to the accompanying drawings, wherein:
-
FIG. 1 is a simplified schematic illustrating an environment in which exemplary embodiments may be implemented; -
FIGS. 2-3 are screen shots illustrating a mashup, according to exemplary embodiments; -
FIG. 4 is a schematic illustrating a widget, according to exemplary embodiments; -
FIGS. 5-7 are more detailed schematics illustrating an operating environment, according to exemplary embodiments; -
FIG. 8 is a schematic illustrating a database of mashup components, according to exemplary embodiments; -
FIG. 9 is an alternate detailed schematic illustrating an operating environment, according to exemplary embodiments; -
FIG. 10 is a schematic illustrating streaming sources, according to exemplary embodiments; -
FIGS. 11-12 are schematics illustrating a detailed operating environment, according to exemplary embodiments; -
FIGS. 13-14 are schematics illustrating a single file structure of the widget, according to exemplary embodiments; -
FIG. 15 is another schematic illustrating the mashup, according to exemplary embodiments; -
FIG. 16 is another schematic illustrating the widget, according to exemplary embodiments; -
FIGS. 17-18 are flowcharts illustrating a method or algorithm for generating mashups, according to exemplary embodiments; and -
FIGS. 19-20 depict still more operating environments for additional aspects of the exemplary embodiments. - The exemplary embodiments will now be described more fully hereinafter with reference to the accompanying drawings. The exemplary embodiments may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. These embodiments are provided so that this disclosure will be thorough and complete and will fully convey the exemplary embodiments to those of ordinary skill in the art. Moreover, all statements herein reciting embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
- Thus, for example, it will be appreciated by those of ordinary skill in the art that the diagrams, schematics, illustrations, and the like represent conceptual views or processes illustrating the exemplary embodiments. The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing associated software. Those of ordinary skill in the art further understand that the exemplary hardware, software, processes, methods, and/or operating systems described herein are for illustrative purposes and, thus, are not intended to be limited to any particular named manufacturer.
- As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless expressly stated otherwise. It will be further understood that the terms “includes,” “comprises,” “including,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. Furthermore, “connected” or “coupled” as used herein may include wirelessly connected or coupled. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
- It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device without departing from the teachings of the disclosure.
-
FIG. 1 is a simplified schematic illustrating an environment in which exemplary embodiments may be implemented.FIG. 1 illustrates aclient device 20 that communicates with amashup server 22 via acommunications network 24. Theclient device 20, for simplicity, is illustrated as atablet computer 26, but theclient device 20 may be any processor-controlled device (as later paragraphs will explain). Themashup server 22 generates a software-basedmashup 28 for delivery to theclient device 20. Themashup 28 may be a composite software product, such as adigital dashboard 30 or any other graphical user interface. Whatever themashup 28, themashup 28 integrates one ormore widgets 32 for presentingdata 34. Eachwidget 32 may be a software element for visual presentation. Awidget 32, for example, may be a self-contained graphical user interface, such as a pie chart, bar chart, or other software object. Thewidget 32 obtains itsdata 34 from a source, such as adata server 36. Themashup server 22 collects thedata 34 required by eachwidget 32 to build themashup 28. Themashup server 22 then sends themashup 28 to theclient device 20. Themashup server 22, for example, may generate themashup 28 as aweb page 38, thus allowing abrowser application 40 in theclient device 20 to visually present themashup 28. Themashup 28 may visually display eachwidget 32, thus graphically presenting thecorresponding data 34 in a pie chart, bar chart, or any other visual object. -
FIGS. 2-3 are screen shots illustrating themashup 28, according to exemplary embodiments.FIG. 2 illustrates themashup 28 having asingle widget 32 in a single columnar layout. Thewidget 32 is a bar chart object that is processed for integration into themashup 28.FIG. 3 illustrates themashup 28 having twodifferent widgets 32 in a two columnar layout. Themashup 28, however, may have any layout and configuration that arranges thewidgets 32 into a graphical user interface. Whatever the layout, themashup 28 provides tabular and/or graphical views of thedata 34, such as key metrics or performance indicators. Moreover, the user may interact with themashup 28 to request and receive more detailed views of thedata 34, such as drilling down for trends, comparisons, and/or distributions. -
FIG. 4 is a schematic illustrating thewidget 32, according to exemplary embodiments. Here thewidget 32 is illustrated as asingle file 50 inmemory 52 of themashup server 22. Because thewidget 32 is thesingle file 50, thewidget 32 has a file structure that embodies everything needed for processing. When themashup server 22 reads thesingle file 50, themashup server 22 obtains asource definition 54 and apresentation definition 56. That is, thesingle file 50 self-specifies both the source of thedata 34 to be presented by thewidget 32 and how thedata 34 is presented in themashup 28. Whereas conventional widgets are composed of multiple files, exemplary embodiments utilize thesingle file 50 to completely specify everything needed for processing of thewidget 32. Thesingle file 50 structure allows faster processing of thewidget 32, thus allowing themashup server 22 to more quickly respond to dynamic changes in thedata 34. -
FIGS. 5-7 are more detailed schematics illustrating an operating environment, according to exemplary embodiments. Theclient device 20 may have a processor 60 (e.g., “μP”), application specific integrated circuit (ASIC), or other component that executes thebrowser application 40 stored in alocal memory 62. When a user of theclient device 20 wishes to retrieve themashup 28, thebrowser application 40 instructs theclient device 20 to send aweb page request 64 to themashup server 22. Theweb page request 64 routes along the communications network (illustrated asreference numeral 24 inFIG. 1 ) to the network address associated with themashup server 22. Theweb page request 64 specifies amashup identifier 66 associated with themashup 28 desired by theclient device 20. Themashup identifier 66, for example, may be a name that uniquely identifies themashup 28 desired by theclient device 20. - The
mashup server 22 generates themashup 28. Themashup server 22 has a processor 70 (e.g., “μP”), application specific integrated circuit (ASIC), or other component that executes amashup algorithm 72 stored in thelocal memory 52. When themashup server 22 receives theweb page request 64, themashup algorithm 62 retrieves thewidget 32 associated with themashup identifier 66. Themashup algorithm 62 reads thesingle file 50 structure of thewidget 32 to obtain thesource definition 54 and thepresentation definition 56. Thesource definition 54 specifies thedata 34 to be retrieved, and thepresentation definition 56 specifies how thedata 34 is presented in themashup 28. -
FIG. 6 further illustrates thedata 34. When thesingle file 50 structure is read, themashup algorithm 62 obtains both thesource definition 54 and thepresentation definition 56. Themashup algorithm 62 instructs theprocessor 70 to send aquery 74 according to thesource definition 54. Thesource definition 54, for example, may specify asource network address 76 from which thedata 34 is obtained.FIG. 6 , for simplicity, illustrates thequery 74 routing to thesource network address 76 associated with thedata server 36. Thedata server 36 retrieves thesource data 34 and sends thedata 34 in a query response. Thedata 34 routes along the communications network (illustrated asreference numeral 24 inFIG. 1 ) to the network address associated with themashup server 22. When themashup server 22 receives thedata 34, themashup algorithm 62 incorporates thesource data 34 into themashup 28 according to thepresentation definition 56. Themashup server 22 may further generate or convert themashup 28 into theweb page 38. -
FIG. 7 further illustrates theweb page 38. Now that themashup 28 is built, themashup server 22 may respond to theweb page request 64. When themashup 28 is generated as theweb page 38, themashup server 22 may send theweb page 38 to the network address associated with theclient device 20. The client-side browser application 40 causes theprocessor 60 to generate themashup 28 as a graphical user interface (“GUI”) 80 that is displayed on adisplay device 82. The user of theclient device 20 thus receives a graphical view of thesource data 34, such as key metrics or performance indicators that are presented by theweb page 38. -
FIG. 8 is a schematic illustrating adatabase 90 of mashup components, according to exemplary embodiments. When themashup algorithm 62 builds themashup 28, themashup algorithm 62 may need to determine what software components are to be integrated into themashup 28. Themashup algorithm 62, then, may cause themashup server 22 to query thedatabase 90 of mashup components. Thedatabase 90 of mashup components specifies the software components that are to be integrated into the desiredmashup 28.FIG. 8 illustrates thedatabase 90 of mashup components as being locally stored in thememory 52 of themashup server 22, but thedatabase 90 of mashup components may be remotely stored and accessed from any location in the communications network (illustrated asreference numeral 24 inFIG. 1 ). Thedatabase 90 of mashup components, for example, may be a table that maps, relates, or associates themashup identifier 66 to a listing of software components. Themashup algorithm 62 retrieves the software components of the desiredmashup 28, such as thewidget 32. Themashup algorithm 62 reads thesingle file 50 structure of thewidget 32 to obtain thesource definition 54 and thepresentation definition 56. Themashup server 22 retrieves thesource data 34 for thewidget 32, and thesource data 34 is incorporated into themashup 28 according to thepresentation definition 56. - Exemplary embodiments may be applied regardless of networking environment. The communications network (illustrated as
reference numeral 24 inFIG. 1 ) may be a wired and/or wireless network having cellular and/or WI-FI® capabilities. Thecommunications network 24, however, may also operate using any other frequency or standard, such as the BLUETOOTH® standard or the Internet Protocol (IP). Thecommunications network 24, however, may be a cable network operating in the radio-frequency domain and/or the Internet Protocol (IP) domain. Thecommunications network 24, however, may also include a distributed computing network, such as the Internet or an application of the Internet (such as cloud-based computing), an intranet, a local-area network (LAN), and/or a wide-area network (WAN). Thecommunications network 24 may include coaxial cables, copper wires, fiber optic lines, and/or hybrid-coaxial lines. Thecommunications network 24 may even include wireless portions utilizing any portion of the electromagnetic spectrum and any signaling standard (such as the IEEE 802 family of standards, GSM/CDMA/TDMA or any cellular standard, and/or the ISM band). Thecommunications network 24 may even include powerline portions, in which signals are communicated via electrical wiring. The concepts described herein may be applied to any wireless/wireline communications network, regardless of physical componentry, physical configuration, or communications standard(s). -
FIG. 9 is an alternate detailed schematic illustrating an operating environment, according to exemplary embodiments. Here aseparate collector mechanism 100 may be used to collect thesource data 34 required by thewidget 32. Exemplary embodiments, in other words, may not burden themashup server 22 with both collection of thesource data 34 and generation of themashup 28. Exemplary embodiments, instead, may use theseparate collector mechanism 100 to retrieve thesource data 34. Acollector server 102, for example, may collect thesource data 34 required by thewidget 32. Thecollector server 102 has a processor (e.g., “μP”), application specific integrated circuit (ASIC), or other component that executes acollector algorithm 104 stored in a local memory. Thecollector mechanism 100 collects thesource data 34 specified by thesource definition 54. Thecollector server 102 may then send, forward, or pass thesource data 34 to themashup server 22. Thecollector server 102 may even transform thesource data 34 into any format desired by themashup algorithm 72. Themashup algorithm 72 and thecollector algorithm 104 may thus cooperate in a client-server relationship to build themashup 28 using thesource data 34 specified by thewidget 32. -
FIG. 10 is a schematic illustrating streaming sources, according to exemplary embodiments. As earlier paragraphs explained, thewidget 32 has thesingle file 50 structure specifying thesource definition 54 and thepresentation definition 56. Sometimes thesource definition 54 may specify a real-time or near real-time stream 110 of data as its source.FIG. 10 , for simplicity, illustrates thestream 110 of data being retrieved from thedata server 36. In practice, though, thestream 110 of data may be retrieved from any third party provider, any subscription service, or any web service. Regardless, the provider may convert thestream 110 of data into plain old JAVA® objects (such as a JavaBean) using JAVA® database connectivity, JAVA® message service, web services, data logging, or any other formatting. Once thestream 110 of data is obtained, themashup algorithm 72 incorporates thestream 110 of data into thewidget 32 to build themashup 28. -
FIGS. 11-12 are schematics illustrating a detailed operating environment, according to exemplary embodiments. Here one ormore streams 110 of data are collected from stream providers, according to thesource definition 54 specified by eachwidget 32. Thecollector mechanism 100 passes thestreams 110 of data to themashup server 22. Themashup server 22 acts as a software engine to incorporate thestreams 110 of data into themashup 28, according to thewidget 32. - Exemplary embodiments may include thresholding and alerting. As the one or
more streams 110 of data are received, exemplary embodiments may compare thestream 110 of data to one or more threshold values. Some logical statement is defined that compares any data value in thestream 110 of data to a threshold value. If the data value satisfies or matches the threshold value, then an action is taken. The action, for example, may include a visual notification that is displayed in themashup 28. The visual notification alerts the user of theclient device 20 to some unexpected or out-of-spec condition in thesource data 34. - Visualization may be explained. As
FIG. 11 illustrates, a Visualization Engine may be triggered by a Loader and installs resources required for visualization of thewidget 32. A dashboard controller provides web services for widget 32 (or dashlet) installation and management, stream management, and threshold and alerting management. The Loader provisions themashup 28 with new dashlets and loads pre-packaged and installable widgets (perhaps in the JAVA® archive format). An alerts engine includes a pre-packaged alerts dashlet that subscribes to threshold streams (with stream subscription service of streams cache) and configurable alert destinations. A streams cache provides another web service that supports fetching of stream posts and cache control. The streams cache may have any type and/or characteristic, such as a weak hashmap (homegrown, on vm heap, single instance), an off heap map (homegrown, nio, single instance), an ORACLE® Coherence (distributed, commercial, non-persistent, non-time series), and/or an APACHE® Cassandra (distributed, open-source, persistent, time-series). The dashboard controller may interact with a model view controller (MVC) framework that provides streams access to controllers and delivers alerts to controllers. The dashboard controller may also have an interface to a collector and thresholding engine that compares any data value in thestream 110 of data to a threshold value for both direct (in-process) and indirect (out-of-process w/s) sources.FIG. 12 further illustrates an architecture for the model view controller (MVC) illustrated inFIG. 11 . - The
collector mechanism 100 may also be further explained. The collector and thresholding engine manages the stream providers, the stream definitions, and the stream subscription services. The collector and thresholding engine also provides a web service to thecollector mechanism 100. The web service provides stream definition, stream control, and stream subscriptions. The stream providers collect the source data, support scheduling, support threshold detection (basis for alert definitions), support aggregation and/or summarization, and broadcast the stream(s) 110 of data. Thecollector mechanism 100 may also provide an outgoing interface to the dashboard engine for direct (in-process) and indirect, processing that isolates the collector from the engine data path (stream results). -
FIGS. 13-14 are more detailed schematics illustrating thesingle file 50 structure of thewidget 32, according to exemplary embodiments. Thewidget 32 is a pluggable component of themashup 28 and defined by itssource definition 54 and itspresentation definition 56. Thewidget 32 may self identify itself with atext identifier 120 and aclassification 122. Thesource definition 54 identifies its controller component(s) 124, streaming engine data source(s) 126, and apolling interval 128 of the streaming data to obtain. Thepresentation definition 56 specifies the corresponding visualization parameters (such as JSP, HTML, CSS, images, and other resource specifications). Thesingle file 50 structure of thewidget 32 embeds the visualization elements in the dashboard resources, and the controller and stream classes are pre-defined in thesingle file 50 structure. The controller component(s) 124 may instruct the mashup server 22 (or software engine) to pre-load thestreams 110 of data. Themashup server 22 calls, invokes, or uses application programming interfaces (or APIs) for dynamic control of thewidget 32. The widget's resources may be held in a JAVA® archive (or JAR) using a pre-defined widget format.FIG. 14 illustrates thesingle file 50 structure of thewidget 32 in the JAVA® archive (or JAR) format. Here the JAVA® archive format may be used to provide both the visualization definition and tailoring. - The
stream 110 of data may thus define its origination and syntax. Thestream 110 of data may thus specify its collection method and syntax of thesource data 34 processed by the engine. Eachstream 110 of data may be named and typed, and a group ofstreams 110 of data, having a same type classification, may share a single stream provider. Eachstream 110 of data may thus be registered with its provider. Eachstream 110 of data may define the one ormore polling intervals 128 or be on-demand. Eachstream 110 of data may self-represent itself as the plain old JAVA® objects. Each stream provider may source allstreams 110 of data in its type class and works with any underlying data source(s). The stream provider may be responsible for starting or stopping thestream 110 of data. The stream provider may obtain any supplemental stream information (e.g., query string), and the stream provider may provides a stream listener to enable cache updates. -
FIG. 15 is another schematic illustrating themashup 28, according to exemplary embodiments. The mashup's look and feel determines the user's overall experience. Thewidget 32 and/or themashup 28 may have one or more themes, drag and drop panels (portlet like), and layout control (panel grid in 2×2, 2×4, etc). Exemplary embodiments may utilize asynchronous Javascript (or AJAX) for dynamic updates to the widget content without performing a refresh of theweb page 38. Exemplary embodiments may utilize a push mechanism for live updates and/or asynchronous autonomous data pushes for real-time updates. -
FIG. 16 is another schematic illustrating thewidget 32, according to exemplary embodiments. Here thesingle file 50 structure summarizes port assignments (“pasummary”) Thesource definition 54 specifies the stream provider (ESPER) using SQL query support and “cron-like” polling. Thesource definition 54 also specifies a simple WeakHashMap in cache memory.FIG. 16 thus illustrates an example of thedata source definition 54 specifying a JSP/JQuery format as a data table utilizing asynchronous Javascript (or AJAX) for dynamic updates. - The
single file 50 structure of thewidget 32 may utilize file compression. Thewidget 32 may have multiple components that are compressed into thesingle file 50 structure. Each file component may be individually compressed and archived within thesingle file 50 structure. When thesingle file 50 is read, each component file may be individually extracted and decompressed. Thewidget 32 may thus have its required components zipped into thesingle file 50 structure. Thesingle file 50 may then unzip and reveal its component files. Thesingle file 50, for example, may automatically unzip when a logical rule is satisfied. Thesingle file 50, for example, may automatically bloom to reveal its component files based upon a location or an internal temperature of theclient device 20 and/or themashup server 22. -
FIGS. 17-18 are flowcharts illustrating a method or algorithm for generating mashups, according to exemplary embodiments. Theweb page request 64 is received from the client device 20 (Block 130). Theweb page request 64 may specify themashup identifier 66 associated with the requestedmashup 28. A query is made for the software components of the mashup 28 (Block 132). Thewidget 32 is retrieved as one of the software components of the mashup 28 (Block 134). Thesingle file 50 is retrieved that completely defines the widget (Block 136). Thesource definition 54 and thepresentation definition 56 are read from the single file 50 (Block 138). A query is made for thesource data 34 specified by the source definition 54 (Block 140). Thesource data 34 is retrieved (Block 142). - The algorithm continues with
FIG. 18 . Thesource data 34 is integrated into themashup 28 according to the single file (Block 144). Themashup 28 is converted into the web page 38 (Block 146). Theweb page 38 is sent to the client device 20 (Block 148). Thesource data 34 is compared to a threshold value (Block 150). When the source data satisfies the threshold value, an alarm is generated (Block 152). The alarm is incorporated into the mashup 28 (Block 154) and into the web page 38 (Block 156). -
FIG. 19 is a schematic illustrating still more exemplary embodiments.FIG. 19 is a more detailed diagram illustrating a processor-controlleddevice 300. As earlier paragraphs explained, themashup algorithm 72 may operate in any processor-controlled device.FIG. 19 , then, illustrates themashup algorithm 72 stored in a memory subsystem of the processor-controlleddevice 300. One or more processors communicate with the memory subsystem and execute either or both applications. Because the processor-controlleddevice 300 is well-known to those of ordinary skill in the art, no further explanation is needed. -
FIG. 20 depicts still more operating environments for additional aspects of the exemplary embodiments.FIG. 20 illustrates that the exemplary embodiments may alternatively or additionally operate within other processor-controlleddevices 300.FIG. 20 , for example, illustrates that themashup algorithm 72 may entirely or partially operate within a set-top box (“STB”) (302), a personal/digital video recorder (PVR/DVR) 304, personal digital assistant (PDA) 306, a Global Positioning System (GPS)device 308, aninteractive television 310, an Internet Protocol (IP)phone 312, apager 314, a cellular/satellite phone 316, or any computer system, communications device, or any processor-controlled device utilizing a digital signal processor (DP/DSP) 318. The processor-controlleddevice 300 may also include watches, radios, vehicle electronics, clocks, printers, gateways, mobile/implantable medical devices, and other apparatuses and systems. Because the architecture and operating principles of the various processor-controlleddevices 300 are well known, the hardware and software componentry of the various processor-controlleddevices 300 are not further shown and described. - Exemplary embodiments may be physically embodied on or in a computer-readable storage medium. This computer-readable medium, for example, may include CD-ROM, DVD, tape, cassette, floppy disk, optical disk, memory card, memory drive, and large-capacity disks. This computer-readable medium, or media, could be distributed to end-subscribers, licensees, and assignees. A computer program product comprises processor-executable instructions for generating mashups, as the above paragraphs explained.
- While the exemplary embodiments have been described with respect to various features, aspects, and embodiments, those skilled and unskilled in the art will recognize the exemplary embodiments are not so limited. Other variations, modifications, and alternative embodiments may be made without departing from the spirit and scope of the exemplary embodiments.
Claims (20)
1. A system, comprising:
a hardware processor; and
a memory device, the memory device storing instructions, the instructions when executed causing the hardware processor to perform operations, the operations comprising:
determining a widget associated with a graphical mashup;
determining a polling interval associated with the widget, the polling interval for polling a stream of data as an input to the widget; and
generating the graphical mashup according to the polling interval associated with the widget.
2. The system of claim 1 , wherein the operations further comprise incorporating the widget into the graphical mashup.
3. The system of claim 1 , wherein the operations further comprise determining a presentation definition associated with the widget.
4. The system of claim 3 , wherein the operations further comprise incorporating the widget into the graphical mashup according to the presentation definition.
5. The system of claim 1 , wherein the operations further comprise determining a presentation definition associated with the widget.
6. The system of claim 5 , wherein the operations further comprise incorporating the widget into the graphical mashup according to the presentation definition.
7. The system of claim 1 , wherein the operations further comprise retrieving a stream of data according to the polling interval.
8. The system of claim 1 , wherein the operations further comprise incorporating the stream of data into the graphical mashup according to the polling interval.
9. A method of generating a mashup, comprising:
determining, by a server, a widget associated with a graphical mashup;
retrieving, by the server, files associated with the widget;
determining, by the server, a polling interval from one of the files associated with the widget, the polling interval for polling a stream of data as an input to the widget; and
generating, by the server, the graphical mashup according to the polling interval associated with the widget.
10. The method of claim 9 , further comprising incorporating the widget into the graphical mashup.
11. The method of claim 9 , further comprising determining a presentation definition associated with the widget.
12. The method of claim 11 , further comprising incorporating the widget into the graphical mashup according to the presentation definition.
13. The method of claim 9 , further comprising determining a presentation definition associated with the widget.
14. The method of claim 13 , further comprising incorporating the widget into the graphical mashup according to the presentation definition.
15. The method of claim 9 , further comprising retrieving a stream of data according to the polling interval.
16. The method of claim 9 , further comprising incorporating the stream of data into the graphical mashup according to the polling interval.
17. A memory device storing instructions that when executed cause a hardware processor to perform operations, the operations comprising:
determining a widget associated with a graphical mashup;
retrieving files associated with the widget;
determining a polling interval from one of the files associated with the widget, the polling interval for polling a stream of data as an input to the widget; and
generating the graphical mashup according to the polling interval associated with the widget.
18. The memory device of claim 17 , wherein the operations further comprise incorporating the widget into the graphical mashup.
19. The memory device of claim 17 , wherein the operations further comprise determining a presentation definition associated with the widget.
20. The memory device of claim 19 , wherein the operations further comprise incorporating the widget into the graphical mashup according to the presentation definition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/399,834 US20170132183A1 (en) | 2012-12-06 | 2017-01-06 | Methods, Systems, and Products for Generating Mashups |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/706,375 US9558286B2 (en) | 2012-12-06 | 2012-12-06 | Methods, systems, and products for generating mashups |
US15/399,834 US20170132183A1 (en) | 2012-12-06 | 2017-01-06 | Methods, Systems, and Products for Generating Mashups |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/706,375 Continuation US9558286B2 (en) | 2012-12-06 | 2012-12-06 | Methods, systems, and products for generating mashups |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170132183A1 true US20170132183A1 (en) | 2017-05-11 |
Family
ID=50882119
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/706,375 Active 2034-05-16 US9558286B2 (en) | 2012-12-06 | 2012-12-06 | Methods, systems, and products for generating mashups |
US15/399,834 Abandoned US20170132183A1 (en) | 2012-12-06 | 2017-01-06 | Methods, Systems, and Products for Generating Mashups |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/706,375 Active 2034-05-16 US9558286B2 (en) | 2012-12-06 | 2012-12-06 | Methods, systems, and products for generating mashups |
Country Status (1)
Country | Link |
---|---|
US (2) | US9558286B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023105B2 (en) * | 2013-10-02 | 2021-06-01 | Massachusetts Institute Of Technology | Systems and methods for composable analytics |
US20150117244A1 (en) * | 2013-10-30 | 2015-04-30 | Fluke Corporation | Methods to visualize time-aligned data flow between nodes in a communication network |
US9672280B2 (en) * | 2014-04-10 | 2017-06-06 | Google Inc. | Methods, systems, and media for searching for video content |
US10275476B2 (en) * | 2014-12-22 | 2019-04-30 | Verizon Patent And Licensing Inc. | Machine to machine data aggregator |
US10768800B2 (en) * | 2016-12-06 | 2020-09-08 | The Directv Group, Inc. | Scrolling score guide with quick tune feature |
US10824292B2 (en) * | 2018-01-18 | 2020-11-03 | Micro Focus Llc | Widget-of-interest identification |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070276951A1 (en) * | 2006-05-25 | 2007-11-29 | Nicholas Dale Riggs | Apparatus and method for efficiently and securely transferring files over a communications network |
US20090313601A1 (en) * | 2008-06-12 | 2009-12-17 | Kerstin Baird | System For Dynamic Discovery, Configuration, And Development Of Process-Bound Widgets |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933830A (en) | 1997-05-09 | 1999-08-03 | Corda Technologies, Inc. | Device and method for arranging data for use by a data client, such as a graph |
US20040117439A1 (en) | 2001-02-12 | 2004-06-17 | Levett David Lawrence | Client software enabling a client to run a network based application |
US8112307B2 (en) | 2003-02-11 | 2012-02-07 | Hewlett-Packard Development Company, L.P. | Method of reporting the presentation of data, a data storage medium and a system for employing a web page |
US20040225955A1 (en) | 2003-05-08 | 2004-11-11 | The Boeing Company | Intelligent information dashboard system and method |
US8302020B2 (en) | 2004-06-25 | 2012-10-30 | Apple Inc. | Widget authoring and editing environment |
US8683017B2 (en) | 2006-09-29 | 2014-03-25 | Rockwell Automation Technologies, Inc. | Web-based configuration of distributed automation systems |
US8365079B2 (en) | 2008-12-31 | 2013-01-29 | International Business Machines Corporation | Collaborative development of visualization dashboards |
US8656291B2 (en) | 2010-03-12 | 2014-02-18 | Salesforce.Com, Inc. | System, method and computer program product for displaying data utilizing a selected source and visualization |
US20110314373A1 (en) | 2010-06-21 | 2011-12-22 | Salesforce.Com, Inc. | System, method and computer program product for performing actions associated with data to be displayed, utilizing a widget |
US20120041990A1 (en) * | 2010-08-10 | 2012-02-16 | Sap Ag | System and Method for Generating Dashboard Display in Software Applications |
TW201222405A (en) | 2010-11-16 | 2012-06-01 | Hon Hai Prec Ind Co Ltd | Method for configuring view of city in weather forecast application |
-
2012
- 2012-12-06 US US13/706,375 patent/US9558286B2/en active Active
-
2017
- 2017-01-06 US US15/399,834 patent/US20170132183A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070276951A1 (en) * | 2006-05-25 | 2007-11-29 | Nicholas Dale Riggs | Apparatus and method for efficiently and securely transferring files over a communications network |
US20090313601A1 (en) * | 2008-06-12 | 2009-12-17 | Kerstin Baird | System For Dynamic Discovery, Configuration, And Development Of Process-Bound Widgets |
Also Published As
Publication number | Publication date |
---|---|
US20140164359A1 (en) | 2014-06-12 |
US9558286B2 (en) | 2017-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170132183A1 (en) | Methods, Systems, and Products for Generating Mashups | |
US11822512B1 (en) | Graphical user interface for previewing events using a selected field delimiter option | |
US10848510B2 (en) | Selecting network security event investigation timelines in a workflow environment | |
US11132111B2 (en) | Assigning workflow network security investigation actions to investigation timelines | |
US20180322419A1 (en) | Model Driven Modular Artificial Intelligence Learning Framework | |
US10268755B2 (en) | Systems and methods for providing dynamic indexer discovery | |
US9516052B1 (en) | Timeline displays of network security investigation events | |
US10469346B2 (en) | Correlating performance data of client and host to identify performance issue of a third device | |
US11870741B2 (en) | Systems and methods for a metadata driven integration of chatbot systems into back-end application services | |
US9479519B1 (en) | Web content fingerprint analysis to detect web page issues | |
US10860655B2 (en) | Creating and testing a correlation search | |
US20170060562A1 (en) | System for developing, testing, deploying, and managing applications in real-time | |
CN110771098A (en) | Structured architecture for temporal graph storage and retrieval | |
US10448070B2 (en) | Media device knowledge base | |
US20160098402A1 (en) | Custom Communication Alerts | |
US11314761B1 (en) | Method and system for centralized multi-instance deployment consolidation | |
EP2679017A2 (en) | Streaming of media content using customised playlist of the content parts | |
EP2443539B1 (en) | Widget activation and communication method | |
US11461408B1 (en) | Location-based object identification and data visualization | |
US12273361B2 (en) | Techniques for managing projects and monitoring network-based assets | |
US10621388B2 (en) | Automatic delta query support for backend databases | |
KR20210035348A (en) | Extracting similar group elements | |
CN114143173A (en) | Data processing method, device, equipment and storage medium | |
US20160132566A1 (en) | Native federation view suggestion | |
US20250103307A1 (en) | Field extraction of heterogeneous log records with recursive sub parsing at ingest time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AT&T INTELLECTUAL PROPERTY I, L.P., GEORGIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:JEFFERY, DONALD;REEL/FRAME:041292/0591 Effective date: 20121205 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |