Windows DNA框架
概述
Windows DNA作为.NET架构的前身正慢慢地从我们的视野中逝去,但是windows DNA的设计思想,特别是对于软件体系结构发展的贡献却很值得我们去借鉴和学习。Windows DNA是微软提供分布式计算的一个概念框架和一组相关原则的集合,同时也可以认为它是一个开发平台(平台是一组相关产品的集合),还可以认为它提供了一个开发模型(模型是人们解决问题的一般方式),是.NET架构未出现以前在Windows平台下开发网络应用系统的绝佳选择。开发网络应用系统和平台有可能提出的需求,包括:
1. 提供来自多个数据源数据的一致视图
2. 允许用户更新数据
3. 提供完整的电子商务能力
4. 良好的性能
5. 能够支持数千个并发用户的可伸缩性
当然网络应用系统还有其固有的一些问题,如通信、并发性、状态、延迟和封装等。Windows DNA为开发这类应用系统提供了自己的解决之道,它提出的设计目标就是自治性(封装性的延伸,实现资源的封装并通过代理的形式对外提供服务)、可靠性、可用性、可伸缩性和可互操作性。为满足这些设计目标,Windows DNA提供了一系列的技术和开发原则,这其中就有包括基与n-层体系结构的设计、表示层技术(Active X、ASP、MFC、Office客户端技术)、业务逻辑层技术(COM、COM+、MTS、MSMQ、QC等)、通用数据访问技术(ADO、CDO、ADSI)、web互操作性技术(SOAP、BIZTALK)、数据服务(SQL SERVER 2000)、windows目录服务、安全服务、其他涉及可伸缩性和可用性的服务(如网络负载平衡)等。
那么这些技术是如何满足上面的这些设计目标的呢?
1. 使用分层、基于代理的设计方法实现自治性目标
2. 使用异步访问等技术实现可靠性目标
3. 使用负载平衡等技术实现可用性目标
4. 使用基与COM+的中间层等技术实现可伸缩性目标
5. 使用SOAP等技术实现可互操作性目标
对于一个开发人员而言,面对这么多眼花缭乱的技术,我们有可能会显得有点无所适从。但是Windows DNA作为一个开发框架,它的目的不是让你运用所有的技术来解决你的应用系统的问题,而是希望你能够检查系统的功能和非功能需求并进行有效的评估,然后考虑Windows DNA的设计目标并试图选择并描述出自己的解决方案来满足应用系统的这些目标,而Windows DNA作为一个平台提供的这些技术组合可以让你更快、更好地实现系统目标让你的系统尽快地推向市场。
如果你仔细去研究.NET和windows DNA的话,你会发现.NET对windows DNA是一种延续,只不过起了一个新的名称和添加了一些很时髦的技术而已。也许在我们的基于.NET的应用系统我们还一直沿用着n-层系统设计,也许我们还在用着.NET提供的COM+技术,也许我们还在用着类似DCOM的.NET Remoting技术,也许我们还在用着基于MSMQ的WCF技术,也许我们还在用着SQL SERVER, 也许我们还在用着CDO,也许我们还在用着ADO的.NET版本进行数据库应用系统的开发,也许我们还在用着ASP的.NET版本进行前端表示层的开发,等等等。总而言之,Microsoft提供的这些基础性的服务并未发生本质上的变化,甚至概念框架和设计原则也都未发生本质上的变化。如果真的说得上变化的话,那就是.NET技术让云计算的实现更加平滑,让Windows Azure的出现变得更加顺理成章。
与.net区别
Windwos DNA是一个解决方案的平台,它关注的是如何使用Microsoft服务器产品 来解决业务问题.术语"胶水(glue)"有时与Windows DNA一起使用,如:"DNA定义了 把强大的,可升级的,分布式系统连接为一体的胶水".然而,除了仅仅是一个技术 规范之外,Windows DNA没有任何切实的东西.这就是Windows DNA和.NET之间的几 个主要区别之一..net不仅是一套技术规范,它还包括了几个实实在在的产品,如 编译器和类库,甚至还包括整个的最终用户应用程序.