社区
C#
帖子详情
服务端与客户端的数据双向同步设计问题
bfqyvek
2008-04-23 03:08:36
一套连锁系统,采用C/S结构,要使服务端与客户端的数据双向同步更新\操作等设计,客户端也有数据库.现要求服务端与客户端的数据互同步操作;
从客户端到服务端可做触发器与服务器进行数据同步.
但如从服务端到客户端,服务端如何操作客户端数据.数据如何同步呢.
望各仁兄,能提供建议\例子等等相关的方法.谢谢
顶者有分!!!
...全文
461
21
打赏
收藏
服务端与客户端的数据双向同步设计问题
一套连锁系统,采用C/S结构,要使服务端与客户端的数据双向同步更新\操作等设计,客户端也有数据库.现要求服务端与客户端的数据互同步操作; 从客户端到服务端可做触发器与服务器进行数据同步. 但如从服务端到客户端,服务端如何操作客户端数据.数据如何同步呢. 望各仁兄,能提供建议\例子等等相关的方法.谢谢 顶者有分!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Merfs
2009-06-20
打赏
举报
回复
我们公司刚开发一款数据库同步软件,sqlserver与sqlserver同步更新,双向同步,
内网一台SQL ,外网固定IP一台SQL,A更新,B也更新,B更新了,A也同步更新,不会死循环,支持断网保存数据,ftp软件同步文件
有需要可以联系我:地址:深圳 email:merfs@126.com 15818710282
yagebu1983
2008-04-26
打赏
举报
回复
看了这么多人的留言!!
学到很多东西!!
yzlxy
2008-04-26
打赏
举报
回复
晕,提交页面出错了,怎么发了这么多次,
请版主过来处理一下,只保留一份
楼主的问题有没有解决?
bfqyvek
2008-04-24
打赏
举报
回复
谢谢各位兄弟
yzlxy
2008-04-23
打赏
举报
回复
绝对的实时同步是做不到的。
网络是随时可能发生断网情况的,一旦断网,当前事务如何处理、如何续传又是一套复杂的程序
ydsunny 的方案应该是应用的比较多的一种
对于客户端:保证客户单交易模块的稳定、快速是首要考虑的。
可以采取Xml进行数据缓存。
客户端每发生新单据,则保存到客户端数据库,同时写入到待交换的xml文档中
定时器发生后,提交该xml文档, 如果此时因为断网、服务器繁忙等原因超时响应,则退出交换,保持该文档,
新数据继续存入到这里, 待下一轮定时器发生后再提交。
如此轮训,一旦提交服务器成功,就清掉当前xml文档,以便存放新单据。
至于服务端向客户端同步,也是同理
迄今为止,所有的网络协议都是请求/应答式的,此时服务器就是客户端,客户机就是服务器
所以C/S两端都要有EDI服务程序来响应请求
yzlxy
2008-04-23
打赏
举报
回复
绝对的实时同步是做不到的。
网络是随时可能发生断网情况的,一旦断网,当前事务如何处理、如何续传又是一套复杂的程序
ydsunny 的方案应该是应用的比较多的一种
对于客户端:保证客户单交易模块的稳定、快速是首要考虑的。
可以采取Xml进行数据缓存。
客户端每发生新单据,则保存到客户端数据库,同时写入到待交换的xml文档中
定时器发生后,提交该xml文档, 如果此时因为断网、服务器繁忙等原因超时响应,则退出交换,保持该文档,
新数据继续存入到这里, 待下一轮定时器发生后再提交。
如此轮训,一旦提交服务器成功,就清掉当前xml文档,以便存放新单据。
至于服务端向客户端同步,也是同理
迄今为止,所有的网络协议都是请求/应答式的,此时服务器就是客户端,客户机就是服务器
所以C/S两端都要有EDI服务程序来响应请求
yzlxy
2008-04-23
打赏
举报
回复
绝对的实时同步是做不到的。
网络是随时可能发生断网情况的,一旦断网,当前事务如何处理、如何续传又是一套复杂的程序
ydsunny 的方案应该是应用的比较多的一种
对于客户端:保证客户单交易模块的稳定、快速是首要考虑的。
可以采取Xml进行数据缓存。
客户端每发生新单据,则保存到客户端数据库,同时写入到待交换的xml文档中
定时器发生后,提交该xml文档, 如果此时因为断网、服务器繁忙等原因超时响应,则退出交换,保持该文档,
新数据继续存入到这里, 待下一轮定时器发生后再提交。
如此轮训,一旦提交服务器成功,就清掉当前xml文档,以便存放新单据。
至于服务端向客户端同步,也是同理
迄今为止,所有的网络协议都是请求/应答式的,此时服务器就是客户端,客户机就是服务器
所以C/S两端都要有EDI服务程序来响应请求
yzlxy
2008-04-23
打赏
举报
回复
绝对的实时同步是做不到的。
网络是随时可能发生断网情况的,一旦断网,当前事务如何处理、如何续传又是一套复杂的程序
ydsunny 的方案应该是应用的比较多的一种
对于客户端:保证客户单交易模块的稳定、快速是首要考虑的。
可以采取Xml进行数据缓存。
客户端每发生新单据,则保存到客户端数据库,同时写入到待交换的xml文档中
定时器发生后,提交该xml文档, 如果此时因为断网、服务器繁忙等原因超时响应,则退出交换,保持该文档,
新数据继续存入到这里, 待下一轮定时器发生后再提交。
如此轮训,一旦提交服务器成功,就清掉当前xml文档,以便存放新单据。
至于服务端向客户端同步,也是同理
迄今为止,所有的网络协议都是请求/应答式的,此时服务器就是客户端,客户机就是服务器
所以C/S两端都要有EDI服务程序来响应请求
yzlxy
2008-04-23
打赏
举报
回复
绝对的实时同步是做不到的。
网络是随时可能发生断网情况的,一旦断网,当前事务如何处理、如何续传又是一套复杂的程序
ydsunny 的方案应该是应用的比较多的一种
对于客户端:保证客户单交易模块的稳定、快速是首要考虑的。
可以采取Xml进行数据缓存。
客户端每发生新单据,则保存到客户端数据库,同时写入到待交换的xml文档中
定时器发生后,提交该xml文档, 如果此时因为断网、服务器繁忙等原因超时响应,则退出交换,保持该文档,
新数据继续存入到这里, 待下一轮定时器发生后再提交。
如此轮训,一旦提交服务器成功,就清掉当前xml文档,以便存放新单据。
至于服务端向客户端同步,也是同理
迄今为止,所有的网络协议都是请求/应答式的,此时服务器就是客户端,客户机就是服务器
所以C/S两端都要有EDI服务程序来响应请求
bfqyvek
2008-04-23
打赏
举报
回复
还有兄弟有其他解决办法吗?
bfqyvek
2008-04-23
打赏
举报
回复
谢谢ydsunny的建议;
由EDI定时(如每融10分钟)抓取相关单据以xml文档,这样的话,会不会每次都要对比整个数据库,进而选择有更新的数据.
如果这样,不是加重服务器的压力吗.如时间隔久,数据又不够准确,时间短的话,服务器压力大?
像这样情况.有没有更好的解决方式呢?
九章落地
2008-04-23
打赏
举报
回复
客户端通过触发器,把数据传输到服务器的方式不可取。若客户端与服务器之间的网络不顺畅,或者数据量太大,客户端的用户体验会比较差,而且数据的完整性也得不到保障。例如,等半天都没完成一份单!
较为可行的方法是,开发一个独立的EDI程序,负责服务器数据库与客户端数据库之间的数据交换.
1.数据交换EDI程序,可以选择Ftp或WebService作为数据交换技术.
2.服务器的数据改动后,由EDI定时(如每融10分钟)抓取相关单据以xml文档或其他文档的形式导出,导给客户端数据库.
3.客户端亦有一个EDI程序,定时导入服务器发出的相关单据,并把客户端的数据导出给服务器。
分布式架构的系统,若不设计一个健壮的数据交换组件,后期的维护必定付出沉重的代价!
bfqyvek
2008-04-23
打赏
举报
回复
hanjun1024 ,用客户端定期轮询服务器,就不能实现实时数据同步了.
达不到要求啊.现在的客户要求双向数据同步.我找不到好的解决办法.
望各仁兄,给些建议与相关资料解决方法.相类似的都行.谢谢!
hanjun1024
2008-04-23
打赏
举报
回复
webservice是被动的,要双向有难度,能想到的办法只有客户端定期轮询服务器。Remoting可以实现事件,这样就能双向了。
bfqyvek
2008-04-23
打赏
举报
回复
楼上的兄弟,用webservice,如何实现双向?能说一下吗.
从客户端到服务端是没有问题.主要是从服务端到客户端,服务端如何让客户端也实时更新数据.
hanjun1024
2008-04-23
打赏
举报
回复
可以使用Remoting,双向听事件。
zccmy22
2008-04-23
打赏
举报
回复
webservice
bfqyvek
2008-04-23
打赏
举报
回复
jamesfay ,我是要实现双向的啊.
从客户端到服务端是没有问题.
问题是,从服务端到客户端,服务端如何让客户端也实时更新数据.
jamesfay
2008-04-23
打赏
举报
回复
SQL Republication
bfqyvek
2008-04-23
打赏
举报
回复
kk706,单向是可以了.双向如何做呢
加载更多回复(1)
WebSocket
客户端
和
服务端
实例源码
WebSocket
客户端
和
服务端
实例源码 WebSocket ws实例 HTML5 用java实现的
服务端
Websocket与服务器的正常通信 众所周知,Web 应用的交互过程通常是
客户端
通过浏览器发出一个请求,服务器端接收请求后进行处理并返回结果给
客户端
,
客户端
浏览器将信息呈现,这种机制对于信息变化不是特别频繁的应用尚可,但对于实时要求高、海量并发的应用来说显得捉襟见肘,尤其在当前业界移动互联网蓬勃发展的趋势下,高并发与用户实时响应是 Web 应用经常面临的
问题
,比如金融证券的实时信息,Web 导航应用中的地理位置获取,社交网络的实时消息推送等。 传统的请求-响应模式的 Web 开发在处理此类业务场景时,通常采用实时通讯方案,常见的是: 轮询,原理简单易懂,就是
客户端
通过一定的时间间隔以频繁请求的方式向服务器发送请求,来保持
客户端
和服务器端的
数据
同步
。
问题
很明显,当
客户端
以固定频率向服务器端发送请求时,服务器端的
数据
可能并没有更新,带来很多无谓请求,浪费带宽,效率低下。 基于 Flash,AdobeFlash 通过自己的 Socket 实现完成
数据
交换,再利用 Flash 暴露出相应的接口为 JavaScript 调用,从而达到实时传输目的。此方式比轮询要高效,且因为 Flash 安装率高,应用场景比较广泛,但在移动互联网终端上 Flash 的支持并不好。IOS 系统中没有 Flash 的存在,在 Android 中虽然有 Flash 的支持,但实际的使用效果差强人意,且对移动设备的硬件配置要求较高。2012 年 Adobe 官方宣布不再支持 Android4.1+系统,宣告了 Flash 在移动终端上的死亡。 从上文可以看出,传统 Web 模式在处理高并发及实时性需求的时候,会遇到难以逾越的瓶颈,我们需要一种高效节能的
双向
通信机制来保证
数据
的实时传输。在此背景下,基于 HTML5 规范的、有 Web TCP 之称的 WebSocket 应运而生。 早期 HTML5 并没有形成业界统一的规范,各个浏览器和应用服务器厂商有着各异的类似实现,如 IBM 的 MQTT,Comet 开源框架等,直到 2014 年,HTML5 在 IBM、微软、Google 等巨头的推动和协作下终于尘埃落地,正式从草案落实为实际标准规范,各个应用服务器及浏览器厂商逐步开始统一,在 JavaEE7 中也实现了 WebSocket 协议,从而无论是
客户端
还是
服务端
的 WebSocket 都已完备,读者可以查阅HTML5 规范,熟悉新的 HTML 协议规范及 WebSocket 支持。
java Socke
服务端
与
客户端
双向
发消息
1.通信过程 网络分为应用层,http、ssh、telnet就是属于这一类,建立在传输层的基础上、其实就是定义了各自的编码解码格式,分层如下: 2.Socket连接 上述通信都要先在传输层有建立连接的基础上才能完成,TCP通过三次握手建立连接: Socket与http的区别可以看下这个: https://www.cnblogs.com/meier1205/p/5971313.html 还有搜索:http下午茶3.JAVA socket
客户端
与
服务端
互发消息 实现结构图:
客户端
和
服务端
分别通过俩个线程来
Netty简单实现
服务端
和
客户端
并通信
Netty简单实现
服务端
和
客户端
并通信
Android
客户端
与服务器端
数据
同步
应用场景 假设我们在做一个通讯录软件,我们可以在多个
客户端
对
服务端
的
数据
进行增删改。那么这篇文章中我们要解决的
问题
是如何在
客户端
与
服务端
只传输经过增删改操作的
数据
,来使得
客户端
与
服务端
的
数据
是
同步
的。 名词解释 Anchor:
同步
锚点,用时间戳来表示,用来发现两端
数据
变化的部分
客户端
表
设计
每条记录包含两个用来
同步
用的字段: status : 用来标识记录的状态
【计算机网络 12】使用C#实现socket
服务端
和
客户端
通信
一、socket通信 socket翻译成中文就是“套接字”的意思,所谓的socket编程就是指用计算机语言通过编程来实现计算机之间的通信
问题
。socket通信技术就是两台联网或者多态联网的计算机之间的
数据
交互技术。 二、socket典型应用 socket最典型的应用就是web服务器和浏览器。 1、浏览器获取用户输入的URL(全球资源定位符),向web服务器发送请求; 2、web服务器接收到URL并进行分析,将对应的网络内容以及资源返回给浏览器; 3、浏览器接收到web服务器返回的网页内容以及
C#
110,534
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章