Computer-implemented method, computer program, and computer system (multi-device connection management)

By analyzing device usage data to determine a usage score, the method automatically selects the most suitable device for communication requests, addressing the limitations of static prioritization in multi-device connection management and enhancing user experience.

JP7730238B2Active Publication Date: 2025-08-27INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021189442
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-24
Filing Date
2021-11-22
Publication Date
2025-08-27
Estimated Expiration
2041-11-22

AI Technical Summary

Technical Problem

Current methods for managing multi-device connections do not adequately select the most suitable device for communication requests, often leading to unnecessary notifications or cacophony due to static prioritization rules that fail to adapt to changing device and network capabilities and user preferences.

Method used

A method that analyzes device usage data to determine a usage score for each device, considering factors like connectivity, capability, usage, location, and user preference, to automatically select the most suitable device for a communication request.

Benefits of technology

This approach ensures that communication requests are handled by the most suitable device, enhancing user experience by reducing unnecessary notifications and improving communication quality based on real-time conditions and preferences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007730238000001
    Figure 0007730238000001
  • Figure 0007730238000002
    Figure 0007730238000002
  • Figure 0007730238000003
    Figure 0007730238000003
Patent Text Reader

Abstract

To solve the problem in which presently available tools or solutions do not address these needs or provide adequate solutions for these needs.SOLUTION: A connection request is received for an account associated with a set of devices, and comprises a request to establish communication between a sending device and a device associated with the account. By analyzing device usage data for a first device in the set of devices, an availability score of the first device is determined. The first device is presented for connection based on the availability score of the first device. In response to the presentation, the sending device and the first device are connected.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates generally to methods, systems, and computer program products for managing device connections, and more particularly to methods, systems, and computer program products for multi-device connection management. [Background technology]

[0002] A user typically has access to two or more communication-enabled devices, for example, in the form of a smartphone, tablet computer, laptop computer, desktop computer, wearable computing device, smart speaker, or any other suitable device, all capable of executing application software that allows the device user to communicate with software running on another device or data processing system.

[0003] Because users typically have access to more than one communication-enabled device, they often link the devices together under one account, typically using a single user identification unique to the user. For example, a user may configure their smartphone, tablet computer, laptop computer, and office desktop computer with a phone application for voice communication and texting, all using the same registered phone number. As a result, the user can answer calls on any device immediately available to them, such as on their office desktop computer when they are at the office and on their smartphone while driving home from the office. As another example, a user can configure their smartphone, tablet computer, laptop computer, and smart speaker in their living room and bedroom to use a shared music streaming account and then use that account to play music on whatever device is currently convenient.

[0004] A communication request is a request to establish communication between a sending device and a device associated with an account. Exemplary communication requests include an indication of an incoming voice or video call and a response to a user's request to play music stored on a remote computer system. Summary of the Invention [Problem to be solved by the invention]

[0005] Currently available tools or solutions do not address these needs or provide adequate solutions to these needs. [Means for solving the problem]

[0006] Exemplary embodiments provide methods, systems, and computer program products. One embodiment includes a method of receiving a connection request for an account, the account being associated with a set of devices, the connection request including a request to establish communication between a sending device and a device associated with the account. One embodiment determines a usage score for a first device in the set of devices by analyzing device usage data of the first device. One embodiment presents the first device for connection based on the usage score of the first device. One embodiment connects the sending device and the first device in response to the presentation.

[0007] One embodiment includes a computer-usable program product that includes one or more computer-readable storage devices and program instructions stored on at least one of the one or more storage devices.

[0008] One embodiment includes a computer system including one or more processors, one or more computer-readable memories, one or more computer-readable storage devices, and program instructions stored in at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories. [Brief explanation of the drawings]

[0009] The particular novel features which are believed to be characteristic of the invention are set forth in the appended claims. However, the invention itself, together with its preferred mode of use, further objects and advantages, will best be understood by reference to the following detailed description of illustrative embodiments taken in conjunction with the accompanying drawings.

[0010] [Figure 1] 1 depicts a block diagram of a network of data processing systems in which illustrative embodiments may be implemented;

[0011] [Figure 2] 1 illustrates a block diagram of a data processing system in which illustrative embodiments may be implemented;

[0012] [Figure 3] 1 illustrates a block diagram of an exemplary configuration for multi-device connection management, according to an exemplary embodiment.

[0013] [Figure 4] 1 illustrates a block diagram of an exemplary configuration for multi-device connection management, according to an exemplary embodiment.

[0014] [Figure 5] 1 illustrates an example of multi-device connection management, according to an exemplary embodiment.

[0015] [Figure 6] 10 illustrates a continuation of the multi-device connection management example, according to an exemplary embodiment.

[0016] [Figure 7] 10 illustrates a continuation of the multi-device connection management example, according to an exemplary embodiment.

[0017] [Figure 8] 10 illustrates a continuation of the multi-device connection management example, according to an exemplary embodiment.

[0018] [Figure 9] 10 illustrates a continuation of the multi-device connection management example, according to an exemplary embodiment.

[0019] [Figure 10] 10 illustrates a continuation of the multi-device connection management example, according to an exemplary embodiment.

[0020] [Figure 11] 10 illustrates a continuation of the multi-device connection management example, according to an exemplary embodiment.

[0021] [Figure 12] 1 illustrates a flowchart of an exemplary process for multi-device connection management, according to an exemplary embodiment.

[0022] [Figure 13] 1 illustrates a cloud computing environment, according to one embodiment of the present invention.

[0023] [Figure 14] 1 illustrates an abstraction model layer according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0024] Exemplary embodiments recognize that when multiple devices share an account and a communication request is received, one option is to fulfill the request on all available devices. For example, a user may configure their smartphone, tablet computer, laptop computer, and office desktop computer with a phone application or other unique user identification for voice communication and texting, all using the same registered phone number or other unique user identification. Then, when an incoming call occurs, each device currently available for network communication will indicate the incoming call. However, if the user's smartphone, tablet computer, and laptop computer are all placed next to each other, all three will indicate the incoming call, which may be unnecessary and annoying. As another example, a user may configure their smartphone, tablet computer, laptop computer, and smart speaker in their living room and bedroom to use their shared music streaming account, but if the smartphone and tablet computer are currently in the living room along with the living room smart speaker, all three may play the requested music, creating a cacophony.

[0025] The exemplary embodiments recognize that when multiple devices share an account and a communication request is received, another option is to fulfill the request using a static list of predetermined prioritization rules. For example, in the case of an incoming call, a user's smartphone may always indicate the incoming call and roll over to the next device on the priority list only if the smartphone cannot access a communication network. However, the highest priority device may not be the device most suitable for the current situation. For example, a user's smartphone may be the highest priority but may be in an area with weak cellular data reception and only communicate at 3G speeds, while other available devices, such as a tablet (using Wi-Fi) or a laptop computer (using a wired network connection), may be capable of faster speeds and therefore improved call quality. Furthermore, configuring multiple priority lists applicable to multiple situations quickly becomes cumbersome and still does not adapt to unforeseen circumstances, changing device and network capabilities, and evolving user preferences. Therefore, the exemplary embodiments recognize an unmet need to automatically select the most suitable device to use an account when a communication request for that account is received and update the suitability determination based on changing conditions and preferences.

[0026] The illustrative embodiments recognize that currently available tools or solutions do not address these needs or provide adequate solutions to these needs. The illustrative embodiments used to describe the present invention generally address and solve the above problems, as well as other problems related to multi-device connection management.

[0027] An embodiment may be implemented as a software application. An application implementing an embodiment may be configured as a modification to an existing data communication system, as a separate application operating in conjunction with an existing data communication system, as a standalone application, or some combination thereof.

[0028] Specifically, some example embodiments provide a method for receiving a connection request for an account, determining a usage score for the first device by analyzing device usage data of a first device in a set of devices associated with the account, presenting the first device for connection based on the usage score of the first device, and connecting the sending device and the first device.

[0029] In one embodiment, one or more of the devices are associated with a user account. In one embodiment, user input is received associating the devices with the account. In another embodiment, the devices are automatically associated with the account. For example, when a user configures an application to use the account, the application may automatically associate the device on which the application is running with the account. In another embodiment, the devices are associated with the account using device discovery techniques, for example, by detecting and associating any new devices that join a known Wi-Fi or other communication network. (Wi-Fi is a registered trademark of the Wi-Fi Alliance in the United States and other countries.)

[0030] In one embodiment, a rule set used to determine a usage score for a device associated with an account is configured and managed. The rule set specifies one or more components used to calculate the usage score, the calculations used to combine those components to arrive at the usage score, and how the score components are calculated from input data. In one embodiment, a user can manually configure some or all of the rule set. Another embodiment includes a default rule set that is further adjusted based on user input, either during device configuration or learned from the user's device selection.

[0031] In one embodiment, a component of a device's usage score associated with an account is the device's connectivity factor. A device capable of communicating data at high speeds typically provides a higher quality user experience than another device of the same power output but capable of communicating data at a slower speed. For example, a video conference will have higher image quality and lower latency if the device communicates data at a speed typical of a wired network connection compared to the speed typical of a 3G cellular data connection. Thus, a device capable of a high-speed connection will have a higher connectivity factor than a device capable of a relatively slower connection.

[0032] In one embodiment, a component of the usage score for a device associated with an account is a device capability factor related to the nature of the connection request. For example, a smart speaker device typically has higher quality recording and playback capabilities than a laptop computer. Thus, if the connection request involves streaming music, an embodiment may score the smart speaker device higher than a laptop computer. As another example, if the connection request is for a video call, an embodiment may score devices proportional to the size or resolution of their display screens to provide the highest possible video quality.

[0033] In one embodiment, a component of a device usage score associated with an account is a device usage factor for the device. The device usage factor includes one or more of the time since the device was last used, the time the device was last used, the average time the device was used, and other usage-related device data. The shorter the time since the device was last used, the more likely the device is still available for use. For example, if a user is currently using a device or last used the device two minutes ago, the device is likely still nearby. On the other hand, if a user last used the device an hour ago, the user may have left the device in a different location. A device that is used more recently, both recently and on average over a period of time, is also likely to be preferred over a device that has not been used as long. Thus, if a first device has been used longer than a second device, the device usage factor for the first device should be higher than the device usage factor for the second device.

[0034] In one embodiment, a component of a device's usage score associated with an account is a distance factor between the device and the account's user. For example, a user's desktop computer, permanently installed in the user's office, is unavailable when the user is not in the office. One embodiment determines the device's location using the device's already available capabilities. For example, a device with positioning capabilities, such as a smartphone, can report its location to within a few meters. As another example, a device with Wi-Fi capabilities, such as a tablet or laptop computer, may access a network with a known location, such as the user's home or office network. As a third example, a device with wired network capabilities, such as a desktop computer, may access a network through an access point with a known location, such as Room XYZ in the user's office building.

[0035] One embodiment infers the user's location from the location of a device associated with the account. For example, a currently worn wearable device (determined using one or more device sensors) may be assumed to be worn by the account user. As another example, because users rarely travel far without their smartphones, the user's location may be assumed to be the same as or within a threshold amount of the smartphone's location.

[0036] Another embodiment uses sensor data from a device associated with the account or a different device to directly determine the user's location. For example, access control data for a user's office building may indicate that the user entered the building earlier today and has not yet left. Therefore, an embodiment concludes that the user is in the office rather than a different location. As another example, if a user's home has a thermostat with the ability to detect presence and communicate over a communications network, an embodiment may use this data to determine whether the user is at home. Some devices provide more accurate user location data than others. For example, access control data may only be usable to determine whether the user is in the building, thermostat data may be usable to determine whether the user is at home (or on which floor if there are multiple such thermostats), while a video surveillance system or radio frequency identification (RFID) system may be usable (with the user's consent) to determine which room the user is in or their distance from a particular RFID sensor interrogator. However, accurate user location data is not necessary. For example, if the user is not in the office, the desktop computer in the user's office is unavailable regardless of where the user actually is. Therefore, if the distance between the device and the user of the account exceeds a predetermined threshold, one embodiment sets the distance element to the current maximum value, indicating that the device is unavailable.

[0037] In one embodiment, a component of the device usage score associated with an account is a user preference factor. For example, a user may prefer to use a smartphone for a particular account or for a particular type of communication request, even if another device is scored higher using another factor. In one embodiment, the user provides the preference information through a user interface. In another embodiment, the preference information is learned from the user's device selection and the user preference factor is adjusted accordingly. For example, if a user always chooses the smartphone when faced with the choice between using a smartphone or a tablet, this embodiment updates the user preference factor to score the smartphone higher than the tablet.

[0038] In one embodiment, a connection request for an account is received. A communication request is a request to establish communication between a sending device and a device associated with the account. Some non-limiting examples of communication requests are an indication of an incoming voice or video call and a response to a user request to play music stored on a remote computer system.

[0039] In one embodiment, device data for devices associated with the account is analyzed to calculate one or more usage score components specified in the rule set. In particular, in one embodiment, a connection factor for the device is calculated. In another embodiment, a device capability factor related to the nature of the connection request is calculated. In another embodiment, a device usage factor for the device is calculated. In another embodiment, a distance factor between the device and the user of the account is calculated by determining the location of the device and inferring the user's location from the location of the device associated with the account, or by directly determining the user's location using sensor data from the device associated with the account or a different device.

[0040] From the usage score components specified in the rule set, in one embodiment, a usage score for a device associated with the account is determined. In one embodiment, the usage score is calculated in response to a communication request. In another embodiment, the usage score for one or more devices associated with the account is calculated periodically so that the usage score is ready when a communication request is received. In another embodiment, the data used to calculate the device usage score is collected periodically, but the calculation of the usage score is delayed until a communication request is received.

[0041] In one embodiment, one or more devices are selected based on the device's usage score, the selected device is presented to the user of the account for connection, and if the user accepts the connection, the sending device is connected to the selected device to fulfill the communication request. In one embodiment, the devices are ranked based on their usage score, and the device with the highest usage score is selected.

[0042] Another embodiment ranks the devices based on their usage scores, determines that a plurality of devices have the highest usage scores and usage scores within a threshold difference of each other, selects two or more of the plurality of devices, presents the selected devices to the user of the account for connection, and when the user accepts the connection on one of the devices, connects the sending device and the selected device to fulfill the communication request. Based on components of the user's selection and the device's usage scores, this embodiment adjusts a user preference factor and uses the adjusted user preference factor in calculating the usage scores of one or more devices for future communication requests. For example, if a user's smartphone and tablet have the two highest usage scores and their scores are within a threshold difference of each other, one embodiment presents both devices for connection, and when the user accepts the connection using the smartphone, this embodiment updates the user preference factor to score the smartphone higher than the tablet in the future.

[0043] The manner of multi-device connection management described herein is not available in currently available methods in the art of device management in data communications. One embodiment of the method described herein, when implemented to run on a device or data processing system, comprises a significant advance in the functionality of the device or data processing system in receiving a connection request for an account, determining a usage score for a first device in a set of devices associated with the account by analyzing device usage data of the first device, presenting the first device for connection based on the usage score of the first device, and connecting the sending device and the first device.

[0044] The exemplary embodiments are described by way of example only with respect to particular types of accounts, communication requests, device capabilities, sensor data, device usage data, usage score components, user preferences, thresholds, responses, rankings, adjustments, sensors, measurements, devices, data processing systems, environments, components, and applications. Any particular manifestations of these and other similar artifacts are not intended as limitations of the invention. Any suitable manifestations of these and other similar artifacts may be selected within the scope of the exemplary embodiments.

[0045] Furthermore, exemplary embodiments may be implemented with respect to any type of data, data source, or access to a data source via a data network. Within the scope of the present invention, any type of data storage device may provide data to an embodiment of the present invention, either locally at a data processing system or via a data network. Where an embodiment is described using a mobile device, within the scope of exemplary embodiments, any type of data storage device suitable for use with a mobile device may provide data to such an embodiment, either locally at the mobile device or via a data network.

[0046] The exemplary embodiments are described using specific code, designs, architectures, protocols, layouts, diagrams, and tools, by way of example only, and are not limited to the exemplary embodiments. Furthermore, the exemplary embodiments are described in some instances using specific software, tools, and data processing environments, by way of example only, for clarity of explanation. The exemplary embodiments may be used with other equivalent or similar purpose structures, systems, applications, or architectures. For example, other equivalent mobile devices, structures, systems, applications, or architectures therefor may be used with such embodiments of the present invention within the scope of the present invention. The exemplary embodiments may be implemented in hardware, software, or a combination thereof.

[0047] Examples in this disclosure are used for clarity of explanation only and are not intended to limit the exemplary embodiments. Additional data, operations, actions, tasks, activities, and operations are contemplated by this disclosure and are contemplated within the scope of the exemplary embodiments.

[0048] Any advantages listed herein are examples only and are not intended to limit the exemplary embodiments. Additional or different advantages may be realized depending on the particular exemplary embodiment. Furthermore, a particular exemplary embodiment may have some, all, or none of the advantages listed above.

[0049] Although this disclosure includes detailed descriptions related to cloud computing, it should be understood that implementation of the teachings recited herein is not limited to cloud computing environments. Rather, embodiments of the present invention can be implemented in connection with any other type of computing environment now known or later developed.

[0050] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with the provider of the service. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0051] The characteristics are as follows:

[0052] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without requiring human interaction with the service provider.

[0053] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (eg, cell phones, laptops, and PDAs).

[0054] Resource Pool: A provider's computing resources are pooled and serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. Although consumers generally have no control or knowledge of the exact location of the resources provided, there is an implication of location independence in that the location may be specifiable at a higher level of abstraction (e.g., country, state, or data center).

[0055] Rapid Elasticity: Capacity can be rapidly and elastically provisioned, in some cases automatically, for quick scale out, and rapidly released for quick scale in. To the consumer, the capacity available for provisioning often appears unlimited, and can be purchased in any quantity at any time.

[0056] Measured Services: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of utilized services.

[0057] The service model is as follows:

[0058] Software as a Service (SaaS): The consumer is offered the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through a thin-client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0059] Platform as a Service (PaaS): The ability offered to consumers is to deploy applications they create or acquire, formed using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration.

[0060] Infrastructure as a Service (IaaS): The ability offered to consumers is to provision processing, storage, network, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, deployed applications, and possibly limited control of selected network components (e.g., host firewalls).

[0061] The deployment model is as follows:

[0062] Private Cloud: Cloud infrastructure is operated solely for an organization. It can be managed by the organization or a third party and can reside on-premise or off-premise.

[0063] Community Cloud: Cloud infrastructure is shared by multiple organizations to support a specific community with shared interests (e.g., roles, security requirements, policies, and compliance considerations). It may be managed by the organization or a third party and may reside on-premises or off-premises.

[0064] Public Cloud: Cloud infrastructure is made available to the general public or large industry groups and is owned by organizations that sell cloud services.

[0065] Hybrid Cloud: A combination of two or more clouds (private, community, or public) that remain distinct entities but are joined together by standardized or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable data and application portability.

[0066] A cloud computing environment is a service oriented environment that is stateless, low-coupling, modular, and emphasizes semantic interoperability. At its core, cloud computing lies an infrastructure that includes a network of interconnected nodes.

[0067] Referring now to the figures, and in particular to Figures 1 and 2, these figures are exemplary diagrams of data processing environments in which illustrative embodiments may be implemented. Figures 1 and 2 are examples only and are not intended to assert or imply any limitation with respect to the environments in which different embodiments may be implemented. Particular implementations may make many modifications to the depicted environments based on the following description.

[0068] 1 illustrates a block diagram of a network of data processing systems in which exemplary embodiments may be implemented. Data processing environment 100 is a network of computers in which exemplary embodiments may be implemented. Data processing environment 100 includes network 102. Network 102 is the medium used to provide communications links between various devices and computers connected together within data processing environment 100. Network 102 may include connections such as wired or wireless communications links, or fiber optic cables.

[0069] Client or server are only exemplary roles for particular data processing systems connected to network 102 and are not intended to exclude other configurations or roles of these data processing systems. Server 104 and server 106 are coupled to storage unit 108 and network 102. Software applications may execute on any computer within data processing environment 100. Clients 110, 112, and 114 are also coupled to network 102. A data processing system, such as server 104 or 106 or client 110, 112, or 114, may contain data and may have software applications or software tools executing thereon.

[0070] By way of example only, and without implying any limitation to such an architecture, Figure 1 illustrates certain components that may be used in an exemplary implementation of one embodiment. For example, servers 104 and 106 and clients 110, 112, and 114 are illustrated as servers and clients by way of example only, and do not imply limitation to a client-server architecture. As another example, one embodiment may be distributed across several data processing systems and data networks as shown, while another embodiment may be implemented on a single data processing system within the scope of an exemplary embodiment. Data processing systems 104, 106, 110, 112, and 114 also represent exemplary nodes in clusters, clusters, and other configurations suitable for implementing an embodiment.

[0071] Device 132 is one example of a device described herein. For example, device 132 may take the form of a smartphone, a tablet computer, a laptop computer, a client 110 in stationary or portable form, a wearable computing device, or any other suitable device. Any software application described in FIG. 1 as executing on another data processing system may be configured to execute on device 132 in a similar manner. Any data or information stored or generated in another data processing system in FIG. 1 may be configured to be stored or generated on device 132 in a similar manner.

[0072] An application 105 implements one embodiment described herein. The application 105 runs on any of the servers 104 and 106, the clients 110, 112, and 114, and any form of device 132. The application 105 is also configurable to collect data from one or more instances of the device 132 and select one or more instances of the device 132 for presentation to a user in response to a communication request.

[0073] Servers 104 and 106, storage unit 108, clients 110, 112 and 114, and device 132 may be coupled to network 102 using wired connections, wireless communication protocols, or other suitable data connections. Clients 110, 112 and 114 may be, for example, personal computers or network computers.

[0074] In the shown example, server 104 may provide data such as boot files, operating system images, and applications to clients 110, 112, and 114. Clients 110, 112, and 114 may be clients of server 104 in this example. Clients 110, 112, 114, or some combination thereof, may include their own data, boot files, operating system images, and applications. Data processing environment 100 may include additional servers, clients, and other devices not shown.

[0075] In the depicted example, data processing environment 100 may be the Internet. Network 102 may represent a collection of networks and gateways that communicate with each other using Transmission Control Protocol / Internet Protocol (TCP / IP) and other protocols. At the core of the Internet is a backbone of data communication links between major nodes or host computers, including thousands of commercial, government, educational, and other computer systems, that route data and messages. Of course, data processing environment 100 may also be implemented as numerous different types of networks, such as, for example, an intranet, a local area network (LAN), or a wide area network (WAN). Figure 1 is intended as an example, and not as an architectural limitation for different illustrative embodiments.

[0076] Among other uses, data processing environment 100 may be used to implement a client-server environment in which exemplary embodiments may be implemented. A client-server environment allows software applications and data to be distributed across a network such that applications function using interactivity between client and server data processing systems. Data processing environment 100 may also employ a service-oriented architecture in which interoperable software components distributed across a network may be packaged together as a coherent business application. Data processing environment 100 may take the form of a cloud, employing a cloud computing model of service delivery that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with the provider of the service.

[0077] Referring to Figure 2, this figure shows a block diagram of a data processing system in which exemplary embodiments may be implemented. Data processing system 200 is an example of a computer, such as servers 104 and 106 or clients 110, 112, and 114 in Figure 1, or another type of device in which computer-usable program code or instructions implementing processes may be located for exemplary embodiments.

[0078] Data processing system 200 may also represent a data processing system or configuration therein, such as data processing system 132 of FIG. 1 , in which computer-usable program code or instructions implementing the processes of the exemplary embodiments may be located. Data processing system 200 is described as a computer by way of example only, and not limitation. Implementations in the form of other devices, such as device 132 of FIG. 1 , may modify data processing system 200, for example, by adding a touch interface, or even omit certain illustrated components from data processing system 200, without departing from the general description of the operation and functionality of data processing system 200 described herein.

[0079] In the illustrated example, data processing system 200 uses a hub architecture including a northbridge and memory controller hub (NB / MCH) 202 and a southbridge and input / output (I / O) hub (SB / ICH) 204. A processing unit 206, a main memory 208, and a graphics processor 210 are coupled to northbridge and memory controller hub (NB / MCH) 202. Processing unit 206 may include one or more processors and may be implemented using one or more heterogeneous processor systems. Processing unit 206 may be a multi-core processor. Graphics processor 210 may be coupled to NB / MCH 202 through an accelerated graphics port (AGP) in certain implementations.

[0080] In the illustrated example, a local area network (LAN) adapter 212 is coupled to a southbridge and I / O controller hub (SB / ICH) 204. An audio adapter 216, a keyboard and mouse adapter 220, a modem 222, a read-only memory (ROM) 224, a universal serial bus (USB) and other ports 232, and PCI / PCIe devices 234 are coupled to the southbridge and I / O controller hub 204 through a bus 238. A hard disk drive (HDD) or solid state drive (SSD) 226 and a CD-ROM 230 are coupled to the southbridge and I / O controller hub 204 through a bus 240. The PCI / PCIe devices 234 may include, for example, an Ethernet adapter, an add-in card, and a PC card for a notebook computer. PCI uses a card bus controller, while PCIe does not. The ROM 224 may be, for example, a flash binary input / output system (BIOS). The hard disk drive 226 and CD-ROM 230 may use, for example, an Integrated Device Electronics (IDE), a Serial Advanced Technology Attachment (SATA) interface, or variations thereof, such as external SATA (eSATA) and micro SATA (mSATA). A super I / O (SIO) device 236 may be coupled to the southbridge and I / O controller hub (SB / ICH) 204 through a bus 238.

[0081] Memories such as main memory 208, ROM 224, or flash memory (not shown) are some examples of computer-usable storage devices. Hard disk drives or solid state drives 226, CD-ROM 230, and other similarly usable devices are some examples of computer-usable storage devices that include computer-usable storage media.

[0082] An operating system executes on processing unit 206. The operating system coordinates and provides control of various components within data processing system 200 of Figure 2. The operating system may be a commercially available operating system for any computing platform, including, but not limited to, server systems, personal computers, and mobile devices. An object-oriented or other type of program system may operate in conjunction with the operating system and may provide calls to the operating system from programs or applications executing on data processing system 200.

[0083] 1 , instructions for the operating system, the object-oriented programming system, and applications or programs, such as application 105 of FIG. 1 , may be located on a storage device, for example in the form of code 226A on hard disk drive 226, and loaded into at least one of the one or more memories, for example, main memory 208, for execution by processing unit 206. The processes of the exemplary embodiments may be performed by processing unit 206 using computer-implemented instructions, which may be located in a memory, such as main memory 208, read-only memory 224, or one or more peripheral devices.

[0084] Furthermore, in one case, code 226A may be downloaded from remote system 201B over network 201A, while similar code 201C is stored in storage device 201D. In another case, code 226A may be downloaded to remote system 201B over network 201A, while the downloaded code 201C is stored in storage device 201D.

[0085] The hardware in Figures 1-2 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash memory, equivalent non-volatile memory, or optical disk drives, may be used in addition to or in place of the hardware depicted in Figures 1-2. The processes of the illustrative embodiments may also be applied to multiprocessor data processing systems.

[0086] In some illustrative examples, data processing system 200 may be a personal digital assistant (PDA) typically configured with flash memory to provide non-volatile memory for storing operating system files or user-generated data, or a combination thereof. The bus system may include one or more buses, e.g., a system bus, an I / O bus, and a PCI bus. Of course, the bus system may be implemented using any type of communications fabric or architecture that provides for a transfer of data between different components or devices coupled to the fabric or architecture.

[0087] The communications unit may include one or more devices, such as a modem or network adapter, used to transmit and receive data. The memory may be, for example, main memory 208 or a cache, such as found in northbridge and memory controller hub 202. The processing unit may include one or more processors or CPUs.

[0088] 1-2 and above-described examples are not meant to imply architectural limitations. For example, data processing system 200 may also be a tablet computer, a laptop computer, or a telephone device, in addition to taking the form of a mobile or wearable device.

[0089] When a computer or data processing system is described as a virtual machine, virtual device, or virtual component, the virtual machine, virtual device, or virtual component operates in the manner of data processing system 200 using virtualized artifacts of some or all of the components shown in data processing system 200. For example, in a virtual machine, virtual device, or virtual component, processing unit 206 appears as a virtualized instance of all or some of the hardware processing unit 206 available in the host data processing system, main memory 208 appears as a virtualized instance of all or some of the main memory 208 that may be available in the host data processing system, and disk 226 appears as a virtualized instance of all or some of the disk 226 that may be available in the host data processing system. The host data processing system in such a case is represented by data processing system 200.

[0090] 3, a block diagram of an exemplary configuration for multi-device connection management is shown, in accordance with an exemplary embodiment. Application 300 is an example of application 105 of FIG. 1 and executes on any of servers 104 and 106, clients 110, 112 and 114, and device 132 of FIG. 1.

[0091] The configuration module 310 associates one or more devices with a user account. Similarly, the configuration module 310 configures a rule set used to determine a usage score for a device associated with the account. The rule set specifies one or more components used to calculate the usage score, the calculation used to combine those components to arrive at the usage score, and how the score components are calculated from input data.

[0092] The application 300 receives user inputs such as user device selection and user-provided account configurations. The application 300 also receives device and sensor data for calculating a device usage score. The application 300 also receives communication requests for an account.

[0093] The device status module 320 collects and analyzes device data used to calculate one or more usage score components specified in the rule set. An example implementation of module 320 collects data used to calculate one or more of a connectivity factor, a device capabilities factor, a device usage factor, and a device location. The user status module 330 collects and analyzes data used to infer a user's location from the location of a device associated with the account or to directly determine a user's location using sensor data from the device associated with the account or a different device.

[0094] The usage score module 340 calculates usage score components specified in a rule set and applies a usage score calculation methodology specified in the rule set to determine a usage score for a device associated with an account. One implementation of module 340 calculates the usage score in response to a communication request. Another implementation of module 340 periodically calculates the usage score for one or more devices associated with an account so that the usage score is ready when a communication request is received. Another implementation of module 340 periodically collects data used to calculate the device usage score but waits to calculate the usage score until a communication request is received.

[0095] The device connection module 350 selects one or more devices based on their usage scores, presents the selected devices to the user of the account for connection, and, if the user accepts the connection, connects the sending device and the selected devices to fulfill the communication request. In one implementation of module 350, the devices are ranked based on their usage scores and the device with the highest usage score is selected. In another implementation of module 350, the devices are ranked based on their usage scores, determine that multiple devices have the highest usage scores and usage scores within a threshold difference of each other, select two or more of the multiple devices, present the selected devices to the user of the account for connection, and, if the user accepts the connection on one of the devices, connects the sending device and the selected device to fulfill the communication request.

[0096] Based on the user's selection and the components of the device usage score, the rules adjustment module 360 ​​adjusts the user preference factors, which the usage score module 340 will use in calculating one or more device usage scores for future communication requests.

[0097]

[0033] Referring to Figure 4, this figure shows a block diagram of an example configuration for multi-device connection management, according to an example embodiment. In particular, Figure 4 shows configuration module 310 of Figure 3 in more detail.

[0098] The device registration module 410 associates one or more devices with a user account. One implementation of module 410 receives user input associating a device with the account. Another implementation of module 410 automatically associates a device with the account. For example, when a user configures an application to use the account, the application automatically associates the device on which the application is running with the account. Another implementation of module 410 associates a device with the account using device discovery techniques, for example, by detecting and associating any new devices that join a known Wi-Fi or other communication network.

[0099] The rules module 420 configures and manages the rule sets used to determine the usage score for devices associated with an account. The rule sets specify one or more components used to calculate the usage score, the calculations used to combine those components to arrive at the usage score, and how the score components are calculated from input data. In one implementation of module 420, a user can manually configure some or all of the rule sets. Another implementation of module 420 includes a default rule set that is further adjusted based on user input, either during device configuration or learned from the user's device selection.

[0100] In an example implementation of module 420, the components of the usage score for a device associated with an account include a device connectivity factor, a device capability factor related to the nature of the connection request, a device usage factor for the device, a user preference factor, and a distance factor between the device and the user of the account. The distance factor is determined using the device's already available capabilities by inferring the user's location from the location of the device associated with the account, or by directly determining the user's location using sensor data from the device associated with the account or a different device.

[0101] Referring to Figure 5, this figure shows an example of multi-device connection management according to an example embodiment. This example can be performed using application 300 of Figure 3. Device registration module 410 is the same as device registration module 410 of Figure 4.

[0102] Device 502 is a smartphone that includes stylus input capabilities. Device 504 is a different smartphone that does not include stylus input capabilities. Device 506 is a tablet device. Device 508 is a laptop computer, and device 510 is a desktop computer. The device registration module 410 associates devices 502, 504, 506, 508, and 510 with a user account 520.

[0103] Referring to Figure 6, this figure shows a continuation of the example of multi-device connection management according to an exemplary embodiment. Device status module 320 is the same as device status module 320 of Figure 3. Devices 502, 504, 506, 508, and 510 are the same as devices 502, 504, 506, 508, and 510 of Figure 5.

[0104] Because devices 502, 504, 506, 508, and 510 are all associated with the same account, device status module 320 monitors each of them and collects results in device usage data 610. As shown, devices 502, 506, and 508 are at location 602 (e.g., the user's home), while devices 504 and 510 are at location 604 (e.g., the user's office).

[0105] Referring to Figure 7, this figure shows a continuation of the example of multi-device connection management according to an exemplary embodiment. User status module 330 is the same as user status module 330 of Figure 3. Devices 502, 504, 506, 508, and 510 are the same as devices 502, 504, 506, 508, and 510 of Figure 5. Locations 602 and 604 are the same as locations 602 and 604 of Figure 6.

[0106] At location 602, user 710 is 0 meters away from device 502, 1 meter away from device 506, and 10 meters away from device 508. Devices 504 and 510 are at location 604. User status module 330 collects and analyzes data used to infer the user's location from the locations of devices associated with the account, or to directly determine the user's location using sensor data from the devices associated with the account or from different devices. The results are tabulated in user status data 720. Note that because user 710 is at location 602, which is more than a threshold distance from the devices at location 604, module 330 did not attempt to determine the exact distance between user 710 and the devices at location 604.

[0107] Referring to Figure 8, this figure shows a continuation of the example of multi-device connection management according to an exemplary embodiment. Usage score module 340 is the same as usage score module 340 of Figure 3. Devices 502, 504, 506, 508, and 510 are the same as devices 502, 504, 506, 508, and 510 of Figure 5. Locations 602 and 604 and device usage data 610 are the same as locations 602 and 604 and device usage data 610 of Figure 6. User status data 720 is the same as user status data 720 of Figure 7.

[0108] As shown, usage score module 340 calculates usage score data 810 using device usage data 610 and user status data 720. Component scores for each element are shown in parentheses below the corresponding data on a common 0-100 scale. Thus, device 502 uses 4G for its data connection, resulting in a connectivity element score of 40. Device 502 is located 0 meters from user 710, resulting in a distance element between the device and the account's user of 100. User 710's most recent access to device 502 was 5 minutes ago, resulting in a score of 95, and the user's average usage time for this device is 100 minutes, resulting in a score of 100. Module 340 uses a rule set that simply averages the score components together, resulting in a usage score of 83.75 for device 502. Usage scores for devices 506 and 508 were calculated similarly. Usage scores for devices 504 and 510 were not calculated because these devices were beyond the threshold distance from user 710 and therefore unavailable. Please note that the exemplary data, corresponding utilization scores, and rules used to calculate the exemplary scores are examples only and are not intended to suggest any particular required scores or score calculation methodology.

[0109] Referring to Figure 9, this figure shows a continuation of the example of multi-device connection management according to an exemplary embodiment. Device connection module 350 is the same as device connection module 350 of Figure 3. Device 502 is the same as device 502 of Figure 5. Location 602 is the same as location of Figure 6. Usage score data 810 is the same as usage score data 810 of Figure 8.

[0110] Here, because device 502 had the highest score in usage score data 810, device connection module 350 generates presentation 910 in which device 502 is presented to user 710 to respond to a connection request.

[0111] 10, this figure shows a continuation of the example of multi-device connection management according to an exemplary embodiment. Device connection module 350 is the same as device connection module 350 of FIG. 3. Devices 502 and 506 are the same as devices 502 and 506 of FIG. 5.

[0112] Here, device 502 is 0 meters away from user 710, and device 506 is 1 meter away from user 710. Devices 502 and 506 and user 710 are all at location 1002. As such, usage score module 340 calculates usage score data 1010, in which devices 502 and 506 have usage scores that are within a predetermined threshold distance of each other. As such, device connection module 350 generates presentation 1020, in which both devices 502 and 506 are presented to user 710 for responding to a connection request.

[0113] 11, this figure shows a continuation of the example of multi-device connection management according to an exemplary embodiment. Rule adjustment module 360 ​​is the same as rule adjustment module 360 ​​of FIG. 3. Devices 502 and 506 are the same as devices 502 and 506 of FIG. 5.

[0114] Here, both devices 502 and 506 are presented. In user selection 1102, user 710 selects device 506. As such, rule adjustment module 360 ​​generates rule adjustment 1110, which indicates that if devices 502 and 506 have usage scores that are within a predetermined threshold distance of each other, then device 506 should be selected to respond to future communication requests.

[0115] 12, a flowchart of an example process for multi-device connection management according to an example embodiment is shown. The process 1200 may be implemented in the application 300 of FIG.

[0116] In block 1202, the application associates a set of devices with an account. In block 1204, the application configures a rule set used to determine usage scores for devices associated with the account. In block 1206, the application receives a connection request to establish communication between a sending device and a device associated with the account. In block 1208, the application analyzes device usage data to determine usage scores for one or more devices in the set. In block 1210, the application determines whether multiple device scores are within a threshold of each other. If not (the "NO" path of block 1210), in block 1212, the application presents the device with the highest score for connection, then in block 1214, the application connects the presented device to the sending device, and then the application terminates. Otherwise (the "YES" path out of block 1210), the application presents multiple devices for connection in block 1216, the application uses the user's device selection to adjust the user preference factor in the usage score determination in block 1218, and the application connects the selected device to the sending device in block 1220. The application then terminates.

[0117] Referring now to FIG. 13, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 comprises one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or any combination thereof, may communicate. The nodes 10 may communicate with each other. The nodes may be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud, or any combination thereof, as described above. This enables the cloud computing environment 50 to provide infrastructure-as-a-service, platform-as-a-service, or software-as-a-service, or any combination thereof, without the need for cloud consumers to maintain resources on local computing devices. It should be understood that the types of computing devices 54A-N shown are for illustrative purposes only, and that the computing nodes 10 and the cloud computing environment 50 can communicate with any type of computerized device through any type of network or network-addressable connection (e.g., using a web browser), or both.

[0118] 14, there is shown a set of functional abstraction layers provided by cloud computing environment 50 (FIG. 13). It should be understood in advance that the components, layers, and functions shown are intended to be illustrative only, and that embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0119] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (Minimum Instruction Set Computer) architecture-based server 62, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0120] The virtualization layer 70 provides an abstraction layer from which the following example virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.

[0121] In one example, the management layer 80 may provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing resources and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and charging or billing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification of cloud consumers and protection for tasks, data, and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance arrangements and procurement for cloud computing resources that anticipate future requirements according to SLAs.

[0122] The workload tier 90 provides examples of functionality for which a cloud computing environment may be utilized. Non-limiting examples of workloads and functions that may be provided from this tier include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and application selection based on synthetic system fault generation software 96.

[0123] As such, computer-implemented methods, systems or apparatus, and computer program products are provided in exemplary embodiments for multi-device connection management and other related features, functions, or operations. When an embodiment, or portions thereof, are described with respect to a certain type of device, computer-implemented method, system, or apparatus, the computer program product, or portions thereof, is adapted or configured for use with a suitable and equivalent article for that type of device.

[0124] When an embodiment is described as being implemented in an application, provision of the application in a software-as-a-service (SaaS) model is contemplated within the scope of the exemplary embodiments. In the SaaS model, the capabilities of an application implementing an embodiment are provided to a user by running the application in a cloud infrastructure. Users can access the application through a thin-client interface, such as a web browser (e.g., web-based email) or other lightweight client application, using a variety of client devices. Users do not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage of the cloud infrastructure. In some cases, users may not even manage or control the capabilities of the SaaS application. In some other cases, a SaaS implementation of an application may allow for possible exceptions to limited user-specific application configuration settings.

[0125] The present invention may be a system, method, apparatus, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions for causing a processor to perform aspects of the present invention.

[0126] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. Computer-readable storage media may be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer-readable storage media may also include portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding devices such as punch cards or raised structures in grooves on which instructions are recorded, and any suitable combination of the above. Computer-readable storage media, as used herein, should not be interpreted as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagated through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.

[0127] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.

[0128] The computer-readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk®, C++, or the like, or conventional procedural programming languages ​​such as the “C” programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a 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 to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, to carry out aspects of the present invention, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry.

[0129] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. 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-readable program instructions.

[0130] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to cause a machine, whereby the instructions executing via the processor of the computer or other programmable data processing apparatus form means for implementing the functions / acts specified in a block or blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium that can cause a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium having stored thereon has an article of manufacture including instructions that implement aspects of the functions / acts specified in a block or blocks of the flowcharts and / or block diagrams.

[0131] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device and cause a series of operational steps to be executed on the computer, other programmable apparatus, or other device to generate a computer-implemented process, whereby the instructions executing on the computer, other programmable apparatus, or other device implement the function / act specified in the flowchart and / or block diagram block or blocks.

[0132] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may actually be executed as a single step, may be executed concurrently or substantially concurrently, in a partially or fully overlapping manner, or the blocks may be executed in the reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or acts or executes a combination of dedicated hardware and computer instructions. According to this specification, the following items are also disclosed. [Item 1] receiving a connection request for an account, the account being associated with a set of devices, the connection request including a request to establish communication between a sending device and a device associated with the account; determining a usage score for a first device in the set of devices by analyzing device usage data for the first device; presenting the first device for connection based on the utilization score of the first device; connecting the sending device and the first device in response to the presentation; A computer-implemented method comprising: [Item 2] further comprising associating the set of devices with the account. Item 1. The computer-implemented method of item 1. [Item 3] configuring, for the account, a rule set used to determine the usage score for the first device. Item 3. The computer-implemented method of item 1 or 2. [Item 4] positioning the user relative to the location of the first device from a set of sensor data; and adjusting the usage score in response to the ranking. 4. The computer-implemented method of any one of items 1 to 3. [Item 5] determining a second usage score for the second device and a third usage score for the third device by analyzing device usage data for a second device and a third device in the set of devices; presenting the second device and the third device for selection based on the second usage score and the third usage score; and connecting the sending device and the second device in response to the selection of the second device. 5. The computer-implemented method of any one of items 1 to 4. [Item 6] adjusting a user preference factor in response to selection of the second device; receiving a second connection request for the account; using the adjusted user preference factors, second device usage data for the second device, and third device usage data for the third device to determine an updated second usage score for the second device and an updated third usage score for the third device; and presenting the second device for connection based on the updated second usage score and the updated third usage score. Item 6. The computer-implemented method of item 5. [Item 7] A computer program for managing multi-device connections, comprising: The processor receiving a connection request for an account, the account being associated with a set of devices, the connection request including a request to establish communication between a sending device and a device associated with the account; determining a usage score for a first device in the set of devices by analyzing device usage data for the first device; presenting the first device for connection based on the utilization score of the first device; connecting the sending device and the first device in response to the presentation; A computer program for executing [Item 8] the processor, and associating the set of devices with the account. Item 7. The computer program according to item 7. [Item 9] the processor, and configuring the account for a rule set used to determine the usage score for the first device. 9. The computer program according to item 7 or 8. [Item 10] the processor, positioning the user relative to the location of the first device from a set of sensor data; and adjusting the usage score in response to the ranking. 10. A computer program according to any one of items 7 to 9. [Item 11] the processor, determining a second usage score for a second device and a third usage score for a third device by analyzing device usage data for a second device and a third device in the set of devices; presenting the second device and the third device for selection based on the second usage score and the third usage score; and in response to the selection of the second device, connecting the transmitting device and the second device. 11. A computer program according to any one of items 7 to 10. [Item 12] the processor, adjusting a user preference factor in response to selection of the second device; receiving a second connection request for the account; using the adjusted user preference factors, second device usage data for the second device, and third device usage data for the third device to determine an updated second usage score for the second device and an updated third usage score for the third device; and presenting the second device for connection based on the updated second usage score and the updated third usage score. Item 12. The computer program according to item 11. [Item 13] 13. The computer program of any one of items 7 to 12, wherein the computer program is stored in at least one of one or more computer-readable storage media of a local data processing system, and the computer program is transferred from a remote data processing system over a network. [Item 14] 14. The computer program of any one of claims 7 to 13, wherein the computer program is stored on at least one of one or more computer-readable storage media of a server data processing system, and the computer program is downloaded over a network to a remote data processing system for use in a computer-readable storage device associated with the remote data processing system. [Item 15] 15. The computer program of any one of items 7 to 14, wherein the computer program is provided as a service in a cloud environment. [Item 16] 1. A computer system comprising: one or more processors; one or more computer-readable memories; one or more computer-readable storage devices; and program instructions stored in at least one of said one or more storage devices for execution by at least one of said one or more processors via at least one of said one or more memories, The stored program instructions are: program instructions for receiving a connection request for an account, the account being associated with a set of devices, the connection request including a request to establish communication between a sending device and a device associated with the account; program instructions for determining a usage score for a first device in the set of devices by analyzing device usage data for the first device; program instructions for presenting the first device for connection based on the utilization score of the first device; program instructions for connecting the sending device and the first device in response to the presentation; A computer system comprising: [Item 17] further comprising program instructions for associating the set of devices with the account. Item 17. The computer system of item 16. [Item 18] and further comprising program instructions for configuring, for the account, a rule set used to determine the usage score of the first device. 18. The computer system according to item 16 or 17. [Item 19] program instructions for positioning a user relative to a location of the first device from a set of sensor data; and adjusting the usage score in response to the ranking. 19. The computer system of any one of items 16 to 18. [Item 20] program instructions for analyzing device usage data of a second device and a third device in the set of devices to determine a second usage score for the second device and a third usage score for the third device; program instructions for presenting the second device and the third device for selection based on the second usage score and the third usage score; and program instructions for connecting the sending device and the second device in response to selection of the second device. 20. The computer system of any one of items 16 to 19.

Claims

1. receiving a connection request for an account, the account being associated with a set of devices, the connection request including a request to establish communication between a sending device and a device associated with the account; determining a usage score for a first device in the set of devices by analyzing device usage data for the first device; presenting the first device for connection based on the utilization score of the first device; connecting the sending device and the first device in response to the presentation; A computer-implemented method comprising:

2. further comprising associating the set of devices with the account. The computer-implemented method of claim 1 .

3. configuring, for the account, a rule set used to determine the usage score for the first device.

3. The computer-implemented method of claim 1 or 2.

4. positioning the user relative to the location of the first device from a set of sensor data; and adjusting the usage score in response to the ranking. A computer-implemented method according to any one of claims 1 to 3.

5. determining a second usage score for the second device and a third usage score for the third device by analyzing device usage data for a second device and a third device in the set of devices; presenting the second device and the third device for selection based on the second usage score and the third usage score; and connecting the sending device and the second device in response to the selection of the second device. A computer-implemented method according to any one of claims 1 to 4.

6. adjusting a user preference factor in response to selection of the second device; receiving a second connection request for the account; determining an updated second usage score for the second device and an updated third usage score for the third device using the adjusted user preference factor, second device usage data for the second device, and third device usage data for the third device; and presenting the second device for connection based on the updated second usage score and the updated third usage score. The computer-implemented method of claim 5 .

7. A computer program for managing multi-device connections, comprising: The processor receiving a connection request for an account, the account being associated with a set of devices, the connection request including a request to establish communication between a sending device and a device associated with the account; determining a usage score for a first device in the set of devices by analyzing device usage data for the first device; presenting the first device for connection based on the utilization score of the first device; connecting the sending device and the first device in response to the presentation; A computer program for executing

8. the processor, and associating the set of devices with the account.

8. A computer program according to claim 7.

9. the processor, and configuring the account for a rule set used to determine the usage score for the first device.

9. A computer program according to claim 7 or 8.

10. the processor, positioning the user relative to the location of the first device from a set of sensor data; and adjusting the usage score in response to the ranking. A computer program according to any one of claims 7 to 9.

11. the processor, determining a second usage score for a second device and a third usage score for a third device by analyzing device usage data for a second device and a third device in the set of devices; presenting the second device and the third device for selection based on the second usage score and the third usage score; and in response to the selection of the second device, connecting the transmitting device and the second device. A computer program according to any one of claims 7 to 10.

12. the processor, adjusting a user preference factor in response to selection of the second device; receiving a second connection request for the account; determining an updated second usage score for the second device and an updated third usage score for the third device using the adjusted user preference factors, second device usage data for the second device, and third device usage data for the third device; and presenting the second device for connection based on the updated second usage score and the updated third usage score.

12. A computer program according to claim 11.

13. 13. A computer program according to any one of claims 7 to 12, wherein the computer program is stored on at least one of one or more computer-readable storage media of a data processing system that executes the computer program, and wherein the computer program is downloaded from a remote data processing system over a network.

14. 14. A computer program according to any one of claims 7 to 13, wherein the computer program is stored on at least one of one or more computer-readable storage media of a server data processing system, and the computer program is downloaded over a network to a remote data processing system for use on a computer-readable storage device associated with the remote data processing system.

15. The computer program according to claim 7 , wherein the computer program is provided as a service in a cloud environment.

16. 1. A computer system comprising: one or more processors; one or more computer-readable memories; one or more computer-readable storage devices; and program instructions stored in at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, The stored program instructions are: program instructions for receiving a connection request for an account, the account being associated with a set of devices, the connection request including a request to establish communication between a sending device and a device associated with the account; program instructions for determining a usage score for a first device in the set of devices by analyzing device usage data for the first device; program instructions for presenting the first device for connection based on the utilization score of the first device; program instructions for connecting the sending device and the first device in response to the presentation; A computer system comprising:

17. further comprising program instructions for associating the set of devices with the account.

17. The computer system of claim 16.

18. and further comprising program instructions for configuring, for the account, a rule set used to determine the usage score of the first device.

18. A computer system according to claim 16 or 17.

19. program instructions for positioning a user relative to a location of the first device from a set of sensor data; and adjusting the usage score in response to the ranking.

19. A computer system according to any one of claims 16 to 18.

20. program instructions for analyzing device usage data of a second device and a third device in the set of devices to determine a second usage score for the second device and a third usage score for the third device; program instructions for presenting the second device and the third device for selection based on the second usage score and the third usage score; and program instructions for connecting the sending device and the second device in response to selection of the second device.

20. A computer system according to any one of claims 16 to 19.

Citation Information

Patent Citations

  • Personalized configuration method and device for vehicle, electronic equipment and storage medium

    CN111907443A

  • Method and computer-readable recording medium for managing sent message in messenger server

    US20150134753A1

  • Facilitating location of and interaction with a convenient communication device

    US20170026974A1

  • Channel recommendation system and method

    US20180146062A1

  • Communication control device and method

    WO2005053298A1