引用
Rop,即Rapid Open Platform,是一个参考淘宝开放平台(TOP Taobao Open Platform)的平台设计思路,充分借鉴Spring MVC的技术架构原理开发的一个快速服务开放平台开源框架项目,可以让您迅速构建成熟的SOA服务平台。它不同于传统的SOAP Web Service和Rest Web Service这些Web Service 技术型框架,Rop是一个应用型的Web Service平台框架,它不但可以方便快捷地开发一个个Web Service服务,还提供了服务平台领域问题的整体解决方案。因此,...
传统的Web Service框架帮助你建造房子,而Rop框架帮助您建造城市。
Rop项目文档前后写了一个多月,在写的过程中发现很多功能不完善的,又回过头了改项目,此种反复多次,现在Rop开源项目的文档已经差不多了,将陆续在iteye此发出,希望对大家有帮助。在Rop项目的开发过程中得到了众多iteye网友的有力帮助,收到了很多很好的整改的意见,在此对他们的奉献和帮助表示诚挚的感谢,这些网友包括但不限于:
melin
kellokitty
風一樣的男子
lioliang
木木的爱情童话
devotionalist
ericliang
Rop相关资源:
1.github:
https://github.com/itstamen/rop
2.群组:
http://rop.group.iteye.com/
目录
1.快速了解Rop
2.请求服务模型
3.应用授权及验证
4.服务会话管理
5.错误处理模型
6.响应报文控制
7.文件上传
8.服务安全控制
9.拦截器及事件体系
10.性能调优
11.开发客户端SDK
12.参考资料
分体式报文模型
服务开放平台对服务的处理结果统一由响应报文告之调用终端,不管服务处理正确与否,都必须对应一个响应报文。如果响应报文既要包含正确的业务响应报文,又要包括错误的响应报文,将增加服务响应报文格式的复杂度。由于Rop已经建立了一个可以描述所有类型错误的错误模型,因此错误响应报文的格式是统一的。业务服务的结果响应报文是业务相关的,也就是说,每个业务服务方法的正确业务响应报文是不一样的。
基于以上的分析,Rop将正确业务响应报文和错误处理响应报文独立开来,这样服务平台的开发者仅需设计正确的业务响应报文即可,错误响应报文直接由Rop提供。如果服务正确执行,返回正确的业务响应报文,否则返回Rop格式的错误响应报文。
响应报文定义
Rop的服务方法可以返回任何类型的对象,通过JSR 222注解进行对象流化定义。只要定义好响应类,并正确标注JSR 222注解,业务响应报文也就定义好了。
代码清单CreateUserResponse .java:服务响应的返回对象
package com.rop.sample.response;
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD) ①
@XmlRootElement(name = "createUserResponse")
public class CreateUserResponse{
@XmlAttribute ②
private String userId;
@XmlAttribute
private String createTime;
@XmlElement
private Foo foo = new Foo();
@XmlElement
private String feedback;
…
}
在上节的addUser(CreateUserRequest request)服务方法中,如果一切服务执行正常,将返回一个CreateUserResponse的对象。
运行rop-sample项目的UserServiceRawClient#testAddUserByVersion1()测试方法,将看到如下的响应报文:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<createUserResponse createTime="20120101010101" userId="1">
<foo field2="2" field1="1"/>
<feedback>hello</feedback>
</createUserResponse>
观察以上的输出报文,可以看到createTime和userId以元素属性的形式出现,而foo和feedback则以子元素的形式出现。
报文输出格式
默认情况下,Rop的响应报文是以XML的格式输出的。除XML之外,Rop还支持JSON格式的响应报文。您只要将format的系统级参数设置为json,就会返回JSON格式的响应报文了。
运行rop-sample项目的UserServiceRawClient#testAddUserWithJsonFormat()测试方法,您将看到如下的输出:
{"userId":"1","createTime":"20120101010101","foo":{"field1":"1","field2":"2"},"feedback":"hello"}
值得注意的是,当前Rop不支持混合使用XML和JSON的报文格式,也即请求和响应的数据格式要么采用XML,要么采用JSON。如果希望采用XML格式的请求参数值,那么响应的报文也必须是XML。
报文的国际化支持
Rop使用locale系统级参数指定本地化的信息,默认的locale值为zh_CN,服务平台将根据locale值的不同返回相应的本地化报文信息。由于错误报文是由Rop框架全权负责的,因此错误报文的国际化问题,Rop本身已经提供了解决方案。目前,Rop为系统级错误提供了zh_CN和en两个国际化资源文件。
运行rop-sample的UserServiceRawClient#testI18nErrorMessage()测试方法,该方法将发起两次对user.add服务方法的调用,其中请求参数都相同,唯有locale的值不同:第一次为locale=en,第二次为locale=zh_CN。第一次服务调用返回的错误响应报文为:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error code="33">
<message>Invalid Arguments</message>
<solution>
check the Required application parameter is valid(refer the subError message)
</solution>
<subErrors>
<subError code="isv.parameters-mismatch:salary-and-yyy">
<message>
incoming parameter salary and aaa does not match, both have a certain correspondence between
</message>
</subError>
</subErrors>
</error>
第二次服务调用返回的错误响应报文:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error code="33">
<message>非法的参数</message>
<solution>请查看根据服务接口对参数格式的要求</solution>
<subErrors>
<subError code="isv.parameters-mismatch:salary-and-yyy">
<message>传入的参数salary和aaa不匹配,两者有一定的对应关系</message>
</subError>
</subErrors>
</error>
正确的业务响应报文由服务平台开发者负责,因此国际化的工作也由服务平台开发者负责。在服务方法内部,可以通过request.getRopRequestContext().getLocale()获取请求参数locale对应的本地化对象,进而控制响应对象的国际化输出。如果服务开放平台没有国际化的需求,可以不关注locale参数。
分享到:
相关推荐
Rop框架适用于各种服务开放平台的开发,尤其适合那些需要处理复杂应用层面问题的场景,如电商平台、社交媒体平台等。通过利用Rop提供的成熟解决方案,开发者可以减少重复劳动,更加专注于业务逻辑的实现,提高开发...
Rop,即Rapid Open Platform,是一个参考淘宝开放平台(TOP Taobao Open Platform)的平台设计思路,充分借鉴Spring MVC的技术架构原理开发的一个快速服务开放平台开源框架项目,可以让您迅速构建成熟的SOA服务平台。...
总之,ROP框架为开发者提供了一套全面且易于使用的工具集,不仅降低了构建服务开放平台的门槛,还极大地提高了开发效率。通过借鉴淘宝开放平台的成功实践,ROP框架能够在各种复杂的业务场景下表现出色,为构建高效、...
在描述中提到的“rop开放平台s”可能是这个平台的某种特定版本或服务,但信息过于简略,无法提供更详细的解释。通常,这样的平台可能会提供以下功能: 1. **漏洞分析**:用户可以上传目标二进制文件,平台会分析其...
与传统的 WebService 框架(例如 CXF 和 Jersey)不同,Rop 不仅提供了 WebService 的核心功能,还针对服务开放平台中的应用层问题提供了多种解决方案。 **特点**: 1. **易于上手**:Rop 的设计使得开发者能够...
本示例是基于Maven构建的ROP框架,Maven是一个流行的Java项目管理工具,它帮助开发者管理和构建项目,依赖管理、构建过程自动化等功能使得开发更加便捷。在本案例中,Maven被用来组织和管理项目的依赖关系,确保所有...
### ROP(Rest Open Platform)开发指南知识点解析 #### 一、REST服务框架的问题域 REST服务框架在解决Web服务的交互过程中面临多种挑战。主要包括: 1. **通讯报文协议**:REST服务通常需要支持多种数据交换格式,...
#### REST服务框架的问题域与解决方案 REST(Representational State Transfer)是一种轻量级的网络应用程序架构风格,被广泛应用于Web服务中。ROP(Rest-Open-Platform)作为一种面向RESTful服务的开发框架,旨在...
RopRop 开发类似于淘宝 开发类似于淘宝 开发类似于淘宝 开发类似于淘宝 服务开放平台 服务开放平台 服务开放平台 这样的服务平台 这样的服务平台 这样的服务平台 这样的服务平台 。RopRopRop充分借鉴了当前大型网站...
ROP 是一种计算协议,旨在发现所有读数的来源,这些读数源自复杂的 RNA 分子、重组抗体和微生物群落。 ROP 占 poly(A) 和核糖耗竭协议所有读数的 98.8%,而传统的基于参考的协议为 83.8%。 ROP 分析重复、circRNA、...
Rop-Fast在Rop的基础上进行了扩展和优化,解决了原始框架中的一些问题,并提供了更友好的API和更快的性能,使得开发人员能够更高效地构建Web服务。 **RESTful服务介绍** REST(Representational State Transfer)是...
ROP在淘宝的网络通信框架中扮演了重要角色,它允许开发者构建安全且高性能的网络服务。而Netty,作为一个异步事件驱动的网络应用框架,为各种协议(包括TCP、UDP等)的服务器和客户端提供了高度可定制化和高性能的...
`rop-plus`是一个针对Java平台的ROP框架的增强版本,它为开发者提供了更强大的工具和功能,以进行ROP攻击的研究和防御。框架的主要特点可能包括: 1. **gadget库**:`rop-plus`可能包含了一个庞大的Java gadget库,...
在iOS开发中,为了提高代码的安全性和执行效率,开发者们经常使用各种技术手段,其中一种是Return-Oriented Programming(ROP)框架。本文将深入探讨Apple内部集成的陈雄华的ROP框架,以及其在Java环境下的应用。 *...
Rop,即Rapid Open Platform,是一个参考淘宝开放平台(TOP Taobao Open Platform)的平台设计思路,充分借鉴Spring MVC的技术架构原理开发的一个快速服务开放平台开源框架项目,可以让您迅速构建成熟的SOA服务平台。...
开放平台是指软件系统或网络服务通过公开其应用程序编程接口(API)或特定函数的方式,允许外部开发者开发的应用程序能够访问和利用该系统的功能或资源,而无需直接修改系统源代码。这种设计方式促进了软件生态系统...
ROP輕鬆談 ROP(Return Oriented Programming)是一種exploit技术,該技術通過在程式碼中注入惡意代碼,控制程式的執行流程,達到攻擊的目的。本文將對ROP技術進行詳細的介紹,涵蓋ROP的基本概念、Buffer Overflow...
用友T6金牌服务课程班培训课件:生产数据及ROP运算.ppt
ROP编程,全称Return-Oriented Programming,是一种高级的计算机安全攻击技术。它的核心思想在于利用程序中已存在的指令片段(称为gadgets)来实现攻击者的目的。这些gadgets以ret指令结束,通过巧妙地控制程序的...