Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
APPLICATION HUB FOR APPLICATIONS FOR AN ANALYTICAL SERVICES PLATFORM
Document Type and Number:
WIPO Patent Application WO/2021/070142
Kind Code:
A1
Abstract:
An application hub is provided for applications of an analytical services platform. The analytical services platform may receive data from analytical devices and provide services, such as filtering, processing and visualizing the data. The application hub may act as a landing site for users on client devices to launch applications for the analytical services platform. The application hub may provide a web page to the client devices over a network that provides a user interface listing applications for the analytical services platform. Users may launch the applications through the user interface, such as by selecting user interface elements for the applications. The user interface may identify what applications have been installed on a client device and what applications have not been installed. The user interface may also identify when an application needs to be upgraded. Since the application hub is intended to be a single landing site for all applications, a single login may be provided.

Inventors:
POPA CORALIA (RO)
ZAMMATARO ALESSIO (GB)
WOODHEAD RICHARD (GB)
Application Number:
PCT/IB2020/059522
Publication Date:
April 15, 2021
Filing Date:
October 09, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
WATERS TECHNOLOGIES IRELAND LTD (IE)
International Classes:
G06F8/61; G06F8/65; G06F9/451
Foreign References:
US20130247030A12013-09-19
Download PDF:
Claims:
CLAIMS

1. A method performed by a client computing device, comprising: receiving a user interface at the client computing device from an application hub running on an application hub computing device, wherein the application hub serves as a landing site where a client may launch applications for an analytical services platform on the client computing device and the user interface identifies a selected one of the applications as not installed on the client computing device; receiving input via the user interface on the client computing device indicating a request to install the selected application on the client device; based on the received communication, retrieving the selected application from an application repository; and installing the retrieved selected application on the client computing device.

2. The method of claim 1, wherein an application hub client is installed on the client computing device and an application hub client services is installed on the client computing device and wherein the retrieving of the selected application comprises sending a request to retrieve the selected application from the application hub client to the application hub client services.

3. The method of claim 2, wherein the retrieving of the selected application further comprises receiving at the application hub client services the selected application from the application repository.

4. The method of claim 3, wherein the installing of the selected application is initiated by the application hub client services.

5. The method of claim 1, wherein an application hub client services is installed on the client computing device and wherein the installing of the selected application is initiated by the application hub client services.

6. The method of claim 5, wherein the application hub client services has administrative privileges on the client computing device.

7. A method performed by a client computing device, comprising: receiving a user interface from an application hub running on the application hub computing device at a client computing device, wherein the application hub serves as a landing site where a client via the client computing device launches applications for an analytical services platform and wherein the user interface identifies a selected application as needing to be updated; based on input received via the user interface at the client computing device, obtaining an update to the selected application; and performing the update of the selected application on the client computing device as a background process.

8. The method of claim 7, wherein an application hub client services is installed on the client computing device and wherein the obtaining the update comprises the application hub client services retrieving an updated version of the selected application from an application repository.

9. The method of claim 8, wherein the application repository is remote from the client computing device.

10. The method of claim 8, wherein the performing the update comprises installing the retrieved selected application on the client computing device.

11. The method of claim 8, wherein the installing the retrieved selected application comprises the application hub client services launching an installer to install the retrieved selected application.

12. The method of claim 7, wherein the input received via the user interface is indicative of selection of a user interface element of the user interface for the selected application.

13. The method of claim 7, further comprising determining whether a version of the selected application is a current version.

14. A method performed on an application hub computing device, comprising: transmitting a user login user interface to a client computing device from an application hub running on the application hub computing device, wherein the user login user interface prompts a user to provide credentials to login to an application hub; receiving at the application hub the credentials from the client computing device; sending the credentials from the application hub to an authentication service; receiving an indication at the application hub that the user has been authenticated; and granting access to the user to execute one or more applications for an analytical services platform via the application hub where the user is not required to again authenticate to execute the one or more applications.

15. The method of claim 14, further comprising requesting an authorization code and receiving the authorization code in response to the request.

16. The method of claim 15, further comprising launching an application and passing the authorization code to an application repository.

17. A non-transitory computer-readable storage medium holding computer-executable instructions that cause a client computing device to perform the following: receiving a user interface at the client computing device from an application hub running on an application hub computing device, wherein the application hub serves as a landing site where a client may launch applications for an analytical services platform on the client computing device and the user interface identifies a selected one of the applications as not installed on the client computing device; receiving input via the user interface on the client computing device indicating a request to install the selected application on the client device; based on the received communication, retrieving the selected application from an application repository; and installing the retrieved selected application on the client computing device.

18. The non-transitory computer-readable storage medium of claim 17, wherein an application hub client is installed on the client computing device and an application hub client services is installed on the client computing device and wherein the retrieving of the selected application comprises sending a request to retrieve the selected application from the application hub client to the application hub client services.

19. The non-transitory computer-readable storage medium of claim 17, wherein an application hub client is installed on the client computing device and an application hub client services is installed on the client computing device and wherein the retrieving of the selected application comprises sending a request to retrieve the selected application from the application hub client to the application hub client services.

20. The non-transitory computer-readable storage medium of claim 19, wherein the installing of the selected application is initiated by the application hub client services.

21. The non-transitory computer-readable storage medium of claim 17, wherein an application hub client services is installed on the client computing device and wherein the installing of the selected application is initiated by the application hub client services.

22. The non-transitory computer-readable storage medium of claim 21, wherein the application hub client services has administrative privileges on the client computing device.

23. A non-transitory computer-readable storage medium holding computer-executable instructions that cause a client computing device to perform the following: receiving a user interface from an application hub running on the application hub computing device at a client computing device, wherein the application hub serves as a landing site where a client via the client computing device launches applications for an analytical services platform and wherein the user interface identifies a selected application as needing to be updated; based on input received via the user interface at the client computing device, obtaining an update to the selected application; and performing the update of the selected application on the client computing device as a background process.

24. The non-transitory computer-readable storage medium of claim 23, wherein an application hub client services is installed on the client computing device and wherein the obtaining the update comprises the application hub client services retrieving an updated version of selected application from an application repository.

25. The non-transitory computer-readable storage medium of claim 24, wherein the application repository is remote from the client computing device.

26. The non-transitory computer-readable storage medium of claim 24, wherein performing the update comprises installing the retrieved selected application on the client computing device.

27. The non-transitory computer-readable storage medium of claim 24, wherein the installing the retrieved selected analytical services application comprises the application hub client services launching an installer to install the retrieved selected application.

28. The non-transitory computer-readable storage medium of claim 23, wherein the input received via the user interface is indicative of selection of a user interface element of the user interface for the selected application.

29. The non-transitory computer-readable storage medium of claim 23, further storing instructions for determining whether a version of the selected application is a current version.

30. A non-transitory computer-readable storage medium holding computer-executable instructions that cause an application hub computing device to perform the following: transmitting a user login user interface to a client computing device from an application hub running on the application hub computing device, wherein the user login user interface prompts a user to provide credentials to login to an application hub; receiving at the application hub the credentials from the client computing device; sending the credentials from the application hub to an authentication service; receiving an indication at the application hub that the user has been authenticated; and granting access to the user to execute one or more applications for an analytical services platform via the application hub where the user is not required to again authenticate to execute the one or more services applications.

Description:
APPLICATION HUB FOR APPLICATIONS FOR AN ANALYTICAL SERVICES

PLATFORM

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of and priority to U.S. Provisional Patent Application No. 62/913,603, filed on October 10, 2019, the entire contents of which is hereby incorporated by reference.

BACKGROUND

[0002] Users of mass spectrometry systems and liquid chromatography systems have to contend with a disjointed landscape of software tools. There may be separate tools for the different types of systems. Moreover, there may be separate software tools for each type of functionality, such as data acquisition, data processing, visualization, reporting and compliance. In addition, a user must separately login to each of the tools to gain access to the tools.

SUMMARY

[0003] There is a need for an integrated solution for the software tools for analytical devices such as mass spectrometry and liquid chromatography devices. The exemplary embodiments attempt to address this need.

[0004] In accordance with an exemplary embodiment, a method is performed by a client computing device. Per the method, a user interface is received at the client computing device from an application hub running on an application hub computing device. The application hub serves as a landing site where a client may launch applications for an analytical services platform on the client computing device, and the user interface identifies a selected one of the applications as not installed on the client computing device. Input is received via the user interface on the client computing device. The input indicates a request to install the selected application on the client device. Based on the received communication, the selected application is retrieved from an application repository, and the retrieved selected application is installed on the client computing device.

[0005] An application hub client may be installed on the client computing device and an application hub client services may be installed on the client computing device. The retrieving of the selected application may include sending a request to retrieve the selected application from the application hub client to the application hub client services. The retrieving of the selected application may include receiving the selected application at the application hub client services from the application repository. The installing of the selected application may be initiated by the application hub client services. The application hub client services may have administrative privileges on the client computing device.

[0006] In accordance with an exemplary embodiment, a method is performed by a client computing device. In this method, a user interface is received from an application hub running on the application hub computing device at a client computing device. The application hub serves as a landing site where a client via the client computing device launches applications for an analytical services platform. The user interface identifies a selected application as needing to be updated. Based on input received via the user interface at the client computing device, an update to the selected application is obtained. The update of the selected application on the client computing device is performed as a background process.

[0007] An application hub client services may be installed on the client computing device. The obtaining of the update may include the application hub client services retrieving an updated version of the selected application from an application repository. The application repository may be remote from the client computing device. Performing the update may include installing the retrieved selected application on the client computing device. The installing of the retrieved selected application may include the application hub client services launching an installer to install the retrieved selected application. The input received via the user interface may be indicative of selection of a user interface element of the user interface for the selected application. The method may further include determining whether a version of the selected application is a current version.

[0008] In accordance with an exemplary embodiment, a method is performed on an application hub computing device. Per this method, a user login user interface is transmitted to a client computing device from an application hub running on the application hub computing device. The user login user interface prompts a user to provide credentials to login to an application hub. The credentials are received at the application hub from the client computing device. The credentials are sent from the application hub to an authentication service. An indication is received at the application hub that the user has been authenticated. Access is granted to the user to execute one or more applications for an analytical services platform via the application hub where the user is not required to again authenticate to execute the one or more applications.

[0009] An authorization code may be requested, and an authorization code may be received in response to the request. An application may be launched, and the authorization code may be to an application repository.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 depicts a block diagram of an environment suitable for practicing exemplary embodiments.

[0011] Figure 2A depicts a block diagram of an illustrative client computing device.

[0012] Figure 2B depicts a block diagram of an illustrative server computing device.

[0013] Figure 3 depicts a block diagram of illustrative components of an application hub. [0014] Figure 4 depicts a flowchart of steps that may be performed for a user to login to an application hub in exemplary embodiments.

[0015] Figure 5 depicts an illustrative login user interface for an application hub.

[0016] Figure 6 depicts actions that may be taken to display applications on an application hub user interface in exemplary embodiments.

[0017] Figure 7 depicts an illustrative user interface for an application hub wherein an application is installed and another application is uninstalled.

[0018] Figure 8A depicts a user interface illustrating the changing appearance of an application icon to indicate that the installation of the application is underway.

[0019] Figure 8B depicts the user interface of Figure 8A after installation of the previously uninstalled application is completed.

[0020] Figure 9 depicts actions that may be taken to install an application on a client computing device in exemplary embodiments.

[0021] Figure 10 depicts actions that may be taken to launch an application in exemplary embodiments.

[0022] Figure 11A depicts an illustrative icon for an application that needs to be updated. [0023] Figure 11B depicts a changing appearance of the icon of Figure 11A to reflect that an update of the application is underway.

[0024] Figure 12 depicts a flowchart of the steps that may be performed to determine is an update is needed for an application in exemplary embodiments. [0025] Figure 13 depicts a block diagram of an environment for logging log messages for applications in an exemplary embodiment.

DETAILED DESCRIPTION

[0026] Exemplary embodiments described herein provide an application hub for applications of an analytical services platform. The analytical services platform may receive data from analytical devices and provide services, such as but not limited to filtering, processing and visualizing of the data. The application hub may act as a landing site for users on client devices to launch applications for the analytical services platform. In some exemplary embodiments, the application hub may provide a web page to the client computing devices over a network. The web page may provide a user interface listing applications for the analytical services platform. Users may launch the applications through the user interface, such as by selecting user interface elements provided for the applications.

[0027] The user interface may identify what applications have been installed on a client device and what applications have not been installed. For example, visual cues may be provided on the user interface that distinguish between installed applications and uninstalled applications. This provides a quick and easy way for a user to know what applications are available for installation. The user interface may also provide a mechanism for a user to install an application that is uninstalled on a client computing device. In some exemplary embodiments, icons are provided for each of the applications and taking an action, such as selection of the icon or otherwise activating the icon, initiates installation of the application on the client computing device.

[0028] The user interface may also identify when an application needs to be upgraded. For instance, visual cues of the need for an upgrade may be provided. An icon associated with the application may have a modified appearance indicating that an upgrade is needed. The need for an upgrade may be automatically determined without the need for user intervention by comparing a version number of the application installed on the client device with a version number of the application that is available for installation. A user may initiate the upgrade of an application through the user interface. In one instance, a user selects an icon associated with the application to initiate the upgrade. The upgrade is realized by installing the upgraded version of the application on the client device.

[0029] Since the application hub is intended to be a single landing site for all applications, a single login may be provided. In particular, a user may be prompted to provide their credentials when seeking access to the application hub. Once the user is successfully logged in, the user may not need to provide credentials again to launch the applications shown on the user interface. This simplifies the process of launching applications by eliminating the need for the user to login or otherwise demonstrate credentials for each application.

[0030] Figure 1 shows an example of an environment 100 that may be suitable for practicing exemplary embodiments. The depiction is intended to be illustrative and not limiting. The environment 100 may include analytical devices 102 and 104. The analytical devices may take many different forms. Examples of analytical devices include mass spectrometry (MS) devices, liquid chromatography (LC) devices, an LC-MS system, a mass analyzer system, an ion mobility spectrometer (IMS) system, a high-performance liquid chromatography (HPLC) system, a ultra-performance liquid chromatography (UPLC®) system, a ultra-high performance liquid chromatography (UHPLC) system, a solid-phase extraction system, a sample preparation system, a heater (for example, a column heater), a sample manager, a solvent manager, an in vitro device (IVD), combinations thereof, components thereof, variations thereof and more generally devices that perform analytical services.

[0031] In exemplary embodiments, an analytical service may include a process and any process information (for instance, parameters, settings, thresholds, and/or the like) that are required to perform a process, method, analysis, test, and/or the like on an analytical device. In some embodiments, an analytical service may be developed, refined, tuned, and/or the like using a primary analytical system.

[0032] The analytical devices 102 and 104 may be present in a laboratory environment in many instances. A laboratory network device 106 may be provided to interface with the analytical devices 102 and 104 over a network, such as a local area network (LAN). The laboratory network device 106 facilitates communication with the analytical devices and enables data gathered from the analytical devices 102 and 104 to be passed on to the network 112 and accessible by client computing device 108 and 110. The client computing devices may be workstations, desktop computers, laptop computers or other types of computing devices. Users of the client devices 108 and 110 may communicate over the network 112 with a server 114. The server 114 may be a server computing device and may run computer program code for analytical services platform 116 and application hub 118. The analytical services platform 116 and the application hub 118 need not be resident on a single server 114. In addition, the analytical services platform 116 may be spread across multiple servers a in some instances. The network 112 may be a wide area network (WAN), such as the internet, and may include wireless networking components as well as har-wired networking components.

[0033] The analytical services platform 116 may perform analytical services on data obtained from the analytical devices 102 and 104. The analytical services platform 116 may provide data acquisition, processing, visualization, reporting, and configurable compliance tools within a networked environment. One non-limiting example of an analytical services platform is the UNIFI scientific information systems platform from Waters Corporation of Milford, Massachusetts.

[0034] As was discussed above, the applications hub 118 serves as a central hub where users may locate and execute applications on client computing devices for 108 and 110 for the analytical services platform 116.

[0035] Figure 2A depicts a more detailed view of an illustrative client computing device 200. The client computing device includes a processor 202. The processor 202 may take many different forms. For example, the processor 202 may include a central processing unit (CPU) realized as an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device (PLD), a digital signal processor (DSP), field programmable gate array (FPGA), a system-on-a-chip (SoC) or electric circuitry. The processor 202 may include multiple cores. The processor 202 may executes computer-executable instructions stored in the storage 204.

[0036] The storage 204 may include one or more types of storage devices. For instance, the storage 204 may include various types of computer-readable storage media and/or systems in the form of one or more higher speed memory units, such as read-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, an array of devices such as Redundant Array of Independent Disks (RAID) drives, solid state memory devices (e.g., USB memory, solid state drives (SSD) and any other type of storage media suitable for storing information. In addition, storage 204 may include various types of computer-readable storage media in the form of one or more lower speed memory units, including an internal (or external) hard disk drive (HDD), a magnetic floppy disk drive (FDD), and an optical disk drive to read from or write to a removable optical disk (e.g., a CD-ROM or DVD), a solid state drive (SSD), and/or the like.

[0037] The storage 204 may hold data, documents and computer programs. In the depiction in Figure 2A, the storage stores applications 208 and components 206 and 208 that relate to the application hub. Specifically, the components include an application hub client that serves as a client of the application hub and an application hub client services 206 that provides client services and has administrative privileges. These components 206 and 208 will be described in more detail below.

[0038] The client computing device 200 may include a display device 212, such as a liquid crystal display (LCD) or a light emitting diode (LED) display, or the like. The client computing device 200 may include a network interface 216 for interfacing with a network and input devices 214, such as a keyboard, mouse, thumbpad, etc.

[0039] Figure 2B shows a more detailed view of an illustrative server computing device 240. The server computing device 240 may include a processor 240. The processor may take numerous different forms, such as those described above for processor 202. The server computing device 240 may include a network interface 244 for connecting to a network, like network 112 (Figure 1). The server computing device 240 may include storage 246. The storage may include different types of storage components and/or devices like those describe above for storage 204. The storage 246 is shown storing application store 250 and application hub server 248. As will be described in more detail below, the application store is an application repository, and the application hub server 248 is a server component for the application hub. The storage may also store the analytical services platform 252.

[0040] The application hub may have server-side components and client-side components. The application hub may follow a client/server paradigm where the server serves the client. Figure 3 shows a diagram 300 depicting an illustrative configuration. The diagram 300 shows a client computing device 302 and a server computing device 304. Application hub client 306 and application hub client services 308 are on the client computing device. Application hub server 310 and application store API are on the server computing device 304.

[0041] As was mentioned above, the application hub facilitates a single login for a user for multiple applications. Figure 4 shows a flowchart 400 of steps that may be performed for such a single login functionality. Initially, the application hub may transmit a login interface to the client computing device (402). The user interface may, in some embodiments, be part of a webpage transmitted as an HTML file, XML file or in another format for display at the client computing device. Figure 5 shows an example of an illustrative login user interface 500. A text box 502 is provided for a used to enter a username. A text box 504 is provided for a user to enter a password. Once the username and password have been entered, a login button 506 may be activated (such as by clicking on the login button 506). The credentials (i.e., username and password) are then sent and received (404) and send to an identity server (406). The identity server may be resident on the server computing system and provided as part of the analytical services platform. The identity server determines if a proper username and password were entered (408). If valid credentials were provided, access to the application hub is granted and an access token is provided to the client (410). The access token may be subsequently submitted to show access rights when applications are launched.

If valid credentials are not provided, access to the application hub is denied (412).

[0042] A number of different steps must be taken in order for the application hub to display a user interface with a list of applications for the analytical services platform to be displayed. Figure 6 shows a diagram of what steps may be performed. Initially, the user 602 requests 604 to load the applications. A first request 608 may be made to get a list of the applications suitable for the user but is returned as unauthorized 612 as the user is not logged in. The user logs in and the credentials are sent to the identity server 616 as mentioned above. An access token is returned 618 from the identity server 616 in the case where valid credentials were provided. Another request 628 to get applications may be submitted to the application hub server 610. A request 622 to get the list of applications from the app store 624 may be sent in response. The app store 624 returns the list of applications 626 that are available and suitable for the user. The list may include information for each application, such as application ID, application name and icon. The list may be transmitted as a JavaScript Object Notation (JSON) file in some exemplary embodiments. The information in the list may then be sent 628 to the client and used to display the applications in the list of the application hub user interface 630. The applications may include applications installed on the client computing device as well as applications installed on a server and accessible at the client computing device, such as through a web browser over a web interface.

[0043] Figure 7 shows an example of a user interface 700 displaying applications that are available to the user. In this instance, a first icon 702 is displayed for a console demo application and a second icon 704 is displayed for the platform administration center. The names of these applications and the information shown in the icons may be derived from the JSON file list of applications. The background of the icon 702 is filled in with a solid color to denote that the console demo application has already been installed on the client computing device and that are not server installed. A list of installed applications may be maintained and used to determine if an application has been installed or not. In contrast, the background of icon 704 is transparent to indicate that the platform administration center application is available but has not yet been installed. Other visual cues may be used to distinguish installed application from uninstalled applications. For instance, different colors for the icons may be used, the shapes of the icons may vary, text may be provided in the icons to identify an application as installed or uninstalled, etc.

[0044] A user may initiate installation of an application by taking a designated action via the user interface, such as by, for example, pointing a pointer at a cursor at an icon and clicking may trigger installation of an application. It should be appreciated that other actions to select the application icon or activate the icon may be used. Moreover, user interface elements, such as menus and activatable control may be used to initiate application installation. In the example of Figure 7, clicking on the icon 704 may initiate the installation of the platform application console. Once the icon 704 is selected, the appearance of the icon may be changed to be like that of icon 802 in the user interface shown in Figure 8A to indicate that installation is in progress. The icon 802 for the console demo does not change. Once the installation is complete, the icon 804 (Figure 8B) changes to have a solid background rather than a transparent background to indicate that the platform administration console has been installed.

[0045] Figure 9 shows a diagram 900 depicting steps that may be taken to install an application in an exemplary embodiment. The installation may be initiated when a user 902 clicks 904 on an icon for an uninstalled application displayed as part of the application hub user interface 906 on the client computing device 904. As was mentioned above, in some exemplary embodiments, other actions via the user interface may trigger installation of an uninstalled application. In response to the clicking on the icon of the uninstalled application, the application ID 908 for the uninstalled application is provided to the application hub client service administrator 910. The hub client services 910 initiates a request 912 to get an installer program for the uninstalled application with the specified application ID via the Appstore API. The installer is received 916 by the application hub client services 910. The application is then installed locally on the client computing device using the installer and the manifest of installed applications is updated 918. The installed application is displayed as installed 920 in the application hub user interface 922.

[0046] Once the application has been installed, it may be launched for use by the user on the client computing device. Figure 10 depicts actions taken to launch an installed application. A user 1002 may take an action, such as clicking on an installed application icon 1004 of the application hub user interface 1006, to initiate the launching of the installed application. A request 1008 is sent to get details regarding the application from the Appstore 1010. These details are returned 1012 from the Appstore 1010 and are used in formulating a request for an authorization code for the application 1014 that is sent to the identity server 1016. If the user is authorized, the identity server returns 1018 an authorization code for the application. The application is launched, and the authorization code is passed 1020 to the Appstore 1022. The Appstore 1022 requests an access token 1024, that is passed 1026 to the Appstore 1022 from the identity server 1016. The authorized services are called using the access token 1028. [0047] As was mentioned above, the user interface from the application hub may indicate that an installed application needs an update. Figure 11A provides an example of an icon 1102 on the application hub user interface 1100 indicating that the console demo application needs to be updated. The icon 1102 includes the text “Upgrade Needed” to provide a visual clue that an update is warranted. Taking an action such as clicking on the icon 1102 may initiate the updating of the application. Other user interface actions may initiate the updating in some embodiments. The icon 1102 may change appearance such as shown in Figure 11B to indicate that the update is in progress. The update is realized by installing the updated version of the application, such as was described above relative to Figure 9.

[0048] The displaying of an icon indicating that an upgrade is needed may be prompted by a user selecting the icon or by a process performed regularly to ensure that all applications on the client computing device are current. Figure 12 provides a flowchart 1200 of steps that may be performed to determine if an installed application on the client computing device is current or not. Version information for the installed application on the client computing device is obtained (1202). In some instances, this may entail looking at product codes and upgrade codes for the installed applications. This information may be associated with the manifest in some cases. The version information may also be obtained for the version available at the Appstore (1204). The version information regarding the applications are compared and a determination is made whether an update of the installed application is needed (1206). If an update is needed, the icon or other user interface element may be modified to note that an update is needed (1208). If no update is needed, no further action is needed.

[0049] The exemplary embodiments may support logging of event information from the applications. As shown in Figure 13, an environment 1300 includes the applications: application hub client 1302, application hub clients service administrator 1304 and application hub server 1306, as described above. A logger 1308 logs events that occur with the applications 1302, 1304 and 1306. The logger 1308 may in some embodiments be realized as a logging library, such as Serilog, that provides the functionality of logging events, filtering and forwarding the log entries regarding events to designated locations. Other logging tools may be used. The logger 1308 logs the events into logs 1310. Separate logs may be provided for each application. The log entries may be viewed using log viewing tools, such as Glogg or BareTail, for example.

[0050] The logger 1308 may allow the customization of the logging on a per application basis. The logging may be customized to specify the level of logging. The level specifies how much information and what type of information regarding events is logged. This table provides information regarding what may be appropriate log levels and provides examples:

[0051] The messages may include time stamps, level information and textual information regarding the event. The logger 1308 may log informational messages debug messages and error messages for the applications in an exemplary embodiment. The informational messages provide information regarding events in the application, whereas the error messages provide information regarding errors that occur in the application. As described above, the debug messages provide diagnostic information and low level control logic.

[0052] Here are some examples of information and error log messages for the application hub client 1302: Client Information Messages:

• Information: "Application is starting"

• Information: "Application has exited"

• Information: "AppCIick() called with app id <applicationID>"

• Information: "LaunchDefaultBrowser() called with URL <URL>"

• Information: "Process <ProcessName> has been started"

• Information: "Requested url <Address>"

Client Error Messages :

• Error: "<AppConfigErrors>" // Failed to read application config

• Error: "Application terminated <Exception details>"

• Error: "Unhandled Exception <Exception details>" //Unhandled Exception on Startup of the waters_connect Hub

• Error: "Communication with application hub failed <Exception details>"

• Error: "Clicked on unknown application type <applicationID>"

• Error: "LaunchDefaultBrowser() error: <Exception details>"

• Error: "AppCIick() error: <Exception details> on desktop app"

• Error: "AppCIick() error: <Exception details> on web app"

• Error: "Failed to start process <FileOrUrl> <Exception details>"

• Error: "Failed to start process <processName> <Exception details>"

• Error: "AppsPageController.GetApps() error: <Exception details>"

• Error: "Cannot display page; <Exception details>"

• Error: "Requested url: <AbsoluteUri> is not allowed!"

[0053] Here are some examples of the information and error messages that may be logged for the application hub client services:

Application Hub Client Services Information Messages:

• Information: "Application <applicationID> install status: <IsInstalled>"

• Information: "Starting installing application: <applicationID>"

• Information: "Application <applicationID> install status: <IsInstalled>"

• Information: "Gets the list of installed applications to display in the client"

• Information: "Install app (if not available) and return app details for app id:

<applicationID> " • Information: "Application is starting"

• information: "Starting server"

• Information: "Configuring services"

• Information: "Configuring Server"

• Warning: "Server is running in developer mode"

Application Hub Client Services Error Messages:

• Error: "Call to AppStore endpoint GetApplications failed with status: <AppStore Response StatusCode> <Exception details> <Exception details>"

• Error: "Call to AppStore endpoint GetWebApplication for <applicationID> failed with status: <AppStore Response StatusCode> <Exception details>"

• Error: "Call to AppStore endpoint GetDesktopApplication for <applicationID> failed. <Exception details>"

• Error: "Call to AppStore endpoint GetDesktopApplication for <applicationID> failed with status: <AppStore Response StatusCode> <Exception details>"

• Error: "The path to the installer is not correct <instaIIerPath>"

• Error: "The installation failed for <instaIIerPath> <Exception details>"

• Error: "Unable to download installer for app <applicationID> from AppStore. Returned <instaIIerResponseStatusCode>"

• Error: "Error in GetApplications <Exception details>"

• Error: "Error: " AppStore is not available. Contact your system administrator. <Exception details>"

• Error: "Instalation error. Cannot install <AppIicationName> on the hub. Contact your system administrator. <Exception details>"

• Error: "InternalServerError <Exception details>"

• Error: InternalServerError AppStore is not available. <Exception details>"

• Error: "Failed Get the web application: <applicationID> <Exception details>"

• Error: "<AppConfigErrors>" // Failed to read application config

[0054] Here are some examples of the information and error messages that may be logged for the application hub server: Application Hub Server information Messages:

• information: "Application is starting"

• Information: "Starting server"

• Information: "Configuring services"

• Information: "Configuring Server"

• Warning: "Server is running in developer mode"

Application Hub Server Error Messages:

• Error: "Failed to get localized resource. File not found"

• Error: "Failed to get localized resource; <Exception details>"

• Error: "<AppConfigErrors>" // Failed to read application config.

[0055] The resulting logs 1310 may be monitored to obtain ongoing information regarding the applications 1302, 1304 and 1306. Moreover, alerts may be triggered for errors based on the logging information, in the logs 1310 metrics may be gathered from the logging information in the logs 1310 and useful debugging information may be extracted from the logging information in the logs 1310.

[0056] Each of the logs 1310 may have a size limit, such that when the limit is reached, a new log is created automatically. In addition, there may be a limit as to the number of log files. When the limit is reached, the oldest log file may be deleted and a new one may be created.

[0057] While the present invention has been described with reference to exemplary embodiments herein, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the intended scope of the invention as defined in the appended claims.