初探 SOA(补充)

所属分类: 网络编程 / 其它综合 阅读数: 1409
收藏 0 赞 0 分享
这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。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将会很好的结合起来,来指导我们的开发和应用。
更多精彩内容其他人还在看

软件测试面试如何测试一个杯子

本文主要介绍软件测试面试如何测试一个杯子,这里帮大家整理了详细的面试资料,和面试需要准备的知识点,有兴趣的小伙伴可以参考下
收藏 0 赞 0 分享

软件测试面试如何测试网页的登录页面

本文主要介绍软件测试面试如何测试网页的登录页面,这里整理了相关软件测试的一些基本知识,希望能帮助软件测试的同学
收藏 0 赞 0 分享

常见前端面试题及答案

本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典、很有代表性。上面没有答案,我就整理了一下,从网上找了一些相关问题的答案
收藏 0 赞 0 分享

PHP和Java的主要区别有哪些?哪个最适合Web开发语言?

Java和PHP都是编程语言,大家知道它们最大的区别就是一个是静态语言一个是动态语言吧。没错,Java是一种静态语言,PHP是一种动态语言。那它们还有哪些区别? 哪个最适合Web开发语言?下面,小编再给大家详细介绍下。
收藏 0 赞 0 分享

玩转markdown 分享几个需要用到的工具

markdown是一个面向写作的语法引擎,markdown的最终目的都是解析成html用于网页浏览,所以它兼容html语法,即你可以在 markdown文档中使用原生的html标签
收藏 0 赞 0 分享

可能是最通俗的一篇介绍markdown的文章

这些日子一直在简书上使用markdown写作,已经渐渐的痴迷于这种简洁纯粹的写作方式了。不过就我逐渐入门markdown的写作过程来看,目前我看到的各种介绍markdown写作方式的文章都还略显极客,对于大多数像我一样没有基础的普通人来说,可能内容上的可接受性没有那么强
收藏 0 赞 0 分享

献给写作者的 Markdown 新手指南

Markdown 是一种「电子邮件」风格的「标记语言」,我们强烈推荐所有写作者学习和掌握该语言。为什么
收藏 0 赞 0 分享

github pull最新代码实现方法

本文主要介绍 github pull最新代码的资料,这里对 github pull最新代码做了详细流程介绍,有需要的小伙伴可以参考下
收藏 0 赞 0 分享

GitHub Eclipse配置使用教程详解

本文主要介绍GitHub Eclipse,这里对Eclipse 使用GitHub的教程,图文并茂详细说明如何操作,有需要的小伙伴可以参考下
收藏 0 赞 0 分享

Git 教程简单入门介绍

本文主要介绍Git 教程简单入门的东西,这里整理了Git 的基础资料和简单命令,有需要的小伙伴可以参考下
收藏 0 赞 0 分享
查看更多