bbossgroupsRPC基於aop的輕量級rpc框架

bboss發表於2010-04-03

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


相關文章