摘要:由Facebook引發(fā)的SNS(Social Network Service,社會化網(wǎng)絡服務)風靡全球,讓我們看到了在新一輪互聯(lián)網(wǎng)革命中人的力量。“草根文化”、“病毒式傳播”讓我們越來越多地感受到,人、社會、網(wǎng)絡的結合所產(chǎn)生的巨大價值和無限可能。如何將人的力量最大化,讓更多的人參與價值的積聚過程,開放平臺無疑是最好的方式。該文闡述了什么是SNS開放平臺、SNS產(chǎn)業(yè)鏈中的各個角色以及OpenSocial產(chǎn)生的背景與現(xiàn)狀。
關鍵詞: SNS; Opensocial; 社交網(wǎng)絡;開放平臺; Facebook; 第三方應用; 容器; Shindig
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2012)28-6676-03
1 概述
數(shù)字革命總是會引領著新的技術出現(xiàn),并展現(xiàn)出新的時代特征,這個周期大約是十年。從上世紀70年代的大型計算機,80年代的個人計算機,90年代的互聯(lián)網(wǎng),到如今的社交網(wǎng)絡,我們正在經(jīng)歷著第四次數(shù)字革命時代。
社交網(wǎng)絡吸引了全球超過7.5億的網(wǎng)名,知名的社交網(wǎng)絡有國外的Facebook、Twitter、LinkedIn,國內(nèi)的人人網(wǎng)、開心網(wǎng)等成百上千的網(wǎng)站?;ヂ?lián)網(wǎng)很以很快的速度在人們不知不覺中從過去的以“內(nèi)容為中心”向“以人為中心”過渡了,這些社交網(wǎng)站符合人們與生俱來的訴求:人們希望參與,發(fā)表自己的意見,更快更直接。
本文首先社交網(wǎng)絡平臺的特點和形式,然后介紹Opensocial技術,簡述開發(fā)SNS網(wǎng)站的一般方法過程。
2 SNS開放平臺
SNS(Social Network Service)意指社會化網(wǎng)絡服務,即具有社會化特性的網(wǎng)絡服務,它囊括了人與人之間的社會關系架構和交流過程,以及一系列人與人之間的活動場景(如交互游戲、特定的分享方式和途徑等)。
我們熟知的Facebook、人人網(wǎng)、開心網(wǎng)等,都提供了人與人之間的社會關系架構,這種架構基于“六度分隔理論”(Six Degrees of Separation)的核心假設──“朋友的朋友是朋友”,以此構建交流和分享的關系鏈和關系網(wǎng)。這些SNS平臺提供多種讓用戶交互的方式,如聊天、發(fā)送消息、影音、文件分享、博客、討論群組等,并且有豐富的應用,構建活動場景,供用戶在不同的場景中進行交互(見圖1)。
在SNS平臺中,提供豐富的應用,這些應用往往專注于提供某種活動場景,如“開心農(nóng)場”應用提供一個菜園種植的活動場景,“轉帖”應用提供將感興趣的內(nèi)容分享給朋友的場景。這些讓人與人之間通過特定的場景進行交互的應用,我們稱之為社會化應用(Social Application)。
社會化應用運行的環(huán)境,我們稱之為容器(Container),一個SNS平臺,必定要包含運行社會化應用的容器,提供應用的展示空間,并提供一些接口實現(xiàn)應用與容器、應用與用戶信息之間的交互。SNS平臺的應用容器是否允許第三方應用加入,是我們界定這個平臺是否是SNS開放平臺的基本標準。
3 SNS產(chǎn)業(yè)鏈中的角色
隨著SNS的流行,越來越多的人成為了SNS產(chǎn)業(yè)鏈中的一員。你和你周圍的人,大部分都至少在SNS產(chǎn)業(yè)鏈中扮演了用戶的角色
在眾多的SNS用戶中,有一部分特別活躍的用戶,他們每天有大部分的時間在使用SNS,他們活躍地轉帖,讓他的好友可以看到他分享的豐富內(nèi)容;他們頻繁地發(fā)送消息和贈送虛擬禮物給好友,拉動了用戶的交互活動;他們嘗試各種新鮮的SNS應用,并將應用推薦給自己的好友。
從CNNIC公布的數(shù)據(jù)可以看到,SNS平臺的營收上,約80%的收入來自網(wǎng)絡廣告,廣告商是這個產(chǎn)業(yè)鏈中的供血機。
平臺運營商,也就是我們常見的SNS平臺服務商,他們維護用戶數(shù)據(jù)和人與人之間的關系,整合各種資源,為用戶提供社會化網(wǎng)絡服務。
SNS平臺的收費服務,離不開在線支付服務提供商的支持。本地的、便捷的在線支付服務,是實現(xiàn)SNS平臺收費服務的基礎。圖2給出了SNS產(chǎn)業(yè)鏈中的各個角色的示意圖。
4 什么是OpenSocial
4.1 OpenSocial產(chǎn)生的背景和目的
SNS平臺開放API,允許第三方應用加入,改變了社會化應用的形態(tài),圖3反映了這種變化。在這之前,社會化應用往往以社會化網(wǎng)站的形式存在,如我們熟悉的twitter、大眾點評網(wǎng)等等,他們在提供一套交互場景的同時,還需要管理用戶信息。由于各個社會化網(wǎng)站功能單一,用戶往往會對很多不同類型的社會化網(wǎng)站感興趣,但他們不得不在每個社會化網(wǎng)站進行用戶注冊。繁雜的注冊過程,也導致了社會化網(wǎng)站發(fā)展緩慢。而事實上,社會化應用的交互場景和用戶管理是兩個可以分離的部分。讓SNS平臺來管理用戶以及用戶關系,應用開發(fā)者則可以把更多的精力投入在應用特性和交互場景的開發(fā)上。對用戶來說,只需在SNS平臺中“安裝”自己感興趣的應用,就可以享受不同的交互場景。
2007年11月,Google發(fā)布了OpenSocial項目。OpenSocial并不是一個SNS平臺,而是一套標準,是對SNS平臺的開放API接口的抽象,提供諸如用戶資料、朋友信息、新鮮事等的一組相同的API。所有支持OpenSocial技術標準的SNS平臺,都能提供統(tǒng)一的社會化數(shù)據(jù)服務。應用開發(fā)者只需使用OpenSocial API進行一次開發(fā),就可以將應用發(fā)布在所有支持OpenSocial的SNS平臺中,如圖4。
4.2 OpenSocial與SNS平臺和應用之間的關系
OpenSocial定義了一系列協(xié)議、標準和接口,用于將應用、容器和其他客戶端融合在一起。OpenSocial是基于Web的,如果你是一個Web開發(fā)者,那么,你可以開發(fā)一個Social應用,將它放入一個SNS平臺。你的應用可以使用OpenSocial的接口,訪問社會化網(wǎng)絡服務平臺提供的用戶信息。應用集成在SNS平臺的頁面中展示,使用OpenSocial的Javascript接口平臺交互。使用OpenSocial接口開發(fā)出來的應用,將不局限于某一個SNS平臺,只要是支持OpenSocial的容器,都可以加入和運行這個應用,我們將這樣的應用稱為OpenSocial應用。
一個SNS平臺,如果可以集成OpenSocial應用,我們就稱其為OpenSocial容器。作為一個OpenSocial容器,需要實現(xiàn)OpenSocial標準中描述的接口。開源項目Apache Shindig可以幫助SNS平臺快速地實現(xiàn)OpenSocial接口。Shindig目前在Apache基金會的孵化器項目下, Shindig實現(xiàn)了渲染Gadgets、代理請求、響應REST和RPC請求的代碼。將Shindig集成在SNS平臺中,實現(xiàn)OpenSocial的服務接口(Service Provider Interface,SPI),就可以讓OpenSocial應用連接SNS平臺中的數(shù)據(jù)。這些接口包括:獲取用戶信息、存儲和讀取用戶活動(新鮮事)、存儲和讀取數(shù)據(jù)、發(fā)送消息等。
SNS平臺也可以將信息提供給經(jīng)授權的其他網(wǎng)站或應用使用。這將使用戶可以通過某些桌面應用程序、手機應用訪問自己在SNS平臺中信息。對用戶來說,這將給他們提供更便捷的訪問途徑、更友好和更面向數(shù)據(jù)本身的服務,而不受制于平臺。OpenSocial的REST和RPC協(xié)議,可用于實現(xiàn)從SNS平臺向應用程序傳輸用戶數(shù)據(jù)、朋友列表、新鮮事。應用程序可以是各種桌面應用程序,或是其他網(wǎng)站、手機應用程序,OpenSocial提供了PHP、Java、.NET、Ruby、Python客戶端類庫,可供基于這些平臺開發(fā)的應用使用。使用Java客戶端類庫,可以實現(xiàn)通過Android手機訪問SNS數(shù)據(jù)。另外,使用Objective-C客戶端類庫,可以開發(fā)基于iPhone的Social應用。OpenSocial使用OAuth實現(xiàn)Social信息的授權訪問。
4.3 OpenSocial與開發(fā)者
Social應用的開發(fā)者,可以使用OpenSocial的Javascript接口編寫基于HTML和Ajax的Social應用,還可以使用Flash/Flex技術,開發(fā)用戶界面更友好的富Internet應用。
使用OpenSocial的客戶端類庫,可以開發(fā)桌面應用和移動應用與SNS平臺交互。目前提供的客戶端類庫有:
1)OpenSocial PHP客戶端類庫;
2)OpenSocial Java客戶端類庫(包含Android手機支持和例子);
3)OpenSocial .NET客戶端類庫;
4)OpenSocial Ruby客戶端類庫;
5)OpenSocial Python客戶端類庫;
6)OpenSocial Objective-C客戶端類庫(包含iPhone手機支持和例子);
7)OpenSocial ActionScript Library (ActionScript Library that calls JavaScript OpenSocial API)。
5 結論
SNS開放平臺,是由用戶的社會關系架構、交互工具和提供活動場景的第三方應用組成,SNS平臺的繁榮離不開豐富的第三方應用。在SNS平臺被用戶充分了解和廣泛認同下,SNS平臺也逐漸趨于同質(zhì)化,讓一個應用可以在多個SNS平臺發(fā)布成為了應用開發(fā)者的訴求。OpenSocial的出現(xiàn)解決了這個問題,它是平臺與應用之間的橋梁,提供SNS平臺的基本接口。開發(fā)者可以使用OpenSocial開發(fā)社會化應用,在SNS平臺中發(fā)布,也可以開發(fā)桌面或手機應用程序,獲取SNS平臺中的用戶信息。
參考文獻:
[1] 貝爾.SNS網(wǎng)站構建[M].北京:機械工業(yè)出版社,2011.
[2] 劉鵬.云計算[M].2版.北京電子工業(yè)出版社,2011.
[3] 張春江.社交網(wǎng)絡(SNS)技術基礎與開發(fā)案例[M].北京:人民郵電出版社,2012
[4] (美)史宗瑋, 張小偉(譯).社交網(wǎng)絡時代:SNS引發(fā)商務與社會變革[M].2版.北京:人民郵電出版社,2011.
[5] 李翔昊.SNS浪潮:擁抱社會化網(wǎng)絡的新變革[M].北京:人民郵電出版社,2011.
[6] 郭應壽.Opensocial簡介[J].程序員,2008(7).
[7] 馬榮霞. SNS網(wǎng)站發(fā)展現(xiàn)狀及盈利趨勢研究[J].蘇州大學,2012(6).
[8] 金璐.我國SNS網(wǎng)站的發(fā)展現(xiàn)狀、問題及完善策略研究[J].鄭州大學,2012(4