Welcome

首页 / 软件开发 / 数据结构与算法 / 通用RPC简易框架

通用RPC简易框架2009-12-11 BlogJava 叱咤红人目的:调用远程业务逻辑方法,并对返回的结果进行处理。可扩展支持多种协议:HTTP, JMS, RMI, FTP等,实现负载均衡,异步调用。默认给出HTTP实现。

概念:

Agent: 我们将这套实现称为agent

Server:远程应用服务, RPC服务的提供者。

Client:客户端,RPC服务的调用者

Agent server:agent在server端的部分

Agent client: agent在client端的部分

Agent group:具有相同业务逻辑的远程服务器的组合,提供相同的远程业务服务。

基本结构:以HTTP方式为例了解一下agent的基本结构

Agent client

组件描述
Business clientClient端业务逻辑,初始化agent请求,远程调用的发起者
Agent clientAgent client端流程
Request encoderRequest编码器,将agent request序列化成文本字符串
HTTP executor发送远程调用请求,接收响应结果
Load balancer采用轮循方式的负载权衡机制
Response decoder响应结果的解码器,发序列化
Result handlerAgent response结果的处理者

Agent server

组件描述
Agent servletJ2EE servlet, http agent server side entry
Agent serviceAgent server 端流程
Request decoderRequest解码器,反序列化agent request
Request handler处理agent request
App command assembler将agent请求装配成义务逻辑执行参数并初始化agent上下文
Agent contextAgent上下文,包括会话标识符,上次调用时间等,可供扩展使用,比如为了不改变agent server端业务逻辑的接口,提供给agent系统的实现,可以将一些值放在agent context中。
App Logic Command业务逻辑的调用者
Response assembler将返回结果和agent上下文装配成agent response
Response encoder将agent response序列化成文本字符串

如果采用是其他通信方式agent servlet可能就被换成比如jms listener,FTP receiver, RMI service等, 有待以后有需要的时候再实现。