Zhang Jiuan’ Notes

漫谈数据自描述

    在读研期间接触了许多新名词,其中就有数据自描述。当初也有了一些感性认识吧,不过从来没有系统的记录下来。今天就简单写下一点在脑海还残余的思想吧。

名词解释:

数据:数据即客观事物一种抽象的数据化描述。比如:车(车轮;马达;玻璃;…),对它的数据描述可以是:

<car>

    <car_prop1>车轮</car_prop1>

    <car_prop2>马达</car_prop2>

    <car_prop3>玻璃</car_prop3>

   ….

</car>

这样清晰描述了一个车的构成。这些描述了一个车的组成的字符,我们称之为数据。

原(元)数据:原数据是描述数据的数据我们称之为原数据。仍旧拿上面的例子做说明吧,一辆车它的组成由车轮,马达和玻璃等组成,我们可以使用一些数据描述这些数据,那么这些描述信息便是原数据。这样加了原数据的车可以是如下模式:

<car name=”红旗” owner=”张久安”>

    <car_prop1 id=”isn19810312″ radias=”5inc”>车轮</car_prop1>

    <car_prop2>马达</car_prop2>

    <car_prop3>玻璃</car_prop3>

   ….

</car>

这样如果有了足够的原数据,我们对该辆车有了更加深入的了解。有了这些原数据,我们甚至可以很顺利的组装一辆这样的车。

数据抽象、基础类型统一:

    现在有这样一个问题了:我们在做服务器网络编程的时候,会遇到网络传输问题。在本地是一个什么样子的数据,我们期望传到了远程仍旧是什么样子。这个听起来似乎很简单的问题,事实到了真实需要处理的时候,它并不那么简单。比如会遇到大小端问题,类型不统一问题,机器位长(16/32/64)不一致问题等。

    因此需要有一套规范进行这些限制的约束,只有这样才可能有原则上的统一。

    约束一:数据抽象。将所有需要支持的信息进行抽象,抽象成使用最简单的数据可以描述的东西。比如一些需求我们只要认为他支持了Int Char Char* Float Array几个基础抽象数据类型,就可以对该业务完全支持的话,那知我们把这些基础类型进行归范化就够了。

    约束二:基础类型统一。统一是相对的,比如一个Int类型在16位机器上可以对应成int类型也可以映射成long类型后者是推荐的,因为这样有利于Int类型4位字长的统一。如果你接收了16位机器Int为16位的话,你就必须接受数字位截段的结果。对于64位机器的理解也一样。即然想要概念上的统上,就必须有所舍弃。

数据自描述模型:

数据自描述模型设计:

数据自描述应用:

thx

张久安

If you enjoyed this post, make sure you subscribe to my RSS feed!

One Comment, Comment or Ping

  1. Anonymous

    支持!!!

Reply to “漫谈数据自描述”

You must be logged in to post a comment.

返回顶部