3、访问策略的考虑
3.1与其他集成方案的比较
Windows下GUI模式非java客户访问EJB还可以有其他的集成方案,可以采用以下几种:
使用CORBA集成。CORBA是支持跨语言和跨平台的一种分布式应用解决方案,很多语言都支持CORBA,因此我们只需要用java建立一个CORBA服务器应用来调用EJB组件,就可以使用支持CORBA的任何客户端语言。这种方法有几个大的弊端,一是增加开发成本,另外在EJB和客户中间多了一个网络服务层,明显会降低系统性能,增加维护的复杂性,此外我们要为所涉及的所有Java类生成IDL文件供客户使用,增加了开发的复杂性。Delphi使用CORBA到BAS的访问虽然很简洁,但不够通用,它只支持BAS。
使用Web Services集成。EJB可以作为Web Service发布,使用它发布的WSDL文件,便可以方便的开发客户端应用。但这种方式不能充分利用EJB容器的安全策略。此外客户与服务器之间要传递Web Service不能直接支持的复合类型时,在服务器端要对这些类型编写附加的外覆类用于到XML数据之间的相互转换,增加了开发的复杂性。但这种方案较之COM桥更容易与其他应用进行数据交换,因为它是基于XML的。因此Web Service可以作为一种可选集成方案。
3.2优化考虑
如果业务逻辑和数据分散在不同的会话Bean和实体Bean中,我们直接使用COM访问它们,就必须查找每一个Home对象,这种JNDI查找非常费时,一种优化的策略是,我们对每种类型的客户使用一个会话Bean外观来封装他所需要的其他Bean提供的业务方法和数据,由这个会话Bean来调用其他Bean。最新的EJB规范增加了一个LocalHome接口用于服务端对Home接口的查找,比直接查找Home接口快。我们使用会话外观可以减小响应时间。
客户往往需要实体Bean的多个值,为了减少远程调用的数目,同时为了避免相关的负载,最好使用一个值对象把来自于实体Bean的数据传递给客户端。
4、结束语 COM桥使得GUI用户能高效访问EJB组件,将EJB组件的客户进行了扩展,同时充分结合了Windows平台下开发工具开发图形用户界面的优势。可以作为一种集成方案应用用在基于J2EE的分布式系统中。在不改变用户界面风格的情况下使得我们可以利用先进的EJB组件带来的优势。
查看本文来源