00:00
Google port buffer。在这里,我们来先看一下编码和解码的基本介绍。实际上在我们进行网络应用程序编写的时候呢,我们的数据就是我们是这个数据呢,在网络中传输的都是二进制制解码数据,那在发送数据的时候,我们需要一个编码的过程。而在接收数据过后呢,我们需要一个解码的过程,我们来把这一个示意图给同学们简单的画一下,可以这样去理解。同学们,如,比如说这是我们的客户端,比如说这是我们的客户端。OK,高端我把它稍微的处理一下。好,这个客户端呢,客户端在发送数据的时候,他。首先这个数据呢,我们把它称之为业务数据,对吧,叫业务数据。
01:00
业务数据。这还出来业务数据好,那业务数据在发送的时候呢,它往往有一个编码的过程。对他有个编码,那怎么编码呢?我给大家试一下。比如说这是我们的业务数据,对那业务数据发送之前呢,它有一个编码,会会进行一个编码的处理。对,编码编码完了过后呢,然后他会把这个数据呢,通过网络发送到我们的服务器端。比如说这边是服务器。服务端。那服务端通过网络发过去了。我这里用一个线表示。比如说叫传输,我们这儿写一个名称叫传输,或者叫传输。这个叫传输。那传输的过程中呢,它往往就是我们说的二进制制解码,就二进制制解码。
02:01
OK,它是以这种形式来传输的,当然二进制制解码数据被服务器拿到以后呢,其实它不能直接使用,它会做一个什么操作呢?各位他在这里呢,拿到数据过后,会对拿到的二进制制解码进行一个解码。这是基本原理,对这个进行解码,那你这编码是是是什么方式。对,或者是一个什么样的算法,那么我在解码的时候呢,就要跟他有一个对应的关系,所以说这边处理完了过后呢,我们又重新获取到了他的业务数据,然后客户端就进行使用,所以说它的流程呢,其实是这样子的。哎,其实就是这样子的,先干什么呀,业务数据进行一个编码的处理,换一个颜色。然后呢,编码好了过后通过网络传输传输,传输的过程中是以二进制制解码的形式,然后服务器端拿到过后呢进行解码,解码过后才是我们的业务数据。
03:04
这个时候你才能进行使用好,这是它的基本示意图。那现在我们来看一下。我们这里面涉及到这个编码和解码呢,这边就叫口袋,口袋就叫编解码器,一般是这样写的,叫编解码,就是它这个口袋口呢,它是指的编码和解码器都合在一起叫了,我在前面已经讲过这个口袋呢。它的实际上是coder和decoder的一个简写,它的组成部分有两个,一个呢叫decoder。叫解码器,也就是说这边呢,这个过程,这个我们一般称之为decoder。Decoder问题,那这边呢,还有一个解码解。哦,这边我这写错了啊,刚好这写写错了,编码是ncoder encoder。这是nco啊,不好意思,Nco,那这边拿到以后呢,有个decoder decoder就是我们的解码。
04:05
解码器,我们叫抵扣袋。好的。好的,那n code就是我们所说的这一个编码器呢,负责把业务数据转成自解码数据。当然。这个编码的形式就有很多种了啊,各种算法都有。第呢,他负责把自检码数据转成我们的业务数据,就是这边的业务数据,然后程序就可以进行这个业务数据的这个显示,或者是进行下一步的处理。这是我们编解码的基本介绍,那现在我们来看看Nike它本身对这个编码和解码的机制,或者说相关的这个。呃,这个类有没有呢?它其实是有的,Nike本身呢,它就提供了啊这个口袋就是编解码器,它有哪些呢?比如说比如说像string encoder,还有object encoder。这种stringcoder呢,一般是对字符串数据进行编码,而objectco呢是对我们Java数据进行一个编码,也说我们实际上你这写的字符串,包括你的object呢,它真实发送的时候都是要进行一个编码,然后呢转成一个二进制的自页码发送到对方的,当然你这边有编码器,也就应该有相应的解码器,没问题,所以说这边也会有十寸decoder和object decoder。
05:29
当然,我这里只举了两个,其他还有很多其他的。那问题来了。Ni本身提供的编辑码器呢?它有一些问题,有哪些问题呢?我们来看一下ni本身提供的object decoder和objectcoder可以用来实现对抛,就是我们的简单Java对象和各种业务对象进行。编码或编码底层,它仍然使用是Java序列化技术,而Java序列化技术本身效率它并不是很高的,存在什么问题呢?存在这样问题,第一个无法跨语言。
06:02
什么叫无法跨语言呢?就是说你在这个,我回到前面这个图,比如说你这个客户端是Java写的。Java源写的,那他就要求你这个服务器端也要是Java。对,你不能是换成别的东西,变成别的语言,比如说你的这个服务器端是Python,那就不可以。不可以,所以说它无法实现什么呀,就是我们所说的跨语言,第二个序列化过后呢,这个体积会变得比较大,就是我们这个对象啊,它的体积变得比较大,一般是二进制编码的五倍多。所以说这个你想想你的网络数据的传销,呃,传输量就变大,开销就变大了,所以说虚拟化性能呢是比较低的,于是我们就提出一种新的解决方案,那新的解决方案呢,有一个叫Google Google提的一个叫port buffer,它就可以来解决上述的一些问题。这就是我们所说的nit本身的编解码的一个说明,那下面呢,我们就来看一下谷歌的pro buffer,它到底是一个怎样的技术,到然后呢,我们举实例说明。
我来说两句