[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |

SOA带你体验简单与快捷

作者: 编译 寿栋,  出处:计算机世界报, 责任编辑: 李春禹, 
2007-12-25 09:04
  如果代码主要是在同一台机器的同一个应用程序中运行,那么最好还是不要采用服务的方法; 但是如果代码被许多分布式的应用程序所重用,比如在一个工作流组件中的商业流程,那么把这段代码封装成服务就是适合的。

  在今天,很可能你已经开始着手进行一个或者两个SOA项目了。当然,这并不奇怪,在世界范围内的11000家大型企业中,有95%的企业已经开始投入某种努力去实现SOA了。

  市场调研公司WinterGreen Research的高级分析师Susan Eustis介绍说:“这些SOA项目中的大部分都是以各部门之间或者是部门内部的互相协调作为开始的,随后开始逐步扩展,再后来就把用户的业务管理也包括了进去。可以说,SOA在扩大其影响力之前,也是从很小的尝试开始的。”

  随着学术界和工业界的研究与实践的深入展开,原来笼罩在SOA头上的炫目光环也在渐渐褪去。仅存的一道光辉可能就是SOA被业界所接受的那条真理:对于SOA来说,网络便是一切。

  事实上,并不是每一个项目都能与SOA完美地搭配,或者说,并不是所有的项目都能够很好地利用SOA这一架构模式。因为如果要想使其他项目能够重用一堆已经构建好了的服务(当然,假定这种重用并不难实现),那么,在SOA项目或者SOA服务的初始建设阶段,往往需要花费惊人的代价。另外,那些元老级的技术,如.NET和Java,仍然流行于SOA的世界中。因此,或许有很多人会觉得自己的.NET或者J2EE程序运行得还不错,那就没有必要部署SOA了。

  有分析师表示:“令人欣慰的是,SOA技术已经足够成熟了,因为它在不断地吸取实践过程中的那些经验和教训,现在已经是千锤百炼了。”而来自MindTree Consulting的CTO Kamran Ozair却表示:“在过去的几年中,SOA被吹捧成了‘下一个梦想’,因此,很多项目和工程就都被部署成为了基于Web的服务,而后来人们却感觉到,这并不是一条合适的发展之路。”

  或许我们最大的教训就是学习到什么时候不应该使用面向服务的这种方法。“SOA并不是一条终结之路,你需要使用SOA的时候,往往是在你需要解决一个业务问题的背景下。”一家生产数字音频设备的厂商Crutchfield的IT主管Steven Weiskircher说。

  Crutchfield公司开始SOA的破冰之旅是在两年前,那时公司升级了紧急任务目录、访问中心、电子商务和零售订单处理程序,在这些程序中90%都是自定义代码。Weiskircher介绍说,他的开发团队支持代码和对象的可重用性,而且团队中的大部分开发人员对于微软的编程工具也都比较熟悉,因此,他们选用了基于.NET的服务策略,但是后来他们马上意识到,他们不得不把关注的重点转移到业务目标上,而不是以前的技术目标。

  “当然,软件开发的原则在几年之内并没有什么重大的改变。代码的可重用性,以及为了保护数据所产生需求的可持续性等,都是很有价值的设计原则。因此,对于服务来讲,有其发挥功能的地方,但也有其不适用的地方”。Weiskircher说。

  在这其中,服务的延时性是问题的关键。“如果你把SOA看做是Web服务的话——不同的厂商对此有不同的争论——你应该意识到服务会给你的交易带来很大的开销。任何的传输都是依赖于多个组件的,并且会给网络造成影响,包括延时、抖动和丢包等。因为在20年前传输的是简单的ASCII文件,而现在却是时常臃肿不堪的XML文件。当你再在其上添加简单对象协议(SOAP)和Web服务的安全标准(WS-Scurity)时,就有可能会增加延时,因为光是SOAP消息的封装和解析,就会耗费不少的处理器资源和网络资源。”Weiskircher解释说。

  在决定哪一段代码应当抽象成SOA服务的时候,还需要考虑的是,服务可重用性带来的利益是否大于服务延时所带来的负面影响。如果代码主要是在同一台机器的同一个应用程序中运行,那么最好还是不要采用服务的方法; 但是如果代码被许多分布式的应用程序所重用,比如在一个工作流组件中的商业流程,那么把这段代码封装成服务就是适合的。

共2页。 1 2 :
  • 本文关键词:

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅