这5个默认的ASP对象都是COM对象,当脚本语言调用它时,IIS会执行这些对象来完成用户的HTTP要求。这本来很好,但糟糕的是目前有很多的WEB应用系统完全使用脚本语言来开发整个系统的逻辑。使用这种方式开发WEB应用,有着十分明显的问题,那就是页面的脚本语言结构十分复杂,逻辑不清晰,可读性差。这不仅给编程人员本身带来不便,也给系统的维护带来不小的困难,特别是当应用逻辑需求发生变动时,修改这些臃肿、晦涩的解释性脚本源代码真是味同嚼蜡。而且仅用ASP 技术也难以应付复杂而细致的商务逻辑处理任务。使用这种方式开发复杂的WEB应用生产力很低。
根据Windows DNA的技术思想,进一步的做法是把应用系统的逻辑运算写成定制ASP对象(COM对象),使用少量的脚本语言来驱动/使用这些定制ASP对象以完成WEB应用系统。使用这种方式来开发比完全使用脚本语言进步了很多,它使得应用开发有了明确的分工。一部分人员专注于事务逻辑层COM 组件的开发和测试工作;另一部分人员根据商务逻辑的需要选择和使用COM组件,使用组件提供的统一对外接口而无须了解其功能实现的内部细节,最终以精练的ASP脚本语言把组件集成到页面之中,从而有效降低了开发难度,加快了开发进度。但这种ASP对象是直接执行在IIS服务器之中的,它不但会拖慢WEB服务器的效率,而且也很危险,当这种ASP对象发生的错误可能会危害WEB服务器。而且由于这种ASP对象直接执行在IIS中,它将享受不到MTS/COM+提供的各种好处,如事务管理机制、安全机制、各种Pooling技术等等。程序员若想使这些COM对象同样拥有这些优点(有些根本不可能拥有),就必须对底层细节非常了解,手工编写代码来实现,可想而知,生产力不会高到那里去。
让我们沿着这个技术的发展趋势继续向下看。在微软的Windows 2000的IIS 5中提供了另外一种ASP对象,这种ASP对象实际上就是COM+对象,它是直接执行在COM+环境中的,它可以使用ASP默认的5大对象存取HTTP要求的信息。当WEB服务器一旦收到HTTP要求之后,它立刻把此要求转给执行在COM+环境中的这种ASP对象来处理,WEB服务器可以再响应其它客户端的HTTP请求,当这种ASP对象执行完企业逻辑代码产生了结果主页之后,它使用默认的Response对象再通过WEB服务器,把结果会传给客户端。这种类型的ASP对象可以享受到MTS/COM+环境提供的稳定性,和对事务管理的好处。如果开发人员注意使用COM+环境提供的数据库链接Pooling、线程Pooling、对象Pooling的功能,那么这种方式开发的基于WEB的分布式系统将是非常稳定,执行效率也很高,同时系统具有很强的扩展性。这种开发方式会成为未来WEB应用系统开发的趋势。
欢迎评论或投稿