存放在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推送数据,数据结构应该怎样定义?的更多相关文章

  1. SQL Server 2000向SQL Server 2008 R2推送数据

    [文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的 ...

  2. Flume推送数据到SparkStreaming案例实战和内幕源码解密

    本期内容: 1. Flume on HDFS案例回顾 2. Flume推送数据到Spark Streaming实战 3. 原理绘图剖析 1. Flume on HDFS案例回顾 上节课要求大家自己安装 ...

  3. 使用SignalR ASP.NET Core来简单实现一个后台实时推送数据给Echarts展示图表的功能

    什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功能添加到应用程序的功能. 实时 web 功能使服务器端代码可以立 ...

  4. java接口对接——调用别人接口推送数据

    实际开发中经常会遇到要和其他平台或系统对接的情况,实际操作就是互相调用别人的接口获取或者推送数据, 当我们调用别人接口推送数据时,需要对方给一个接口地址以及接口的规范文档,规范中要包括接口的明确入参及 ...

  5. SuperSocket主动从服务器端推送数据到客户端

    关键字: 主动推送, 推送数据, 客户端推送, 获取Session, 发送数据, 回话快照 通过Session对象发送数据到客户端   前面已经说过,AppSession 代表了一个逻辑的 socke ...

  6. httpclient post推送数据

    客户端代码 /** * 从接口获取数据 * @param url 服务器接口地址 * @param json 传入的参数 若获取全部,此项为空 * @return 返回查询到的数据 * @throws ...

  7. Asp.net Core3.1+Vue 使用SignalR推送数据

    本文就简单使用 往前端页面推送消息 SignalR 是什么 SignalR是一个.NET Core/.NET Framework的开源实时框架. SignalR的可使用Web Socket, Serv ...

  8. hive向es推送数据

    第一步:首先要保证网络是通的,很多公司里子网遍布,要和运维和工程侧同事确认好网络是通的,es的地址可以通过curl es地址的方式测试一下. 第二步:下载需要的jar包,必须的是es-hadoop的包 ...

  9. C#服务端通过Socket推送数据到Android端App中

    需求: 描述:实时在客户端上获取到哪些款需要补货. 要求: 后台需要使用c#,并且哪些需要补货的逻辑写在公司框架内,客户端采用PDA(即Android客户端 版本4.4) . 用户打开了补货通知页面时 ...

随机推荐

  1. 初探响应式Web设计

    公司书柜有本<响应式Web设计:HTML5和CSS3实战>,大概就认真看了前面几章,后面大部分介绍css3(随便找本手册都可以了要你可用!) <响应式Web设计:HTML5和CSS3 ...

  2. 微信开放平台 获取 component_verify_ticket

    <?php /** * @author zhaozhuobin * @date:2016-06=07 * */ namespace common\components;use DOMDocume ...

  3. java-StringTokenizer类

    StringTokenizer类别可以通过某个字符或者多个字符作为分界符,来将字符串划分为多个标记(token). package com.example.helloworld; import jav ...

  4. 我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)

    一.面向对象基础 面向对象名词解释: 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公 ...

  5. 推荐font-size的单位 % em单位

    在如今这个提倡可用性设计以及用户体验设计的网络时代,CSS也是要一同参与其中的.大部分人在CSS代码编写中总是先对整体定义字体尺寸,中文情况下一般为12px,而其实这样以来在通过IE顶部菜单中的“察看 ...

  6. springMVC + mybatis 搜索 分页等

    mybatis-3.0.5spring-core-3.2.0.RELEASE等MyBatis3+Spring3当前Spring版本(3.0.5)中未提供对MyBatis3的支持使用第三方jar包进行整 ...

  7. Linux 终端部分重要快捷键

    tab  自动补全文件名,目录名或命令名ctrl+c  强行终止当前程序Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+z 将当前程序放到后台运行 ...

  8. 菜鸟系列之C/C++经典试题(七)

    找含单链表的环入口点 :怎样推断单链表中是否存在环(即下图中从结点E到结点R组成的环)? ,则在low进入环后继续绕环遍历一周之前fast必定能与low重合(且必定是第一次重合).于是函数可写例如以下 ...

  9. 2013 成都网络赛 1004 Minimum palindrome

    题目大意:用m个字母组成一个长度为N的字符串,使得最长的回文子串 的长度最小. 并且要求字典序最小. 思路:分类模拟. 当M为1 的时候就直接输出N个A 当M大于2的时候就循环ABC 当M等于2的时候 ...

  10. zIndex属性在IE中无效

    在ie中他的子类的zindex就以父类为准: <!doctype html> <html> <head> <meta charset="utf-8& ...