`

多个Android客户端同步服务器端表中数据架构分析

 
阅读更多
 

需求:Android客户端有N个,服务器端只有一个,客户端会不定时的到服务器端同步数据。

思路分析:
    由于客户端的个数不确定,而且是不定时的到服务器端同步数据,所以应该由客户端来维护何时发起请求.
    客户端和服务器端都维护一个TableVersion表,服务器端某个数据表中的数据改变时同时修改服务器端的TableVersion表.如下图:

table1中添加了1条数据,rowVersion值为4(自增),修改了1条数据,则把这条数据的rowVersion修改为5(自增),然后又添加了1条数据,这时这条数据的rowVersion为6(自增).table1中每次变动都会同时修改服务器端的TableVersion中table1这一条的数据的Version值,保持当前表的最大值.


    客户端发起同步请求时携带客户端的TableVersion数据传递给服务器端,服务器端比对传递过来的客户端TableVersion和服务器端TableVersion的差异就知道了哪些表发生了变化,如下图:

通过比对知道了table1和table3中的数据发生了变化,这时就需要把table1/table3中变化的数据和TableVersion中的全部数据传递给客户端,客户端修改本地的table1/table3和TableVersion中的数据,这就完成了一次同步的过程.例如table1中的数据rowVersion大于3的数据是变化了的数据,因为客户端tableVersion当前记录代表了本地数据的最大版本,只同步这些rowVersion大于3的数据就是只同步变化了的数据.

 

关于客户端和服务器端交互请参考:

  封装一个类搞定90%安卓客户端与服务器端交互  http://blog.csdn.net/lk_blog/article/details/7706348 

android端数据库处理框架请参考:

 Android sqlite数据库操作通用框架AHibernate(一) http://blog.csdn.net/lk_blog/article/details/7455992

 

数据传递可以使用json,请参考:

 Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 http://blog.csdn.net/lk_blog/article/details/7685169

分享到:
评论

相关推荐

    本科毕业设计,一个基于Android的APP作为客户端,服务器端则是JavaWeb项目。.zip

    3. **数据管理**:Android客户端可能使用SQLite数据库存储本地数据,或者利用SharedPreferences进行轻量级的数据持久化。此外,还可以使用Room库来提供更方便的数据操作接口。 4. **网络通信**:客户端与服务器之间...

    若水新闻客户端和服务器端

    这个系统的设计可能包括用户界面、数据同步、网络通信、安全性等多个关键方面。 【描述】:“若水新闻客户端和服务器端” 描述简洁,没有提供具体的技术细节,但我们可以推测这是一个完整的新闻资讯应用解决方案,...

    Android 仿QQ客户端 服务器

    这个项目涵盖了服务器端、客户端以及数据库的完整架构,为学习Android开发和服务器编程提供了宝贵的实践机会。 1. **服务器端**:在服务器端,通常会采用一种支持大量并发连接的技术,如Java的Socket编程或基于...

    传统蓝牙客户端和服务器端通信

    客户端-服务器端模型是蓝牙通信中的常见架构,其中一方扮演服务提供者的角色(服务器端),另一方作为服务请求者(客户端)。服务器端通常会监听特定的蓝牙服务,并等待客户端发起连接请求。客户端则搜索周围的服务...

    Android 新闻客户端+服务器

    【Android 新闻客户端+服务器】项目是一个完整的移动应用开发实例,专为Android平台设计,它包含客户端应用程序和服务器端的源代码,使开发者能够快速理解并实现新闻展示和数据交互的功能。这个项目对于想要学习...

    Android新闻网站客户端源代码(含服务器端源码).zip_android_android 服务_android服务器_服务器

    本资源包含一个完整的Android新闻网站客户端的源代码,同时提供了服务器端的源码,这对于学习和开发Android应用,特别是涉及到网络通信和数据同步的开发者来说,是一个宝贵的实践案例。下面将详细阐述其中涉及的主要...

    加入数据库mysql实现android注册登陆功能的客户端服务器源码与解析

    在这个架构中,Android客户端作为用户交互的界面,发送请求到服务器,服务器处理请求并与MySQL数据库进行交互,然后将结果返回给客户端。这种设计模式确保了数据的安全性和应用程序的可扩展性。 1. **MySQL数据库...

    openfire Im android 客户端

    9. **跨平台兼容**:Openfire IM不仅有Android客户端,还支持iOS、Windows、Mac等多个操作系统,方便多设备间的通信。 10. **易于部署**:由于Openfire是开源项目,因此开发者可以根据需要自行部署服务器,控制成本...

    聊天室设计(服务器端设计和客户端设计)

    在IT行业中,设计一个...以上就是关于“聊天室设计(服务器端设计和客户端设计)”的相关知识点,涵盖从基础架构到用户体验的多个层面。在实际项目中,这些知识将指导开发者创建出高效、安全且用户友好的聊天室系统。

    android教务选课学生成绩管理系统服务器和客户端

    总结,构建一个Android教务选课学生成绩管理系统,需要对服务器端的架构设计、数据库管理、API开发有深入理解,同时在客户端方面,要掌握UI设计、网络请求、数据处理等技能。这个案例不仅是一个学习安卓服务器和...

    PC客户端与Android服务端的Socket同步通信(USB)

    这个话题涉及到多个关键知识点,包括Android的USB通信、Socket编程以及客户端-服务器架构。下面将详细介绍这些概念。 首先,让我们了解Android USB通信。Android系统提供了一个称为USB主机模式(Host Mode)的功能...

    Android手机游戏服务器端Server源代码

    在Android手机游戏开发中,服务器端扮演着至关重要的角色,它是连接客户端(即手机游戏应用)与游戏逻辑、数据存储的核心桥梁。本资源提供的是一个完整的Android手机游戏服务器端Server的源代码,对于理解游戏服务器...

    新浪微博android手机端和客户端源代码

    在Android客户端开发中,以下几个核心知识点是不能忽视的: 1. **MVVM架构**:现代Android开发常采用MVVM(Model-View-ViewModel)模式,它能够清晰地分离数据模型、视图和视图模型,提高代码可测试性和可维护性。...

    Android应用源码之口袋微博 服务器 客户端代码.zip

    本篇将聚焦于"Android应用源码之口袋微博 服务器 客户端代码.zip"这一资源,通过解析其服务器和客户端代码,揭示Android应用的架构设计、网络通信以及数据存储等多个关键知识点。 首先,我们关注的是Android客户端...

    Android移动终端数据同步技术研究与应用

    它基于客户端/服务器模型,由客户端和服务器端两个设备角色组成。 1. **SyncML同步系统架构**:包括三个部分:表示协议、同步协议和传输绑定方式。表示协议定义了数据类型和命令格式,同步协议描述了数据同步的会话...

    安卓消息推送服务器端和客户端.rar

    在Android应用开发中,消息推送是一项重要的功能,它能让用户即使在不打开应用程序的情况下也能收到新消息的...同时,这也涉及到网络编程、Android组件、服务器架构等多个领域的知识,对提升开发者技能有极大的帮助。

    Android警务通客户端服务端源码

    总的来说,Android警务通客户端服务端源码是一个涵盖Android应用开发、服务器端开发、数据库管理、网络安全、数据同步等多个领域的综合性项目,对开发者的技术要求较高。理解并掌握这些知识点,对于开发类似的应用...

    基于Android ASP.NET架构的异构平台间数据通信技术的探讨与实现.pdf

    这就要求开发者了解数据库的基本操作,并能够实现客户端和服务器端的数据同步。 总结来说,实现Android客户端与***服务器之间稳定、高效的异构平台数据通信,需要处理好不同平台间的通信协议和数据格式问题,并考虑...

    android开源项目源码,完整商城项目源码(服务端+客户端).zip

    通过这个开源项目,开发者可以全面了解一个实际的电商应用的开发流程,从用户界面的设计到服务器端的实现,涵盖了移动开发的多个核心领域。对于想要提升Android开发技能或希望构建自己的商城应用的人来说,这是一个...

    Android智能家居手机客户端源代码(未完结)

    1. **服务器架构**:VB(Visual Basic)构建的服务器端可能采用了Web服务架构,如ASP.NET,提供RESTful API供Android客户端调用。 2. **数据库交互**:服务器可能使用SQL Server或MySQL等数据库存储家庭设备的状态...

Global site tag (gtag.js) - Google Analytics