WEB应用开发

来源:互联网 发布:数据应用案例 编辑:程序博客网 时间:2024/05/21 19:13
 

WEB应用开发

随着互连网的发展以及电子商务应用的兴起,如何规划Web应用的系统结构模式以及如何开发Web应用、提高数据库的应用效率已成为开发者关注的焦点,下面就这些问题谈一下我的看法,有不妥之处,请大家提出来,我们共同探讨,理不辩不明,希望我们一起在探讨中共同提高技术水平。

一、 当前Web网站的结构模式

  由于现在的Web系统慢慢地结合了商业、数据库以及企业的运用,因此,对于Web应用系统的要求也愈来愈严格,Web应用系统必须具备高度的扩展性,合理的执行效率,以及全天候安全强固的执行环境,也就是说,现在的Web应用系统必须能够安全及时地服务大量的客户端用户,又能够长时间安全稳定地运行,要做到这些,就必须要求Web应用系统具有一种良好体系结构,选择一种良好的体系结构,是Web应用成功的基础,就像一座大厦有了一个好的根基,Web应用系统的结构模式以及其中的运作方法对网外访问的用户来说基本上是透明的,用户不会感觉到你是使用的哪种结构模式,对用户来说,他所体会到的只是你的网站的速度以及你的网站的稳定性,但是,正是Web应用系统的结构模式及其内部运作方式决定了你的Web服务的性能,当前应用比较多的体系结构大致有以下几种:

图一显示的结构模式是比较传统的一种WEB服务,它的服务器端基本上只由WEB服务器构成,它要发布的内容以文件的形式保存在WEB服务器上,它只能通过HTML文件提供静态的WEB内容,所有的服务内容必须预先定义编辑好,用户可以通过URL直接定位到这些定制好的HTML文件进行存取,这一模式比较简单,并且可靠性比较高,实现起来也比较容易,但是提供的内容比较单调,并且时效性及可维护性均较差,现在大的网站系统已很少采用。

 

 

图二显示的结构模式是当前应用比较多的一种结构模式,这种模式在服务器端增加了一台数据库服务器,可以将要发布信息分类保存到数据库服务器,然后通过应用程序或脚本程序根据用户请求提取相应的信息,这种模式克服了第一种结构模式只能发布静态内容的缺点,由于增加了后台数据库的支持,在WEB SERVER中通过应用程序的支持,就可以给用户提供动态的信息服务,通过定制页面模板,添加到后台数据库的信息可即时发布到请求的客户,因而也就保证了信息的时效性,这与第一种模式比较起来,有了很大的优越性,但是,在增加这些优越性的同时,也增加了WEB服务器的负担,同时也降低了WEB服务器的稳定性,这是因为在WEB服务器中要处理与后台数据库的连接以及一些企业逻辑的处理,它们会消耗掉大部分CPU的时间片,另外由于增加了这些处理环节,这些环节中一个地方出现差错,就会影响WEB服务器的性能,有时可能会使WEB服务器当掉,这种模式实现起来难度也不大,对编程人员的要求较低,具体的实现方式大致上可通过ASP脚本语言、PHP脚本语言、普通的CGI程序或ISAPINSAPI来实现。

 

的结构模式  图三所显示是一种比较先进的结构模式,它是一种分布式的WEB应用,它与第二种模式有些相似,但它在WEB服务器和后台数据库服务之间增了一层应用服务器,它继承了前两种结构模式的优点,同时又克服了前两种模式的缺点,是一种比较先进的结构模式,在国外的一些大型知名网站有所应用,像Microsoft的站点以及国外的一些大型电子商务站点均是这种结构模式。首先,它能够动态地发布信息,保证了信息的时效性,第二,由于增加了中间应用服务器,这样就可以将一些复杂的企业逻辑及数据库的连接服务等封装到中间层上,通过中间层的应用服务器来完成这部分工作,这不但减轻了WEB服务器的负担,同时也不会因为企业逻辑的不合理以及数据库的原因而使WEB服务器当掉,这种模式中的应用服务器可以有多台服务器来承担,这不但可以提高用户的访问速度,改善WEB服务的性能,同时还能起到负载平衡与容错的作用,因为在多台应用服务器并行工作时,它们可以轮流对请求的用户进行服务,在其中一台不能提供服务时,其它的应用服务器能够继续对用户提供服务。这种结构模式实现起来最复杂,对编程人员有一定的要求,要实现这种结构模式,可以通过ASP脚本结合COMCOM+或者是CGIISAPI结合COMCOM+来实现,在UNIX类操作系统中还可以通过PHP脚本结合CORBA构件技术来实现,由于COM/COM+CORBA构件均是已经编译的可执行代码,因而在执行速度上要比单纯的ASPPHP脚本语言快得多,实际上,Microsoft提倡的DNA技术就是这样的一种结构模式,这是一种典型的分布式WEB应用系统。

 

 

   

 

综上所述,在进行WEB应用开发时,要根据WEB网站的规模、用户访问量以及要求的响应时间几个指标来规划网站的结构模式,由于INTERNET技术的发展,第一种模式现在很少采用,它已不能适应当前的用户基本要求,对于第二种模式,要分情况对待,对于访问量很低,信息量不大,对系统稳定性要求不是很高的情况下,可以采用这种模式,因为这种模式对编程人员的素质要求不是很高,并且开发周期快,比较适用于企业内部的INTRANET或一些访问量不大的中小网站。对于一些大型的门户网站或大型的电子商务网站,由于用户访问量非常大,并且对系统的安全性以及稳定性要求都十分严格,在电子商务网站中,对数据的严谨性要求也是非常严格,因此,在这几种情况下,第三种结构模式就是非常适合的了,对于百灵网站来说,不管从用户数量、安全性及稳定性哪方面考虑,都应该采用这种模式。

二、 WEB应用系统的优化

有了很好的WEB体系结构,对于网站的建设及应用只是成功了一半,就好比建一座大楼,有了一个好的地基,这只是成功建设这座大厦的基础,要将这座大厦建造完成并且能够让人们搬进去办公或居住,就必须严把质量关,建设装修好每一层大楼,任何一层出现质量问题,都会影响到整个大厦的质量,对于WEB应用的开发也是一样,任何一个环节出现问题,都要影响整个WEB站点的性能,下面就这一问题我们进行一下讨论。

事实上,不管是在开发一般的分布式多层应用系统,还是分布式的WEB应用系统,或是电子商务应用系统,有三个非常重要的因素影响着系统的执行效率,这三个因素分别是:

1、数据库的连接

数据库的连接一直是一个非常耗时的工作,建立一个数据库连接,最快的连接一般需要1-2秒,慢的需要5-8秒,甚至更长一些,这将严重影响系统对用户请求的反应速度,特别是在用户数据很大并且并发访问很多的情况下,这种性能下降将是非常的明显。

2、构件或中间件的加载与卸载

WEB系统中使用分布式的对象时必须先创建它们,在使用完后又必须释放它们,建立和释放这些对象也需要时间和系统资源,因此,它们可以成为WEB应用系统的执行瓶颈。

3、线程的重复使用

大家都知道,CGI类型的应用程序总体说来要比ISAPI类型的应用程序效率低一些,原因就是CGI在每次用户请求时都需要重新加载,而ISAPI则只有在第一次请求时需要加载,以后将常驻内存,这也就省去了应用程序的加载时间,同样问题,在应用程序中创建新的线程也是需要耗费时间的,假如能够做到对线程的缓冲,这样也就节省不少系统资源,加快应用程序对用户请求的反应速度。

以上三个因素是最明显的影响系统性能的因素,如何解决这些问题,以及解决的成功与否是提高WEB应用系统性能的关键。幸运地是现在的大部分软件已供了一种pooling技术,也就是缓冲技术,来解决这些执行效率的瓶颈问题。在这三个因素中,数据库的连结是最慢最耗时的动作,因此我们可以通过共享(pooling)数据库的连结来加快系统的执行效率,现在大部分最新的数据库系统已经提供了pooling技术,我们在应用时应尽量选择具有这一功能的数据库产品,在数据库安装时或在设置数据库连接时,应该打开相应的pooling选项,以达到共享连接的效果,缩短WEB应用的数据库访问时间。

关于分布式对象以及线程的pooling技术,则要在具体开发这些对象时实现,实现方法与具体的开发工具有关,单纯地用ASP脚本来开发的WEB应用系统是不可能达到对象的pooling和线程的pooling的,通过数据库引擎的支持,或许可以做到数据库连接的pooling,比较好的一种实现方式就是WEB服务器结合MTS中间件的实现方式了,MTSWEB应用系统具有良好的扩展性与安全性,并且它提供了数据库连结pooling、线程pooling技术支持,甚至在COM+中提供了对象的pooling支持,因此可以有效地减少WEB应用程序需要取得这些资源的时间,进而增加WEB应用程序的执行效率。

综上所述,在Web应用系统开发时,既要重视网站应用系统的结构模式,又要重视Web应用系统的性能优化,有了良好的系统结构,就可以保证信息通道的通畅,减轻Web服务器的负担,同样,优化系统的性能,打通各个阻塞环节,消除其中的瓶颈效应,这样才能保证应用系统长期、稳定地运行,保证对每一个用户都以最快的速度响应。

原创粉丝点击