存在大量关于 SOA 的讨论,但是很少就这个流行的三字母缩写词的实际含义达成一致。面对很多竞争的定义,很难揭示其真正的本质。SearchWebServices.com 宣布了一个关于其最佳定义的竞赛,并收到了大量的建议。很难选择单个“最佳”定义,因为 SOA 对不同的人具有不同的含义。
| 所处的角度: |
SOA 是 |
| 业务主管和业务分析人员 |
一组服务,它们构成 IT 资产(功能),可用于构建解决方案并向客户和合作伙伴公开这些解决方案。 |
| 企业架构师 |
一组体系结构原理和模式,用于处理解决方案的总体特征:模块性、封装、松散耦合、关注事项分离、重用、可组合性,等等。 |
| 项目经理 |
一种支持大规模并行开发的开发方法。 |
| 测试人员和质量保证工程师 |
一种模块化从而简化总体系统测试的方法。 |
| 软件开发人员 |
一种包括诸如 Web 服务等标准、工具和技术的编程模型。 |
尽管所有这些观点都绝对是正确的,但是理解 SOA 的关键是 体系结构 (Architecture) 的字母 A。难题在于,还不存在一个得到普遍认可的软件体系结构定义;软件工程协会 (Software Engineering Institute) 维护的列表有 50 多种不同的软件体系结构定义。
对于本文,我使用 IEEE 标准 1471-2000 (IEEE Recommended Practice for Architectural Description of Software-Intensive Systems) 提供的定义:
“体系结构是一个系统的基本组织形式,体现为其组件、组件之间的相互关系和与环境的关系以及指导其设计和发展的原理。”
特定体系结构的组件集和组件之间的关系被定义为一种体系结构风格:“组件和连接器类型的词汇表以及关于如何组合它们的约束集。”
Convergent architecture: Building model-driven J2EE systems with UML 中提供的更全面体系结构风格定义认为“体系结构风格是通过共同的原理和属性相关的一系列体系结构”。IT 体系结构风格既是 IT 体系结构的一种整体方法,又是一种特定方法。其整体性在于,它涵盖整个软件生命周期,包括项目和工具设计方面。其特定性在于,它合并和集成了许多在传统方法中作为单独实体来处理的结构化、过程化和描述性方面。“体系结构风格提供一个有用的合理替代选择集——并非所有替代选择——并协调它们以便良好地协同工作。”
SOA 可定义为这样一种体系结构风格,它促进了将与业务保持一致的企业服务作为设计、构建和组合企业业务解决方案的基本单元的思想。多种模式、定义设计、实现和 SOA 部署完善了此风格。
摘自:将 SOA 定义为一种体系结构风格
你的SOA是什么?
关于原文,非常值得好好读读,对于SOA会有非常好的理解。特别是使用了一段时间的EOS的时候,可以从不同的层次不同的角度,来陈述不同的SOA。
关于SOA,CTO larry的一些言语:
“随着各个企业和媒体的呼吁,SOA的概念在中国已经开始普及,由于客户业务上的增多和变化,很多以前基于指针分布式运算的架构已经远远不能满足需要,就算再接上很多软件系统以增强应用也是极其繁琐。”
“普元作为中国企业参加了SOA标准的制定,但是在其过程中发现,尽管外国的SOA技术发展已经很成熟,但是仍然缺少一个标准,标准的出现就是为了让更多的企业找到统一高效的方法,不管是买到谁的产品,标准是统一的,应用起来也就不会麻烦。因为SOA绝对不只是软件的简单整合。”
“美国开始推行SOA的时候,企业系统的建设是比较稳定的,有很多应用是SOA重复的,这也与国内外信息化进程的差距有关,在整体系统上加接SOA接口,可能只需要更改原系统的20%就能让整个架构实现SOA的应用。”
“SOA的架设就像国内外城市的建设一样,国外城市规划很成熟,加盖新楼只是进行修复,而国内的城市一般都会推倒旧楼盖新楼,城市需要重建。”
“SOA是一个开放的标准,虽然大家走的路不一样,但是结果都是对SOA的推广有好处。”
“很多大的厂商IBM等等,在SOA领域有着极高的声誉,也是SOA标准的大力推动者之一。不过我想微软可能跟我们走的路不一样。”
“也许微软的选择不是遵循SOA标准,而是在自己已经开发的系统里加上SOA标准接口,毕竟微软在客户端有着巨大的优势,在注重客户体验上微软更有经验,在系统里加上SOA接口或者是别的客户端对微软来说根本不是难题。”
“每个厂商都在市场上扮演自己的角色,虽然大家走的路不一样,最终都在推动SOA市场的发展。”
基本上,我很佩服他,还好不是崇拜。
公司的CTO发给程序员杂志,很清晰的说明了我们的SOA。
转载如下:
春天来了,SOA在哪里?
文/黄柳青
经过冰封雪飘的春节,中国的IT年度才算真正开始。国际国内的IT巨头同仁们把铲雪车掉过头来,准备开挖SOA的金矿。毕竟,SOA这颗种子在中国已经耕耘了很久,在国外已经成为平台软件的主要收入来源!然而,从目前市场的实施热度来看,离市场的宣传热度还是很有差距。电信、银行、电子政务、各行业企业管理,大家都能看到SOA的种种好处,却又无从下手。是什么因数让SOA在中国发展滞后,在中国成功实施SOA的要点又是什么呢?
第一,公司需要提升企业级的IT规划和掌控能力。看到某国际巨头对SOA的宣传,有了SOA企业应用就能灵活适应业务发展。这让我想起一则眼镜广告的笑话。某眼镜公司的广告说,戴上我们的眼镜,让您读莎士比亚!一个文盲配上了眼镜:我怎么还是不识字呀?实际上,SOA只是应用之间交互的一种工具。在国外,大型企业的IT规划是十年,几十年的稳定架构,部门级的现有系统具有较好的定义和规范。一旦有一种协议帮助企业应用进行交互操作,企业级的应用架构就成立了。而在中国,大部分企业的IT规划一般以应用为中心,IT的规范还在技术规范为主。在有的行业,早早就在总公司的级别开始了如BOSS的企业级规范,但是这些规范主要体现在模型级,而不是规格级,因而总公司的规范在各省实施不一。因为现有系统建设的随意性,即使购买了SOA的相关产品,现有的应用主体上不能包装成SOA的服务在企业级应用间通用。没有可以使用或包装使用的大量的SOA服务,SOA技术就成了文盲的眼镜,没法发挥作用。
如是说来,在大规模开展SOA实施之前,中国的企业必须改变现有的以应用项目为中心的IT规划,学习大型企业的长期IT架构规划能力。我们如果有了企业级的IT规划能力,就能规划和设计出企业的基础服务,然后开发出合适的SOA服务,逐步把现有的应用通过新的SOA体系架构来承载。
第二,SOA要从面向构件开始。中国的IT规划和建设比国际的同等企业要难十倍,因而照搬国外的技术便不能解决中国IT系统建设的所有问题。大家比较清楚,中国的同等系统的建设,IT投入是国际同类系统的十分之一,系统容量性能的要求是国际同类系统的十倍。电信公司级的数据仓库,国家税务申报系统,证券交易系统,银行柜台系统,等等,其容量和性能都是国际上没有的。
这个十倍的难度,更是体现在业务变化的能力:中国的IT系统的灵活度和变化度要求是国际同等系统的十倍!当我们尝试用SOA服务作为IT规划的基础架构的时候,我们每每发现,我们没有办法设计出固定的SOA服务,因为我们的银行、电信、税务从核心业务的角度来看,还是处于发展和变化的过程中。国际主流的企业模式,是在稳定的社会大环境中发展起来的,业务架构不会有太多不可预见性和变化性。但是中国的电信行业很快将有新的整合,金融业务不断开放有新的业务出现,税收还有很大的税种现在还没有开始征收,我们怎么可能规划出一套完备的SOA服务呢?
如果我们把SOA服务的标准性、开放性应用在构件的层次上,我们发现,就像企业级的业务变化可以通过SOA的组装完成一样,SOA的服务的灵活性可以通过构件的组装来完成。虽然我们不可能为企业现在就设计出一套完备的SOA服务体系,但是我们现在可以为企业设计出一套完备的构件体系。有了这样一组构件,SOA的服务就可以快速的开发,灵活的变化,企业级的业务也因而快速实现。从而我们就实现了中国企业业务变化的加速度!
自从我们普元软件加入OASIS国际标准组织并成为核心会员之后,我们大力参与了SCA、SDO等标准的建设和推广,以及相关的Tuscany开源项目。SCA、SDO用构件的理念让SOA的服务组装在一个图形化的界面完成,变得非常容易和流畅。在普元EOS产品中,我们使用和SCA、SDO完全对称、一致的方法,实现从构件到SOA服务的组装。有了这样的平台,企业级的应用可以从面向构件开始,快速实现业务变化和企业发展。
去年开始,我们也在一些大型企业,比如五大银行之一,开始面向构件的企业级SOA规划,已经取得了诸多成果,并得到客户的认同。只要从国际主流的技术,发展出能够适应中国独特的业务变化加速度的产品,从面向构件开始,SOA即将成为中国企业IT建设的主要手段。
这篇不是软文,而是字字千金的总结。高度,真是决定视野。
google普元的SOA,这或许能成为最标准的答案。