web服务的体系结构和最佳实践

web服务的体系结构和最佳实践

ID:33697250

大小:308.59 KB

页数:21页

时间:2019-02-28

web服务的体系结构和最佳实践_第1页
web服务的体系结构和最佳实践_第2页
web服务的体系结构和最佳实践_第3页
web服务的体系结构和最佳实践_第4页
web服务的体系结构和最佳实践_第5页
资源描述:

《web服务的体系结构和最佳实践》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Web服务的体系结构和最佳实践级别:初级KyleBrown(brovnkyl@us.ibm.com),高级技术职员,IBMSoftwareServicesforWebSphereRachelReinitz(rreinitz@us.ibm.com),IT专业人员,主要从事Web服务的研究,IBMSoftwareServicesforWebSphere2003年12月01日在本章中我们将会讨论一些由Web服务引起的体系结构上的挑战,研究如何使用(和不使用)Web服务,并了解一些在应用Web服务來解决艰难的体系结构问题吋采用的

2、最佳实践。©CopyrightInternationalBusinessMachinesCorporalion2003.Allrightsreserved.本文是从KyleBrown>GaryCraig>DavidPitt、RussellStinehour>MarkWeitzelxJimAmsdcn>PeterM.Jakab和DanielBerg合著的新书EnterpriseJavaProgrmnmingwithIBMWebSphereSecondEdition的节选,将由Addison-Wesley出版社在2003年11

3、月岀版引言在本章中我们将会讨论一些由Web服务引起的体系结构上的挑战,研究如何使用(和不使用)Web服务,并了解一些在应用Web服务来解决艰难的体系结构问题时采用的最佳实践。Web服务是我们的体系结构路标上的最后一个部分。在本章中,您将会看到在WebSphere中Web服务通常如何使用无状态的会话Bean作为其组件实现。在我们的路标中,Web服务的位置如下图所示(图34.1)0图34.1.体系结构路标CoKtroHn/MriiatorDat・MqifringDataSourcePremtaiiiiiDonaia一些Web服

4、务能做和不能做的事在采用任何一种新技术时都会存在一条常见的感情变化曲线。首先,当您开始听到一种技术的风声时,您就开始考虑它可能对解决您的特定问题有用,有正面的倾向看法。当您知道更多吋,您的激情增加,也许短期的概念性验证是成功的,并导致您用双脚跳起来,并在新的大项目中采用新技术。然后,这种技术的状态的现实表现出来了,并且您开始发现了这种新技术的局限性。此时,您可能能够艰难地前进并使项目取得成功,即便技术存在局限性,或项目可能失败,让您感到失去希望和梦想破灭。古老的格言“所有的万能药都变成毒药”适用于大多数新技术,并口它对于W

5、eb服务同样适用。在过去的两、三年里,Web服务开始应用于实际的应用程序,从那时起,一系列关于Web服务何时实用、何时不实用的基本肯定或基本否定的情形就出现了。接下来,我们将会讨论这方面的一些基本原则,并讨论各种情形,无视这一点已经使项目出现差错。原则:争取不要在逻辑应用层之间使用基于XML的Web服务。当Web服务被用来补充其他J2EE技术,而不是替代它们时,它工作得最好。例如,一种极好的使用Web服务的方法就是,从应用程序的客户端出发,通过全球的因特网,连接到WebSphereApplicationServer中用EJ

6、B编写的业务逻辑。这里您得到了您的控制器和应用程序域层之间的一・种良好的、清楚的隔离。这是您将会使用EJB的同一个地方,因此,如果您将Web服务作为另一个对象分布机制来考虑,那么您就会看到为什么这将是合适的。在HTTP之上的SOAP将会在II0P之上RMI无效的地方发挥作用,因而,这将使得基于XML的Web服务能够补充现有的EJBo然而,人们经常在这一点上犯错误的地方是假定,如果这在一对层之间有效,那么它将会在另一对层之间同样有效。例如,一个我们熟得不能再熟了的常见反模式(anti-pattern)是这样的一种设计:一个持

7、久性层被包装在一个XMLAPI内,然后将它放在与需要激活这个持久层的业务逻辑隔离的流程中。在这种设计方案屮,我们看到的是人们实际上将Java对象序列化到XML屮,将它们通过网络发送,然后反序列化它们,用作为参数发送的对象来执行数据库查询,将数据库中的结果转换成XML,然后将结果从网络上发送回去,仅仅只是为了将它转换成Java对象并最后进行操作。这种方法存在着儿个严重的问题:1.持久性对象应该总是保留在操作它们的业务对象的本地。这种对彖序列化和反序列化的开销是您应该尽可能避免的。2.还没有一种切实可行的、完全实现的Web服务

8、事务处理规范。如果您使用带有Mapper对象的实体Bean或会话Bean(如果您这样选择的话),在采用RM1-110P的EJB中,您就可以选择(尽管不是必须的)在外部事务范圉内是否包括持久化操作。如果您在持久性对彖和操作它们的业务对彖Z间引入了一层Web服务,那么您就丧失了这种能力。一般来说,XMLWe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。