欢迎来到天天文库
浏览记录
ID:9911628
大小:810.50 KB
页数:23页
时间:2018-05-15
《浅析究竟什么是soa》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅析深究什么是SOA?金蝶中间件有限公司总经理奉继承博士1. 背景IT行业就是术语和缩写流行的行业,各大厂商都喜欢隔三差五地推出一些新概念。为了不落人后,大家都喜欢争先恐后地跟进。有深入研究、务实研发的供应商,能够将概念落地,不断推出创新的产品和服务,赢得竞争优势。但“贴标签”的也大有人在,而且趋势是越贴越多,跟风炒作,“鱼目混珠,泥沙俱下”,以至于“混绕视听”了。SOA就是这俱多“三字母”缩写的概念之中的最流行和热门的一个。但目前,SOA概念和解决方案,话语权方面基本上被国外巨头所控制,特别是大的中间
2、件厂商。但是真正能够完整实现SOA的落地解决方案和案例很少,刻意包装的成分比较多,特别是应用架构方面。重技术,轻方法论,造成企业实施SOA缺乏足够的架构方法、SOA治理、SOA实施运维方面的最佳实践,因此企业实施SOA缺乏系统的指导。另一方面,国内的不少软件企业,由于不能提供完整意义上的SOA解决方案,只能提供部分的组件,小部分特性符合SOA思想,所以就任意曲解SOA的含义,随意解析SOA的概念。以至于国内没有一家软件企业不宣传SOA,不宣称其产品符合SOA架构的。由此造成,许多企业和客户对SOA是非常茫然的
3、,对SOA的价值也转向怀疑和抵触。这种厂商之间的无序竞争,不利于国内企业的自主创新,也不利于企业导入和实施有效的SOA,实现SOA的商业价值。本文试图就SOA的来龙去脉,外延内涵和前世今生,来一个全面的阐释。一家之言,权作业界参考,希望带动大家做一些更深入的思考。文章比较长,如果兴趣不够,也可以就此打住。 2. 为什么需要SOASOA的出现不仅仅是厂商炒作的结果,本质上是两种力量驱动的结果:需求拉动、技术推动。业务需求的拉动,希望解决业务应用的问题;技术发展的推动,使得SOA具备了技术上的可行性,软件技
4、术的发展推动了IT创新的商业价值。2.1. 需求拉动需求拉动方面,主要来自于两种信息化的困境。一个是“信息孤岛”造成基于系统之间互联互通的整合需求;另一个是业务的变化所导致对IT灵活性,以适应变化的需求。目前国内外基本情况类似,经过30年的信息化建设,许多企业和政府部门都在不同时期、应用不同技术、与不同的厂商合作,建设了不同规模的应用系统,造成了信息化不是没有系统,而是信息孤岛太多的问题,而且不是没有数据,而是信息不一致,难以整合。因此,互连互通是当前信息化中的核心问题和核心需求。顺便说一句,那些认为中国
5、企业的信息化起步晚,历史负担少,可以快速部署全新SOA,可以运用推倒重来的策略是不了解中国企业信息化,自我想当然的结果。事实上,我国信息化无论是金融、电信、电力等大行业,还是中小工商企业,“孤岛现象”还是非常严重,遗留系统的整合不一定就少,而且我国软件供应商的系统普遍架构能力比较弱,整合难度一点也不低。这种互联互通需求,既包括企业内的各种应用系统之间的集成,也包括集团企业总部与下属企业、企业与上下游伙伴之间的业务协同。另一方面,激烈的竞争和产业变革,需要企业不断调整其组织、流程和商业模式,以获得竞争优势,造成
6、业务的不断变化,而且随着经济全球化,这种变革的步伐在不断加快。但僵化的IT基础设施难以迅速响应这种变化,造成IT与业务的不平衡和不匹配。因此,IT的灵活性以适应业务变革的需求,也是当前信息化建设过程中所面临的最大挑战。而且这方面的变革速度和变革幅度比国外许多企业都要大得多,毕竟我们的企业还是在快速成长,快速成熟的过程之中。业务灵活性的需求需要一种新的架构技术来支撑企业实现其快速的灵活应变的业务战略。传统的信息化方法和软件研发方法是基于业务需求的直接映射。这种需求驱动的信息系统最大的缺陷就是对变化的适应性差,这
7、也是传统软件工程造成的“软件危机”最直接的表现。如果要满足业务需求的柔性,就需要按照架构驱动,对业务进行适当的抽象,通过服务的表达和业务过程的原子化,来满足系统是按照企业架构来构造,这种架构是动态重构技术来支撑的,我们今天知道了,这种架构就是SOA。 2.2. 技术推动软件出现最早是用于科学计算,然后是计算机辅助设计、辅助制造等等工业应用。在企业管理领域大规模应用后,业务需求不断的变化、系统不断增加、流程更复杂、系统越来越不堪重负,出现了需求交付方面的重大挑战,以至于人们用“软件危机”来描述软件工业所面
8、临的困境。软件技术发展过程中,一直在寻求解决四个基本问题的方法:质量问题、效率问题、互操作问题、柔性构造问题。这些问题今天依然困扰着软件行业。造成这个局面的原因是异构性和标准规范的滞后。·屏蔽异构性异构性表现在计算机的软硬件之间的异构性,包括硬件(CPU和指令集、硬件结构、驱动程序等),操作系统(不同操作系统的API和开发环境)、数据库(不同的存储和访问格式)等等。长期以来,高级语言依赖于特定的编译
此文档下载收益归作者所有