US20160078008A1 - Integrating user interface experiences from multiple applications - Google Patents
Integrating user interface experiences from multiple applications Download PDFInfo
- Publication number
- US20160078008A1 US20160078008A1 US14/483,592 US201414483592A US2016078008A1 US 20160078008 A1 US20160078008 A1 US 20160078008A1 US 201414483592 A US201414483592 A US 201414483592A US 2016078008 A1 US2016078008 A1 US 2016078008A1
- Authority
- US
- United States
- Prior art keywords
- application
- visually
- request
- information
- interpretable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G06F17/2247—
-
- G06F17/211—
Definitions
- Computing systems have become ubiquitous, ranging from small embedded devices to phones and tablets to PCs and backend servers. Each of these computing systems is designed to process software code. The software allows users to perform functions, interacting with the hardware provided by the computing system. Many different software applications may be run on a single computing system. Each of these applications typically has different security boundaries and connectivity means. In some cases, it may be difficult to facilitate integration between applications having such disparate security boundaries or connectivity means.
- Embodiments described herein are directed to integrating experiences from at least two applications.
- an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application.
- the request includes context information associated with the first application.
- the computer system sends the generated request to the second application and receives visually-interpretable information from the second application.
- the visually-interpretable information is generated based on the context information associated with the first application.
- the visually-interpretable information includes web page data displayable in a web browser application.
- an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application, and where the request includes context information associated with the first application.
- the computer system sends the generated request to the second application and receives visually-interpretable information from the second application.
- the visually-interpretable information is generated based on the context information associated with the first application, and includes instructions for the first application that include context information associated with the second application.
- the computer system interprets the received instructions including the context information associated with the second application to allow the first application to perform an action based on the received instructions.
- FIG. 1 illustrates a computer architecture in which embodiments described herein may operate including integrating experiences from at least two applications.
- FIG. 2 illustrates a flowchart of an example method for integrating experiences from at least two applications.
- FIG. 3 illustrates a flowchart of an alternative example method for integrating experiences from at least two applications.
- FIG. 4 illustrates an embodiment in which a contextual widget displays details of a selected object.
- FIG. 5 illustrates an embodiment in which a data request is generated by a scripting widget, and a web page response is returned.
- FIG. 6 illustrates an embodiment in which a custom web page is requested, generated and provided.
- FIG. 7 illustrates an embodiment in which a script is executed to generate a web page request which is fulfilled by providing a web page.
- Embodiments described herein are directed to integrating experiences from at least two applications.
- an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application.
- the request includes context information associated with the first application.
- the computer system sends the generated request to the second application and receives visually-interpretable information from the second application.
- the visually-interpretable information is generated based on the context information associated with the first application.
- the visually-interpretable information includes web page data displayable in a web browser application.
- an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application, and where the request includes context information associated with the first application.
- the computer system sends the generated request to the second application and receives visually-interpretable information from the second application.
- the visually-interpretable information is generated based on the context information associated with the first application, and includes instructions for the first application that include context information associated with the second application.
- the computer system interprets the received instructions including the context information associated with the second application to allow the first application to perform an action based on the received instructions.
- Embodiments described herein may implement various types of computing systems. These computing systems are now increasingly taking a wide variety of forms. Computing systems may, for example, be handheld devices, appliances, laptop computers, desktop computers, mainframes, distributed computing systems, or even devices that have not conventionally been considered a computing system.
- the term “computing system” is defined broadly as including any device or system (or combination thereof) that includes at least one physical and tangible processor, and a physical and tangible memory capable of having thereon computer-executable instructions that may be executed by the processor.
- a computing system may be distributed over a network environment and may include multiple constituent computing systems.
- a computing system 101 typically includes at least one processing unit 102 and memory 103 .
- the memory 103 may be physical system memory, which may be volatile, non-volatile, or some combination of the two.
- the term “memory” may also be used herein to refer to non-volatile mass storage such as physical storage media. If the computing system is distributed, the processing, memory and/or storage capability may be distributed as well.
- executable module can refer to software objects, routings, or methods that may be executed on the computing system.
- the different components, modules, engines, and services described herein may be implemented as objects or processes that execute on the computing system (e.g., as separate threads).
- embodiments are described with reference to acts that are performed by one or more computing systems. If such acts are implemented in software, one or more processors of the associated computing system that performs the act direct the operation of the computing system in response to having executed computer-executable instructions.
- such computer-executable instructions may be embodied on one or more computer-readable media that form a computer program product.
- An example of such an operation involves the manipulation of data.
- the computer-executable instructions (and the manipulated data) may be stored in the memory 103 of the computing system 101 .
- Computing system 101 may also contain communication channels that allow the computing system 101 to communicate with other message processors over a wired or wireless network.
- Embodiments described herein may comprise or utilize a special-purpose or general-purpose computer system that includes computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below.
- the system memory may be included within the overall memory 103 .
- the system memory may also be referred to as “main memory”, and includes memory locations that are addressable by the at least one processing unit 102 over a memory bus in which case the address location is asserted on the memory bus itself.
- System memory has been traditionally volatile, but the principles described herein also apply in circumstances in which the system memory is partially, or even fully, non-volatile.
- Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures.
- Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer system.
- Computer-readable media that store computer-executable instructions and/or data structures are computer storage media.
- Computer-readable media that carry computer-executable instructions and/or data structures are transmission media.
- embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.
- Computer storage media are physical hardware storage media that store computer-executable instructions and/or data structures.
- Physical hardware storage media include computer hardware, such as RAM, ROM, EEPROM, solid state drives (“SSDs”), flash memory, phase-change memory (“PCM”), optical disk storage, magnetic disk storage or other magnetic storage devices, or any other hardware storage device(s) which can be used to store program code in the form of computer-executable instructions or data structures, which can be accessed and executed by a general-purpose or special-purpose computer system to implement the disclosed functionality of the invention.
- Transmission media can include a network and/or data links which can be used to carry program code in the form of computer-executable instructions or data structures, and which can be accessed by a general-purpose or special-purpose computer system.
- a “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices.
- program code in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa).
- program code in the form of computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system.
- a network interface module e.g., a “NIC”
- computer storage media can be included in computer system components that also (or even primarily) utilize transmission media.
- Computer-executable instructions comprise, for example, instructions and data which, when executed at one or more processors, cause a general-purpose computer system, special-purpose computer system, or special-purpose processing device to perform a certain function or group of functions.
- Computer-executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
- a computer system may include a plurality of constituent computer systems.
- program modules may be located in both local and remote memory storage devices.
- Cloud computing environments may be distributed, although this is not required. When distributed, cloud computing environments may be distributed internationally within an organization and/or have components possessed across multiple organizations.
- cloud computing is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services). The definition of “cloud computing” is not limited to any of the other numerous advantages that can be obtained from such a model when properly deployed.
- system architectures described herein can include a plurality of independent components that each contribute to the functionality of the system as a whole.
- This modularity allows for increased flexibility when approaching issues of platform scalability and, to this end, provides a variety of advantages.
- System complexity and growth can be managed more easily through the use of smaller-scale parts with limited functional scope.
- Platform fault tolerance is enhanced through the use of these loosely coupled modules.
- Individual components can be grown incrementally as business needs dictate. Modular development also translates to decreased time to market for new functionality. New functionality can be added or subtracted without impacting the core system.
- FIG. 1 illustrates a computer architecture 100 in which at least one embodiment may be employed.
- Computer architecture 100 includes two computer systems: 101 and 114 , although more or fewer may be used.
- the computer systems 101 and 114 may be any type of local or distributed computer systems, including a cloud computing system.
- the computer systems 101 and 114 include modules for performing a variety of different functions.
- the communications module 104 may be configured to communicate with other computing systems, such as with the communications module 117 of computer system 114 .
- the computing module 104 may include any wired or wireless communication means that can receive and/or transmit data to or from other computing systems.
- the communications module 104 may be configured to interact with databases, mobile computing devices (such as mobile phones or tablets), embedded or other types of computing systems.
- Each computer system includes physical hardware including a processor ( 102 / 115 ) or processing cores, and some type of memory 103 / 116 such as random access memory. Each computer system may also include or have access to local or remote data storage such as a database or local hard drive.
- the computer systems 101 and 114 may be designed to run applications.
- computer system 101 may run first application 107
- computer system 114 may be configured to run second application 118 .
- These applications may be any type of software applications including services or other portions of software functionality.
- the first and second applications may have different attributes, or may be configured differently.
- the first application 107 and the second application 118 may have different security boundaries or connectivity boundaries.
- the first application 107 may little or no security and may not require users to login to gain access to all or portions of the application.
- the second application 118 may have a high level of security, and may require users to login to gain access to all or portions of the application.
- the first application 107 may allow connections with other applications or systems, while the second application 118 prevents such connections.
- Integrating two or more applications with different security and connectivity boundaries into one logical interactive and connected experience may be difficult for system integrators and end users.
- Previously, such projects typically required an extensive investment in developing an integrated user experience, or would use mash-up techniques to assemble existing visualizations systems into a single dashboard.
- Custom application integration development is costly and usually not feasible for system integrators and end users with limited development expertise.
- Mash-ups do not typically involve extensive development, but they do not provide real application integration either. Data from different applications or systems is typically just displayed side-by-side without sharing context between them.
- Embodiments described herein allow system integrators and end users to create integrated user experiences for disconnected or disparate systems using scripting and web page data presentations.
- Scripting and web pages e.g. hypertext markup language (HTML) pages
- HTML hypertext markup language
- Embodiments described herein enable composition and integration on user interface level where data is retrieved using a scripting application on one system while a visualization is created on the other application. At least in some cases, the embodiments do not require systems or applications to have connectivity or security integration between each other.
- embodiments described herein provide system integrators, end users and other types of users a way to bridge boundaries between disconnected systems and create integrated user experiences using a scripting application and (e.g. HTML) web pages. Unlike deeply integrated systems, these embodiments do not require installation or development of connectors which are usually locked to the data APIs of the systems involved and typically need elevated credentials to access data. Unlike mash-up systems that allow displaying information from disconnected systems side-by-side without context shared between them, these embodiments allow deep integration of data and visualization from disconnected systems without integrating the systems or applications themselves. These embodiments also function without modifications to other connected systems' code, deployment or configuration.
- a scripting application and e.g. HTML
- systems described herein are not just about accessing and integrating data over a uniform application programming interface (API) as needed, but instead are about hosting the visualizations implemented in other systems.
- API application programming interface
- disparate databases are connected through the first and second applications, where each application only connects to its own database.
- a “scripting application” may be any type of standalone or built-in scripting application, service, widget or other software functionality that allows users to compose and/or execute scripts.
- the scripts may be executed within another application, or by themselves, and may result in some type of action occurring on one or more computer systems.
- the first application 107 on computer system 101 is a scripting application.
- the scripting application allows user 105 to create, modify and execute scripts using input 106 .
- the scripts allow the user to display virtually any information in a dashboard or other part of an application, and further provide control over the information's formatting.
- a ScriptContext object is a helper object that provides methods and properties to scripts used in a scripting application or widgets.
- the ScriptContext object may be passed as a global variable to scripts that run in the context of a dashboard.
- Each script created for a dashboard may use the ScriptContext helper object to create and return the data that is displayed in the scripting widget.
- Data may be returned from a script in a dashboard scripting widget by setting a value for a ReturnCollection property.
- the scripting widget will read the contents of ReturnCollection and format it for display in the dashboard.
- the data in ReturnCollection is formatted into a grid.
- the data in ReturnCollection is a web page that displays in the dashboard.
- a contextual widget is one that can accept data from another widget in the dashboard.
- the contextual widget is updated and can use data from the first widget to determine what it should display.
- the user may have a list of objects 401 in one widget and want to display details 402 about an object 403 when it is selected in the first widget.
- the user e.g. 105 from FIG. 1
- a web browser scripting widget may be configured to display the output of a web page requested by a given script. This may involve one of the following three scenarios: 1) A simple web page requiring no parameters, 2) A web request using parameters with properties of the selected object, or 3) A web form written to interact with an operations console.
- a simple web page requiring no parameters
- a web request using parameters with properties of the selected object or 3)
- a web form written to interact with an operations console In the first case involving a simple web request, a static web page is displayed in the widget. The user can pass parameters to it in the request (e.g. in request 112 ). It should be noted that this scenario is typically a precursor to the other scenarios since the same results may be achieved without a script using the web browser scripting widget.
- the scripting application e.g. 107
- the request for visually-interpretable information 112 may include context information 113 and/or parameters that allow the user 105 to the information request for any items selected in the dashboard.
- the script widget 501 may build an information request 502 (e.g. a web “get” request) with parameter values from one or more objects selected in the dashboard 505 .
- This allows the user to perform such actions as looking up information on a selected alert or requesting information on a selected object in another application system accessible through the internet 503 (e.g. using the hypertext transfer protocol (HTTP)).
- a web response e.g. HTML response 504
- the request object created in this example is the same as the request object in the previous example for a simple web request.
- a parameter collection is added to this request to hold the parameter values. Note that a set of parameters is added for each selected item in case multiple items are selected.
- the custom web page scenario allows users complete flexibility over the data that that is retrieved and how the data is formatted.
- a user uses the script widget 604 to build a script to run in console 608 and a web page to be processed on a web server 606 .
- the script creates a post request by populating a “PostData” property of the request object 605 with the selected object 607 from the list of objects 602 .
- the web page accepts the data and returns results 607 back to the console in HTML (or in some other browser-readable format).
- the data may be sent to the web page in JavaScript Object Notation (JSON), and, in such cases, the web page will be deserialized prior to implementation.
- JSON JavaScript Object Notation
- the web page 607 can interact with the dashboard 601 and/or the console 608 using various console windowing methods or by using the console protocol in hyperlinks.
- FIG. 2 illustrates a flowchart of a method 200 for integrating experiences from at least two applications. The method 200 will now be described with frequent reference to the components and data of environment 100 .
- Method 200 includes generating, at a first application, a request for visually-interpretable information from a second application, the second application being decoupled from the first application, the request including context information associated with the first application ( 210 ).
- the request generating module 108 of the first application 107 may generate request for information 112 requesting visually-interpretable information from second application 118 .
- the first and second applications may be any type of software applications, and may include various modules for performing certain types of functionality.
- the first application may include a request generating module 108 for generating the information request 112 . It should be noted, however, that the request generating module may not be part of the first application 107 , and may be run separately from the first application or any other modules on computer system 101 .
- the request for visually-interpretable information 112 may be generated as a result of executing a script at the first application. For instance, user 105 may provide a script, or the first application 107 may access a previously created script. This script may then be executed by the first application or the computer system 101 , and may cause the request for information 112 to be generated.
- the request for information may include context information 113 that specifies context for the information request 112 . For instance, if a selected item is part of a list of items, the list of items may be provided as context for the selected item.
- the first and second applications may be different in various ways.
- the two applications may have different security settings or implementations (e.g. different encryption policies or login policies), or may have different connectivity settings, interface settings, access settings or other distinguishing characteristics.
- the first and second applications can be said to be “decoupled” from one another, each being different from the other in some manner.
- the decoupling between the first application 107 and the second application 118 may indicate that the first and second applications have different security boundaries (or have no security between the applications), or may indicate that the first and second applications have different connectivity boundaries, differing on how communications and connections are allowed, established and/or maintained.
- One example of disconnected systems or applications may include one application that processes data and one application that provides visualizations for the data.
- the second application may generate and return visually-interpretable information (such as a web page, image, presentation or other visually-interpretable data).
- computer system 101 may establish a configuration or view that automatically executes the script at the first application upon implementation of the configuration or view.
- user 105 indicates at the first application 107 that a certain configuration or view is to be used, once implemented, that configuration or view will trigger the execution of one or more scripts, which may, in turn, cause the generation of the information request 112 .
- method 200 includes sending the generated request to the second application ( 220 ).
- the communications module 104 of computer system 101 may send the generated request for information 112 to second application 118 .
- the communications module 104 of computer system 101 may then receive visually-interpretable information 120 from the second application, where the visually-interpretable information is generated based on the context information 113 associated with the first application ( 230 ).
- the second application 118 may be unaware of the data associated with the first application or the application configurations associated with the first application.
- the second application may thus generate visually-interpretable information 120 without knowledge of the first applications data or data types, or application configurations associated with the first application 107 .
- the visually-interpretable information 120 from the second information 118 may be displayed in the first application (e.g. within the console 506 of FIG. 5 ).
- the visually-interpretable information received from the second application 118 may be a markup language file (such as HTML or XML), an image file or other type of data that can be interpreted and presented to a user for display.
- the interpreting module 109 may interpret the visually-interpretable information 120 and display it according to the context information associated with the first application. Thus, in such cases, if the context indicates that the visually-interpretable information 120 is to be displayed in a graph, or in a list, or in a spreadsheet column or row, or in a word processing document, etc., it may be displayed in that context.
- the visually-interpretable information 120 received from the second application 118 also includes instructions 121 that are recognizable by the first application 107 .
- the instructions may cause certain specified actions to be performed within the first application. This allows for interactivity between the decoupled first and second applications.
- the instructions may be interpreted by the interpreting module 109 and may be implemented by the action performing module 110 .
- the action may be a single action or a series of actions, such as those that are part of a workflow. Thus, in such cases, the action may be the initiation of a workflow (or set of workflows). In this manner, instructions sent by the second application 118 provide interactivity (or at least quasi-interactivity between the applications).
- the visually-interpretable information 120 may include instructions 121 that cause the first application 107 to act differently when a user selects something within the visually-interpretable information 120 (e.g. on a web page).
- the second application 118 may know little to nothing about the first application including its configurations, settings, interfaces or data types.
- the first application 107 may send an element identifier and a display name for that element within the context information 113 .
- the second application 118 may not know what the element identifier and display name means, but can provide instructions to the first application that the element is to be displayed in a certain place and that it is to be highlighted, for example, within the first application.
- the first application may send a specified time range with the request for information 112 (e.g. within a web page request).
- the second application 118 may then return portions of web page (or other) content specific to the specified time range.
- a script may be executed on the first application 107 which sends a web request with context information to the second application 118 .
- the second application 118 sends back a visualization or representation for a certain portion of data (i.e. the data specified in the request 112 ), without knowing the configuration settings or data types of the first application.
- a script 701 may be generated by a user or accessed from another location.
- the script 701 may be generated at a web data provider 704 that provides scripting capabilities.
- the script may generate one or more web get requests for data from another application.
- the web get requests may include one or more contextual selections made at a console 705 .
- the web get requests may result in a web page 702 being returned and displayed within a web browser 703 .
- This web page may include various types of visually-interpretable information, and may include any type of information displayable in or interpretable by a web browser.
- the web page itself may include instructions that are interpretable by and implementable the web browser.
- FIG. 3 a flowchart is illustrated of a method 300 for integrating experiences from at least two applications. The method 300 will now be described with frequent reference to the components and data of environment 100 .
- Method 300 includes generating, at a first application, a request for visually-interpretable information from a second application, the second application being decoupled from the first application, the request including context information associated with the first application ( 310 ).
- the request generating module 108 of the first application 107 may generate the request for visually-interpretable information 112 .
- the request may include context information 113 associated with the first application, which identifies context for the requested visually-interpretable information.
- Method 300 further includes sending the generated request 112 to the second application ( 320 ) and receiving visually-interpretable information 120 from the second application 118 .
- the visually-interpretable information is generated based on the context information 113 associated with the first application 107 , and includes instructions 121 for the first application that, themselves, include context information 122 associated with the second application ( 330 ).
- the interpreting module 109 of computer system 101 may then interpret the received instructions 121 including the context information 122 associated with the second application to allow the first application to perform at least one action 111 based on the received instructions ( 340 ).
- the action 111 may, for example, include displaying a visualization of at least some portion of the received visually-interpretable information 120 .
- Other actions may include highlighting certain portions of the information, formatting the information or performing other operations in relation to the received information 120 .
- the context associated with the second application i.e. the context sent with the instructions 121
- the action 111 that is performed by the first application 107 is a native action within the first application.
- the second application although decoupled from the first application, may initiate the performance of an action 111 that is native to the first application.
- a separate data set may be joined to the visually-interpretable information 120 , and is sent along with the visually-interpretable information. This separate data set may belong to a third party or other entity. In cases where the separate data set belongs to a third party, the third party data set may be incorporated with the visually-interpretable information 120 and may be displayed alongside or integrated within the visually-interpretable information received from the second application 118 .
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- Computing systems have become ubiquitous, ranging from small embedded devices to phones and tablets to PCs and backend servers. Each of these computing systems is designed to process software code. The software allows users to perform functions, interacting with the hardware provided by the computing system. Many different software applications may be run on a single computing system. Each of these applications typically has different security boundaries and connectivity means. In some cases, it may be difficult to facilitate integration between applications having such disparate security boundaries or connectivity means.
- Embodiments described herein are directed to integrating experiences from at least two applications. In one embodiment, an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application. The request includes context information associated with the first application. The computer system sends the generated request to the second application and receives visually-interpretable information from the second application. The visually-interpretable information is generated based on the context information associated with the first application. In some cases, the visually-interpretable information includes web page data displayable in a web browser application.
- In another embodiment, an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application, and where the request includes context information associated with the first application. The computer system sends the generated request to the second application and receives visually-interpretable information from the second application. The visually-interpretable information is generated based on the context information associated with the first application, and includes instructions for the first application that include context information associated with the second application. The computer system then interprets the received instructions including the context information associated with the second application to allow the first application to perform an action based on the received instructions.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
- Additional features and advantages will be set forth in the description which follows, and in part will be apparent to one of ordinary skill in the art from the description, or may be learned by the practice of the teachings herein. Features and advantages of embodiments described herein may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. Features of the embodiments described herein will become more fully apparent from the following description and appended claims.
- To further clarify the above and other features of the embodiments described herein, a more particular description will be rendered by reference to the appended drawings. It is appreciated that these drawings depict only examples of the embodiments described herein and are therefore not to be considered limiting of its scope. The embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
-
FIG. 1 illustrates a computer architecture in which embodiments described herein may operate including integrating experiences from at least two applications. -
FIG. 2 illustrates a flowchart of an example method for integrating experiences from at least two applications. -
FIG. 3 illustrates a flowchart of an alternative example method for integrating experiences from at least two applications. -
FIG. 4 illustrates an embodiment in which a contextual widget displays details of a selected object. -
FIG. 5 illustrates an embodiment in which a data request is generated by a scripting widget, and a web page response is returned. -
FIG. 6 illustrates an embodiment in which a custom web page is requested, generated and provided. -
FIG. 7 illustrates an embodiment in which a script is executed to generate a web page request which is fulfilled by providing a web page. - Embodiments described herein are directed to integrating experiences from at least two applications. In one embodiment, an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application. The request includes context information associated with the first application. The computer system sends the generated request to the second application and receives visually-interpretable information from the second application. The visually-interpretable information is generated based on the context information associated with the first application. In some cases, the visually-interpretable information includes web page data displayable in a web browser application.
- In another embodiment, an application at a computer system generates a request for visually-interpretable information from another application, where the second application is decoupled from the first application, and where the request includes context information associated with the first application. The computer system sends the generated request to the second application and receives visually-interpretable information from the second application. The visually-interpretable information is generated based on the context information associated with the first application, and includes instructions for the first application that include context information associated with the second application. The computer system then interprets the received instructions including the context information associated with the second application to allow the first application to perform an action based on the received instructions.
- The following discussion now refers to a number of methods and method acts that may be performed. It should be noted, that although the method acts may be discussed in a certain order or illustrated in a flow chart as occurring in a particular order, no particular ordering is necessarily required unless specifically stated, or required because an act is dependent on another act being completed prior to the act being performed.
- Embodiments described herein may implement various types of computing systems. These computing systems are now increasingly taking a wide variety of forms. Computing systems may, for example, be handheld devices, appliances, laptop computers, desktop computers, mainframes, distributed computing systems, or even devices that have not conventionally been considered a computing system. In this description and in the claims, the term “computing system” is defined broadly as including any device or system (or combination thereof) that includes at least one physical and tangible processor, and a physical and tangible memory capable of having thereon computer-executable instructions that may be executed by the processor. A computing system may be distributed over a network environment and may include multiple constituent computing systems.
- As illustrated in
FIG. 1 , acomputing system 101 typically includes at least oneprocessing unit 102 andmemory 103. Thememory 103 may be physical system memory, which may be volatile, non-volatile, or some combination of the two. The term “memory” may also be used herein to refer to non-volatile mass storage such as physical storage media. If the computing system is distributed, the processing, memory and/or storage capability may be distributed as well. - As used herein, the term “executable module” or “executable component” can refer to software objects, routings, or methods that may be executed on the computing system. The different components, modules, engines, and services described herein may be implemented as objects or processes that execute on the computing system (e.g., as separate threads).
- In the description that follows, embodiments are described with reference to acts that are performed by one or more computing systems. If such acts are implemented in software, one or more processors of the associated computing system that performs the act direct the operation of the computing system in response to having executed computer-executable instructions. For example, such computer-executable instructions may be embodied on one or more computer-readable media that form a computer program product. An example of such an operation involves the manipulation of data. The computer-executable instructions (and the manipulated data) may be stored in the
memory 103 of thecomputing system 101.Computing system 101 may also contain communication channels that allow thecomputing system 101 to communicate with other message processors over a wired or wireless network. - Embodiments described herein may comprise or utilize a special-purpose or general-purpose computer system that includes computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. The system memory may be included within the
overall memory 103. The system memory may also be referred to as “main memory”, and includes memory locations that are addressable by the at least oneprocessing unit 102 over a memory bus in which case the address location is asserted on the memory bus itself. System memory has been traditionally volatile, but the principles described herein also apply in circumstances in which the system memory is partially, or even fully, non-volatile. - Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer system. Computer-readable media that store computer-executable instructions and/or data structures are computer storage media. Computer-readable media that carry computer-executable instructions and/or data structures are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.
- Computer storage media are physical hardware storage media that store computer-executable instructions and/or data structures. Physical hardware storage media include computer hardware, such as RAM, ROM, EEPROM, solid state drives (“SSDs”), flash memory, phase-change memory (“PCM”), optical disk storage, magnetic disk storage or other magnetic storage devices, or any other hardware storage device(s) which can be used to store program code in the form of computer-executable instructions or data structures, which can be accessed and executed by a general-purpose or special-purpose computer system to implement the disclosed functionality of the invention.
- Transmission media can include a network and/or data links which can be used to carry program code in the form of computer-executable instructions or data structures, and which can be accessed by a general-purpose or special-purpose computer system. A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer system, the computer system may view the connection as transmission media. Combinations of the above should also be included within the scope of computer-readable media.
- Further, upon reaching various computer system components, program code in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system. Thus, it should be understood that computer storage media can be included in computer system components that also (or even primarily) utilize transmission media.
- Computer-executable instructions comprise, for example, instructions and data which, when executed at one or more processors, cause a general-purpose computer system, special-purpose computer system, or special-purpose processing device to perform a certain function or group of functions. Computer-executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
- Those skilled in the art will appreciate that the principles described herein may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. As such, in a distributed system environment, a computer system may include a plurality of constituent computer systems. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
- Those skilled in the art will also appreciate that the invention may be practiced in a cloud computing environment. Cloud computing environments may be distributed, although this is not required. When distributed, cloud computing environments may be distributed internationally within an organization and/or have components possessed across multiple organizations. In this description and the following claims, “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services). The definition of “cloud computing” is not limited to any of the other numerous advantages that can be obtained from such a model when properly deployed.
- Still further, system architectures described herein can include a plurality of independent components that each contribute to the functionality of the system as a whole. This modularity allows for increased flexibility when approaching issues of platform scalability and, to this end, provides a variety of advantages. System complexity and growth can be managed more easily through the use of smaller-scale parts with limited functional scope. Platform fault tolerance is enhanced through the use of these loosely coupled modules. Individual components can be grown incrementally as business needs dictate. Modular development also translates to decreased time to market for new functionality. New functionality can be added or subtracted without impacting the core system.
-
FIG. 1 illustrates acomputer architecture 100 in which at least one embodiment may be employed.Computer architecture 100 includes two computer systems: 101 and 114, although more or fewer may be used. Thecomputer systems computer systems communications module 104 may be configured to communicate with other computing systems, such as with thecommunications module 117 ofcomputer system 114. Thecomputing module 104 may include any wired or wireless communication means that can receive and/or transmit data to or from other computing systems. Thecommunications module 104 may be configured to interact with databases, mobile computing devices (such as mobile phones or tablets), embedded or other types of computing systems. Each computer system includes physical hardware including a processor (102/115) or processing cores, and some type ofmemory 103/116 such as random access memory. Each computer system may also include or have access to local or remote data storage such as a database or local hard drive. - The
computer systems computer system 101 may runfirst application 107, whilecomputer system 114 may be configured to runsecond application 118. These applications may be any type of software applications including services or other portions of software functionality. The first and second applications may have different attributes, or may be configured differently. In some cases, thefirst application 107 and thesecond application 118 may have different security boundaries or connectivity boundaries. For instance, thefirst application 107 may little or no security and may not require users to login to gain access to all or portions of the application. Contrariwise, thesecond application 118 may have a high level of security, and may require users to login to gain access to all or portions of the application. Similarly, thefirst application 107 may allow connections with other applications or systems, while thesecond application 118 prevents such connections. - Integrating two or more applications with different security and connectivity boundaries into one logical interactive and connected experience may be difficult for system integrators and end users. Previously, such projects typically required an extensive investment in developing an integrated user experience, or would use mash-up techniques to assemble existing visualizations systems into a single dashboard. Custom application integration development is costly and usually not feasible for system integrators and end users with limited development expertise. Mash-ups do not typically involve extensive development, but they do not provide real application integration either. Data from different applications or systems is typically just displayed side-by-side without sharing context between them.
- Embodiments described herein allow system integrators and end users to create integrated user experiences for disconnected or disparate systems using scripting and web page data presentations. Scripting and web pages (e.g. hypertext markup language (HTML) pages) are technologies that system integrators and power end users are typically familiar with. Embodiments described herein enable composition and integration on user interface level where data is retrieved using a scripting application on one system while a visualization is created on the other application. At least in some cases, the embodiments do not require systems or applications to have connectivity or security integration between each other.
- Accordingly, embodiments described herein provide system integrators, end users and other types of users a way to bridge boundaries between disconnected systems and create integrated user experiences using a scripting application and (e.g. HTML) web pages. Unlike deeply integrated systems, these embodiments do not require installation or development of connectors which are usually locked to the data APIs of the systems involved and typically need elevated credentials to access data. Unlike mash-up systems that allow displaying information from disconnected systems side-by-side without context shared between them, these embodiments allow deep integration of data and visualization from disconnected systems without integrating the systems or applications themselves. These embodiments also function without modifications to other connected systems' code, deployment or configuration. Thus, systems described herein are not just about accessing and integrating data over a uniform application programming interface (API) as needed, but instead are about hosting the visualizations implemented in other systems. In one example, disparate databases are connected through the first and second applications, where each application only connects to its own database.
- As the term is used herein, a “scripting application” may be any type of standalone or built-in scripting application, service, widget or other software functionality that allows users to compose and/or execute scripts. The scripts may be executed within another application, or by themselves, and may result in some type of action occurring on one or more computer systems. For example, in one embodiment, the
first application 107 oncomputer system 101 is a scripting application. The scripting application allowsuser 105 to create, modify and executescripts using input 106. The scripts allow the user to display virtually any information in a dashboard or other part of an application, and further provide control over the information's formatting. - A ScriptContext object is a helper object that provides methods and properties to scripts used in a scripting application or widgets. The ScriptContext object may be passed as a global variable to scripts that run in the context of a dashboard. Each script created for a dashboard may use the ScriptContext helper object to create and return the data that is displayed in the scripting widget. Data may be returned from a script in a dashboard scripting widget by setting a value for a ReturnCollection property. When the script completes, the scripting widget will read the contents of ReturnCollection and format it for display in the dashboard. In some embodiments, the data in ReturnCollection is formatted into a grid. In other embodiments, the data in ReturnCollection is a web page that displays in the dashboard.
- A contextual widget is one that can accept data from another widget in the dashboard. As shown in
FIG. 4 , when a user selects an object 403 from among the available objects 401 in a first widget, the contextual widget is updated and can use data from the first widget to determine what it should display. For example, the user may have a list of objects 401 in one widget and want to displaydetails 402 about an object 403 when it is selected in the first widget. In order to make a script contextual, the user (e.g. 105 fromFIG. 1 ) may add a parameter to the script that includes global selected items. This variable may include a collection of objects or alerts that are selected in another widget in the dashboard. If this parameter is included, then the script will run and refresh its data each time another object or alert is selected. The script can then use this variable to access information from the selected items in order to determine the information to display in the scripting widget. - A web browser scripting widget may be configured to display the output of a web page requested by a given script. This may involve one of the following three scenarios: 1) A simple web page requiring no parameters, 2) A web request using parameters with properties of the selected object, or 3) A web form written to interact with an operations console. In the first case involving a simple web request, a static web page is displayed in the widget. The user can pass parameters to it in the request (e.g. in request 112). It should be noted that this scenario is typically a precursor to the other scenarios since the same results may be achieved without a script using the web browser scripting widget. The scripting application (e.g. 107) may be used to generate the request for visually-
interpretable information 112, which is then sent on to thesecond application 118. - The request for visually-
interpretable information 112 may includecontext information 113 and/or parameters that allow theuser 105 to the information request for any items selected in the dashboard. In this scenario, as shown inFIG. 5 , thescript widget 501 may build an information request 502 (e.g. a web “get” request) with parameter values from one or more objects selected in thedashboard 505. This allows the user to perform such actions as looking up information on a selected alert or requesting information on a selected object in another application system accessible through the internet 503 (e.g. using the hypertext transfer protocol (HTTP)). A web response (e.g. HTML response 504) may then be sent back to theconsole 506 at the user's computer system (e.g. computer system 101 ofFIG. 1 ). The request object created in this example is the same as the request object in the previous example for a simple web request. A parameter collection is added to this request to hold the parameter values. Note that a set of parameters is added for each selected item in case multiple items are selected. - The custom web page scenario allows users complete flexibility over the data that that is retrieved and how the data is formatted. In this scenario, as generally shown in
FIG. 6 , a user uses thescript widget 604 to build a script to run inconsole 608 and a web page to be processed on aweb server 606. The script creates a post request by populating a “PostData” property of therequest object 605 with the selectedobject 607 from the list ofobjects 602. The web page accepts the data and returnsresults 607 back to the console in HTML (or in some other browser-readable format). The data may be sent to the web page in JavaScript Object Notation (JSON), and, in such cases, the web page will be deserialized prior to implementation. Theweb page 607 can interact with thedashboard 601 and/or theconsole 608 using various console windowing methods or by using the console protocol in hyperlinks. These concepts will be explained further below with regard tomethods FIGS. 2 and 3 , respectively. - In view of the systems and architectures described above, methodologies that may be implemented in accordance with the disclosed subject matter will be better appreciated with reference to the flow charts of
FIGS. 2 and 3 . For purposes of simplicity of explanation, the methodologies are shown and described as a series of blocks. However, it should be understood and appreciated that the claimed subject matter is not limited by the order of the blocks, as some blocks may occur in different orders and/or concurrently with other blocks from what is depicted and described herein. Moreover, not all illustrated blocks may be required to implement the methodologies described hereinafter. -
FIG. 2 illustrates a flowchart of amethod 200 for integrating experiences from at least two applications. Themethod 200 will now be described with frequent reference to the components and data ofenvironment 100. -
Method 200 includes generating, at a first application, a request for visually-interpretable information from a second application, the second application being decoupled from the first application, the request including context information associated with the first application (210). For example, therequest generating module 108 of thefirst application 107 may generate request forinformation 112 requesting visually-interpretable information fromsecond application 118. The first and second applications may be any type of software applications, and may include various modules for performing certain types of functionality. Thus, the first application may include arequest generating module 108 for generating theinformation request 112. It should be noted, however, that the request generating module may not be part of thefirst application 107, and may be run separately from the first application or any other modules oncomputer system 101. - The request for visually-
interpretable information 112 may be generated as a result of executing a script at the first application. For instance,user 105 may provide a script, or thefirst application 107 may access a previously created script. This script may then be executed by the first application or thecomputer system 101, and may cause the request forinformation 112 to be generated. The request for information may includecontext information 113 that specifies context for theinformation request 112. For instance, if a selected item is part of a list of items, the list of items may be provided as context for the selected item. - As indicated above, the first and second applications may be different in various ways. The two applications may have different security settings or implementations (e.g. different encryption policies or login policies), or may have different connectivity settings, interface settings, access settings or other distinguishing characteristics. As such, the first and second applications can be said to be “decoupled” from one another, each being different from the other in some manner. Thus, the decoupling between the
first application 107 and thesecond application 118 may indicate that the first and second applications have different security boundaries (or have no security between the applications), or may indicate that the first and second applications have different connectivity boundaries, differing on how communications and connections are allowed, established and/or maintained. - One example of disconnected systems or applications may include one application that processes data and one application that provides visualizations for the data. Thus, in such cases, if the
second application 118 is providing visualizations for the requested data, the second application may generate and return visually-interpretable information (such as a web page, image, presentation or other visually-interpretable data). In some cases,computer system 101 may establish a configuration or view that automatically executes the script at the first application upon implementation of the configuration or view. Thus, for example, ifuser 105 indicates at thefirst application 107 that a certain configuration or view is to be used, once implemented, that configuration or view will trigger the execution of one or more scripts, which may, in turn, cause the generation of theinformation request 112. - Returning to
FIG. 2 ,method 200 includes sending the generated request to the second application (220). Thecommunications module 104 ofcomputer system 101 may send the generated request forinformation 112 tosecond application 118. Thecommunications module 104 ofcomputer system 101 may then receive visually-interpretable information 120 from the second application, where the visually-interpretable information is generated based on thecontext information 113 associated with the first application (230). In some cases, thesecond application 118 may be unaware of the data associated with the first application or the application configurations associated with the first application. The second application may thus generate visually-interpretable information 120 without knowledge of the first applications data or data types, or application configurations associated with thefirst application 107. - Sending this visually-
interpretable information 120 without knowledge of the first application's data or configurations allows the two applications to be integrated without low-level knowledge about the other applications, or without custom interfaces. In some cases, the experiences integrated between the first and second applications are user interface experiences. In such cases, the visually-interpretable information 120 from thesecond information 118 may be displayed in the first application (e.g. within theconsole 506 ofFIG. 5 ). The visually-interpretable information received from thesecond application 118 may be a markup language file (such as HTML or XML), an image file or other type of data that can be interpreted and presented to a user for display. The interpretingmodule 109 may interpret the visually-interpretable information 120 and display it according to the context information associated with the first application. Thus, in such cases, if the context indicates that the visually-interpretable information 120 is to be displayed in a graph, or in a list, or in a spreadsheet column or row, or in a word processing document, etc., it may be displayed in that context. - In some embodiments, the visually-
interpretable information 120 received from thesecond application 118 also includesinstructions 121 that are recognizable by thefirst application 107. The instructions may cause certain specified actions to be performed within the first application. This allows for interactivity between the decoupled first and second applications. The instructions may be interpreted by the interpretingmodule 109 and may be implemented by theaction performing module 110. The action may be a single action or a series of actions, such as those that are part of a workflow. Thus, in such cases, the action may be the initiation of a workflow (or set of workflows). In this manner, instructions sent by thesecond application 118 provide interactivity (or at least quasi-interactivity between the applications). For example, the visually-interpretable information 120 may includeinstructions 121 that cause thefirst application 107 to act differently when a user selects something within the visually-interpretable information 120 (e.g. on a web page). In such cases, thesecond application 118 may know little to nothing about the first application including its configurations, settings, interfaces or data types. - In one embodiment, the
first application 107 may send an element identifier and a display name for that element within thecontext information 113. Thesecond application 118 may not know what the element identifier and display name means, but can provide instructions to the first application that the element is to be displayed in a certain place and that it is to be highlighted, for example, within the first application. In another example, the first application may send a specified time range with the request for information 112 (e.g. within a web page request). Thesecond application 118 may then return portions of web page (or other) content specific to the specified time range. In this manner, a script may be executed on thefirst application 107 which sends a web request with context information to thesecond application 118. Thesecond application 118 sends back a visualization or representation for a certain portion of data (i.e. the data specified in the request 112), without knowing the configuration settings or data types of the first application. - As shown in
FIG. 7 , ascript 701 may be generated by a user or accessed from another location. Thescript 701 may be generated at aweb data provider 704 that provides scripting capabilities. The script may generate one or more web get requests for data from another application. The web get requests may include one or more contextual selections made at aconsole 705. The web get requests may result in aweb page 702 being returned and displayed within aweb browser 703. This web page may include various types of visually-interpretable information, and may include any type of information displayable in or interpretable by a web browser. The web page itself may include instructions that are interpretable by and implementable the web browser. - Turning now
FIG. 3 , a flowchart is illustrated of amethod 300 for integrating experiences from at least two applications. Themethod 300 will now be described with frequent reference to the components and data ofenvironment 100. -
Method 300 includes generating, at a first application, a request for visually-interpretable information from a second application, the second application being decoupled from the first application, the request including context information associated with the first application (310). For example, therequest generating module 108 of thefirst application 107 may generate the request for visually-interpretable information 112. The request may includecontext information 113 associated with the first application, which identifies context for the requested visually-interpretable information.Method 300 further includes sending the generatedrequest 112 to the second application (320) and receiving visually-interpretable information 120 from thesecond application 118. The visually-interpretable information is generated based on thecontext information 113 associated with thefirst application 107, and includesinstructions 121 for the first application that, themselves, includecontext information 122 associated with the second application (330). The interpretingmodule 109 ofcomputer system 101 may then interpret the receivedinstructions 121 including thecontext information 122 associated with the second application to allow the first application to perform at least oneaction 111 based on the received instructions (340). - The
action 111 may, for example, include displaying a visualization of at least some portion of the received visually-interpretable information 120. Other actions may include highlighting certain portions of the information, formatting the information or performing other operations in relation to the receivedinformation 120. The context associated with the second application (i.e. the context sent with the instructions 121) may indicate certain attributes or settings associated with the second application that may influence whichaction 111 is performed by theaction performing module 110 oncomputer system 101, or may influence how the action is performed. - In some cases, the
action 111 that is performed by thefirst application 107 is a native action within the first application. Thus, the second application, although decoupled from the first application, may initiate the performance of anaction 111 that is native to the first application. In some embodiments, a separate data set may be joined to the visually-interpretable information 120, and is sent along with the visually-interpretable information. This separate data set may belong to a third party or other entity. In cases where the separate data set belongs to a third party, the third party data set may be incorporated with the visually-interpretable information 120 and may be displayed alongside or integrated within the visually-interpretable information received from thesecond application 118. - Accordingly, in this manner, methods, systems and computer program products are provided which integrate experiences from two or more decoupled applications.
- The concepts and features described herein may be embodied in other specific forms without departing from their spirit or descriptive characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the disclosure is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/483,592 US20160078008A1 (en) | 2014-09-11 | 2014-09-11 | Integrating user interface experiences from multiple applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/483,592 US20160078008A1 (en) | 2014-09-11 | 2014-09-11 | Integrating user interface experiences from multiple applications |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160078008A1 true US20160078008A1 (en) | 2016-03-17 |
Family
ID=55454908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/483,592 Abandoned US20160078008A1 (en) | 2014-09-11 | 2014-09-11 | Integrating user interface experiences from multiple applications |
Country Status (1)
Country | Link |
---|---|
US (1) | US20160078008A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190102069A1 (en) * | 2017-10-02 | 2019-04-04 | Fisher-Rosemount Systems, Inc. | Systems and methods for configuring and presenting a display navigation hierarchy in a process plant |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236328A1 (en) * | 2004-12-10 | 2006-10-19 | Siemens Medical Solutions Usa, Inc. | Integrated graphical user interface server for use with multiple client applications |
US20090228814A1 (en) * | 2008-03-07 | 2009-09-10 | Lunarr, Inc. | Systems and methods for providing a multifunctional bottom toolbar for a user interface |
US20100205567A1 (en) * | 2009-02-10 | 2010-08-12 | Oracle International Corporation | Adaptive ui regions for enterprise applications |
US20110302569A1 (en) * | 2010-06-01 | 2011-12-08 | Tobias Kunze | Facilitating the execution of web applications in the cloud |
US20120084852A1 (en) * | 2010-10-05 | 2012-04-05 | David Ong | Walled Garden System for Providing Access to One or More Websites that Incorporate Content from Other websites and Method Thereof |
US20130039408A1 (en) * | 2011-02-07 | 2013-02-14 | Screenovate Technologies Ltd | Method for enhancing compression and transmission process of a screen image |
US20130173402A1 (en) * | 2010-08-30 | 2013-07-04 | Tunipop, Inc. | Techniques for facilitating on-line electronic commerce transactions relating to the sale of goods and merchandise |
US20140180798A1 (en) * | 2012-12-26 | 2014-06-26 | Richrelevance, Inc. | Contextual selection and display of information |
US20140242986A1 (en) * | 2010-01-05 | 2014-08-28 | c/o Jasper Wireless, Inc. | System and method for connecting, configuring and testing new wireless devices and applications |
US20140327929A1 (en) * | 2013-05-02 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Print service |
US20140359699A1 (en) * | 2013-05-30 | 2014-12-04 | Siemens Aktiengesellschaft | Method and system for restricting specific users from accessing predetermined portions of mes screens depending on the state of the web screen page |
US20140372539A1 (en) * | 2013-06-12 | 2014-12-18 | Cloudon Ltd | Systems and methods for supporting social productivity using a dashboard |
US8972438B2 (en) * | 2010-12-06 | 2015-03-03 | International Business Machines Corporation | Database access for native applications in a virtualized environment |
US20150100578A1 (en) * | 2013-10-09 | 2015-04-09 | Smart Screen Networks, Inc. | Systems and methods for adding descriptive metadata to digital content |
US20150186819A1 (en) * | 2013-12-31 | 2015-07-02 | Cox Communications, Inc. | Organizational insights and management of same |
US20150212984A1 (en) * | 2014-01-24 | 2015-07-30 | Robert Bowden | Social media and email message aggregator |
US9451005B2 (en) * | 2013-07-15 | 2016-09-20 | Microsoft Technology Licensing, Llc | Delegation of rendering between a web application and a native application |
US9760583B2 (en) * | 2011-06-30 | 2017-09-12 | International Business Machines Corporation | Method for native program to inherit same transaction context when invoked by primary program running in separate environment |
US9785486B2 (en) * | 2006-04-17 | 2017-10-10 | Edda Technology, Inc. | Methods for enabling an application within another independent system/application in medical imaging |
-
2014
- 2014-09-11 US US14/483,592 patent/US20160078008A1/en not_active Abandoned
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236328A1 (en) * | 2004-12-10 | 2006-10-19 | Siemens Medical Solutions Usa, Inc. | Integrated graphical user interface server for use with multiple client applications |
US9785486B2 (en) * | 2006-04-17 | 2017-10-10 | Edda Technology, Inc. | Methods for enabling an application within another independent system/application in medical imaging |
US20090228814A1 (en) * | 2008-03-07 | 2009-09-10 | Lunarr, Inc. | Systems and methods for providing a multifunctional bottom toolbar for a user interface |
US20100205567A1 (en) * | 2009-02-10 | 2010-08-12 | Oracle International Corporation | Adaptive ui regions for enterprise applications |
US20140242986A1 (en) * | 2010-01-05 | 2014-08-28 | c/o Jasper Wireless, Inc. | System and method for connecting, configuring and testing new wireless devices and applications |
US20110302569A1 (en) * | 2010-06-01 | 2011-12-08 | Tobias Kunze | Facilitating the execution of web applications in the cloud |
US20130173402A1 (en) * | 2010-08-30 | 2013-07-04 | Tunipop, Inc. | Techniques for facilitating on-line electronic commerce transactions relating to the sale of goods and merchandise |
US20120084852A1 (en) * | 2010-10-05 | 2012-04-05 | David Ong | Walled Garden System for Providing Access to One or More Websites that Incorporate Content from Other websites and Method Thereof |
US8972438B2 (en) * | 2010-12-06 | 2015-03-03 | International Business Machines Corporation | Database access for native applications in a virtualized environment |
US20130039408A1 (en) * | 2011-02-07 | 2013-02-14 | Screenovate Technologies Ltd | Method for enhancing compression and transmission process of a screen image |
US9760583B2 (en) * | 2011-06-30 | 2017-09-12 | International Business Machines Corporation | Method for native program to inherit same transaction context when invoked by primary program running in separate environment |
US20140180798A1 (en) * | 2012-12-26 | 2014-06-26 | Richrelevance, Inc. | Contextual selection and display of information |
US20140327929A1 (en) * | 2013-05-02 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Print service |
US20140359699A1 (en) * | 2013-05-30 | 2014-12-04 | Siemens Aktiengesellschaft | Method and system for restricting specific users from accessing predetermined portions of mes screens depending on the state of the web screen page |
US20140372539A1 (en) * | 2013-06-12 | 2014-12-18 | Cloudon Ltd | Systems and methods for supporting social productivity using a dashboard |
US9451005B2 (en) * | 2013-07-15 | 2016-09-20 | Microsoft Technology Licensing, Llc | Delegation of rendering between a web application and a native application |
US20150100578A1 (en) * | 2013-10-09 | 2015-04-09 | Smart Screen Networks, Inc. | Systems and methods for adding descriptive metadata to digital content |
US20150186819A1 (en) * | 2013-12-31 | 2015-07-02 | Cox Communications, Inc. | Organizational insights and management of same |
US20150212984A1 (en) * | 2014-01-24 | 2015-07-30 | Robert Bowden | Social media and email message aggregator |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190102069A1 (en) * | 2017-10-02 | 2019-04-04 | Fisher-Rosemount Systems, Inc. | Systems and methods for configuring and presenting a display navigation hierarchy in a process plant |
US11048396B2 (en) * | 2017-10-02 | 2021-06-29 | Fisher-Rosemount Systems, Inc. | Systems and methods for configuring and presenting a display navigation hierarchy in a process plant |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3816823A1 (en) | Webpage rendering method, device, electronic apparatus and storage medium | |
US9032312B2 (en) | Platform for generating composite applications | |
US20210208854A1 (en) | System and method for enhancing component based development models with auto-wiring | |
US10515119B2 (en) | Sequential recommender system for virtualized network services | |
US20140096014A1 (en) | Method for enabling dynamic client user interfaces on multiple platforms from a common server application via metadata | |
US20130046894A1 (en) | Model-driven rest consumption framework | |
CN110651252A (en) | Content management system extensions | |
US20170185609A1 (en) | Universal adaptor for rapid development of web-based data visualizations | |
US12093966B2 (en) | Customer service representative dashboard with micro-applications | |
US9218100B2 (en) | Method and system for partitioning asset management plugins | |
US9747353B2 (en) | Database content publisher | |
US11327730B2 (en) | Composable context menus | |
Liu et al. | Composing enterprise mashup components and services using architecture integration patterns | |
US9311068B2 (en) | Deployment of web application archives as a preprocessing step for provisioning | |
Rattanapoka et al. | An MQTT-based IoT cloud platform with flow design by Node-RED | |
WO2022052563A1 (en) | Service construction method, related device and computer readable storage medium | |
US20210117313A1 (en) | Language agnostic automation scripting tool | |
US20220027168A1 (en) | Process initiation | |
JP2012515972A (en) | Web-based diagram visual extensibility | |
US20190391793A1 (en) | Separation of user interface logic from user interface presentation by using a protocol | |
Regalia et al. | Phuzzy. link: A SPARQL-powered Client-Sided Extensible Semantic Web Browser. | |
CN116127219A (en) | Method and device for displaying pages in applet and computer equipment | |
US8650247B2 (en) | Four tier architecture for implementing thin clients | |
US20140250386A1 (en) | Method and system for client side user interface generation | |
US11775261B2 (en) | Dynamic process model palette |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BYKOV, EVGUENI;BENSON, RYAN;SAVAGE, DANIEL;SIGNING DATES FROM 20140909 TO 20140910;REEL/FRAME:033722/0035 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034747/0417 Effective date: 20141014 Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:039025/0454 Effective date: 20141014 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |