【问题标题】:From Independent Web Services to SOA - What does the journey take? [closed]从独立 Web 服务到 SOA - 旅程是怎样的? [关闭]
【发布时间】:2013-12-17 19:58:38
【问题描述】:

我见过很多“Web 服务”和“面向服务的架构 - SOA”这两个术语可以互换使用的实例。但是,我相信你们中的很多人会同意它们是不一样的,“SOA”远远超出了“Web 服务”!

尽管如此,我的问题是,作为一家小公司,我们现在拥有这项新业务,可以为外部客户(其他公司)提供大量网络服务。所以,在这方面,我有以下几个问题:

1) 我们是应该只专注于开发这些 Web 服务(Java、Spring)并独立部署它们并交付给客户端,还是应该考虑将它们整合在一起并为 Web 服务治理提供手段通过使用诸如 Mule ESB、Apache ServiceMix 等 SOA 基础架构。

2) 从一开始就考虑 SOA 基础架构是否更容易且资源密集度更低(在努力和金钱方面),还是即使我们将其推迟到以后的某个时候也几乎相同?我只是想确保我们不会过度设计,所以我不确定 SOA 是不是过度杀戮,还是从一开始就真的值得花时间和投资?

3) 与像任何 Web 应用程序一样独立部署 Web 服务相比,SOA 基础架构是否提供更好的性能以及高可扩展性和低延迟?我有时想知道,所有这些额外的 SOA 基础设施不会增加延迟吗?

4) 我听说过一些 SOA 基础架构,例如 Apache ServiceMix 和 Mule ESB,我猜它们是开源的,而还有其他许可的解决方案,例如 Oracle SOA 套件和 IBM DataPower。它们都一样好还是有最好的选择?我还想知道 ESB/Service Bus 是否是每个 SOA 基础架构的一部分,还是有什么不同?

5) 作为 Web 服务和 SOA 布道者,您还有什么其他建议/技巧可以让我考虑吗?

6) Spring-Integration 是否为 SOA 提供任何方法?你能告诉我一些例子吗?

【问题讨论】:

  • 如果您将感兴趣的内容缩小为可以产生答案的问题,而不是促进讨论的问题,您可能会获得更多帮助。 SO 不是一个讨论论坛,它专注于问答形式。
  • 感谢 Pedantic,我会这样做的!
  • 我会给你一个赞成票,它是一个广泛开放的话题,可以进行一些讨论,但这不是适合它的论坛。试试programmers.stackexchange.com 以获得更好的帮助来缩小您的主题范围,但恐怕其中很多主题仍然过于宽泛,即使在那儿也不可能。
  • 无论如何,我从整个“SaaS”嗡嗡声中得出的结论是——如果您希望启动一个提供 SOAP 或 REST 服务的服务,那么身份验证/授权和治理是关键。我不想承认这一点,但一些大数据公司(受到很多抨击)做得对,但实施起来很痛苦。

标签: web-services mule spring-integration soa apache-servicemix


【解决方案1】:

这是一个相当广泛和主观的问题。要问的关键问题是 ESB 将提供哪些您的应用程序无法提供的价值。答案取决于您的用例和您现有的技术生态系统。例如,如果您使用不提供 Web 服务的遗留技术,那么拥有 ESB 基础架构将帮助您快速“启用 Web 服务”。

您可能还希望使用 ESB 充当应用 ACL 规则或加密或安全控制的代理。某些 ESB(设备)提供您可能不需要的 FIPS-140-2 控制、入侵检测等。

ESB 确实提供了开箱即用的重要治理和操作/监控功能,尤其是在您使用 Web 服务 (SOAP/WS-*) 服务时。

规模和延迟不是 ESB 本身的功能,而是取决于产品及其实现方式。您可以在没有 ESB 的情况下实现高度可用且可扩展的 Web 服务端点。但是,某些设备(数据电源、英特尔 ESG 等)可为某些进程(例如 XML/XLST 等)提供显着的硬件加速

使用 ESB 的另一个方面是了解您的消费者/提供者是谁。您是否正在考虑与不同的消费者/提供者处理不同的协议。您是否需要支持多种有效负载类型(XML、JSON)。我还要说,不一定要有一个 ESB 来满足这些要求,但它可能会让您更容易让业务应用程序只实现服务,并且 ESB 根据消费者的需求提供各种端点.

最重要的是,SOA 是一种架构模式,而不是单一产品。没有什么说“SOA”意味着 ESB,你可以很好地设计一个基于 Spring 集成或 Apache Camel 的应用程序,它是面向服务的、可扩展的和灵活的

这就是使用 ESB 的一些优点,这里有一些关于为什么你不应该使用 ESB 的链接

Slideshare PPT

Eric's Blog

自从您开始使用服务后,您可能希望将其设置为 Restful Vs 基于 SOAP 的服务。网上有很多内容,下面是一些可以帮助您入门的链接。

希望对您有所帮助。

http://www.ibm.com/developerworks/webservices/library/ws-restful/

http://martinfowler.com/articles/richardsonMaturityModel.html

【讨论】:

  • 分解它的好方法,但我仍然认为原始问题过于宽泛而无用。
  • 谢谢任。这确实给了我一些见解。
  • 我一直想知道使用 SOA 基础架构和通过 ESB 传输消息的真正好处是什么,而我们可以构建自己的 Orchestrator 等...根据您的 cmets,我可以推断如果我必须从头开始构建我的 Web 服务,那么使用任何 ESB 框架与管理您自己的 Web 服务和使用诸如 Spring-Integration 之类的语言来编写/构建自定义编排相比并没有太大的优势。如果我们有一些现在要作为 Web 服务公开的遗留应用程序,那么 ESB 框架可以提供一些易于实现的功能。
  • 困扰我的主要问题是,当我们开始在我们公司开发多种 Web 服务的旅程时......到目前为止还很小......我想知道我们是否应该考虑像这样的框架Apache ServiceMix、Mule ESB、IBM DataPower、Oracle SOA Suite 等……或者我们应该从简单的独立 Web 服务开始,然后探索使用这些框架将所有 Web 服务整合到一个保护伞下的选项。我处于两难境地,因为我不想过度设计,但同时我担心如果现在忽略 SOA 框架会在以后花费我们太多!
  • 如果您是一家小公司,请远离旨在为大型企业解决问题的大型产品套件。这些都是靠自己的力量的大象。只要您维护标准、SOAP、WS-Security、Restulful 等,您应该能够在以后迁移到这些基础设施而无需显着提升。可以从小处着手并进行迁移,而不是过度设计。您需要确保您的设计是干净的,以便以后可以无缝迁移。
猜你喜欢
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 2016-02-02
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
相关资源
最近更新 更多