APP下载

REST在身份管理中的研究与应用

2009-07-16于子元王晓辉

新媒体研究 2009年8期
关键词:服务器端计算机软件契约

于子元 潘 伟 王晓辉 戴 勇

[摘要]随着身份管理重要性不断提升,身份联邦、面向架构服务(SOA)以及Web2.0等理念已经被注入到身份管理[5],企业系统面临着进化,传统的身份管理的架构和基于SOAP的身份管理模块在实现进化的需求上都存在着或多或少的限制。将以作者在IBM公司参与开发的某企业管理系统为项目背景,讨论如何将REST[1]风格架构应用到身份管理系统之中。

[关键词]REST 身份管理 Web Service SOA 企业级Web2.0

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0420043-01

一、引言

传统的身份管理应用只是单纯的封装身份信息,应用只是单纯的向域内客户端提供JAVA访问API,它无法向域外客户端提供身份信息,也无法为非JAVA型的客户端提供访问接口,所以传统的身份管理应用无法满足系统进化的需要。

Web service无疑是替换传统身份管理应用的最佳方案。SOAP形式的Web Service被广泛的应用,另一种风格Web Service架构REST也吸引着人们的眼球。REST架构面向资源接口设计以及操作抽象简化了开发者的不良设计,并最大限度的应用了HTTP作为应用性协议的设计理念。相比于SOAP形式的Web Service,它拥有易用以及性能高效的优点[6]。另外REST风格架构除了选择传统的xml作为数据承载,还有JSON,RSS,ATOM等形式,开发人员来说就能够很好的mashup各种资源[1]。

REST风格身份管理应用(如图2)不但向域内模块提供了SOA的整合接口,而且可以通过HTTP协议向域外的不同语言的客户端模块统一的提供身份信息。

二、Rest契约的设计

Rest风格架构的一个特点就是应用客户端和服务器互相分离,这样可以减少客户端和服务器端的耦合。只要架构师定义出客户端和服务器端之间的契约,也就是REST应用中的URL形式的API,项目实现者就可以根据REST契约进行客户端和服务器端应用的开发;同时在敏捷开发的角度来看,REST契约也是测试驱动开发中最好的测试数据。以系统中“新建角色”为例,它的REST契约具体的设计实现如下:资源ID:http://wdshost

/idf/json/role。

HTTP提交模式:POST

参数:{"roleName":"Admin","description":"old role","roleID":

"PlatformAdmin"}

三、REST架构的实现

当定义好REST契约,我们就可以关注服务器端的REST接口的实现。在项目中我们会通过Servlet技术构建Rest风格接口。

通过图1,我们可以看到类的结构图,其中抽象类RoleDelegate的设计负责为“角色”资源的不同表现(XML、ATOM)提供接口。当客户端程序需要“角色”实体的ATOM表现形式的时候,我们只需要定义一个RoleATOMDelegate类去继承RoleDelegate即可。

我们可以通过时序图看到模块的工作流程(如图2)。

1.DispatchServlet接收到HTTP请求,判断请求属于Role角色实体相关的资源,转接到RoleServlet进行处理;

2.RoleServlet判断HTTP请求类型为post,将HTTP请求委托给业务代理RoleJSONDelegate中的createRole()进行处理;

3.业务代理通过和DAO层的通讯将对LDAP操作返回给Servlet;

4.DAO层将“添加”操作的结果返回给业务代理RoleJSONDelegate;

5.业务代理RoleJSONDelegate将操作结果封装为JSON串,并放在HTTP响应对象中返回给RoleDelegate;

6.RoleDelegate将包含着JSON格式消息的HTTP相应对象返回给DispatchServelt,然后返回给客户端。

四、总结

本文以IBM公司某企业管理系统为项目背景,讨论了REST架构在身份管理中的应用。REST凭借自身有点,已经得到越来越多开发者的关注,将Rest风格推广为像SOAP形式Web Service一样成熟的规范体系,是REST发展的方向,也是我们在学生的一个良好的研究课题。

参考文献:

[1]陈亮、陶宏才,基于REST的Web服务Mashup研究与应用[J].成都信息工程学院学报,2008年5期.

[2]徐斌、袁健,基于Web2.0的用户权限管理研究与实现[J].计算机工程,2008年13期.

[3]Fielding R T. Architectural Styles and the Design of Network-based Software Architecture[A].Doctorial Dissertation,Dept.of Computer Science[C].Univ.of California,lrvine,2000.

作者简介:

于子元,东北师大计算机软件与理论硕士;潘伟,导师、教授;王晓辉,东北师大计算机软件与理论硕士;戴勇,东北师大计算机软件与理论硕士。

猜你喜欢

服务器端计算机软件契约
刍议计算机软件中的安全漏洞检测技术
计算机软件技术的不可靠性探析
计算机软件应用及其发展趋势研究
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
计算机软件安全检测技术
一种基于Java的IM即时通讯软件的设计与实现
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
契约精神在国企成长未央
群体认同调节下的心理契约破坏对员工满意度的影响