数据作为参数或结果传输

时间:2011-03-22 17:25:22

标签: web-services parameters

我希望数据从A点转移到B点。我在A和B中有Web服务。哪种设计更好?

  1. A.GetData():托管在A中,返回数据,将从B
  2. 调用
  3. B.TakeData(Data pData):托管在B中,作为参数传递的数据,将从A
  4. 调用

    为什么接近1或2是最好的方法?

1 个答案:

答案 0 :(得分:1)

您希望根据实际业务问题中的问题/解决方案的外观,实施提取 GetData()推送 TakeData() 。非常粗略的例子是while implementing a fire alarm我会推动它,以便我将这些信息推送到建筑物中的所有人,即使他们没有预料到(polling)这里TakeData()更合适。如果我想实施GetEmployeeSalary,我很少需要向所有订阅者提供这些信息,因为它是我想要提供给那些要求它的人的敏感/机密信息,在验证它们之后也是如此。允许这样做GetData()更有意义。

我不知道你正在使用的技术,但应该有机制来实现推或拉模型(至少WCF有这些WS-Eventing)。

推送时 - 理想情况下,当真实世界需要使用更新来更新多个系统/客户端时。想象一下股票代码网络服务,每个客户都对不同的报价感兴趣。在每次更改时向付费客户发送推送通知,关于每个客户感兴趣的自动收报机可能是有意义的,同时只允许为GetData()提供免费客户端的延迟数据。

  • 当您看到轮询时使用推送(轮询是资源的浪费)
  • 当对Webservices中的事件有分布式处理要求时,首选推送。