面向服务的体系结构:如何定义它

时间:2020-03-05 18:52:24  来源:igfitidea点击:

如今,面向服务的体系结构似乎越来越成为热门报价,但是在办公室里问了一下之后,我发现我似乎对它有了很多不同的定义。你们将如何定义SOA?我们会怎么看待正式定义?

解决方案

回答

SOA设计包括可以由代码使用的组件(即服务),而与实现(即任何OS或者语言)无关。服务的单个实例也可以由多个应用程序使用,而例如,DLL将必须为每个应用程序复制,并且需要与链接应用程序相同的实现技术。

SOA设计中的服务通常实现为可互操作的Web服务。

回答

正如马丁·福勒(Martin Fowler)所说,这对不同的人意味着不同的事情。他关于该主题的文章虽然还不是一个很好的定义,但却相当不错。

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

它可以解释,提出具体定义的困难。

回答

我会去:

Defining a series of stateless, client
  agnostic business operations created
  to be leveraged in multiple
  applications.

回答

我试图在我的一篇博客文章中定义SOA。这是节选...

For years it's been standard practice to separate functionality into functions, classes, and modules. The idea has always been that these smaller, highly specialized components are easier to share and maintain than monolithic blocks of code.
  
  Functionally, SOA is not much different. The goals are the same - reusability and easy maintenance. The biggest difference - in the case of a web service SOA - is that the shared library included in your application is replaced with an HTTP call.

回答

瑞安(Ryan)提到伯爵(eriler)并没有一个正式的定义。但是,我发现Thomas Erl对整个服务导向的观点是结构合理且相关的。这是他的SOA词汇表中的SOA定义(更多):

Service-oriented architecture represents an architectural model that aims to enhance the agility and cost-effectiveness of an enterprise while reducing the overall burden of IT on an organization.

托马斯·埃(Thomas Erl)是许多SOA标题的作者,其中大多数都受到SOA供应商(包括IBM,Oracle和Microsoft)的认可。关于他的书的好处是,它们尽可能独立于SOA供应商。这意味着我们将了解有关面向服务本身的更多信息,而不必了解某些支持SOA的供应商中间件。

回答

维基百科:" SOA是一种软件体系结构,它使用松散耦合的软件服务来支持业务流程和软件用户的需求。SOA环境中网络上的资源作为独立服务提供,可以在不了解其底层平台的情况下对其进行访问。执行。"

SOA并不是那么新,但是它有潜力实现一些令人惊奇的事情。但是组织必须为此做好准备:企业必须在流程中进行思考,这是一个大问题

回答

我同意所有在这方面将我们带到福勒的人。基本上,它是这样运行的:面向服务的体系结构享有良好的声誉,因此人们希望将与之相关的任何事物称为SOA。实际上,它有很多缺点,并且可以创建面向服务的Gridlock或者面向依赖的体系结构。

这是我的定义:
面向服务的体系结构是一种系统集成和代码重用方法,其中应用程序依赖于连接到网络上其他正在运行的应用程序提供的服务。这与组件体系结构不同,在组件体系结构中,软件组件在应用程序之间以库或者SDK的形式静态共享。

回答

这里的说明"面向服务的体系结构是一种系统集成和代码重用方法,其中应用程序依赖于连接到网络上其他正在运行的应用程序所提供的服务。"

我有一个场景,其中使用事件驱动的消息传递集成了两个j2ee应用程序。在这里,上面提到的系统集成和连接到网络上其他正在运行的应用程序提供的服务的短语非常有用。我可以称之为SOA吗?

以下原则在这里适用
1)无国籍
2)面向消息的松散耦合实际上已解耦
3)可扩展。

但是,以下内容不适用
1)平台独立性所集成的应用程序均未设计为可在不同平台上工作。
2)这些应用程序是普通的j2ee应用程序,尚未针对所有soa概念进行设计。