WO2015108457A1 - Context-based methods, systems and computer program products for recommending a software application in a network operations center - Google Patents

Context-based methods, systems and computer program products for recommending a software application in a network operations center Download PDF

Info

Publication number
WO2015108457A1
WO2015108457A1 PCT/SE2014/050058 SE2014050058W WO2015108457A1 WO 2015108457 A1 WO2015108457 A1 WO 2015108457A1 SE 2014050058 W SE2014050058 W SE 2014050058W WO 2015108457 A1 WO2015108457 A1 WO 2015108457A1
Authority
WO
WIPO (PCT)
Prior art keywords
software application
operations center
network operations
user
given user
Prior art date
Application number
PCT/SE2014/050058
Other languages
French (fr)
Inventor
Farjola PECO
Hongxin LIANG
Leonid Mokrushin
Marcus GÅRDMAN
Original Assignee
Telefonaktiebolaget L M Ericsson (Publ)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget L M Ericsson (Publ) filed Critical Telefonaktiebolaget L M Ericsson (Publ)
Priority to PCT/SE2014/050058 priority Critical patent/WO2015108457A1/en
Publication of WO2015108457A1 publication Critical patent/WO2015108457A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Definitions

  • Various embodiments described herein relate to network operations centers and, more specifically, to recommending a software application for use by a user at a network operations center.
  • a Network Operations Center generally refers to one or more locations from which network monitoring and control and/or network management, is exercised over a computer, telecommunications and/or satellite network.
  • NOCs are generally implemented by business organizations, public utilities, universities and/or government agencies that oversee complex network environments that may desire little or no down time. Organizations may operate more than one NOC to manage different networks and/or to provide geographic redundancy in the event of one center becoming unavailable. NOCs may analyze problems, perform troubleshooting, communicate with site technicians and/or other NOCs, and/or track problems through resolutions. As such, primary responsibilities of NOC personnel may include network monitoring, incident response, communications management and/or reporting.
  • Ericsson presently manages telecommunications networks that serve more than 950 million subscribers worldwide, and supports networks that serve more than 2.5 billion subscribers.
  • Ericsson delivers services locally in ten regions and remotely from four NOCs, also referred to as "Global Service Centers", located in Romania, India, China and Mexico. More than 15,000 Ericsson employees presently work at the Global Service Centers worldwide and this number may continue to grow.
  • Various embodiments described herein can provide methods of recommending a software application to a given user at a network operations center.
  • a determination is made of a respective normalized historical frequency of switching by at least one user at the network operations center among respective pairs of software applications that were previously used by the at least one user at the network operations center.
  • a software application that is presently being used by a given user at a network operations center is identified.
  • At least one of the software applications is recommended for future use by the given user at the network operations center based on the respective normalized historical frequency of switching by the at least one user at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user.
  • the at least one user may consist of the given user in some embodiments, and in other
  • the at least one user may comprise users other than the given user and need not include the given user.
  • various embodiments described herein can provide a context- based recommendation of a software application for future use by a given user at a network operations center.
  • the context may be based on the presently running application and/or a workflow in which the given user is engaged. Accordingly, the time that used to find and open the proper application by a user and a network operations center may be reduced.
  • a present task that is presently being performed by the given user at the network operations center is identified.
  • the recommending may then be further based on the software application that is presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
  • the determining may comprise building a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices.
  • the recommending may comprise recommending at least one of the software applications for future use by the given user at the network operations center based on the respective weights between a vertex that represents the software application presently being used and respective vertices that are adjacent thereto.
  • the determination of a plurality of software applications switch flows may comprise determining a respective normalized weight that is associated with a respective pair of adjacent software applications in the respective one of the software application switch flows.
  • the recommending may be further based upon the normalized weight that is associated with the software application presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
  • a listing of a plurality of software applications may be presented in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user.
  • the network operations center may comprise a network operations center processor and a software application recommender that runs on the network operations center processor and is configured to recommend a software application to a user at a network operations center, according to any of the embodiments described herein.
  • Figure 1 is a block diagram of a network operations center according to various embodiments described herein.
  • Figure 2 is a flowchart of operations that may be performed by a software application recommender according to various embodiments described herein.
  • Figure 3 is a flowchart of operations that may be performed by a software application recommender according to various other embodiments described herein.
  • Figure 4 is a flowchart of operations that may be performed by a software application recommender according to yet other embodiments described herein.
  • Figure 5 is a flowchart of operations that may be performed by a software application recommender according to still other embodiments described herein.
  • Figure 6 is a flowchart of operations that may be performed to recommend at least one software application when an equal normalized hierarchical frequency of switching is present according to various embodiments described herein.
  • Figure 7 illustrates a graphical display including a list of recommend software applications according to various embodiments described herein.
  • Figure 8 illustrates a graphical example of a normalized historical frequency of switching according to various embodiments described herein.
  • Figure 9 illustrates an example of modes and switch flows according to various embodiments described herein.
  • Figure 10 illustrates an example of a switch flow that may be utilized according to various embodiments described herein.
  • Figure 11 is a block diagram of a workflow at a networking operations according to various embodiments described herein.
  • Figure 12 is an example of a switch flow that may be deduced from the workflow of Figure 11 according to various embodiments described herein.
  • FIG. 13 graphically illustrates cloud storage and use of personalized recommendation models according to various embodiments described herein.
  • Various embodiments described herein can provide systems, methods and/or computer program products for recommending a software application for use by a given user at a network operations center.
  • Various embodiments described herein may arise from recognition that the applications/tools used in monitoring, controlling and managing (front office/back office) the networks of today may be variants in various steps of a well-defined process/workflow. The variance implies that a lot of time is used in finding and opening the right application at the right step of the process.
  • a list of options may be given by the application switcher.
  • Present systems generally propose a list of currently running applications sorted by a "last used first" strategy.
  • Various embodiments described herein also may arise from recognition that present approaches do not take into consideration applications that are not running yet or the usage pattern (a set of applications collaboratively used to solve a problem). Yet, in a network operation center there are well-defined workflows/processes on how to resolve an incident or manage a network. Moreover, according to various embodiments described herein, this expert knowledge may be enriched with more contextual data depending on the current step that the user is performing, making an application switcher recommender more precise. Thus, various embodiments described herein can provide context-based application switching, wherein the context may be based on a learning of application usage patterns by the given user and/or other users at the network operations center, and the context of the currently running application and/or current workflow for the given user.
  • FIG. 1 is a block diagram of Network Operations Center (NOC) 100 according to various embodiments described herein.
  • the NOC 100 may be embodied by one or more enterprise, application, personal, pervasive and/or embedded computer systems that are operable to receive, transmit, process and store data using any suitable combination of software, firmware and/or hardware, and that may be standalone or interconnected by any conventional public and/or private, real and/or virtual, wired and/or wireless network including all or a portion of the global communication network known as the Internet.
  • One or more processors 140 communicate with one or more memories 160 that may be a combination of any one or more tangible computer-readable media.
  • User input/output devices 110 for a plurality of users including a given user 110a for whom a software application will be recommended may include output devices, such as a graphical display and/or loudspeaker, and input devices, such as a keyboard, touch screen, mouse and/or microphone.
  • a "user input/output device” 110 may also be referred to herein simply as a "user”.
  • the processor 140, the memory 160 and the user input/output devices 110 may communicate with one another over one or more buses and/or using other computer architectures.
  • the user input/output devices 110 may be connected to the processor 110 directly, via a user interface 130 and/or by any conventional public and/or private, real and/or virtual wired and/or wireless network including all or a portion of the global communication network known as the Internet.
  • a network interface 150 interfaces the processor 140 with one or more networks 120 that are being managed by the network operations center 100.
  • the memory 160 may store an operating system 162 for the network operations center 100, along with a plurality of NOC software applications 170 which can be used by the users at the user input/output devices 110 and which can be subject of a recommendation according to various embodiments described herein.
  • a software application recommender 190 may be used to recommend one or more NOC software applications 170 to a given user 110a at a user input/output device 110 based on the context for the given user 110a, according to any of the embodiments described herein.
  • other NOC software applications 180 may provide other NOC functions such as network monitoring, incident response, communications management and/or reporting.
  • FIG. 2 is a flowchart of operations that may be performed by a software application recommender, such as the software application recommender 190 of Figure 1, according to various embodiments described herein.
  • a software application recommender such as the software application recommender 190 of Figure 1
  • Block 210 a determination is made of a respective normalized historical frequency of switching by at least one user 110 at a network operations center 100 among respective pairs of software applications 170 that were previously used by the at least one user 110 at the network operations center.
  • an identification is made of a software application that is presently being used by a given user 110a at the network operations center.
  • a recommendation is made of at least one of the software applications for future use by the given user 110a at the network operations center based on the respective normalized historical frequency of switching by the at least one user 110 at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user 110 that include the software application that is presently being used by the given user 110a.
  • historical frequency of switching is used as a basis for providing a recommendation of at least one software application for future use by a given user.
  • the normalized historical frequency of switching that is determined at Block 210 and used as the basis of a recommendation at Block 230 may be based on the given user's historical frequency of switching.
  • the determination at Block 210 and the recommendation at Block 230 may be based on at least one user at the network operations center, which may or may not include the given user.
  • the at least one user may consist of the given user, whereas in other embodiments, the at least one user may comprise the given user, and in yet other embodiments, the at least one user may not comprise the given user.
  • the switching may be done based on the user's own switching history in some embodiments, but in other embodiments, a given user may benefit from other users' switching history, as well. For example, a less experienced operator could benefit from a more experienced operator's switching history. In other scenarios, there may be advantages with only being dependent on a user's own switching history. Accordingly, various embodiments described herein can support advanced and novice users in the sense that some users may wish to follow the recommended application switch flow, while other users may wish to be more proactive and modify and/or improve their existing experience. In some embodiments, a user may be offered a choice or mode on which the recommendation may be based.
  • FIG 3 is a flowchart of operations that may be performed by a software application recommender, such as the software application recommender 190 of Figure 1, according to other embodiments described herein.
  • the operations at Block 210 and Block 220 may be performed.
  • operations of Block 310 are performed to determine a plurality of software application switch flows, a respective one of which represents a sequence of switching among software applications to perform a respective task at the network operations center.
  • Operations of Block 320 identify a present task that is presently being performed by the given user at the network operations center.
  • a recommendation is then made by performing the recommendation of Block 230 of Figure 2, wherein the recommendation is further based on the software application that is presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
  • FIG 4 is a flowchart of operations that may be performed by a software application recommender, such as a software application recommender 190 of Figure 1, according to various other embodiments described herein.
  • a respective normalized historical frequency of switching of Block 210 may be determined by building a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices.
  • Operations of Block 220 are then performed.
  • the recommendation of Block 230' may then be based on the respective weights between a vertex that represents the software application presently being used and respective vertices that are adjacent thereto.
  • Figure 5 is a flowchart of operations that may be performed by a software application recommender, such as the software recommender 190 of Figure 1, according to still other embodiments described herein.
  • the plurality of software application switch flows may be determined by determining a respective normalized weight that is associated with a respective pair of adjacent software applications in the respective one of the software application switch flows. Operations of Block 320 are then performed. The recommendation of Block 330' may then be further based upon the normalized weight that is associated with the software application presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
  • Figure 6 is a flowchart of operations that may be performed to recommend at least one of the software applications for future use by the given user at the network operations center based on the respective normalized historical frequency of switching by the at least one user at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user, according to various embodiments described herein, which may correspond to Block 230.
  • these operations present a listing of a plurality of the software applications for future by the given user at the network operations center in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user.
  • a determination is then made at Block 620 as to whether an equal (or approximately equal in some embodiments) normalized hierarchical frequency of switching takes place.
  • Block 620 operations are performed to determine the relative popularities based on a respective sum of the normalized historical frequency of switching by the at least one user that are associated with the respective software applications that have equal normalized hierarchical frequency of switching. On the other hand, if the normalized frequency switching is not (approximately) equal, the operations of Block 630 are bypassed.
  • Block 650 operations are performed to activate a software application from the listing of a plurality of the software applications in response to receiving selection of the software application from the listing by the given user at the network operations center.
  • Figure 7 illustrates a user input/output terminal for the given user 110a including a recommendation that is displayed, according to any of the embodiments described herein. More specifically, according to any of the embodiments described herein, the recommending of Blocks 230, 230', 330 and/or 330' may be provided by presenting a listing of a plurality of the software applications for future by the given user at the network operations center in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user, as is illustrated, for example, at Block 710.
  • Figure 7 illustrates a display of a user input/output device 110a, which may include a window or drop-down box 710 with a recommendation.
  • the window or drop-down box 710 may be displayed in response to activation of the software application recommender 190, for example by selecting
  • ALT + TAB in a Windows environment or CMD + TAB in an iOS environment As shown, the sequence in the window or drop-down box is based on the recommendation.
  • user selection of an appropriate application in the listing may activate a software application from the listing of a plurality of the software applications in response to receiving selection of the software application from the listing by the given user 110a at the network operations center.
  • Figure 8 illustrates an example of building a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices, as was described, for example, in connection with Block 210'.
  • the vertices are the software applications (A-F in this example), and directed edges are added between the software applications when a switch between them is registered.
  • the edges have weights that are automatically adjusted based on the frequency of switches between corresponding software applications. For example, if a switch between software applications A and B occurs, the weight of the edge from A to B is increased relative to the other edges coming out from A.
  • the weights of the edges are normalized by dividing by the summation of the weights of all edges (15 in Figure 8).
  • the system may continuously observe user behavior and rebuild the graph (adding more vertices and edges, and updating weights). If the user switches from application A to B, and B is not currently in the graph, a new vertex B will be added and an edge (with the weight of one divided by summation of weights) between A and B will be added also. Otherwise, if B is currently in the graph, the weight will be increased. Afterwards, all weights will be updated accordingly because of the changing of the summation. The weights will be used to generate an applications switch list as was illustrated, for example, in Figure 7. The higher the weight, the higher the rank.
  • a list of recommended applications the user is most likely to switch to may be provided, that is ordered by the application relevance.
  • software applications may be recommended by determining a respective normalized weight that is associated with a respective pair of adjacent software applications in a respective one of the software application switch flows.
  • Various embodiments described herein may be pre- trained to understand a different "mode of work" by pattern recognition. Each mode may have its own pattern. For example, as shown in Figure 9, if the user is writing slides (Block 910), he/she might spend considerable time in PowerPoint and switch between PowerPoint and some drawing tools. In other embodiments, if the user is fixing some trouble (Blocks 920 or 930), he/she might switch between different trouble shooting tools.
  • the system observes user behavior, and whenever it is able to figure out which mode the user is in, it can retrieve the corresponding graph (Blocks 940-960) and start the recommendation process. As illustrated in Figure 9, each user has multiple modes 910-930, and a mode may be associated with a graph that may be updated continuously according to user behavior.
  • a mode 910-930 need not necessarily be associated with a switch flow 940-950. Specifically, in certain modes, for example writing slides (Block 910), there may be no such workflow that is defined to guide the user how to write slides. Thus, in Figure 9, there is no switch flow associated with the writing mode 910.
  • Figure 10 illustrates a specific example of an application switch flow that may be deduced from the workflow that the given user is currently following, based on the example of Figure 8.
  • Figure 10 identifies a particular switch flow 1010 that comprises a series of successive applications A-D that are used.
  • switch flow 1010 that comprises a series of successive applications A-D that are used.
  • separate graphs can be created for different modes of work, and a graph is picked that corresponds to the current user mode.
  • Observing and clustering application usage patterns can automatically provide information about a current user mode of work.
  • Application switch flow may be deduced from a workflow that guides an NOC engineer to resolve a certain trouble.
  • a concrete example is illustrated in Figure 11, where each Block 1110-1180 represents a specific task in a sequence of tasks to solve the trouble.
  • the deduced application switch flow may be as illustrated in Figure 12.
  • Figure 12 may be derived from Figure 11 using a predefined table that maps each step of a workflow to a tool of the application switch flow. Two different steps may map to the same tool. This is why the topology of the application flow may be different from the one of the workflow.
  • the weights of the application switch flow may be set to be all equal, as shown in Figure 12.
  • switch flow does not remember state.
  • Figure 12 when standing at "Ticket Management", it can switch to either “Terminal” or “Workforce Management", and here two paths have the same weight. More generally, all edges in a switch flow may have equally the same weight, in some
  • switch flow may be used by itself to make a software application recommendation.
  • historical frequency of switching may also be used by itself to recommend a software application.
  • a combination of historical frequency of switching and switch flow may be used to recommend an application.
  • W a ⁇ W G + ⁇ ⁇ W SF .
  • W is the computed weight of an edge
  • WG is weight of the edge in the graph of Figure 8
  • W SF is the weight of the edge in the switch flow of Figure 10
  • a and ⁇ are coefficients. The coefficients may be used to assign different importance to different parts. For example, if the switch flow shall be strictly followed, ⁇ will be assigned with a much higher value than a and vice versa.
  • a can be predefined by the system, for example always with value " 1 ", and ⁇ can be associated with the workflow, meaning that if the workflow is very important, ⁇ can be assigned with a very large value.
  • the computer weight of edge A->D might be calculated by 1 * 4/15 + 10 * 1/3, where a is 1 and ⁇ is 10.
  • the recommendation may be based on the following formula:
  • W is a total weight of a software application that is recommended for future use
  • a is a coefficient representing relative importance of the normalized historical frequency of switching
  • WG is the normalized frequency of use for the software application that is recommended for future use
  • is a coefficient representing relative importance of the application switch flow
  • W SF is the normalized weight in the software application switch flow that is associated with the software application that is recommended for future use.
  • the edges from node A to nodes C and D have the same weight (4/15).
  • the relative popularities may be determined based on a respective sum of the normalized historical frequency of switching by the at least one user that are associated with the respective software applications that have equal normalized hierarchical frequency of switching, as was illustrated at Block 330.
  • the weight of A->D and A->C is the same.
  • all incoming edges to D and C may be examined. In this case, E->D and D->C.
  • the summation of D's incoming edges' weight is lower than that of C (1/15 vs. 2/15), which means C is "more popular" than D, and the system may recommend C over D.
  • a given user input/output device such as a desktop computer
  • a given user may be shared among many users.
  • a given user may use more than one user input/output device, such as a desktop computer, a laptop computer or a smart phone.
  • Various embodiments illustrated in Figure 13 can use cloud storage to store and synchronize the graphs across all devices used by a user.
  • the personalized recommendation model 1320 of the context-based application switcher may be automatically stored and synced with a network-connected repository (cloud computing node) 1310, for continuous usage and context analysis as well as backup.
  • cloud storage enables streamlined transitioning of the personalized recommendation model 1320 from a first (source) device 1330 to the cloud storage 1310 and to a target (new) second device 1340.
  • embodiments described herein may be embodied as a method, data processing system, and/or computer program product. Furthermore, embodiments may take the form of a computer program product on a tangible computer readable storage medium having computer program code embodied in the medium that can be executed by a computer.
  • the computer readable media may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python or the like, conventional procedural
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computer environment or offered as a service such as a Software as a Service (SaaS).
  • LAN local area network
  • WAN wide area network
  • SaaS Software as a Service
  • These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a mechanism for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer program instructions may also be stored in a computer readable medium that when executed can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions when stored in the computer readable medium produce an article of manufacture including instructions which when executed, cause a computer to implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer, other programmable instruction execution apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatuses or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

Abstract

A software application is recommended to a given user at a network operations center based upon a normalized historical frequency of switching by at least one user at the network operations center among pairs of software applications that were previously used by the at least one user at the network operations center. The recommendation may also be based on software application switch flows in performing a task at the network operations center.

Description

CONTEXT-BASED METHODS, SYSTEMS AND COMPUTER PROGRAM PRODUCTS FOR RECOMMENDING A SOFTWARE APPLICATION IN A NETWORK OPERATIONS CENTER
TECHNICAL FIELD
[0001] Various embodiments described herein relate to network operations centers and, more specifically, to recommending a software application for use by a user at a network operations center.
BACKGROUND
[0002] A Network Operations Center (NOC) generally refers to one or more locations from which network monitoring and control and/or network management, is exercised over a computer, telecommunications and/or satellite network. NOCs are generally implemented by business organizations, public utilities, universities and/or government agencies that oversee complex network environments that may desire little or no down time. Organizations may operate more than one NOC to manage different networks and/or to provide geographic redundancy in the event of one center becoming unavailable. NOCs may analyze problems, perform troubleshooting, communicate with site technicians and/or other NOCs, and/or track problems through resolutions. As such, primary responsibilities of NOC personnel may include network monitoring, incident response, communications management and/or reporting.
[0003] For example, Ericsson presently manages telecommunications networks that serve more than 950 million subscribers worldwide, and supports networks that serve more than 2.5 billion subscribers. To meet the needs of this large number of subscribers, Ericsson delivers services locally in ten regions and remotely from four NOCs, also referred to as "Global Service Centers", located in Romania, India, China and Mexico. More than 15,000 Ericsson employees presently work at the Global Service Centers worldwide and this number may continue to grow. SUMMARY
[0004] Various embodiments described herein can provide methods of recommending a software application to a given user at a network operations center. A determination is made of a respective normalized historical frequency of switching by at least one user at the network operations center among respective pairs of software applications that were previously used by the at least one user at the network operations center. A software application that is presently being used by a given user at a network operations center is identified. At least one of the software applications is recommended for future use by the given user at the network operations center based on the respective normalized historical frequency of switching by the at least one user at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user. The at least one user may consist of the given user in some embodiments, and in other
embodiments the at least one user may comprise users other than the given user and need not include the given user.
[0005] Accordingly, various embodiments described herein can provide a context- based recommendation of a software application for future use by a given user at a network operations center. The context may be based on the presently running application and/or a workflow in which the given user is engaged. Accordingly, the time that used to find and open the proper application by a user and a network operations center may be reduced.
[0006] In some embodiments, a determination also is made of a plurality of software application switch flows, a respective one of which represents a sequence of switching among software applications to perform a respective task at the network operations center. A present task that is presently being performed by the given user at the network operations center is identified. The recommending may then be further based on the software application that is presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
[0007] In some embodiments, the determining may comprise building a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices. In these embodiments, the recommending may comprise recommending at least one of the software applications for future use by the given user at the network operations center based on the respective weights between a vertex that represents the software application presently being used and respective vertices that are adjacent thereto.
[0008] Moreover, the determination of a plurality of software applications switch flows may comprise determining a respective normalized weight that is associated with a respective pair of adjacent software applications in the respective one of the software application switch flows. The recommending may be further based upon the normalized weight that is associated with the software application presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
[0009] In any of the above-described embodiments, a listing of a plurality of software applications may be presented in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user.
[0010] It will be understood that various embodiments have been described above in connection with methods of recommending a software application to a user at a network operations center. However, various other embodiments described herein can provide a computer program product that can recommend a software application to a user at a network operations center, according to any of the embodiments described herein.
[0011] Moreover, various other embodiments described herein can provide a network operations center. The network operations center may comprise a network operations center processor and a software application recommender that runs on the network operations center processor and is configured to recommend a software application to a user at a network operations center, according to any of the embodiments described herein.
[0012] It is noted that aspects described herein with respect to one embodiment may be incorporated in different embodiments although not specifically described relative thereto. That is, all embodiments and/or features of any embodiments can be combined in any way and/or combination. Moreover, other systems, methods, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional systems, methods, and/or computer program products be included within this description, be within the scope of the present disclosure, and be protected by the accompanying claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Figure 1 is a block diagram of a network operations center according to various embodiments described herein.
[0014] Figure 2 is a flowchart of operations that may be performed by a software application recommender according to various embodiments described herein.
[0015] Figure 3 is a flowchart of operations that may be performed by a software application recommender according to various other embodiments described herein.
[0016] Figure 4 is a flowchart of operations that may be performed by a software application recommender according to yet other embodiments described herein.
[0017] Figure 5 is a flowchart of operations that may be performed by a software application recommender according to still other embodiments described herein.
[0018] Figure 6 is a flowchart of operations that may be performed to recommend at least one software application when an equal normalized hierarchical frequency of switching is present according to various embodiments described herein.
[0019] Figure 7 illustrates a graphical display including a list of recommend software applications according to various embodiments described herein.
[0020] Figure 8 illustrates a graphical example of a normalized historical frequency of switching according to various embodiments described herein.
[0021] Figure 9 illustrates an example of modes and switch flows according to various embodiments described herein.
[0022] Figure 10 illustrates an example of a switch flow that may be utilized according to various embodiments described herein.
[0023] Figure 11 is a block diagram of a workflow at a networking operations according to various embodiments described herein.
[0024] Figure 12 is an example of a switch flow that may be deduced from the workflow of Figure 11 according to various embodiments described herein.
[0025] Figure 13 graphically illustrates cloud storage and use of personalized recommendation models according to various embodiments described herein. DETAILED DESCRIPTION
[0026] Various embodiments described herein can provide systems, methods and/or computer program products for recommending a software application for use by a given user at a network operations center. Various embodiments described herein may arise from recognition that the applications/tools used in monitoring, controlling and managing (front office/back office) the networks of today may be variants in various steps of a well-defined process/workflow. The variance implies that a lot of time is used in finding and opening the right application at the right step of the process. Presently, when a user switches between applications (opened or not yet opened) on a mobile device and/or desktop, a list of options may be given by the application switcher. Present systems generally propose a list of currently running applications sorted by a "last used first" strategy.
[0027] Various embodiments described herein also may arise from recognition that present approaches do not take into consideration applications that are not running yet or the usage pattern (a set of applications collaboratively used to solve a problem). Yet, in a network operation center there are well-defined workflows/processes on how to resolve an incident or manage a network. Moreover, according to various embodiments described herein, this expert knowledge may be enriched with more contextual data depending on the current step that the user is performing, making an application switcher recommender more precise. Thus, various embodiments described herein can provide context-based application switching, wherein the context may be based on a learning of application usage patterns by the given user and/or other users at the network operations center, and the context of the currently running application and/or current workflow for the given user.
[0028] Figure 1 is a block diagram of Network Operations Center (NOC) 100 according to various embodiments described herein. The NOC 100 may be embodied by one or more enterprise, application, personal, pervasive and/or embedded computer systems that are operable to receive, transmit, process and store data using any suitable combination of software, firmware and/or hardware, and that may be standalone or interconnected by any conventional public and/or private, real and/or virtual, wired and/or wireless network including all or a portion of the global communication network known as the Internet. One or more processors 140 communicate with one or more memories 160 that may be a combination of any one or more tangible computer-readable media. User input/output devices 110 for a plurality of users including a given user 110a for whom a software application will be recommended, may include output devices, such as a graphical display and/or loudspeaker, and input devices, such as a keyboard, touch screen, mouse and/or microphone. A "user input/output device" 110 may also be referred to herein simply as a "user". The processor 140, the memory 160 and the user input/output devices 110 may communicate with one another over one or more buses and/or using other computer architectures. The user input/output devices 110 may be connected to the processor 110 directly, via a user interface 130 and/or by any conventional public and/or private, real and/or virtual wired and/or wireless network including all or a portion of the global communication network known as the Internet. A network interface 150 interfaces the processor 140 with one or more networks 120 that are being managed by the network operations center 100.
[0029] The memory 160 may store an operating system 162 for the network operations center 100, along with a plurality of NOC software applications 170 which can be used by the users at the user input/output devices 110 and which can be subject of a recommendation according to various embodiments described herein. A software application recommender 190 may be used to recommend one or more NOC software applications 170 to a given user 110a at a user input/output device 110 based on the context for the given user 110a, according to any of the embodiments described herein. Finally, other NOC software applications 180 may provide other NOC functions such as network monitoring, incident response, communications management and/or reporting.
[0030] Figure 2 is a flowchart of operations that may be performed by a software application recommender, such as the software application recommender 190 of Figure 1, according to various embodiments described herein. Referring to Figure 2, at Block 210, a determination is made of a respective normalized historical frequency of switching by at least one user 110 at a network operations center 100 among respective pairs of software applications 170 that were previously used by the at least one user 110 at the network operations center. At Block 220, an identification is made of a software application that is presently being used by a given user 110a at the network operations center. At Block 230, a recommendation is made of at least one of the software applications for future use by the given user 110a at the network operations center based on the respective normalized historical frequency of switching by the at least one user 110 at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user 110 that include the software application that is presently being used by the given user 110a.
[0031] Accordingly, in Figure 2, historical frequency of switching is used as a basis for providing a recommendation of at least one software application for future use by a given user. In some embodiments, the normalized historical frequency of switching that is determined at Block 210 and used as the basis of a recommendation at Block 230 may be based on the given user's historical frequency of switching. In other embodiments, the determination at Block 210 and the recommendation at Block 230 may be based on at least one user at the network operations center, which may or may not include the given user. Thus, in some embodiments, the at least one user may consist of the given user, whereas in other embodiments, the at least one user may comprise the given user, and in yet other embodiments, the at least one user may not comprise the given user. Stated differently, the switching may be done based on the user's own switching history in some embodiments, but in other embodiments, a given user may benefit from other users' switching history, as well. For example, a less experienced operator could benefit from a more experienced operator's switching history. In other scenarios, there may be advantages with only being dependent on a user's own switching history. Accordingly, various embodiments described herein can support advanced and novice users in the sense that some users may wish to follow the recommended application switch flow, while other users may wish to be more proactive and modify and/or improve their existing experience. In some embodiments, a user may be offered a choice or mode on which the recommendation may be based.
[0032] Figure 3 is a flowchart of operations that may be performed by a software application recommender, such as the software application recommender 190 of Figure 1, according to other embodiments described herein. In these embodiments, the operations at Block 210 and Block 220 may be performed. Moreover, operations of Block 310 are performed to determine a plurality of software application switch flows, a respective one of which represents a sequence of switching among software applications to perform a respective task at the network operations center. Operations of Block 320 identify a present task that is presently being performed by the given user at the network operations center. A recommendation is then made by performing the recommendation of Block 230 of Figure 2, wherein the recommendation is further based on the software application that is presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
[0033] Figure 4 is a flowchart of operations that may be performed by a software application recommender, such as a software application recommender 190 of Figure 1, according to various other embodiments described herein. Specifically, at Block 210', a respective normalized historical frequency of switching of Block 210 may be determined by building a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices. Operations of Block 220 are then performed. The recommendation of Block 230' may then be based on the respective weights between a vertex that represents the software application presently being used and respective vertices that are adjacent thereto.
[0034] Figure 5 is a flowchart of operations that may be performed by a software application recommender, such as the software recommender 190 of Figure 1, according to still other embodiments described herein. Referring to Figure 5, at Block 310', the plurality of software application switch flows may be determined by determining a respective normalized weight that is associated with a respective pair of adjacent software applications in the respective one of the software application switch flows. Operations of Block 320 are then performed. The recommendation of Block 330' may then be further based upon the normalized weight that is associated with the software application presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
[0035] Figure 6 is a flowchart of operations that may be performed to recommend at least one of the software applications for future use by the given user at the network operations center based on the respective normalized historical frequency of switching by the at least one user at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user, according to various embodiments described herein, which may correspond to Block 230. More specifically, referring to Block 610, these operations present a listing of a plurality of the software applications for future by the given user at the network operations center in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user. A determination is then made at Block 620 as to whether an equal (or approximately equal in some embodiments) normalized hierarchical frequency of switching takes place. If "Yes", then at Block 620, operations are performed to determine the relative popularities based on a respective sum of the normalized historical frequency of switching by the at least one user that are associated with the respective software applications that have equal normalized hierarchical frequency of switching. On the other hand, if the normalized frequency switching is not (approximately) equal, the operations of Block 630 are bypassed. At Block 650, operations are performed to activate a software application from the listing of a plurality of the software applications in response to receiving selection of the software application from the listing by the given user at the network operations center.
[0036] Figure 7 illustrates a user input/output terminal for the given user 110a including a recommendation that is displayed, according to any of the embodiments described herein. More specifically, according to any of the embodiments described herein, the recommending of Blocks 230, 230', 330 and/or 330' may be provided by presenting a listing of a plurality of the software applications for future by the given user at the network operations center in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user, as is illustrated, for example, at Block 710. Thus, Figure 7 illustrates a display of a user input/output device 110a, which may include a window or drop-down box 710 with a recommendation. The window or drop-down box 710 may be displayed in response to activation of the software application recommender 190, for example by selecting
ALT + TAB in a Windows environment or CMD + TAB in an iOS environment. As shown, the sequence in the window or drop-down box is based on the recommendation. Moreover, user selection of an appropriate application in the listing may activate a software application from the listing of a plurality of the software applications in response to receiving selection of the software application from the listing by the given user 110a at the network operations center.
[0037] Additional discussion of various embodiments described herein will now be provided in connection with Figures 8-13, in which specific examples are provided. It will be understood that these examples are non-limiting, and may be simplified compared to an actual network operations center, in order to more effectively illustrate their operation.
[0038] Figure 8 illustrates an example of building a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices, as was described, for example, in connection with Block 210'.
[0039] Referring to Figure 8, in the graph that is illustrated, the vertices are the software applications (A-F in this example), and directed edges are added between the software applications when a switch between them is registered. The edges have weights that are automatically adjusted based on the frequency of switches between corresponding software applications. For example, if a switch between software applications A and B occurs, the weight of the edge from A to B is increased relative to the other edges coming out from A. The weights of the edges are normalized by dividing by the summation of the weights of all edges (15 in Figure 8).
[0040] Accordingly, continuous learning of user applications switching patterns in the context of a network operations center may be provided. The system may continuously observe user behavior and rebuild the graph (adding more vertices and edges, and updating weights). If the user switches from application A to B, and B is not currently in the graph, a new vertex B will be added and an edge (with the weight of one divided by summation of weights) between A and B will be added also. Otherwise, if B is currently in the graph, the weight will be increased. Afterwards, all weights will be updated accordingly because of the changing of the summation. The weights will be used to generate an applications switch list as was illustrated, for example, in Figure 7. The higher the weight, the higher the rank.
Thus, a list of recommended applications the user is most likely to switch to may be provided, that is ordered by the application relevance.
[0041] In other embodiments, as was described in connection with Figure 5, software applications may be recommended by determining a respective normalized weight that is associated with a respective pair of adjacent software applications in a respective one of the software application switch flows. Various embodiments described herein may be pre- trained to understand a different "mode of work" by pattern recognition. Each mode may have its own pattern. For example, as shown in Figure 9, if the user is writing slides (Block 910), he/she might spend considerable time in PowerPoint and switch between PowerPoint and some drawing tools. In other embodiments, if the user is fixing some trouble (Blocks 920 or 930), he/she might switch between different trouble shooting tools. The system observes user behavior, and whenever it is able to figure out which mode the user is in, it can retrieve the corresponding graph (Blocks 940-960) and start the recommendation process. As illustrated in Figure 9, each user has multiple modes 910-930, and a mode may be associated with a graph that may be updated continuously according to user behavior.
[0042] It will be understood from Figure 9 that a mode 910-930 need not necessarily be associated with a switch flow 940-950. Specifically, in certain modes, for example writing slides (Block 910), there may be no such workflow that is defined to guide the user how to write slides. Thus, in Figure 9, there is no switch flow associated with the writing mode 910.
[0043] Figure 10 illustrates a specific example of an application switch flow that may be deduced from the workflow that the given user is currently following, based on the example of Figure 8. Figure 10 identifies a particular switch flow 1010 that comprises a series of successive applications A-D that are used. Thus, separate graphs can be created for different modes of work, and a graph is picked that corresponds to the current user mode. Observing and clustering application usage patterns can automatically provide information about a current user mode of work.
[0044] Application switch flow may be deduced from a workflow that guides an NOC engineer to resolve a certain trouble. A concrete example is illustrated in Figure 11, where each Block 1110-1180 represents a specific task in a sequence of tasks to solve the trouble.
[0045] Then, the deduced application switch flow may be as illustrated in Figure 12. Figure 12 may be derived from Figure 11 using a predefined table that maps each step of a workflow to a tool of the application switch flow. Two different steps may map to the same tool. This is why the topology of the application flow may be different from the one of the workflow. The weights of the application switch flow may be set to be all equal, as shown in Figure 12.
[0046] In some embodiments, to keep it simple, switch flow does not remember state. For example, in Figure 12, when standing at "Ticket Management", it can switch to either "Terminal" or "Workforce Management", and here two paths have the same weight. More generally, all edges in a switch flow may have equally the same weight, in some
embodiments.
[0047] As was described in Figure 5, switch flow may be used by itself to make a software application recommendation. Moreover, as was described in Figure 4, historical frequency of switching may also be used by itself to recommend a software application. As was also described in Figure 3, a combination of historical frequency of switching and switch flow may be used to recommend an application. A specific example will now be provided. [0048] Specifically, depending on the mode, there could be an associated switch flow. Assume that the current mode is trouble shooting for trouble A, corresponding to Block 920 of Figure 9, A mode can be detected according to the description above, and the actual type of trouble can be either specified by the user or inferred in a more intelligent way for example analyzing the user's task/mail box. There is a switch flow SFA corresponding to Block 940 of Figure 9 and illustrated in more detail in Figure 10. This flow will be retrieved. Assume the user is presently performing task A. The computed weight of an edge is calculated by formula:
W = a WG + β WSF .
[0049] where W is the computed weight of an edge, WG is weight of the edge in the graph of Figure 8, WSF is the weight of the edge in the switch flow of Figure 10, and a and β are coefficients. The coefficients may be used to assign different importance to different parts. For example, if the switch flow shall be strictly followed, β will be assigned with a much higher value than a and vice versa. In some embodiments, a can be predefined by the system, for example always with value " 1 ", and β can be associated with the workflow, meaning that if the workflow is very important, β can be assigned with a very large value. As an example, in Figures 8 and 10, the computer weight of edge A->D might be calculated by 1 * 4/15 + 10 * 1/3, where a is 1 and β is 10.
[0050] Thus, as described above, the recommendation may be based on the following formula:
W = a WG + β WSFA
[0051] wherein W is a total weight of a software application that is recommended for future use, a is a coefficient representing relative importance of the normalized historical frequency of switching; WG is the normalized frequency of use for the software application that is recommended for future use; β is a coefficient representing relative importance of the application switch flow and WSF is the normalized weight in the software application switch flow that is associated with the software application that is recommended for future use.
[0052] Referring back to Figure 8, a potential problem may be observed.
Specifically, the edges from node A to nodes C and D have the same weight (4/15). This situation was described at Block 620 of Figure 6. In this situation, according to various embodiments described herein, the relative popularities may be determined based on a respective sum of the normalized historical frequency of switching by the at least one user that are associated with the respective software applications that have equal normalized hierarchical frequency of switching, as was illustrated at Block 330. Thus, referring to the example of Figure 8, given only the graph of Figure 8 without switch flow, and suppose the user is at A, the weight of A->D and A->C is the same. In order to determine which one should be the first recommendation, all incoming edges to D and C may be examined. In this case, E->D and D->C. The summation of D's incoming edges' weight is lower than that of C (1/15 vs. 2/15), which means C is "more popular" than D, and the system may recommend C over D.
[0053] Finally, referring again to Figure 1, it will be understood that there generally is not a one-to-one correspondence between user input/output devices 110 and users in the network operations center. Specifically, a given user input/output device, such as a desktop computer, may be shared among many users. Alternatively, a given user may use more than one user input/output device, such as a desktop computer, a laptop computer or a smart phone. Various embodiments illustrated in Figure 13 can use cloud storage to store and synchronize the graphs across all devices used by a user. Thus, referring to Figure 13, the personalized recommendation model 1320 of the context-based application switcher may be automatically stored and synced with a network-connected repository (cloud computing node) 1310, for continuous usage and context analysis as well as backup. In addition, cloud storage enables streamlined transitioning of the personalized recommendation model 1320 from a first (source) device 1330 to the cloud storage 1310 and to a target (new) second device 1340.
[0054] It will be understood that various embodiments of context-based methods, systems and computer program products for recommending a software application have been described herein in the environment of a network operations center. However, various embodiments described herein may also be applied to users of software applications in other consumer and/or commercial environments, to provide context based methods, systems and computer program products for recommending a software application to a user in any of these other environments.
[0055] Embodiments of the present disclosure were described herein with reference to the accompanying drawings. Other embodiments may take many different forms and should not be construed as limited to the embodiments set forth herein. Like numbers refer to like elements throughout. [0056] It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of the various embodiments described herein. As used herein, the term "and/or" includes any and all combinations of one or more of the associated listed items and may be abbreviated as "/".
[0057] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting to other embodiments. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms
"comprises," "comprising," "includes" and/or "including", "have" and/or "having" when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. In contrast, the term "consisting of (and variants thereof) when used herein, specifies the stated features, integers, steps, operations, elements, and/or components, and precludes additional features, integers, steps, operations, elements and/or components.
[0058] Elements described as being "to" perform functions, acts and/or operations may be configured to or otherwise structured to do so.
[0059] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which various embodiments described herein belong. It will be further understood that terms used herein should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0060] As will be appreciated by one of skill in the art, various embodiments described herein may be embodied as a method, data processing system, and/or computer program product. Furthermore, embodiments may take the form of a computer program product on a tangible computer readable storage medium having computer program code embodied in the medium that can be executed by a computer.
[0061] Any combination of one or more computer readable media may be utilized. The computer readable media may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[0062] A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0063] Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python or the like, conventional procedural
programming languages, such as the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PFIP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computer environment or offered as a service such as a Software as a Service (SaaS). [0064] Some embodiments are described herein with reference to flowchart illustrations and/or block diagrams of methods, systems and computer program products according to embodiments. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a mechanism for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[0065] These computer program instructions may also be stored in a computer readable medium that when executed can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions when stored in the computer readable medium produce an article of manufacture including instructions which when executed, cause a computer to implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable instruction execution apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatuses or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[0066] It is to be understood that the functions/acts noted in the blocks may occur out of the order noted in the operational illustrations. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows.
[0067] Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It will be understood that it would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, all embodiments can be combined in any way and/or combination, and the present specification, including the drawings, shall support claims to any such combination or subcombination.
[0068] In the drawings and specification, there have been disclosed typical embodiments and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the disclosure being set forth in the following claims.

Claims

WHAT IS CLAIMED IS:
1. A method of recommending a software application, the method comprising: determining (210) a respective normalized historical frequency of switching by at least one user (110) at a network operations center (100) among respective pairs of software applications (170) that were previously used by the at least one user (110) at the network operations center;
identifying (220) a software application that is presently being used by a given user (110a) at the network operations center; and
recommending (230) at least one of the software applications for future use by the given user (110a) at the network operations center based on the respective normalized historical frequency of switching by the at least one user (110) at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user (110) that include the software application that is presently being used by the given user (110a).
2. A method according to Claim 1 further comprising:
determining (310) a plurality of software application switch flows, a respective one of which represents a sequence of switching among software applications to perform a respective task at the network operations center; and
identifying (320) a present task that is presently being performed by the given user at the network operations center;
wherein the recommending (330) is further based on the software application that is presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
3. A method according to Claim 1 :
wherein the determining comprises building (210') a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices; and wherein the recommending comprises recommending (230') at least one of the software applications for future use by the given user at the network operations center based on the respective weights between a vertex that represents the software application presently being used and respective vertices that are adjacent thereto.
4. A method according to any one of Claims 2 or 3 :
wherein the determining a plurality of software application switch flows comprises determining (310') a respective normalized weight that is associated with a respective pair of adjacent software applications in the respective one of the software application switch flows; and
wherein the recommending (330') is further based upon the normalized weight that is associated with the software application presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
5. A method according to any one of Claims 1-4 wherein the recommending comprises:
presenting (610) a listing (710) of a plurality of the software applications for future by the given user at the network operations center in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user.
6. A method according to Claim 5 wherein the sequence is further based on relative popularities (630) of software applications that have equal normalized hierarchical frequency of switching (620).
7. A method according to Claim 6 further comprising determining the relative popularities based on a respective sum of the normalized historical frequency of switching by the at least one user that are associated with the respective software applications that have equal normalized hierarchical frequency of switching.
8. A method according to Claim 4 wherein the recommending is based on the following formula:
W = a WG + β WSFA,
wherein W is a total weight of a software application that is recommended for future use, a is a coefficient representing relative importance of the normalized historical frequency of switching; WG is the normalized frequency of use for the software application that is recommended for future use; β is a coefficient representing relative importance of the application switch flow and WSF is the normalized weight in the software application switch flow that is associated with the software application that is recommended for future use.
9. A method according to Claim 5 further comprising:
activating (650) a software application from the listing (710) of a plurality of the software applications in response to receiving selection of the software application from the listing by the given user at the network operations center.
10. A method according to Claim 1, wherein the at least one user consists of the given user.
11. A network operations center (100) comprising:
a network operations center processor (140);
a software application recommender (190) that runs on the network operations center processor, the software application recommender (190) configured to perform operations for recommending a software application (170), the operations comprising:
determining (210) a respective normalized historical frequency of switching by at least one user (110) at the network operations center (100) among respective pairs of software applications (170) that were previously used by the at least one user (110) at the network operations center;
identifying (220) a software application that is presently being used by a given user (110a) at the network operations center; and
recommending (230) at least one of the software applications for future use by the given user (110a) at the network operations center based on the respective normalized historical frequency of switching by the at least one user (110) at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user (110) that include the software application that is presently being used by the given user (110a).
12. A network operations center according to Claim 1 1 further comprising:
determining (310) a plurality of software application switch flows, a respective one of which represents a sequence of switching among software applications to perform a respective task at the network operations center; and
identifying (320) a present task that is presently being performed by the given user at the network operations center;
wherein the recommending (330) is further based on the software application that is presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
13. A network operations center according to Claim 1 1 :
wherein the determining comprises building (210') a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices; and
wherein the recommending comprises recommending (230') at least one of the software applications for future use by the given user at the network operations center based on the respective weights between a vertex that represents the software application presently being used and respective vertices that are adjacent thereto.
14. A network operations center according to any one of Claims 12 or 13 :
wherein the determining a plurality of software application switch flows comprises determining (310') a respective normalized weight that is associated with a respective pair of adjacent software applications in the respective one of the software application switch flows; and
wherein the recommending (330') is further based upon the normalized weight that is associated with the software application presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
15. A network operations center according to any one of Claims 11-14 wherein the recommending comprises:
presenting (610) a listing (710) of a plurality of the software applications for future by the given user at the network operations center in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user.
16. A network operations center according to Claim 15 wherein the sequence is further based on relative popularities (630) of software applications that have equal normalized hierarchical frequency of switching (620).
17. A network operations center according to Claim 16 further comprising determining the relative popularities based on a respective sum of the normalized historical frequency of switching by the at least one user that are associated with the respective software applications that have equal normalized hierarchical frequency of switching.
18. A network operations center according to Claim 14 wherein the
recommending is based on the following formula:
W = a WG + β WSFA,
wherein W is a total weight of a software application that is recommended for future use, a is a coefficient representing relative importance of the normalized historical frequency of switching; WG is the normalized frequency of use for the software application that is recommended for future use; β is a coefficient representing relative importance of the application switch flow and WSF is the normalized weight in the software application switch flow that is associated with the software application that is recommended for future use.
19. A network operations center according to Claim 15 further comprising:
activating (650) a software application from the listing (710) of a plurality of the software applications in response to receiving selection of the software application from the listing by the given user at the network operations center.
20. A network operations center according to Claim 11 wherein the at least one user consists of the given user.
21. A computer program product compri sing :
a tangible computer readable storage medium (160) comprising computer readable program code embodied in the medium that when executed by at least one processor (140) of a network operations center (100) causes the processor to perform operations for
recommending (190) a software application (170), the operations comprising:
determining (210) a respective normalized historical frequency of switching by the at least one user (110) at the network operations center (100) among respective pairs of software applications (170) that were previously used by the at least one user (110) at the network operations center;
identifying (220) a software application that is presently being used by a given user (110a) at the network operations center; and
recommending (230) at least one of the software applications for future use by the given user (110a) at the network operations center based on the respective normalized historical frequency of switching by the at least one user (110) at a network operations center among a subset of the respective pairs of software applications that were previously used by the at least one user (110) that include the software application that is presently being used by the given user (110a).
22. A computer program according to Claim 21 further comprising:
determining (310) a plurality of software application switch flows, a respective one of which represents a sequence of switching among software applications to perform a respective task at the network operations center; and
identifying (320) a present task that is presently being performed by the given user at the network operations center;
wherein the recommending (330) is further based on the software application that is presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
23. A computer program according to Claim 21 :
wherein the determining comprises building (210') a graph having vertices that represent the software applications that were previously used by the at least one user at the network operations center, and having a respective weight between respective adjacent vertices that represents the respective normalized historical frequency of switching by the at least one user at the network operations center, between the respective pair of software applications represented by the adjacent vertices; and
wherein the recommending comprises recommending at least one of the software applications for future use by the given user at the network operations center based on the respective weights between a vertex that represents the software application presently being used and respective vertices that are adjacent thereto.
24. A computer program according to any one of Claims 22 or 23 :
wherein the determining a plurality of software application switch flows comprises determining (310') a respective normalized weight that is associated with a respective pair of adjacent software applications in the respective one of the software application switch flows; and
wherein the recommending (330') is further based upon the normalized weight that is associated with the software application presently being used by the given user and a next software application in the software application switch flow that is associated with the present task that is presently being performed by the given user at the network operations center.
25. A computer program according to any one of Claims 21-24 wherein the recommending comprises:
presenting (610) a listing (710) of a plurality of the software applications for future by the given user at the network operations center in a sequence that is based on the respective normalized historical frequency of switching by the at least one user at the network operations center among the subset of the respective pairs of software applications that were previously used by the at least one user that include the software application that is presently being used by the given user.
26. A computer program according to Claim 25 wherein the sequence is further based on relative popularities (630) of software applications that have equal normalized hierarchical frequency of switching (620).
27. A computer program according to Claim 26 further comprising determining the relative popularities based on a respective sum of the normalized historical frequency of switching by the at least one user that are associated with the respective software applications that have equal normalized hierarchical frequency of switching.
28. A computer program according to Claim 24 wherein the recommending is based on the following formula:
W = a WG + β WSFA,
wherein W is a total weight of a software application that is recommended for future use, a is a coefficient representing relative importance of the normalized historical frequency of switching; WG is the normalized frequency of use for the software application that is recommended for future use; β is a coefficient representing relative importance of the application switch flow and WSF is the normalized weight in the software application switch flow that is associated with the software application that is recommended for future use.
29. A computer program according to Claim 25 further comprising:
activating (650) a software application from the listing (710) of a plurality of the software applications in response to receiving selection of the software application from the listing by the given user at the network operations center.
30. A computer program according to Claim 21 wherein the at least one user consists of the given user.
PCT/SE2014/050058 2014-01-20 2014-01-20 Context-based methods, systems and computer program products for recommending a software application in a network operations center WO2015108457A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/SE2014/050058 WO2015108457A1 (en) 2014-01-20 2014-01-20 Context-based methods, systems and computer program products for recommending a software application in a network operations center

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2014/050058 WO2015108457A1 (en) 2014-01-20 2014-01-20 Context-based methods, systems and computer program products for recommending a software application in a network operations center

Publications (1)

Publication Number Publication Date
WO2015108457A1 true WO2015108457A1 (en) 2015-07-23

Family

ID=50113003

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2014/050058 WO2015108457A1 (en) 2014-01-20 2014-01-20 Context-based methods, systems and computer program products for recommending a software application in a network operations center

Country Status (1)

Country Link
WO (1) WO2015108457A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003014978A2 (en) * 2001-08-07 2003-02-20 Jaago Corporation Intelligent adaptive optimization of display navigation and data sharing
US20070162907A1 (en) * 2006-01-09 2007-07-12 Herlocker Jonathan L Methods for assisting computer users performing multiple tasks
US20080228685A1 (en) * 2007-03-13 2008-09-18 Sharp Laboratories Of America, Inc. User intent prediction
US20110154262A1 (en) * 2009-12-17 2011-06-23 Chi Mei Communication Systems, Inc. Method and device for anticipating application switch

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003014978A2 (en) * 2001-08-07 2003-02-20 Jaago Corporation Intelligent adaptive optimization of display navigation and data sharing
US20070162907A1 (en) * 2006-01-09 2007-07-12 Herlocker Jonathan L Methods for assisting computer users performing multiple tasks
US20080228685A1 (en) * 2007-03-13 2008-09-18 Sharp Laboratories Of America, Inc. User intent prediction
US20110154262A1 (en) * 2009-12-17 2011-06-23 Chi Mei Communication Systems, Inc. Method and device for anticipating application switch

Similar Documents

Publication Publication Date Title
US10112298B2 (en) Assigning tasks to a robot device for execution
US10304023B2 (en) Intelligent key performance indicator catalog
US10521738B2 (en) Automated collaboration workflow generation in thing-sourcing environments
US9996239B2 (en) Enumeration and modification of cognitive interface elements in an ambient computing environment
US20180107988A1 (en) Estimating the Number of Attendees in a Meeting
US20160283846A1 (en) Assistive technology (at) responsive to cognitive states
US11556650B2 (en) Methods and systems for preventing utilization of problematic software
US10169079B2 (en) Task status tracking and update system
US20200409451A1 (en) Personalized content for augemented reality based on past user experience
US10359836B2 (en) Assistive technology (AT) responsive to cognitive states
US8713152B2 (en) Managing distributed applications using structural diagrams
US20200133439A1 (en) Chat session dynamic user interface
CN114466005A (en) Internet of things equipment arrangement
US20190295013A1 (en) Machine learning task assignment
US11121986B2 (en) Generating process flow models using unstructure conversation bots
US10938830B2 (en) Authorizing and nullifying commands issued to virtual assistants in an internet of things (IoT) computing environment based on hierarchal user access levels
US20200175626A1 (en) Analyzing patent value in organizational patent portfolio strategy
US11671385B1 (en) Automated communication exchange programs for attended robotic process automation
US11163844B2 (en) Network search modification
US11074090B2 (en) Virtual action-based troubleshooter
US11050815B2 (en) Dynamic resource provision based on detected nearby devices
WO2015108457A1 (en) Context-based methods, systems and computer program products for recommending a software application in a network operations center
US11830380B2 (en) System and method for social learning utilizing user devices
US11093041B2 (en) Computer system gesture-based graphical user interface control
US20210133232A1 (en) Visual representation coherence preservation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14704700

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14704700

Country of ref document: EP

Kind code of ref document: A1