SNS社交平台的核心技术架构
2012-03-12 09:00
423 查看
SNS(Social Networking Sites),是一类用户可以自己发布信息、与别人互动并分享个人或职业兴趣的网站。知名的SNS网站有Facebook、MySpace、人人网(校内网)、开心网等。
运营一个SNS并不容易,需要用户体验研究、艺术设计、前端开发、后端架构、系统维护优化等技术人员,以及商务、公关、客服等非技术部门的通力配合。阳光男孩是技术人员,所以只谈技术。本文只想涉及SNS技术的一小部分:平台核心架构。所谓“平台核心架构”,我说的是SNS网站最基础、最核心的部分。与“操作系统”对比,SNS的平台核心架构,就相当于操作系统的内核。阳光男孩认为,SNS平台的核心架构包括两块:应用接入、消息分发。
应用接入,让用户有事可做
完善、稳定的应用接入平台,让用户在SNS平台上有事可做。这里所说的“应用”,既包括第三方应用(比如开心农场、荣光医院、跑火车等各类游戏),也包括SNS网站自己推出的应用(比如日志、照片、相册等各种内置工具)。自有应用+第三方应用,约等于SNS网站上除了首页、个人主页、设置页面以外的所有页面。
SNS平台为接入应用提供的功能
SNS的应用接入平台,应当提供下列功能:
* 身份认证:告诉应用,当前使用者是谁?
* 用户数据获取:让应用取得它想知道的信息,包括用户的个人资料、好友关系;如果隐私允许,应当支持获取当前使用者以外其他人的用户数据。
* 通知:应用可以向用户发送通知。可以支持多种途径,包括站内信、IM消息、电子邮件、手机短信等。
* 消息发布:用户可以向自己的好友/关注者发布消息,分享自己在应用中取得的成绩,邀请好友一起来使用。这是应用接入平台至消息分发平台的入口。
* 应用推广:SNS平台根据用户的兴趣或可能的需求,向用户推荐有趣、有用的应用,帮助应用开发者作推广。
* 收费:应用开发者可以通过SNS平台提供的渠道,向使用者收费。
* 统计分析:应用开发者可以查看用户使用应用的情况,包括用户的地域/年龄/职业/网络接入等分布、用户使用的功能/点击的按钮等,以便优化用户体验。应用开发者还可以查看自己的应用在同类应用、全部应用中的排名情况。
消息分发,让用户保持联系
高效、易用的消息分发平台,让用户在SNS平台上保持联系。这里所说的“消息”,既包括“状态”等简单的文本消息,也包括“新鲜事”等复杂的结构化消息。SNS网站的首页、个人主页,其主要部分就是各类消息的展示。
消息分发平台的设计考虑
SNS的消息分发平台,设计时应当考虑下列因素:
* 消息结构的定义:“新鲜事”是一类复杂的结构化消息。设计消息分发平台时,应当仔细考虑如何定义消息的结构。一个好的消息结构,应当可以表示来自各类应用的各种消息(文字、图片、视频,还有日志摘要、游戏得分、投票打分),并能够在不同的设备上展示(HTML并不是一个好的选择,别忘了还有桌面软件、移动设备),并且可以扩展。
* 消息的发布入口:应用是消息的唯一发布入口。让用户自己输入“状态”并发布,这也可以视为一个应用。
* 评论:中国人喜欢起哄,因此每条消息都应该可以评论。
* 转发:看到了一条精彩的消息,可以加上评论并转发给自己的好友。转发时应当保证原消息的完整性(就像Twitter的新式retweet功能那样)。
* 过滤:让用户表述自己喜欢、不喜欢的消息类型。过滤掉用户可能不喜欢的消息。
* 提醒:“日志回复”、“照片圈人”等针对当前用户进行的重要动作,应当提醒用户。
* 消息去重:如果有大量相似的消息,应该将它们合并起来。再精彩的故事,听一百遍耳朵也会长老茧。
* 订阅和导出:开放一点,让用户在SNS平台之外订阅、导出、备份自己和好友的消息。
小结
SNS网站要成为一个平台,在技术方面,首先要把应用接入、消息分发两块搞好。这样的SNS平台,才能受到第三方开发者的青睐,享受“众包”的魔力。
运营一个SNS并不容易,需要用户体验研究、艺术设计、前端开发、后端架构、系统维护优化等技术人员,以及商务、公关、客服等非技术部门的通力配合。阳光男孩是技术人员,所以只谈技术。本文只想涉及SNS技术的一小部分:平台核心架构。所谓“平台核心架构”,我说的是SNS网站最基础、最核心的部分。与“操作系统”对比,SNS的平台核心架构,就相当于操作系统的内核。阳光男孩认为,SNS平台的核心架构包括两块:应用接入、消息分发。
应用接入,让用户有事可做
完善、稳定的应用接入平台,让用户在SNS平台上有事可做。这里所说的“应用”,既包括第三方应用(比如开心农场、荣光医院、跑火车等各类游戏),也包括SNS网站自己推出的应用(比如日志、照片、相册等各种内置工具)。自有应用+第三方应用,约等于SNS网站上除了首页、个人主页、设置页面以外的所有页面。
SNS平台为接入应用提供的功能
SNS的应用接入平台,应当提供下列功能:
* 身份认证:告诉应用,当前使用者是谁?
* 用户数据获取:让应用取得它想知道的信息,包括用户的个人资料、好友关系;如果隐私允许,应当支持获取当前使用者以外其他人的用户数据。
* 通知:应用可以向用户发送通知。可以支持多种途径,包括站内信、IM消息、电子邮件、手机短信等。
* 消息发布:用户可以向自己的好友/关注者发布消息,分享自己在应用中取得的成绩,邀请好友一起来使用。这是应用接入平台至消息分发平台的入口。
* 应用推广:SNS平台根据用户的兴趣或可能的需求,向用户推荐有趣、有用的应用,帮助应用开发者作推广。
* 收费:应用开发者可以通过SNS平台提供的渠道,向使用者收费。
* 统计分析:应用开发者可以查看用户使用应用的情况,包括用户的地域/年龄/职业/网络接入等分布、用户使用的功能/点击的按钮等,以便优化用户体验。应用开发者还可以查看自己的应用在同类应用、全部应用中的排名情况。
消息分发,让用户保持联系
高效、易用的消息分发平台,让用户在SNS平台上保持联系。这里所说的“消息”,既包括“状态”等简单的文本消息,也包括“新鲜事”等复杂的结构化消息。SNS网站的首页、个人主页,其主要部分就是各类消息的展示。
消息分发平台的设计考虑
SNS的消息分发平台,设计时应当考虑下列因素:
* 消息结构的定义:“新鲜事”是一类复杂的结构化消息。设计消息分发平台时,应当仔细考虑如何定义消息的结构。一个好的消息结构,应当可以表示来自各类应用的各种消息(文字、图片、视频,还有日志摘要、游戏得分、投票打分),并能够在不同的设备上展示(HTML并不是一个好的选择,别忘了还有桌面软件、移动设备),并且可以扩展。
* 消息的发布入口:应用是消息的唯一发布入口。让用户自己输入“状态”并发布,这也可以视为一个应用。
* 评论:中国人喜欢起哄,因此每条消息都应该可以评论。
* 转发:看到了一条精彩的消息,可以加上评论并转发给自己的好友。转发时应当保证原消息的完整性(就像Twitter的新式retweet功能那样)。
* 过滤:让用户表述自己喜欢、不喜欢的消息类型。过滤掉用户可能不喜欢的消息。
* 提醒:“日志回复”、“照片圈人”等针对当前用户进行的重要动作,应当提醒用户。
* 消息去重:如果有大量相似的消息,应该将它们合并起来。再精彩的故事,听一百遍耳朵也会长老茧。
* 订阅和导出:开放一点,让用户在SNS平台之外订阅、导出、备份自己和好友的消息。
小结
SNS网站要成为一个平台,在技术方面,首先要把应用接入、消息分发两块搞好。这样的SNS平台,才能受到第三方开发者的青睐,享受“众包”的魔力。
相关文章推荐
- SNS社交平台的核心技术架构
- 移动支付平台间接口报文解析技术核心架构实现、及平台交易处理项目全程实录教程
- 001_谈阿里核心业务监控平台SunFire的技术架构
- Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构核心技术
- 微信群控系统源码,微信云控系统源码的升级版,一部手机操作100个微信号的核心源码实现,核心技术架构
- 业务架构平台的技术实现环境
- 大型网站技术架构:核心原理与案例分析
- Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构核心技术
- 《大型网站技术架构 核心原理与案例分析》读书笔记
- 技术文章 | 小米深度学习平台架构与实现
- 观《亿级流量网站架构核心技术》有感
- 甘肃科技文献共享平台架构及关键技术研究
- 基于.net平台remoting、DB2技术的大型分布式HIS系统架构及开发(项目架构师方向)
- 读书笔记之 大型网站技术架构(核心原理与案例分析)
- 以工作流为核心的企业开发平台架构
- [笔记] 大型网站技术架构——核心原理与案例分析 [四]
- 学习笔记6:《大型网站技术架构 核心原理与案例分析》之 万无一失:网站的高可用架构
- 大型网站技术架构(三)--架构核心要素
- 大型网站技术架构 读书笔记2 大型网站核心架构要素