一种支持动态网站生成的模型与系统
论文关键词: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)简化运行平台的搭建,或不再需要搭建其中的第一二项显然已经解决;对于第三项,由于代码完全自动生成,没有人工干预,只要系统的质量有保障,这一项也就基本解决;而对于第四项,如果我们地解决方案是以网站的形式出现的话,则也就解决了。因此可以说,我们已经较好地解决了文章开始时提出的四个问题。
3系统实现与应用实例
3.1系统结构
基于如上理论,实现了一个真实的网站。用户通过浏览器访问我们的系统,在页面上进行简单的操作就可以完成带有后台数据库的动态网站的建设。
下面是该系统的一个结构简图。首先是系统用户管理(注:此用户是该系统本身的用户,不是生成后的动态网站的用户),每个用户可以生成多个网站,图3中表示为“项目(网站)管理”。每个项目包括页面信息、数据项信息和杂项信息。最下面是数据库支持,用来记录相关数据。每个网站(项目)设计完成后,将生成单独的代码在服务器运行。
利用此系统,我们已经为从北京大学网络实验室、北京大学,到清华大学出版社等多个部门的多种事务提供了服务。而且开发时间大大低于传统的开发模式,从而进一步证明了如上理论的正确性和可行性。
3.2使用实例
在新的结构中,网站的开发过程也将变得与通常的开发过程完全不同。以一个最简单的用户信息登记表为例,看一下典型的开发过程。假设现在的需求非常简单,就是登记每个用户的姓名、性别、年龄和简历。其中性别为用户选择男女,简历为用户上传附件。任何人都可以浏览已登记的信息。具体操作如下:
(l)设置总体信息,如系统名称等内容;
(2)设置各个数据项的各种属性,如名称、类型等,具体设置如图4所示。
(4)设置各个页面的身份认证要求,在此应用中无身份认证要求。完成。由此可见,全部的开发过程都只要进行很简单的几步操作就可以完成,根本不需要进行任何编码工作。生成的系统的界面如图6、图7所示。
4小结
本文在对动态网站实际应用进行考察的基础上,提出了一种对其结构按照功能进行纵向划分的新的认识。并采用这种新的结构分析方法,设计了对于一般人员进行项目开发的方式,提出了“动态项目=功能页面十数据项+身份认证信息”这个公式,从而解决了在现阶段动态网站开发过程中所遇到的四个问题。
参考文献:
[1]aionaljavaxmlprogramingwishservletsandjsp[m].wroxpre,,2001.
[2]ngumlandpattems:anintroduetion.0objeet orientedanalysisanddesign〔m〕.prentieehall ptr,1998.
[3]cay s horstman:,graycornell,corejava2,volumel:fundamen-tal、[m]prentieehall,2000
[4]cay shorstman,mell,corejava2,volumel:advaneedfearures[m].prentieehall,2000
[5]abrahan、silbersehatz,henry fkorth. s sesystemconcept,[m].mcgraw-hill,1999.
[6]邵维忠,杨芙清.面向对象的系统分析[m]北京:清华大学出版社,1998
上一篇:浅析网格计算的发展及应用
下一篇:网络隐私权保护现状与措施