初探 SOA(补充)

 更新时间:2009年01月09日 18:31:56   作者:  
SOA是一种应用框架,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务。它使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行计算平台,从而提高业务流程的灵活性。
这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。SOA 有助于实现更多的资产重用、更轻松的管理和更快的开发与部署,在当今的业务环境中,变化是毫无疑问的,因此快速响应客户需求、市场机遇和外部威胁的敏捷性,轻松应对企业商业服务变化、发展的需要比以往任何时候都更显重要。
各种企业都认识到组件化、模块化、互操作和可伸缩基础设施的价值:

组件化:利用标准化的应用程序和资源服务接口

互操作:实现应用程序和/或资源之间的轻松信息交换

模块化:混合搭配、添加删除、业务流程与基础设施

可伸缩:从现有资源起步,随需添加其他资源

SOA的目标在于让IT变得更有弹性,以便更快地响应业务单位的需求使得企业应用摆脱面向技术的解决方案的束缚。SOA可以用蝙蝠来做比喻,蝙蝠要利用自己的超声波捕捉食物,也需要超声波了躲避障碍物,企业也一样,既想利用软件来赢利,也希望软件来规避企业的的风险。

SOA要求开发者从服务集成的角度来设计应用软件,要求开发者超越应用软件来思考,在服务的基础上进行技术构建,并考虑复用现有的服务,或者检查如何让服务被重复利用,让业务需要成为功能组件选择中的驱动因素。它鼓励使用可替代的技术和方法(例如:消息机制),通过把服务联系在一起而非编写新代码来构架应用。SOA想要实现企业资源共享,首先要把应用和资源转换成服务(Service)然后把这些服务变成标准的服务,形成资源的共享。

SOA服务具有平台独立的自我描述XML文档,旨在提高业务流程之间和 IT 应用程序之间的模块化和重用程度,Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。

SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。

在一个企业内部,SOA服务通过一个扮演目录列表角色的登记处来进行维护。应用程序在登记处寻找并调用某项服务。统一描述,定义和集成是服务登记的标准。每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信,以及谁能调用服务的策略。

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

要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。
WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。

SOA的概念并非什么新东西,它代表的是一次进化,而不是一次革命,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。我认为现有的web服务、工作流、中间件以及现在炒得火热的SAAS都是SOA在不同层度上的实现。但它们也有所区别,Web服务是技术规范,是利用一组标准实现的服务,而SOA是设计原则一种架构模式,用Web服务来实现SOA的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的Web服务规范,你会取得更好的通用性。SOA和SAAS我思想相近,而SOA是站在软件架构和设计的角度来看待软件是如何被架构起来的东西,SAAS则是站在应用的角度来看待软件是如何被应用的,软件可以通过SaaS使用SOA的方法提供给用户,也带给SaaS系统松散的耦合,我相信在不久的将来,SOA和SAAS将会很好的结合起来,来指导我们的开发和应用。

相关文章

  • Idea 2022激活码最新汇总(亲测有效)

    Idea 2022激活码最新汇总(亲测有效)

    JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。今天给大家分享大批IDEA 激活码到期之后的乱象,大家可以参考下
    2020-07-07
  • 详解DES&3DES算法的原理以及C#和JS的实现

    详解DES&3DES算法的原理以及C#和JS的实现

    DES 全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。3DES 算法通过对 DES 算法进行改进,增加 DES 的密钥长度来避免类似的攻击。本文就来聊聊它们的原理与实现吧
    2023-03-03
  • Vscode编辑器的巧妙用法(快速格式化代码的方法)

    Vscode编辑器的巧妙用法(快速格式化代码的方法)

    今天小编给大家分享一款超好用的格式化神器,Vscode编辑器是一款很好用的编辑器,学会这个神器可以省去很多麻烦不需要手动一点点缩进,对Vscode编辑器代码格式化感兴趣的朋友一起看看吧
    2021-05-05
  • 使用curl命令行模拟登录WordPress的方法

    使用curl命令行模拟登录WordPress的方法

    这篇文章主要介绍了使用curl命令行模拟登录WordPress的方法,本文通过图文实例相结合给大家介绍的非常详细,需要的朋友可以参考下
    2019-11-11
  • WebStorm安装配置教程

    WebStorm安装配置教程

    WebStorm 是jetbrains公司旗下一款JavaScript开发工具,这篇文章主要为大家详细介绍了WebStorm安装教程,文中安装步骤非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Elasticsearches打分机制讲解

    Elasticsearches打分机制讲解

    这篇文章主要介绍了Elasticsearches打分机制解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 删除SVN三种方法delSvn(windows+linux)

    删除SVN三种方法delSvn(windows+linux)

    今天想清除目录下的SVN信息,在网上找了找,说是有三种方法
    2012-03-03
  • 使用 FFmpeg 命令拼接mp3音频文件异常问题及解决方法

    使用 FFmpeg 命令拼接mp3音频文件异常问题及解决方法

    这篇文章主要介绍了使用 FFmpeg 命令拼接mp3音频文件异常问题及解决方法,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • lambda 表达式导致 Arthas 无法 redefine 的问题

    lambda 表达式导致 Arthas 无法 redefine 的问题

    这篇文章主要介绍了lambda 表达式导致 Arthas 无法 redefine 的问题,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Markdown语法备忘

    Markdown语法备忘

    Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面
    2014-10-10

最新评论