前言:想要写出一篇引人入胜的文章?我们特意为您整理了中小企业WEB网站架构与程序设计模式范文,希望能给你带来灵感和参考,敬请阅读。
摘要:随着Web技术的发展,Web程序运行架构与设计技术越来越多的呈现在开发者面前。本文探讨了中小企业web应用程序的运行架构,研究分析了中小企业应用程序的设计模式。
引言
Web应用程序是一种经由Internet或Intranet、以Web方式提供服务的程序。它是典型的浏览器/服务器架构的产物。采用Internet标准的通信协议HTTP作为两者通信的标准。为服务开发商提供规范和简化的开发模式,由于用统一的HTML语言作为客户端程序的编码,通过浏览器和Internet网的便捷性,可以在任何地方进行数据访问。在现实的应用中,我们通过浏览器将事务逻辑暴露给用户,用户通过浏览器将事务逻辑激活并将初始参数等信息传递给服务器,运行存储于之中的事务处理程序,处理规定的事务逻辑。这要通过运行相应的Web应用服务程序和数据库服务程序来完成,服务器对数据进行处理后,将处理的结果生成网页,传给浏览器,以实现对处理结果的显示。这样系统客户端被大大的简化,用一个浏览器就可以应对于所有Web应用程序,降低了客户端计算机的配置成本。
1中小企业Web应用程序的运行架构
1.1通信协议
浏览器/服务器架构的核心是HTTP,它有两种报文形式:请求/响应。请求报文包括方法、资源路径、协议的版本、头部的可选信息和报文体;响应报文包括协议的版本号、状态码、头部信息和获取资源的内容等。随着WebService技术的出现,产生了SOAP、WSDL、UDDI协议。WSDL用来描述如何访问具体的接口,UDDI用来管理,分发,查询WebService当用户通过UDDI找到你的WSDL描述文档后,就可以通过SOAP调用已建立Web服务中的一个或多个操作。SOAP支持不同的底层接口,如HTTP(S)或者SMTP。
1.2主要服务软件
主要的Web服务器支撑软件常见的有Apache、IIS、Nginx。Apache使用范围广,支持多平台,Nginx支持反向,IIS是微软支持Web服务器软件通过添加组件可以支持多种服务。但它们只能将一个固定的内容返回到客户端,不论何人、何时都一样。Weblogic、Tomcat、Jetty是常见的应用服务器,它们通过浏览器把服务的业务暴露给用户,当用户提出请求时,在服务器端为用户运行业务处理程序,完成业务逻辑处理。WebSphere是IBM的基于Java的应用环境,建立、部署和管理Internet和IntranetWeb应用服务器软件,使用较少。Tomcat也是基于java应用服务器。它只是一个Servlet容器,可以独立运行。它的特别之处在常常与Apache整合起来使用,能够处理JSP,被广泛使用。Jetty采用最优的开源JavaWeb引擎,将Java社区中使用量最大,用户数最多。Jetty通过使用APR和Tomcat本地技术的混合模型来解决问题。混合技术模型从最新的操作系统技术里提供了最好的线程和事件处理。其性能参数匹配甚至超越了本地ApacheHTTP服务器或者IIS。Jetty能够提供数据库连接池服务,不仅支持JSP等Java技术,还支持其他Web技术如PHP、.NET等。在数据管理上,中小企业网站主要使用关系型数据库技术,它是对数据进行高效管理主要工具,并且为外提应用提供访问接口,为Web应用创造良好的开发环境。近来也有使用非关系型数据库的趋势。主要的数据库管理软件为Mysql和MS-SQLServer。两款产品性能差不多,MS-sqlserver主要用在微软的为主的技术体系中,在市场中有一定的占有率。Mysql作为热门的数据库管理系统,在市场中有广泛的使用,它对Windows和linux平台有很好的支持。尤其是和php程序设计语言结合,产生了好多开发环境。在客户终端的浏览器上,微软、谷歌、苹果产品市场占有率很高。浏览器的内核主要有Trident、Gecko、WebKit、Presto。主要任务是对HTML语言进行解释与渲染,生成用户的浏览界面。
1.3运行架构
(1)数据访问量有限的架构。网站的初期,我们往往会在单机上跑我们所有的程序。但随着访问量逐步上升,服务器的负载慢慢提高,网站的压力逐步显现。假如我们代码层面已难以优化,在不提高单台机器的性能的情况下,可以将服务细化,将后台服务分成业务服务和数据库服务,分别由不同的计算机完成。这样不仅可以有效地提高系统的负载能力,而且性价比也很高,还提高了容灾能力,如图1所示。(2)数据访问量较大的架构。随着访问量继续增加,上图所示的架构也即将无法满足客户的需求了。这时可以把应用服务器从一台变成多台,将他们组成一个服务器集群,通过负载均衡技术把用户的请求分散到不同的服务器中,从而提高负载能力。而对于日益增加数据库的访问需求,我们可以通过SAN、NAS和加大缓存与读写分离等技术来解决,如图2所示。
2中小企业应用程序的设计模式
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。它是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。框架是一种相对固定的设计模式是可重用、半完成的应用程序,使用框架可以生成专门定制的应用程序。
2.1基于“WEB页面/文件”设计模式
这种设计模式下,当客户端通过HTTP协议,将网页上暴露的商业逻辑提交至服务器时,URL直接指向某个文件,然后由该文件来处理请求,同时将输入参数提交给它,运行结束返回响应结果。在实践中,我们把不同的业务处理程序放在不同的文件夹的文件中,使之与URL对应。当HTTP把请求提交至服务器时,URL为:www.sjsyd.com/news/reader.php?id=1234.可以想象,在站点根目录的news目录下放置一个reader.php文件,同时提交给文件的id值为1234。这种设计模式在ASP、PHP处理简单业务时常见。
2.2基于MVC设计模式
模型(M)是数据的表述,它不是真正的数据,而是数据的接口,使用它时我们无需知道底层数据库的不同类型。视图(V)使我们看到的界面,它是表现层。控制器(C)控制模型和视图之间的信息流动,它通过程序逻辑来判断模型从数据库获取了什么信息,将什么信息传给了视图。这种设计模式分离了应用逻辑和表现逻辑,所有请求都通过控制器分发,分发过程基于请求的URL.这种设计模式和上面的基于文件的模式一样,都是基于请求/响应驱动的,服务器与客户机之间的数据传输遵循Http协议。它是中小企业网站主流的程序设计模式,很多常用框架springMVC(Java),RubyonRails(Ruby),ZendFramework(PHP)等都支持它。因为它们有很好程序结构和代码资源可供使用,给Web应用程序设计带来了极大便利,能够满足高内聚、低耦合的要求。如有URL,www.sjsyd.com/lib/book/1234.可以想象在实际代码中,我们会有一个控制器libController,其中有一个bookAction。当业务逻辑发生变化时,只要在控制器上变化一下即可,从而实现表现(V)与模型(M)的分离,与asp/php业务逻辑和表现层混合编程方式相比,程序的修改要方便很多。不同框架可能默认实现方式稍有不同,有的是一个Controller一个文件,其中有多个Action,有的是每个Action一个文件。还有更直接的基于URL的设计方案,那就是REST。通过人为规定URL的构成形式(Action限制为只有几种)来促进网站之间的互相访问,降低开发的复杂性,提高系统的伸缩性。
2.3基于组件的设计模式
此种设计模式在中小企业网站程序设计中最常用的框架为ASP.NET的Webform。它采用的是视图优先的策略,非常接近VCGUI,JavaSwing等可视化设计,可通过拖拽控件方式完成表现层设计。双击它们即可在后台代码中生成一系列事件响应代码,这些逻辑代码都在ASPX.CS文件中。Webform将用户的请求与响应都封装为控件,采用事件驱动模式来控制应用程序请求,因此需要大量服务器控件支持。.NET中的事件基于委托模型。委托模型遵循观察者设计模式,使订阅者能够向提供方注册并接收相关通知。事件发送方推送事件发生的通知,事件接收器接收该通知并定义对它的响应,HTTP被隐含其中。当然不是仅有ASP.NET支持这种模式,对PHP来说,PRADO就是完全基于组件和事件驱动的开发框架。
3结语
总之,随着云计算、大数据、人工智能的发展与广泛使用,中小企业网站必将在架构与设计模式中呈现出越来越多的特点,以适应业务需求的不断变化。
作者:赵立群 单位:北京市石景山区业余大学