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