人人網開放平臺之父李福松:安全開放才會健康長久
原創【51CTO獨家特稿】在其他開放平臺剛剛萌芽的時候,人人網開放平臺就已經風生水起了。人人網早在2008年7月8日就正式對外發布了開放平臺戰略,從此全面拉開了中國互聯網的開放平臺時代。開放平臺成為創新者和創業者的樂土,各種開發團體、個人、開發公司都進駐開放平臺,各種應用產品五花八門,極大地滿足了用戶的需求,涌現出了很多優秀的應用產品。像風靡世界的開心農場就是從人人網開放平臺率先推出并迅速受到廣大用戶喜愛,一時間全民挖菜,場面蔚為壯觀。國際上頗具影響力的著名IT科技雜志《連線》評選出了“過去十年最具影響力的15款游戲”,開心農場排名十四。在收獲優秀應用產品的同時,開放平臺也幫助眾多開發者迅速創業成功。
人人網開放平臺官網:http://dev.renren.com/
嘉賓介紹
李福松 人人網開放平臺之父 高級產品&技術經理
下面是51CTO對人人網李福松先生的采訪實錄
1. 人人網開放平臺對比其他開放平臺在技術上有哪些獨特優勢?對于中國眾多的開放平臺,您覺得會有怎樣的發展?
開放必須安全的開放才能保持長久健康的開放狀態,因此對于安全驗證及授權這塊就尤為重要,人人網開放平臺率先在國內采用了OAuth2.0的驗收與授權解決方案,同時首先翻譯了OAuth2.0的中文版貢獻給國內社區,目前OAuth2.0支持多種的驗證流程,在人人網開放平臺接入應用方面發揮重要作用。
用戶隱私是人人網一直非常看重的,而人人網的用戶模型與其他網站有很大不同,因此我們在權限的粒度設計上充分照顧到用戶的不同隱私需求,將權限的范圍進行了詳細的劃分。
我們構建自己的通用開放平臺(Common Programming Platform,簡稱CPP),目的在于增強人人網開放平臺的開放性和標準化,從而使第三方與人人網的集成更加容易和多樣化,進一步推動開放平臺領域的社會分工,為產生各種開發SDK創造必要條件。
人人網開放平臺在對外公布REST API的基礎上,又對外發布了我們的Widget API,將可視化的組件也通過API的定義方式對外發布,充實了我們對API的理解,這樣的設計是我們在標準化的努力實踐。
人人網開放平臺努力封裝各種語言的SDK,以及為Discuz等開源社區封裝組件,就是力圖降低開發者的接入門檻,同時SDK上不僅僅是簡單的接口封裝,也逐漸將業務功能進行整合封裝到SDK中。
2. 人人網開放平臺的開放策略是怎樣設定的?如果我是用戶,為人人網開放平臺開發第三方應用會獲得怎樣的扶植策略?
開放平臺一直秉承開放共贏的理念為客戶服務,不為開發者設置過多門檻,同時為了平臺的健康發展以及開發者群體的整體利益對于應用接入的產品質量嚴格把關,努力將精品推送給人人網用戶。任何一個組織或個人,都可以自由的制作人人網應用,我們有專門的營運團隊為開發者解答業務層面的問題,我們也有專門的技術咨詢與支持團隊為開發者進行技術支持,同時我們平臺的運維部門還為那些優秀但缺少服務器的應用準備了一些服務器供開發者使用,目前這種服務器及帶寬的租賃是免費的。同時我們在網站也有不同的資源對應用進行推廣。
3. 蘋果APP STORE開發人員分得七成收益的模式讓大家津津樂道,那么人人網平臺的利潤分成是怎樣設置的?如何保證開發人的合理利益?
目前我們在執行的分成策略是,在扣除人人網渠道成本后的部分進行4:6分成,開發者占6成。同時開放平臺也正在積極研究新的更加優惠的分成策略,讓開發者得到更多利潤用以鼓勵開發者在人人網研發更多新的產品。
分成策略只是我們吸引開發者入駐的因素之一,我們通過與開發者廣泛溝通發現能夠給其帶來大量流量,提升品牌價值才是開發者最為看重的,目前的開發者們更看重的是其團隊的長遠發展及品牌目標,因此在這方面人人網擁有得天獨厚的優勢可以幫助開發者們實現這一目標。
除了分成策略,我們在自助廣告的投放也向開發者的應用傾斜,我們在運維資源的支持上也有相對靈活與寬松的政策,很多開發者得到了我們大量服務器及帶寬的免費支持。這些都從不同側面保證開發者的合理利益得到保障。
4. 中國目前的版權保護機制還很不完善,人人網開放平臺的授權機制是如何運作的?開發者以什么方式可以得到授權?請介紹下人人網開放平臺的技術架構或者服務器部署架構。這樣的架構對比其他平臺在性能上會有怎樣的優勢(可不說明參照對比的是哪個平臺)?
通過OAuth 2.0的發布,我們在“用戶授權”這一部分,將平臺提供的服務(Service)進行了標準化(同時也是行業現成標準)。這樣就使得如圖2所示的行業分工成為可能:

圖2 OAuth 2.0帶來的行業分工
在圖2中,由于OAuth 2.0帶來的標準化和實現的通用性,各種Connect客戶端(即SDK)就能交給開源社區來封裝。通常,這樣的開發工作只需要個人開發者就可以完成。
在這個基礎上更進一步,在“用戶授權”以外的領域,可以將整個平臺各種服務進行標準化,打造出一個Service層+一套相關規范(spec)。這樣的技術架構,在“用戶授權”以外的領域,尤其有利于widget產品(暫且叫這個名字)的標準化。關于這種通用widget的雛形,可以參考facebook的Platform Dialog和各種social plugin。
在圖3中,我們從平臺的各種接口中剝離出一個Service層,在Service層基礎上,產生各種SDK。這個Service層,加上相應的一套編程規范,組成整個開放平臺的核心——通用編程平臺(CPP)。

圖3 基于通用編程平臺(CPP)的技術結構
在圖3中,平臺的核心,通過標準化搭建起一個Service Layer。這一層的工作必須由開放平臺完成。
上層的兩個SDK層次可以由開源社區來完成。
第三方應用開發者根據需要可以選擇使用三個層次的API。
平臺的核心——CPP包括兩部分:
(1)圖3中的CPP Service Layer,由各種endpoint組成。
(2)由文檔組成的Spec,包含endpoint需要的參數、回傳方式、顯示模式、注冊設置等規范。
Service層中的各個endpoint大部分是基于HTTP的一個服務點,但SSO Endpoint不是。它是某些在運行環境下進程間通信的接收和驗證服務,其對應的Spec中包含進程間通信的地址、參數、安全驗證設置等信息。
Service層中的endpoint可以分為四大類:
◆ Auth Endpoints
◆ Renren API Endpoints
◆ Widget Endpoints
◆ Single Sign-on Endpoints
帶有CPP Spec的架構圖如下所示:

圖4 通用編程平臺(CPP)的技術結構(加入CPP Spec)
6. 人人網開放平臺在數據庫方面是怎樣的一種組合?是否考慮在未來使用NoSQL數據庫?
更全面說開放平臺在數據存儲上采用DB+Cache(遠程+本地)的組合方式。
在DataBase方面采用通用的Master/Slave 的模式,但也同時根據不同業務進行了垂直部署與水平拆分,不同的業務會由不同的DB集群承擔,一個業務中數據量過大的會進行散表的水平拆分;
有專門的Hadoop集群用來集中處理平臺的各種Log;
有專門的Memcached集群維護業務數據;
也對部份業務數據進行了本地化緩存。
人人網也在研討NoSQL,開放平臺在這方面也有跟進,也在時機成熟的時候大規模引入NoSQL。
7. 平臺安全性至關重要,對于開發平臺的安全性是如何保障的?是不是存在專門的人員來規劃整個開放平臺的安全機制。
一方面我們采用安全程度高的授權與驗證解決方案OAuth2.0。
一方面我們在業務實現上盡量用簡單實用的流程來降低負責度與提高安全性。
一方面我們通過多維的數據監控及時的發現異常變化。
一方面我們與人人網安全部門緊密的合作,及時更新各種新發現的安全漏洞。
我們有專門的人員規劃平臺的安全機制。
【編輯推薦】

















