国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)據(jù)可攜式社會化網(wǎng)絡(luò)服務(wù)模型的研究與實現(xiàn)

2012-05-09 09:32:46楊靜
關(guān)鍵詞:網(wǎng)絡(luò)服務(wù)好友社會化

楊靜

(河南省電子產(chǎn)品質(zhì)量監(jiān)督檢驗所,河南鄭州450002)

社會化網(wǎng)絡(luò)服務(wù)(Social Network Service,SNS),專指旨在幫助人們建立社會化網(wǎng)絡(luò)的互聯(lián)網(wǎng)應(yīng)用服務(wù)[1].一個社會化網(wǎng)絡(luò)是指一組人或組織、其他社會實體之間的一組具有社會意義關(guān)系的連接[2].隨著用戶對社會化網(wǎng)絡(luò)服務(wù)認(rèn)同度和參與度的逐漸提高以及商業(yè)模式的日益清晰,社會化網(wǎng)絡(luò)服務(wù)的重要性已不言而喻.目前社會化網(wǎng)絡(luò)服務(wù)在給人們帶來便利的同時,在用戶體驗和操作維護(hù)上出現(xiàn)了數(shù)據(jù)可攜性問題.

近年來,隨著SNS在互聯(lián)網(wǎng)應(yīng)用中的價值和地位不斷提高,出現(xiàn)了大量的SNS服務(wù)提供商.這些SNS站點形成了信息孤島,一個SNS站點的信息無法在其他SNS站點中使用[3],這些站點建立在獨(dú)立的系統(tǒng)之上,由于程序和接口的不同,導(dǎo)致站點之間無法交互[4].因此,社會化網(wǎng)絡(luò)服務(wù)所面臨的主要問題是數(shù)據(jù)可攜性問題,具體表現(xiàn)為以下三個方面[5]:①社會化網(wǎng)絡(luò)服務(wù)疲勞問題.每加入一個新的社會化網(wǎng)絡(luò)服務(wù),用戶就必須重新填寫個人基本信息、重新添加好友、重新進(jìn)行好友分組歸類、重新進(jìn)行系統(tǒng)通知設(shè)置、重新指定隱私設(shè)置等.②檔案更新維護(hù)問題.當(dāng)用戶的個人信息改變時,難以同時更新其他站點的相關(guān)信息.③好友更新維護(hù)問題.當(dāng)用戶的好友關(guān)系變更時,難以在各個不同的社會化網(wǎng)絡(luò)服務(wù)之間統(tǒng)一維護(hù)好友列表.

本文從服務(wù)依賴方和提供方的角度出發(fā),研究建立滿足數(shù)據(jù)可攜性的OpenConnect模型,并給出擴(kuò)展框架及其實現(xiàn)方法.

1 OpenConnect模型的建立

SNS通常以社交圖形式表現(xiàn),即網(wǎng)絡(luò)用戶也存在“六度分隔理論”[6]所描述的社會關(guān)系,而這種關(guān)系反映在SNS服務(wù)模型中.

1.1 現(xiàn)有SNS模型存在的問題

SNS模型中主要涉及3個重要的方面:體系結(jié)構(gòu)、用戶數(shù)據(jù)和身份認(rèn)證.目前現(xiàn)有SNS模型的體系結(jié)構(gòu)主要采用單一架構(gòu),缺少交互機(jī)制;在身份認(rèn)證機(jī)制上,主要采用集成式的身份認(rèn)證方式,存在著用戶重復(fù)注冊的問題;對于用戶數(shù)據(jù),大多數(shù)互聯(lián)網(wǎng)應(yīng)用數(shù)據(jù)并不是結(jié)構(gòu)化的數(shù)據(jù),難以被計算機(jī)直接理解,不便于自動化操作.

1.2 OpenConnect模型組成

為了實現(xiàn)數(shù)據(jù)的可攜性,一個相對集中的數(shù)據(jù)控制中心是必要的、可行的,用戶數(shù)據(jù)在該控制中心的控制和管理下,在不同SNS網(wǎng)站應(yīng)用之間移動.控制中心可視為服務(wù)提供方(OpenConnect Provider,OCP),提供用戶及其好友信息管理.不同SNS網(wǎng)站應(yīng)用可視為服務(wù)依賴方(OpenConnect Relying Party,OCRP),將SNS的核心部分社交圖服務(wù)分離出來,使用戶的社交圖功能可以統(tǒng)一的地進(jìn)行管理和控制,不存在服務(wù)壟斷的缺點,用戶可以自由選擇使用已實現(xiàn)互聯(lián)互通的服務(wù)提供商.

在身份認(rèn)證方面,使用開放標(biāo)準(zhǔn)的去中心化身份認(rèn)證協(xié)議OpenID[7],任何SNS網(wǎng)站都可以使用OpenID作為用戶登錄的方式,用戶的OpenID在用戶轉(zhuǎn)移到不同的服務(wù)提供商后仍可保持不變,維護(hù)方便快捷.

在用戶數(shù)據(jù)方面,利用XML實現(xiàn)文檔結(jié)構(gòu)化,用語義網(wǎng)中的RDF數(shù)據(jù)模型提供語義關(guān)系,從而通過RDF/XML來描述好友關(guān)系(社交圖數(shù)據(jù)),使用RDF格式描述用戶的貢獻(xiàn)內(nèi)容,包括博客、微博客和評論等社會化媒體內(nèi)容.

在該模型中,用戶首先注冊使用一個OCP,接著注冊一個OCRP,OCRP提供傳統(tǒng)SNS功能,用戶在OCRP中的檔案信息、好友關(guān)系、社會化媒體內(nèi)容等信息會在OCP中進(jìn)行同步,當(dāng)用戶使用另外一個OCRP時,這些信息同樣也會進(jìn)行同步,從而實現(xiàn)SNS的數(shù)據(jù)可攜性.

2 基于REST的MVC框架

雖然OpenConnect模型并不局限于任何平臺和編程語言,但為了能夠快速開發(fā),本文選擇廣泛使用且技術(shù)成熟的PHP語言來開發(fā)基于REST(Repre-sentationalState Tranfer)的MVC(Model/View/Controller)框架[8],開發(fā)在Windows平臺下進(jìn)行,服務(wù)器使用開源的Apache.

2.1 整體設(shè)計

基于REST的MVC框架如圖1所示.

圖1 Open Connect框架Fig.1 OpenConnect framework

在圖1中,主體框架為MVC框架,控制器處理用戶輸入,創(chuàng)建或修改適當(dāng)?shù)哪P蛯ο?同時將模型映射到界面中,控制用戶界面的數(shù)據(jù)顯示.此外,為了解決非結(jié)構(gòu)化的用戶數(shù)據(jù)問題,將用戶社交圖數(shù)據(jù)和社會化媒體信息用RDF/XML詞匯進(jìn)行解釋,完成相應(yīng)的輸入輸出操作.

2.2 REST路由機(jī)制

為了將MVC框架融入REST,采用REST路由機(jī)制,即通過調(diào)度器(Dispatcher)分析請求URI,并按照固定的方式將請求URI中的各個部分映射至控制器、方法和參數(shù)中例如用戶請求URI:http://example.com/posts/edit/1,MVC框架首先使用調(diào)度器來分析請求的URI,URI中除了host地址外,其余3個部分分別為posts、edit以及數(shù)字1.

調(diào)度器通常需要做如下處理:

(1)將posts映射至Posts控制器;

(2)調(diào)用Posts控制器的edit方法,將參數(shù)1傳入此方法.

這種處理方法是最簡單有效的,但不夠靈活,因為映射是“硬編碼”在框架中的,如果開發(fā)者想將URI的各部分自由地映射至指定的控制器、方法以及參數(shù)中,使用這種映射方案便無法滿足開發(fā)者的需求.

這里,基于REST的MVC框架采用“標(biāo)注法”.具體過程如下:

(1)在每個控制器的方法上使用指定的格式書寫注釋,標(biāo)注哪些URI(或者URI模式)需要映射到該方法上;

(2)通過標(biāo)注解析引擎來分析這些標(biāo)注,并通過調(diào)度器調(diào)用相應(yīng)的控制器的方法,以及為方法傳入?yún)?shù).

在該類中有兩個方法,comingFromGet()和comingFromPost().在兩個方法的上面均用標(biāo)注法指定了需要映射的具體URI.不同于普通的注釋,標(biāo)注法使用“/**”作為注釋的開始,然后緊跟著“!Route”指令,表示路由功能,“!Route”指令之后的標(biāo)記是HTTP應(yīng)用協(xié)議的方法,主要包括GET、POST、DELETE以及UPDATE等四種方法,分別對應(yīng)于資源的獲取、創(chuàng)建、刪除以及更新操作.在PHP中,識別請求所用的方法是通過其內(nèi)置變量$_SERVER['REQUEST_METHOD']的值進(jìn)行判斷.

在HTTP應(yīng)用協(xié)議方法之后是具體需要指定的URI.其中,第一個方法的標(biāo)注為“/**!Route GET,/same/url*/”,其含義為滿足 URI為“/same/url”并且使用 GET方法的請求,將被路由至控制器TestController的comingFromGet()方法,例如用戶通過瀏覽器發(fā)出“http://example.com/same/url”這個URI請求時,調(diào)度器將會調(diào)用控制器TestController的comingFromGet()方法.第二個方法的標(biāo)注與第一個方法不同的主要是HTTP應(yīng)用協(xié)議方法,它使用的是“POST”方法,當(dāng)用戶通過表單或者其他客戶端使用POST方式提交“http://example.com/same/url”這個URI請求時,則調(diào)度器將調(diào)用控制器TestController的comingFromPost()方法.

在圖1中,可以看出處理細(xì)節(jié)已被封裝進(jìn)框架中,開發(fā)者無需進(jìn)行具體的方法判斷,只需使用上文提到的標(biāo)注方法將具體的URI映射至控制器的方法中即可.

2.3 HTTP內(nèi)容協(xié)商機(jī)制處理

在REST中,利用HTTP1.1協(xié)議中的內(nèi)容協(xié)商機(jī)制,客戶端程序可以向服務(wù)器請求一種特定格式的表述,這些內(nèi)容包括媒體類型、語言、字符集和編碼等.在對資源、語言、編碼、字符集的請求中,服務(wù)器會按照順序?qū)Σ煌琿值排序,盡量滿足客戶端的要求.默認(rèn)的q值是1、0,如果q=0則表示拒絕某種類型.

3 基于OpenConnect的SNS實現(xiàn)

為了驗證OpenConnect模型與實現(xiàn)框架的正確性,設(shè)計實現(xiàn)了數(shù)據(jù)可攜式SNS系統(tǒng),其中OCP模型實現(xiàn)了MyOpenConnect.com和OpenConnecty.com兩個具體應(yīng)用,OCRP也實現(xiàn)了JiaoYou.com和SuiYu.com兩個具體應(yīng)用,并且每個系統(tǒng)均以虛擬的站點名稱進(jìn)行描述,使其更符合實際情況.

以O(shè)CP系統(tǒng)為例,其用例圖如圖2所示,按角色對OCP系統(tǒng)的用例進(jìn)行描述.

圖2 OCP系統(tǒng)主要用例Fig.2 OCP System use case diagram

3.1 最終用戶

3.1.1 注冊 由于OCP系統(tǒng)同時也是OpenID服務(wù)提供方,OCP系統(tǒng)之間可以通過OpenID方式進(jìn)行快速注冊,即如果用戶已經(jīng)注冊了某個OCP系統(tǒng),則用戶可以通過該系統(tǒng)的OpenConnectID在另外未注冊過的OCP系統(tǒng)中進(jìn)行快速注冊,該注冊方式也稱之為關(guān)聯(lián)方式注冊.因此,OCP系統(tǒng)有兩種注冊方式:普通注冊方式和關(guān)聯(lián)注冊方式.

3.1.2 個人基本信息管理 OCP系統(tǒng)負(fù)責(zé)維護(hù)用戶的個人基本信息,如姓名、性別、郵箱、主頁、自我描述、興趣以及頭像等信息.用戶的個人基本信息在OCP系統(tǒng)中進(jìn)行集中維護(hù),并在各個OCRP系統(tǒng)以及其他與之關(guān)聯(lián)的OCP系統(tǒng)之間進(jìn)行同步.

3.1.3 好友關(guān)系管理 與個人基本信息管理相類似,用戶的好友關(guān)系也集中在OCP系統(tǒng)中進(jìn)行維護(hù),當(dāng)用戶在某個OCRP系統(tǒng)中更新了好友關(guān)系時,通過OCP系統(tǒng),其他OCRP系統(tǒng)中用戶的好友關(guān)系將得到同步更新.

3.1.4 社會化媒體內(nèi)容跟蹤 與個人基本信息和好友關(guān)系信息不同的是,用戶在OCRP系統(tǒng)中的社會化媒體內(nèi)容不進(jìn)行同步操作.OCP系統(tǒng)負(fù)責(zé)對用戶的社會化媒體內(nèi)容進(jìn)行跟蹤,當(dāng)用戶在某個OCRP系統(tǒng)中更新了社會化媒體內(nèi)容時,通過OCP系統(tǒng),在用戶的其他OCRP系統(tǒng)上將出現(xiàn)更新提示,并讓用戶自行決定是否對更新的內(nèi)容進(jìn)行導(dǎo)入操作.

3.1.5 授權(quán)管理 當(dāng)OCP系統(tǒng)與OCP系統(tǒng)之間,或者OCP系統(tǒng)與OCRP系統(tǒng)之間進(jìn)行關(guān)聯(lián)時,需要進(jìn)行系統(tǒng)之間資源訪問的授權(quán)操作.用戶在OCP系統(tǒng)中對這些授權(quán)聲明進(jìn)行管理(例如用戶解除某個授權(quán)聲明).

3.1.6 日志管理 OCP系統(tǒng)記錄了與其他系統(tǒng)進(jìn)行交互的事件日志,通過事件日志,用戶可以清晰地了解OCP與其他系統(tǒng)的交互過程,并且可以從事件的狀態(tài)結(jié)果中獲得事件是否正常進(jìn)行等相關(guān)信息.

3.2 其他OCP系統(tǒng)

3.2.1 授權(quán)管理 OCP系統(tǒng)之間進(jìn)行聯(lián)合操作時(在多OCP模式下),需要對系統(tǒng)之間進(jìn)行訪問授權(quán)操作,以使雙方能夠在信任的條件下進(jìn)行通信.

3.2.2 服務(wù)關(guān)聯(lián)管理 OCP系統(tǒng)之間在多OCP模式下可進(jìn)行關(guān)聯(lián)操作,關(guān)聯(lián)后的兩個OCP系統(tǒng)將進(jìn)行同步更新.

3.3 OCRP系統(tǒng)

OCRP系統(tǒng)之間的信息將通過OCP系統(tǒng)進(jìn)行同步更新或?qū)氩僮?實現(xiàn)信息同步管理.這些信息包括個人基本信息、好友關(guān)系以及社會化媒體內(nèi)容.

以MyOpenConnect.com系統(tǒng)為例,主要包括個人基本信息管理模塊、好友關(guān)系管理模塊、社會化媒體內(nèi)容跟蹤模塊、授權(quán)管理模塊、日志管理模塊、服務(wù)關(guān)聯(lián)管理模塊以及注冊模塊,其使用界面如圖3所示.

圖3 My Open Connect.com界面Fig.3 MyOpenConnect.com interface

用戶向OCP1發(fā)出快速注冊請求,并提供OCP2的OpenConnectID標(biāo)識,OCP2向用戶返回其登錄頁面,用戶登錄OCP2,OCP2進(jìn)行身份驗證和訪問授權(quán),之后將用戶的個人基本信息發(fā)送給OCP1,OCP1收到信息后,進(jìn)行服務(wù)關(guān)聯(lián),并請求用戶確認(rèn)個人信息,用戶確認(rèn)信息后,OCP1即可利用這些信息創(chuàng)建賬號并返回給用戶.

用戶使用MyOpenConnect賬號登陸OCRP系統(tǒng)并與之關(guān)聯(lián)后,MyOpenConnect系統(tǒng)與OCRP系統(tǒng)之間的交互將會以日志的形式被記錄下來,這些交互包括個人基本資料的變更、好友關(guān)系的變更、社會化媒體內(nèi)容的產(chǎn)生等.

通過事件日志,用戶可以清楚了解MyOpenConnect與OCRP系統(tǒng)的交互過程,并得知交互的結(jié)果以便作出決策.

通過原型系統(tǒng)運(yùn)行試用,從實際效果來看達(dá)到了OpenConnect模型和框架設(shè)計目標(biāo),系統(tǒng)具有數(shù)據(jù)可攜性.

4 結(jié)語

數(shù)據(jù)可攜性研究是社會化網(wǎng)絡(luò)服務(wù)中的熱點問題,本文從技術(shù)的角度對OpenConnect模型的設(shè)計機(jī)理以及實現(xiàn)框架與實現(xiàn)方法進(jìn)行了闡述,提出數(shù)據(jù)可攜性問題的初步解決方案,下一步還需要在系統(tǒng)的安全性進(jìn)行深入研究和探討.

[1]Baidu Baike.SNS[EB/OL].[2012-06-18].http://baike.baidu.com/view/8258.htm.

[2]Wellman B.An Electronic Group is Virtually a Social Network[M].In Culture of the Internet,1997:179-205.

[3]Breslin J G,Harth A,Bojars U,et al.Towards Semantically-Interlinked Online Communities[M].The 2nd European Semantic Web Conference,2005.

[4]David Simonds.The economist laments“The problem with today’s social networks is that they are often closed to the outside web”[EB/OL].[2012-05-22].http://www.economist.com.

[5]Tantek C.Social Network Portability[J].IEEE Intelligent Systems,2001,4(17):46-53.

[6]Watts D J,StrogatzSH.Small world[J].Nature,1998,393:440-442.

[7]Recordon D,Reed D.Open ID2.0:a platform for user-centric identity management[M].NY:Proceedings of the second ACM workshop on Digital identitymanagement,2006:11-16.

[8]劉克.MVC架構(gòu)及其在Web應(yīng)用開發(fā)中的應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2006(23):57-59.

猜你喜歡
網(wǎng)絡(luò)服務(wù)好友社會化
《壓縮機(jī)技術(shù)》網(wǎng)絡(luò)服務(wù)
《壓縮機(jī)技術(shù)》網(wǎng)絡(luò)服務(wù)
網(wǎng)絡(luò)服務(wù)合同的法律問題研究
法制博覽(2021年18期)2021-11-24 20:45:30
牽手校外,堅持少先隊社會化
少先隊活動(2021年5期)2021-07-22 08:59:48
行政權(quán)社會化之生成動因闡釋
屬羊
刪除好友
雜文月刊(2017年20期)2017-11-13 02:25:06
高校學(xué)生體育組織社會化及路徑分析
體育科技(2016年2期)2016-02-28 17:06:14
公共文化服務(wù)亟須推進(jìn)社會化
云計算趨勢下的藍(lán)汛內(nèi)容感知網(wǎng)絡(luò)服務(wù)
和政县| 开封市| 永平县| 周至县| 绥阳县| 安化县| 大同市| 翁源县| 屏边| 岳西县| 古蔺县| 同江市| 平阳县| 石棉县| 金平| 忻州市| 富裕县| 松江区| 凌源市| 新巴尔虎左旗| 资阳市| 谷城县| 宜城市| 绥滨县| 久治县| 济宁市| 芷江| 桑日县| 汉川市| 南开区| 临高县| 常州市| 拉萨市| 和林格尔县| 红河县| 徐汇区| 汶川县| 张掖市| 吉木乃县| 武威市| 湟中县|