web-services - 为什么在 "ENTERPRISE"应用程序中使用 SOAP over JSON 和自定义数据格式?

标签 web-services architecture

我在一家中型金融公司工作,我们的所有应用程序都使用 SOAP 相互通信,并且我们仅使用 JSON 来处理来自网站的 AJAX 请求。

最近在一个新的项目规划 session 上,有人问我为什么我们必须使用 SOAP 来进行应用程序间通信?为什么不使用 JSON 甚至自定义数据格式?在我心里,我觉得这些替代方案还没有“企业就绪”,但实际上我想不出一个非常令人信服的答案来解释它们为什么不好。

我能想到的 SOAP 唯一的两个优点是工具和安全性。

现代 IDE(例如 Visual Studio)具有内置实用程序,可以根据 WSDL 定义生成类,但如果您使用 JSON 或自定义数据格式,则无法获得这些实用程序。在安全性方面,SOAP具有其他数据格式标准所不具备的明确定义的安全标准。

你觉得怎么样?您使用 JSON 作为应用程序之间的数据交换格式吗?

最佳答案

使用 JSON 的原因是简单。它易于阅读、易于理解、开销很小,并且几乎在每种语言中都有实现。

恕我直言,将某些东西称为“企业”能力有点疯狂。它只是一种数据交换格式。无论是 SOAP、XML、JSON 还是什么,它都只是一种通信格式。

我承认,工具很好;自动生成的类很棒。但另一方面,当您手动管理类时,您会获得很大的灵 active ,而且通常来说,这并不难做到。

在我看来,安全不是问题。您的数据格式(再次强调,恕我直言)应该与您的安全无关。这需要完全处于不同的水平。虽然 SOAP 有一些安全扩展等,但我认为在大多数情况下,它们只是提供了很多不必要的复杂性。是否尝试过阅读 WS-Security 的一些规范?哎呀。只使用 JSON+HTTPS 怎么样 - 简单,每个人都支持它,而且它工作起来就像冠军......

现在,这并不是说它是解决所有问题的正确解决方案,但如果您只是在寻找数据交换,我就同意了。

就我个人而言,我喜欢 JSON 这种格式,并且一直使用它。

关于web-services - 为什么在 "ENTERPRISE"应用程序中使用 SOAP over JSON 和自定义数据格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765888/

相关文章:

objective-c - iOS 中的 SOAP - 从 XML 中提取多个字符串

.net - 说服管理层使用 WCF

c# - C++ 和 .NET 是否在银行、医疗保健和电信等领域一起使用

c# - Web 服务调用后响应对象中的属性为空

c# - 分割用户名和密码凭证

php - 从 PHP 返回 JSON 数据,并使用 Javascript 使用它

.net - 无法修复错误 : This configuration section cannot be used at this path

architecture - 有理由在 Blazor 服务器端使用 ViewModel 吗?

architecture - 设计 "item stock alert"架构

architecture - Virtuoso 中从 SPARQL 到 RDBMS 的数据流