相比于传统程序,当前网络应用程序变得功能更加强大,然而也趋于更加复杂,而且这些网络应用程序不断更新,扩展,集成最新技术和商务处理。由于这些复杂性,很多问题应运而生,比如:“我或者整个开发团队如何管理这些应用程序?”使用Fusebox方法就能够解决这些问题。
Fusebox是管理复杂Web应用程序的一种方式,它通过将一个复杂的Web应用程序分成若干个比较小的模块而达到管理的目的。网页脚本语言,比如ColdFusion, ASP, JSP, 以及PHP很少提供分离程序的功能,因为脚本和HTML输出通常位于相同的页面上。而且,在执行过程中也没有处理程序流的标准。所以在链接和HTTP重新定位的时候,网页很容易碰到各种障碍。当网页数量增多时,这些问题也随着增大。
当没有处理程序流和分离程序处理的标准时,建立一个大型的应用程序相当困难。Fusebox提供了这样的标准。它是免费的,而且是开发性的方法,能够用于开发大型的,复杂的Web应用程序。使用Fusebox能带来以下的好处:
Fusebox最初是用于ColdFusion应用程序服务器,但它提供了连接到ASP,JSP,以及PHP的“接口”。这篇文章将涉及到ColdFusion,所以你应该具备ColdFusion的常用知识和概念。
最新的Fusebox版本发布于2001年十月,名为“Fusebox 3”。本文我将讲述最初的Fusebox方法的基本概念,在以后的文章中我们再讲述到Fusebox 3的增强功能。
当管理程序流的时候,网络开发人员通常会面临着挑战。因为在没有某些结构(不使用Fusebox)的情况下,程序中的任一页面都可能调用其他的页面,最终极有可能导致一个如图A所示的混乱无序的结果。
“Fusebox文件”的概念是原始Fusebox之外的一个重要的概念,它是管理网页之间相互作用的一个中心文件。“Fusebox文件”的操作类似于一个交通警察,它按照执行的需要引导程序流。Fusebox文件使用CFINCLUDE来包含独立文件,或者执行一个特定操作的保险丝(fuses)。保险丝不会直接调用其它的保险丝以初始化一个新的请求,所有的操作都会集中到中心Fusebox文件。如果能正确使用Fusebox,我们会看到如图B的结果。
图A和图B说明了使用Fusebox在管理上的改进。也许你的下一个问题是:“Fusebox如何知道应该包含哪些保险丝(fuses)?”这一问题的答案包括“fuseaction”的其它一些逻辑和概念。
Fusebox文件每一次被调用,名为“fuseaction”的变量将会作为一个URL变量传递到Fusebox。Fusebox文件包含一个CFSWITCH/CFCASE语句,这一语句决定了所要包含执行特定fuseaction的保险丝。
假设这样的URL形式,http://www.mysite.com/index.cfm?fuseaction=displaynews,Fusebox文件(index.cfm)使用Fuseaction(displaynews)的值并查找CFSWITCH/CFCASE语句以达到匹配。当查找到匹配时,Fusebox文件将包含必要的独立文件。表A包含了一个显示这一工作过程的简单的Fusebox文件。