`
javafenger
  • 浏览: 246656 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

[SOA介绍]什么是SOA?

阅读更多
摘要
在最近的软件发展中,面向服务架构(SOA, service-oriented architecture)成为了时下的热门话题。这篇文章将向大家介绍SOA, 讨论企业为什么需要SOA,什么是SOA, 从核心,平台,服务品质3个层面来解释SOA的基础构成。
By Raghu R. Kodali



对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(business logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用.NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。

SOA有以下特性
        SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。
        SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
        在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal Description, Definition, and Integration)是服务登记的标准。
        每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。

为什么选择SOA?

不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。

如图1的例子所示,一个使用SOA的企业,可以使用一组现有的应用来创建一个供应链复合应用(supply chain composite application),这些现有的应用通过标准接口来提供功能。


Figure 1. Supply chain application. Click on thumbnail to view full-sized image.         


服务架构

为了实现SOA,企业需要一个服务架构,图2显示了一个例子:


Figure 2. A sample service architecture. Click on thumbnail to view full-sized image.        

在图2中, 服务消费者(service consumer)可以通过发送消息来调用服务。这些消息由一个服务总线(service bus)转换后发送给适当的服务实现。这种服务架构可以提供一个业务规则引擎(business rules engine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础(service management infrastructure),用来管理服务,类似审核,列表(billing),日志等功能。此外,该架构给企业提供了灵活的业务流程,更好地处理控制请求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影响其他服务的情况下更改某项服务。

SOA基础结构

要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。图3所示的是一个典型的SOA基础结构。接下来的章节将逐一讨论该结构的每个部分。

image
Figure 3. A typical SOA infrastructure. Click on thumbnail to view full-sized image.         

SOAP, WSDL, UDDI
WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。

WS-I Basic Profile
WS-I Basic Profile,由Web服务互用性组织(Web Services Interoperability Organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。

J2EE 和 .Net
尽管J2EE和.NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML Binding),用于将XML文档定位到Java类;JAXR(Java API for XML Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如.NET)的服务互用。

服务品质
在企业中,关键任务系统(mission-critical system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。

安全
Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。

可靠
在典型的SOA 环境中,服务消费者和服务提供者之间会有几种不同的文档在进行交换。具有诸如“仅且仅仅传送一次”( once-and-only-once delivery),“最多传送一次”( at-most-once delivery),“重复消息过滤”(duplicate message elimination),“保证消息传送”(guaranteed message delivery)等特性消息的发送和确认,在关键任务系统(mission-critical systems)中变得十分重要。WS-Reliability 和 WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准现在都由OASIS负责。

策略
服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。

控制
当企业着手于服务架构时,服务可以用来整合数据仓库(silos of data),应用程序,以及组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的服务创建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用来控制这些服务的语言。WSBPEL目前也由OASIS负责。

管理
随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重要。WSDM(Web Services for Distributed Management)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。

其它的qos特性,比如合作方之間的溝通和通訊,多個服務之間的事務處理,都在WS-Coordination 和 WS-Transaction 標準中描述, 這些都是OASIS 的工作.

SOA 不是Web服务
在理解SOA和Web服务的关系上,经常发生混淆。根据2003年4月的Gartner报道,Yefim V. Natis就这个问题是这样解释的:“Web服务是技术规范,而SOA是设计原则。特别是Web服务中的WSDL,是一个SOA配套的接口定义标准:这是Web服务和SOA的根本联系。”从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。Web服务是实现SOA的方式之一。用Web服务来实现SOA的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的Web服务规范,你会取得更好的通用性。

SOA的优势

SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。

 

分享到:
评论

相关推荐

    什么是SOA?

    ### 什么是SOA? 服务导向架构(Service-Oriented Architecture,简称SOA)是一种软件设计方法,它将应用程序的不同功能单元(称为服务)通过服务之间的良好定义接口联系起来。服务接口通常是采用中立的方式进行...

    什么是 SOA?

    面向服务的体系结构(Service-Oriented Architecture,简称SOA)是一种现代的IT架构风格,它的核心理念是将企业的业务逻辑和功能分解为独立、可重用的服务,这些服务可以通过网络进行互操作,以实现跨系统的协作。...

    解读SOA :SOA实践方法论

    -什么是SOA?-怎样切入到SOA? -采用什么样的开发流程? -采用什么样的开发方法? -采用什么样的架构? -采用什么样的标准? -采用什么样的编程模型? -采用什么样的关键技术? -采用什么样的管理? -采用什么样的产品? SOA,...

    什么是SOA?

    面向服务的架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的理念,旨在提高业务灵活性、促进重用以及简化系统间的交互。IBM提出的Business OnDemand概念,是希望通过SOA实现业务需求的...

    SOA介绍PPT(英文)

    **什么是SOA?** SOA是一种IT架构,主要用于请求-响应类型的应用程序。它的核心思想是将应用功能模块化,表现为独立的服务。这些服务之间保持松耦合,意味着服务接口与其具体实现相分离。主要特征包括: 1. **平台...

    基础教程介绍——什么是SOA .doc

    **什么是SOA?** SOA,即Service-Oriented Architecture,是一种软件架构风格,它强调将业务逻辑和功能模块化为独立的服务,这些服务之间通过标准化的接口进行通信,实现了松耦合。SOA的核心理念是将复杂的企业级...

    SOA介绍

    **服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方式,它强调通过松散耦合的服务来实现业务流程的集成和互操作性。在IBM的SOA课程中,通常会深入探讨如何利用SOA原则和技术来...

    SOA发展历史介绍SOA的发展

    **SOA(Service-Oriented Architecture,面向服务架构)**是一种软件设计范式,它强调通过独立、可重用的服务来构建系统。自20世纪90年代末被提出以来,SOA经历了漫长的发展历程,逐渐成为现代企业信息化建设的重要...

    SOA介绍(PPT)

    面向服务的体系架构(SOA)是一种软件设计和构建应用程序的方法,它强调将应用程序的不同功能模块作为独立的服务,这些服务通过定义清晰的接口和契约相互连接。SOA的核心理念是解耦,允许服务提供者和消费者之间的...

    SOA介绍 PPT格式

    面向服务的体系架构(SOA)是一种软件设计和构建的方法,它强调将应用程序的不同功能单元称为服务,并通过这些服务之间的接口和契约进行连接。SOA的核心理念是将业务功能解耦,使其能够独立于硬件平台、操作系统和...

    SOA入门及架构介绍

    - **服务接口**:定义服务的契约,包括服务能做什么,如何调用以及预期的输入和输出。 - **服务注册中心**:存储服务元数据,帮助服务消费者找到所需的服务。 - **服务代理**:作为服务提供者和消费者之间的中介,...

    SOA介绍.ppt

    SOA 入门 了解

    ESB和SOA介绍和比较

    ### ESB和SOA介绍与比较 #### 一、SOA与ESB概念解析 **SOA(面向服务的架构)**是一种设计思路,强调通过服务接口实现不同系统的交互,这些服务可以被发现、调用,并且具备独立性和可重用性。SOA的核心理念在于将...

    IBM_SOA_产品和解决方案综述

    为什么选择IBM的SOA? 4 独一无二的竞争优势 4 IBM销售的产品 5 SOA生命周期 5 第二部分:SOA的背景,IBM的优势和产品 8 为什么采用 SOA? 8 SOA需求的驱动因素有哪些? 8 妨碍业务灵活性和重要性的因素有哪些? 9 为...

    SOA架构介绍

    SOA架构介绍

    SOA.zip_SOA optical_SOA 光_SOA 半导体_VPI SOA仿真_光放大

    **SOA光学与半导体光放大器** 在信息技术领域,特别是在光纤通信系统中,半导体光放大器(Semiconductor Optical Amplifier,简称SOA)扮演着至关重要的角色。SOA是一种利用半导体材料(如镓铝砷化物,GaAs/AlGaAs...

    SOA风格介绍

    这是一份关于SOA风格的课件,简单介绍了SOA体系结构,包括它的特点和组成

    企业级软件平台建设SOA介绍与应用.pptx

    面向服务的架构(SOA)是一种企业级软件平台建设的关键理念,旨在提升IT系统的灵活性和适应性,以满足快速变化的商业环境需求。SOA的出现源于企业对更高效、可扩展和模块化IT基础设施的需求,以克服传统企业应用集成...

    面向服务架构(SOA)中南大学SOA原理与技术 00 课程简介(共66页).ppt

    面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...

    ibm soa平台介绍

    IBM SOA(Service-Oriented Architecture,面向服务的架构)平台是一种企业级的软件架构,它将业务功能封装为独立的、可重用的服务,这些服务可以通过标准接口进行交互,从而实现不同系统的协同工作。IBM的SOA平台...

Global site tag (gtag.js) - Google Analytics