rop入门(一)
2015-07-02 21:58
295 查看
简介:
rop不同于一般的技术性框架,主要用于构建服务放开平台,您可以使用 Rop 开发类似于淘宝服务开放平台这样的服务平台
Rop 功能 架构
CXF 和 Jersey 是纯技术纯的 Web Service 框架,而在 Rop 中,Web Service 只是核心,
它提供了开发服务平台的诸多领域问题的解决方案:如应用认证、会话管理、安全控制、
错误模型、版本管理、超时限制等。
下面通过图 1 了解一下 Rop 框架的整体结构:
从图 1 中,可以看到 Rop 所提供的大部分功能都是偏“应用层”的,传统技术型的Web Service 框架是不会僭越到这些“应用层”的问题的,只是进行参数的传递调用相应接口,没有对数据的安全,版本等进行管理。但是,在实际开发中,这些应用层的问题不但不可避免,而且非常考验开发者的设计经验,此外,这些工作还会占用较大的开发工作量。Rop 力图让开发者从这些复杂的工作中解脱出来,让他们可以真正聚焦服务平台业务逻辑的实现上。
Rop 技术架构
Rop 在技术实现上充分借鉴了 Spring MVC 的框架设计理念和实现技术,首先RopServlet 类似于 Spring MVC 的 DispatcherServlet, 是 Rop 的门面 Servlet, 负责截获 HTTP服务请求转由 Rop 框架处理。
web.xml
由于 Rop 是基于 Spring 工作的,因此首先必须在 web.xml 中配置一个 Spring 容器,然后再通过 RopServlet 指定 Rop 的工作的路径。
值得注意的是,Rop 依赖于 Spring 框架而非 Spring MVC 框架,因此您的 Web应用框架是可以自由选择的,如 Struts、JSF 等 。
具体技术架构通过图 2 描述:
Rop 的配置信息统一在 Spring 配置文件中通过 rop Schema 命名空间定 义。
**首先,引入 Rop 的 Schema 命名空间,如①处所示。由于 Rop 的服务类必须是一个Bean,所以需要声明 Spring 的扫描器,将标注了 Spring Bean 注解的类加载为 Spring 容器中的 Bean。由于@ServiceMethodBean 注解本身标注了 Spring 的@Service,所以所有标注了@ServiceMethodBean 的类也会自动成为 Spring 的 Bean。
最后,我们通过一个简单
即可启动 Rop 框架,如③所示**
ServiceRouter 是 Rop 框架的核心,它负责协调各组件的交互并最终完成服务处理的工作。RopServlet 在启动时会从 Spring 容器中搜索出 ServiceRouter 的 Bean 实例并注册之。在服务请求到达后,RopServlet 截获请求并转交给 ServiceRouter 处理,ServiceRouter将服务请求封装成一个的 RopRequestContext 对象,RopRequestContext 包含了服务请求的所有信息。而后ServiceRouter 使用 SecurityManager 检查服务请求的安全性,只有通过了SecurityManager 的安全检查,才会调用目标服务处理方法执行服务,否则将阻止请求并返回错误响应信息。完成 SecurityManager 的安全检查后ServiceRouter 通过 ServiceMethodAdapter 对目标的服务方法发起调用。由于具体服务方法的签名各不相同,因此必须采用反射机制进行适配调用。当返回响应对象后,ServiceRouter 使用 RopMarshaller 将响应对象编组为特定的
响应报文返回给客户端。
rop不同于一般的技术性框架,主要用于构建服务放开平台,您可以使用 Rop 开发类似于淘宝服务开放平台这样的服务平台
Rop 功能 架构
CXF 和 Jersey 是纯技术纯的 Web Service 框架,而在 Rop 中,Web Service 只是核心,
它提供了开发服务平台的诸多领域问题的解决方案:如应用认证、会话管理、安全控制、
错误模型、版本管理、超时限制等。
下面通过图 1 了解一下 Rop 框架的整体结构:
从图 1 中,可以看到 Rop 所提供的大部分功能都是偏“应用层”的,传统技术型的Web Service 框架是不会僭越到这些“应用层”的问题的,只是进行参数的传递调用相应接口,没有对数据的安全,版本等进行管理。但是,在实际开发中,这些应用层的问题不但不可避免,而且非常考验开发者的设计经验,此外,这些工作还会占用较大的开发工作量。Rop 力图让开发者从这些复杂的工作中解脱出来,让他们可以真正聚焦服务平台业务逻辑的实现上。
Rop 技术架构
Rop 在技术实现上充分借鉴了 Spring MVC 的框架设计理念和实现技术,首先RopServlet 类似于 Spring MVC 的 DispatcherServlet, 是 Rop 的门面 Servlet, 负责截获 HTTP服务请求转由 Rop 框架处理。
web.xml
<!-- rop servlet --> <servlet> <servlet-name>cop</servlet-name> <!--Rop 提供了一个 com.rop.RopServlet 这样 Rop 就可以接收 HTTP 的服务请求了--> <servlet-class> com.rop.RopServlet </servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cop</servlet-name> <url-pattern>/router</url-pattern> </servlet-mapping>
由于 Rop 是基于 Spring 工作的,因此首先必须在 web.xml 中配置一个 Spring 容器,然后再通过 RopServlet 指定 Rop 的工作的路径。
值得注意的是,Rop 依赖于 Spring 框架而非 Spring MVC 框架,因此您的 Web应用框架是可以自由选择的,如 Struts、JSF 等 。
具体技术架构通过图 2 描述:
Rop 的配置信息统一在 Spring 配置文件中通过 rop Schema 命名空间定 义。
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.bookegou.com/schema/rop ① http://www.bookegou.com/schema/rop/rop-1.0.xsd"> <!-- ② 扫描 Spring Bean--> <context:component-scan base-package="com.rop.sample"/> <!-- ③启动 Rop 框架 --> <rop:annotation-driven/> <!--定义一个bean--> <bean id="sampleSessionManager" class="com.yihg.api.component.SampleSessionManager" />
**首先,引入 Rop 的 Schema 命名空间,如①处所示。由于 Rop 的服务类必须是一个Bean,所以需要声明 Spring 的扫描器,将标注了 Spring Bean 注解的类加载为 Spring 容器中的 Bean。由于@ServiceMethodBean 注解本身标注了 Spring 的@Service,所以所有标注了@ServiceMethodBean 的类也会自动成为 Spring 的 Bean。
@ServiceMethodBean(version = "1.0",ignoreSign=IgnoreSignType.NO) public class SupplierAction { @Autowired private TravelUserOnlineService travelUserOnlineService; /** * 添加标签 */ @ServiceMethod(method = "supplier.comment.reply",needInSession = NeedInSessionType.NO,httpAction=HttpAction.POST) public Response supplierCommentReply(BaseRequest baseRequest) { Response response = new Response(); Map<String,Object> data = new HashMap<String, Object>(1); response.setData(data); response.getResult().setResult("1"); response.getResult().setMessage("操作成功"); return response; } }
最后,我们通过一个简单
即可启动 Rop 框架,如③所示**
ServiceRouter 是 Rop 框架的核心,它负责协调各组件的交互并最终完成服务处理的工作。RopServlet 在启动时会从 Spring 容器中搜索出 ServiceRouter 的 Bean 实例并注册之。在服务请求到达后,RopServlet 截获请求并转交给 ServiceRouter 处理,ServiceRouter将服务请求封装成一个的 RopRequestContext 对象,RopRequestContext 包含了服务请求的所有信息。而后ServiceRouter 使用 SecurityManager 检查服务请求的安全性,只有通过了SecurityManager 的安全检查,才会调用目标服务处理方法执行服务,否则将阻止请求并返回错误响应信息。完成 SecurityManager 的安全检查后ServiceRouter 通过 ServiceMethodAdapter 对目标的服务方法发起调用。由于具体服务方法的签名各不相同,因此必须采用反射机制进行适配调用。当返回响应对象后,ServiceRouter 使用 RopMarshaller 将响应对象编组为特定的
响应报文返回给客户端。
相关文章推荐
- OpenCV之四 ROI区域图像叠加&初级图像混合
- opencv测试分类器性能 opencv_performance.exe 使用方法 及参数含义
- phalcon第三个例子(日志类Logger)ubuntu14.04 apache通过apt-get安装
- 网站开发负责人需要注意那些事?
- window.showModalDialog以及window.open用法简介
- JSP学习笔记1(声明,输出表达式,脚本,page,include,forward,usebean,setproperty,getproperty)
- linux下安装cmake
- CentOS 6 安装MAVEN及系统配置
- Linux下高并发socket最大连接数
- linux程序设计——进程和信号(第十一章)
- 鸟哥的Linux私房菜-----11、压缩指令与正则表示法
- Linux中的端口占用问题
- OpenCV之三 图像的载入,显示和输出
- Shell脚本编程篇
- 鸟哥的Linux私房菜-----10、学习Bash
- Linux系统lseek函数作用
- error: command 'x86_64-linux-gnu-gcc' failed with exit status 1” in virtualenv
- 我的linux探索之路
- MapReduce详细的工作流程(MapReduce1)
- 基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴等)