1绪论
1.1背景与意义
大型跨国企业经常需要整合运用多个技术以达到自身的特殊管理需求。不同的技术通常无法直接应用和整合于企业的现有环境中,企业总是倾向于定制化一些技术特征来满足自己的需求。在整合过程中,技术人员需要更改目标技术的自身默认行为属性,来匹配其他技术的特点和管理要求。本文的目的在于研究.Net开发技术在分布式环境中的演变。
分布式文件系统通过物理上离散存储的文件向用户提供一个集中视图m它可以有效的增加存储的利用率,并目_减少用户对本地存储的依赖和浪费。分布式文件系统在大型跨国企业中有着广泛的应用,为了最大限度的利用分布式文件系统的好处,很多企业都会想到把自己的业务应用程序部署在分布式文件系统中,通过远程用户配置文件的设置,使得员i在跨国移动时,减少本地应用程序重新部署的时间。
. Net开发同样是大多数企业广泛使用的商业软件开发技术。和大多数编程技术类似,. Net的运行时同样默认装载本地应用程序文件,虽然可以通过应用程序配置文件的手段实现远程组件的加载,但是却无法完全匹配企业自身的特殊管理需求。例如:部署管理,版本控制管理,补丁升级管理,安全性管理。
在分布式环境中可以通过定制化.Net技术来满足企业的管理需求。以Office插件来说,常用的插件技术是基于COM的iDTExtensibility2接口来实现的。这种技术要求客户端部署插件dll,并目_在注册表中写入COM信息,在企业级部署中非常复杂,增加了大量的管理维护成本。利用分布式文件系统的部署能力,我们可以将插件dll或者其他任何需要部署到客户端的程序文件做统一的单点部署。通过DFS自身的复制功能,为用户进行统一推送。
对于普通小型应用程序,特指那些对于本地环境依赖性不高的应用,如notepad++, winmerge等,我们可以直接推送指向分布式文件系统的快捷键方式进行部署。而对于Office插件来说,就要求在客户端,有一个自定义的加载机制来进行部署的衔接。
下文将从分布式文件系统的介绍开始,结合软件生命周期的特性,描述如何实现一个自定义的Outlook插件系统,以用于分布式文件系统中的.Net插件部署。
1.2国内外研究现状
分布式文件系统是一个一般性的概念,泛指文件系统并非由本地物理存储提供,而是从网络上连接获得的文件系统。最近,对于分布式式文件系统的性能可靠性研究较多。在文献中提出了一种使用Tornado码结合Hash值级别关联存储内容的方法。此方法类似RAiD5磁招‘阵列的原理,在写入数据时需要保存额外的校验信息,在一定程度上损失了性能。以性能为前提保证存储安全的解决方案通常需要消耗空间成本,文献中就试图以副本的形式来解决存储可靠性以及快速恢复的能力。分布式文件系统的具体实现有很多类:Sun公司的NFS,卡内基·梅隆大学信息技术中心(iTC)开发的AFS和微软的DFS等。一般意义上,分布式文件系统提供这样一些服务:
1.容易访问文件:客户端只要连入分布式文件系统,可以通过逻辑名字空间获取文件内容,而真实的文件存储位置可以发生改变,只要保持住物理存储和逻辑名字空间之间的映射关系即可。
2.分布式文件系统拓扑:拓扑基础是分布式文件系统名字空间内互相复制,冗余备份,维持文件版本信息状态的路径。这也是区别于传统本地物理文件系统的一大重要因素。不同版本实现的分布式文件系统通常都提供一定的自动复制能力,可以将属于同一逻辑空间中的多个物理存储进行绑定,更新文件内容。客户端连接相同的逻辑名字空间,可能实际得到的是不同的物理存储位置,不同物理位置的文件更新和改动,通常复制机制通过分布式文件系统拓扑路径传递。这种机制天然形成了冗余备份的能力,当一个物理节点发生故障时,客户端可以通过适当的算法自动切换到最近节点。在自动复制中也会有版本冲突的问题发生。如果对文件进行访问加锁,必然导致并发访问数量级下降。所以,很多公司在分布式文件系统运用是都使用只读文件系统。将大量适合只读访问的数据,通过分布式文件系统发布。如:大型应用软件,历史报表数据,照片等。
3 系统设计......... 23-36
3.1 分布式文件系统......... 23-25
3.2 Outlook 基础插件系统......... 25-29
3.2.1 基础插件设计......... 26-27
3.2.2 跨版本设计......... 27-29
3.3. 客户端程序订阅系统......... 29-31
3.3.1 应用程序配置文件......... 29-31
3.4 基于 Web 的订阅系......... 31-32
3.5 软件开发管理设计.........32-34
3.6 总结......... 34-36
4 系统实现......... 36-51
4.1 分布式文件系统......... 36-38
4.2 Outlook 基础插件原型.........38-44
4.2.1 宿主应用程序事件与数据......... 39-44
4.3 客户端订阅系统实现......... 44-45
4.4 全局配置文件聚合方法......... 45-47
4.5 客户配置文件在不同硬件终端......... 47-48
4.6 基于 Web 的订阅客户端......... 48-49
4.7 总结......... 49-51
5 系统测试......... 51-69
5.1 小型应用程序部署测试......... 51-54
5.2 插件原型系统测试与验证......... 54-56
5.3 客户端订阅程序验证......... 56-59
5.4 综合应用实例 .........59-65
5.5 系统测试实例......... 65-69
总结
本文提出一种在分布式文件系统中如何结合企业特殊管理需求进行软件开发的方法。通过对软件开发生命周期的研究,提出划分相应分布式文件系统逻辑命名空间的设计,结合这种特别设计的虚拟文件目录结构勾画出针对两种类型应用程序的软件开发管理方案。这种方案是以开发和快速部署,回滚为优先解决的目标的。在分布式文件系统中的项目层次逻辑划分对小型程序和插件都是通用的,实际上它适合十任何希一望通过分布式文件系统部署的软件项目。配合全局配置文件聚合脚本和客户端订阅系统,可以达到对十软件快速部署,更新和回退的能力。这通常构成了企业软件管理任务内容的80%以上的内容。
对十小型软件,通过部署快捷键方式指向分布式文件系统中的虚拟路径地址来部署。对十插件系统,以Outlook为例,经过对基础插件系统的修改,自定义可在分布式文件系统名称空间中灵活部署的插件基础架构。在实际应用中可以快速发布Outlook插件程序,无需本地安装,充分利用分布式文件系统的数据共享,复制特性来服务软件的快速部署,回滚和更新要求。以此类推,此种基础插件框架可以引用十其他拥有插件系统架构的应用软件中,以配合将插件转移部署到分布式文件系统中,从}fu降低了插件部署对本地系统的资源依赖和管理祸合度。可以在很大程度上降低企业的软件管理费用。