J2EE体系结构和设计 - 编程入门网
upport。至于您的 EJB 代码为什么不能正常地执行,可能与您移植工具中出现的故障有关 ,但也可能因为您需要移植代码。移植向导仅更新了您的部署描述符,而没有更新 EJB 实现 中的代码。请见 WebSphere Studio 在线帮助中的“移植 J2EE 应用程序”和 “从 J2EE 1.2 移植到 1.3”。
J2EE体系结构和设计(4)时间:2011-04-11 IBM Bobby Woolf问:我真需要学习 EJB 吗? 答:我要讲一个在我出席 WebSphere Technical Exchange 会议时发生的故事。我提出了 分布式(XA)事务上的会话及实验:如何将其编码及它们如何工作。该实验由一些简单的样 例代码组成,主要是由 JDBC 数据库及 JMS 消息系统更新的无状态会话 bean(EJB),因此 需要分布式的事务。该样例还包含被 SSB 简单调用的 servlet。该实验进行得非常好,事务 回滚按预期的计划进行,所有都很顺利。实验之后,客户问我:“真是太棒了!我如何 能够仅使用 servlet 来完成它?”回答是:您不能。我问他为什么不使用 EJB。他和 他的合作者都感到 EJB 很难。即使 EJB 及容器管理的任何内容能使复杂的编程工作变得更 简单,人们仍旧认为它们不够简单。 该故事的含义是:如果您有完成复杂任务的工具,并且希望完成那些任务,那么您需要学 习这些工具。我不想论证 EJB 是容易的,但是我不认为用它能非常容易地完成复杂的任务: 事务、安全、池、远程调用——当然,由于实体 bean 具有容器管理的持久性。 其他的哪些技术使您能够使用面向几百个用户的对象来支持上千个用户?其他的哪些技术使 您能够声明您的事务模型、安全模型、持久性模型等在 XML 中的模型并且能在运行时运行那 些模型? Java(J2SE)包含庞大的类库,使您开发应用程序时不能任意妄为。J2EE 包含服务及框 架,它们完成了许多您应用程序所需的工作。使容器完成尽可能多的工作,这样您的应用程 序就不必去做了。以尽可能少的代码编写您的应用程序,并且使容器来完成此项工作。代码 量越少,开发进度就越快,维护越容易,且能更快地通过端口传输到 J2EE 和 WebSphere Application Server 的下一个版本中。因此,我的建议是尽可能多地掌握容器给您带来的益 处,以及诸如 WebSphere Studio Application Developer 之类的开发工具使您能完成哪些 工作,并且最大限度地利用它们。 问:我应当使用同步或异步的信息传递吗? 答:该问题一直存在。我们正在使用 RPC(例如,RMI、CORBA、具有远程接口的 EJB 等 等);为什么我们应当使用 JMS 或消息传递?通常,当用户等候回答时,由于用户是同步的 ,所以可以同步地调用。当一个应用程序调用其它的应用程序时,进行异步调用。如果一个 应用程序要向其他一些应用程序通告事件,那么也是异步调用。同步调用极易受破坏,所以 为了使远程调用更稳固,要进行异步调用。 存在这样的理解——消息传递比 RPC 慢且低效。然而,消息传递确实有比 RPC 更高的地方,仅有一点性能差异,除非您加入了高品质的服务,如持久性的消息传递。 如果消息传递很慢,这由于您的网速很慢,在这种情况下 RPC 也会很慢或者根本不能工作。 通常用户接口不能支持异步调用,因为 UI 阻碍了调用,可能需等候一段时间。一种技术 是重载该页面,直到获得结果为止。请见由 Kyle Brown 所著的 J2EE 中的异步查询。更好 的方法是重新设计 UI,使其不能同步。例如,电子商务站点当打包并传输订单的时候不会出 现浏览器阻碍。它告知用户“谢谢订购”并且当订单传输的时候发送包含该包裹 号码的电子邮件。这需要 UI 打破工作流,异步地执行,因此您需要诸如 Process Choreographer 之类的工作流引擎。然后,处理以异步的方式完成,并且 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |