原文地址:http://blog.csdn.net/ichaos/archive/2008/01/20/2054377.aspx

SOA的概念是Gartner在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”。从Gartner的观点来看,SOA是一种新的企业应用架构和企业IT基础架构,主要是企业IT基础架构的思想、方法、风格、工具的一个总称。

更多的关于SOA的定义: 
IBM:
SOA是一种可以不断进化的方式,用它来构建以解决业务问题为中心的信息技术(IT)系统。

微软:
A loosely-coupled architecture designed to meet the business needs of the organization.

OASIS:
Service Oriented Architecture (SOA) represents a collection of best practices principles and patterns related to service-aware, enterprise-level, distributed computing.

一个流传很广的定义:
SOA,面向服务的体系结构(service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

虽然到目前为止,关于SOA还没有一个统一的、被广泛认可的定义,但是SOA的核心理念却是一致的:
1、 SOA是以业务为导向的,强调业务领域的分析和建模。
2、 SOA不是一个产品,甚至不是一项技术。本质上SOA是一种思想,一种新的IT系统架构思想。
3、 SOA是一个不断进化的过程,是一系列最佳实践的集合。
4、 SOA不是新生事物。将这种技术运用于商业可以追溯到算盘时代。《SOA概念、技术与设计》一书中有如下关于面向服务的类比:
让我们来看一看普通的国际化大都市,其中已经存在许多面向服务的业务。任何一个公司都是面向服务的,因为每个公司所提供的独特服务都能被多个消费者使用。全体业务组成一个业务群落。业务群落的意义在于,不由单个业务插口提供所有的服务。通过将群落分解为特定的、独立的插口,就可以获得一个分布式的插口环境。

理想的SOA:
拥有一个松耦合的、高度分布的应用架构不是今天才有的梦想,但是SOA则是第一次让人们在拥有这种梦想的同时摆脱了专有、复杂和昂贵的代价。 
SOA的理想是,在开放的标准体系下,所有的应用可以相互连接,传递信息。新的应用可以很快连接到原有的SOA体系中;而旧的应用也可以加入到新的SOA架构里。就像计算机里的系统总线,所有的设备都可以连上去来交换数据,SOA力图让所有的应用在SOA的理想国中相互无障碍地对话。在具体实现上,SOA将企业应用切分成小的应用模块,每一个应用模块在SOA理想国中被视为一个服务,企业可以将各种服务根据需要进行组合,从而完成一项业务需求。

SOA理论基础
解决大型问题的逻辑是:如果它能够分解成更小的、相关的片段集合,那么它就更易于构造、实现和管理。其中的每个片段都代表了这个问题的一个关注点或一个特定部分。
“面向服务”就是以这种逻辑来解决IT系统架构问题的,它代表了分离关注点的一种方法论,可以根据不同的业务目标而应用于不同的场景。所以有人提出如下论点:“关注点分离是SOA的核心原则。”

关于SOA的比喻:鱼香肉丝
(来源:IBM中国研发中心Web2.0首席架构师、资深技术主管毛新生)
你到餐馆去吃鱼香肉丝,这是一个服务,做鱼香肉丝就属于业务处理能力,可是大家做的鱼香肉丝是不一样的,也就是Quality of Service,大家都能够做鱼香肉丝,这是一个接口层次上的问题,但是Quality存在不同,而且我对这个餐馆表示不满的时候,餐馆经理就出来处理问题了,是重新做一份还是免单了,这如何解决问题就是业务策略。

这样一个简单的事情它其实表明了在过去代码的时代所无法表达的内容。一个业务活动它有它的业务处理能力,有它的功能,同时有跟这个功能有关系的一些关于 Quality的要求,还有一些处理各种各样事件的业务策略,所有的这些东西融合在一起,他会出现在服务的描述里面,还会组装在一个形式化描述的业务流程 里面,这些东西都是业务人员可以懂的,透过这样一个东西他就自然而然的将下面的一些应用和各种各样的数据整合在了一起,与此同时,我们也提供了人工活动的 支持,这种人工活动的支持也是通过服务的接口来描述。从而使得人员、数据、应用就可以非常无缝的相互协作了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ichaos/archive/2008/01/20/2054377.aspx

SOA 新业务语言 新系统架构——什么是SOA的更多相关文章

  1. 【PaPaPa】系统架构搭建浅析 - 人人可以搭架构

    声明 [PaPaPa]这个项目是以技术分享与研究为目的而做的,并非商业项目,所以更多的是提供一种思路,请勿直接在项目中使用. 上一篇隐藏开源项目地址实属无奈,为了寻找一起做这件事的同伴不得已刷了一天推 ...

  2. 大型网站系统架构演化之路【mark】

    前言 一 个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的 扩展逐渐演变完善的,在这个过程中,开发模式. ...

  3. 门户级UGC系统的技术进化路线——新浪新闻评论系统的架构演进和经验总结(转)

    add by zhj:先收藏了 摘要:评论系统是所有门户网站的核心标准服务组件之一.本文作者曾负责新浪网评论系统多年,这套系统不仅服务于门户新闻业务,还包括调查.投票等产品,经历了从单机到多机再到集群 ...

  4. 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法

    最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...

  5. Android群英传》读书笔记 (1) 第一章 Android体系与系统架构 + 第二章 Android开发工具新接触

    第一章 Android体系与系统架构 1.Dalvik 和 ARTDalvik好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.ART好比是一辆组装好了的自行车,装好就可以骑了. ...

  6. 大数据时代的新BI系统架构发展趋势

    商业智能(BI,Business Intelligence).它是一套完整的解决方式,用来将企业中现有的数据进行有效的整合,高速准确的提供报表并提出决策根据.帮助企业做出明智的业务经营决策.     ...

  7. 新零售SaaS架构:商品系统架构设计

    SaaS产品就像一座冰山,冰山以上的部分是功能.数据(可见部分).用户界面,冰山以下是系统架构.完整的数据模型.开放体系.非功能性需求(扩展性.可维护性.性能.安全等). 短期内想要快速上线产品,可能 ...

  8. 使用Lua脚本语言开发出高扩展性的系统,AgileEAS.NET SOA中间件Lua脚本引擎介绍

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  9. 海量日志实时收集系统架构设计与go语言实现

    日志收集系统应该说是到达一定规模的公司的标配了,一个能满足业务需求.运维成本低.稳定的日志收集系统对于运维的同学和日志使用方的同学都是非常nice的.然而这时理想中的日志收集系统,现实往往不是这样的. ...

随机推荐

  1. jQuery扩展与noConflict的用法-小示例

    有时我们要用到自己定义的jquery,这时可以通过jQuery扩展来实现该功能 index.html <!DOCTYPE html> <html> <head> & ...

  2. JS浏览器对象-Screen对象

    代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...

  3. (转)在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送

    在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送 From: http://saeapns.sinaapp.com/doc.html 1,在 ...

  4. [React Testing] Element types with Shallow Rendering

    When you render a component with the Shallow Renderer, you have access to the underlying object. We ...

  5. javascript封装id|class|元素选择器

    由于各个浏览器都支持的选择方法只有如下三种: 1 document.getElementById() 2 document.getElementsByName() 3 document.getElem ...

  6. 设置开机启动时指定非ROOT用户执行相应的脚本

    [root@MSJTVL-MJSP-A01 sm01]# vim /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *afte ...

  7. tail-head

    [root@rusky]# tail test3 #不加参数默认显示全部内容 line line2 line3 line4 line5 line6 line7 line8 line9 line10 [ ...

  8. Gradle的简介、安装与配置

    Gradle介绍 Gradle是一个基于JVM的构建工具,它提供了: 像Ant一样,通用灵活的构建工具,对Ant的任务做了很好的集成 同Maven一样是基于约定的构建框架 强大的多工程构建支持.有广泛 ...

  9. 在Ubuntu下的Apache上建立新的website,以及enable mono

    1. 在Apache下建立新的web site a. $>cd /etc/apache2/ b. $>vi ports.conf 填加Listen 8090(注意不要打开8080,因为To ...

  10. python 元类与定制元类

    1:元类 元类:类的创建与管理者 所有类的元类是type class a: pass print(type(a)) 结果:<class 'type'> 2:定制元类 类的实例化过程:(可看 ...