首页新闻找找看学习计划

关于数据推送的解决方案

0
悬赏园豆:50 [已解决问题] 解决于 2013-03-18 11:16

  目前有个A系统,需要将获取的数据,推动给其他应用系统,比如有3个应用系统,其实会有更多App1,App2,App3,由于这3个应用系统不知道什么时候会有他们的数据,所以需要A系统获得最新数据以后,主动推送给这3个应用,目前不知道采用什么方案比较好。

方案1:应用系统不断轮询A系统提供额web Service去查询是否有他们的数据,这个方案由于应用会很多,会造成不必要的资源浪费,因为可能有些应用几天都不会有数据。

方案2:各应用系统自己开发web service接收数据,并在A系统提供各自web service的地址,A系统通过不同类型的数据调用不同地址的接口,这个方案需要其他应用根据统一的标准去时间这个接口,A系统只要更换连接地址。缺点就是其他应用的接口实现都要统一。

 

想问下有没有更好的方案,目前用的是C#实现。

Leon_yang的主页 Leon_yang | 初学一级 | 园豆:157
提问于:2013-02-20 10:09
< >
分享
最佳答案
0

其实这里面有几个问题需要注意:

1、A系统的数据是否需要及时通知其他APP,如果不需要则可以定时交互,当然这个时间要根据实际情况确定。

2、不管什么解决方案,A系统和其他App都需要写接口,那么你是否有权利定义这些接口?

3、“A系统通过不同类型的数据调用不同地址的接口”:说明A系统的主要任务是确定去哪个接口获取数据,

现在分2中情况的解决方案:

1、不要及时更新数据

     只需要在A系统或者App设置定时任务去更新数据即可

2、及时更新数据

        此时需要数据系统通知A系统,在由A系统通知App

我对实际情况还不是很了解,有的地方可能理解错误,如果有问题在联系,另外方案1不推荐,不仅对App是消耗,对A系统也是极大的消耗,因为App会很多的。

收获园豆:30
老孟程序员 | 初学一级 |园豆:55 | 2013-02-20 10:46

数据需要及时更新的,这是个短信平台,A系统不断监听移动等的接口获取最新短信,然后判断这个短信回复是发给哪个应用的,目前我这里的办法就是所有应用都实现我定的web service接口,然后注册的时候直接app1,web service地址1  app2,web service地址2,然后我通过判断是给app1的,那么代理类就连接到app1的web service地址1。这个方法是目前我能想到的,但是缺点就是 各个应用的接收web service的接口都要统一,否则没办法通过切换地址调用方法。

Leon_yang | 园豆:157 (初学一级) | 2013-02-20 15:25

@Leon_yang: 你这实现是正确,但不知道实现起来是否有困难,主要是App是否能统一接口,这个不是你工作的范畴,这需要去和个App负责人沟通。

老孟程序员 | 园豆:55 (初学一级) | 2013-02-20 15:32
其他回答(2)
0

同电脑的话命名管道怎么样?

收获园豆:10
56180825 | 园豆:1128 (小虾三级) | 2013-02-20 15:10

是不同电脑

支持(0) 反对(0) Leon_yang | 园豆:157 (初学一级) | 2013-02-20 15:25
0

用Redis的Publish/Subscribe

Redis支持这样一种特性,你可以将数据推到某个信息管道中,然后其它人可以通过订阅这些管道来获取推送过来的信息。

收获园豆:10
Alvin | 园豆:828 (小虾三级) | 2013-02-21 11:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册