网络通信 频道

网络服务架构开发中应遵循的重要原则

  最近,《架构师杂志》的资深记者Ron Jacobs在采访Scott Guthrie,这位微软开发事业部的总经理的时候,针对目前广为关注的网络架构开发问题进行了深入的探讨,尤其首次谈到了网络架构开发过程中的若干原则问题。笔者认为,这些原则对于广大热衷于网络开发的专业和非专业人员都有很深刻的启迪作用。本文通过对该次采访的内容进行编辑和总结,以期对广大用户与开发人员有所启迪。

  1、 Scott Guthrie的辉煌业绩

  谈起Scott Guthrie,我国的IT届人士或许鲜有了解,但是提起鼎鼎大名的ASP.NET,那么不知道的人就微乎其微了,Scott Guthrie就是ASP.NET项目的领导者和主要开发者。实际上,Scott Guthrie所领导开发的项目还不仅仅是ASP.NET,还包括大家所熟知的公共语言运行库(CLR,Common Language Runtime Library),Internet 信息服务7.0(IIS, Internet Information Service),Windows展示平台(Windows Presentation Foundation)及其增强版WPF/E,Windows窗体构件(Windows Forms)等等,都是在他的领导下得以面世的。另外,他参与和领导的微软公司重要项目还包括Commerce Server、Atlas、.NET Compact Framework 和 Visual Studio Web 和客户端开发工具,因此在项目经理和架构师岗位上,年轻的Scott Guthrie已经是汇集经验、成就于一身的八面玲珑的风云人物了。目前,Scott Guthrie全面负责.NET平台组工作的同时,已经成长为新一代的微软开发事业部总经理。换句话说,微软公司近期所推出核心应用程序模型、运行库、工具软件和一些基层的驱动引擎都将在这位悍将的领导下推向市场。

  2、网络服务架构开发原则之一:一切为了用户

  自1996年至1997年,Scott Guthrie在负责Web服务器技术的研制工作时,偶然介入了IIS团队的开发工作,并参与了IIS4.0的开发与推广工作,由于缺乏于用户的沟通,当时开发团队的成员普遍认为Web编程模型组件的发展已经到了鼎盛时期,近期已经没有可以改进的地方了,但是当时的广大用户却没有对微软的努力付出足够的关注。

  网络系统作为一种信息系统,应该遵循软件开发过程中所建立的软件工程原则,这是目前业界已经不争的事实。作为对于软件工程原则一直身体力行的微软公司来说,其开发团队中出现上述情况实属偶然。笔者认为,原因之一是,虽然微软这类航母级的开发团队制定了大量符合自身特点的软件工程规范和原则,但是他们的很多条款都过短关注了一些特别的直接用户,比如一些重量级的公司,Intel、Sun、Oracle等客户的需求;原因之二是,对于网络服务架构的很多标准建立时间较短,而且很多是近些年才逐步得到了完善,在1996年前后关于网络服务架构的很多基本规范并没有建立起来,因此用户即使存在很多需求,也缺乏通用的需求描述和交流平台。基于上述两方面的原因,大多数用户的需求在当时并没有得到足够的重视。在认识到了问题的症结所在之后,Scott Guthrie小组开始和众多的客户沟通,仔细了解他们在构建哪些类型的应用程序,有哪些具体的需求和要求微软向他们提供的基础,很快就意识到需要做的事还有很多。

  当时,处于一线的开发人员(即微软所提供平台的基础用户)主要关心两个困难:一是代码/内容分离的问题,即如何减少开发者繁琐的工作量;二是如何编写干净代码的问题,即提高代码重用性的问题。但是编写的大量代码具有"一次编写,终身不读"的特点。从开发工具和运行时间管理的角度,要使当时现有的基础开发架构运行良好,确实存在许多挑战。在没有具体的开发目标的前提下,微软公司同意该小组专门研究IIS未来体系结构,这是一向颇具风险的投资,但是投资量不大,因为Scott Guthrie当时领导的整个团队只有3-4人。正是这个小组发明了Windows Server 2003中著名的HTTP.SYS内核驱动程序,并开发了Web编程模型组件以及ASP.NET的雏形。

0
相关文章