全功能Rest Web Service开源框架Rop作者陈雄华专访

全功能Rest Web Service开源框架Rop作者陈雄华专访Rop Rapid Open Platform 是借鉴淘宝开放平台 TOP Taobal Open Platform 实现的全功能 Rest Web Service 开源框架 Full Stack 它高于 CXF Aixs 等一般的纯技术 Web Service 框架 提供了请求 响应序列化 数据检验 会话管理 安全管理等高级主题的东西 最值得一提的是其参考 TOP 提供了一个可扩展的错误处理模型

大家好,我是讯享网,很高兴认识大家。

Rop(Rapid Open Platform)是借鉴淘宝开放平台(TOP,Taobal Open Platform)实现的全功能Rest Web Service 开源框架(Full-Stack)。 它高于CXF、Aixs等一般的纯技术Web Service框架,提供了请求/响应序列化、数据检验、会话管理、安全管理等高级主题的东西。最值得一提的是其参考TOP,提供了一个可扩展的错误处理模型,使开发平台级的Web Service的难度大大降低。 

本期我们采访了该框架的作者

陈雄华,请他来谈一谈该框架的开发和使用相关的情况。 

欢迎大家推荐更多开源项目给我们,支持中国的开源项目发展,如果您和您的团队希望展示创业理念和有趣之处,或者有朋友正在创造这样的价值,请联系我们,发信到即可。

先来个自我介绍吧! 

大家好!我是陈雄华,ITeye网名是stamen,对Spring、Oracle、云计算、敏捷开发感兴趣,擅长企业应用和大型电子商务网站的架构和设计。


讯享网

毕业到现在整10年了,参与过10多个大型企业应用系统的开发,一直和Java厮混,是一个不折不扣的老Java程序员,对技术高峰身虽不能至而心向往之。曾在一家公司做系统架构师时,构建了一个类似于普元的模型驱动快速开发平台,据说很多程序员都有一个开发平台梦,这个梦我算是基本实现了:)。 

近几年从事互联网电子商务B2B平台、B2C平台的设计和开发工作,接触到了很多互联网的技术,如memcached、Elasticsearch、Hadoop等。庆幸自己既有企业应用开发的经历,又能从事互联网系统的开发,毕竟企业应用和互联网应用的鸿沟还是挺深的。 

应用开发之余,喜欢写些文字,写有《精通JBuilder 2005》、《精通Spring 2.x》及《Spring 3.x企业应用开发实战》等几本书籍,在IBM、CSDN、it168发表过几十篇技术文章,颇受读者的喜欢。

Rop是什么? 

Rop,即Rapid Open Platform,它参考了TOP (Taobao Open Platform:淘宝开放平台)的设计思路,充分借鉴Spring MVC的技术架构原理而开发的一个快速服务开放平台开源框架。 

Rop不同于传统的CXF,Axis这些SOAP Web Service框架,也不同于Jersey、Restlet这些Rest Web Service框架,因为这些Web Service框架都是技术层的框架,而Rop是应用层的平台框架,它不但可以方便快捷地开发一个个Web Service服务,还提供了构建服务平台众多领域问题的整体解决方案。因此—— 

传统的Web Service框架帮助你建造房子,而Rop框架帮助您建造城市。

Rop项目的由来?设计思想是什么? 

中图一购网是一个整合图书上下游供应链的B2B网站,网站需要和图书供应链上下游的ERP系统实现信息对接。因此,早期中图一购网采用REST Web Service打造网站的服务总线,作为技术总监,一般是由我定义服务接口及报文。在定义服务报文时,我发生一个最大的困难是定义服务的错误类型,任何一个服务的正确报文只有一个,但是错误的情况不胜枚举。所以服务报文往往会漏掉一些潜在的错误情况,一旦服务端发生这些错误,客户端就瞎了。 

所以,那时候,一旦需要新增服务或变更服务,我头就大了,往往是底下的开发人员在催我:服务报文定义好没有?或是抱怨,老大,你服务报文这个错误好像没有考虑到啊? 

我不情愿地发现,开发一个服务很简单,但是设计服务报文难度却很大。痛定思痛,才去TOP、豆瓣等开放平台中取经,我发现TOP的错误模型定义得非常“大气”,经过分析才知道TOP的错误模型是收敛的,也即TOP已经对服务平台的各种错误建模好了,你不再需要为定义错误类型、设计错误代码而抓腮挠耳了,直接套用就可以了。 

另一个发现是,TOP的服务API非常友好,它摒弃了REST所宣扬的为每个服务设计一个达意的URL理念,直接采用统一的URL,辅以一套标准的系统参数和业务参数调用服务。TOP这种请求模型优于REST的请求模型,因为TOP的请求模型倾向于把服务看成一个个API,而REST请求模型倾向于把服务看成一个网页,前者偏向于程序调用,而后者偏向于看网页的人,虽然可读性强,但却不方便客户端程序的编写。 

从我个人的喜好上来说,如果要给请求模型的好坏排个序,那自然是TOP的请求模型优于REST,而REST请求模型优于SOAP。因此就希望采用TOP的方式重构网站的服务总线,但是TOP的框架并没有开源,所以就自己动手搞了一个基于Spring技术架构,采用TOP请求模型思想的服务平台模型,即Rop。 

Rop的英文和Spring的缔造者Rod很像,我很喜欢这种巧合,毕竟,Rop框架的实现和Spring息息相关,Rop基本上是参照Spring MVC的实现原理设计的,使用到了很多Spring的工具类,Rop本身也需要Spring框架才能运行,可以看成是Spring的一个子项目。

与传统Web Service框架相比,Rop有哪些优势? 

Rop和一般的Web Service框架不处在相同的层面,一般的Web Service框架是站在技术层面的,它们的工作职责是把Java对象开放成一个Web Service服务,或者把Web Service服务映射成一个Java方法。而Rop是服务平台的框架,是面向应用层的,Web Service在Rop中仅是一个基础,在此基础上Rop提供了错误模型、会话管理、版本控制、安全控制、超时限制、文件上传等众多的“应用层”领域问题的解决之道。


性能如何? 


对于服务平台框架来说,性能是非常关键的因素。Rop内部拥有一个线程池,可以根据硬件情况调整线程池的大于进行性能调优。Rop框架本身直接使用Spring的类包进行请求响应报文流化工作,因此Rop也继承了Spring的高性能。 


我本身并没有对Rop进行大面向的性能测试,我使用rop-sample项目的UserServiceRawClient#testServiceXml-RequestAttr测试方法进行了性能的测试,该方法包括了一套比较复杂的业务参数,拥有一定的代表性。采用Rop默认线程池的配置:corePoolSize:200 maxPoolSize:500,在我本机上(双核 2.8G,内存 4G)时取得了以下的测试数据:


可见,Rop性能不会随着并发数增加而明显的下降,整体表现比较平稳的。除性能外,服务平台的整体稳定性也是Rop框架重点考虑的,因此我们提供了平台级、服务级、会话级的服务配额限制,以保证服务平台的整体稳定性,具体可以参照开发手册(手册下载)。

Rop的实际应用效果? 

Rop不是一个玩玩的开源项目,相反它来源于实际的生产型项目。自从我们的网站使用了Rop后,我基本上就从服务平台的设计工作中脱离出来了,因为Rop强大的错误模型已经把设计服务报文的工作量降到了最低,我完全可以把有限的设计工作下放给开发人员。 

另一方面,由于Rop为平台领域性问题都提供了解决方案,开发服务平台的工作就降格为写一个个服务方法,由于有Rop在框架层为平台的稳定性进行保驾护航,因此,对于服务平台的开发工作,普通的开发人员都可以胜任了。

目前项目进展情况?开发团队情况? 

目前Rop已经发布了1.0正式版,且开发手册已经发布,地址: http://dl.iteye.com/topics/download/198d59b6-2a45-35c6-a44c-6c77c1081c8b。 

Rop的发布包已经提交到Maven核心仓库中,您可以通过如下配置引用Rop: 
Xml代码 

<dependency>
<groupId>com.bookegou</groupId>
<artifactId>rop</artifactId>
<version>1.0</version>
</dependency>

讯享网
目前项目团队主要就我一人,已经在ITeye上创建的Rop的群组,地址是: http://rop.group.iteye.com,很多ITeye的网友对Rop提出了很好的建议,也贡献了部分源码,他们是: melin、 kelloKitty、 風一樣的男子等,很感谢他们的参与和贡献。

Rop采用什么开源协议?如何获取Rop? 

Rop采用最自由的GPL 2.0开源协议。 


目前Rop项目托管在Github中,可以通过 https://github.com/itstamen/rop下载,也可以通过如下git命令将项目克隆到本地机中: 
代码 

讯享网git clone git://github.com/itstamen/rop.git 

其他开发者如何参与到该项目中? 


您可以在ITeye中通过短信,将整改意见和新功能的需求发送给我,也可以参与到Rop群组中进行讨论,或通过邮箱(或腾讯微博@hopeahead)将您的贡献源码发给我,我审核后统一发布到Github中,源码中会保留贡献者的信息。

Rop未来的开发计划? 

没有具体的开发计划,主要还是希望根据收集到的反馈进行有针对性的整改,如过期限制、会话管理等都根据网友的反馈整体的。 

初步的计划有两个: 
  • 将oauth整合到Rop中:计划10月底完成;
  • 让服务的入参签名更加灵活,和Spring MVC一样:计划今天年底完成。

小讯
上一篇 2025-02-06 23:38
下一篇 2025-03-20 15:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52444.html