SNS社交平台的核心技术架构

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平台,才能受到第三方开发者的青睐,享受“众包”的魔力。

Tags: web