Thursday, August 16, 2007

Developing Ldap service provider

为Harmony编写Ldap的servic provider是一件很花功夫的事情。我必须首先阅读RFC 2251,整整40页的A4文档。这个规范定义了与Ldap server进行交互的协议,并且给出了数据报的格式。困难在于,所有数据报的数据格式,均采用ASN.1规范定义。又是一个146页的文档。阅读纯技术文档的一大感受——就好像是在读小说。刚开始的几页津津有味,开始囫囵吞枣,最后一目十行。可是,用读小说的方法毕竟达不到要求,谁有读文档的经验不妨分享一下。
我的经验就是,必须强迫自己做笔记,记录下来重点。比如ASN.1编码实际上就是声明一个数据结构,这一点从其名字(Abstract syntax notation)就可以看得出来。上过数据结构课的人,也应该知道,数据结构中常用的一个词是Abstract data type。ASN的不同之处在于,针对不同的应用领域,这个规范定义了一些现成的,比基本数据类型(如布尔型)更多的数据类型。如针对图像定义了存储图像的类型。与计算机的高级语言有一曲同工之妙。而ASN.1的数据组合方式有如下5种。

1。对于一组有序的类型,针对每种类型取一个值,有序排列。形成的所有新值,组成一个新类型。
2。对于一组无序的类型,针对每种类型取一个值,无序。形成的所有新值,组成一个新类型。
3。一种类型,其取值得重复排列,形成一种新类型。
4。一组各异的类型,任意取值。
5。对于一个类型,对其值进行排序,或根据一定结构筛选。

No comments: