面向服务的体系结构现在似乎越来越热门,但在办公室询问后我发现我似乎得到了许多不同的定义。你们如何定义SOA?您认为官方定义是什么?
答案 0 :(得分:25)
正如Martin Fowler所说,这对不同的人来说意味着不同的东西。他关于这个主题的文章非常好,虽然它不是一个定义。
http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html
可以解释一下,难以提出一个具体的定义。
答案 1 :(得分:6)
维基百科:“SOA是一种软件架构,它使用松散耦合的软件服务来支持业务流程和软件用户的需求.SOA环境中的网络资源可作为独立服务提供,无需了解即可访问他们的基础平台实施。“
SOA不是那么新,但它有可能实现一些惊人的东西。但是组织必须为此做好准备:企业必须在流程中思考,这是一个大问题
答案 2 :(得分:5)
我会选择:
定义一系列无状态客户端 创建了不可知的业务运营 多重利用 应用
答案 3 :(得分:3)
SOA设计包括可由代码使用的组件(即,服务),而不管实现(即,任何OS或语言)。多个应用程序也可以使用单个服务实例,而例如,必须为每个应用程序复制DLL,并且需要与链接应用程序相同的实现技术。
SOA设计中的服务通常实现为可互操作的Web服务。
答案 4 :(得分:2)
Ryan没有提到官方的定义。但是,我发现Thomas Erl对整个服务导向的看法非常有条理且相关。以下是来自SOA Glossary(more)的SOA的定义:
面向服务的体系结构代表了一种体系结构模型,旨在提高企业的敏捷性和成本效益,同时降低组织的IT总体负担。
Thomas Erl是许多SOA游戏的作者,他们中的大多数都获得了SOA供应商的认可,包括IBM,Oracle和Microsoft。关于his books的好处是它们尽可能独立于SOA供应商。这意味着您将更多地了解面向服务本身,而不是了解一些支持SOA的供应商中间件。
答案 5 :(得分:1)
我同意所有指向Fowler的人。基本上它是这样运行的:面向服务的体系结构得到了良好的声誉,因此人们希望与良好关联的任何东西都称为SOA。实际上它有很多缺点,可以创建面向服务的网格锁或面向依赖的体系结构。
这是我的定义: 面向服务的体系结构是一种系统集成和代码重用方法,其中应用程序依赖于连接到网络上其他正在运行的应用程序提供的服务。这与组件体系结构不同,在组件体系结构中,软件组件在应用程序之间以库或SDK的形式静态共享。
答案 6 :(得分:1)
此处澄清 - “面向服务的体系结构是一种系统集成和代码重用方法,其中应用程序依赖于连接到网络上其他正在运行的应用程序提供的服务。 “
我有一个场景,其中使用事件驱动的消息传递集成了两个j2ee应用程序。上面的系统集成和连接到网络上其他正在运行的应用程序提供的服务的短语很好。我可以称之为SOA吗?
以下原则在这里会很好 1)无国籍 2)面向消息 - 松散耦合的实际去耦合 3)可扩展。
但是,以下内容不适用 1)平台独立性 - 所集成的应用程序都没有设计为在不同的平台上工作。 2)这些应用程序是普通的j2ee应用程序,它们没有按照所有的soa概念设计。
答案 7 :(得分:0)
我试图在one of my blog posts中定义SOA。这是摘录......
多年来,将功能分为功能,类和模块是标准做法。这个想法一直是这些较小的,高度专业化的组件比单片代码块更容易共享和维护。
从功能上讲,SOA并没有太大的不同。目标是相同的 - 可重用性和易维护性。最大的区别 - 在Web服务SOA的情况下 - 是应用程序中包含的共享库被HTTP调用替换。
答案 8 :(得分:0)
以下是您的定义:
SOA - 架构软件。包含无意义,过度膨胀的功能界面框架,在一个漂亮的网站中称为架构,其中一个3d图形文件夹从一侧飞到另一侧,其中“dir / s> a.txt | ftp -s:upload.ftp “做了这件事。
软件组件不是砖块,不能通过常见的功能模式和架构在企业中出现从良好的实践,而不是良好的设计。软件没有架构,它是专门设计的。
SCRUM ON!