【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。
一方面我们在业务实现上尽量用简单实用的流程来降低负责度与提高安全性。
一方面我们通过多维的数据监控及时的发现异常变化。
一方面我们与人人网安全部门紧密的合作,及时更新各种新发现的安全漏洞。
我们有专门的人员规划平台的安全机制。
【编辑推荐】