?

基于互聯網開放平臺的統一用戶系統設計

2015-03-14 10:09鄒壯達湖南財政經濟學院公共實驗中心湖南長沙410205
赤峰學院學報·自然科學版 2015年17期
關鍵詞:開放平臺身份數據庫

鄒壯達,譚 建(湖南財政經濟學院 公共實驗中心,湖南 長沙 410205)

基于互聯網開放平臺的統一用戶系統設計

鄒壯達,譚建
(湖南財政經濟學院公共實驗中心,湖南長沙410205)

摘要:本文利用各開放平臺的OpenAPI、通過OAuth2.0協議等技術實現了一個統一用戶平臺,解決了各個開放平臺用戶之間相互通信的問題.

關鍵詞:開放平臺;OpenAPI;OAuth2.0

1互聯網開放平臺現狀與面臨的問題

縱觀互聯網的入口流量分配方式,大體可以分為導航時代、搜索時代和開放時代三個時代.互聯網的發展由以內容為中心主逐步向以用戶為中心轉化.尤其是隨著社交化平臺的興起,互聯網成為了一個人人可以表述自己觀點的大社交平臺.

同時,隨著新web技術的應用,越來越多的系統中擁有與用戶相關的信息,而這些系統又是封閉的,并且相互之間獨立,于是引發了各種問題[1].

1.信息和資源的碎片化:信息和資源、信息和信息、資源和資源之間缺乏多樣性的關聯化組織;2.應用碎片化:用戶需要所使用的各種應用在不同的網站,相互之間缺乏關聯,使用不便;3.關系碎片化:用戶需要在各種不同的網站注冊ID,并擁有各自不同的并且獨立的關系;4.用戶碎片化:相關信息、應用、資源、關系的分裂,造成用戶自身呈現為碎片化的特點.

在互聯網時代,把網站的服務封裝成一系列計算機易識別的數據接口開放出去,供第三方開發者使用,這種行為叫做Open API[2],提供Open API的平臺本身就被稱為開放平臺[3—5].

各大互聯網公司或出于整體戰略考慮,或出于經濟利益考慮,都紛紛開放自身平臺.如何利益這些開放平臺,跨越產品屏障,整合互聯網碎片,是本文研究的重點.本文將在這些開放平臺的基礎上,設計一個新型的社交化系統,目標是以用戶為中心,整合信息碎片,減少網絡社交過程中的屏障.

通過開放平臺,網站不僅能提供對Web網頁的簡單訪問,還可以進行復雜的數據交互,將它們的Web網站轉換為與操作系統等價的開放平臺.第三方開發者可以基于這些開放平臺而開發豐富多彩的應用.

如圖1.1,展示了互聯網開放平臺與第三方應用之間的關系.

圖1.1互聯網開放平臺與第三方應用

2消除各類碎片,開放平臺信息與功能互通的解決方案

2.1與開放平臺通信的技術基礎OAuth2.0協議

OAuth2.0[6]是一個開放授權協議,允許第三方應用訪問服務提供方中注冊的終端用戶的某些資源,且不會把帳號和密碼提供給第三方.

OAuth2.0允許通過服務提供商授予的一個臨時令牌而不是用戶名密碼來獲取用戶的資源,這些資源可以是受限的,令牌的時間段也可以是受限的.

OAuth2.0的參與者:

1.資源所有者RO(Resource Owner).存放在服務提供方的受保護的資源的擁有者.

2.資源服務器RS(Resource Server).資源服務器存儲資源,并處理對資源的訪問請求.

3.第三方應用或服務提供者Client.第三方應用獲得RO的授權后便可以去訪問RO的資源.

4.授權服務器AS(Authorization Server).授權服務器認證RO的身份,為RO提供認證審批流程,并最終頒發授權令牌(Access Token).(為了便于協議的描述,這里只是在邏輯上把AS與RS區分開來;在物理上,AS與RS的功能可以由同一個或者同一組服務器來提供服務.)

三個節點(Endpoints):

1.Request Token.獲取授權令牌.

2.User Authorization.重定向的URI,讓用戶授權.

3.Access Token Request.獲取訪問令牌.

圖2.1 OAuth2.0授權與資源獲取過程

2.2以第三方開發者的身份從開放平臺獲取用戶的資源授權

第三方開發者,通過OAuth2.0協議獲取用戶授權后可以獲取該用戶的信息,并且可以以該用戶的身份在開放平臺進行功能操作.因此,若在多個平臺獲取多個用戶的授權,便可以使得所有用戶跨越平臺進行信息和功能的相互交流、共享.因而可以消除互聯網中的信息化與功能碎片.

3統一用戶系統的設計與實現

要實現統一的用戶系統,需要解決3個方面的問題:(1)每個開放平臺的API雖然都是以OAuth2.0協議為基礎,但具體實現各不相同.(2)每個用戶在不同的開放平臺中有不同的身份,需要將身份進行唯一性認證.3、每個用戶在不同的開放平臺擁有不同的關聯用戶,這些“關系圈”需要進行維護,確保關系不會混亂.

3.1以模塊方式實現各開放平臺API對接,以接口方式實現內部統一調用.如圖3.1.

3.2收集授權的個人信息,確定用戶身份的唯一性.由于用戶在多個放平臺注冊會產生身份信息碎片,所以必須要能準確判斷用戶身份,消除身份信息碎片.可以采用身份證信息認證、自行注冊平臺身份、手機號判斷、Email地址判斷、cookie信息收集、IP地址判斷等各種手段來確定身份.

圖3.1對接API模塊統一接口

圖3.2用戶身份唯一性身份確認模塊

3.3歸并算法處理用戶關系圈冗余.基于用戶關系圈的特性可以采用歸并(Merge)算法對User的關系圈進行計算,從而達到關系唯一性的要求,消除關系碎片.將user對象視為節點A,user在各開放平臺的關系用戶視為節點B1、B2……Bn.那么A節點的關系碎片如圖3.3所示:

圖3.3原始用戶關系

歸并算法原理是將2個序列合并到一個序列里,其工作原理如下:(1)申請內存空間,大小等于2個序列之和.(2)設定2個指針,最初位置分別為2個序列的起始位置.3、比對合并序列,如果合并序列存在當前值則拋棄,如果不存在,則將當前值加入到合并序列.在本系統中,歸并算法結合實際情況的活動狀況如活動圖3.4所示.

圖3.4歸并算法流程圖

合并以后,用戶關系如圖3.5所示:

圖3.5維護后的用戶關系

3.4系統數據庫ER圖.根據需求分析以及關鍵模塊設計,數據庫應該存儲的對象包括用戶身份信息、開放平臺信息,外部關系信息,內部關系信息,接入站點信息等.

映射到數據庫中:

用戶信息:user表

開放平臺信息:open_plat表

外部關系信息:extetnal_relation表

內部關系信息:interior_relation表

接入站點信息:site表

圖3.6為根據數據庫第二范式規范設計的數據庫ER圖.

圖3.6系統數據庫設計

在數據庫查詢數量增長到一定數量級時,(1)減少聯合查詢,(2)高效利用索引、復合索引以及覆蓋索引,(3)高效利用查詢緩存,(4)進行分表等,是有效提高數據庫效率的主要途徑.所以,在設計數據庫時,在滿足功能需求后,優化數據庫為以上后續優化步驟提供途徑,是設計工作的主要優化方向.

1.為了方便減少聯合查詢、高效利用索引、分表3個后續優化步驟,設計方向是需要將數據盡量集中在一張表中.

2.為了能高效利用查詢緩存,高效利用索引,要求設計方向是將經常變化的數據,和不經常變化的數據分開存儲.

圖3.7為根據上述優化原則對數據庫進行優化以后的數據庫ER圖.

圖3.7優化后的數據庫ER圖

4 總結

本文根據開放平臺的特性提出一種實現開放平臺之間信息與功能互聯互通的方法.解決了在實現互通環節的API模塊統一、用戶身份唯一性確認、用戶關系圈維護等問題.并為統一用戶系統設計了數據庫.雖然本系統僅實現了用戶信息互通,但是按照本文提出的方法,可以實現開放平臺之間所有功能的相互協作.

參考文獻:

〔1〕艾文倩.微博平臺的信息碎片化研究.陜西師范大學碩士論文,2012.1-4.

〔2〕Mulligan,C. Open API standardisation for the NGN platform 2008,4-7.

〔3〕岑文初.Dpen API分析與實踐程序員.2009-

01-01,5-11.

中圖分類號:TP311

文獻標識碼:A

文章編號:1673-260X(2015)09-0019-03

猜你喜歡
開放平臺身份數據庫
基于百度地圖開放平臺的導航電子地圖課程實踐教學研究
基于在線開放平臺的混合式課堂教學模式構建與實踐
基于AliGenie語音開放平臺的傳統家居智聯網解決方案
跟蹤導練(三)(5)
身份案(下)
數據庫
數據庫
他們的另一個身份,你知道嗎
數據庫
數據庫
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合