当前位置:首页 > 数据库 > 正文

什么是同步通信和异步通信,简述异步通信的概念

什么是同步通信和异步通信,简述异步通信的概念

大家好,感谢邀请,今天来为大家分享一下什么是同步通信和异步通信的问题,以及和简述异步通信的概念的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希...

大家好,感谢邀请,今天来为大家分享一下什么是同步通信和异步通信的问题,以及和简述异步通信的概念的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

两个设备同步的原理

分布式数据库互备

分布式应用配置同步

多设备应用数据同步

本文想借此展开相关的理论和实例来深入研究一下数据同步问题。

数据同步理论

同步方式

同步客户端服务器(SynchronousClient-Server,S-CS)

应用直接和远程服务通讯,将数据同步

实例:微信发送一条消息,只有消息发送完成过后才会存储在本地消息发送成功列表中,未发送成功会提示重新发送

异步客户端服务器(AsynchronousClient-Server,A-CS)

应用将数据保存在本地,应用保持本地数据和远程数据的同步(后台运行)

实例:MacQuickTime录制了一段视频,存储在文件系统中,iCoud自动将文件系统中的数据同步到云端

异步对等方式(AsynchronousPeer-to-Peer,A-P2P)

应用数据保存在本地,应用保持本地数据和其他端的数据同步,每个端存储数据的完成备份,服务器端不存在备份。

数据同步要素

识别

对象识别需要使用全局标识符uuids(universaalyUniqueidentifiers)

变化追踪

描述算法如何确定自上一次数据同步后,数据发生了哪些变化,然后本地存储应该如何修改。

颗粒大小:当某个属性字段被修改过后,确定追踪这个字段还是追踪整个实例

记录变化:是否变化简单情况可以用一个Boolean的标示来表示,也可能需要用日志来记录变化并附加时间戳

软删除:

冲突解决

当多端都在共同修改一个实例的时候,就会出现冲突。

简单情况:读写被认为是原子操作,解决冲突可以看成选择什么版本的存储。如iCloud出现冲突时,应用提示用户选择文档的什么版本

变化优先级策略:

最近一次的同步操作确定级别最高,所有这一次同步操作的变化覆盖之前存储的数据,

最近一次修改时间戳确定优先级别

避免随机策略,总是保证一致的选择策略

对等同步通讯(S-P2P)

假设我们有一个像iTunes那样的Mac应用程序,它可以通过USB、蓝牙或者Wi-Fi和iPhone进行同步通讯。(凭借快速的本地网络,我们不用太在意限制数据传输大小)

第一步:当iPhone第一次同步的时候,两个应用程序通过Bonjour发现对方,然后Mac应用程序将它的所有存储数据压缩,通过套接字将压缩后的文件传递给iPhone应用程序,然后iPhone将其解压并安装。

第二步:现在假设用户使用iPhone对已经存在的对象做了修改(比如,给一首歌打了星级)。该设备上的应用程序给该对象设置了一个Boolean型的标记(比如,changedSinceSync),用来表示该对象是新的还是已经被修改过的。

第三步:当下一次同步发生的时候,iPhone应用程序将它的所有数据存储压缩并回发给Mac。Mac装载这些数据,寻找被修改的实例,然后更新它自己对应的数据。然后Mac又将更新后的数据存储的完整拷贝发送给iPhone,用来替代iPhone已经存在的数据存储,然后整个流程又重新开始。

总结来说,同步操作需要设备能够向其他设备传输数据,并且能够决定哪些被修改、合并,然后回传更新后的数据。保证了这两个设备同步之后具有相同的数据,所以,有很强的健壮性。

客户端-服务器同步通讯(S-CS)

当加入了服务器的时候,服务器是为了能够更加灵活地同步数据,但是它是以数据传输和存储为代价的。需要尽可能地减少通讯开销,所以来回地拷贝整个数据是不可行的。

前置条件:假设数据存储在服务器上的数据库中,并且每一个对象都有一个最后更新的时间戳。

第一步:当客户端程序第一次同步的时候下载所有的数据,然后建立一个本地存储,同时也在本地记录同步的时间戳。

第二步:当客户端程序发生改变的时候,它会更新对象的最后更新时间戳。

第三步:当下一次同步发生的时候,客户端会决定自上一次同步后,哪些对象做了修改,然后仅把被修改的对象发送给服务器。服务器会合并这些修改。如果服务器对某一个对象的拷贝被另一个客户端做了修改,那么它会以最近的时间戳为准来保存修改。然后服务器会回传所有比上一次从客户端发来的时间戳新的变化。这需要考虑到合并的问题,删除所有覆盖的变化。

也许有很多不同的方法。比如,你可以为每一个属性引入一个时间戳,然后在属性粒度级去追踪变化。或者你可以在客户端合并所有的数据,然后将合并后的结果发回给服务器,这实际上是互换了角色。但是,基本说来,一个设备发送修改结果给其他设备,然后接收方合并并回发合并后的结果。

删除需要考虑更多。因为一旦删除了一个对象,就不可能跟踪它了。一种选择是使用软删除,也就是对象并不是被真正的删除,而是标记为删除(比如使用一个Boolean属性)。(这和在Finder中删除一个文件类似。只有当你清空的垃圾桶之后,它才被永久地删除。)

客户端-服务器异步通讯(A-CS)

异步的数据同步框架和服务的吸引力在于它们提供了现成的解决方案。S-CS模式是要定制的,也就是说得为不同的应用程序以及不同的平台编写不同的代码。

异步服务(比如,DropboxDatastoreAPI和WasabiSync)通常提供框架,让应用程序开发者用起来好像是本地数据存储。这些框架在本地保存修改,然后在后台控制与服务器的同步。

A-CS和S-CS的一个最主要的区别在于,A-CS框架额外提供的抽象层,屏蔽了直接参与同步的客户端代码。这也意味着,同一服务可以用于所有的数据模型,而不是特定的一种模型。

同步和异步的概念

同步指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系。同步(英语:Synchronization),指对在一个系统中所发生的事件(event)之间进行协调,在时间上出现一致性与统一化的现象。在系统中进行同步,也被称为及时(intime)、同步化的(synchronous、insync)。

异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位。

什么是同步与异步时序逻辑电路

同步:所有触发器共用一个触发信号源CP,异步:所有触发器没有共用一个CP源,同步:优点,所有触发器的状态同时刷新,信号延迟时间短,缺点:结构复杂异步:优点,结构简单,缺点,触发器状态刷新不同步,信号延迟可能会累积从而出现状态异常。

计算机网络通信采用同步和异步两种方式,但传送效率最高的是哪种方式

一般情况下是同步传送效率比异步高但假设一条信道上只有两个电脑在传送信息这时效率就是一样的

交流同步和交流异步电机的区别

区别是:磁场转速和转子转速的差异。

交流同步电机的磁场转速与转子同步。

交流异步电机的磁场转速与转子不同步,有差异。

同步电机的精度高,但制造难度大、造价高、维修困难。

异步电机虽然反应慢,但制造容易、造价相对低,且维修容易。应用广泛。

程序异步和同步有何区别

同步和异步的区别有:

1、概念不一样:这是两个相对的概念,同步是让两个或多个数据库内容保持一致,或者按需要部分保持一致。异步则是计算机多线程的异步处理。异步的概念和同步相对。

2、要求不一样:“同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。异步通信发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。

3、特点不一样:异步通信的好处是通信设备简单、便宜,但传输效率较低

关于什么是同步通信和异步通信和简述异步通信的概念的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

最新文章