• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Web2.0与SOA--通往敏捷商务的必然之路

发布: 2007-4-24 16:42 | 作者: 吴延安 | 来源: 赛迪网 | 查看: 37次 | 进入软件测试论坛讨论

领测软件测试网

SOA可以说它经过几年的发展,目前无论从理念上面还是概念上从一些技术实现上都得到了很大的发展,任何一个技术的发展从某种程度上来讲都是适应了当时这种来自业务上面的,来自整体环境上的需求,Web2.0和SOA是在什么样的前提之下所产生的,在什么样的状况提出来的?我们审视以下整个市场的现状的话,不难发现,随着中国加入WTO,随着经济全球化的趋势,以及各种各样的政策法规和宏观经济的变化,使得目前任何一个企业各个行业都面临着前所未有的竞争压力,如何确保我们在竞争过程中的优势地位?这很大程度上取决于一个企业是不是有足够的商业敏捷性,这种敏捷性实际上是对很多公司对政府来讲都意味着我们能不能提供一个更大的社会效益给我们的公众企业提供更好的服务。

作为一个企业来说,除了提供一些社会价值同时,最终要追求利润最大化,在这个过程当中我们需要当市场发生变化时就要有这么一种能力,确保你整个信息架构,满足业务需求,当公司变化重组的时候你要有能力在整合的过程中通过一种技术的手段去创造新的价值,去开拓一些新的市场。这些是作为敏捷商务需要考虑的问题,只有通过这样一个方式我们才可能在商业运作的过程当中获得最多的价值,怎么样去降低我的运营管理成本,怎么样开辟更多商业渠道等等。这些都是作为一个企业CIO来讲需要将业务需求能力转变为IT整体信息架构,从而支持业务远景的实现。


微软平台与开发合作部 .NET首席顾问 吴延安

针对这个需求,原有的技术架构不能满足变化的需求,SOA以及Web2.0技术正是在这样一种前提之下所产生的。究竟什么是Web2.0?关于这个概念现在业界对它也是讨论很热烈,刚才徐总也做了一些介绍,还有赛迪网对这个的理念,对于Web2.0业界还没有权威的定义,我们不妨去看一下围绕Web2.0相关的一些技术,相关的一些事件中看一下Web2.0到底给我们提出什么样的理念。

在去年的时候有一系列围绕Web2.0所发生的事件,这里面最值得注意的一点是在去年美国有一些主要的IT公司,甚至是包括一些商业咨询公司共同参与的Web2.0技术大会,在这个技术大会上面各个不同的咨询公司以及IT公司都有各自的看法,对Web2.0能产生的市场价值也进行了关注。

同时随着Web2.0技术的兴起,可以说各个公司在这里面都进行了相应的一些动作。在这里面我们可以看见,无论从Web2.0的技术表现上,比方说现在普及的RSS进行信息系统整合,或者是进行客户丰富体验的技术实现,帮助我们增加客户体验的方式,还是WIKI,实际上我们强调的是通过已有的或者是产生的技术去创造一种以人为本这种个性化的服务为客户代带来更好的体验。Web2.0更多强调的是理念,怎么样通过新的手段给最终的用户带来新的体验。

针对Web2.0这个概念,微软在技术上一直也比较关注用户体验的研发,对用户体验这个层面来讲,可以有一系列可以利用的技术,针对Web2.0我们在今年下半年我们会有一系列的技术进行Web2.0技术的实现,以及针对视觉表象上的,针对Web应用新的技术,通过这些技术帮助我们产生一种新的需求,提供更好的服务,从而达到一个实现最终丰富的客户体验的目的。

我们不妨看一下其中的ATLAS,是针对互联网的框架结构,它的作用在于帮助我们创建一个界面体验,更好的增加客户和系统的可交互性。这个框架结构实际上跟我们平时所了解的或者是在Web2.0里面更多的强调AJAX技术,这是一种快速的使用手段,AJAX是一系列的原有的老技术高度的整合,并不是什么崭新的技术,在AJAX里面,实际上用到了以前XML,通过这样一些技术手段的融合达到了一种更好的可操作性,以及更好的最终体验。

在AJAX里面,它的提出实际上如果说应用的话,可以追溯到GOOGLE的GMAIL,我们可以看到一些具体的应用,它Web2.0最大的不同是,如果我们使用了GMAIL不同的话,如果你在Gmail进行地图搜索的话,我可以很快的得到响应,并且在用户的界面上非常的友好,消除的Web一些糟糕的体验,和传统的WEB方式有一个不同,传统的Web,当我们用户上网的时候,我对网站发出一个请求进行操作的时候,实际上我向服务器发出的请求,这个请求得到服务器把结果返回客户端的时候,在整个过程中我们的客户端一直处于等待状态,如果你的服务器效率不是很高,用户不会得到很高的体验。怎么这些这个问题,AJAX就在浏览器这端和服务端加了一个中间层次,将你的提交不是直接提交这个服务器上,而是由AJAX一个叫AJAX引擎进行处理,这样你的客户端依然可以进行操作,由AJAX对XML进行剪辑,所以整个过程不会发生当一个请求发出的时候我的整个页面不能动,通过AJAX技术可以做到这一点,但是这个技术从GMAIL体会到一个很大的优势,但是在这个技术上综合了原有的技术,实现起来有很大的复杂性,ATLAS是降低这种AJAX风格的应用,带来了这样一个技术,从包含了一些内容上提供了客户端的SCRIPT引擎,这个引擎不是装在客户端上了,同时为了增加开发的这种方便性,提供了一系列的服务器组件和开发包,和WebService进行了整合,也得到了比较好的客户体验的同时将应用真正放在应用系统里面去。

刚才徐总关于这一块从各个方面给出了一个很好的理解,接下来我们看一下SOA?SOA到目前为止也不是一个很新的概念,但是SOA经济这几年的发展,尤其是WebService技术的兴起其成熟,使得SOA的架构得到了广泛的关注,并且SOA作为一个面向服务的架构,从定义上来看,它是一种组织企业级信息企业的方法论,是见于一个企业整体IT信息系统进行的一种整体规划。它强调企业系统里面一切可以利用的资源,比方说原有的一些子系统或者是网站资源、硬件资源,所有的这些都可以作为服务的组成部分,把这个部分通过一个标准的接口对外进行发布、共享。

这种架构带来的最大优势是什么呢?它的优势总结一下可能表现这几个方面,首先是非常灵活,我们可以利用这已有的服务搭建新的应用,从而降低整个系统实施以及技术或者是业务变更带来的复杂度,所以当你的市场发生变化的时候,当你的业务发生变化的时候,我们有能力基于这样一种思想去重新构建一个服务。应对很多行业的服务,这些服务是不同的一些组合,所以当业务模式发生变化的时候,我们可以重用其中的一些现有的服务,很大程度上保有的现有的投资。从可重用方面来讲,面向服务架构上强调了一个面向服务的概念,在这里面它可以将我们企业应用过程中的一些业务逻辑以及处理过程,将它进行组件化的封装,这种封装之后可以保证我一个业务在不同的规划时期,我可以将它在不同的时期进行相应的实施,将来当你的业务发生变化时还可以在这个基础上进行一种可持续性的发展。

在跨部门或者是跨区域的上来讲提供了一种清晰的集成概念,像以往的技术,像WebService出现之前,无论是分布式基础RMI都有一定的技术局限性,并且这个技术能在自己的领域里面进行操作,一旦跨越你的安全边界、网络边界它操作起来,用它实现技术上的互操作性就会带来很大的问题。WebService从某种程度上给我们提供了异构系统互操作性的解决方案

SOA这种架构从技术的可行性上讲,WebService提供了一个技术的基础,使得SOA架构得到了广泛的采用。

最后一点是SOA不仅是在技术上带来创新,而更大程度上它是一个企业战略性的变化,是实现一个企业敏捷性的关键,像我们以往的一些技术相对每一个系统之间,系统整体的架构上,由于采用的是紧耦合的技术,所以很难适应企业整体的业务战略。比方说一个企业如果要想跟我的企业合作伙伴之间进行交互的话,要利用合作伙伴的一些服务去创建一些新的应用,提供新的商业模式和机会,这个时候会发现原有的技术在这块很难做到的。SOA它的理念是试图帮助我们解决类似一系列问题,所以跟传统的开发方法相比,无论是在设计上还是开发上都与以往不同。采用SOA架构以后,对一个企业的复杂度,使得一个企业整体的IT信息架构复杂程度降低了。一个企业远景目标越远大,整个系统集成的难度越大,SOA的架构越是适合这样的场景,以往的技术会很怕遇到类似情况的。

SOA里面强调一个面向服务,什么是服务?一个服务是由一系列的业务逻辑和功能的一些实践,他跟我们传统的一些对象或者是方法有很大的区别的。这个区别在于你所封装的业务功能或者是逻辑,它不能够依赖于它的的技术,通过一个标准的接口进行对外发布,而这种接口我们客户端对它发出请求通过消息进行请求,这里与消息驱动的设计模型又是有区别的对技术的依赖比较强,并不关注这种很强的松耦合性,但是在Service里面比较强调这一点。

SOA的架构实际上它是有一系列的特征,比如说在设计一个SOA架构的时候,有一系列的设计原则是我们要去遵循的,遵循了这一系列的设计原则,你的这个架构才可以广泛的应用到一个企业整体的架构上去,才可以使得你的服务真正和别人进行共享,或者是使用别人的服务。SOA强调的是四个设计原则,一个是共享结构及合约而不是类。这一点和面向对象、目标的设计思想有一个很大的区别,在面向对象的设计里面,面向目标的设计里面,我们往往是在你的分布不同服务端和客户端是要共享一个类的。在发布的时候,我要进行共同部署,通过这种手段进行交互和沟通。但是在SOA设计思想的时候就不允许以这种方式进行信息的交互,一个信息怎么样进行交互,怎么样发布一个请求?这个时候它就要去通过一个叫和Schema,他们之间的数据结构是通过Schema的定义,你能够访问什么样的任务,有一些什么可以被外面访问,这是需要通过合约定义的,所以在SOA架构里面具体的实践技术可以不限制,但是您对外发布的Schema是随着时间的推移保持一定的稳定性,只有这样才能将你的服务真正的Web服务。

第二个是服务的自治性。它自己要独立的对自己进行维护和管理,而所有的这些都不会被你的调用方,将来的使用方所发生关系,有了这样一个设计原则之后,我们可以做到你的服务具体实现它的拓扑结构,在封装的内部可以保持不变。另外它强调了一个基于POLICY的兼容性,这个也是非常关键的,我们在分布式的应用设计里面,目标的设计方法里面这里面是服务器端和客户端的界限是很模糊的,我的一个客户端被分布式的服务端进行请求的时候,我创建一个对象,这个对象是把服务器上的一个对象当成本地的对象进行调用和使用,它模糊了这种界限。但是SOA里面,服务方就是服务方,这不存在技术上的耦合性,以及服务方对我的使用方提出技术性的要求,这是在边界上要求很清晰的。

我们可以看到有很多基于整体运用架构的场景可以使用SOA的概念,使用这么一个架构进行构建,比方说对一个电子商务网站而言。电子商务网站往往给客户提供在线商品交易功能,提供功能的时候需要有一系列的子系统辅助它完成相关业务操作,这里面会涉及到内容的提供,会提供到授信的问题,涉及到支付的问题,以及将来商品发布问题,这些并不是某一个网站公司自己单独承担和解决的,这个时候我们需要跟你的一些合作伙伴或者是整个供应链里面的不同渠道进行整合。

在这样一个应用场景里面,整个电子商务的应用是采用了各个不同的服务提供商所提供的一系列服务,然后把它们进行组装。在这里面电子商务门户给我们提出了一个基于服务的一种整合,以及对这些服务进行的一些工作流程的相关处理。

一个SOA具体的实践是涉及到类似一系列的方面,比如怎么样整合Service,我拿到Service怎么样去组成他的工作流程,以达到业务目的,这是从应用场景上看,在构建SOA架构的时候,实际上有这么几点是我们在进行SOA架构设计的时候要关注的地方。SOA的架构因为它是一种基于企业级的IT信息架构的构建方法,所以应用设计上我们不能够把它像传统的面向对象,面向方法的一种设计一样去看待,而是要把它作为一种在整体架构之上然后去关注的系统架构,是解决一个企业整体战略架构问题。SOA可以把一个企业里面已经存在的一些系统或者是子系统作为服务的一部分进行一种组装,是非常灵活的去实现企业远景的一种架构思想。

微软在SOA这块长期以来做了很多的工作,比方说关于WebService技术方面,微软早期跟IBM一起WebService的发起者,WebService经过几年发展,目前已经不是哪一家公司特有的技术,现在它是由一个WS-I由这么一个世界互操作组织进行管理的。

在这里面WebService在1.0的定义里面并没有强调我怎么样去实现这一种跨不同地域或者是企业之间交易的安全交流问题,WebService怎么样进行跨边境的保证,在这些方面做了大量的规范和定义,从现有的技术来讲,微软提供了一个叫对WS-*的一些实现,可以和微软的一些开发工具很好结合在一起帮助我们实现SOA从技术上面实现它。

从未来的技术来看,有一个新的技术叫WCF,WCF也就是我们以前所只有的微软内部开发技术,它的目的是WINDOWS开发构建面向服务平台的统一变成模式,实际上以下方面做了一些工作,首先是专门针对面向服务的架构所提出的支持以及实现。它显示的面向服务架构所涉及到一系列的特点要求,我们可以用WCF去实现一种真正的SOA的架构思想,第二个,它将微软现有一系列分布式应用技术整合在了一起,像WebService接口服务,使他们结合在了一起,进行部署的时候我通过属性和配置方法很容易的把它结合到一个具体的分布式应用方案里面去。第三点是WCF是一个实现真正的跨平台的与异构系统互操作的框架。

以上是关于SOA的概念以及Web2.0简单的介绍,因为时间的关系,我简单的和大家进行了一个交流,谢谢大家!

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网