最好是调用web服务还是重写代码?

时间:2014-10-15 17:39:49

标签: java amazon-web-services jax-rs restful-architecture

我有一个返回xml文件的Web服务。现在我想创建一个新的Web服务,它使用包含第一个Web服务输出的部分信息。我的问题是什么是更好的解决方案:

1.调用第一个Web服务并在新的Web服务中使用结果?

  1. 重新创建第一个Web服务的代码的一部分,并创建一个独立于第一个的新Web服务。
  2. 我知道第一个解决方案我可以更好地处理代码但可能会更慢并且在网络中使用更多流量。 另一方面,第二个提案解决方案不会重复使用代码,保存项目将更加困难。我想用一个完整的答案。

    谢谢

3 个答案:

答案 0 :(得分:1)

专家建议避免使用“遥控器”。解决方案尽可能长,因为它们带来了测试,调试,维护等方面的复杂性。想象一下,当第一个WS发生故障时,你将如何处理这种情况?你会如何测试这一切?当第一个WS响应一些无效数据时,您将如何处理这种情况?这里出现了很多问题。

真的很难给你这个权利'回答,因为它总是取决于背景和你的需求。有时候别无选择,只能实施分布式解决方案。

为了获得灵感,我强烈建议您阅读" Enterprise Architecture Patterns" M.福勒的书。

答案 1 :(得分:1)

每个人都有自己的优点和缺点。我试着在下面描述它们:

  1. 使用该服务的优点是不会将(Dev和Qa)设计两次相同的功能。您可以呼叫远程服务,只需使用它提供的功能。这就是服务存在的原因,不是吗?此外,当服务进化时,您不必担心任何事情,例如更改本地jar等。但是,该服务作为单独的组件运行。因此需要对其进行监控和操作管理。
  2. 使用jar /库代替服务具有“局部性”的优点。在该过程中执行的代码具有很高的性能。您可以避免创建套接字连接,并处理调用其他服务的复杂性。但是,您可能必须将该函数抽象为库。
  3. 它完全取决于您正在查看的“功能”,实现的复杂程度,功能是否会经常发展,以及它对其他客户端集合有用吗?如果它对于众多客户来说是复杂的,不断发展的和有用的,答案就是“编写服务”。

答案 2 :(得分:0)

外交问题。它取决于您所遵循的组织,组织,战略,架构和设计。

我的建议是:

使用选项1: 这就是分而治之,如果它是面向服务的架构,有许多消费者为您提供服务

使用选项2: 如果您是此服务的消费者和提供者。