原文地址:http://www.infoq.com/articles/Cloud-Realigns-SOA
试译,如果有不合适的地方,请指出
面向服务的架构(SOA)从出现开始,就成为企业架构师,解决方案架构师和应用程序架构师之间意见分歧的平衡点。企业架构师认为SOA作为一种商业创新,能够指导对信息技术资产的投资以及资产如何与企业的目标和使命相关联。解决方案架构师把SOA视为一种手段,能通过松耦合和细粒度的服务更快地提供解决方案,并加速构建。应用架构师把SOA当做一种基础框架,基于其提供的服务接口发布应用程序。显然,无论何种观点,SOA都专注于软件架构的领域,直到云计算的到来。
SOA的起源
关于“基于服务的架构”一词的发明者,至今依然争论不休。但是一份2003年高德纳(Gartner)公司报告引用了一份1996年该公司的报告,其中首次提出这一概念,并介绍了一种将Web服务技术作为组件的软件架构。Web服务技术起初设计目的是为生产者和客户的网络定义接口。尽管表面上看来这只是下次IT会议的夜间谈资,但是清楚地表明了业界关于SOA的优势已达成了共识,即简化部署和软件管理。
然而,早在2003年之前,SOA的架构优势已被分布式计算领域的专业人员所认可,或已被用于开发分布式应用,而不仅仅是作为软件架构。事实上,早期的Web服务技术,如分布式计算环境远程方法调用(Distributed Computing Environment (DCE) Remote Procedure Call (RPC))和CORBA,都强调了一种将生产者描述成“服务器”或“服务”的设计方法,使企业能够开发可访问网络的业务服务。
HTTP和XML的出现简化了这种服务的开发,使其能够被更广泛的开发者接触到。事实上,有些人认为DCE RPC 和CORBA十分难掌握,且需要高昂的费用来部署和维护。Web服务能够让类似PHP脚本开发者很方便的使用,使其得到很广泛的支持,这在HTTP和XML出现之前是不可能的。
无论怎样,任何一个努力尝试将其IT工程与SOA相结合,希望感受SOA的新奇和成功的开发者,都将得到资源和支持。对SOA的炒作对行业有很多影响:
*SOA成为了包罗所有IT相关的工作和成果的代名词;
*SOA一词被多个企图垄断服务/产品消费市场的团体所把持;
*对SOA资源需求暴增,但由于SOA发展环境的不明确,使企业难以辨别适当的资源,这就使得服务供应商的经验成为企业做出决策的主要因素。
炒作的结果就是,它很快就成为浮云,因为企业马上认识到SOA不是应用开发方法,而是关乎架构。与创建一个服务相比,更重要的是哪个服务被创建了。那么,有了这些经验和教训,为什么我们能更容易看到云计算在重复这个趋势呢?
噢,接下来是另一个新潮的词儿
云计算中,主要的抽象层次是服务模型,它描述了提供云服务的方式和类型。讨论云计算时,有三种最常见服务模型:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。服务模型的定义中包括了价值、风险和角色的属性。
在IaaS中,客户能够以操作虚拟机实例或存储空间的方式获取计算资源的使用权。一旦用户被创建,用户可以选择虚拟机中的任何操作系统,也可以将任何数据上传到存储空间中。通常情况下,服务提供商按照客户使用的空间和时间来收费。同时,客户需要保证其部署在IaaS上的服务的安全性和可用性。
在PaaS中,客户需要一个能够保证其应用安全和可用性的平台,同时希望在他们部署的应用平台中看到操作系统和存储的细节。换句话说,PaaS服务商需要保证应用的适应性,根据客户的需求提供存储空间,并且做好平台的访问控制。因此,需要不同的服务时,客户的关注点不同。
SaaS中,客户仅仅需要关心服务的性能和安全,SaaS服务提供商对安全性、可用性、数据管理和响应进行完善的保障。这些本应由客户解决的繁杂操作转移给了SaaS服务提供商。
有一个观点是信息技术的发展是一个积累的过程,将掌握的知识从一个阶段扩展到下一个阶段,但事实上并非总是如此。不幸的是,尽管云计算完全专注于提供服务,但是看起来依然和SOA中积累的经验没有太多的重合。同样的,在云计算中的某些问题,在如今的SOA中依然存在。
SOA和云计算:经验的分享
在最近的一次在圣迭戈的云计算会晤中,来自大型厂商,中型财团和银行业的IT主管们参加了一次名为“对于业务,云计算是否足够成熟”的座谈会,他们将问题转移成“对于云,业务是否成熟”的问题上。有趣的是,这些已经运用云计算的案例是以业务为指导的,而不是以信息技术为指导的,很多案例甚至没有用到信息技术的指导和允许。不幸的是,云限制了IT界从SOA中吸取经验和教训的能力。在90年代的LAN发展时期,由于迎合企业的需求而缺乏IT技术的支持,发生过同样的情况:企业管理者将云计算当做是避开IT技术限制的方法,以此更快的提供服务和提高生产力。
事实上,身为企业高管职业生涯发展与策略顾问公司Valudance 创始人、Taco Bell 前任 CIO 、百事连锁酒店CFO 的Susan Cramm觉得,“CIO们过去需要处理有时很棘手的IT项目,而今他们只需要一张信用卡将预算付给服务提供商,就可以享受相当于好几个IT部门的服务。事实上,只要维持IT正常预算的65%,就可以向云或者SaaS服务商购买相关服务,而不用走IT部门的程序。”(Fogarty, 2011)
云的扩张所产生的连锁效应是,从SOA中获得经验包括互操作性、架构、管理和重用等往往不能应用于云计算时代,而IT技术只用于处理集成、数据管理、灾害恢复和用户管理问题,而这些可能用现有方案就能解决。此外,在选取云的解决方案时没有考虑更宏观的企业架构,这样将不能保证哪些云服务与现有IT资源最匹配。长此以往,将导致更高的集成和数据管理成本,将业务转向云端将不能节省任何开支。
最终,无论是SOA还是云计算都面临同一个问题:"什么是服务,如何交付服务?"那些尝试使用SOA进行应用开发的人员认识到,尽管理解SOA低耦合、管理和粒度的原则十分重要,但是首先也是最重要的还是理解SOA的架构。例如,一个涉及大数据量的方法调用的接口,可能是用SMTP实现而非HTTP实现,这说明SOA解决方案可以考虑成组合的服务共同协作完成一个任务。
通过SOA成功的业务往往用下面的方式描述SOA:
*SOA关乎客户和生产者之间的交互和关系。
*定义适当的服务粒度,往往是最困难也是最艰巨的任务。
*服务应该满足业务需要。
通过采用云计算获得成功的业务往往将云计算描述成:
*能够快速满足业务需要,而不需要将开销花费在管理一个类似系统。
*只需要对使用和需要使用的资源付费。
*转换成基于云的解决方案能够节省开支。
有趣的是,这些观点就如硬币的两面。SOA的成功是站在服务提供商建立并提供服务的角度,而云计算的成功是站在消费者的角度。这说明,云计算的成功是建立在如SOA这样的概念提供的高质量服务的基础上的。因此,SOA实践者的关键是实现可用、可靠的服务,这种服务关注的层面远在技术开发之上。
SOA能从云计算中学到什么
在云计算中,客户对服务提供商的期望通过服务级别协商协议(SLA)得到满足。SLA规定了当客户订购一个开发者的服务时,客户在服务正常运行时或故障时的期望所得,以及相应的技术支持。基础设施和操作部门的人员应该十分熟悉这样的协议,因为这些协议在从电信运营商获取电信服务(如网络和电话)时扮演了至关重要的角色。然而,尽管这些协议在任务关键系统中扮演重要角色,SLA在SOA中的使用依然很少。
可能这是SOA成熟度的问题,或者说我们的SOA还不成熟,但是,交付关键业务服务的时候,应该考虑用户希望通过IT技术得到什么,并确保这些服务的可用性。然而,因为大多数服务都是内部使用,运营和IT管理对外部服务供应商的期望和约束就不会施加在内部的服务上。
另外,大多数情况下,信息技术本身就是SOA服务的客户。也就是说,SOA提供的服务是通过Web应用来访问的软件服务,它们也是IT为业务开发和提供的。因此,IT部门或许会认为为这些服务定义SLA是不合理的,因为他们是这些服务的唯一客户。然而,这种观点损害了IT和终端用户的信心,并且加剧了企业内部的不信任。如果任何一个底层服务失败了,就会影响Web应用的可用性,最终影响终端用户的感受。因此,Web应用是SOA交付的一个组成部分,而不是单独和区分开来的,应该用SLA来保证组件的可用性。
当2011年4月位于弗吉尼亚北部的亚马逊Web服务(AWS)宕机时,他们尽最大可能通知客户并且逐步解决问题。尽管很多客户都因此受到了影响,他们并没有因此放弃AWS,因为他们不断被告知有关的最新情况。用户能够接受意外的发生,但是作为服务商如何处理意外,决定了你能否成功。作为SOA实践者,即使客户并没有直接为你提供的服务付费,也要尊敬客户,及时通知相关信息,不要怀疑他们对技术的理解能力。
云计算能从SOA中学到什么
另一方面,将云计算与SOA的概念解耦对云计算的未来是十分重要的。通过SOA,业界认识到服务间的低耦合在应对需求变化和提高可用性的重要性。尽管云提出的时间还很短,服务提供商满足用户的当前需求似乎是合理的,但是未来随着云的不断成熟和需求的不断增长,服务提供商有朝一日可能会无法满足用户的需求。这可能是由于资金不足,关键设备供应链低效或者地缘政治不稳定的原因。在这种情况下,主导今日云架构的紧耦合架构,可能将使整个系统中断,导致客户的系统不可用,但却无法更换提供商,除非花大价钱重新开发。
SOA也已经建立起开发者和运营者之间协作的新方式。过去,大多数IT应用部署在桌面,并通过网络协议同数据库交互。只要网络可用,并且数据可访问可操作,大多数用户使用这些应用是没有问题的。然而,在某些情况下,这些应用可能会与其他桌面应用冲突,导致一小部分的用户出现问题。随着基于桌面的应用转变到基于网络的应用,任何操作问题都扩大到更多的用户之中。将这个概念从单一的多层Web应用扩展到软件服务的交互网,潜在的失败的情况成倍的增加。因此,SOA需要开发者和运营者更加紧密的协作。一些机构进一步将这一概念扩展到所谓的开发运营(DevOps)。DevOps这一概念在云计算时代中变的更加重要,因为云计算更注重于运营环境的自动化。
结束语
总而言之,SOA和云计算有着相似的能力,应该按照各自的实践经验来发展。SOA明确了IT技术中如何交付服务,而而不仅限于应用,但是未能提供成熟的服务协议来保障服务。另外,SOA还使业者认识到投资选择中管理的必要性。纵然一开始SOA只局限于餐厅菜单服务,它已经迅速向房屋租赁、库存追踪等服务发展,说明了企业对IT技术的发展产生了重大影响。最后,SOA促使运营部门和开发部门更加紧密的合作而成为DevOps部门。
同时,企业能够轻易的获取云计算带来的好处,可能会对从SOA吸取经验教训产生不利影响。由于企业能够不经IT部门的批准和审查来注册和使用服务,这样就无法确保云服务适合基于服务的架构。另外,由于SOA通常并没有考虑和用户沟通的层面,云计算在IT服务交付的过程中,通过SLA和客户沟通,显示出了相比SOA更加强大的优势。
最后,这两个方向都应该互相影响来促使企业的成功。云计算由于其数据中心和运营的基础,相比SOA更加成熟。另一方面,SOA凭借其管理和互操作性的优势,为云计算提供丰富的企业经验。
分享到:
相关推荐
总的来说,开源SOA正在改写IT规划的规则,推动企业更加注重灵活性、成本效益和技术创新。企业需要在开源与商用之间找到最佳的结合点,构建适应未来发展的IT架构,以应对日益变化的市场需求。在这个过程中,IT规划...
通过研究电力大数据与互联网大数据的差异,电力大数据分析系统在多维区域查询特性、数据改写机制、语言查询和翻译等方面有其特定的需求。电力大数据分析系统需要满足快速响应终端需求的能力,保证电网的稳定、可靠、...
传统的翻译研究将"忠实"视为普遍规则,适合于任何文本类型。翻译实践证明在很多情况下,忠实只是一种...根据翻译目的论原理,探讨旅游文本英汉翻译中改写策略的理据,并用实例分析改写策略在旅游文本英汉翻译实践中的应用。
2 云计算改写 IT 运维服务模式云计算使得运维服务由传统的“救火队”模式转变为预防为主的主动管理模式。通过实时监控、预警机制和智能分析,运维平台可以预测并预防故障发生,提高系统的可用性和稳定性。 三、项目...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
勒菲弗尔的《翻译、改写以及对文学名声的控制》认为“翻译即改写”,指明了“改写”的作用及为什么要研究“改写”的原因,并从文学系统角度出发,指出文化是复杂的系统,是文学系统存在的环境,对影响翻译的四个层次和四...
教主Oracle SQL高级查询优化改写完美培训视频 2.0版,这个我参与培训的,包含视频、SQL文件、教学文档内容完整,分享给大家学习,共同努力进阶转型开发DBA,人称教主,做sql改写十多年了,sql改写功底很强!
索引可以视为数据表中数据的目录,使用索引可以快速定位到需要的数据行。但是索引并非越多越好,不恰当的索引设置反而会导致写操作的性能下降。因此,要根据查询模式合理创建和维护索引。 3. 使用子查询的正确方式...
实验报告“云计算技术实验报告四HDFS文件的读写”主要涵盖了如何在Hadoop的分布式文件系统(HDFS)上进行文件操作,包括文件的上传和下载,以及文件的合并。该实验是针对计算机科学专业的《云计算技术》课程设计,...
在本项目中,我们关注的是其作为Human Interface Device(HID)的角色,这是一种允许设备与主机(通常是计算机或移动设备)进行交互的标准USB协议。 HID协议被广泛用于键盘、鼠标、游戏控制器和其他输入设备。对于...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
为了增强算法的学习能力和避免陷入局部最优,研究者对蛙跳算法的进化算子进行了改写,并引入了分布估计进化策略。进化算子借鉴了遗传算法中的交叉操作,这是遗传算法中用于生成新个体的一种方法。通过借鉴交叉操作,...
Docker作为云计算领域的一股新兴力量,正在改写着传统云计算模式,并引领着个性化商业革命的潮流。Docker技术的核心思想源于集装箱运输,在软件领域中,它通过容器化(Containerization)方式,提供了一种快速部署...
- 分析慢查询日志,定位性能瓶颈所在,并针对性地进行改写。 - 采用缓存机制减少数据库负载,对于静态数据或变化不频繁的数据使用缓存存储。 - 调整连接池配置,合理分配资源,避免因连接数不足导致的等待时间...
改写了proxool,让他支持spring注入 当用spring注入时间的时候,跑起来spring会报错。 是因为里面类似不一致的问题。改写之后,跑起来不会有问题