在一个作为 SAP 之上的第三方应用程序通过 SOAP 网络服务扩展其功能的项目中,我想知道应该如何定义网络服务本身;我们应该实现许多实现简单和原子操作的 Web 服务,还是实现很少的 Web 服务,它需要一堆参数并完成所有的事情。
考虑到以下情况,我对反馈和建议很感兴趣:
- SAP netweaver 层的工作负载(并发 Web 服务的数量)
- 第三个应用程序维护
- SAP 网络服务维护
- 网络负载(考虑 SOAP 信封和 http 请求)
- 我可能没有想到的任何其他考虑因素
谢谢
产科。
最佳答案
与 SAP 不同,在定义 Web 服务接口(interface)时,我的第一个想法是粗粒度服务往往比繁忙的细粒度服务更合适。
首先是因为每次调用的开销比较大,所以来回次数越少越好。 (例如,GetName、GetAddress、GetPhoneNumber 与 GetPersonInfo)
其次,如果存在逻辑,我们希望服务拥有它。我们不希望每个客户端都需要知道调用细粒度方法的顺序。否则我们最终会在每个客户端中重复逻辑。
我有一篇文章here其中详细阐述了诸如此类的问题。
关于SAP 项目的 Web 服务粒度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1532746/