上一级 首页 下一级
C/S架构下胖客户端远程调用
Jdon框架不但是一个B/S架构框架,还支持C/S架构,客户端可以是Java类型的任何客户端,如Swing、Applet和SWT等。
使用Jdon框架,可以在无需改变业务服务层代码的情况下,将这些服务Service提供给远程Java客户端调用,这是一种基于Htpp协议的RPC,它区别于Web服务的最大不同是:Jdon框架将客户端请求打包对象传送;而不是转换成XML;省却了两端转换解析步骤,提高了性能。
架构原理图如下:

客户端配置
客户端调用远程服务器的服务核心代码很简单,如下:
MySessionLocal mySessionLocal = (MySessionLocal)serviceFactory.getService(
FrameworkServices.MySessionEJB);
mySessionLocal.insert();
客户端调用服务就如同与服务在同一个JVM中一样,但是因为客户端在远程,所以需要进行对远程服务器的一些配置,比如规定远程服务器的IP地址和Servlet Prox名称。
具体客户端代码可见框架案例Samples中的remoteClient代码。
服务器端配置
首先激活框架系统的远程访问,在web.xml加入:
<servlet>
<servlet-name>EJBInvokerServlet</servlet-name>
<display-name>接受远程客户端访问</display-name>
<servlet-class>com.jdon.bussinessproxy.remote.http.InvokerServlet</servlet-class>
<init-param>
<param-name>configList</param-name>
<param-value>jdonframework.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>EJBInvokerServlet</servlet-name>
<url-pattern>/auth/EJBInvokerServlet</url-pattern>
</servlet-mapping>
然后激活容器基于HTTP的基本验证,配置web.xml:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>SecurityRealm</realm-name>
</login-config>
在web.xml中定义访问权限如下:
<security-constraint>
<display-name>User protected</display-name>
<web-resource-collection>
<web-resource-name>Collection1</web-resource-name>
<url-pattern>/auth/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>User</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
这样,访问/auth /EJBInvokerServlet将得到授权保护。下面在web.xml中分别配置该系统的角色和JNDI配置。
<security-role>
<role-name>Admin</role-name>
</security-role>
<security-role>
<role-name>User</role-name>
</security-role>
<ejb-local-ref>
<ejb-ref-name>ejb/EJBContollerLocal</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.jdon.security.auth.ejb.SecurityFacadeLocalHome</local-home>
<local>com.jdon.security.auth.ejb.SecurityFacadeLocal</local>
<ejb-link>SecurityFacade</ejb-link>
</ejb-local-ref>
在jboss-web.xml配置中使用容器安全机制:
<jboss-web>
<security-domain>java:/jaas/SecurityRealm</security-domain>
</jboss-web>
然后在JBoss的login-config.xml中配置SecurityRealm
上一级 首页 下一级
更多Jdon框架专题讨论
JdonFramework作为一个免费开源软件开发平台,可以商用开发大多数数据库应用软件和管理软件: 电子商务软件 在线教育软件 税务软件 Web快速开发软件 财务软件 购物车软件 医院帐务软件 crm software medical software 人事薪资软件payroll software 在线购物软件 销售软件 项目管理软件 房产不动产管理软件 生产软件 PDM软件 制造业软件 仓库软件 采购软件 进销存软件 危险源监控软件 物流软件 超市软件 银行软件 保险软件 汽车软件 医疗软件 电子软件 自动化软件 服装软件 烟草软件 分销管理软件 供应商管理软件
|