SOA,面向服务的体系结构(service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。
SOA的基本特征
SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化重用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:
—可从企业外部访问
—随时可用
—粗粒度的服务接口
—分级
—松散耦合
—可重用的服务
—服务接口设计管理
—标准化的服务接口
—支持各种消息模式
—精确定义的服务契约
实施SOA可能带来的主要优势有五点:
1、SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。
2、SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。
3、SOA具有低耦合性特点,增加和减少业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。
4、SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。
5、SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论:
当企业从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
当企业业务发生缓慢变化并可预见到将来需要重构业务系统时,由于可以按模块分阶段逐步实施SOA以适应变化的需要,这样企业不需一下投入一大笔经费进行系统改造,而是根据企业业务发展情况和资金情况逐步投入,缓解了信息投入的压力。
但是,SOA并不是天上掉下来的馅饼,企业要实施SOA必须具备一定的条件,否则很难实施成功。SOA会给企业信息设施和管理带来以下4方面的挑战:
1.人才的匮乏
OA是近年来才出现的新概念,懂得和深入了解SOA的人不多,SOA专家更是寥寥无几。企业需要的SOA人才,要有SOA架构师,以及熟悉SOA的开发技术人员,同时各SOA应用部门的关键人员,也需要理解SOA的内涵以实现与业务的结合。
2.开发平台和开发工具的选择
实施SOA对开发平台和开发工具没有特别要求,这给企业对平台和工具的选择造成了盲目性。对于不具备丰富实施经验的企业,很有可能选择到最终不适合自身发展需要的平台和工具。这要求企业既要对各开发平台和工具有深刻的了解,又要对自身业务及发展方向有深刻的了解。
对于SOA开发工具来说,总的要求是能够“多快好省”的满足企业实施SOA的需要。虽然一些企业已经推出了SOA开发工具,但还未看到其中有相当成熟的“王者”出现。
3.技术环境的限制
SOA可通过互联网送达到每个角落,这同时也要求了强大的送达能力。在现实网络环境中,送达能力由于带宽的限制往往是达不到的。
松耦合往往提高调试的难度,这是笔者的观点。最紧的耦合就是所有代码都在一个过程中完成,一旦发生问题可立即追踪的问题点。采用面向对象的开发后,尤其是程序跨进程后,耦合度大为减低,但程序发生错误后要花更高的代价才能找到问题点。当采用Remoting、Web服务及分布式处理后,耦合性进一步降低,但调试难度也越来越高。实施SOA也会面临这个问题,众多的分布式服务,到底是哪一个出了问题,很难确认。问题往往在若干步后,经过了若干服务才体现出来,要最终到问题的源头非常困难。
网络的不稳定性会对SOA系统造成影响。随着时间的增加及数据量的增加,影响程度可能会逐步加大并达到很严重的程度。
4.安全性的影响
松耦合可能会给攻击者找到漏洞的机会。当整个SOA系统节点众多业务复杂时尤其会给攻击造成可乘之机。
数据安全性也难以得到保证,某些关键性数据可能会在非预期的节点流出。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
购买应用集成工具可以采取平衡做法
购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。
-
API管理工具能否弥补REST与Web服务之间的鸿沟?
随着企业学习如何通过RESTful利用现有服务,API管理工具正在引起轰动。API管理工具能否弥补REST与Web服务之间的鸿沟?
-
支付宝分布式事务测试方案
基于SOA架构,整个支付宝系统会拆分成一系列独立开发、自包含、自主运行的业务服务,并将这些服务通过各种机制灵活地组装成最终用户所需要的产品与解决方案。
-
智能流程应用:为您带来全新的业务流程
过去的十年里,许多企业一直将应用程序变革集中于横向工具和软件的使用。面向服务架构、企业服务总线、应用程序生命周期管理以及沟通一致性都验证了这种变革趋势。