论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
关键词:Web 动态网站 快速开发
论文摘要:首先对互联网上带有后台数据库的动态网站进行考察,发现占有相当比例的动态网站结构具有共同性,从而提出了一种对此类动态网站按照功能模块进行纵向划分的结构体系,以及与之相应的功能组装式的开发方式,并实现了一个有效、简单的系统,使一般不懂数据库的用户也能够开发带有后台数据库的动态网站。
1引言及对现状的分析
随着互联网的发展,带有后台数据库的动态网站日益增多。然而对于动态网站的开发,一般都采用横向的三层(或多层)结构划分方法,开发中存在一些明显的问题,最主要的有如下四项:①即使开发一个简单的系统,也需要专业开发人员;②需要搭建复杂的运行平台;③开发效率不高,开发周期长;④最终产品中包含的错误较多。
为了解决如上的问题,我们对当前网上的动态网站进行了考察,试图发现其共同点笔者从北京大学主页出发,采用手工跟踪链接的方法,对与我们日常生活、工作关系最为密切的一百余个动态网站进行手工分析和分类,发现动态站点主要的分类和大致比例如表l所示
下面对表1中各项作一简要说明。
论坛和BBS较为相似,结构复杂、功能强大,但通常功能相对成熟而固定,己经有非常完善的解决方案(如Firehird软件),因此不是我们考虑的重点问卷、文章评论、身份验证、列表、、地址簿这六项应用中,每一项应用所占的比例都不高,但其总和占到了全部应用的近三分之一,应该说比例很高,再加上留言板,比例已经超过半数。这几类应用虽然结构都很简单、但功能各异,因此目前还没有很好的解决方案,通常都是手工开发,存在下述提到的四个问题,正是我们考虑的重点。
对于动态网站,其关键在于后台中的数据库操作,因此我们对如上应用的后台数据库操作进行分析,发现我们重点考虑的六类不同的应用,其内部的数据库操作主要都是如下几类:增加记录、浏览记录、删除记录、查询记录、记录访问次数、回复留言、目录列表、用户身份认证、数据等。在发现这个规律后,我们对这几项趁行了详细考察,发现它们有很强的共同性。多数网站内部实现按照功能划分,都可分为两部分:身份认证部分和数据操作部分,而且数据操作部分基本上都是对于单一数据表格的简单操作,如插人、浏览、查询、删除等对于身份认证,我们将用户的身份划分为非注册用户、注册用户、数据员、特殊用户。
由上面的分析,我们可以得到如下的结论:功能和结构都很简单的项目所占的比例很高,占到了50%一60%。而越是这些所占比例很高的小项目的开发,越存在着我们在上面所提出的四个问题,越是需要巫待解决。下面按照它们的共性重新构造网站的结构。
2基于功能模块的设计模式
2.1传统的设计模式
我们先按照对于动态网站的典型视角,从页面、事务、数据存储这三个层次来观察一下目前的网站结构。
(I)表现层(页面层)
①身份认证相关页面。它包括一般注册用户、数据管理员的身份认证,以及对用户身份进行管理操作的页面,如修改密码等。
②数据操作页面。它包括增加数据、浏览数据、修改数据、删除数据等数据操作的页面。
③其他页面。静态页面和少量完成其他功能的动态页面。
(2)事务逻辑与页面相对应,可以分为:
①身份认证部分。它用来管理一般注册用户和数据管理员等账户。
②数据操作部分。它也包括增加数据、浏览数据、修改数据、删除数据等数据操作。同样要说明的一点是:我们关注的应用基本上是对同一个数据表格进行的操作(用户个人信息:如密码等除外)。
(3)数据存储。它主要存储在数据库和文件系统中,对我们影响不大。
2.2基于功能的网站结构
根据上述分析,我们可以重新定义带有后台数据库操作的动态网站。这里,我们将暂时忽略静态页面和数据存储部分。对于数据存储部分的忽略,是因为即使对于完成不同功能的网站,其数据存储部分可以设计为相同的平台。因此,我们可以如此定义动态网站:动态网站是多个功能页面组成的集合。
每个功能页面含有一个身份认证部分和一个数据操作部分。
身份认证部分表明了用户要访问该页面需要的身份权限,如系统管理员、注册用户、非注册用户等。此处我们特别提到“非注册用户”实际上对应了毋需身份认证的情况,之所以这样称呼,是为了在实现上能够简化而统一。网站由身份认证部分和数据区域两部分构成。图1(b)身份认证区域的结构相对固定,在不同系统中的结构非常相似。而图1(a)数据区域的具体功能在不同系统中变化相对较大,但结构却始终如图l所示。
2.3基于功能的网站结构下的开发方式
(l)动态项目开发公式的提出先考虑结构固定的“身份认证区域”。其模型包括两部分:①数据区域的页面结合;②每一项操作都有对应的Web页面或Web页面上对应的功能。因此,“身份认证区域”这部分可以被专业开发人员事先开发好,只由一般开发人员在实际构建系统时根据需要选择何种认证级别,如一般注册用户等。
再来看“数据区域”,其结构比较复杂。我们将其再拆分为身份认证部分、页面功能和数据项。这三项由开发人员来设置,而其余的如具体的数据操作和数据存储则由系统完成。因此我们提出了如下的动态网站的“开发公式”:
项目=功能页面+数据项+身份认证信息
注意,该公式是为了降低系统开发难度而提出的,而不是系统实际结构的拆分。因此,系统可能还含有一些在公式之外的属性,如系统名称、系统URL地址等。这些信息对系统的结构几乎没有影响,设置也非常简单,因此不必考虑。以下对公式中的各个项目一一说明:
①功能页面。它就是我们平常通过浏览器访问的网页,但这个页面常常对应了一个具体的数据操作,如“投票页面”就对应了插入新记录的操作。
②数据项。它是指我们在页面的表单中见到的数据控件所代表的内容。注意:此处是数据项,而不是数据。因为这个公式的用途是设计Web系统。在设计时要考虑的是数据项目,而不是使用实际填写的数据。一个数据项含有数据的类型、在页面的表现形式、数据检查和约束等非常多的属性。
③身份认证信息。它是指用户在使用系统时的身份资格。利用这个信息,我们就可以区分非注册用户、注册用户和数据管理员等使用者身份。
(2)动态项目的结构根据我们的开发公式,在非专业开发人员的眼中,网站的结构将如图2所示。
在这个结构中,系统仅仅由多个功能页面和数据项组成,身份认证信息为功能页面的一部分。这样做就进一步简化了系统的结构,有利于降低对开发人员的要求。我们只需要设置功能页面对用户权限的要求—比如只有注册用户才可以访问投票页面,就可以完成身份认证信息的设置。
2.4问题的回顾
让我们再来回顾一下在文章开始时提出的四个期待:(l)降低对开发人员的专业水平要求,最好能由一般办公室工作人员进行开发(2)提高开发效率(3)减少项目中存在的错误数量(4)简化运行平台的搭建,或不再需要搭建其中的第一二项显然已经解决;对于第三项,由于代码完全自动生成,没有人工干预,只要系统的质量有保障,这一项也就基本解决;而对于第四项,如果我们地解决方案是以网站的形式出现的话,则也就解决了。因此可以说,我们已经较好地解决了文章开始时提出的四个问题。