US20170228447A1 - Integrated developer workflow for data visualization development - Google Patents
Integrated developer workflow for data visualization development Download PDFInfo
- Publication number
- US20170228447A1 US20170228447A1 US15/016,504 US201615016504A US2017228447A1 US 20170228447 A1 US20170228447 A1 US 20170228447A1 US 201615016504 A US201615016504 A US 201615016504A US 2017228447 A1 US2017228447 A1 US 2017228447A1
- Authority
- US
- United States
- Prior art keywords
- data visualization
- data
- template
- database
- layout
- 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.)
- Granted
Links
Images
Classifications
-
- 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/26—Visual data mining; Browsing structured data
-
- G06F17/30572—
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit 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/25—Integrating or interfacing systems involving database management systems
-
- 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/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G06F17/248—
-
- G06F17/30377—
-
- G06F17/30557—
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Definitions
- Web-based applications are stored and operate, at least in part, on a web server accessible by client communication devices (e.g., PCs, smartphones, and other devices) through a communications network.
- client communication devices e.g., PCs, smartphones, and other devices
- This client-server system configuration allows users operating their communication devices to access web-based applications from remote locations as long as their communication devices have access to a common communications network. In many cases, this attribute of allowing remote user access makes web-based applications preferable over applications that are stored and operated locally from a user's own computing device. Web-based applications may also be preferable for their ability to present information to a wider audience, and to present the information quickly and efficiently.
- application development programs may be utilized to develop web-based applications.
- Such application development programs may provide a set of pre-defined development tools for creating web-based applications.
- available application development programs typically restrict a developer from freely modifying applications outside of predetermined boundaries, or provide difficult to use and complicated to learn environments, both of which present significant obstacles to non-experts who wish to develop custom applications.
- a development platform system (“system”) provides a development platform with development tools for creating web-based applications.
- the development platform comprises of a standardized structure of visualization components and layout templates for setting the components within a presentation layout and workflow.
- the standardized structure in which data is applied to the components and in which components are set into templates allows for the curation of a library of both visualization components and layout templates to be used by the development platform.
- the development platform greatly facilitates visualization capabilities available through network accessibility, and by packaging relevant technology in the system so that a developer does not need to install or configure such a system from scratch.
- the development platform includes development tools for enhancing the capabilities of data visualizations that may be included, modified, and deployed as part of a web-based application.
- the development platform further includes development tools for facilitating real-time updates to data visualizations.
- the development platform further includes development tools for saving new and/or modified data visualization templates to a database library for subsequent retrieval.
- the system may comprise a database interface configured to communicate with a database library and a data source server, a communication interface configured to communicate with a client device, and a processor configured to communicate with the database interface and the communication database.
- the processor may further be configured to obtain, through the database interface, a layout template from the database library, the layout template including a data visualization panel.
- the processor may further be configured to obtain, through the database interface, a data visualization template from the database library, the data visualization template identifying the data source server and a data visualization structure.
- the processor may further be configured to receive, through the database interface, updateable data from the data source server.
- the processor may further be configured to render the updateable data into a data visualization according to the data visualization structure.
- the processor may further be configured to control display of the data visualization in the data visualization panel within the layout template.
- the processor may further be configured to generate a data visualization modification interface and accept a client device customization input of data visualization logic implemented by the data visualization.
- the processor may further be configured to modify the data visualization rendering logic responsive to the client device customization.
- the system implements corresponding logic that facilitates receiving, through a communication interface, an access request from a client device, the access request including authentication information corresponding to a user, authenticating the access request based on the authentication information, obtaining, through a database interface, a layout template from a database library, the layout template including a data visualization panel, obtaining, through the database interface, a data visualization template from the database library, the data visualization template identifying a data source server and a data visualization structure, receiving, through the database interface, updateable data from the data source server, rendering the updateable data into a data visualization according to the data visualization form structure, controlling display of the data visualization in the data visualization panel within the layout template, generating a data visualization modification interface and accepting a client device customization input of data visualization logic implemented by the data visualization, and modifying the data visualization rendering logic responsive to the client device customization.
- the system may comprise a database library configured to store a plurality of layout templates and a plurality of data visualization templates, a data source server configured to store updateable data for rendering into a data visualization, and a client device.
- the client device may comprise a communication interface, a memory configured to store instructions for operating a web application browser, and a processor configured to execute the instructions for operating the web application browser.
- the system may further comprise an application server.
- the application server may comprise a database interface configured to communicate with the database library and the data source server, a communication interface configured to communicate with the client device, and a processor configured to communicate with the database interface and the communication database.
- the processor may further be configured to obtain, through the database interface, a layout template from the database library, the layout template including a data visualization panel, obtain, through the database interface, a data visualization template from the database library, the data visualization template identifying the data source server and a data visualization structure, receive, through the database interface, updateable data from the data source server, render the updateable data into a data visualization according to the data visualization structure, control display of the data visualization in the data visualization panel within the layout template, generate a data visualization modification interface and accept a client device customization input of data visualization logic implemented by the data visualization, and modify the data visualization rendering logic responsive to the client device customization.
- FIG. 1 illustrates an exemplary development platform system.
- FIG. 2 illustrates a block diagram of an exemplary computer architecture for a device in the exemplary development platform system illustrated in FIG. 1 .
- FIG. 3 illustrates an exemplary client-server block diagram describing components of a development platform running on a client-side communication device and a server-side communication device, according to some embodiments.
- FIG. 4 illustrates a flow diagram of logic that a development platform system may implement.
- FIG. 5 illustrates an additional flow diagram of logic that a development platform system may implement.
- FIG. 6 illustrates an additional flow diagram of logic that a development platform system may implement.
- FIG. 7 illustrates an exemplary graphical interface of the development platform system for searching data visualization templates.
- FIG. 8 illustrates another exemplary graphical interface of the development platform system for searching data visualization templates.
- FIG. 9 illustrates an exemplary development tool of the development platform system for modifying a data visualization.
- FIG. 10 illustrates an exemplary development tool of the development platform system for modifying a data visualization.
- FIG. 11 illustrates an exemplary development tool of the development platform system for modifying a data visualization.
- FIG. 12 illustrates an exemplary development tool of the development platform system for modifying a data visualization.
- FIG. 13 illustrates an exemplary development tool of the development platform system for modifying a data visualization.
- a web-based application is generally understood to be an application stored and configured to operate, at least in part, on a web server accessible to other communication devices connected to a common communication network.
- a user operating their communication device may communicate with the web-server through the common communication network to access and operate the web-based application.
- the web-based application offers many advantages, such as accessibility to remote users, based on its framework being stored on a web server(s).
- Another advantage of web-based applications is the capability to present data in real-time, or substantially real-time as understood in the related field, to a vast number of remote users connected to a common communication network.
- the data may be presented on the web-based application in the form of data visualizations.
- a data visualization may be a visual representation of the data, which can take on a number of different structures.
- a data visualization may be generated to represent data in a tabular structure (e.g., a bar graph, a table, a pie chart, or other known tabular structure), a geospatial structure (e.g., data is referenced to a geographical location or set of geographic coordinates which can be gathered, manipulated, and displayed in real-time), a hierarchical structure (e.g., a data model in which the data is represented by data nodes within a tree-like structure, where each data node is connected to another data node through a link and each data node records a collection of fields having a value), or a time-series structure (e.g., a time series data structure may be a sequence of data points, typically consisting of successive measurements made over a time interval).
- a time-series structure e.g., a time series data structure may be a sequence of data points, typically consisting of successive measurements made over a time interval.
- the development platform system (“system”) described below provides a development platform configured to include tools for creating a web-based application with one or more visualization plug-ins, each of which may be customized.
- the development platform may be configured to allow the developer to search for and select a design layout template from multiple available design layout templates that are presented as a result of the search query.
- Each design layout template may be comprised of one or more components. Exemplary components include a data visualization template, a navigation tools component, a details information component, and a panel component.
- the development platform may further be configured to search for and select a data visualization template from available data visualization templates that are presented as a result of the search query.
- the data visualization template may be a component within a selected design layout template.
- the data visualization template may include instructions for rendering a data visualization in a specified data visualization structure based on data received from an identified database source.
- data for the data visualization may be sourced from a real-time database source configured to transmit the data to the web server hosting the web-based application so that the web-based application may render the data visualization of the data as the web-based application receives the data from the real-time database source.
- the development platform may allow the developer to independently modify attributes of a data visualization included on the web-based application. Therefore, the development platform may further be configured to provide the developer with a data visualization modification interface that allows the developer to modify attributes of the data visualization.
- the development platform may further be configured to generate metadata describing attributes of the data visualization, and associate the metadata to the corresponding data visualization template or other corresponding component.
- the development platform may further be configured to store a new or modified data visualization template, with or without corresponding metadata, on a database library. The developer may later access the database library while developing a subsequent web-based application, and search for a particular data visualization template based on information described by the corresponding metadata.
- Exemplary metadata attached to a data visualization template may describe an author who created the data visualization template, a name identifying the data visualization template, an industry for which the data visualization template was created, a database source for the data visualization template, a data visualization structure and/or format of a data visualization that will be rendered within the data visualization template based on data obtained from a data source, attributes describing the web-based application(s) in which the data visualization template was used, and/or data relationships (e.g., comparisons or outlier identification) for the data that comprises the data visualization rendered within the data visualization template.
- data relationships e.g., comparisons or outlier identification
- FIG. 1 illustrates exemplary system architecture for development platform system 100 that includes component devices for implementing the described features.
- Development platform system 100 includes an application server 140 configured to include the hardware, software, and/or middleware for operating the described development platform 150 .
- Application server 140 is shown to include a processor 141 , a memory 144 , a communication interface 142 , and a database interface 143 .
- Development platform system 100 further includes a database library 120 configured to store application layout templates and/or data visualization templates.
- the database library 120 is configured to provide templates to the development platform 150 either directly, or through a network 130 , via the database interface 143 .
- Development platform system 100 further includes a data server 160 configured to store, receive, and transmit data.
- the data server 160 is configured to provide data for rendering into data visualizations according to the development platform 150 either directly, or through network 130 , via the database interface 143 .
- Development platform system 100 further includes a secondary application server 170 configured to communicate with the application server 140 either directly, or through network 130 . Secondary application server 170 may be configured to store and/or operate a web-based application developed by the development platform 150 , according to some embodiments. According to other embodiments, a web-based application developed by the development platform 150 may be stored and/or operated on the application server 140 .
- the development platform system 100 communicates with any number and type of communication devices 110 , where communication device 110 may include well known computing systems, environments, and/or configurations that may be suitable for implementing features of the development platform 150 such as, but are not limited to, smart phones, tablet computers, personal computers (PCs), server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network PCs, server computers, minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.
- FIG. 1 shows that the communication device 110 includes a processor 111 , a memory 114 configured to store the instructions for operating a web application browser, an input/output devices 113 , and a communication interface 112 .
- a user operating the communication device 110 may run the web application browser to access the development platform 150 running on the application server 140 .
- Development platform 150 may be a representation of software, hardware, and/or middleware configured to implement features of the development platform 150 , such as for the development and/or modification of a web-based application.
- the development platform 150 may be a web-based application operating, for example, according to a .NET framework within the development platform system 100 .
- the development platform 150 may include control circuitry 151 , layout template selection circuitry 152 , and data visualization template selection circuitry 153 .
- Each of the control circuitry 151 , the layout template selection circuitry 152 , and the data visualization template selection circuitry 153 may be a representation of software, hardware, and/or middleware configured to implement respective features of the development platform 150 .
- Control circuitry 151 may be configured to include configuration controls enabling a user (e.g., authorized user) to configure certain features of development platform 150 . Control circuitry 151 may further be configured to include security controls for authenticating users to access, use, and/or configure features of the development platform 150 . Control circuitry 151 may further be configured to include log-in controls that control a log-in process enabling the communication device 110 to log-in and access the development platform 150 running on application server 140 .
- a user may open a web application browser on the communication device 110 .
- the web application browser may then request access to the development platform 150 by transmitting an access request signal to the application server 140 through the network 130 , via the communication interface 112 .
- the access request signal may be received by the application server 140 via the communication interface 142 , and further received by the control circuitry 151 of the development platform 150 .
- Control circuitry 151 may then control a log-in protocol by receiving and authenticating log-in credentials included in the access request signal (e.g., user name, password, authentication of the communication device 110 , etc.).
- control circuitry 151 may also control a security protocol by determining the user's access level based on the log-in credentials included in the access request signal. According to some embodiments, the control circuitry 151 may grant authenticated user's identified as having certain predetermined access levels the capability to configure features and/or attributes of the development platform 150 . After successfully passing the log-in protocol and/or security protocol, a user may be allowed to operate the development platform 150 from the web application browser running on the user's communication devise 110 .
- FIG. 8 illustrates an exemplary development platform user interface 800 of the development platform 150 that allows the user to input a search query and select an application layout template from a search query result that includes a blank canvas layout 801 , an angular 3-panel template 802 (e.g., includes a navigation section along a top of the web-application interface, a panel for providing information on a first side of the web-application interface, and a data visualization on a second side of the web-application interface), and a backbone 3-panel template 803 (e.g., includes a panel for providing information in a first section of the web-application interface, a data visualization in a second section of the web-application interface, and a detailed information section in a third section of the web-application interface).
- angular 3-panel template 802 e.g., includes a navigation section along a top of the web-application interface, a panel for providing information on a first side of the web-application interface, and a data visualization on a second side of the web-application interface
- Development platform user interface 800 further includes a navigation pane 810 comprised of a visualization library menu 811 , a dashboard templates menu 812 ( FIG. 8 illustrates the development platform user interface 800 according to the dashboard templates menu), and a documentation menu 813 .
- Development platform 150 may communicate with the database library 120 , either directly or through network 130 , to retrieve the selected application template.
- the control circuitry 151 may identify the user's access level based on information included in the access request signal, and grant the user access to certain authorized templates (e.g., web-application templates or data visualization templates) from the database library 120 , while preventing access to other templates stored on the database library 120 .
- the user may control the data visualization template selection circuitry 153 to select a data visualization template to include in the web-based application being developed by the development platform 150 .
- the data visualization template includes information identifying a database source from which data will be obtained to render a data visualization.
- the database source may transmit data according to a predetermined schedule, or substantially in real-time.
- the data visualization may further include information identifying the data visualization structure in which the data from the database source will be rendered.
- a data visualization may be generated to represent data in a tabular structure (e.g., a bar graph, a table, a pie chart, or other known tabular structure), a geospatial structure (e.g., data is referenced to a geographical location or set of geographic coordinates which can be gathered, manipulated, and displayed in real-time), a hierarchical structure (e.g., a data model in which the data is represented by data nodes within a tree-like structure, where each data node is connected to another data node through a link and each data node records a collection of fields having a value), or a time-series structure (e.g., a time series data structure may be a sequence of data points, typically consisting of successive measurements made over a time interval).
- a time-series structure e.g., a time series data structure may be a sequence of data points, typically consisting of successive measurements made over a time interval.
- FIG. 7 illustrates an exemplary development platform user interface 700 of the development platform 150 that allows the user to input a search query and select a data visualization template from a search query result that includes a gauge chart 701 , a geospatial map 702 , and a scatterplot chart 703 .
- the search query may be entered into a search query input field 714 .
- Development platform user interface 700 further includes a navigation pane 710 comprised of a visualization library menu 711 ( FIG. 7 illustrates the development platform user interface 800 according to the visualization library menu), a dashboard templates menu 712 , and a documentation menu 713 .
- Development platform 150 may communicate with database library 120 , either directly or through network 130 , to retrieve the selected data visualization template.
- control circuitry 151 may identify the user's access level based on information included in the access request signal, and grants the user access to certain authorized templates (e.g., web-application templates or data visualization templates) from database library 120 , while preventing access to other templates stored on the database library 120 .
- Data visualization template selection circuitry 153 may control communication with data server 160 to request data for rendering a data visualization, according to the selected data visualization template.
- Data server 160 may then transmit data to application server 140 , which is received via database interface 143 .
- the data may then be received and processed by data visualization template selection circuitry 153 .
- Data visualization template selection circuitry 153 may then render the selected data visualization based on the received data.
- data server 160 may transmit data to the data visualization template selection circuitry 153 in real-time, thus enabling the data visualization template selection circuitry 153 to render the selected data visualization to reflect the real-time updates to the data.
- the user may control data visualization template selection circuitry 153 to select a database (e.g., database library 120 ) for storing new or modified data visualization templates created by the user.
- a database e.g., database library 120
- Each data visualization template stored into the database library 120 may also include metadata for describing attributes of the data visualization template.
- Exemplary metadata attached to the data visualization template may describe an author who created the data visualization template, a name identifying the data visualization template, an industry for which the data visualization template was created, a database source for the data visualization template, a data visualization structure of the data visualization template, or attributes describing the web-based application(s) in which the data visualization template was used.
- Each of communication device 110 , database library 120 , application server 140 , data server 160 , and secondary application server 170 may include one or more components of computer system 200 illustrated in FIG. 2 .
- FIG. 2 illustrates exemplary computer architecture for computer system 200 .
- Computer system 200 includes a network interface 220 that allows communication with other computers via a network 226 , where network 226 may be represented by network 130 in FIG. 1 .
- Network 226 may be any suitable network and may support any appropriate protocol suitable for communication to computer system 200 .
- network 226 may support wireless communications.
- network 226 may support hard-wired communications, such as a telephone line or cable.
- network 226 may support the Ethernet IEEE (Institute of Electrical and Electronics Engineers) 802.3x specification.
- network 226 may be the Internet and may support IP (Internet Protocol).
- network 226 may be a LAN or a WAN.
- network 226 may be a hotspot service provider network. In another embodiment, network 226 may be an intranet. In another embodiment, network 226 may be a GPRS (General Packet Radio Service) network. In another embodiment, network 226 may be any appropriate cellular data network or cell-based radio network technology. In another embodiment, network 226 may be an IEEE 802.11 wireless network. In still another embodiment, network 226 may be any suitable network or combination of networks. Although one network 226 is shown in FIG. 2 , network 226 may be representative of any number of networks (of the same or different types) that may be utilized.
- GPRS General Packet Radio Service
- the computer system 200 may also include a processor 202 , a main memory 204 , a static memory 206 , an output device 210 (e.g., a display or speaker), an input device 212 , and a storage device 216 , communicating via a bus 208 .
- a processor 202 may also include a main memory 204 , a static memory 206 , an output device 210 (e.g., a display or speaker), an input device 212 , and a storage device 216 , communicating via a bus 208 .
- Processor 202 represents a central processing unit of any type of architecture, such as a CISC (Complex Instruction Set Computing), RISC (Reduced Instruction Set Computing), VLIW (Very Long Instruction Word), or a hybrid architecture, although any appropriate processor may be used.
- Processor 202 executes instructions 224 stored on one or more of the main memory 204 , static memory 206 , or storage device 215 .
- Processor 202 may also include portions of the computer system 200 that control the operation of the entire computer system 200 .
- Processor 202 may also represent a controller that organizes data and program storage in memory and transfers data and other information between the various parts of the computer system 200 .
- Processor 202 is configured to receive input data and/or user commands through input device 212 .
- Input device 212 may be a keyboard, mouse or other pointing device, trackball, scroll, button, touchpad, touch screen, keypad, microphone, speech recognition device, video recognition device, accelerometer, gyroscope, global positioning system (GPS) transceiver, or any other appropriate mechanism for the user to input data to computer system 200 and control operation of computer system 200 and/or operation of the development platform 150 .
- Input device 212 as illustrated in FIG. 2 may be representative of any number and type of input devices.
- Processor 202 may also communicate with other computer systems via network 226 to receive instructions 224 , where processor 202 may control the storage of such instructions 224 into any one or more of the main memory 204 (e.g., random access memory (RAM)), static memory 206 (e.g., read only memory (ROM)), or the storage device 216 . Processor 202 may then read and execute instructions 224 from any one or more of the main memory 204 , static memory 206 , or storage device 216 . The instructions 224 may also be stored onto any one or more of the main memory 204 , static memory 206 , or storage device 216 through other sources. The instructions 224 may correspond to, for example, instructions that make up the development platform 150 .
- main memory 204 e.g., random access memory (RAM)
- static memory 206 e.g., read only memory (ROM)
- ROM read only memory
- Processor 202 may then read and execute instructions 224 from any one or more of the main memory 204 , static memory 206
- computer system 200 is represented in FIG. 2 as a single processor 202 and a single bus 208 , the disclosed embodiments applies equally to computer systems that may have multiple processors and to computer systems that may have multiple busses with some or all performing different functions in different ways.
- Storage device 216 represents one or more mechanisms for storing data.
- storage device 216 may include a computer readable medium 222 such as read-only memory (ROM), RAM, non-volatile storage media, optical storage media, flash memory devices, and/or other machine-readable media. In other embodiments, any appropriate type of storage device may be used. Although only one storage device 216 is shown, multiple storage devices and multiple types of storage devices may be present.
- computer system 200 is drawn to contain the storage device 216 , it may be distributed across other computer systems that are in communication with computer system 200 , such as a server in communication with computer system 200 . For example, when computer system 200 is representative of communication device 110 , storage device 216 may be distributed across to application server 140 when communication device 110 is in communication with application server 140 during operation of the development platform 150 .
- Storage device 216 may include a controller (not shown) and a computer readable medium 222 having instructions 224 capable of being executed by processor 202 to carry out functions of the development platform 150 . In another embodiment, some or all of the functions are carried out via hardware in lieu of a processor-based system.
- the controller included in storage device 216 is a web application browser, but in other embodiments the controller may be a database system, a file system, an electronic mail system, a media manager, an image manager, or may include any other functions capable of accessing data items.
- Storage device 216 may also contain additional software and data (not shown), for implementing described features.
- Output device 210 is configured to present information to the user.
- output device 210 may be a display such as a liquid crystal display (LCD), a gas or plasma-based flat-panel display, or a traditional cathode-ray tube (CRT) display or other well-known type of display in the art of computer hardware. Accordingly in some embodiments, output device 210 displays a user interface. In other embodiments, output device 210 may be a speaker configured to output audible information to the user. In still other embodiments, any combination of output devices may be represented by the output device 210 .
- LCD liquid crystal display
- CRT cathode-ray tube
- Network interface 220 provides the computer system 200 with connectivity to the network 226 through any compatible communications protocol.
- Network interface 220 sends and/or receives data from the network 226 via a wireless or wired transceiver 214 .
- Transceiver 214 may be a cellular frequency, radio frequency (RF), infrared (IR) or any of a number of known wireless or wired transmission systems capable of communicating with network 226 or other computer device having some or all of the features of computer system 200 .
- Bus 208 may represent one or more busses, e.g., USB, PCI, ISA (Industry Standard Architecture), X-Bus, EISA (Extended Industry Standard Architecture), or any other appropriate bus and/or bridge (also called a bus controller).
- Network interface 220 as illustrated in FIG.
- communications interface 142 i.e., a communications network interface
- database interface 143 i.e., a database network interface
- communications interface 142 and database interface 143 may be representative of a single network interface card hardware component configured to communicate with different data sources.
- Computer system 200 may be implemented using any suitable hardware and/or software, such as a personal computer or other electronic computing device.
- computer system 200 may also be a portable computer, laptop, tablet or notebook computer, PDA, pocket computer, appliance, telephone, server computer device, or mainframe computer.
- FIG. 3 illustrates an exemplary client-server block diagram describing components of the development platform 150 operating on a server side device (e.g., operating on application server 140 ), and components of the development platform 150 operating on a client side device (e.g., operating on communication device 110 ).
- a server side device e.g., operating on application server 140
- client side device e.g., operating on communication device 110
- application components of the development platform 150 may be running on, for example, at least portions of the application server 140 , the database library 120 , and/or the data server 160 .
- the application components may include a database management system (DBMS) 301 , an application program interface (API) data controller 302 , and a server side routing component 303 .
- DBMS 301 may be implemented by memory components of the application server 140 , the database library 120 , and/or the data server 160 during operation of development platform 150 .
- API data controller 302 may be implemented by processor and/or controller components of application server 140 .
- Server side routing component 303 may be implemented by network interface components and/or router components of application server 140 .
- client side application logic components and visualization user interface components may be running on, for example, at least portions of communication device 110 and/or application server 140 .
- the client side application logic components may include a client side router 304 , a controller 305 , data filters 306 , and an event handling component 307 .
- the visualization user interface component may include an exemplary dashboard layout styling 308 .
- Dashboard layout styling 308 for the development platform 150 is illustrated by the exemplary development platform user interface 700 illustrated in FIG. 7 and the exemplary development platform user interface 800 illustrated in FIG. 8 .
- Development platform user interface 700 and development platform user interface 800 commonly include a navigation section 710 and navigation section 810 , respectively, comprised of various development tools for developing a web-based application.
- navigation section 710 and navigation section 810 includes a visualization library menu 711 and a visualization library menu 811 , a dashboard templates menu 712 and a dashboard templates menu 812 , and a documentation menu 712 and a documentation menu 812 , respectively.
- Selection of the visualization library menu 711 or the visualization library menu 811 may present the user with selection tools for selecting a data visualization template according to any one or more of the described processes.
- a data visualization template stored either on the application server 140 , communication device 110 , or database library 120 may be accessed and selected for developing a web-application according to the development platform 150 .
- Selection of the visualization tool may further allow the user to select a data source for receiving data that will be reference when rendering a data visualization according to the selected data visualization template.
- Selection of the visualization tool may further allow the user to select a database (e.g., database library 120 ) for storing a new or modified data visualization template, and creating the metadata for attaching to the data visualization template.
- Selection of the dashboard templates menu 712 or the dashboard templates menu 812 may present the user with selection tools for selecting a web-application template according to any one or more of the described processes.
- a web-application template stored either on the application server 140 , the communication device 110 , or the database library 120 may be accessed and selected for developing a web-application.
- Selection of the documentation tool 513 may allow the user to clarify usage of the tools, templates, and visualization components to the user.
- Documentation tools that may be provided in response to selection of the documentation tool 523 include manuals on how to install, debug, and use the framework, as well as instructions on how to contribute additional visualizations to the repository that are aligned to specified data specifications (i.e. in a structure that is amenable to a framework of the system).
- FIG. 4 illustrates a flow diagram 400 of logic that the development platform system 100 may implement to provide and operate the development platform 150 .
- the features described with relation to the flow diagram 400 may correspond to the development of a new web-based application by the development platform 150 .
- References are made to components illustrated in FIG. 1 during the description of the flow diagram 400 for exemplary purposes.
- a user operating communication device 110 may request access to development platform 150 by transmitting an access request signal from communication device 110 to application server 140 ( 401 ).
- control circuitry 151 may implement a log-in protocol and/or security protocol based on the received access request according to any one or more of the described processes.
- Development platform 150 may obtain a web-application layout template based on user control inputs ( 402 ).
- FIG. 5 illustrates a flow diagram of logic describing a number of processes that may comprise obtaining the web-application layout template ( 402 ).
- the layout template selection circuitry 152 may present the user with the development platform user interface 800 illustrated in FIG. 8 .
- the layout template selection circuitry 152 may receive the user's layout template search query input within, for example, search query input field 814 of development platform user interface 800 ( 501 ).
- the user's layout template search query may identify layout template attributes.
- the layout template selection circuitry 152 may control parsing of database library 120 to identify one or more web-application layout templates that match, or otherwise corresponds, to the user's layout template search query ( 502 ).
- the layout template selection circuitry 152 may identify one or more web-application layout templates that match, or otherwise corresponds, to the user's layout template search query ( 503 ).
- the layout template selection circuitry 152 may present a search query result that includes one or more of the identified web-application layout templates ( 504 ).
- development platform user interface 800 illustrates a search query result that includes blank canvas layout 801 , angular 3-panel template 802 , and backbone 3-panel template 803 .
- the layout template selection circuitry 152 may receive the user's selection input from the available web-application layout templates presented in the search query result ( 505 ).
- the layout template selection circuitry 152 may obtain the selected web-application layout template from the database library 120 based on the user's selection input ( 506 ).
- the selected web-application layout template may include a data visualization panel.
- the user may obtain a data visualization template that includes instructions for rendering a data visualization within a data visualization panel of the web-application layout template obtained ( 403 ).
- the user may obtain the data visualization template according to any one or more process for selecting a data visualization template described in this disclosure ( 403 ).
- FIG. 6 illustrates a flow diagram describing a number of processes that may comprise obtaining the data visualization template ( 403 ).
- the data visualization template selection circuitry 153 may present the user with the development platform user interface 700 illustrated in FIG. 7 .
- the data visualization template selection circuitry 153 may receive the user's data visualization template search query input within, for example, search query input field 714 of development platform user interface 700 ( 601 ).
- the user's data visualization template search query may identify data visualization template attributes.
- the data visualization template selection circuitry 153 may control parsing of database library 120 to identify one or more data visualization templates that match, or otherwise corresponds, to the user's layout template search query ( 602 ).
- the data visualization template selection circuitry 153 may identify one or more data visualization templates that match, or otherwise corresponds, to the user's layout template search query ( 603 ).
- the data visualization template selection circuitry 153 may present a search query result that includes one or more of the identified data visualization templates ( 604 ).
- the development platform user interface 700 illustrates a search query result that includes a gauge chart 701 , a geospatial map 702 , and a scatterplot chart 703 .
- the data visualization template selection circuitry 153 may receive the user's selection input from the available data visualization templates presented in the search query result ( 605 ).
- the data visualization template selection circuitry 153 may obtain the selected data visualization template from the database library 120 based on the user's selection input ( 606 ).
- the development platform 150 may receive updateable data from a data source (e.g., data server 160 ) for supplying data that will be represented by the data visualization generated according to the obtained data visualization template ( 404 ).
- the obtained data visualization template may identify the data source based on identification information included in the data visualization template.
- the development platform 150 may render the received updateable data into a data visualization formatted to the data visualization structure identified in the obtained data visualization template ( 405 ).
- the data visualization may be formatted into one of a plurality of available standardized data structures.
- the data visualization may be formatted into one of the following standardized data structures: a real-time time series data structure, non-real-time time series data structure, or geospatial data structure.
- the development platform 150 may control presentation of the data visualization ( 406 ). For example, development platform 150 may control display of the data visualization within the data visualization panel of the web-based application being developed by the development platform 150 .
- the development platform 150 may control the generation of a data visualization modification interface ( 407 ).
- the data visualization modification interface includes features enabling the user to modify attributes of the data visualization by directly modifying the program code related to the generation of the data visualization.
- FIG. 9 illustrates an exemplary data visualization modification interface 900 that may be generated.
- Data visualization modification interface 900 may include a display section 910 configured to display a data visualization 911 , a navigation panel 920 for displaying menu options, a sub-navigation panel 930 for displaying sub-menu options corresponding to a menu option selected from the navigation panel 920 , and a coding section 940 for enabling the user to modify code for modifying attributes of data visualization 911 .
- Data visualization 911 is rendered in a bar chart data structure.
- the data visualization modification interface 900 may allow modification of code within coding section 940 to modify a color of the data visualization 911 , modify dimension of the data visualization 911 , modify a data source for rendering the data visualization 911 , modify a width of the data visualization 911 , modify a height of the data visualization 911 , change the data structure of the data visualization 911 , or some combination thereof.
- FIG. 10 illustrates another exemplary data visualization modification interface 1000 that may be generated.
- Data visualization modification interface 1000 may include a display section 1010 configured to display a data visualization 1011 , a navigation panel 1020 for displaying menu options, a sub-navigation panel 1030 for displaying sub-menu options corresponding to a menu option selected from the navigation panel 1020 , and a coding section 1040 for enabling the user to modify code for modifying attributes of data visualization 1011 .
- Data visualization 1011 is rendered in a network graph data structure.
- the data visualization modification interface 1000 may allow modification of code within coding section 1040 to modify a color of the data visualization 1011 , modify dimensions of the data visualization 1011 , modify a data source for rendering the data visualization 1011 , change the data structure of the data visualization 1011 , or some combination thereof.
- FIG. 11 illustrates another exemplary data visualization modification interface 1100 that may be generated.
- Data visualization modification interface 1100 may include a display section 1110 configured to display a data visualization 1111 , a navigation panel 1120 for displaying menu options, a sub-navigation panel 1130 for displaying sub-menu options corresponding to a menu option selected from the navigation panel 1120 , and a coding section 1140 for enabling the user to modify code for modifying attributes of data visualization 1111 .
- Data visualization 1111 is rendered in a hierarchical graph data structure.
- the data visualization modification interface 1100 may allow modification of code within coding section 1140 to modify a width of the data visualization 1111 , modify a height of the data visualization 1111 , modify a color of the data visualization 1111 , modify dimensions of the data visualization 1111 , modify a data source for rendering the data visualization 1111 , change the data structure of the data visualization 1111 , or some combination thereof.
- FIG. 12 illustrates another exemplary data visualization modification interface 1200 that may be generated.
- Data visualization modification interface 1200 may include a display section 1210 configured to display a data visualization 1211 , a navigation panel 1220 for displaying menu options, a sub-navigation panel 1230 for displaying sub-menu options corresponding to a menu option selected from the navigation panel 1220 , and a coding section 1240 for enabling the user to modify code for modifying attributes of data visualization 1211 .
- Data visualization 1211 is rendered in a geospatial graph data structure.
- the data visualization modification interface 1200 may allow modification of code within coding section 1240 to modify a map center of the data visualization 1211 , modify a width of the data visualization 1211 , modify a height of the data visualization 1211 , modify dimensions of the data visualization 1211 , modify a data source for rendering the data visualization 1211 , modify a map source for rendering the data visualization 1211 , change the data structure of the data visualization 1211 , or some combination thereof.
- FIG. 13 illustrates another exemplary data visualization modification interface 1300 that may be generated.
- Data visualization modification interface 1300 may include a display section 1310 configured to display a data visualization 1311 , a navigation panel 1320 for displaying menu options, a sub-navigation panel 1330 for displaying sub-menu options corresponding to a menu option selected from the navigation panel 1320 , and a coding section 1340 for enabling the user to modify code for modifying attributes of data visualization 1311 .
- Data visualization 1311 is rendered in a time series graph data structure.
- the data visualization modification interface 1300 may allow modification of code within coding section 1340 to modify dimensions of the data visualization 1311 , modify a color modify of the data visualization 1311 , modify a data source for rendering the data visualization 1311 , change the data structure of the data visualization 1311 , modifying a geometric function (e.g., sin, cos, tan) for rendering the data visualization 1311 , or some combination thereof.
- a geometric function e.g., sin, cos, tan
- the user may have access to modify attributes of the data visualization based on the user's determined access level as authenticated by control circuitry 151 .
- the user may be authorized to modify certain attributes of the data visualization, while being prevented from accessing modification to other attributes of the data visualization, based on the user's access level.
- Exemplary data visualization attributes that may be modified directly by modification of the controlling software code include, but are not limited to, data visualization structure, dimensions (e.g., height, width, depth), color, data source, name, data update interval, industry relating to the data visualization, and/or other visual or controlling attributes.
- software code modifications made within the data visualization modification interface may be accepted ( 408 ).
- the acceptance of modifications to certain attributes of the data visualization may be made according to the user's determined access level, as described.
- the development platform may create new and/or updated metadata that describe attributes of the modified data visualization ( 408 ).
- the development platform 150 may control storage of the new and/or modified data visualization template that includes the modified data visualization ( 409 ).
- the new and/or modified data visualization template may be stored in database library 120 .
- the corresponding metadata may also be stored in database library 120 , where the modified data visualization template may be subsequently retrieved from the database library 120 based on a search query matching, or otherwise relating to, the metadata describing attributes of the modified data visualization template.
- circuitry that includes an instruction processor, such as a Central Processing Unit (CPU), microcontroller, or a microprocessor; or as an Application Specific Integrated Circuit (ASIC), Programmable Logic Device (PLD), or Field Programmable Gate Array (FPGA); or as circuitry that includes discrete logic or other circuit components, including analog circuit components, digital circuit components or both; or any combination thereof.
- instruction processor such as a Central Processing Unit (CPU), microcontroller, or a microprocessor
- ASIC Application Specific Integrated Circuit
- PLD Programmable Logic Device
- FPGA Field Programmable Gate Array
- the circuitry may include discrete interconnected hardware components or may be combined on a single integrated circuit die, distributed among multiple integrated circuit dies, or implemented in a Multiple Chip Module (MCM) of multiple integrated circuit dies in a common package, as examples.
- MCM Multiple Chip Module
- the circuitry may store or access instructions for execution, or may implement its functionality in hardware alone.
- the instructions may be stored in a tangible storage medium that is other than a transitory signal, such as a flash memory, a Random Access Memory (RAM), a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM); or on a magnetic or optical disc, such as a Compact Disc Read Only Memory (CDROM), Hard Disk Drive (HDD), or other magnetic or optical disk; or in or on another machine-readable medium.
- a product such as a computer program product, may include a storage medium and instructions stored in or on the medium, and the instructions when executed by the circuitry in a device may cause the device to implement any of the processing described above or illustrated in the drawings.
- the circuitry may include multiple distinct system components, such as multiple processors and memories, and may span multiple distributed processing systems.
- Parameters, databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be logically and physically organized in many different ways, and may be implemented in many different ways.
- Example implementations include linked lists, program variables, hash tables, arrays, records (e.g., database records), objects, and implicit storage mechanisms. Instructions may form parts (e.g., subroutines or other code sections) of a single program, may form multiple separate programs, may be distributed across multiple memories and processors, and may be implemented in many different ways.
- Example implementations include stand-alone programs, and as part of a library, such as a shared library like a Dynamic Link Library (DLL).
- the library may contain shared data and one or more shared programs that include instructions that perform any of the processing described above or illustrated in the drawings, when executed by the circuitry.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- Web-based applications are stored and operate, at least in part, on a web server accessible by client communication devices (e.g., PCs, smartphones, and other devices) through a communications network. This client-server system configuration allows users operating their communication devices to access web-based applications from remote locations as long as their communication devices have access to a common communications network. In many cases, this attribute of allowing remote user access makes web-based applications preferable over applications that are stored and operated locally from a user's own computing device. Web-based applications may also be preferable for their ability to present information to a wider audience, and to present the information quickly and efficiently.
- In an effort to efficiently create such web-based applications, application development programs may be utilized to develop web-based applications. Such application development programs may provide a set of pre-defined development tools for creating web-based applications. However, available application development programs typically restrict a developer from freely modifying applications outside of predetermined boundaries, or provide difficult to use and complicated to learn environments, both of which present significant obstacles to non-experts who wish to develop custom applications.
- A development platform system (“system”) provides a development platform with development tools for creating web-based applications. The development platform comprises of a standardized structure of visualization components and layout templates for setting the components within a presentation layout and workflow. The standardized structure in which data is applied to the components and in which components are set into templates allows for the curation of a library of both visualization components and layout templates to be used by the development platform. The development platform greatly facilitates visualization capabilities available through network accessibility, and by packaging relevant technology in the system so that a developer does not need to install or configure such a system from scratch. In particular, the development platform includes development tools for enhancing the capabilities of data visualizations that may be included, modified, and deployed as part of a web-based application. The development platform further includes development tools for facilitating real-time updates to data visualizations. The development platform further includes development tools for saving new and/or modified data visualization templates to a database library for subsequent retrieval.
- The system may comprise a database interface configured to communicate with a database library and a data source server, a communication interface configured to communicate with a client device, and a processor configured to communicate with the database interface and the communication database. The processor may further be configured to obtain, through the database interface, a layout template from the database library, the layout template including a data visualization panel. The processor may further be configured to obtain, through the database interface, a data visualization template from the database library, the data visualization template identifying the data source server and a data visualization structure. The processor may further be configured to receive, through the database interface, updateable data from the data source server. The processor may further be configured to render the updateable data into a data visualization according to the data visualization structure. The processor may further be configured to control display of the data visualization in the data visualization panel within the layout template. The processor may further be configured to generate a data visualization modification interface and accept a client device customization input of data visualization logic implemented by the data visualization. And, the processor may further be configured to modify the data visualization rendering logic responsive to the client device customization.
- The system implements corresponding logic that facilitates receiving, through a communication interface, an access request from a client device, the access request including authentication information corresponding to a user, authenticating the access request based on the authentication information, obtaining, through a database interface, a layout template from a database library, the layout template including a data visualization panel, obtaining, through the database interface, a data visualization template from the database library, the data visualization template identifying a data source server and a data visualization structure, receiving, through the database interface, updateable data from the data source server, rendering the updateable data into a data visualization according to the data visualization form structure, controlling display of the data visualization in the data visualization panel within the layout template, generating a data visualization modification interface and accepting a client device customization input of data visualization logic implemented by the data visualization, and modifying the data visualization rendering logic responsive to the client device customization.
- The system may comprise a database library configured to store a plurality of layout templates and a plurality of data visualization templates, a data source server configured to store updateable data for rendering into a data visualization, and a client device. The client device may comprise a communication interface, a memory configured to store instructions for operating a web application browser, and a processor configured to execute the instructions for operating the web application browser. The system may further comprise an application server. The application server may comprise a database interface configured to communicate with the database library and the data source server, a communication interface configured to communicate with the client device, and a processor configured to communicate with the database interface and the communication database. The processor may further be configured to obtain, through the database interface, a layout template from the database library, the layout template including a data visualization panel, obtain, through the database interface, a data visualization template from the database library, the data visualization template identifying the data source server and a data visualization structure, receive, through the database interface, updateable data from the data source server, render the updateable data into a data visualization according to the data visualization structure, control display of the data visualization in the data visualization panel within the layout template, generate a data visualization modification interface and accept a client device customization input of data visualization logic implemented by the data visualization, and modify the data visualization rendering logic responsive to the client device customization.
-
FIG. 1 illustrates an exemplary development platform system. -
FIG. 2 illustrates a block diagram of an exemplary computer architecture for a device in the exemplary development platform system illustrated inFIG. 1 . -
FIG. 3 illustrates an exemplary client-server block diagram describing components of a development platform running on a client-side communication device and a server-side communication device, according to some embodiments. -
FIG. 4 illustrates a flow diagram of logic that a development platform system may implement. -
FIG. 5 illustrates an additional flow diagram of logic that a development platform system may implement. -
FIG. 6 illustrates an additional flow diagram of logic that a development platform system may implement. -
FIG. 7 illustrates an exemplary graphical interface of the development platform system for searching data visualization templates. -
FIG. 8 illustrates another exemplary graphical interface of the development platform system for searching data visualization templates. -
FIG. 9 illustrates an exemplary development tool of the development platform system for modifying a data visualization. -
FIG. 10 illustrates an exemplary development tool of the development platform system for modifying a data visualization. -
FIG. 11 illustrates an exemplary development tool of the development platform system for modifying a data visualization. -
FIG. 12 illustrates an exemplary development tool of the development platform system for modifying a data visualization. -
FIG. 13 illustrates an exemplary development tool of the development platform system for modifying a data visualization. - The methods, devices, systems, and other features discussed below may be embodied in a number of different forms. Not all of the depicted components may be required, however, and some implementations may include additional, different, or fewer components from those expressly described in this disclosure. Variations in the arrangement and type of the components may be made without departing from the spirit or scope of the claims as set forth herein. Further, variations in the processes described, including the addition, deletion, or rearranging and order of logical operations, may be made without departing from the spirit or scope of the claims as set forth herein.
- Given the increasing level of connectivity between users through the communication networks, there has been an increased interest and benefit to developing web-based applications. A web-based application is generally understood to be an application stored and configured to operate, at least in part, on a web server accessible to other communication devices connected to a common communication network. A user operating their communication device may communicate with the web-server through the common communication network to access and operate the web-based application. The web-based application offers many advantages, such as accessibility to remote users, based on its framework being stored on a web server(s).
- Another advantage of web-based applications is the capability to present data in real-time, or substantially real-time as understood in the related field, to a vast number of remote users connected to a common communication network. The data may be presented on the web-based application in the form of data visualizations. A data visualization may be a visual representation of the data, which can take on a number of different structures. For example, a data visualization may be generated to represent data in a tabular structure (e.g., a bar graph, a table, a pie chart, or other known tabular structure), a geospatial structure (e.g., data is referenced to a geographical location or set of geographic coordinates which can be gathered, manipulated, and displayed in real-time), a hierarchical structure (e.g., a data model in which the data is represented by data nodes within a tree-like structure, where each data node is connected to another data node through a link and each data node records a collection of fields having a value), or a time-series structure (e.g., a time series data structure may be a sequence of data points, typically consisting of successive measurements made over a time interval).
- The development platform system (“system”) described below provides a development platform configured to include tools for creating a web-based application with one or more visualization plug-ins, each of which may be customized. For example, the development platform may be configured to allow the developer to search for and select a design layout template from multiple available design layout templates that are presented as a result of the search query. Each design layout template may be comprised of one or more components. Exemplary components include a data visualization template, a navigation tools component, a details information component, and a panel component.
- The development platform may further be configured to search for and select a data visualization template from available data visualization templates that are presented as a result of the search query. As described, the data visualization template may be a component within a selected design layout template. The data visualization template may include instructions for rendering a data visualization in a specified data visualization structure based on data received from an identified database source. In order to present data in real-time, or substantially real-time, data for the data visualization may be sourced from a real-time database source configured to transmit the data to the web server hosting the web-based application so that the web-based application may render the data visualization of the data as the web-based application receives the data from the real-time database source.
- In some implementations, the development platform may allow the developer to independently modify attributes of a data visualization included on the web-based application. Therefore, the development platform may further be configured to provide the developer with a data visualization modification interface that allows the developer to modify attributes of the data visualization.
- The development platform may further be configured to generate metadata describing attributes of the data visualization, and associate the metadata to the corresponding data visualization template or other corresponding component. The development platform may further be configured to store a new or modified data visualization template, with or without corresponding metadata, on a database library. The developer may later access the database library while developing a subsequent web-based application, and search for a particular data visualization template based on information described by the corresponding metadata. Exemplary metadata attached to a data visualization template may describe an author who created the data visualization template, a name identifying the data visualization template, an industry for which the data visualization template was created, a database source for the data visualization template, a data visualization structure and/or format of a data visualization that will be rendered within the data visualization template based on data obtained from a data source, attributes describing the web-based application(s) in which the data visualization template was used, and/or data relationships (e.g., comparisons or outlier identification) for the data that comprises the data visualization rendered within the data visualization template.
- These and other features of the development platform system are described in this disclosure.
-
FIG. 1 illustrates exemplary system architecture fordevelopment platform system 100 that includes component devices for implementing the described features.Development platform system 100 includes anapplication server 140 configured to include the hardware, software, and/or middleware for operating the describeddevelopment platform 150.Application server 140 is shown to include aprocessor 141, amemory 144, acommunication interface 142, and adatabase interface 143. -
Development platform system 100 further includes adatabase library 120 configured to store application layout templates and/or data visualization templates. Thedatabase library 120 is configured to provide templates to thedevelopment platform 150 either directly, or through anetwork 130, via thedatabase interface 143.Development platform system 100 further includes adata server 160 configured to store, receive, and transmit data. Thedata server 160 is configured to provide data for rendering into data visualizations according to thedevelopment platform 150 either directly, or throughnetwork 130, via thedatabase interface 143.Development platform system 100 further includes asecondary application server 170 configured to communicate with theapplication server 140 either directly, or throughnetwork 130.Secondary application server 170 may be configured to store and/or operate a web-based application developed by thedevelopment platform 150, according to some embodiments. According to other embodiments, a web-based application developed by thedevelopment platform 150 may be stored and/or operated on theapplication server 140. - The
development platform system 100 communicates with any number and type ofcommunication devices 110, wherecommunication device 110 may include well known computing systems, environments, and/or configurations that may be suitable for implementing features of thedevelopment platform 150 such as, but are not limited to, smart phones, tablet computers, personal computers (PCs), server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network PCs, server computers, minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.FIG. 1 shows that thecommunication device 110 includes aprocessor 111, amemory 114 configured to store the instructions for operating a web application browser, an input/output devices 113, and acommunication interface 112. A user operating thecommunication device 110 may run the web application browser to access thedevelopment platform 150 running on theapplication server 140. -
Development platform 150 may be a representation of software, hardware, and/or middleware configured to implement features of thedevelopment platform 150, such as for the development and/or modification of a web-based application. For example, thedevelopment platform 150 may be a web-based application operating, for example, according to a .NET framework within thedevelopment platform system 100. - More specifically, the
development platform 150 may includecontrol circuitry 151, layouttemplate selection circuitry 152, and data visualizationtemplate selection circuitry 153. Each of thecontrol circuitry 151, the layouttemplate selection circuitry 152, and the data visualizationtemplate selection circuitry 153 may be a representation of software, hardware, and/or middleware configured to implement respective features of thedevelopment platform 150. -
Control circuitry 151 may be configured to include configuration controls enabling a user (e.g., authorized user) to configure certain features ofdevelopment platform 150.Control circuitry 151 may further be configured to include security controls for authenticating users to access, use, and/or configure features of thedevelopment platform 150.Control circuitry 151 may further be configured to include log-in controls that control a log-in process enabling thecommunication device 110 to log-in and access thedevelopment platform 150 running onapplication server 140. - To access the
development platform 150, a user may open a web application browser on thecommunication device 110. The web application browser may then request access to thedevelopment platform 150 by transmitting an access request signal to theapplication server 140 through thenetwork 130, via thecommunication interface 112. The access request signal may be received by theapplication server 140 via thecommunication interface 142, and further received by thecontrol circuitry 151 of thedevelopment platform 150.Control circuitry 151 may then control a log-in protocol by receiving and authenticating log-in credentials included in the access request signal (e.g., user name, password, authentication of thecommunication device 110, etc.). According to some embodiments, thecontrol circuitry 151 may also control a security protocol by determining the user's access level based on the log-in credentials included in the access request signal. According to some embodiments, thecontrol circuitry 151 may grant authenticated user's identified as having certain predetermined access levels the capability to configure features and/or attributes of thedevelopment platform 150. After successfully passing the log-in protocol and/or security protocol, a user may be allowed to operate thedevelopment platform 150 from the web application browser running on the user's communication devise 110. - During operation of the
development platform 150, the user may control the layouttemplate selection circuitry 152 to select an application layout template that will serve as the foundational layout for a new web-based application. For example,FIG. 8 illustrates an exemplary developmentplatform user interface 800 of thedevelopment platform 150 that allows the user to input a search query and select an application layout template from a search query result that includes ablank canvas layout 801, an angular 3-panel template 802 (e.g., includes a navigation section along a top of the web-application interface, a panel for providing information on a first side of the web-application interface, and a data visualization on a second side of the web-application interface), and a backbone 3-panel template 803 (e.g., includes a panel for providing information in a first section of the web-application interface, a data visualization in a second section of the web-application interface, and a detailed information section in a third section of the web-application interface). The search query may be entered into a searchquery input field 814. Developmentplatform user interface 800 further includes anavigation pane 810 comprised of avisualization library menu 811, a dashboard templates menu 812 (FIG. 8 illustrates the developmentplatform user interface 800 according to the dashboard templates menu), and adocumentation menu 813. -
Development platform 150 may communicate with thedatabase library 120, either directly or throughnetwork 130, to retrieve the selected application template. According to some embodiments, thecontrol circuitry 151 may identify the user's access level based on information included in the access request signal, and grant the user access to certain authorized templates (e.g., web-application templates or data visualization templates) from thedatabase library 120, while preventing access to other templates stored on thedatabase library 120. - During operation of the
development platform 150, the user may control the data visualizationtemplate selection circuitry 153 to select a data visualization template to include in the web-based application being developed by thedevelopment platform 150. The data visualization template includes information identifying a database source from which data will be obtained to render a data visualization. The database source may transmit data according to a predetermined schedule, or substantially in real-time. The data visualization may further include information identifying the data visualization structure in which the data from the database source will be rendered. For example, a data visualization may be generated to represent data in a tabular structure (e.g., a bar graph, a table, a pie chart, or other known tabular structure), a geospatial structure (e.g., data is referenced to a geographical location or set of geographic coordinates which can be gathered, manipulated, and displayed in real-time), a hierarchical structure (e.g., a data model in which the data is represented by data nodes within a tree-like structure, where each data node is connected to another data node through a link and each data node records a collection of fields having a value), or a time-series structure (e.g., a time series data structure may be a sequence of data points, typically consisting of successive measurements made over a time interval). -
FIG. 7 illustrates an exemplary developmentplatform user interface 700 of thedevelopment platform 150 that allows the user to input a search query and select a data visualization template from a search query result that includes agauge chart 701, ageospatial map 702, and ascatterplot chart 703. The search query may be entered into a searchquery input field 714. Developmentplatform user interface 700 further includes anavigation pane 710 comprised of a visualization library menu 711 (FIG. 7 illustrates the developmentplatform user interface 800 according to the visualization library menu), adashboard templates menu 712, and adocumentation menu 713. -
Development platform 150 may communicate withdatabase library 120, either directly or throughnetwork 130, to retrieve the selected data visualization template. According to some embodiments,control circuitry 151 may identify the user's access level based on information included in the access request signal, and grants the user access to certain authorized templates (e.g., web-application templates or data visualization templates) fromdatabase library 120, while preventing access to other templates stored on thedatabase library 120. - Data visualization
template selection circuitry 153 may control communication withdata server 160 to request data for rendering a data visualization, according to the selected data visualization template.Data server 160 may then transmit data toapplication server 140, which is received viadatabase interface 143. The data may then be received and processed by data visualizationtemplate selection circuitry 153. Data visualizationtemplate selection circuitry 153 may then render the selected data visualization based on the received data. According to some embodiments,data server 160 may transmit data to the data visualizationtemplate selection circuitry 153 in real-time, thus enabling the data visualizationtemplate selection circuitry 153 to render the selected data visualization to reflect the real-time updates to the data. - According to some embodiments, the user may control data visualization
template selection circuitry 153 to select a database (e.g., database library 120) for storing new or modified data visualization templates created by the user. Each data visualization template stored into thedatabase library 120 may also include metadata for describing attributes of the data visualization template. Exemplary metadata attached to the data visualization template may describe an author who created the data visualization template, a name identifying the data visualization template, an industry for which the data visualization template was created, a database source for the data visualization template, a data visualization structure of the data visualization template, or attributes describing the web-based application(s) in which the data visualization template was used. - Each of
communication device 110,database library 120,application server 140,data server 160, andsecondary application server 170 may include one or more components ofcomputer system 200 illustrated inFIG. 2 . -
FIG. 2 illustrates exemplary computer architecture forcomputer system 200.Computer system 200 includes anetwork interface 220 that allows communication with other computers via anetwork 226, wherenetwork 226 may be represented bynetwork 130 inFIG. 1 .Network 226 may be any suitable network and may support any appropriate protocol suitable for communication tocomputer system 200. In an embodiment,network 226 may support wireless communications. In another embodiment,network 226 may support hard-wired communications, such as a telephone line or cable. In another embodiment,network 226 may support the Ethernet IEEE (Institute of Electrical and Electronics Engineers) 802.3x specification. In another embodiment,network 226 may be the Internet and may support IP (Internet Protocol). In another embodiment,network 226 may be a LAN or a WAN. In another embodiment,network 226 may be a hotspot service provider network. In another embodiment,network 226 may be an intranet. In another embodiment,network 226 may be a GPRS (General Packet Radio Service) network. In another embodiment,network 226 may be any appropriate cellular data network or cell-based radio network technology. In another embodiment,network 226 may be an IEEE 802.11 wireless network. In still another embodiment,network 226 may be any suitable network or combination of networks. Although onenetwork 226 is shown inFIG. 2 ,network 226 may be representative of any number of networks (of the same or different types) that may be utilized. - The
computer system 200 may also include aprocessor 202, amain memory 204, astatic memory 206, an output device 210 (e.g., a display or speaker), aninput device 212, and astorage device 216, communicating via abus 208. -
Processor 202 represents a central processing unit of any type of architecture, such as a CISC (Complex Instruction Set Computing), RISC (Reduced Instruction Set Computing), VLIW (Very Long Instruction Word), or a hybrid architecture, although any appropriate processor may be used.Processor 202 executesinstructions 224 stored on one or more of themain memory 204,static memory 206, or storage device 215.Processor 202 may also include portions of thecomputer system 200 that control the operation of theentire computer system 200.Processor 202 may also represent a controller that organizes data and program storage in memory and transfers data and other information between the various parts of thecomputer system 200. -
Processor 202 is configured to receive input data and/or user commands throughinput device 212.Input device 212 may be a keyboard, mouse or other pointing device, trackball, scroll, button, touchpad, touch screen, keypad, microphone, speech recognition device, video recognition device, accelerometer, gyroscope, global positioning system (GPS) transceiver, or any other appropriate mechanism for the user to input data tocomputer system 200 and control operation ofcomputer system 200 and/or operation of thedevelopment platform 150.Input device 212 as illustrated inFIG. 2 may be representative of any number and type of input devices. -
Processor 202 may also communicate with other computer systems vianetwork 226 to receiveinstructions 224, whereprocessor 202 may control the storage ofsuch instructions 224 into any one or more of the main memory 204 (e.g., random access memory (RAM)), static memory 206 (e.g., read only memory (ROM)), or thestorage device 216.Processor 202 may then read and executeinstructions 224 from any one or more of themain memory 204,static memory 206, orstorage device 216. Theinstructions 224 may also be stored onto any one or more of themain memory 204,static memory 206, orstorage device 216 through other sources. Theinstructions 224 may correspond to, for example, instructions that make up thedevelopment platform 150. - Although
computer system 200 is represented inFIG. 2 as asingle processor 202 and asingle bus 208, the disclosed embodiments applies equally to computer systems that may have multiple processors and to computer systems that may have multiple busses with some or all performing different functions in different ways. -
Storage device 216 represents one or more mechanisms for storing data. For example,storage device 216 may include a computerreadable medium 222 such as read-only memory (ROM), RAM, non-volatile storage media, optical storage media, flash memory devices, and/or other machine-readable media. In other embodiments, any appropriate type of storage device may be used. Although only onestorage device 216 is shown, multiple storage devices and multiple types of storage devices may be present. Further, althoughcomputer system 200 is drawn to contain thestorage device 216, it may be distributed across other computer systems that are in communication withcomputer system 200, such as a server in communication withcomputer system 200. For example, whencomputer system 200 is representative ofcommunication device 110,storage device 216 may be distributed across toapplication server 140 whencommunication device 110 is in communication withapplication server 140 during operation of thedevelopment platform 150. -
Storage device 216 may include a controller (not shown) and a computerreadable medium 222 havinginstructions 224 capable of being executed byprocessor 202 to carry out functions of thedevelopment platform 150. In another embodiment, some or all of the functions are carried out via hardware in lieu of a processor-based system. In one embodiment, the controller included instorage device 216 is a web application browser, but in other embodiments the controller may be a database system, a file system, an electronic mail system, a media manager, an image manager, or may include any other functions capable of accessing data items.Storage device 216 may also contain additional software and data (not shown), for implementing described features. -
Output device 210 is configured to present information to the user. For example,output device 210 may be a display such as a liquid crystal display (LCD), a gas or plasma-based flat-panel display, or a traditional cathode-ray tube (CRT) display or other well-known type of display in the art of computer hardware. Accordingly in some embodiments,output device 210 displays a user interface. In other embodiments,output device 210 may be a speaker configured to output audible information to the user. In still other embodiments, any combination of output devices may be represented by theoutput device 210. -
Network interface 220 provides thecomputer system 200 with connectivity to thenetwork 226 through any compatible communications protocol.Network interface 220 sends and/or receives data from thenetwork 226 via a wireless orwired transceiver 214.Transceiver 214 may be a cellular frequency, radio frequency (RF), infrared (IR) or any of a number of known wireless or wired transmission systems capable of communicating withnetwork 226 or other computer device having some or all of the features ofcomputer system 200.Bus 208 may represent one or more busses, e.g., USB, PCI, ISA (Industry Standard Architecture), X-Bus, EISA (Extended Industry Standard Architecture), or any other appropriate bus and/or bridge (also called a bus controller).Network interface 220 as illustrated inFIG. 2 may be representative of a single network interface card configured to communicate with one or more different data sources. For example, according to some embodiments the communications interface 142 (i.e., a communications network interface) and database interface 143 (i.e., a database network interface) may be separate network interface card hardware components dedicated to communicating with different data sources. In other embodiments,communications interface 142 anddatabase interface 143 may be representative of a single network interface card hardware component configured to communicate with different data sources. -
Computer system 200 may be implemented using any suitable hardware and/or software, such as a personal computer or other electronic computing device. In addition,computer system 200 may also be a portable computer, laptop, tablet or notebook computer, PDA, pocket computer, appliance, telephone, server computer device, or mainframe computer. -
FIG. 3 illustrates an exemplary client-server block diagram describing components of thedevelopment platform 150 operating on a server side device (e.g., operating on application server 140), and components of thedevelopment platform 150 operating on a client side device (e.g., operating on communication device 110). - On the server side operations, application components of the
development platform 150 may be running on, for example, at least portions of theapplication server 140, thedatabase library 120, and/or thedata server 160. The application components may include a database management system (DBMS) 301, an application program interface (API)data controller 302, and a serverside routing component 303.DBMS 301 may be implemented by memory components of theapplication server 140, thedatabase library 120, and/or thedata server 160 during operation ofdevelopment platform 150.API data controller 302 may be implemented by processor and/or controller components ofapplication server 140. Serverside routing component 303 may be implemented by network interface components and/or router components ofapplication server 140. - On the client side operations, client side application logic components and visualization user interface components may be running on, for example, at least portions of
communication device 110 and/orapplication server 140. The client side application logic components may include aclient side router 304, acontroller 305, data filters 306, and anevent handling component 307. The visualization user interface component may include an exemplarydashboard layout styling 308.Dashboard layout styling 308 for thedevelopment platform 150 is illustrated by the exemplary developmentplatform user interface 700 illustrated inFIG. 7 and the exemplary developmentplatform user interface 800 illustrated inFIG. 8 . Developmentplatform user interface 700 and developmentplatform user interface 800 commonly include anavigation section 710 andnavigation section 810, respectively, comprised of various development tools for developing a web-based application. For example,navigation section 710 andnavigation section 810 includes avisualization library menu 711 and avisualization library menu 811, adashboard templates menu 712 and adashboard templates menu 812, and adocumentation menu 712 and adocumentation menu 812, respectively. - Selection of the
visualization library menu 711 or thevisualization library menu 811 may present the user with selection tools for selecting a data visualization template according to any one or more of the described processes. For example, a data visualization template stored either on theapplication server 140,communication device 110, ordatabase library 120 may be accessed and selected for developing a web-application according to thedevelopment platform 150. Selection of the visualization tool may further allow the user to select a data source for receiving data that will be reference when rendering a data visualization according to the selected data visualization template. Selection of the visualization tool may further allow the user to select a database (e.g., database library 120) for storing a new or modified data visualization template, and creating the metadata for attaching to the data visualization template. - Selection of the
dashboard templates menu 712 or thedashboard templates menu 812 may present the user with selection tools for selecting a web-application template according to any one or more of the described processes. For example, a web-application template stored either on theapplication server 140, thecommunication device 110, or thedatabase library 120 may be accessed and selected for developing a web-application. - Selection of the documentation tool 513 may allow the user to clarify usage of the tools, templates, and visualization components to the user. Documentation tools that may be provided in response to selection of the documentation tool 523 include manuals on how to install, debug, and use the framework, as well as instructions on how to contribute additional visualizations to the repository that are aligned to specified data specifications (i.e. in a structure that is amenable to a framework of the system).
-
FIG. 4 illustrates a flow diagram 400 of logic that thedevelopment platform system 100 may implement to provide and operate thedevelopment platform 150. The features described with relation to the flow diagram 400 may correspond to the development of a new web-based application by thedevelopment platform 150. References are made to components illustrated inFIG. 1 during the description of the flow diagram 400 for exemplary purposes. - A user
operating communication device 110 may request access todevelopment platform 150 by transmitting an access request signal fromcommunication device 110 to application server 140 (401). Upon receipt of the access request signal,control circuitry 151 may implement a log-in protocol and/or security protocol based on the received access request according to any one or more of the described processes. -
Development platform 150 may obtain a web-application layout template based on user control inputs (402). For example,FIG. 5 illustrates a flow diagram of logic describing a number of processes that may comprise obtaining the web-application layout template (402). According to some embodiments, the layouttemplate selection circuitry 152 may present the user with the developmentplatform user interface 800 illustrated inFIG. 8 . - The layout
template selection circuitry 152 may receive the user's layout template search query input within, for example, searchquery input field 814 of development platform user interface 800 (501). The user's layout template search query may identify layout template attributes. - The layout
template selection circuitry 152 may control parsing ofdatabase library 120 to identify one or more web-application layout templates that match, or otherwise corresponds, to the user's layout template search query (502). - The layout
template selection circuitry 152 may identify one or more web-application layout templates that match, or otherwise corresponds, to the user's layout template search query (503). - The layout
template selection circuitry 152 may present a search query result that includes one or more of the identified web-application layout templates (504). For example, developmentplatform user interface 800 illustrates a search query result that includesblank canvas layout 801, angular 3-panel template 802, and backbone 3-panel template 803. - The layout
template selection circuitry 152 may receive the user's selection input from the available web-application layout templates presented in the search query result (505). - The layout
template selection circuitry 152 may obtain the selected web-application layout template from thedatabase library 120 based on the user's selection input (506). The selected web-application layout template may include a data visualization panel. - Referring back to the flow diagram 400 of logic, the user may obtain a data visualization template that includes instructions for rendering a data visualization within a data visualization panel of the web-application layout template obtained (403). The user may obtain the data visualization template according to any one or more process for selecting a data visualization template described in this disclosure (403). For example,
FIG. 6 illustrates a flow diagram describing a number of processes that may comprise obtaining the data visualization template (403). According to some embodiments, the data visualizationtemplate selection circuitry 153 may present the user with the developmentplatform user interface 700 illustrated inFIG. 7 . - The data visualization
template selection circuitry 153 may receive the user's data visualization template search query input within, for example, searchquery input field 714 of development platform user interface 700 (601). The user's data visualization template search query may identify data visualization template attributes. - The data visualization
template selection circuitry 153 may control parsing ofdatabase library 120 to identify one or more data visualization templates that match, or otherwise corresponds, to the user's layout template search query (602). - The data visualization
template selection circuitry 153 may identify one or more data visualization templates that match, or otherwise corresponds, to the user's layout template search query (603). - The data visualization
template selection circuitry 153 may present a search query result that includes one or more of the identified data visualization templates (604). For example, the developmentplatform user interface 700 illustrates a search query result that includes agauge chart 701, ageospatial map 702, and ascatterplot chart 703. - The data visualization
template selection circuitry 153 may receive the user's selection input from the available data visualization templates presented in the search query result (605). - The data visualization
template selection circuitry 153 may obtain the selected data visualization template from thedatabase library 120 based on the user's selection input (606). - Referring back to the flow diagram 400 of logic, the
development platform 150 may receive updateable data from a data source (e.g., data server 160) for supplying data that will be represented by the data visualization generated according to the obtained data visualization template (404). The obtained data visualization template may identify the data source based on identification information included in the data visualization template. - The
development platform 150 may render the received updateable data into a data visualization formatted to the data visualization structure identified in the obtained data visualization template (405). In particular, the data visualization may be formatted into one of a plurality of available standardized data structures. For example, the data visualization may be formatted into one of the following standardized data structures: a real-time time series data structure, non-real-time time series data structure, or geospatial data structure. By rendering the updateable data into a standardized structure, the data visualization that is rendered may be reuseable in other data visualization templates and other web-application layout templates referenced bydevelopment platform 150. - The
development platform 150 may control presentation of the data visualization (406). For example,development platform 150 may control display of the data visualization within the data visualization panel of the web-based application being developed by thedevelopment platform 150. - The
development platform 150 may control the generation of a data visualization modification interface (407). The data visualization modification interface includes features enabling the user to modify attributes of the data visualization by directly modifying the program code related to the generation of the data visualization. For example,FIG. 9 illustrates an exemplary datavisualization modification interface 900 that may be generated. Datavisualization modification interface 900 may include adisplay section 910 configured to display adata visualization 911, anavigation panel 920 for displaying menu options, asub-navigation panel 930 for displaying sub-menu options corresponding to a menu option selected from thenavigation panel 920, and acoding section 940 for enabling the user to modify code for modifying attributes ofdata visualization 911.Data visualization 911 is rendered in a bar chart data structure. The datavisualization modification interface 900 may allow modification of code withincoding section 940 to modify a color of thedata visualization 911, modify dimension of thedata visualization 911, modify a data source for rendering thedata visualization 911, modify a width of thedata visualization 911, modify a height of thedata visualization 911, change the data structure of thedata visualization 911, or some combination thereof. -
FIG. 10 illustrates another exemplary datavisualization modification interface 1000 that may be generated. Datavisualization modification interface 1000 may include adisplay section 1010 configured to display adata visualization 1011, anavigation panel 1020 for displaying menu options, asub-navigation panel 1030 for displaying sub-menu options corresponding to a menu option selected from thenavigation panel 1020, and acoding section 1040 for enabling the user to modify code for modifying attributes ofdata visualization 1011.Data visualization 1011 is rendered in a network graph data structure. The datavisualization modification interface 1000 may allow modification of code withincoding section 1040 to modify a color of thedata visualization 1011, modify dimensions of thedata visualization 1011, modify a data source for rendering thedata visualization 1011, change the data structure of thedata visualization 1011, or some combination thereof. -
FIG. 11 illustrates another exemplary datavisualization modification interface 1100 that may be generated. Datavisualization modification interface 1100 may include adisplay section 1110 configured to display a data visualization 1111, anavigation panel 1120 for displaying menu options, asub-navigation panel 1130 for displaying sub-menu options corresponding to a menu option selected from thenavigation panel 1120, and acoding section 1140 for enabling the user to modify code for modifying attributes of data visualization 1111. Data visualization 1111 is rendered in a hierarchical graph data structure. The datavisualization modification interface 1100 may allow modification of code withincoding section 1140 to modify a width of the data visualization 1111, modify a height of the data visualization 1111, modify a color of the data visualization 1111, modify dimensions of the data visualization 1111, modify a data source for rendering the data visualization 1111, change the data structure of the data visualization 1111, or some combination thereof. -
FIG. 12 illustrates another exemplary datavisualization modification interface 1200 that may be generated. Datavisualization modification interface 1200 may include adisplay section 1210 configured to display adata visualization 1211, anavigation panel 1220 for displaying menu options, asub-navigation panel 1230 for displaying sub-menu options corresponding to a menu option selected from thenavigation panel 1220, and acoding section 1240 for enabling the user to modify code for modifying attributes ofdata visualization 1211.Data visualization 1211 is rendered in a geospatial graph data structure. The datavisualization modification interface 1200 may allow modification of code withincoding section 1240 to modify a map center of thedata visualization 1211, modify a width of thedata visualization 1211, modify a height of thedata visualization 1211, modify dimensions of thedata visualization 1211, modify a data source for rendering thedata visualization 1211, modify a map source for rendering thedata visualization 1211, change the data structure of thedata visualization 1211, or some combination thereof. -
FIG. 13 illustrates another exemplary datavisualization modification interface 1300 that may be generated. Datavisualization modification interface 1300 may include adisplay section 1310 configured to display adata visualization 1311, anavigation panel 1320 for displaying menu options, asub-navigation panel 1330 for displaying sub-menu options corresponding to a menu option selected from thenavigation panel 1320, and acoding section 1340 for enabling the user to modify code for modifying attributes ofdata visualization 1311.Data visualization 1311 is rendered in a time series graph data structure. The datavisualization modification interface 1300 may allow modification of code withincoding section 1340 to modify dimensions of thedata visualization 1311, modify a color modify of thedata visualization 1311, modify a data source for rendering thedata visualization 1311, change the data structure of thedata visualization 1311, modifying a geometric function (e.g., sin, cos, tan) for rendering thedata visualization 1311, or some combination thereof. - According to some embodiments, the user may have access to modify attributes of the data visualization based on the user's determined access level as authenticated by
control circuitry 151. For example, the user may be authorized to modify certain attributes of the data visualization, while being prevented from accessing modification to other attributes of the data visualization, based on the user's access level. Exemplary data visualization attributes that may be modified directly by modification of the controlling software code include, but are not limited to, data visualization structure, dimensions (e.g., height, width, depth), color, data source, name, data update interval, industry relating to the data visualization, and/or other visual or controlling attributes. - Referring back to the flow diagram 400 of logic, software code modifications made within the data visualization modification interface may be accepted (408). The acceptance of modifications to certain attributes of the data visualization may be made according to the user's determined access level, as described. Also, the development platform may create new and/or updated metadata that describe attributes of the modified data visualization (408).
- The
development platform 150 may control storage of the new and/or modified data visualization template that includes the modified data visualization (409). The new and/or modified data visualization template may be stored indatabase library 120. The corresponding metadata may also be stored indatabase library 120, where the modified data visualization template may be subsequently retrieved from thedatabase library 120 based on a search query matching, or otherwise relating to, the metadata describing attributes of the modified data visualization template. - The methods, devices, processing, circuitry, and logic described above may be implemented in many different ways and in many different combinations of hardware and software. For example, all or parts of the implementations may be circuitry that includes an instruction processor, such as a Central Processing Unit (CPU), microcontroller, or a microprocessor; or as an Application Specific Integrated Circuit (ASIC), Programmable Logic Device (PLD), or Field Programmable Gate Array (FPGA); or as circuitry that includes discrete logic or other circuit components, including analog circuit components, digital circuit components or both; or any combination thereof. The circuitry may include discrete interconnected hardware components or may be combined on a single integrated circuit die, distributed among multiple integrated circuit dies, or implemented in a Multiple Chip Module (MCM) of multiple integrated circuit dies in a common package, as examples.
- Accordingly, the circuitry may store or access instructions for execution, or may implement its functionality in hardware alone. The instructions may be stored in a tangible storage medium that is other than a transitory signal, such as a flash memory, a Random Access Memory (RAM), a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM); or on a magnetic or optical disc, such as a Compact Disc Read Only Memory (CDROM), Hard Disk Drive (HDD), or other magnetic or optical disk; or in or on another machine-readable medium. A product, such as a computer program product, may include a storage medium and instructions stored in or on the medium, and the instructions when executed by the circuitry in a device may cause the device to implement any of the processing described above or illustrated in the drawings.
- The implementations may be distributed. For instance, the circuitry may include multiple distinct system components, such as multiple processors and memories, and may span multiple distributed processing systems. Parameters, databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be logically and physically organized in many different ways, and may be implemented in many different ways. Example implementations include linked lists, program variables, hash tables, arrays, records (e.g., database records), objects, and implicit storage mechanisms. Instructions may form parts (e.g., subroutines or other code sections) of a single program, may form multiple separate programs, may be distributed across multiple memories and processors, and may be implemented in many different ways. Example implementations include stand-alone programs, and as part of a library, such as a shared library like a Dynamic Link Library (DLL). The library, for example, may contain shared data and one or more shared programs that include instructions that perform any of the processing described above or illustrated in the drawings, when executed by the circuitry.
Claims (19)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/016,504 US9727623B1 (en) | 2016-02-05 | 2016-02-05 | Integrated developer workflow for data visualization development |
AU2017200055A AU2017200055B2 (en) | 2016-02-05 | 2017-01-05 | Integrated developer workflow for data visualization development |
CA2953745A CA2953745C (en) | 2016-02-05 | 2017-01-05 | Integrated developer workflow for data visualization development |
US15/634,421 US10289630B2 (en) | 2016-02-05 | 2017-06-27 | Integrated developer workflow for data visualization development |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/016,504 US9727623B1 (en) | 2016-02-05 | 2016-02-05 | Integrated developer workflow for data visualization development |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/634,421 Continuation US10289630B2 (en) | 2016-02-05 | 2017-06-27 | Integrated developer workflow for data visualization development |
Publications (2)
Publication Number | Publication Date |
---|---|
US9727623B1 US9727623B1 (en) | 2017-08-08 |
US20170228447A1 true US20170228447A1 (en) | 2017-08-10 |
Family
ID=59410730
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/016,504 Active 2036-03-18 US9727623B1 (en) | 2016-02-05 | 2016-02-05 | Integrated developer workflow for data visualization development |
US15/634,421 Active US10289630B2 (en) | 2016-02-05 | 2017-06-27 | Integrated developer workflow for data visualization development |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/634,421 Active US10289630B2 (en) | 2016-02-05 | 2017-06-27 | Integrated developer workflow for data visualization development |
Country Status (3)
Country | Link |
---|---|
US (2) | US9727623B1 (en) |
AU (1) | AU2017200055B2 (en) |
CA (1) | CA2953745C (en) |
Cited By (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170109380A1 (en) * | 2015-10-16 | 2017-04-20 | Microsoft Technology Licensing, Llc | Telemetry request system |
US20170244721A1 (en) * | 2016-02-22 | 2017-08-24 | Bank Of America Corporation | System for providing levels of security access to a process data network |
US20180081678A1 (en) * | 2016-09-20 | 2018-03-22 | Microsoft Technology Licensing, Llc | Sharing applications by modifying attributes |
US10026118B2 (en) | 2016-02-22 | 2018-07-17 | Bank Of America Corporation | System for allowing external validation of data in a process data network |
US10116667B2 (en) | 2016-01-26 | 2018-10-30 | Bank Of America Corporation | System for conversion of an instrument from a non-secured instrument to a secured instrument in a process data network |
US10129238B2 (en) | 2016-02-10 | 2018-11-13 | Bank Of America Corporation | System for control of secure access and communication with different process data networks with separate security features |
US10135870B2 (en) | 2016-02-22 | 2018-11-20 | Bank Of America Corporation | System for external validation of secure process transactions |
US10142347B2 (en) | 2016-02-10 | 2018-11-27 | Bank Of America Corporation | System for centralized control of secure access to process data network |
US10142312B2 (en) | 2016-02-22 | 2018-11-27 | Bank Of America Corporation | System for establishing secure access for users in a process data network |
US10140470B2 (en) | 2016-02-22 | 2018-11-27 | Bank Of America Corporation | System for external validation of distributed resource status |
WO2019055556A1 (en) * | 2017-09-12 | 2019-03-21 | Schlumberger Technology Corporation | Visualization infrastructure for web applications |
US10318938B2 (en) | 2016-02-22 | 2019-06-11 | Bank Of America Corporation | System for routing of process authorization and settlement to a user in process data network based on specified parameters |
US10387878B2 (en) | 2016-02-22 | 2019-08-20 | Bank Of America Corporation | System for tracking transfer of resources in a process data network |
US10402796B2 (en) | 2016-08-29 | 2019-09-03 | Bank Of America Corporation | Application life-cycle transition record recreation system |
US10438209B2 (en) | 2016-02-10 | 2019-10-08 | Bank Of America Corporation | System for secure routing of data to various networks from a process data network |
US10440101B2 (en) | 2016-02-22 | 2019-10-08 | Bank Of America Corporation | System for external validation of private-to-public transition protocols |
US10475030B2 (en) | 2016-02-22 | 2019-11-12 | Bank Of America Corporation | System for implementing a distributed ledger across multiple network nodes |
US10496989B2 (en) | 2016-02-22 | 2019-12-03 | Bank Of America Corporation | System to enable contactless access to a transaction terminal using a process data network |
CN110609681A (en) * | 2018-06-14 | 2019-12-24 | 北京京东尚科信息技术有限公司 | System, method, device and medium for visually configuring and generating WEB application |
WO2020006526A1 (en) * | 2018-06-29 | 2020-01-02 | Lucid Software, Inc. | Custom interactions with visualizations |
US10607285B2 (en) | 2016-02-22 | 2020-03-31 | Bank Of America Corporation | System for managing serializability of resource transfers in a process data network |
US10620921B2 (en) * | 2017-06-05 | 2020-04-14 | Umajin Inc. | Application system for generating 3D applications |
US10636033B2 (en) | 2016-02-22 | 2020-04-28 | Bank Of America Corporation | System for routing of process authorizations and settlement to a user in a process data network |
CN111158670A (en) * | 2019-12-27 | 2020-05-15 | 河北航天信息技术有限公司 | Visual auxiliary software development method and system |
US10679215B2 (en) | 2016-02-22 | 2020-06-09 | Bank Of America Corporation | System for control of device identity and usage in a process data network |
WO2020154201A1 (en) * | 2019-01-22 | 2020-07-30 | Servicenow, Inc. | Systems and method for shared visualization library |
US10762504B2 (en) | 2016-02-22 | 2020-09-01 | Bank Of America Corporation | System for external secure access to process data network |
CN111930375A (en) * | 2019-05-13 | 2020-11-13 | 中国移动通信集团福建有限公司 | Data visualization application development method and device |
US10860602B2 (en) | 2018-06-29 | 2020-12-08 | Lucid Software, Inc. | Autolayout of visualizations based on contract maps |
US10860603B2 (en) | 2018-06-29 | 2020-12-08 | Lucid Software, Inc. | Visualization customization |
US10929272B2 (en) | 2015-10-16 | 2021-02-23 | Microsoft Technology Licensing, Llc | Telemetry system extension |
US10929545B2 (en) | 2018-07-31 | 2021-02-23 | Bank Of America Corporation | System for providing access to data stored in a distributed trust computing network |
US11100173B2 (en) | 2019-06-18 | 2021-08-24 | Lucid Software, Inc. | Autolayout of visualizations based on graph data |
US11144516B2 (en) | 2019-02-22 | 2021-10-12 | Lucid Software, Inc. | Reversible data transforms |
US11169671B2 (en) | 2019-11-26 | 2021-11-09 | Lucid Software, Inc. | Alteration of a source data visualization based on user input |
CN113626667A (en) * | 2021-08-09 | 2021-11-09 | 杭州安恒信息技术股份有限公司 | Data visualization method, system and device and computer readable storage medium |
US11188390B2 (en) | 2017-06-05 | 2021-11-30 | Umajin Inc. | Method for configuring a server kit by a server management system |
US11250208B2 (en) * | 2019-04-08 | 2022-02-15 | Microsoft Technology Licensing, Llc | Dynamic whiteboard templates |
US11249627B2 (en) | 2019-04-08 | 2022-02-15 | Microsoft Technology Licensing, Llc | Dynamic whiteboard regions |
US11263105B2 (en) | 2019-11-26 | 2022-03-01 | Lucid Software, Inc. | Visualization tool for components within a cloud infrastructure |
US11288245B2 (en) | 2015-10-16 | 2022-03-29 | Microsoft Technology Licensing, Llc | Telemetry definition system |
US11374935B2 (en) | 2016-02-11 | 2022-06-28 | Bank Of America Corporation | Block chain alias person-to-person resource allocation |
US11409257B2 (en) * | 2019-10-03 | 2022-08-09 | Keyence Corporation | Setting device that sets a programmable logic controller and PLC system that collects control data and a dashboard for displaying control data |
US11592979B2 (en) | 2020-01-08 | 2023-02-28 | Microsoft Technology Licensing, Llc | Dynamic data relationships in whiteboard regions |
US11631077B2 (en) | 2017-01-17 | 2023-04-18 | HashLynx Inc. | System for facilitating secure electronic communications between entities and processing resource transfers |
US11726822B2 (en) | 2017-06-05 | 2023-08-15 | Umajin Inc. | Systems and methods for providing digital twin-enabled applications |
US20230334237A1 (en) * | 2022-04-14 | 2023-10-19 | Sigma Computing, Inc. | Workbook template sharing |
US11922564B2 (en) | 2017-06-05 | 2024-03-05 | Umajin Inc. | Generative content system that supports location-based services and methods therefor |
US11954486B2 (en) | 2017-06-05 | 2024-04-09 | Umajin Inc. | Location tracking system and methods |
US12001917B2 (en) | 2017-06-05 | 2024-06-04 | Umajin Inc. | Hub-and-spoke classification system and methods |
US12020354B2 (en) | 2017-06-05 | 2024-06-25 | Umajin Inc. | Hub and spoke classification system |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170242559A1 (en) * | 2016-02-18 | 2017-08-24 | Salesforce.Com, Inc. | Automation of application creation utilizing flexible frameworks |
US10248300B2 (en) | 2016-05-16 | 2019-04-02 | Sap Se | Polymorph rendering for collaborative platforms |
US10726036B2 (en) * | 2016-05-16 | 2020-07-28 | Sap Se | Source service mapping for collaborative platforms |
US11295273B2 (en) | 2016-05-16 | 2022-04-05 | Sap Se | Normalized object exposure for collaborative platforms |
US10853380B1 (en) | 2016-07-31 | 2020-12-01 | Splunk Inc. | Framework for displaying interactive visualizations of event data |
US10459938B1 (en) | 2016-07-31 | 2019-10-29 | Splunk Inc. | Punchcard chart visualization for machine data search and analysis system |
US10459939B1 (en) | 2016-07-31 | 2019-10-29 | Splunk Inc. | Parallel coordinates chart visualization for machine data search and analysis system |
US10861202B1 (en) | 2016-07-31 | 2020-12-08 | Splunk Inc. | Sankey graph visualization for machine data search and analysis system |
US11037342B1 (en) * | 2016-07-31 | 2021-06-15 | Splunk Inc. | Visualization modules for use within a framework for displaying interactive visualizations of event data |
US10078818B2 (en) * | 2016-12-20 | 2018-09-18 | Sap Se | Work routine management for collaborative platforms |
US10853057B1 (en) | 2017-03-29 | 2020-12-01 | Amazon Technologies, Inc. | Software library versioning with caching |
US10585912B2 (en) * | 2017-10-10 | 2020-03-10 | Servicenow, Inc. | Visualizing time metric database |
US10565090B1 (en) * | 2018-01-03 | 2020-02-18 | Amazon Technologies, Inc. | Proxy for debugging transformed code |
US10798464B1 (en) | 2018-04-27 | 2020-10-06 | Amazon Technologies, Inc. | Streaming delivery of client-executable code |
AU2019418585A1 (en) * | 2018-12-31 | 2021-08-12 | Equifax Inc. | Production-ready attributes creation and management for software development |
CN109992258A (en) * | 2019-04-02 | 2019-07-09 | 北京市天元网络技术股份有限公司 | A kind of flexible implementation model configuration method and device |
CN110244943B (en) * | 2019-05-08 | 2022-11-15 | 武汉宏途科技有限公司 | Graphical service design method, system and software memory based on web and mobile terminal |
CN110442335A (en) * | 2019-07-17 | 2019-11-12 | 浙江国际油气交易中心有限公司 | A kind of realization device of petrochemical industry trading member management system |
CN110427446B (en) * | 2019-08-02 | 2023-05-16 | 武汉中地数码科技有限公司 | Method and system for rapidly publishing and browsing mass image services |
CN110780897B (en) * | 2019-08-26 | 2022-05-10 | 华为云计算技术有限公司 | Code changing method and device |
US10715516B1 (en) * | 2019-08-30 | 2020-07-14 | Fmr Llc | Time-series database user authentication and access control |
CN111259069B (en) * | 2019-10-29 | 2023-05-19 | 浙江中控信息产业股份有限公司 | Configuration-based data visualization implementation method |
CN113051447A (en) * | 2019-12-27 | 2021-06-29 | 新奥数能科技有限公司 | Energy data visual display method and device |
CN111240677B (en) * | 2020-01-13 | 2023-09-05 | 浙江吉利汽车研究院有限公司 | Method and device for generating visual interface of robot and computer storage medium |
US11570182B1 (en) * | 2020-03-30 | 2023-01-31 | Amazon Technologies, Inc. | Compute-less authorization |
CN111638870B (en) * | 2020-05-14 | 2023-07-04 | 民生科技有限责任公司 | Front-end development basic platform based on reaction and reduce |
CN112000323B (en) * | 2020-08-13 | 2024-02-20 | 奇点浩翰数据技术(北京)有限公司 | Data processing method and device |
CN117075882A (en) * | 2020-09-11 | 2023-11-17 | 支付宝(杭州)信息技术有限公司 | Data display method, device, equipment and medium |
CN113010758A (en) * | 2021-03-04 | 2021-06-22 | 北京顶象技术有限公司 | Association network knowledge graph visualization assembly and method |
CN113486224A (en) * | 2021-06-30 | 2021-10-08 | 中国民航信息网络股份有限公司 | Method and device for creating monitoring instrument panel, storage medium and electronic equipment |
US11928174B2 (en) * | 2021-08-11 | 2024-03-12 | Bank Of America Corporation | Centralized dynamic portal for creating and hosting static and dynamic applications |
CN114237593A (en) * | 2021-11-15 | 2022-03-25 | 广东万丈金数信息技术股份有限公司 | Front-end page generation method, computer device and storage medium |
WO2024182559A1 (en) * | 2023-02-28 | 2024-09-06 | Salesforce, Inc. | Reusing custom concepts in visual analytics workflows |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6684369B1 (en) * | 1997-06-19 | 2004-01-27 | International Business Machines, Corporation | Web site creator using templates |
US6405364B1 (en) * | 1999-08-31 | 2002-06-11 | Accenture Llp | Building techniques in a development architecture framework |
US20060173873A1 (en) * | 2000-03-03 | 2006-08-03 | Michel Prompt | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
AU2001243597A1 (en) * | 2000-03-03 | 2001-09-17 | Radiant Logic, Inc. | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US7110936B2 (en) * | 2001-02-23 | 2006-09-19 | Complementsoft Llc | System and method for generating and maintaining software code |
US7603657B2 (en) * | 2001-03-02 | 2009-10-13 | Oracle International Corporation | Customization of client-server interaction in an internet application |
US7263663B2 (en) * | 2001-03-02 | 2007-08-28 | Oracle International Corporation | Customization of user interface presentation in an internet application user interface |
CA2480202A1 (en) * | 2002-04-10 | 2003-10-23 | Transtech Pharma, Inc. | System and method for data analysis, manipulation, and visualization |
US9565275B2 (en) * | 2012-02-09 | 2017-02-07 | Rockwell Automation Technologies, Inc. | Transformation of industrial data into useful cloud information |
US7185271B2 (en) * | 2002-08-20 | 2007-02-27 | Hewlett-Packard Development Company, L.P. | Methods and systems for implementing auto-complete in a web page |
US7966658B2 (en) * | 2004-04-08 | 2011-06-21 | The Regents Of The University Of California | Detecting public network attacks using signatures and fast content analysis |
US20110214050A1 (en) * | 2006-09-29 | 2011-09-01 | Stambaugh Thomas M | Virtual systems for spatial organization, navigation, and presentation of information |
US20080088877A1 (en) * | 2006-10-16 | 2008-04-17 | Michael Cacenco | System and Method for Updating Reference to a Data-Source In a Component-Based Application |
US8640056B2 (en) * | 2007-07-05 | 2014-01-28 | Oracle International Corporation | Data visualization techniques |
US9268856B2 (en) * | 2007-09-28 | 2016-02-23 | Yahoo! Inc. | System and method for inclusion of interactive elements on a search results page |
US20090100362A1 (en) * | 2007-10-10 | 2009-04-16 | Microsoft Corporation | Template based method for creating video advertisements |
US8810595B2 (en) * | 2008-06-26 | 2014-08-19 | Microsoft Corporation | Declarative approach for visualization |
US8473854B2 (en) * | 2008-08-19 | 2013-06-25 | Rockwell Automation Technologies, Inc. | Visualization profiles and templates for auto-configuration of industrial automation systems |
WO2010064939A1 (en) * | 2008-12-05 | 2010-06-10 | Business Intelligence Solutions Safe B.V. | Methods, apparatus and systems for data visualization and related applications |
US20100153839A1 (en) * | 2008-12-10 | 2010-06-17 | David Wilkins | System and method for creating web-based application templates |
US8230357B2 (en) * | 2008-12-18 | 2012-07-24 | Microsoft Corporation | Visually processing instance data |
US8576218B2 (en) * | 2008-12-18 | 2013-11-05 | Microsoft Corporation | Bi-directional update of a grid and associated visualizations |
US20110088011A1 (en) * | 2009-10-14 | 2011-04-14 | Vermeg Sarl | Automated Enterprise Software Development |
US9021374B2 (en) * | 2010-12-03 | 2015-04-28 | Salesforce.Com, Inc. | Systems and methods for generating a dashboard in a multi-tenant database system environment |
US8615511B2 (en) * | 2011-01-22 | 2013-12-24 | Operational Transparency LLC | Data visualization interface |
US9395959B2 (en) * | 2011-12-09 | 2016-07-19 | Microsoft Technology Licensing, Llc | Integrated workflow visualization and editing |
US20140053126A1 (en) * | 2012-02-13 | 2014-02-20 | Mark A. Watson | Integrated mobile application development platform |
US20130297588A1 (en) * | 2012-05-07 | 2013-11-07 | Sap Ag | Flexible Dashboard Enhancing Visualization of Database Information |
US9244900B2 (en) * | 2012-08-08 | 2016-01-26 | AutoVitals, Inc. | Template based website development and management |
US9015657B2 (en) * | 2013-08-01 | 2015-04-21 | Modo Labs, Inc. | Systems and methods for developing and delivering platform adaptive web and native application content |
US20150186473A1 (en) * | 2013-12-27 | 2015-07-02 | General Electric Company | System and method for user interface in dashboard software |
US20150186132A1 (en) * | 2013-12-31 | 2015-07-02 | Wolters Kluwer United States Inc. | User interface framework and tools for rapid development of web applications |
US9836502B2 (en) * | 2014-01-30 | 2017-12-05 | Splunk Inc. | Panel templates for visualization of data within an interactive dashboard |
US10139998B2 (en) * | 2014-10-08 | 2018-11-27 | Weebly, Inc. | User interface for editing web content |
US10049473B2 (en) * | 2015-04-27 | 2018-08-14 | Splunk Inc | Systems and methods for providing for third party visualizations |
-
2016
- 2016-02-05 US US15/016,504 patent/US9727623B1/en active Active
-
2017
- 2017-01-05 AU AU2017200055A patent/AU2017200055B2/en active Active
- 2017-01-05 CA CA2953745A patent/CA2953745C/en active Active
- 2017-06-27 US US15/634,421 patent/US10289630B2/en active Active
Cited By (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11386061B2 (en) * | 2015-10-16 | 2022-07-12 | Microsoft Technology Licensing, Llc | Telemetry request system |
US11288245B2 (en) | 2015-10-16 | 2022-03-29 | Microsoft Technology Licensing, Llc | Telemetry definition system |
US10929272B2 (en) | 2015-10-16 | 2021-02-23 | Microsoft Technology Licensing, Llc | Telemetry system extension |
US20170109380A1 (en) * | 2015-10-16 | 2017-04-20 | Microsoft Technology Licensing, Llc | Telemetry request system |
US10116667B2 (en) | 2016-01-26 | 2018-10-30 | Bank Of America Corporation | System for conversion of an instrument from a non-secured instrument to a secured instrument in a process data network |
US10438209B2 (en) | 2016-02-10 | 2019-10-08 | Bank Of America Corporation | System for secure routing of data to various networks from a process data network |
US11354672B2 (en) | 2016-02-10 | 2022-06-07 | Bank Of America Corporation | System for secure routing of data to various networks from a process data network |
US10129238B2 (en) | 2016-02-10 | 2018-11-13 | Bank Of America Corporation | System for control of secure access and communication with different process data networks with separate security features |
US10142347B2 (en) | 2016-02-10 | 2018-11-27 | Bank Of America Corporation | System for centralized control of secure access to process data network |
US11374935B2 (en) | 2016-02-11 | 2022-06-28 | Bank Of America Corporation | Block chain alias person-to-person resource allocation |
US10440101B2 (en) | 2016-02-22 | 2019-10-08 | Bank Of America Corporation | System for external validation of private-to-public transition protocols |
US11102279B2 (en) | 2016-02-22 | 2021-08-24 | Bank Of America Corporation | System for external validation of private-to-public transition protocols |
US20170244721A1 (en) * | 2016-02-22 | 2017-08-24 | Bank Of America Corporation | System for providing levels of security access to a process data network |
US10318938B2 (en) | 2016-02-22 | 2019-06-11 | Bank Of America Corporation | System for routing of process authorization and settlement to a user in process data network based on specified parameters |
US10387878B2 (en) | 2016-02-22 | 2019-08-20 | Bank Of America Corporation | System for tracking transfer of resources in a process data network |
US10026118B2 (en) | 2016-02-22 | 2018-07-17 | Bank Of America Corporation | System for allowing external validation of data in a process data network |
US10178105B2 (en) * | 2016-02-22 | 2019-01-08 | Bank Of America Corporation | System for providing levels of security access to a process data network |
US10140470B2 (en) | 2016-02-22 | 2018-11-27 | Bank Of America Corporation | System for external validation of distributed resource status |
US10475030B2 (en) | 2016-02-22 | 2019-11-12 | Bank Of America Corporation | System for implementing a distributed ledger across multiple network nodes |
US10496989B2 (en) | 2016-02-22 | 2019-12-03 | Bank Of America Corporation | System to enable contactless access to a transaction terminal using a process data network |
US10135870B2 (en) | 2016-02-22 | 2018-11-20 | Bank Of America Corporation | System for external validation of secure process transactions |
US11030621B2 (en) | 2016-02-22 | 2021-06-08 | Bank Of America Corporation | System to enable contactless access to a transaction terminal using a process data network |
US10607285B2 (en) | 2016-02-22 | 2020-03-31 | Bank Of America Corporation | System for managing serializability of resource transfers in a process data network |
US10614461B2 (en) | 2016-02-22 | 2020-04-07 | Bank Of America Corporation | System for implementing a distributed ledger across multiple network nodes |
US10142312B2 (en) | 2016-02-22 | 2018-11-27 | Bank Of America Corporation | System for establishing secure access for users in a process data network |
US10636033B2 (en) | 2016-02-22 | 2020-04-28 | Bank Of America Corporation | System for routing of process authorizations and settlement to a user in a process data network |
US10762504B2 (en) | 2016-02-22 | 2020-09-01 | Bank Of America Corporation | System for external secure access to process data network |
US10679215B2 (en) | 2016-02-22 | 2020-06-09 | Bank Of America Corporation | System for control of device identity and usage in a process data network |
US10402796B2 (en) | 2016-08-29 | 2019-09-03 | Bank Of America Corporation | Application life-cycle transition record recreation system |
US10248412B2 (en) * | 2016-09-20 | 2019-04-02 | Microsoft Technology Licensing, Llc | Sharing applications by modifying attributes |
US20180081678A1 (en) * | 2016-09-20 | 2018-03-22 | Microsoft Technology Licensing, Llc | Sharing applications by modifying attributes |
US11631077B2 (en) | 2017-01-17 | 2023-04-18 | HashLynx Inc. | System for facilitating secure electronic communications between entities and processing resource transfers |
US11983641B2 (en) | 2017-06-05 | 2024-05-14 | Umajin Inc. | Asset tracking system and methods |
US11922564B2 (en) | 2017-06-05 | 2024-03-05 | Umajin Inc. | Generative content system that supports location-based services and methods therefor |
US10620921B2 (en) * | 2017-06-05 | 2020-04-14 | Umajin Inc. | Application system for generating 3D applications |
US12079626B2 (en) | 2017-06-05 | 2024-09-03 | Umajin Inc. | Methods and systems for creating applications using scene trees |
US12001917B2 (en) | 2017-06-05 | 2024-06-04 | Umajin Inc. | Hub-and-spoke classification system and methods |
US12020354B2 (en) | 2017-06-05 | 2024-06-25 | Umajin Inc. | Hub and spoke classification system |
US11726822B2 (en) | 2017-06-05 | 2023-08-15 | Umajin Inc. | Systems and methods for providing digital twin-enabled applications |
US11954486B2 (en) | 2017-06-05 | 2024-04-09 | Umajin Inc. | Location tracking system and methods |
US11188390B2 (en) | 2017-06-05 | 2021-11-30 | Umajin Inc. | Method for configuring a server kit by a server management system |
US11422874B2 (en) | 2017-09-12 | 2022-08-23 | Schlumberger Technology Corporation | Visualization infrastructure for web applications |
WO2019055556A1 (en) * | 2017-09-12 | 2019-03-21 | Schlumberger Technology Corporation | Visualization infrastructure for web applications |
CN110609681A (en) * | 2018-06-14 | 2019-12-24 | 北京京东尚科信息技术有限公司 | System, method, device and medium for visually configuring and generating WEB application |
US11232139B2 (en) | 2018-06-29 | 2022-01-25 | Lucid Software, Inc. | Custom interactions with visualizations |
US10860603B2 (en) | 2018-06-29 | 2020-12-08 | Lucid Software, Inc. | Visualization customization |
US10860602B2 (en) | 2018-06-29 | 2020-12-08 | Lucid Software, Inc. | Autolayout of visualizations based on contract maps |
WO2020006526A1 (en) * | 2018-06-29 | 2020-01-02 | Lucid Software, Inc. | Custom interactions with visualizations |
US10929545B2 (en) | 2018-07-31 | 2021-02-23 | Bank Of America Corporation | System for providing access to data stored in a distributed trust computing network |
US11223542B2 (en) | 2019-01-22 | 2022-01-11 | Servicenow, Inc. | Systems and method for shared visualization library |
WO2020154201A1 (en) * | 2019-01-22 | 2020-07-30 | Servicenow, Inc. | Systems and method for shared visualization library |
US10805189B2 (en) | 2019-01-22 | 2020-10-13 | Servicenow, Inc. | Systems and method for shared visualization library |
US11593324B2 (en) | 2019-02-22 | 2023-02-28 | Lucid Software, Inc. | Reversible data transforms |
US11144516B2 (en) | 2019-02-22 | 2021-10-12 | Lucid Software, Inc. | Reversible data transforms |
US11249627B2 (en) | 2019-04-08 | 2022-02-15 | Microsoft Technology Licensing, Llc | Dynamic whiteboard regions |
US11250208B2 (en) * | 2019-04-08 | 2022-02-15 | Microsoft Technology Licensing, Llc | Dynamic whiteboard templates |
CN111930375A (en) * | 2019-05-13 | 2020-11-13 | 中国移动通信集团福建有限公司 | Data visualization application development method and device |
US11100173B2 (en) | 2019-06-18 | 2021-08-24 | Lucid Software, Inc. | Autolayout of visualizations based on graph data |
US11409257B2 (en) * | 2019-10-03 | 2022-08-09 | Keyence Corporation | Setting device that sets a programmable logic controller and PLC system that collects control data and a dashboard for displaying control data |
US11593246B2 (en) | 2019-11-26 | 2023-02-28 | Lucid Software, Inc. | Visualization tool for components within a cloud infrastructure |
US11263105B2 (en) | 2019-11-26 | 2022-03-01 | Lucid Software, Inc. | Visualization tool for components within a cloud infrastructure |
US11169671B2 (en) | 2019-11-26 | 2021-11-09 | Lucid Software, Inc. | Alteration of a source data visualization based on user input |
CN111158670A (en) * | 2019-12-27 | 2020-05-15 | 河北航天信息技术有限公司 | Visual auxiliary software development method and system |
US11592979B2 (en) | 2020-01-08 | 2023-02-28 | Microsoft Technology Licensing, Llc | Dynamic data relationships in whiteboard regions |
CN113626667A (en) * | 2021-08-09 | 2021-11-09 | 杭州安恒信息技术股份有限公司 | Data visualization method, system and device and computer readable storage medium |
US20230334237A1 (en) * | 2022-04-14 | 2023-10-19 | Sigma Computing, Inc. | Workbook template sharing |
Also Published As
Publication number | Publication date |
---|---|
US10289630B2 (en) | 2019-05-14 |
US20170293472A1 (en) | 2017-10-12 |
CA2953745C (en) | 2018-02-06 |
US9727623B1 (en) | 2017-08-08 |
AU2017200055A1 (en) | 2017-08-24 |
CA2953745A1 (en) | 2017-08-05 |
AU2017200055B2 (en) | 2018-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289630B2 (en) | Integrated developer workflow for data visualization development | |
US10296304B2 (en) | Method and system for analyzing data based on block | |
JP2020024698A (en) | Generation method, device, apparatus of knowledge graph, and computer-readable storage medium | |
US11086873B2 (en) | Query-time analytics on graph queries spanning subgraphs | |
US10140352B2 (en) | Interfacing with a relational database for multi-dimensional analysis via a spreadsheet application | |
US10769721B2 (en) | Intelligent product requirement configurator | |
AU2018206691B2 (en) | Data interaction cards for capturing and replaying logic in visual analyses | |
US20140331162A1 (en) | Quick time-related data entry | |
US20210049149A1 (en) | Structured Data Collection, Presentation, Validation And Workflow Management | |
US10289620B1 (en) | Reporting and data governance management | |
RU2679971C2 (en) | Implementation of access to semantic content in development system | |
KR102277240B1 (en) | Method and system for extracting synonym by using keyword relation structure | |
CN107341221B (en) | Index structure establishing and associated retrieving method, device, equipment and storage medium | |
US9747358B2 (en) | Pattern analysis for a multi-dimensional analytical system | |
US10318524B2 (en) | Reporting and data governance management | |
US20190163810A1 (en) | Search User Interface | |
KR102519997B1 (en) | Apparatus and method for analyzing heterogeneous data based on web | |
JP2001216306A (en) | Category generating device | |
US20160034542A1 (en) | Integrating various search and relevance providers in transactional search | |
US20230297861A1 (en) | Graph recommendations for optimal model configurations | |
JP4520339B2 (en) | Database search program | |
JPH1049550A (en) | Data base retrieval device and program storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ACCENTURE GLOBAL SOLUTIONS LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CATANIA, JEFFREY;DHARMA, TIFFANY;PANG, AARON;AND OTHERS;SIGNING DATES FROM 20160203 TO 20160210;REEL/FRAME:037710/0718 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |