叫我一个巨魔,如果你想要的,但我是认真的: 究竟是新的SOA趋势,比我15年前建立的客户服务体系有什么不同? 我不断听到的SOA,但我不明白它是如何比我们一直在做不同的。
回到10年前,我的公司有多个客户端(多国语言),其中谈到相同的服务。 这不是XML(这是一个被称为微软DCOM的二进制协议),而且没有自动发现通过WSDL不过没关系,因为阅读的文档是很容易。 我们的系统甚至“开放”在这个意义上,我们记录它足以让第三方谈谈我们的服务。 我们不是开拓者 - 10年前我就知道所有其他公司做同样的事情。
唯一的区别我当时和现在之间看到的是,现在有在互联网上提供单一的服务,而在10年前,每个客户将举办自己的服务的一个实例。 但是,这不是一个架构问题 - 在服务物理住是透明的,使用该服务的任何人。
那么究竟什么是SOA,这比我们一直在做了多年有什么不同? SOA是简单地表示,实际上成了一个共同很久很久以前最好的做法一个营销术语? 还是我缺少一些subtely到SOA这比什么不同,我们已经一直在做什么?
Answer 1:
忘了XML。 忘了WSDL。 SOA是不是可以买技术,尽管它经常销售的方式。
SOA的真正的问题是所有关于IT 组织 。 SOA的一点是要避免具有已分离的数据池和要么不互相交谈在所有(并且因此经常重复的数据)“的应用程序”一个巨大的束,或者仅在通过适配器层低效,越野车方式或EAI系统。
对于大公司而言,这是一个严重的问题 - 他们有数百个独立的应用程序,没有得到充分整合的。 有重复和不一致的数据无处不在,其结果是,得到客户生气和真正的金钱损失,因为计费部门保留,因为它是在订单跟踪取消发送取消订单和客户服务代表甚至无法找到订单发票系统,但不计费系统。
SOA应该由每一个应用程序从底层向上设计以标准化的,跨洗车台的方式公布其服务,以便其他应用程序可以访问数据,并没有复制它解决此问题。
从商业角度来看,这是非常可取的。 Buzzword的炒作和缩写汤仅仅是IT公司的企图获利在该可取。 不幸的是,这有(MIS),导致许多人,包括首席执行官,以为SOA是你可以买一个产品,它会神奇地让您的IT更加高效,而没有意识到这只会发生,如果您还重新组织整个IT(和相当也许是你的业务部门也一样)是SOA兼容。
Answer 2:
让我用集成地狱著名的替罪羊:电信。
早在上世纪90年代,手机企业都在我家附近血症,几乎是多如长途转售由90年代中期的通信放松管制成为可能。 好了,时间的推移,和贝尔大西洋变成是Verizon公司的厂房,并吞噬公司公司后(至少一个小贝尔)。 这些公司的每一个人都会有在地方,是彼此完全不兼容的技术,在塔中,开关设备,在计费系统。
因此,该公司熄灭,说,没关系,我们有这些模型,我们怎么做业务,让我们把一个友好,一致面对我们所有的技术在WSDL / SOAP / XSD的形式 - 每一种语言和系统,我们今天能接口到这个! 慢慢地,但肯定的是,该公司正在其所有的系统能够在性能报告,被审问负载和收费,以及暴露于未来的梦想家尚未占到尚未方式利用的。
任何人都可以建立一个SOA客户端。 任何人只要有wget和文本编辑器。 任何人都可以解析结果(XML)。
这是何等的从过去的客户机/服务器体系结构有着根本的不同。 我只是说有一天到某人接口COBOL和Smalltalk的基础系统,以SOA架构。 这是容易解决的问题。 告诉我你可以说你的DCOM系统相同。
Answer 3:
SOA是什么,但设计的一种方式 ,其中模块与对方通过“服务” comunicates。 它就是这样,现在的一个问题是:究竟是什么“服务”,其与常规“方法”的区别是什么?
服务是执行一个单一的,原子业务操作的操作。 这种原子让它从众多模块高度可重用的 。 然后,复杂的业务操作是许多这类服务的特定顺序invokation的只是orchestation。
SOA已经无关,与具体的技术,是设计的只是一个特定的方式。
Answer 4:
教授弗兰克Leymann从斯图加特大学采用SOA作为他的一个关键概念面向服务的计算(SOC)的研究工作,他谈到了SOA 。 他都被看作是问SOA的定义和随后的谈话可能是一个很好看的。
请注意,我们的路线图是“面向服务的计算(SOC)”,即后面面向服务的计算模式。 面向服务的架构(SOA)是这样的计算模式的架构实现。 你可以用“客户机/服务器计算”比较这作为范例和“浏览器/ Web服务器”或“DB-客户端/存储过程”为两个(各种除外)这种模式的建筑变卖。
...
SOA并不是全新的。 SOA的一些个别方面在实践中使用了很长的时间。 例如,看一看“松耦合”:企业使用可靠的消息传递技术,因为几十年来集成应用,即松散耦合他们。 不要误会我的意思,也有从SOA一起放在SOA,即它们从出苗产生的概念相结合产生的新概念,例如概念。
Web服务规范作出相应的技术提供跨平台的。 即相应的规格不发明从根本上新的概念,但界定这些概念和相应的实现如何在异构环境下工作。 产生的互操作性是开创性的,使SOA真正的。
总之,SOA是一个成熟的事物和新生事物的混合物。
还有一个SoC的论文引用 2006年4月。
谷歌搜索标识教授弗兰克Leymann和他的 作品 。
Answer 5:
Neal Ford将有关于SOA很多强烈的意见。 您可能会发现他的观点感兴趣。
战术与战略(SOA&无关考的那tarpit)
基于对标准化标准(SOA&无关考的那tarpit)
工具与反行为(SOA&无关考的那tarpit)
Rubick的柜(SOA&无关考的那tarpit)
希望战胜了理性的胜利(SOA&无关考的那tarpit)
游击队SOA(SOA&无关考的那tarpit)
Answer 6:
我认为SOA既是一个营销术语,用的,而不是销售整个软件或机器的想法整合现有的解决方案,我们卖的是服务。
Answer 7:
对我来说,一个面向服务的架构来约当企业希望整合的选择,这涉及到一个公共域到了一套针对单一数据源进行操作互操作的服务不同的应用程序。
在新的初创公司的一个想法软件/软件套件的一个选项的情况下,我看不出一个公司可以从断面向服务的架构揭开序幕。 首先,将各溶液(这很可能演变成一个服务,使得它可以成为可互操作)应设法解决其问题空间中隔离。
也许这将成为路线图的企业能力或套件的解决方案,完成每个解决方案成为一个可互操作的服务,并进入服务。 对于这一点,也许是开发团队将进行模块化/组件化的方式来建立soluton(最终服务),以便更容易地包括解决方案,在面向服务的体系结构的服务。
在的软件现有岛屿是成为在面向服务的体系结构互操作的服务的情况下,该方法允许软件项 - 这可以是分布式的,并且可以以不同的语言被写入 - 通过暴露的API和/或共同的协议进行通信(例如Web服务的味道)和通用数据格式(如XML)。
SOA是一种方法或观念。 它不是一个框架或工具。 当WDSLs和EJB获得名称下降,这常常被遗忘......因为是SOA的思想是不是新的。
Answer 8:
大部分的答案在这里似乎传达SOA (Service Oriented architecture)
是关于标准化的方式,使其他应用程序可以在平台独立的方式与之交互创建应用程序。
我不知道是否因为意义已经改变,但我有机会与提供SOA套件和下面是我的想法就可以了公司上班。
当你设计一个应用程序,当然你不能保证这将是兼容的跨平台。 举个例子stock Trading systems
。 他们使用Fix protocol
来传送消息。 你希望现在以XML格式返回数据,以便它可以被所谓的SOA兼容? 当然不! SOA是一种架构方法,可以帮助你decouple your application/services
,让他们互相交流。 SOA的主链是ESB (Enterprise Service Bus)
,其用于将数据从一个服务转移到其他。 SOA架构应该采取格式转换的照顾。 例如 -
FIX(Service 1) -> (XML ---ESB---> XML) -> JSON (Service 2)
这些转换模块通常被称为adapters
,并且通常SOA套件的一部分。 对于更多的信息,请参阅另一种答案 -
SOA和ESB之间的区别
当然SOA是一个词是大肆宣传的营销目的。 从技术上讲它作为反序列化和序列化数据,使服务可以分离和独立的平台,但它背后的想法是混凝土一样简单。
另请参阅Wiki页面的相同。
Answer 9:
在现实中,SOA是一个定义良好的服务的集合。 基本上,SOA使用松耦合的服务来轻松获得渴望的结果。 一个服务的实现细节,从客户/消费者隐藏起来,在实施任何变化不影响服务,直到他们之间的合同变更。 服务提供商是执行基于预定的输入和输出的一些业务逻辑,并通过SOA实现公开此功能性的组件。 这使得基于SOA的响应更加迅速,为企业经济高效的系统。 组件和SOA之间的主要区别在于,SOA提供了一个开放的标准消息,这是不特定于任何编程语言或平台。 其结果是,可以实现高度的跨平台和技术,松耦合和互操作性。 在传统的客户端-服务器的世界中,供应商将是服务器和消费将是一个client.You可以阅读更多关于SOA的位置: 面向服务的架构(SOA)
Answer 10:
面向服务的体系结构(SOA)是其中软件被设计为构建块的架构模式。 即模块化开发,这使得灵活地组装我们想要的任何方式。 如果你想开始的,而不是从头开始新的项目,我们可以重用的服务,如果你想新的服务,我们可以方便地与现有的服务整合,使新项目。 因此,我们可以节省大量的时间和money.The面向服务架构的基本原则是独立的供应商,产品和技术。
打个比方:玩具搭建使用乐高积木。
文章来源: What is SOA (Service Oriented Architecture)?