IP Library Granted Patent US 8,984,480
Granted Patent B2
US 8,984,480 · App. 13/545,330 · Granted Mar 17, 2015

Automating and/or recommending data sharing coordination among applications in mobile devices

Inventors: Rangachari Anand (Teaneck, NJ); Stacy F. Hobson (Poughkeepsie, NY); Juhnyoung Lee (Yorktown Heights, NY); Yuan Wang (Liaoning, CN); Jing Min Xu (Beijing, CN); Jeaha Yang (Stamford, CT)
Assignee: International Business Machines Corporation
G06F9/544
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,984,480
App. No.
13/545,330
Granted
Mar 17, 2015
Kind
B2
Abstract

Coordinating data sharing among applications in mobile devices, in one aspect, may include a shared data manager application on a mobile device that manages data trade requirements automatically of a plurality of mobile applications, and permission grants or denials to reads and writes of data managed by the shared data manager and used by the plurality of mobile applications.

Claims (97)

1. A method of coordinating data sharing among applications in a mobile device,comprising:

constructing, by a processor, a data trade dependency graph based at least on one or more mobile applications existing on the mobile device and data trade information associated with the mobile applications, the data trade dependency graph including one or more application nodes representing the one or more mobile applications respectively, and one or more data attribute nodes that represent one or more data attributes associated with the one or more mobile applications;

determining a best-matching candidate application to deploy to the mobile device from a set of candidate applications based on the data trade dependency graph;

determining data conflict information for all of the candidate applications based on the data trade dependency graph;

determining newly enabled and added function information for all candidate applications;

determining data gap information for all candidate applications; and

presenting the best-matching candidate application and data sharing analysis information gathered from the determined data conflict information, the determined newly enabled and added function information, and the determined data gap information.

2. The method of claim 1 , further including enabling a user to modify the determined best-matching candidate application, the determined data conflict information, the determined newly enabled and added function information, and the determined data gap information.

3. The method of claim 1 , wherein the determining a best-matching candidate application to deploy to the mobile device comprises:

selecting a candidate application from the set of candidate applications;

reconstructing the data trade dependency graph to further include the selected candidate application;

accumulating all length of two-hop paths between the selected candidate application and all of the existing mobile applications in the reconstructed data trade dependency graph;

repeating the selecting, reconstructing and accumulating for another candidate application from the set of candidate applications until all of the candidate applications in the set are selected;

comparing the accumulated length of all of the candidate applications; and

choosing the candidate application with largest accumulated length as the best-matching candidate application.

4. The method of claim 1 , wherein the determining data conflict information comprises:

selecting a data attribute node from said one or more data attribute nodes in the data trade dependency graph;

determining whether two or more applications have write access to data represented by the selected data attribute node, and it is determined that two or more applications have write access to data represented by the selected data attribute node, identifying a conflict.

5. The method of claim 1 , wherein the determining newly enabled and added function information comprises:

identifying granted data trade previously ungranted based on the data trade dependency graph;

identifying a disabled function in said one or more mobile applications that uses the identified granted data trade, wherein the identified disabled function can be enabled; and

identifying an addable function to said one or more mobile applications that uses the identified granted data trade.

6. The method of claim 1 , wherein the determining data gap information comprises:

adding one or more new application nodes to the data trade dependency graph;

adding one or more links between the one or more new application nodes and the one or more data attribute nodes that the one or more new applications use;

determining whether the one or more data attribute nodes that the one or more new applications use are offered by said one or more mobile applications; and

in response to determining that the one or more data attribute nodes that the one or more new applications use are not offered by said one or more mobile applications, identifying a data gap.

7. A method of coordinating data sharing among applications in a mobile device,comprising:

constructing, by a processor, a data trade dependency graph based at least on one or more mobile applications existing on the mobile device and data trade information associated with the mobile applications, the data trade dependency graph including one or more application nodes representing the one or more mobile applications respectively, and one or more data attribute nodes that represent one or more data attributes associated with the one or more mobile applications;

selecting a candidate data trade that is un-granted from the data trade dependency graph;

selecting an optimization rule to apply;

evaluating whether to grant data trade to the candidate data trade based on the selected optimization rule;

computing a priority for each of the evaluated candidate data trade considered for granting; and

generating a permission recommendation ranked by the priority,

wherein data trade permissions are automatically determined.

8. The method of claim 7 , further comprising:

enabling a user to manually modify the permission recommendation.

9. The method of claim 7 , wherein the selected optimization rule comprises maximizing data sharing rule and the evaluating comprises:

computing an accumulated length of two-hop paths added by the selected candidate data trade;

placing the selected candidate data trade into a permission group if the accumulated length is not zero;

setting a priority of trades in the permission group by the accumulated length;

setting the priority of trades not in the permission group to zero; and

returning the trades in the permission group.

10. The method of claim 7 , wherein the selected optimization rule comprises minimizing data conflicts rule and the evaluating comprises:

placing all ungranted outbound links from the node representing the selected data trade into a permission group;

determining whether the node has one or more granted inbound links;

if the node does not have one or more granted inbound links, selecting an inbound link that has maximum weight from all un-granted inbound links and placing the selected inbound link in the permission group;

repeating the determining, selecting and placing for all of the data attribute nodes;

setting priority of data trade in the permission group by added length of two-hop paths by the data trade;

setting priority of un-granted trades that are not in the permission group; and

retuning one or more data trades in the permission group.

11. The method of claim 7 , wherein the data trade permissions are for newly subscribed applications.

12. The method of claim 7 , wherein the data trade permissions are for the existing mobile applications.

13. A non-transitory computer readable storage medium storing a program of instructions executable by a machine to perform a method of coordinating data sharing among applications in mobile devices, comprising:

constructing, by a processor, a data trade dependency graph based at least on one or more mobile applications existing on the mobile device and data trade information associated with the mobile applications, the data trade dependency graph including one or more application nodes representing the one or more mobile applications respectively, and one or more data attribute nodes that represent one or more data attributes associated with the one or more mobile applications;

determining a best-matching candidate application to deploy to the mobile device from a set of candidate applications based on the data trade dependency graph;

determining data conflict information for all of the candidate applications based on the data trade dependency graph;

determining newly enabled and added function information for all candidate applications;

determining data gap information for all candidate applications; and

presenting the best-matching candidate application and data sharing analysis information gathered from the determined data conflict information, the determined newly enabled and added function information, and the determined data gap information.

14. The non-transitory computer readable storage medium of claim 13 , further including enabling a user to modify the determined best-matching candidate application, the determined data conflict information, the determined newly enabled and added function information, and the determined data gap information.

15. The non-transitory computer readable storage medium of claim 13 , wherein the determining a best-matching candidate application to deploy to the mobile device comprises:

selecting a candidate application from the set of candidate applications;

reconstructing the data trade dependency graph to further include the selected candidate application;

accumulating all length of two-hop paths between the selected candidate application and all of the existing mobile applications in the reconstructed data trade dependency graph;

repeating the selecting, reconstructing and accumulating for another candidate application from the set of candidate applications until all of the candidate applications in the set are selected;

comparing the accumulated length of all of the candidate applications; and

choosing the candidate application with largest accumulated length as the best-matching candidate application.

16. The non-transitory computer readable storage medium of claim 13 , wherein the determining data conflict information comprises:

selecting a data attribute node from said one or more data attribute nodes in the data trade dependency graph;

determining whether two or more applications have write access to data represented by the selected data attribute node, and it is determined that two or more applications have write access to data represented by the selected data attribute node, identifying a conflict.

17. The non-transitory computer readable storage medium of claim 13 , wherein the determining newly enabled and added function information comprises:

identifying granted data trade previously ungranted based on the data trade dependency graph;

identifying a disabled function in said one or more mobile applications that uses the identified granted data trade, wherein the identified disabled function can be enabled; and

identifying an addable function to said one or more mobile applications that uses the identified granted data trade.

18. The non-transitory computer readable storage medium of claim 13 , wherein the determining data gap information comprises:

adding one or more new application nodes to the data trade dependency graph;

adding one or more links between the one or more new application nodes and the one or more data attribute nodes that the one or more new applications use;

determining whether the one or more data attribute nodes that the one or more new applications use are offered by said one or more mobile applications; and

in response to determining that the one or more data attribute nodes that the one or more new applications use are not offered by said one or more mobile applications, identifying a data gap.

19. A system for coordinating data sharing among applications, comprising:

a mobile device having a processor;

a shared data manager module deployed on the mobile device and operable to execute on the processor, the shared data manager comprising:

a data trade dependency graph constructor operable to construct a data trade dependency graph based at least on one or more mobile applications existing on the mobile device and data trade information associated with the mobile applications, the data trade dependency graph including one or more application nodes representing the one or more mobile applications respectively, and one or more data attribute nodes that represent one or more data attributes associated with the one or more mobile applications;

a best-match app analyzer operable to determine a best-matching candidate application to deploy to the mobile device from a set of candidate applications based on the data trade dependency graph;

a data conflict analyzer operable to determine data conflict information for all of the candidate applications based on the data trade dependency graph;

a new enabled and added function detector operable to determine newly enabled and added function information for all candidate applications;

a data gap analyzer operable to determine data gap information for all candidate applications; and

an app recommender operable to invoke the best-match app analyzer, the data conflict analyzer, the new enabled and added function detector, and the data gap analyzer, the app recommender further operable to present the best-matching candidate application and data sharing analysis information gathered from the determined data conflict information, the determined newly enabled and added function information, and the determined data gap information.

20. The system of claim 19 , wherein the shared data manager is further operable to enable a user to manually modify the best-matching candidate application and data sharing analysis information.

21. The system of claim 19 , wherein the shared data manager further comprises:

a data trade handler operable to select a candidate data trade that is un-granted from the data trade dependency graph;

a data sharing optimization rule engine operable to apply a selected optimization rule and evaluate whether to grant data trade to the candidate data trade based on the selected optimization rule;

a graph algorithm library module operable to compute a priority for each of the evaluated candidate data trade considered for granting;

the data sharing optimization rule engine further operable to generate a permission recommendation ranked by the priority;

the data trade handler further operable to present the permission recommendation.

22. The system of claim 19 , further including and a shared data manager operational database operable to store information associated with a plurality of mobile applications, wherein the data trade dependency graph constructor is further operable to retrieve the information for constructing the data trade dependency graph.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2012
From: ANAND, RANGACHARI; HOBSON, STACY F.; LEE, JUHNYOUNG; WANG, YUAN; XU, JING MIN; YANG, JEAHA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028521/0682 →
Continuity (1)
Related Publication 20140020043A1 · Jan 16, 2014