【问题标题】:SOA ArchitectureSOA 架构
【发布时间】:2014-09-12 13:10:13
【问题描述】:

我正在使用由 SOAP 和 XML 实现的 ZF2 和 SOA 构建一个基于 PHP Web 的应用程序。所以我的开发人员现在正在构建 SOAP 中的每一个函数,并从相关控制器调用它,就像外部系统正在使用这个 API/Web 服务一样。所以我们做对了,或者我们作为这个应用程序的 web 服务的开发者,我们不应该调用 web 服务,而不是直接将请求发送到控制器而不通过soap。

这方面的最佳做法是什么?

【问题讨论】:

    标签: php soap architecture zend-framework2


    【解决方案1】:

    当然,答案是“视情况而定”。

    使用您的外部 API 层来构建您的应用程序具有一些真正的优势。它验证层,确保您的 API 是完整的。它还允许您做一些事情,例如分离应用程序的层,让您更轻松地扩展不同的层。

    最终,我真的更喜欢以这种方式构建我的应用程序,不幸的是,与所有事情一样,这是有成本的。该成本通常是性能。进行 SOAP 序列化/反序列化通常会对性能造成重大影响,并且通常会在您意识到可以通过绑定到业务逻辑而不经历反序列化/序列化请求/响应周期来使性能翻倍时被击落。我通常的折衷方案是使用与 Web 服务 API 公开的 API 相同的 API,但使用直接绑定客户端。

    不过,此费用可能与您的应用程序完全无关。如果您小心地使 API 保持非常粗粒度,从而最大限度地减少调用次数,那么 SOAP 消息传递的成本可能会低到不引人注意。与所有性能问题一样,不要假设,测量。你认为让你慢下来的东西可能完全被其他组件或层所包含。

    【讨论】:

    • 很好的答案。谢谢,但从技术上讲,我如何创建和使用直接绑定客户端?我正在使用 ZF2。
    猜你喜欢
    • 2013-04-22
    • 1970-01-01
    • 2012-02-25
    • 2010-12-12
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2023-04-01
    • 2012-11-09
    相关资源
    最近更新 更多