初探 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将会很好的结合起来,来指导我们的开发和应用。

(0)

相关推荐

  • 初探 SOA(补充)

    这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时.准确信息的访问.SOA 有助于实现更多的资产重用.更轻松的管理和更快的开发与部署,在当今的业务环境中,变化是毫无疑问的,因此快速响应客户需求.市场机遇和外部威胁的敏捷性,轻松应对企业商业服务变化.发展的需要比以往任何时候都更显重要. 各种企业都认识到组件化.模块化.互操作和可伸缩基础设施的价值: 组件化:利用标准化的应用程序和资源服务接口 互操作:实现应用程序和/或资源之间的轻松信息交换 模块化:混合搭配.添加删除.业务流程与基础

  • 初探 SOA

    SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition).消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中.服务间的通讯也可以看作企业内部处理的关键商业文档.    在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护.应用程序在登记处(Registry)寻找并调用某项服务.统一描述,定义和集成(UDDI, Universal Des

  • Springboot自动加载配置的原理解析

    目录 1.springboot自动配置的原理初探 2. 补充扩展(解释为什么引用的包都报红错了,项目还能启动) 3.又一个问题 总结 1.springboot自动配置的原理初探 以下注解都在springboot的自动化配置包中:spring-boot-autoconfigure.读者朋友可以跟着一下步骤走一遍,应该对自动配置就有一定的认知了. 1.springboot程序的入口是在启动类,该类有个关键注解SpringBootApplication @Target(ElementType.TYPE

  • JS中SetTimeout和SetInterval使用初探

    一切尽在代码截图中,愿意和大家一起成长!可以喷,毕竟是菜鸟!  好了,废话不多说了,看具体实例代码吧! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="wraper">

  • Go语言开发环境搭建与初探(Windows平台下)

    Go语言开发环境的搭建(Windows) Windows下的Go语言开发安装包 官方下载地址: https://code.google.com/p/go/downloads/list 我们下载地址:http://www.jb51.net/softs/237132.html Go语言中文官网(有相关参考和文档) http://zh.golanger.com/ 方法/步骤 1.在Go语言的Google代码项目上下载Windows下的Go语言开发包(下载地址见工具).有zip压缩版和msi安装版两个按

  • htmlcleaner使用方法及xpath语法初探

    在编程的时候或者写网络爬虫的时候,经常需要对html进行解析,抽取其中有用的数据.一款好的工具是特别有用的,能提供很多的帮助,网上有很多这样的工具,比如:htmlcleaner.htmlparser 经使用比较:感觉 htmlcleaner 比 htmlparser 好用,尤其是htmlcleaner 的 xpath特好用. 下面针对htmlcleaner进行举例说明,需求为:取出title,name="my_href" 的链接,div的class="d_1″下的所有li内容

  • 初探nodeJS

    一.node概要 对nodeJS早有耳闻,但是一直迟迟没有对它下手,哈哈哈,今儿咱就来初探一下它. nodeJS是个啥东东? nodeJS,我的理解就是可以运行在后端的JavaScript. 为什么它能够在后端运行呢? 这就得归功于V8引擎(V8是Google Chrome浏览器的JavaScript引擎),通过对高性能V8引擎的封装,并通过一系列优化的API类库,使其就能够在后端运行了. 并且node有两大特点: 1.基于事件驱动: 2.无阻塞. 从而nodeJS非常适合处理并发请求. 大家都

  • Oracle自我补充之trunc()函数的使用方法

    1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指定的元素格式所截去.忽略它则由最近的日期截去 下面是该函数的使用情况: TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am') ='24-Nov-1999 12:00:00 am' TRUNC(TO_DATE('24-Nov-199

  • 初探Swift3.0带来的变化汇总

    废话不多说了,直接给大家贴代码了. var string = "Hello-Swift" //获取某个下标后一个下标对应的字符 char="e" //swift2.2 //var char = string[startIndex.successor()] //swift3.0 var char = string[string.index(after: startIndex)] //获取某个下标前一个下标对应的字符 char2 = "t" //sw

  • javascript下string.format函数补充

    又重新阅读了一遍Andrew的原文,在原文下面的评论中,赫然发现也有人早提出参数个数的问题,同样懒惰的楼猪直接拷贝原文评论答复了一下,同时还发现说漏了很重要的一个注意点Array.prototype.slice.下面统一补充说明一下: 1.string.format的参数个数 在Andrew的原文中,已经有人指出: eric d. Hi, thanks for that brilliant article. Made a lot of things a lot clearer! Note: ne

随机推荐