Api推薦方法及api推薦裝置制造方法
【專利摘要】本申請實施例公開了一種應用開發(fā)接口API推薦方法及推薦裝置,所述方法包括:獲取多個權限的安全風險聚類信息;確定所述多個權限中一應用程序已使用的一權限;根據(jù)所述安全風險聚類信息和所述已使用的權限確定所述多個權限中與所述已使用的權限相關的至少一權限;根據(jù)所述至少一權限確定至少一API。本申請實施例的至少一個實施方案使得集成開發(fā)環(huán)境可以基于安全風險和功能因素給開發(fā)者提供可供選擇的API,進而使得開發(fā)者可以快速準確的選擇具有合適的安全風險和功能的API。
【專利說明】API推薦方法及API推薦裝置
【技術領域】
[0001] 本申請涉及一種數(shù)據(jù)處理方法,尤其涉及一種API推薦方法及API推薦裝置。
【背景技術】
[0002] 近年來隨著移動設備與移動互聯(lián)網(wǎng)的高速發(fā)展,移動應用程序的數(shù)量出現(xiàn)了爆 炸式的增長。與此同時,移動應用程序的功能被極大的擴展,用以豐富和滿足用戶各種各 樣的需求,例如:基于位置的服務(Location Based Services, LBS),基于社交平臺的服務 (Social Networking Services, SNS),等等。事實上,這些豐富的功能依賴于各種用戶數(shù)據(jù) 和設備的使用權限,例如位置訪問權、通訊錄訪問權、短信訪問權等等。這些訪問權限的使 用,使得用戶產(chǎn)生了對于自身隱私、安全的擔心。
[0003] 豐富的API往往給應用程序的開發(fā)者帶來困惑--不知道為了實現(xiàn)一個功能應該 使用哪些應用開發(fā)接口(Application Programming Interface, API)以達到更好的效果。 為了降低門檻,也為了開發(fā)者更高效的工作,集成開發(fā)環(huán)境提供者常常會在相應的開發(fā)環(huán) 境中提供基于如綴匹配的API提不/推薦等功能。
【發(fā)明內容】
[0004] 本申請的目的是:提供一種基于安全風險的API推薦技術。
[0005] 第一方面,本申請一個實施方案提供了一種API推薦方法,包括:
[0006] 獲取多個權限的安全風險聚類信息;
[0007] 確定所述多個權限中一應用程序已使用的一權限;
[0008] 根據(jù)所述安全風險聚類信息和所述已使用的權限確定所述多個權限中與所述已 使用的權限相關的至少一權限;
[0009] 根據(jù)所述至少一權限確定至少一 API。
[0010] 第二方面,本申請一個實施方案提供了一種API推薦裝置,包括:
[0011] 聚類信息獲取模塊,用于獲取多個權限的安全風險聚類信息;
[0012] 已使用權限確定模塊,用于確定所述多個權限中一應用程序已使用的一權限;
[0013] 相關權限確定模塊,用于根據(jù)所述安全風險聚類信息和所述已使用的權限確定所 述多個權限中與所述已使用的權限相關的至少一權限;
[0014] API確定模塊,用于根據(jù)所述至少一權限確定至少一 API。
[0015] 第三方面,本申請一個實施方案提供了一種電子設備,包括上面所述的API推薦 裝直。
[0016] 本申請實施例的至少一個實施方案通過一應用程序中已使用的權限來找到與該 權限安全風險相似的權限,并根據(jù)這些安全風險相似的權限來得到相關的應用程序所使用 的API,進而對應用程序的開發(fā)者進行基于安全風險的API推薦。使得集成開發(fā)環(huán)境可以基 于安全風險和功能因素給開發(fā)者提供可供選擇的API,進而使得開發(fā)者可以快速準確的選 擇具有合適的安全風險和功能的API。
【專利附圖】
【附圖說明】
[0017] 圖1為本申請實施例的一種API推薦方法的流程圖;
[0018] 圖2為本申請實施例的一種API推薦方法獲取安全風險聚類信息的流程圖;
[0019] 圖3a為本申請實施例的一種API推薦方法中應用程序與權限的二部圖示意圖;
[0020] 圖3b為本申請實施例一種API推薦方法的應用場景示意圖;
[0021] 圖4為本申請實施例一種API推薦裝置的結構示意框圖;
[0022] 圖5a為本申請實施例一種API推薦裝置的聚類信息獲取模塊的結構示意框圖;
[0023] 圖5b為本申請實施例一種API推薦裝置的聚類信息獲取模塊的結構示意框圖;
[0024] 圖5c為本申請實施例一種API推薦裝置的權值確定子模塊的結構示意框圖;
[0025] 圖5d和5e分別為本申請實施例兩種API推薦裝置的權限聚類單元的結構示意框 圖;
[0026] 圖6a為本申請實施例又一種API推薦裝置的結構示意框圖;
[0027] 圖6b為本申請實施例一種API推薦裝置的已使用權限確定模塊的結構示意框 圖;
[0028] 圖6c為本申請實施例一種API推薦裝置的API確定模塊的結構示意框圖;
[0029] 圖6d為本申請實施例一種API推薦裝置的API確定子模塊的結構示意框圖;
[0030] 圖7為本申請實施例一種電子設備的結構示意框圖;
[0031] 圖8為本申請實施例再一種API推薦裝置的結構示意框圖。
【具體實施方式】
[0032] 下面結合附圖(若干附圖中相同的標號表示相同的元素)和實施例,對本申請的
【具體實施方式】作進一步詳細說明。以下實施例用于說明本申請,但不用來限制本申請的范 圍。
[0033] 本領域技術人員可以理解,本申請中的"第一"、"第二"等術語僅用于區(qū)別不同步 驟、設備或模塊等,既不代表任何特定技術含義,也不表示它們之間的必然邏輯順序。
[0034] 本申請發(fā)明人發(fā)現(xiàn)應用程序開發(fā)者在開發(fā)過程中選擇API時還要考慮到用戶對 安全風險方面的需求,因此,如圖1所示,本申請實施例提供了一種API推薦方法,包括:
[0035] S110獲取多個權限的安全風險聚類信息;
[0036] S120確定所述多個權限中一應用程序已使用的一權限;
[0037] S130根據(jù)所述安全風險聚類信息和所述已使用的權限確定所述多個權限中與所 述已使用的權限相關的至少一權限;
[0038] S140根據(jù)所述至少一權限確定至少一 API。
[0039] 舉例來說,本發(fā)明提供的API推薦裝置作為本實施例的執(zhí)行主體,執(zhí)行S110? S140。具體地,所述API推薦裝置可以以軟件、硬件或軟硬件結合的方式設置在用戶設備或 服務器設備中。
[0040] 本申請實施例的至少一個實施方案通過一應用程序中已使用的權限來找到與該 權限安全風險相似的權限,并根據(jù)這些安全風險相似的權限來得到相關的應用程序所使用 的API,進而對應用程序的開發(fā)者進行基于安全風險的API推薦。使得集成開發(fā)環(huán)境可以基 于安全風險和功能因素給開發(fā)者提供可供選擇的API,進而使得開發(fā)者可以快速準確的選 擇具有合適的安全風險和功能的API。
[0041] 通過下面的實施方式進一步說明本申請方法的各步驟:
[0042] S110獲取多個權限的安全風險聚類信息。
[0043] 在本申請實施例中,所述多個權限的安全風險聚類信息為基于安全風險對所述多 個權限進行聚類的信息,例如可以包括:多個安全風險分組,例如可以包括:高風險組、中 風險組、低風險組;每個安全風險分組中包括的一個或多個權限。其中,屬于同一安全風險 組的多個權限的安全風險相同或相似。
[0044] 如圖2所示,在本申請實施例一種可能的實施方式中,可以通過下面的方法來獲 取所述安全風險聚類信息:
[0045] S111確定多個應用程序與所述多個權限之間的多個申請關系;其中,所述多個申 請關系中的每個申請關系對應于所述多個應用程序中的一應用程序申請所述多個權限中 的一權限;
[0046] S112確定所述多個申請關系中每個申請關系的權值;
[0047] S113根據(jù)所述每個申請關系的所述權值對所述多個權限進行安全風險聚類,得到 所述安全風險聚類信息。
[0048] 本實施方式中,通過圖2所示的安全風險聚類方法來對多個權限進行安全風險聚 類,使得安全風險相似的權限被歸為同一安全風險分組中,便于后續(xù)步驟基于安全風險對 所述多個權限進行的處理。
[0049] 如圖3a所示,在本申請實施例中,發(fā)明人考慮到應用程序和權限的特性,提出了 基于二部圖的模型,來確定應用程序與權限之間的關系。其中,將多個應用程序作為二部圖 中的第一組節(jié)點,將多個權限作為二部圖中的第二組節(jié)點,兩組節(jié)點之間的連接由應用程 序與權限的申請關系確定,即,當且僅當一應用程序申請了一權限時,所述應用程序與所述 權限之間具有申請關系,建立有連接。
[0050] 下面結合圖3a所示的二部圖進一步說明本申請實施例的步驟S111?S113 :
[0051] 在本申請實施例中,通過圖3a所示的二部圖表示本申請實施例多個應用程序與 多個權限之間的關系,其中所述二部圖G可以表示為:G= {V,E,ff},其中,
[0052] V 為節(jié)點集,有 V = {Va,Vp},
[0053] Va為應用程序集,包括所述多個應用程序ai?aM,即Va = {叫,· · ·,aM},Μ為所 述多個應用程序的個數(shù),為正整數(shù);
[0054] Vp為權限集,包括所述多個權限Pi?ρΝ,即Vp = {ρρ · · ·,ρΝ} ;Ν為所述多個權 限的個數(shù),為正整數(shù);
[0055] Ε為申請關系集,其中,當且僅當所述多個應用程序中的一應用程序ai申請了所 述多個權限中的一權限h時,存在一申請關系e E ;
[0056] W為權值集,一權值Wij e W表示所述申請關系eij的權值。
[0057] 如圖2所示的實施方式中,二部圖包括4個應用程序?a4,3個權限Pl?p 3, (在圖2所示實施例中,所述應用程序ai?a4分別為:憤怒的小鳥(游戲類)、切水果(游 戲類)、臉譜(社交類)以及麥塊(游戲類);所述權限pl為讀取手機狀態(tài)、權限P2為訪問 精確位置、權限P3表示讀取聯(lián)系人);申請關系集包含8個申請關系(圖2中通過應用程序 與權限之間的連線表示):en,e12, e21,e22, e32, e33, e42以及e43,它們分別對應的權值為0. 3, 0· 7,0· 2,0· 8,0· 5,0· 5,0· 4 以及 0· 6。
[0058] 本申請實施例中,所述權值表示所述應用程序%與所述權限的相關性。在 一種可能的實施方式中,所述權值表示所述應用程序%申請所述權限?的概率。這里 應用程序ai申請權限&的概率指的是,在確定所述應用程序%申請了哪些權限之前,其申 請權限h的可能性。例如,對于圖2中的申請關系ell來說,0. 3表示應用程序申請權 限Pi的概率為0.3。
[0059] 當然,在其它可能的實施方式中,所述權值還可以根據(jù)其它依據(jù)確定,來表示應用 程序與權限之間的相關程度,特別的,在一種可能的實施方式中,可以根據(jù)用戶的設定指令 確定所述權值。
[0060] 如上面所述的,在本申請實施例一種可能的實施方式中,所述步驟S112在確定所 述權值時,可以根據(jù)所述每個申請關系對應的所述應用程序申請所述權限的概率確定所述 每個申請關系的權值。
[0061] 在本申請實施例中,可以根據(jù)歷史數(shù)據(jù)獲取所述概率。可選地,在一種可能的實施 方式中,可以根據(jù)所述每個申請關系對應的所述應用程序所屬的一應用分類中所有應用程 序的權限申請歷史數(shù)據(jù)確定對應的所述權值。在本實施方式中,所述應用分類可以是根據(jù) 所述應用程序的功能劃分的分類,例如游戲、辦公、地圖等;還可以是根據(jù)應用程序的開發(fā) 商進行的分類,或者還可以是根據(jù)應用程序其它方面的相似性等進行的聚類分類等等。當 然,本領域的技術人員可以知道,所述應用分類還可以是其它的分類標準進行的分類。
[0062] 可選地,在本申請實施例一種可能的實施方式中,可以根據(jù)所述應用程序所屬的 所述應用分類中所有應用程序申請所述權限的頻率與所述所有應用程序分別申請所述多 個權限的多個頻率之和的比值得到所述權值。可以通過下面的公式表示:
[0063]
【權利要求】
1. 一種應用開發(fā)接口 API推薦方法,其特征在于,包括: 獲取多個權限的安全風險聚類信息; 確定所述多個權限中一應用程序已使用的一權限; 根據(jù)所述安全風險聚類信息和所述已使用的權限確定所述多個權限中與所述已使用 的權限相關的至少一權限; 根據(jù)所述至少一權限確定至少一 API。
2. 如權利要求1所述的方法,其特征在于,所述根據(jù)所述至少一權限確定所述至少一 API包括: 確定與所述至少一權限相關的至少一應用程序; 獲取所述至少一應用程序使用的至少一候選API ; 根據(jù)設定的至少一確定標準在所述至少一候選API中確定所述至少一 API。
3. 如權利要求2所述的方法,其特征在于,所述確定與所述至少一權限相關的所述至 少一應用程序包括: 所述至少一應用程序中的每個應用程序申請所述至少一權限中的至少一權限。
4. 如權利要求3所述的方法,其特征在于,所述根據(jù)設定的至少一確定標準在所述至 少一候選API中確定所述至少一 API包括: 獲取所述至少一應用程序中的每個應用程序與所述至少一候選API中每個API之間的 API使用權值; 獲取所述至少一應用程序中的每個應用程序申請所述至少一權限中每個權限的申請 關系的權值; 根據(jù)所述API使用權值和所述申請關系的所述權值得到所述至少一候選API中每個 API的推薦值; 根據(jù)所述推薦值確定所述至少一 API。
5. 如權利要求1所述的方法,其特征在于,根據(jù)所述安全風險聚類信息和所述已使用 的權限確定所述至少一權限包括: 根據(jù)所述安全風險聚類信息確定所述已使用的權限所屬的一安全風險聚類分組; 根據(jù)所述安全風險分組確定所述至少一權限。
6. 如權利要求1所述的方法,其特征在于,獲取所述多個權限的安全風險聚類信息包 括: 確定多個應用程序與所述多個權限之間的多個申請關系;其中,所述多個申請關系 中的每個申請關系對應于所述多個應用程序中的一應用程序申請所述多個權限中的一權 限; 確定所述多個申請關系中每個申請關系的權值; 根據(jù)所述每個申請關系的所述權值對所述多個權限進行安全風險聚類,得到所述安全 風險聚類信息。
7. 如權利要求6所述的方法,其特征在于,確定所述權值包括: 根據(jù)所述每個申請關系對應的所述應用程序申請所述權限的概率確定所述每個申請 關系的權值。
8. 如權利要求6所述的方法,其特征在于,確定所述權值包括: 根據(jù)所述每個申請關系對應的所述應用程序所屬的一應用分類中所述所有應用程序 申請所述權限的頻率與所述所有應用程序分別申請所述多個權限的多個頻率之和的比值 得到所述權值。
9. 如權利要求6所述的方法,其特征在于,根據(jù)所述權值對所述多個權限進行安全風 險聚類包括: 獲取與所述多個權限一一對應的多個權值向量; 根據(jù)所述多個權值向量對所述多個應用程序進行安全風險聚類; 其中,所述多個權值向量中的每個權值向量中包含與所述多個應用程序一一對應的多 個元素,其中,對于每個權值向量: 對應于與所述權值向量對應的權限與所述多個應用程序中的一應用程序之間有申請 關系,所述權值向量中與所述應用程序對應的元素為所述申請關系的權值; 對應于與所述權值向量對應的權值與所述多個應用程序中的一應用程序之間沒有申 請關系,所述權值向量中與所述應用程序對應的元素為0。
10. 如權利要求9所述的方法,其特征在于,所述根據(jù)所述多個權值向量對所述多個權 限進行安全風險聚類包括: 根據(jù)所述多個權限中兩個權限分別對應的權值向量的相似度來對所述多個權限進行 安全風險聚類。
11. 如權利要求9所述的方法,其特征在于,所述根據(jù)所述多個權值向量對所述多個權 限進行安全風險聚類包括: 通過基于距離的聚類算法對所述多個權值向量進行聚類,進而確定所述多個權限的安 全風險聚類。
12. 如權利要求6所述的方法,其特征在于,所述方法還包括:存儲所述安全風險聚類 信息。
13. -種應用開發(fā)接口 API推薦裝置,其特征在于,包括: 聚類信息獲取模塊,用于獲取多個權限的安全風險聚類信息; 已使用權限確定模塊,用于確定所述多個權限中一應用程序已使用的一權限; 相關權限確定模塊,用于根據(jù)所述安全風險聚類信息和所述已使用的權限確定所述多 個權限中與所述已使用的權限相關的至少一權限; API確定模塊,用于根據(jù)所述至少一權限確定至少一 API。
14. 如權利要求13所述的裝置,其特征在于,所述API確定模塊包括: 應用程序確定子模塊,用于確定與所述至少一權限相關的至少一應用程序; 候選API確定子模塊,用于獲取所述至少一應用程序使用的至少一候選API ; API確定子模塊,用于根據(jù)設定的至少一確定標準在所述至少一候選API中確定所述 至少一 API。
15. 如權利要求14所述的裝置,其特征在于,所述應用程序確定子模塊確定的所述至 少一應用中的每個應用程序申請所述至少一權限中的至少一權限。
16. 如權利要求15所述的裝置,其特征在于,所述候選API確定子模塊包括: API使用權值獲取單元,用于獲取所述至少一應用程序中的每個應用程序與所述至少 一候選API中每個API之間的API使用權值; 申請關系權值獲取單元,用于獲取所述至少一應用程序中的每個應用程序申請所述至 少一權限中每個權限的申請關系的權值; 推薦值獲取單元,用于根據(jù)所述API使用權值和所述申請關系的所述權值得到所述至 少一候選API中每個API的推薦值; API確定單元,用于根據(jù)所述推薦值確定所述至少一 API。
17. 如權利要求13所述的裝置,其特征在于,所述相關權限確定模塊包括: 安全風險分組確定子模塊,用于根據(jù)所述安全風險聚類信息確定所述已使用的權限所 屬的一安全風險分組; 相關權限確定子模塊,用于根據(jù)所述安全風險分組確定所述至少一權限。
18. 如權利要求13所述的裝置,其特征在于,所述聚類信息獲取模塊包括: 申請關系確定子模塊,用于確定多個應用程序與所述多個權限之間的多個申請關系; 其中,所述多個申請關系中的每個申請關系對應于所述多個應用程序中的一應用程序申請 所述多個權限中的一權限; 權值確定子模塊,用于確定所述多個申請關系中每個申請關系的權值; 聚類信息獲取子模塊,用于根據(jù)所述每個申請關系的所述權值對所述多個權限進行安 全風險聚類,得到所述安全風險聚類信息。
19. 如權利要求18所述的裝置,其特征在于,所述權值確定子模塊包括: 第一權值確定單元,用于根據(jù)所述每個申請關系對應的所述應用程序申請所述權限的 概率確定所述每個申請關系的權值。
20. 如權利要求18所述的裝置,其特征在于,所述權值確定子模塊包括: 第二權值確定單元,用于根據(jù)所述每個申請關系對應的所述應用程序所屬的一應用分 類中所述所有應用程序申請所述權限的頻率與所述所有應用程序分別申請所述多個權限 的多個頻率之和的比值得到所述權值。
21. 如權利要求18所述的裝置,其特征在于,所述聚類信息獲取子模塊包括: 權值向量獲取單兀,用于獲取與所述多個權限 對應的多個權值向量; 權限聚類單元,用于根據(jù)所述多個權值向量對所述多個應用程序進行安全風險聚類; 其中,所述多個權值向量中的每個權值向量中包含與所述多個應用程序一一對應的多 個元素,其中,對于每個權值向量: 對應于與所述權值向量對應的權限與所述多個應用程序中的一應用程序之間有申請 關系,所述權值向量中與所述應用程序對應的元素為所述申請關系的權值; 對應于與所述權值向量對應的權值與所述多個應用程序中的一應用程序之間沒有申 請關系,所述權值向量中與所述應用程序對應的元素為0。
22. 如權利要求21所述的裝置,其特征在于,所述權限聚類單元包括: 第一聚類子單元,用于根據(jù)所述多個權限中兩個權限分別對應的權值向量的相似度來 對所述多個權限進行安全風險聚類。
23. 如權利要求21所述的裝置,其特征在于,所述權限聚類單元包括: 第二聚類子單元,用于通過基于距離的聚類算法對所述多個權值向量進行聚類,進而 確定所述多個權限的安全風險聚類。
24. 如權利要求18所述的裝置,其特征在于,所述裝置還包括: 存儲模塊,用于存儲所述安全風險聚類信息。
25. -種電子設備,其特征在于,包括權利要求13-24中任一項所述的應用開發(fā)接口 API推薦裝置。
【文檔編號】G06F17/30GK104156467SQ201410418948
【公開日】2014年11月19日 申請日期:2014年8月22日 優(yōu)先權日:2014年8月22日
【發(fā)明者】于魁飛 申請人:北京智谷睿拓技術服務有限公司