我需要创建一个由两个组件组成的系统:
- 一个单一的服务器,用于处理和存储数据。它还会定期向代理发送更新。 - 多个代理安装在远程端点。这些代理在长时间运行的操作中收集数据,但不总是如此,这些数据需要传送到服务器。
我正在使用C# .NET,并希望使用符合标准的通信方法(即可以与Java一起使用的理论上可行的方法,因为我们未来可能也会使用Java代理)。除了Web服务外,还有其他选择吗?我的选项是什么?
在使用Web服务时,我认为有三种选择,并已做出以下观察:
- 客户端拉取
- 代理无需打开端口,因为它充当客户端 - 需要轮询服务器以获取更新
- 服务器推送
- 代理需要打开端口,因为它充当服务器 - 服务器必须轮询代理以获取结果
- 混合
- 代理需要打开端口,因为它既充当客户端又充当服务器 - 不需要轮询;服务器在需要时推送更新,客户端在结果可用时发送结果
“混合”(代理既是客户端又是服务器)似乎是显而易见的选择,但该应用程序通常会安装在企业和政府环境中,我担心他们可能会对代理打开端口有问题。我在过度考虑这个问题吗?
我是否遗漏了其他的优缺点?
- 一个单一的服务器,用于处理和存储数据。它还会定期向代理发送更新。 - 多个代理安装在远程端点。这些代理在长时间运行的操作中收集数据,但不总是如此,这些数据需要传送到服务器。
我正在使用C# .NET,并希望使用符合标准的通信方法(即可以与Java一起使用的理论上可行的方法,因为我们未来可能也会使用Java代理)。除了Web服务外,还有其他选择吗?我的选项是什么?
在使用Web服务时,我认为有三种选择,并已做出以下观察:
- 客户端拉取
- 代理无需打开端口,因为它充当客户端 - 需要轮询服务器以获取更新
- 服务器推送
- 代理需要打开端口,因为它充当服务器 - 服务器必须轮询代理以获取结果
- 混合
- 代理需要打开端口,因为它既充当客户端又充当服务器 - 不需要轮询;服务器在需要时推送更新,客户端在结果可用时发送结果
“混合”(代理既是客户端又是服务器)似乎是显而易见的选择,但该应用程序通常会安装在企业和政府环境中,我担心他们可能会对代理打开端口有问题。我在过度考虑这个问题吗?
我是否遗漏了其他的优缺点?