基于互联网开放平台的统一用户系统设计

2015-03-14 10:09邹壮达湖南财政经济学院公共实验中心湖南长沙410205
赤峰学院学报·自然科学版 2015年17期
关键词:开放平台身份数据库

邹壮达,谭 建(湖南财政经济学院 公共实验中心,湖南 长沙 410205)

基于互联网开放平台的统一用户系统设计

邹壮达,谭建
(湖南财政经济学院公共实验中心,湖南长沙410205)

摘要:本文利用各开放平台的OpenAPI、通过OAuth2.0协议等技术实现了一个统一用户平台,解决了各个开放平台用户之间相互通信的问题.

关键词:开放平台;OpenAPI;OAuth2.0

1互联网开放平台现状与面临的问题

纵观互联网的入口流量分配方式,大体可以分为导航时代、搜索时代和开放时代三个时代.互联网的发展由以内容为中心主逐步向以用户为中心转化.尤其是随着社交化平台的兴起,互联网成为了一个人人可以表述自己观点的大社交平台.

同时,随着新web技术的应用,越来越多的系统中拥有与用户相关的信息,而这些系统又是封闭的,并且相互之间独立,于是引发了各种问题[1].

1.信息和资源的碎片化:信息和资源、信息和信息、资源和资源之间缺乏多样性的关联化组织;2.应用碎片化:用户需要所使用的各种应用在不同的网站,相互之间缺乏关联,使用不便;3.关系碎片化:用户需要在各种不同的网站注册ID,并拥有各自不同的并且独立的关系;4.用户碎片化:相关信息、应用、资源、关系的分裂,造成用户自身呈现为碎片化的特点.

在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为叫做Open API[2],提供Open API的平台本身就被称为开放平台[3—5].

各大互联网公司或出于整体战略考虑,或出于经济利益考虑,都纷纷开放自身平台.如何利益这些开放平台,跨越产品屏障,整合互联网碎片,是本文研究的重点.本文将在这些开放平台的基础上,设计一个新型的社交化系统,目标是以用户为中心,整合信息碎片,减少网络社交过程中的屏障.

通过开放平台,网站不仅能提供对Web网页的简单访问,还可以进行复杂的数据交互,将它们的Web网站转换为与操作系统等价的开放平台.第三方开发者可以基于这些开放平台而开发丰富多彩的应用.

如图1.1,展示了互联网开放平台与第三方应用之间的关系.

图1.1互联网开放平台与第三方应用

2消除各类碎片,开放平台信息与功能互通的解决方案

2.1与开放平台通信的技术基础OAuth2.0协议

OAuth2.0[6]是一个开放授权协议,允许第三方应用访问服务提供方中注册的终端用户的某些资源,且不会把帐号和密码提供给第三方.

OAuth2.0允许通过服务提供商授予的一个临时令牌而不是用户名密码来获取用户的资源,这些资源可以是受限的,令牌的时间段也可以是受限的.

OAuth2.0的参与者:

1.资源所有者RO(Resource Owner).存放在服务提供方的受保护的资源的拥有者.

2.资源服务器RS(Resource Server).资源服务器存储资源,并处理对资源的访问请求.

3.第三方应用或服务提供者Client.第三方应用获得RO的授权后便可以去访问RO的资源.

4.授权服务器AS(Authorization Server).授权服务器认证RO的身份,为RO提供认证审批流程,并最终颁发授权令牌(Access Token).(为了便于协议的描述,这里只是在逻辑上把AS与RS区分开来;在物理上,AS与RS的功能可以由同一个或者同一组服务器来提供服务.)

三个节点(Endpoints):

1.Request Token.获取授权令牌.

2.User Authorization.重定向的URI,让用户授权.

3.Access Token Request.获取访问令牌.

图2.1 OAuth2.0授权与资源获取过程

2.2以第三方开发者的身份从开放平台获取用户的资源授权

第三方开发者,通过OAuth2.0协议获取用户授权后可以获取该用户的信息,并且可以以该用户的身份在开放平台进行功能操作.因此,若在多个平台获取多个用户的授权,便可以使得所有用户跨越平台进行信息和功能的相互交流、共享.因而可以消除互联网中的信息化与功能碎片.

3统一用户系统的设计与实现

要实现统一的用户系统,需要解决3个方面的问题:(1)每个开放平台的API虽然都是以OAuth2.0协议为基础,但具体实现各不相同.(2)每个用户在不同的开放平台中有不同的身份,需要将身份进行唯一性认证.3、每个用户在不同的开放平台拥有不同的关联用户,这些“关系圈”需要进行维护,确保关系不会混乱.

3.1以模块方式实现各开放平台API对接,以接口方式实现内部统一调用.如图3.1.

3.2收集授权的个人信息,确定用户身份的唯一性.由于用户在多个放平台注册会产生身份信息碎片,所以必须要能准确判断用户身份,消除身份信息碎片.可以采用身份证信息认证、自行注册平台身份、手机号判断、Email地址判断、cookie信息收集、IP地址判断等各种手段来确定身份.

图3.1对接API模块统一接口

图3.2用户身份唯一性身份确认模块

3.3归并算法处理用户关系圈冗余.基于用户关系圈的特性可以采用归并(Merge)算法对User的关系圈进行计算,从而达到关系唯一性的要求,消除关系碎片.将user对象视为节点A,user在各开放平台的关系用户视为节点B1、B2……Bn.那么A节点的关系碎片如图3.3所示:

图3.3原始用户关系

归并算法原理是将2个序列合并到一个序列里,其工作原理如下:(1)申请内存空间,大小等于2个序列之和.(2)设定2个指针,最初位置分别为2个序列的起始位置.3、比对合并序列,如果合并序列存在当前值则抛弃,如果不存在,则将当前值加入到合并序列.在本系统中,归并算法结合实际情况的活动状况如活动图3.4所示.

图3.4归并算法流程图

合并以后,用户关系如图3.5所示:

图3.5维护后的用户关系

3.4系统数据库ER图.根据需求分析以及关键模块设计,数据库应该存储的对象包括用户身份信息、开放平台信息,外部关系信息,内部关系信息,接入站点信息等.

映射到数据库中:

用户信息:user表

开放平台信息:open_plat表

外部关系信息:extetnal_relation表

内部关系信息:interior_relation表

接入站点信息:site表

图3.6为根据数据库第二范式规范设计的数据库ER图.

图3.6系统数据库设计

在数据库查询数量增长到一定数量级时,(1)减少联合查询,(2)高效利用索引、复合索引以及覆盖索引,(3)高效利用查询缓存,(4)进行分表等,是有效提高数据库效率的主要途径.所以,在设计数据库时,在满足功能需求后,优化数据库为以上后续优化步骤提供途径,是设计工作的主要优化方向.

1.为了方便减少联合查询、高效利用索引、分表3个后续优化步骤,设计方向是需要将数据尽量集中在一张表中.

2.为了能高效利用查询缓存,高效利用索引,要求设计方向是将经常变化的数据,和不经常变化的数据分开存储.

图3.7为根据上述优化原则对数据库进行优化以后的数据库ER图.

图3.7优化后的数据库ER图

4 总结

本文根据开放平台的特性提出一种实现开放平台之间信息与功能互联互通的方法.解决了在实现互通环节的API模块统一、用户身份唯一性确认、用户关系圈维护等问题.并为统一用户系统设计了数据库.虽然本系统仅实现了用户信息互通,但是按照本文提出的方法,可以实现开放平台之间所有功能的相互协作.

参考文献:

〔1〕艾文倩.微博平台的信息碎片化研究.陕西师范大学硕士论文,2012.1-4.

〔2〕Mulligan,C. Open API standardisation for the NGN platform 2008,4-7.

〔3〕岑文初.Dpen API分析与实践程序员.2009-

01-01,5-11.

中图分类号:TP311

文献标识码:A

文章编号:1673-260X(2015)09-0019-03

猜你喜欢
开放平台身份数据库
基于百度地图开放平台的导航电子地图课程实践教学研究
基于在线开放平台的混合式课堂教学模式构建与实践
基于AliGenie语音开放平台的传统家居智联网解决方案
跟踪导练(三)(5)
身份案(下)
数据库
数据库
他们的另一个身份,你知道吗
数据库
数据库