论文部分内容阅读
自从接入SNS网站后,伴随网站业务和规模的迅猛扩增,很多非集成零散的业务环境会产生,从而滋生出冗余和不一致性问题导致业务维护很可能出现质量问题。另外由于不断变化的业务需求,数据由于缺乏灵活性使得项目敏捷开发出现阻碍。另外,在已有冗余环境中增加新业务和更改已有业务会导致成本不断上升。因此,目前需要通过重构分层方式将可复用服务集成分离。本文首先分析研究国内外著名Web站点在用户与用户关系,用户与微博关系方面关于共享服务即开放API的发展情况。以Facebook、Twitter和国内新浪微博网站为代表,介绍其在users、friends、statuses用户状态和twitter消息等资源的REST API设计实现。提出基于简单、轻量级的REST架构开发可复用业务层的API。该层应用不是完全从零开始,主要工作是基于已有网站数据库和业务代码逻辑将重复服务集成并提供统一API供上层调用。接着从网站总体架构角度对公共层提出设计目标。运用已有ORM库提供的数据库访问接口,利用弥补传统数据库访问弱点而部署的NoSQL系统集群进行高性能读写操作和数据缓存,解决HTTP请求传入的数据解析和采用非堵塞异步消息队列完成辅助任务,和其他相关IO组件设计封装公共层的IO子层。解决完IO相关问题后,通过分析上层业务频繁调用的请求,设计资源并创建资源分类和URI表示,设计可寻址的、无状态的、可连通的和具有统一接口的面向资源应用。同时,设计具体异步任务队列完成重要请求的辅助任务。最后基于REST风格,以MVC模式为核心实现所有当前资源操作API,并提供CURL方法模拟请求进行验证工作。目前对用户与用户的关系、用户与微博的关系操作请求分为4类模块,分别为user和users、twitter和twitters。个体和集合资源并列设计,是为了更好地响应上层应用不同的业务请求。资源操作方法尽力提供GET/POST/PUT/DELETE4类方法,对无需实现的方法不做要求。本文所提供的关于用户与用户、用户与微博相关资源的统一访问接口已经将原有上层业务代码中相关联部分替换,减轻其他程序员的业务维护负担,减少代码冗余和不一致问题,提高团队敏捷开发速度,从而帮助提高用户体验。同时,还有更多改进方法待下一轮迭代开发完成。