常见中小企业WEB网站架构与程序设计模式

2020-06-04 12:55赵立群
数字技术与应用 2020年3期
关键词:设计模式

赵立群

摘要:随着Web技术的发展,Web程序运行架构与设计技术越来越多的呈现在开发者面前。本文探讨了中小企业Web应用程序的运行架构,研究分析了中小企业应用程序的设计模式。

关键词:WEB网站;设计模式;运行架构

中图分类号:TP311.1 文献标识码:A 文章编号:1007-9416(2020)03-0123-02

0 引言

Web应用程序是一种经由Internet或Intranet、以Web方式提供服务的程序。它是典型的浏览器/服务器架构的产物。采用Internet标准的通信协议HTTP作为两者通信的标准。为服务开发商提供规范和简化的开发模式,由于用统一的HTML语言作为客户端程序的编码,通过浏览器和Internet网的便捷性,可以在任何地方进行数据访问。在现实的应用中,我们通过浏览器将事务逻辑暴露给用户,用户通过浏览器将事务逻辑激活并将初始参数等信息传递给服务器,运行存储于之中的事务处理程序,处理规定的事务逻辑。这要通过运行相应的Web应用服务程序和数据库服务程序来完成,服务器对数据进行处理后,将处理的结果生成网页,传给浏览器,以实现对处理结果的显示。这样系统客户端被大大的简化,用一个浏览器就可以应对于所有Web应用程序,降低了客户端计算机的配置成本。

1 中小企业Web应用程序的运行架构

1.1 通信协议

浏览器/服务器架构的核心是HTTP,它有两种报文形式:请求/响应。请求报文包括方法、资源路径、协议的版本、头部的可选信息和报文体;响应报文包括协议的版本号、状态码、头部信息和获取资源的内容等。随着Web Service技术的出现,产生了SOAP、WSDL、UDDI协议。WSDL用来描述如何访问具体的接口,UDDI用来管理,分发,查询Web Service当用户通过UDDI找到你的WSDL描述文档后,就可以通过SOAP调用已建立Web服务中的一个或多个操作。SOAP支持不同的底层接口,如HTTP(S)或者SMTP。

1.2 主要服务软件

主要的Web服务器支撑软件常见的有Apache、IIS、Nginx。Apache使用范围广,支持多平台,Nginx支持反向代理,IIS是微软支持Web服务器软件通过添加组件可以支持多种服务。但它们只能将一个固定的内容返回到客户端,不论何人、何时都一样。

Web logic、Tomcat、Jetty是常见的应用服务器,它们通过浏览器把服务的业务暴露给用户,当用户提出请求时,在服务器端为用户运行业务处理程序,完成业务逻辑处理。Web Sphere是IBM的基于Java的应用环境,建立、部署和管理Internet和Intranet Web应用服务器软件,使用较少。Tomcat也是基于java应用服务器。它只是一个Servlet容器,可以独立运行。它的特别之处在常常与Apache整合起来使用,能够处理JSP,被广泛使用。Jetty采用最优的开源Java Web引擎,将Java社区中使用量最大,用户数最多。Jetty通过使用APR和Tomcat本地技术的混合模型来解决问题。混合技术模型从最新的操作系统技术里提供了最好的线程和事件处理。其性能参数匹配甚至超越了本地Apache HTTP服务器或者IIS。Jetty能够提供数据库连接池服务,不仅支持JSP等Java技术,还支持其他Web技术如PHP、.NET等。

在数据管理上,中小企业网站主要使用关系型数据库技术,它是对数据进行高效管理主要工具,并且为外提应用提供访问接口,为Web应用创造良好的开发环境。近来也有使用非关系型数据库的趋势。主要的数据库管理软件为Mysql和MS-SQL Server。两款产品性能差不多,MS-sql server主要用在微软的为主的技术体系中,在市场中有一定的占有率。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为:http://www.sjsyd.com/news/reader.php?id=1234.可以想象,在站点根目录的news目录下放置一个reader.php文件,同时提交给文件的id值为1234。这种设计模式在ASP、PHP处理简单业务时常见。

猜你喜欢
设计模式
设计模式识别的特征信息分类研究
“1+1”作业设计模式的实践探索
基于能力目标培养的药学专业课程整体教学设计模式研究
引入线索约束的设计模式变体挖掘研究*
设计模式挖掘的有效性评估策略
智慧图书馆环境下的融贯式服务设计模式研究
三维协同设计模式下的航天项目管理实践与展望
交通机电工程设计模式创新探讨
应用型高校学生程序设计能力培养研究
基于“双师制”指导下的工业设计专业毕业设计模式