当前位置: 首页 > news >正文

2010应用年:SOA是非中走向成熟

距离Gartner提出SOA已十年有余。2009年伊始,SOA将死的言论被炒得沸沸扬扬,许多人开始质疑SOA当初被期待的“大规模降低成本和增加机动性”的美好愿景。有分析师认为,理想过于美好,现实终究残酷。然而SOA被质疑是否就真的表明SOA已死?以我个人的经验来讲,我比较看好InfoQ最近关于SOA的一项调查,调查显示SOA依然在大踏步前进着,并且正在从技术推广初期步入纵深发展阶段。以SAP为例,现在已经有超过1200个客户在SAP的业务流程平台上使用SOA,可以预见,SOA正从概念炒作回归到脚踏实地的业务应用中来。联合、复合、整合将成为2010 SOA业务应用中的关键词。


联合创新应用


过去一年的经济危机历程,使我们更关注“联合“的重要性,在这个全球经济的联合合作中,无论政府、组织还是企业,注重的事情无非是两方面:降低成本、提升敏捷性。而这两点,正是SOA的精神所在。大量的案例证明,SOA的精神和思想已经融入到千万个具体的项目中,通过降低跨边界的成本帮助企业寻求业务网络上的优化。

SOA就是要搭建一个联合创新平台,提供更多创新可能。在工业化运作模式中,以汽车工业为例,同样的一个技术平台上,众多的厂商能够做出各具特色的产品。SOA就提供类似的基于标准的创新平台。因为是基于标准的,对整体而言零件是互换的,各个厂商可以专注各自的领域,做轮子的做好轮子,做车身的专心打造车身,按照标准统一组装,就是消费者要的整车了。如果是手工作坊的运作,势必要求所有的厂商都重复的从发明轮子开始做创新,然后才有可以交到用户手里的整车。在软件业,标准化零件迄今为止最成功的案例就是微软的COM组件,视窗系统中的COM组件标准,培养了成千上万的独立软件供应商,也成就了视窗系统为应用最丰富的操作系统。这就是基于标准的联合创新的魅力。SOA搭建的平台作为行业标准,因为跳出了对单一厂商的依赖,会有更加广阔的独立软件供应商基础,它所要成就的是互联网上的丰富应用。


此外,联合的创新平台不仅仅是技术层面的,更重要的是业务层面的知识聚合和联合创新。SOA为业务专家和IT技术人员合作创造了条件。如果把创新比作是知识和知识的化学反应,那么SOA的平台好比是起催化作用的酶,让原本不能或是至少是不太容易化合的分别来自业务专家和IT技术人员的知识,能够有效聚合产生创新的化合物。把这种知识的聚合,延伸到整个企业应用软件行业,可以看到通用解决方案和行业解决方案的合作。随着SOA平台的推出,通用解决方案和行业解决方案能够更好的融合,作为补充的行业解决方案不用像原来打补丁的方式,而是通过SOA标准更好的和通用解决方案融为一体。做行业方案的独立软件供应商能够利用通用解决方案的客户基础,对更多的用户渗透。双方解决方案的融合,或者说是知识的聚合,创造出的是更加贴近用户需求的双赢结果。


如果再深入的看待联合创新的机会,它不仅会发生在软件产品的创新上,随着SOA的引入,整个软件从生产到交付的价值链上都存在创新的合作。譬如:SOA平台上,软件更加容易作为服务提供Software as a Service, SaaS),就是在软件交付模式上的创新,也是软件研发厂商同软件用户之间关系的创新。从根本上来讲,SOA引起的软件产业商业模式转变,为软件从产品,到服务,甚至价值链上下游之间的关系,都提供了联合创新的平台。比如,SAP NetWeaver就是一个开放的平台,为独立软件开发商(ISV)开辟了一个新的开发空间。而且,它确实已经让一些敢于尝鲜的用户受益。位于伦敦的全球第一大饮料罐制造商Rexam PLC公司,正采用NetWeaver技术,彻底改造其生产管理流程,直接将供应商和自己的生产第一线连接起来,让供应商通过互联网随时跟踪库存情况,在铝卷库存不足时,能及时供货。这一措施让RexamPLC公司将其最昂贵的零部件库存削减了一半。在联合创新的平台上,要突破产品创新局限,看到创新更丰富的含义。


复合应用


复合应用其实是随同SOA的概念逐步进入人们的视野的。众所周知,企业信息系统预算中最大的一块花费就是集成(Integration),成熟的用户已经不满足于传统应用程序包含的固定业务流程,他们对业务流程创新的渴望,是仅仅具备有限定制能力的应用程序无法满足的。而复合应用正是为了帮助解决这个问题应运而生,这里所谓的复合就是对现存应用系统功能的集成。这种复合应用的框架和工具非常符合SOA的过渡时期,让企业在慢慢过渡到完全的企业级面向服务架构过程中,在复合应用的实施中快速获得回报,逐步展现快速应对业务变革的业务应用柔性。


即便是复合应用的部署,也可以分为不同的层次,逐步深入。目前企业中复合应用对异构平台信息 集成的基本用例是把信息从异构平台的信息源收集起来,然后通过网页浏览或者网络门户的方式展示,进一步提供信息的向下挖掘(Drilldown)。这种应用对用户显而易见的好处就是把分散的信息集中展示,方便信息获取和分析处理;相对其它集成手段,复合应用能更加快速的创建和维护,对业务变革做出快速响应。相对于信息收集的应用集成,复杂的复合应用就要涉及到信息在不同应用系统中的流转的操作,也就是实现工作流。其中比较简单的工作流复合应用依次更新单独的应用系统中的业务对象;而相对复杂的工作流复合应用要求同时对不同应用系统中相关的业务对象实现同步更新,这就涉及到如何保证更新事务(Update Transaction)的完整性。有关长程事务(Long-term Transaction)的问题,至今没有一个满意的标准共同参照。对于企业实际运用而言,姑且把这些悬而未决的东西搁置一边,利用现有的技术做复合应用的部署,不仅从效益上,而且从士气方面,鼓舞向企业级SOA转变。


复合应用的成果还是令人欢欣鼓舞的,我们发现随着SOA涉入越来越深入,复合应用的运用反而需要越少的投入,更加迅速的产生更大的收益,同时能够部署和实施的复合运用层次也越来越高。在深度企业级SOA的基础上,由于服务模块封好,同样的复合应用只需处理更少的非标准化接口,应用变动柔性更高,也帮助降低维护成本。由此可见,企业级面向服务架构的逐步完备和复合应用对加速业务变革的作用是一个互为增益的良性循环。


整合应用

现在,从我在SAP了解到的情况看,基于SOA的应用层出不穷。而这些应用正如当初预计的一样,是多个厂商合作创新的复合应用(Composite Application),SOA搭建的联合创新平台是这种协作的基础。对IT而言,其中的关键之一是让信息系统跨越边界(Beyond the Boundary),在企业网络上运作无间。复合应用和联合创新应用的整合就是要降低跨越边界的成本,用抽象的系统功能以标准的接口方便跨越企业边界。以海尔集团为例,海尔拥有分布在全球的13个贸易公司和13个海外的工业园,而公司的制造基地同样也是遍布全球。如何实现产品的全球创新与协同就成为一种挑战。为了实现全球产品创新,PLM(产品生命周期管理)提供了很好的支持,但过去,PLM总是被作为一种单个软件的应用,而不能更好地适应企业对于协同的要求。在IT系统逐渐转向SOA的趋势下,建立在SOA基础上、跨专业、跨项目阶段和计划的真正集成化的PLM成为关键。事实证明,基于SOA的PLM可以降低部署和维护一个分布式PLM环境的成本和复杂性,很好的支持了海尔的全球创新和更新换代。所以,越来越多的企业应用产品开始按照SOA去构建,因为这让企业“拿来即用”成为可能。这里还有加成效应,随着SOA架构的广泛部署,跨企业的信息系统协同变得越来越方便。

SOA死了吗?就概念炒作本身,或许是。但我们应当欣喜地看到越来越多带着SOA烙印的应用产品的出现,并确确实实把跨企业边界的信息系统带到一个新的高度,不管它们名字是不是包含SOA这三个字母。

相关文章:

  • sql索引
  • 午夜搬运工
  • 学会批处理,用心学很容易!
  • Oracle数据恢复:格式化、ASM及字典损坏案例三则
  • 如何让Visual Studio 2010支持HTML5和CSS3
  • 关于浮点数的小常识
  • 某店铺收银系统开发过程中出现的几点问题
  • phpmyadmin修改密码后无法登录,怎办? ZT
  • 动态 MMap 没有空间了。请增大APT::Cache-Limit 的大小
  • 推荐程序员看的书
  • 重装系统的问题
  • PHP用set_error_handler()拦截程序中的错误
  • Linux必学的60个命令
  • zt:Silverlight 4中四种多线程编程技术
  • 结构体的伸缩数组
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Babel配置的不完全指南
  • Java Agent 学习笔记
  • laravel5.5 视图共享数据
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • webpack+react项目初体验——记录我的webpack环境配置
  • windows-nginx-https-本地配置
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 后端_MYSQL
  • 你不可错过的前端面试题(一)
  • 前嗅ForeSpider采集配置界面介绍
  • 使用 @font-face
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • Android开发者必备:推荐一款助力开发的开源APP
  • linux 淘宝开源监控工具tsar
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #1014 : Trie树
  • $.ajax()参数及用法
  • (09)Hive——CTE 公共表达式
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4)STL算法之比较
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)3D模板阴影原理
  • (转)为C# Windows服务添加安装程序
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET上SQLite的连接
  • @font-face 用字体画图标
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [20161214]如何确定dbid.txt
  • [2669]2-2 Time类的定义
  • [AX]AX2012 SSRS报表Drill through action
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [BZOJ4010]菜肴制作