SCA 相对于 Spring 的优势?

2024-03-03

我有使用 Spring 开发 java web 应用程序的经验,但在 SOA 领域却没有那么多经验。我正在阅读有关 SCA- SCA4J -http://www.service-conduit.org/user-guide.pdf http://www.service-conduit.org/user-guide.pdf- 其中很多看起来与 Spring 非常相似。

我试图了解 SCA 在什么情况下有用,但仍然不明白 SCA 相对于独立使用 Spring 提供了哪些功能/好处。

我发现了这篇旧博客文章 -http://rajith.2rlabs.com/2007/08/05/sca-vs-spring-a-reply-to-dans-post/ http://rajith.2rlabs.com/2007/08/05/sca-vs-spring-a-reply-to-dans-post/- 但 SOA 术语对我来说并没有什么特别突出的地方。

如果有人能够给出更适合 Spring 开发人员的解释(他们在 SOA 术语/方法论领域非常新手),我将不胜感激。

Thanks


我对 Spring 不是最了解,但由于在 IBM 的 WebSphere Integration Developer IDE 及其部署到的环境(WebSphere Enterprise Service Bus 和 WebSphere Process Server)中使用过 SCA,所以对 SCA 非常熟悉。

这实际上都与抽象和允许开发人员专注于最重要的事情(业务逻辑)的想法有关。我们都熟悉面向对象编程的概念以及该抽象如何更好地代表“现实世界”。随后出现了 Web 服务和面向服务的架构方法。 Web 服务通过减少逻辑背后的语言依赖来进一步抽象我们的逻辑。现在,C++、.Net、Java、甚至 RPG、COBOL 或其他任何东西都可以支持我们的 Web 服务。我们可以让语言和系统以一种不依赖于 CORBA 和库之类的方式相互通信。

SCA(服务组件架构)试图将 SOA 提升到一个新的水平。它尝试抽象用于与另一个系统或服务通信的协议和地址。原因如下:在使用 Web 服务时,作为开发人员,您仍然需要使用协议并编写或挂钩大量样板代码。你得知道你是http还是https。您必须知道您是否(在 Java 世界中)JAX-RPC、JAX-WS 2.0、JAX-WS 2.1、JAX-WS 2.2 甚至 JAX-RS(基于 REST)。您需要知道您使用的是 JSON、XML 还是 SOAP,如果是 SOAP,它是 1.0、1.1 还是 1.2?有时您甚至必须知道应用程序服务器的供应商如何实现某些功能(您不应该这样做,但情况可能如此)。如果您希望您的 Web 服务与另一个服务通信,会发生什么情况。但第二项服务恰好是基于消息传递的。这是JMS的意思吗? MQ? JMS 通过 MQ?其他?那么纯 HTTP POST 和 GET 又如何呢?

这就是 SCA 的用武之地。SCA 尝试抽象服务的端点并向开发人员隐藏协议实现。当您需要服务时,您只需通过 SCA API 查找它,然后调用该服务(我认为该方法是执行的?至少在 IBM 的 SCA 扩展中是这样)。但无论如何......现在您不必知道您正在通信的服务是 JAX-WS 2.1 或 REST 甚至 MQ。您不必知道您正在使用 SOAP/HTTP 或 JSON/XML 或 SOAP/JMS 等。 SCA 向您隐藏了这一切。它允许您将不同实现的服务相互连接,以便它们都可以通过通用的“服务接口”相互通信。

正如您可以想象的,这是现有抽象技术之上的另一层抽象和技术。但我亲眼所见,觉得还是值得深究的。我知道 IBM 和 Apache(我认为目前还没有想到的其他公司)致力于制定 SCA 标准。 (实际上 IBM 的 SCA 版本现在是基于 Apache 提出的开放标准构建的。希望其他支持 SCA 的供应商也能这样做。)

我认为值得花时间去看看。它可以帮助您不再关注基于协议的服务集成,而是关注服务的业务逻辑,这才是它们真正带来的价值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SCA 相对于 Spring 的优势? 的相关文章

随机推荐

  • 将命名参数与 PDO 一起用于 LIKE

    我正在尝试搜索name我的数据库中的字段使用LIKE 如果我像这样 手工 编写 SQL query SELECT n FROM help article n WHERE name LIKE how n sql db gt prepare q
  • 正则表达式 C# - 是否可以在匹配时提取匹配项?

    假设我有一个字符串 需要验证其格式是否正确 例如RR1234566 001 2 个字母 7 个数字 破折号 1 个或多个数字 我用类似的东西 Regex regex new Regex patternString if regex IsMa
  • 在查看器窗格中打开 R Markdown

    我正在使用 rmarkdown 包的渲染函数渲染带有参数的 R Markdown rmarkdown render file Rmd params ask 它会打开我的默认浏览器 Chrome 要求输入参数 我希望它不是在默认浏览器中打开
  • 如何覆盖材质 CSS 样式?

    我使用角度材质 2 Material CSS 中有一种 CSS 样式 mat radio button mat accent mat radio inner circle background color fff 我尝试在自定义 CSS 文
  • 使用 Laravel 的 Azure Active Directory SSO

    我正在使用 azure Active Directory 进行 sso 我已经在 azure 上完成了设置并开始操作 我正在使用计量学 laravel azure ad oauth https packagist org packages
  • R 中“data.frame 的标准公式接口”是什么意思?

    的文档aggregate states aggregate formula 是 aggregate data frame 的标准公式接口 我是R新手 不明白这是什么意思 请解释 Thanks Uri 跳转到示例部分的中间help aggre
  • php 自动化 setter 和 getter

    我正在尝试为 php 对象实现一些自动 getter 和 setter 我的目标是自动为每个属性提供方法getProperty and setProperty value 这样 如果没有为属性实现该方法 脚本将简单地设置或获取该值 举个例子
  • 如何在 PHP 中循环遍历已从 JSON 解码的对象数组,并回显值

    我是 PHP 新手 不知道如何继续 我从解码 JSOn 中返回的数组是 抱歉 如果其格式很奇怪 array 3 0 gt array 4 Name gt string 22 Brent s Medical Center date gt st
  • 基类和派生类中的同名对象不会被标记为错误

    class Base public type1 m Pants class Derived Base public type2 m Pants 这本质上并没有被标记为错误 而是在整个项目中造成了各种破坏和问题 有谁知道不会标记这一点的技术细
  • Struts 2.3 - 重定向与redirectAction

    之间的主要区别是什么redirect and redirectAction在Struts2 3上下文中 我看过以下网址redirect http struts apache org release 2 0 x docs redirect r
  • JavaScript 函数上下文不正确

    我注意到 javascript 中有一个奇怪的事情 考虑以下几点 var fn toUpperCase call console log typeof fn function fn Uncaught TypeError fn is not
  • 在相机预览上叠加静态可绘制图像

    我需要在手机处于相机预览模式时显示静态 png 图像 目前我正在引用此链接 a link 将图像叠加到相机预览 SurfaceView 上 https stackoverflow com questions 3548666 overlay
  • Angular $compile 与所需的控制器

    我有一个复合列表指令 即 一个列表项 它本身可以是一个列表 父指令定义控制器 directive parent function controller function scope link function scope element a
  • 如何像 pdf 文件一样下载 jpg 图像?

    我请求以与 pdf 文件相同的方式下载 jpg 图像 目前 如果我将 jpg 图像作为链接添加到网页 它将在另一个浏览器窗口中打开 而不是实际下载到用户计算机 但是 pdf 文件可以 这是标准代码 a href images my imag
  • 为什么 QGridLayout 小部件在添加新小部件时会移动?

    我似乎无法理解它们是如何工作的 放置多个小部件的最佳方式似乎是 QGridLayout 但是当我将某些内容添加到特定的行 列中 然后决定将某些内容添加到另一行 列中时 一切都会发生变化 这真的很令人沮丧 例如 我什至无法做像谷歌主页这样简单
  • 生成遵循分布的平滑随机数

    我有两个变量 我们称它们为x and y 绘制时是图中分散的蓝点 我已经使用 Scipy 中的 curve fit 拟合了它们 我想生成 假设 500000 平滑 复制分布的随机数 然后x and y By 平滑 我的意思是 我不想要完全复
  • 根据输入调整函数中的sql语句

    这事有点紧急啊 我正在尝试进行一个简单的过滤器搜索 您可以从一系列 3 个下拉列表中进行选择 然后基于此显示结果 我将如何调整每个下拉列表的 sql 查询 如果您要只选择从 3 个中的一个搜索 而不是从全部 3 个中搜索 等等 例如 可能存
  • 如何使用jQuery动态添加表单元素

    这是我的html div div class controls controls row div div
  • Chrome 控制台显示“导航到 http://localhost...”

    Chrome 控制台显示 导航到http localhost http localhost 用蓝色字母 Image 这是 Chrome 上的一项功能 当您选中 保留日志 选项时 可以分隔页面日志 如果您取消选中该框并重新加载页面 它不应显示
  • SCA 相对于 Spring 的优势?

    我有使用 Spring 开发 java web 应用程序的经验 但在 SOA 领域却没有那么多经验 我正在阅读有关 SCA SCA4J http www service conduit org user guide pdf http www