WebService推送数据,数据结构应该怎样定义?
存放在Session有一些弊端,不能实时更新。server压力增大等...
要求:将从BO拿回来的数据存放在UI Cache里面,数据库更新了就通过RemoveCallback "告诉"UI Cache。实现更新。
环境:BO 提供一个WebService给UI取数据。UI也有一个WebService,提供给BO 通知UI更新数据。数据结构的原生类始终在BO层。
本来是想在数据库Update 后,在BO将Cache的数据推送至UI Cache,但当中遇到了自己解决不了的问题:
数据结构转换问题:
大家知道WebService数据通过一个数据协议,将数据序列化成xml传送。
UI Call BO的WebService取数据,数据原生结构在BO,数据也在BO,UI期望得到的数据结构是对BOWebService引用生成的Reference.cs里面自己主动生成的。
UI取数据能够成功。
可是BO Call UI WebService推送数据的时候就成问题了:
BO Call UI的WebService。数据结构非常应该是在UI层定义的(个人理解) ,可是如今数据结构的原生类始终是在BO层里面的。
BO数据原生结构
UI引用BO WebService生成Reference.cs
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDE2NzAxNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
个人以为在BO 引用UI WebService生成Reference.cs时,EntyAuxiliary又会变了另外一个样子(由于UI的EntyAuxiliary是BO来的。而如今BO又引用UI的EntyAuxiliary,说的复杂点就是BO引用了UI引用BO的EntyAuxiliary)
可是BO引用UI WebService生成的Reference.cs代码里:EntyAuxiliary还是这个样子。
基于以上。BO Call UI WebService:
ReSetCacheData(string key,Object data);
报错:
就算我把原生类数据结构的数据转换成Reference.cs的数据结构也是报相同的错误。
为什么呢?
逼于无奈之下,仅仅好就需求改一改:数据库Update的时候。BO Call UI WebService,让UI自己又一次Call BO WebService取回更新后的数据。
这种方式就是BO通知UI。让UI自己去取数据。而达不到BO推送数据的优点了。
通知方式和UI轮询BO是否有数据更新方式 这种方式是否效率比較低下呢?个人比較不喜欢...
和W讨论过:如今普通的Call WebService流程是。第一种:UI主动Call BO,通过RQ 传送数据,UI主动Call BO。通过RS接收数据。
RQ,RS都是在BO层定义的,两次方式都是UI做主动。
另外一种:而我的情况是,UI 主动Call BO取数据,而BO 主动Call UI 推送数据。
这就是不同点。
W说 client和服务端之间通过WebService传送数据 的方式应该要像第一种。
我BO Call UI 推送数据的时候,数据结构就应该由UI层定义,可是我想:我UI有从BO WebService引用的Reference.cs自己主动生成了EntyAuxiliary,就把Reference.cs里面的EntyAuxiliary当做是在UI定义的数据结构不行吗? 在BO推送数据的时候。我还把原生类的数据转换成了Reference.cs里面的EntyAuxiliary,结果还是不行。。
可能归根结底UI层须要接受的数据类型的原生类型是在BO层里面定义的吧?
下面两张图片是个人记录..
缓存的思考:
问题:
WebService推送数据,数据结构应该怎样定义?的更多相关文章
- SQL Server 2000向SQL Server 2008 R2推送数据
[文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的 ...
- Flume推送数据到SparkStreaming案例实战和内幕源码解密
本期内容: 1. Flume on HDFS案例回顾 2. Flume推送数据到Spark Streaming实战 3. 原理绘图剖析 1. Flume on HDFS案例回顾 上节课要求大家自己安装 ...
- 使用SignalR ASP.NET Core来简单实现一个后台实时推送数据给Echarts展示图表的功能
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功能添加到应用程序的功能. 实时 web 功能使服务器端代码可以立 ...
- java接口对接——调用别人接口推送数据
实际开发中经常会遇到要和其他平台或系统对接的情况,实际操作就是互相调用别人的接口获取或者推送数据, 当我们调用别人接口推送数据时,需要对方给一个接口地址以及接口的规范文档,规范中要包括接口的明确入参及 ...
- SuperSocket主动从服务器端推送数据到客户端
关键字: 主动推送, 推送数据, 客户端推送, 获取Session, 发送数据, 回话快照 通过Session对象发送数据到客户端 前面已经说过,AppSession 代表了一个逻辑的 socke ...
- httpclient post推送数据
客户端代码 /** * 从接口获取数据 * @param url 服务器接口地址 * @param json 传入的参数 若获取全部,此项为空 * @return 返回查询到的数据 * @throws ...
- Asp.net Core3.1+Vue 使用SignalR推送数据
本文就简单使用 往前端页面推送消息 SignalR 是什么 SignalR是一个.NET Core/.NET Framework的开源实时框架. SignalR的可使用Web Socket, Serv ...
- hive向es推送数据
第一步:首先要保证网络是通的,很多公司里子网遍布,要和运维和工程侧同事确认好网络是通的,es的地址可以通过curl es地址的方式测试一下. 第二步:下载需要的jar包,必须的是es-hadoop的包 ...
- C#服务端通过Socket推送数据到Android端App中
需求: 描述:实时在客户端上获取到哪些款需要补货. 要求: 后台需要使用c#,并且哪些需要补货的逻辑写在公司框架内,客户端采用PDA(即Android客户端 版本4.4) . 用户打开了补货通知页面时 ...
随机推荐
- 服务器忘记mysql密码怎么修改?
找到配置文件my.ini ,然后将其打开,可以选择用记事本打开 打开后,搜索mysqld关键字 找到后,在mysqld下面添加skip-grant-tables,保存退出. PS:若提示不让保存时, ...
- IOS 隐藏键盘。
在View的UITextField中经常需要输入完文字后隐藏软键盘,要实现着一点要让View的Controller实现UITextFieldDelegate代理,然后编写相应的代码. #import ...
- 设置textarea文本域不能调整大小 resize
CSS3中新增了resize缩放属性,这个属性可以应用到任意元素.目前只有Webkit内核的浏览器才支持这个css3属性,即Google chrome和Apple safari都支持.而textare ...
- linux禁ping和允许ping的方法
一.系统禁止ping [root@linuxzgf ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 二.系统允许ping [root@li ...
- USB CCID协议和PC/SC标准
CCID是USB Chip/Smart Card Interface Devices,也就是USB芯片智能卡接口设备,是USB规范下的一种设备类型.就像HID设备一样,需要参考USB规范来写固件程序来 ...
- logback自定义格式转换器
创建自定义格式转换符有两步. 首先,必须继承ClassicConverter类.ClassicConverter对象负责从ILoggingEvent 提取信息,并产生一个字符串.例如,LoggerCo ...
- Android抖动动画
//CycleTimes动画重复的次数 public Animation shakeAnimation(int CycleTimes) { Animation translateAnimation = ...
- 基于visual Studio2013解决C语言竞赛题之0405阶乘求和
题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...
- 【MongoDB】windows平台搭建Mongo数据库复制集(相似集群)(一)
Replica Sets(复制集)是在mongodDB1.6版本号開始新增的功能.它能够实现故障自己主动切换和自己主动修复功能成员节点的功能,各个DB之间的数据全然一致,大大减少了单点故障的风险. ...
- for语句之侦查队挑选人、猴子吃桃、5个小朋友算年龄、1 () 2 () 3 ()4 = 4;问括号里我要填 (- 或 +)问题
1.某侦察队接到一项紧急任务,要求在A.B.C.D.E.F六个队员中尽可能多地挑若干人,但有以下限制条件:侦察兵A和B两人中至少去一人: a+b>=1(由于每个队员有两种状态:去与不去,假设不去 ...