bbossgroups RPC 基于aop的轻量级rpc框架

简介: bbossgroups RPC 是基于bbossaop的轻量级rpc框架,感兴趣的朋友可以用一用。bbossgroups提供的RPC 框架是bboss aop子项目中一个子模块,具有以下特点: 1.支持多种通讯协议jms,jgroups,mina,webservice,restful,并且协议可扩展 2.提供强有力的安全管理插件(可插拔的认证、鉴权、数据包加/解密插件),保证远程通讯安全可靠。

bbossgroups RPC 是基于bbossaop的轻量级rpc框架,感兴趣的朋友可以用一用。bbossgroups提供的RPC

框架是bboss aop子项目中一个子模块,具有以下特点:

1.支持多种通讯协议jms,jgroups,mina,webservice,restful,并且协议可扩展

2.提供强有力的安全管理插件(可插拔的认证、鉴权、数据包加/解密插件),保证远程通讯安全可靠。

3.开发部署模式简便,打破传统的RPC开发模式,不依赖于任何应用服务器和容器,你只需启动aop框架中提供的各种协议之一(例如jms,

jgroups,mina,webservice)或者同时启动几种协议,你就可以对aop框架中管理的任何组件发起远程方

法调用,唯一的前提是你的方法参数和返回结果必须是实现java.io.Serializable接口。同时你可以通过

rpc框架的各种安全管理插件来保护你开放的远程组件服务。

4.远程方法调用方式简单,你只需要按照以下格式即可发起一个远程方法调用
带认证信息格式:
(protocol::uri)/serviceid?user=userAccount&password=userPassword;
不带认证信息格式:
(protocol::uri)/serviceid;
protocol:远程通讯协议
uri:服务器地址
serviceid:部署在aop框架中的组件服务标识
例如:
(mina::172.16.17.216:12347)/test.security.bean?user=admin&password=123456,其中的账号为admin,密码为123456

@Test
    public void testMinaSecurityBean()
    {
        BussinessBeanInf beaninf = (BussinessBeanInf)BaseSPIManager.getBeanObject("(mina::172.16.17.216:12347)/test.security.bean?user=admin&password=123456");
        System.out.println("testMinaSecurityBean beaninf.getCount():"+beaninf.getCount());
        System.out.println("testMinaSecurityBean beaninf.printMessage(message):"+beaninf.printMessage("test.security.bean"));
    }
   
    @Test
    public void testJmsSecurityBean()
    {
        BussinessBeanInf beaninf = (BussinessBeanInf)BaseSPIManager.getBeanObject("(jms::yinbiaoping-jms)/test.security.bean?user=admin&password=123456");
        System.out.println("testJmsSecurityBean beaninf.getCount():"+beaninf.getCount());
        System.out.println("testJmsSecurityBean beaninf.printMessage(message):"+beaninf.printMessage("test.security.bean"));
    }
   
    @Test
    public void testJGroupSecurityBean()
    {
        BussinessBeanInf beaninf = (BussinessBeanInf)BaseSPIManager.getBeanObject("(jgroup::172.16.17.216:1186)/test.security.bean?user=admin&password=123456");
        System.out.println("testJGroupSecurityBean beaninf.getCount():"+beaninf.getCount());
        System.out.println("testJGroupSecurityBean beaninf.printMessage(message):"+beaninf.printMessage("test.security.bean"));
    }
   
    @Test
    public void testWebServiceSecurityBean()
    {
        BussinessBeanInf beaninf = (BussinessBeanInf)BaseSPIManager.getBeanObject("(webservice::http://172.16.17.216:8080/WebRoot/cxfservices)/test.security.bean?user=admin&password=123456");
        System.out.println("testJGroupSecurityBean beaninf.getCount():"+beaninf.getCount());
        System.out.println("testJGroupSecurityBean beaninf.printMessage(message):"+beaninf.printMessage("test.security.bean"));
    }


5.安全管理机制可以方便地启用和关闭

6.远程方法调用过程可自动调优,即自动区分远程目标地址是本地地址还是远程地址,判别rpc调用是远

程方法调用还是当做本地方法调用

7.可以简单地实现单点服务调用和多播服务调用,如果是多播服务调用,rpc框架提供了获取不同服务器

返回结果的相应接口,简单实用

8.bbossgroups rpc服务框架提供远程服务通讯的质量保障,例如故障重连,访问超时等等

9.bbossgroups rpc应用场景广泛,可以用于普通的rpc服务调用场景,也可以用作集群环境中各节点应用
之间通讯工具,因为你可以轻易地发布你的应用的远程组件,轻易地发起远程方法调用(只是获取组件实

例的方法不同,方法调用和普通的对象方法调用一样)


10.rpc框架充分集成并吸纳了各种通讯协议本身的优点(jms,webservice,jgroup,mina)。

11.通过restful风格的协议,可以方便地实现rpc服务的路由功能

目前提供的大致功能就这些了,有什么考虑不周或者不正确的地方还请大家批评指正,一起交流学习,更

详细的情况介绍请访问我的博客http://blog.csdn.net/yin_bp

bbossgroups项目发布的版本是1.0,将在1.0rc版本中增加对jboss netty协议框架的支持,呵呵 。

bbossgroups rpc框架包含在子项目bboss aop框架中,下载地址:
http://sourceforge.net/projects/bboss/files/bbossgroups-1.0/bbossaop.zip/download
文档下载地址:
http://sourceforge.net/projects/bboss/files/bbossgroups-1.0/bbossgroups%20document.zip/download

目录
相关文章
|
2月前
|
负载均衡 Dubbo Java
Dubbo 3.x:探索阿里巴巴的开源RPC框架新技术
随着微服务架构的兴起,远程过程调用(RPC)框架成为了关键组件。Dubbo,作为阿里巴巴的开源RPC框架,已经演进到了3.x版本,带来了许多新特性和技术改进。本文将探讨Dubbo 3.x中的一些最新技术,包括服务注册与发现、负载均衡、服务治理等,并通过代码示例展示其使用方式。
73 9
|
5月前
|
Java Spring
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
51 0
|
5月前
|
缓存 监控 Java
Spring框架之AOP(面向切面编程)
Spring框架之AOP(面向切面编程)
34 0
|
7月前
|
消息中间件 负载均衡 Dubbo
如何自己设计一个类似Dubbo的RPC框架?
如何自己设计一个类似Dubbo的RPC框架?
60 0
|
4月前
|
Dubbo Java 应用服务中间件
Rpc编程系列文章第三篇:Hessian RPC一个老的RPC框架
Rpc编程系列文章第三篇:Hessian RPC一个老的RPC框架
|
2月前
|
XML JSON Java
RPC框架之Thrift—实现Go和Java远程过程调用
RPC框架之Thrift—实现Go和Java远程过程调用
44 1
|
3月前
|
XML 存储 Java
JAVAEE框架整合技术之Spring02-AOP面向切面编程技术
JAVAEE框架整合技术之Spring02-AOP面向切面编程技术
54 0
JAVAEE框架整合技术之Spring02-AOP面向切面编程技术
|
3月前
|
消息中间件 Dubbo Java
Simple RPC - 01 框架原理及总体架构初探
Simple RPC - 01 框架原理及总体架构初探
51 0
|
9月前
|
Dubbo Java 应用服务中间件
Netty入门到超神系列-手撸简单版RPC框架(仿Dubbo)
原理还是比较简单 : 代理 + 线程池 + Netty 下面做一些解释: 首先需要定义一个统一的API接口,例:UserApi , 服务端(provider)需要实现这个接口,提供相应的方法UserApiImpl#save,客户端通过远程来调用该接口。 然后需要约定一个协议,服务器如何才能识别到客户端要调用哪个接口?:我这里用 “接口权限定名#方法名#参数” ,的方式来,因为是一个简单版本的RPC。服务端解析该内容就能匹配对应的接口的实现类,然后调用该方法。并把方法的返回值通过Netty写回给客户端 使用的编解码器都是比价简单的String的编解码器
111 0
|
4月前
|
XML Java 数据格式
JAVAEE框架之Spring AOP
JAVAEE框架之Spring AOP
46 0