技术开发 频道

SOA:互操作的进化密码

 【IT168 技术文章】

    2006年5月,ODF正式被国际标准化组织审核通过成为国际标准文档格式之后,我国“统一办公文档标准(UOF)”也被批准为国家标准。

    微软的Open XML文档格式在取得欧洲计算机制造联合会认可的基础上,也正在向ISO申报要求成为国际标准。

    这些标准的共存,体现了执行不同标准虚拟应用的互操作。

    作为未来的技术趋势之一,SOA正无可争议地引领着软件业的新一轮浪潮,并在未来给软件和网络带来革命性的变化。为什么SOA如此受欢迎?这是因为SOA能够解决IT领域一直存在的一些问题:首先,全球企业业务变化迅速,导致业务需求有了重大的改变,其次,企业员工是随着IT系统的变化而变化,这违反了IT系统应该满足业务需求的原则。最后,一些CEO发现IT部门70%的费用都花在手工运营上,而不是技术革新上,同时,IT的投资回报率也不高。

    系统的改变了过去开发应用的模式,将软件按照业务需求定义成“组件”,作为共享资源,提供以服务为中心的应用软件设计方法。这种方法,能够提高IT对业务的响应能力,使企业得以实时支持业务的变化,最终帮助企业转变为服务驱动型企业。

    微软微软公司大中华区首席技术官李志霄博士表示,首先,SOA不仅仅是技术框架,它更是对技术的应用。其次,由于互联网技术的存在, PC服务器能力的提高,集群技术的日益成熟,标准的日益成熟,以及高起点的中间件技术,才使SOA成为可能。最后,SOA是一个“进化品”,通过消息来进行沟通,通过服务来满足业务流程的自动化,从而实现产品对业务流程的管理,以及系统的安全性的保证。可以说每一个企业的SOA都是惟一的,它是为这个企业量身定做的。因此,也可以这么说,SOA就如同天空中的雪花,每一片都是不同的。

    SOA不是某个产品,也不是某个技术,而是一种软件设计架构和方法。SOA要求开发者从服务集成的角度来设计应用软件,它将应用程序的不同功能组件定义为“服务”,通过“服务”之间的良好接口联系起来。(也就是“服务”之间的松耦合。)接口是采用中立方式进行定义的,独立于实现“服务”的硬件平台、操作系统和编成语言。而且这些构建在各种各样系统中的“服务”可以以一种统一和通用方式进行交互,保证系统灵活性,另外,还可以保证“服务”的重复利用。

    由此可以看出,SOA的核心概念是“重用”和“互操作”,从而使企业的IT系统拥有极大的灵活性。其中互操作的含义就是能够在不同的程序和系统之间成功地通讯、可靠且安全地相互交换信息。互操作性的实现工具既包括开放标准,又包括广泛授权的专有标准,以及利用现存程序和技术的程序接口(API)、格式和协议的能力。而SOA的另一层意义就是整合,它将企业的IT资源整合成标准的、可操作的服务,使其能被重新组合和应用。在这种架构下,IT系统的复杂性并没有增加,相反,随着系统的不断完善,整个系统的架构将变得更加清晰。

    XML格式

    1980年,IT行业中互操作还很少见。然而Digital、HP、IBM和NCR等各大IT厂商都提供了专有软件及硬件解决方案。各厂商之间都不支持可以共同应用的系统(垂直的生态系统)。那时的消费者用户不得不选择某一个公司的产品和他相应的解决方案。相比较而言,今天的情况恰恰相反,互操作性在IT领域内获得了长足的发展。

    由于客户使用不同厂商的硬件、软件、应用,就需要把常用的功能抽取出来作为服务,同时就需要开发“设计上实现互相操作”的软件,例如,在软件中包含可扩展标识语言的XML技术,方便不同软件之间的数据交换。

    从SOA的角度上来看,互联网的每个终端可以看成是一个个的节点,我们并不需要去关心每个节点的内部,只要通过XML的翻译,知道每个节点的内部能够为外部提供怎样的服务,使每个服务具有互操作性。

    对于第三方,不管是用户还是开发人员,使用开放XML格式不会存在任何障碍。将它作为通用操作性技术后,人们将数据从一种格式转换成另一种形式将变得非常之容易,而且许可机制也是完全开放的,参考资料也非常丰富。这种文档格式不存在法律上和技术上的障碍。

    在过去的几年中,XML和网络服务已经成为保证系统和程序间互操作性的方法之一,并得到广泛的采用和认可。这一点可以从各种产品和技术中得到验证,从微软的Visual Studio.net到Microsoft Office 2007,这些软件与生俱来就支持这些标准,并且帮助简化和加快了系统之间的互操作的实现。

    SOA中的互操作

    SOA概念有一个隐藏的原则,就是将IT系统、软件、设备和服务集成在一起,并能彼此“对话”的理念,即便设备和服务开始并没有为这种互操作性进行特殊设计。网络服务作为面向服务架构的实现方式令人振奋不已。使用SOA概念的程序被构造成可重复使用、协作运行的服务组,其中每个服务都负责一个或者多个被清楚标示和界定的用户任务、业务流程或信息服务。

    SOA中的有效服务终端使用网页服务,并依次显示出所使用的标准,例如XML、SOAP、WSDL等等。

    SOA模式依赖于行业标准,这些标准使得服务能够在诸多不同的平台上运行,并且保证彼此之间仍然能够相互操作和通信。服务可以被传输到在任何平台或者设备能够与基础服务界面对话。消费应用对这些平台或设备的惟一要求是其能够符合并使用相关标准(如图1)。

    图1 通过SOA进行不同厂商产品间的整合

    利用这种方式.NET网络服务能够应用到丰富的Windows客户端应用程序、Smartphones、PDA、网络浏览器或Java程序中。同样,一个J2EE网络服务能够被相同的客户使用。或者,这类在不同平台上的网络服务实际上能够在彼此之间进行直接对话。这时关键的优势-能够让构建在不同平台和技术上的服务在部门内、部门间以及与客户、公司和政府等外部用户之间进行通信和共同操作。

    同时,可以通过使用Web服务来实现互操作和SOA,包括在Internet上以基于XML的消息访问数据库与业务逻辑及激活web service;在Internet上打破时空限制;许多的服务提供者;运算无处不在;承接历史,照顾现状, 考虑未来;IT 正确的IT架构使企业生产力成几何倍数增长。

    网络服务协议

    基于网络服务互操作性堆栈的开放标准的核心组件(如图2)

    图2 网络服务协议

    这些协议是几本构建块,以提供现今以使用的SOA和提供现今以使用的SOA和提供真正独立于厂商的互操作性。这些协议是作为一个跨行业倡议而开发的。微软、国际商业机器公司、SAP、BEA、Verisign等公司发起并参与其中,其策略是:

    ◆ 与平台经销商和主题事务专家合作发布满足每个功能领域要求的规范。

    ◆ 加速这些规范的广泛采用。

    ◆ 开展一系列互操作性研讨会,从而制定出这些协议有效实施方案-关键步骤是通过经证实的跨厂商的实施和支持来保证规范具有实际意义。

    这种方式确保能够获得产业的广泛支持,并且使得定义的标准和协议能够在业界大部分企业的工作技术和产品中得到支持。这些标准的开发已经得到了厂商广泛参与,在互操作性实验室中共同工作,以证明这些标准实现了真正的跨系统和跨应用的互操作性。将实际的实验室和反馈作为这些标准开发过程的一部分,这一做法本身就意味着这些标准在发布时就已经拥有来自主要信息技术厂商的广泛支持。这有助于避免那种闭门造车脱离实际的标准,而这样的情况恰恰就在以前的一些标准开发尝试中给我们带来了困扰。

    通过协议堆栈逐步建立更多细节:

    传送层构建在网络HTTP、TCP、SMTP等无处不在的传送标准上。网络服务需要独立传送,以保证在每种情况下都能作出最好的选择。

    XML被用来实现各种系统间的数据互操作性:XML、SOAP和WSDL已经成为跨越各种系统和信用界限的互操作性的混合语。在包括微软、IBM、IONA、BEA、Sun、Oracle等主流厂商的发布的产品中,XML、SOAP和WSDL得到了广泛的支持。

    基础层使用一系列相关联的标准来处理消息、安全、可靠性、交易和元数据。

    程序和程序基础结构层与相关的管理流程和业务流程处理应用空间。一旦该基础层就位,就可以使用丰富的客户端或者浏览器的功能开发相关的应用程序。对于高级业务流程管理和系统管理能力需要一些隐含的此类相关程序。由于这些网络服务协议具有广泛的跨行业支持,他们为企业和政府互操作标准的制定提供了极为有用的基本要求。

    我们正步入一个新的世界。在这个世界里,可能从松散连接的自主服务中构建系统和程序,从而能以一种现在还不可能完全预先设想的方式来利用在他们间传播的信息资产。为了利用好这样的环境,需要开发以更紧密和直观的方式来整合这些信息资产的技术。

    图3 Web services:互联互通的行业标准

    互操作的主要好处

    互操作对于商务、其他组织机构、消费者和政府之所以重要,原因在于:

    ◆不但能进行开放式访问信息,还能解决原有系统的兼容问题。

    ◆以客户选择、竞争和创新为基础,建立起健康的IT生态系统。

    ◆降低成本的同时提高效率和灵活性、提升系统价值。

    ◆促进系统的整合和竞争产品之间的合作。

    ◆推动重大的社会和政策解决方案的出台,例如:可访问性、保密性和安全性。

0
相关文章