面向服务架构十大技术与基础理论

字号:  小  中  大  | 打印发布: 2009-4-03 10:18    作者: 网络转载    来源: 硅谷动力    查看: 1190次

  实践论认为:从实践提升到理论,再由理论指导实践,由此向前发展。目前SOA的发展的情况正是如此,通过不少实践, SOA的模型己经被公认为标准规范,目前是正需要进一步总结上升到理论的时候了。

  当前国内要发展SOA主要有三方面工作:方法、工具和环境。方法是工程技术,由基础理论来指导提出的。所以一门科学必需要包括:认知科学(哲理)、工程技术和方法、最后是理论。

  SOA是从面向对象、构件架构等逐步发展完善,且相互依托、相互补充、又各自适应不同范围,因此在讨论SOA理论时,要了解它是如何演化过程来,继承了那些理论体系,其适应度如何。

  SOA的第一个技术与理论体系为结构编程方法

  40年前国际上发生了“软件危机”,如IBM公司开发一个操作系统、或美国的航空公司开发飞机订票系统,都花费了上千人年的工作量,开发周期长、而开发出来的产品却是错误很多,难以维护和适应修改。正在此时,一位荷兰的物理家E.W.Dijkstra提出了一种“结构程序设计方法”,他认为:人的智力是有限的,采用数学或物理学的思维方法,用枚举、抽象、归纳、类比等思维方式简化问题。由于我也是数学系毕业的,我拜读了他的所有论文,就编写一本着作“编程方法学”,此书曾三次获得着作大奖,并在全国十多所名牌大学讲过课。用此方法扩展到软件设计中时,称为“结构化分析和结构化设计(SASD)”。

  所谓“结构程序设计方法”,就是基于面向对象设计方法的早期蓝本,侧重於解决程序正确性的编程的方法,以此为基础建立了软件工程这门学科,建立了编程的基础理论体系。

  解决软件开发效率的第二个基础理论体系是“面向对象”的可重用理论

  我们都知道由面向对象发展到面向构件,由面向构件再发展到面向服务,因此它们的认知观和基础理论都是息息相关的,解决大型软件的开发效率和质量除了要解决编程的正确性外,还必需解决开发周期长、复用性差、成本高、文档多、以及难以适应系统演化等问题,十多年来仍旧困惑着这门学科,“软件危机”仍未解决。

  人们的知识是从一个定理、一个原理逐步积累起来的,社会是依靠知识的不断积累发展的。然而编制软件每次却都是从零开始,这是造成“软件危机”的根本原因。由此提出了编程工作是否也可以重用以前成功的经验和程序呢?。整整经过十多年的探索,到七十年代才获得成功。

  我用此方法设计了一个大型操作系统,这套方法和理论在产品开发和科研领域方面用得很多,因此我称它为第二个技术与基础理论。

  SOA的第三个技术与理论体系是UML统一建模语言

  鉴于面向对象的缺陷, 三位面向对象的奠基人联合起来,创建了UML统一建模语言。UML为软件开发和SOA的产生起到奠基和里程碑的作用。

  UML主要理论成果是:①统一面向对象的基本概念,并引进了许多新的概念,②认为软件开发的过程实质上是从抽象的模型逐步细化,过渡到具体的实现,其中间的每个阶段都是实现了某一抽象模型,UML为此提供了建立模型的工具,用直觉的图形来建立模型,从此软件专家就有了自己的工具,正如音乐家有了五线谱工具那样;③为适应软件的多变性,提供了演化的概念。

  实际上此建模理论是第三个技术与基础理论,它为演化到构件和架构概念奠定基础理论模型。

  第四个技术与基础理论是构件架构

  由于这种OO方法真正用于实际工程中开发的应用软件却很少见到,工程上的实施缺乏开发规范;在技术上要术开发人员的素质较高;最大的问题是被开发出来的软件难以演化,而软件要能适应变化是客观存在的。

  为此发展出单纯重用的“构件和架构”技术及其理论体系。在1998年日本京都召开的“基于构件的软件开发(CBSD)”国际专题学术会议上,一致认为软件开发技术离不开构件和体系结构。软件体系结构现简称“架构”。

  在此之前的软件架构都采用层次结构的架构,直到分布式系统提出了用户端/服务器模式后,才产生对架构的研究,出现了构件和架构。

  卡内基。梅隆大学为软件的架构和框架建立了扎实的基础理论,软件体系结构是软件系统的高级抽象,体现了软件设计思想,反映了系统开发中最早的决策,明确了系统有那几部分组成,它们之间是如何交互的;进一步影响到资源的配置、团队的组织以及产品的质量。系统的成败在于体系结构。构件架构技术和理论创立了架构师,是目前最吃香的软件工程师的职称。

  分布式系统的三层体系结构及其中间件是第五个技术与基础理论

  三层体系结构是由二层结构的胖终端中的应用构件独立出来组成了应用层。为解决分布式系统中的各种潜在复杂性,提出了中间件技术及其理论。

  我参与了国产网络版CIS课题的开发,由于采用了这种结构,获得了极大的成功,广州地税的数据大集中,银行的通存通取、机票订票、电子商场等都是在国内获得成功的实例。

  面向服务架构被广泛接受绝非偶然

  八年前我的最后一位博士生王文军的学位论文是“分布式系统的联邦结构”,即面向服务的架构,但未被应用和发展,而二年前IBM公司提出SOA后却很快被广泛接受,其原因可从客观需求上和技术成熟度上二方面来叙述:

  ⒈客观上需要

  随着网络普及化,越来越迫切需要将现有多个应用系统集成,以能实现更强的信息处理功能。如电子商务的供应链、智能交通、电子政务、数字地球等已是本世纪发展的热点。Gartner Group预计,到2008年基于件产品将占领70%的市场份额。IDC预测到 2007年,基于SOA的支撑平台、应用软件等相关市场将达到210亿美。我预言今明二年将是国内IP行业的发展热点。

  ⒉面向对象和构件架构的基础理论和技术已趋向成熟,发展到统一建模语言,提供建模工具;中间件集群理论己趋向成熟,并提出了中间件inter bus技术;

  ⒊浏览器技术普及,己成为行业标准,奠定了SOA的基础理论和技术规范,由此巳是水到渠成,使SOA拙壮成长。

  SOA实现中的组成部分

  SOA的体系结构仍旧是三层或N层结构,但对异构平台各层之间的联系,不是用CORBA、J2EE或。NET的方式,而且用WBDL和SOAP来实现,概念简单统一,目前都是采用嵌入ESB企业服务总线的平台来实现,ESB是一个中间件群,确保系统实现了服务接口、各种中间件以及松耦合的三个方面功能,因此称它为第六个技术与基础理论体系。另外,普遍采用BPEL(业务过程执行语言)来描述用户需求,由BPM(业务过程管理平台)来解释执行,就构成了第七个技术与基础理论。

  SOA的主要优点

  ①利用现有的资产。方法是将这些现有的资产包装成提供企业功能的服务。组织可以继续从现有的资源中获取价值,而不必重新从头开始构建。

  ②更易于集成和管理复杂性。将基础设施和实现发生的改变所带来的影响降到最低限度。因为复杂性是隔离的。当更多的企业一起协作提供价值链时,这会变得更加重要。

  ③ 更快地整合和现实。通过利用现有的构件和服务,可以减少完成软件开发生命周期所需的时间。这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和缩短开发时间。

  ④ 减少成本和增加重用。通过以松散耦合的方式公开业务服务,企业可以根据业务要求更轻松地使用和组合服务。

  ⑤ SOA 业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时期的需要。

  国外发展情况

  IBM公开宣布仅三年不到,去年年底,BEA公司、甲骨文公司、惠普等所有名牌公司都在中国召开了SOA发布会。

  由于SOA模型统一,因此都是把本公司的中间件产品向SOA靠,提供开发和运行SOA系统的相应工具和环境,以争取市场的份额。

  国内发展情况

  正邦高科信息技术公司是国内最早采用SOA技术之一,开发了上海证卷公司的管理系统。中和威公司开发了ESB的SOA运行平台的产品。但国内企事企单位大多还处于观望阶奴,具体应用还刚刚开始。

  北京市市科委将支持SOA提供研发资金,由软件行业促进中心统一管理,促进北京市IP行业发展,其方案如下图:

  为SOA应用需建立相应的软件开发方法和规范

  第三个构件构架理论体系的应用是适用于构件技术的创立的,当发展到面向服务的体系结构时,必需加以修改和扩充,现在称为模型驱MDD动的需求工程建模理论,称它为第八个技术与基础理论体系。另一个构件的领域工程将要扩充成SOA的参考结构,第九个技术与基础理论体系。SOA的门户将要反映SOA所有功能的表现层界面,为此如何将最新的WEB2.0与SOA给合,这是第十个技术与基础理论体系。上述三方面是SOA在实际应用时必需要建立的理论和技术。

  后语

  随着SOA理论的发展,各种与SOA有关的规范和标准将不断出现,如SOAP、WSDL、ESB、 BEPL语言等,它们的出现象征着SOA将逐步走向成熟。我们更应注意着各家公司所开发的工具和环境产品,有助于SOA的大力推广应用。

  上述十大理论体系应该认真掌握、灵活应用,更应该不断刨新。总之:SOA理念清晰、技术趋向成熟,实现不难、做好不容易,我们不要做重复工伥,经常交流,尽少重覆,一定能达到国际一流水平,振兴我国IP行业。

案例研究——ArcGIS Server, IBM WebSphere Process Server和保留商业信息系统

http://www.gisall.com/html/90/n-390-2.html

面向服务架构

http://baike.baidu.com/view/6545280.htm

转载于:https://www.cnblogs.com/sqlite3/archive/2012/02/21/2566754.html

面向服务架构十大技术与基础理论相关推荐

  1. 论面向服务架构设计及其应用

    在准备架构师考试过程中发现可供参考的论文范围非常少且内容陈旧给学习带来很大烦恼,通过考试后把我准备的论文共享出来水平有限但内容格式迎合考试,希望给大家一个参考.范文以"论面向服务架构设计及其 ...

  2. 软考高级系统架构设计师:论面向服务架构(SOA)设计及其应用

    软考高级系统架构设计师:论面向服务架构设计及其应用 一.连接服务 二.协作服务 三.业务服务 四.业务流程服务 五.交互服务 六.信息服务 面向服务架构(SOA)是一种应用框架,将日常的业务应用划分为 ...

  3. 华为徐文伟:后香农时代,面向数学的十大挑战问题

    本文为2020年8月28日徐文伟在长沙由中国工业与应用数学学会举办的"数学促进企业创新发展论坛"上的发言 来源:中国科学院院刊 徐文伟 华为技术有限公司董事,华为战略研究院院长 后 ...

  4. 【观察】从新华三2022十大技术趋势,看数字化如何重塑未来社会

    众所周知,"数字经济"自2017年政府工作报告首次提及至今,已多次被写入政府工作报告,意味着数字经济已成为当下经济发展中的核心主线. 不仅如此,今年年初,<"十四五 ...

  5. 2021年信息产业十大技术趋势

    在中国电子信息产业发展研究院主办的首届赛迪产业经济论坛上,中国电子信息产业发展研究院电子信息研究所所长温晓君发布了<2021年信息产业十大技术趋势>,涉及自主可控.集成电路.人工智能.软件 ...

  6. 2020信息通信产业十大技术趋势发布

    2020信息通信产业十大技术趋势发布 2020什么技术影响我们商业?什么技术又会改变格局?身处技术快速迭代浪潮之中的我们,在5G.智能时代又有哪些新的技术在通信产业发生?又有什么趋势让我们必须把握?, ...

  7. 中国十大技术区都知道哪些

    原 中国十大技术社区你都知道哪些? 社区是聚集一类具有相同爱好或者相同行业的群体,IT技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友, ...

  8. 人工智能:2020的十大进展+2021 年十大技术趋势

    2020年人工智能十大进展 2020年,AI热潮仍然汹涌,应用前景依然广阔.在这样一个时间节点,我们从科学.系统.算法等层面总结出AI领域的十大进展,分别如下: 进展1:OpenAI发布全球规模最大的 ...

  9. 中国移动段晓东:锚定算力网络十大技术发展方向,实现算力网络高质量发展...

    近年来,随着5G.人工智能等新一代信息技术的应用普及,数字经济发展速度之快.范围之广.程度之深前所未有.算力作为数字经济的核心生产力,将直接影响数字经济的发展速度,影响社会智能的发展高度.日前,移动L ...

  10. 前沿观察 | Gartner:2020年数据与分析领域的十大技术趋势

    来源:金融科技研究 本文约2000字,建议阅读5分钟. 本文为你介绍数据与分析领域的十大技术趋势. [ 导读 ]近日,Gartner发布了数据与分析领域的十大技术趋势,为数据和分析领导者的新冠疫情(C ...

最新文章

  1. Pandas简明教程:六、Pandas条件查询
  2. 机器学习实战读书笔记--朴素贝叶斯
  3. Liunx 常用命令 (几乎包含所有了)
  4. ux和ui_设计社交餐厅策展应用程序— UX / UI案例研究
  5. 调试 ASP 程序脚本
  6. Linux 格式化磁盘命令mkfs
  7. python人脸识别程序如何嵌入到app_只用Python就能写安卓,简单几步实现人脸识别的App...
  8. “生而强悍” vivo iQOO官宣3月1日发布
  9. 杭电2112HDU Today(map 最短路径)
  10. 苹果修复今年以来的第13个0day,影响iOS 和 macOS
  11. 影响搜索引擎收录网站内容的四大原因分析
  12. [leedcode 169] Majority Element
  13. WIN10+ubuntu16.04双系统卸载重装
  14. 大一c语言论文700字,大二学年学生自我鉴定范文700字
  15. css实现固定宽高比例的div
  16. 一文带你熟悉android的smali语法一
  17. 【行业秘密公开】所谓的QQ刷钻业务
  18. python读取oracle数据库性能_python 连接oracle数据库,报错解决,pandas读取。
  19. 苏宁云宣布下线公有云服务!
  20. Spark Shell 的使用

热门文章

  1. printf()语句
  2. [转]几种图像处理类库的比较
  3. [转]Visual Studio 各版本区别
  4. [转]installshield for VC++6 如何使用
  5. H5(仅仅是个地址)
  6. js并列排名之div图片加载
  7. HTML table 标签的 summary 属性
  8. c++ __declspec
  9. 一张图解释IaaS,PaaS,SaaS
  10. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十四】