网站首页
教育杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
医学杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
经济杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
金融杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
管理杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
科技杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
工业杂志
CSSCI期刊 北大期刊 CSCD期刊 统计源期刊 知网收录期刊 维普收录期刊 万方收录期刊 SCI期刊(美)
SCI杂志
中科院1区 中科院2区 中科院3区 中科院4区
全部期刊
公務(wù)員期刊網(wǎng) 論文中心 正文

中小企業(yè)WEB網(wǎng)站架構(gòu)與程序設(shè)計模式

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了中小企業(yè)WEB網(wǎng)站架構(gòu)與程序設(shè)計模式范文,希望能給你帶來靈感和參考,敬請閱讀。

中小企業(yè)WEB網(wǎng)站架構(gòu)與程序設(shè)計模式

摘要:隨著Web技術(shù)的發(fā)展,Web程序運行架構(gòu)與設(shè)計技術(shù)越來越多的呈現(xiàn)在開發(fā)者面前。本文探討了中小企業(yè)web應(yīng)用程序的運行架構(gòu),研究分析了中小企業(yè)應(yīng)用程序的設(shè)計模式。

關(guān)鍵詞:WEB網(wǎng)站;設(shè)計模式;運行架構(gòu)

引言

Web應(yīng)用程序是一種經(jīng)由Internet或Intranet、以Web方式提供服務(wù)的程序。它是典型的瀏覽器/服務(wù)器架構(gòu)的產(chǎn)物。采用Internet標準的通信協(xié)議HTTP作為兩者通信的標準。為服務(wù)開發(fā)商提供規(guī)范和簡化的開發(fā)模式,由于用統(tǒng)一的HTML語言作為客戶端程序的編碼,通過瀏覽器和Internet網(wǎng)的便捷性,可以在任何地方進行數(shù)據(jù)訪問。在現(xiàn)實的應(yīng)用中,我們通過瀏覽器將事務(wù)邏輯暴露給用戶,用戶通過瀏覽器將事務(wù)邏輯激活并將初始參數(shù)等信息傳遞給服務(wù)器,運行存儲于之中的事務(wù)處理程序,處理規(guī)定的事務(wù)邏輯。這要通過運行相應(yīng)的Web應(yīng)用服務(wù)程序和數(shù)據(jù)庫服務(wù)程序來完成,服務(wù)器對數(shù)據(jù)進行處理后,將處理的結(jié)果生成網(wǎng)頁,傳給瀏覽器,以實現(xiàn)對處理結(jié)果的顯示。這樣系統(tǒng)客戶端被大大的簡化,用一個瀏覽器就可以應(yīng)對于所有Web應(yīng)用程序,降低了客戶端計算機的配置成本。

1中小企業(yè)Web應(yīng)用程序的運行架構(gòu)

1.1通信協(xié)議

瀏覽器/服務(wù)器架構(gòu)的核心是HTTP,它有兩種報文形式:請求/響應(yīng)。請求報文包括方法、資源路徑、協(xié)議的版本、頭部的可選信息和報文體;響應(yīng)報文包括協(xié)議的版本號、狀態(tài)碼、頭部信息和獲取資源的內(nèi)容等。隨著WebService技術(shù)的出現(xiàn),產(chǎn)生了SOAP、WSDL、UDDI協(xié)議。WSDL用來描述如何訪問具體的接口,UDDI用來管理,分發(fā),查詢WebService當用戶通過UDDI找到你的WSDL描述文檔后,就可以通過SOAP調(diào)用已建立Web服務(wù)中的一個或多個操作。SOAP支持不同的底層接口,如HTTP(S)或者SMTP。

1.2主要服務(wù)軟件

主要的Web服務(wù)器支撐軟件常見的有Apache、IIS、Nginx。Apache使用范圍廣,支持多平臺,Nginx支持反向,IIS是微軟支持Web服務(wù)器軟件通過添加組件可以支持多種服務(wù)。但它們只能將一個固定的內(nèi)容返回到客戶端,不論何人、何時都一樣。Weblogic、Tomcat、Jetty是常見的應(yīng)用服務(wù)器,它們通過瀏覽器把服務(wù)的業(yè)務(wù)暴露給用戶,當用戶提出請求時,在服務(wù)器端為用戶運行業(yè)務(wù)處理程序,完成業(yè)務(wù)邏輯處理。WebSphere是IBM的基于Java的應(yīng)用環(huán)境,建立、部署和管理Internet和IntranetWeb應(yīng)用服務(wù)器軟件,使用較少。Tomcat也是基于java應(yīng)用服務(wù)器。它只是一個Servlet容器,可以獨立運行。它的特別之處在常常與Apache整合起來使用,能夠處理JSP,被廣泛使用。Jetty采用最優(yōu)的開源JavaWeb引擎,將Java社區(qū)中使用量最大,用戶數(shù)最多。Jetty通過使用APR和Tomcat本地技術(shù)的混合模型來解決問題?;旌霞夹g(shù)模型從最新的操作系統(tǒng)技術(shù)里提供了最好的線程和事件處理。其性能參數(shù)匹配甚至超越了本地ApacheHTTP服務(wù)器或者IIS。Jetty能夠提供數(shù)據(jù)庫連接池服務(wù),不僅支持JSP等Java技術(shù),還支持其他Web技術(shù)如PHP、.NET等。在數(shù)據(jù)管理上,中小企業(yè)網(wǎng)站主要使用關(guān)系型數(shù)據(jù)庫技術(shù),它是對數(shù)據(jù)進行高效管理主要工具,并且為外提應(yīng)用提供訪問接口,為Web應(yīng)用創(chuàng)造良好的開發(fā)環(huán)境。近來也有使用非關(guān)系型數(shù)據(jù)庫的趨勢。主要的數(shù)據(jù)庫管理軟件為Mysql和MS-SQLServer。兩款產(chǎn)品性能差不多,MS-sqlserver主要用在微軟的為主的技術(shù)體系中,在市場中有一定的占有率。Mysql作為熱門的數(shù)據(jù)庫管理系統(tǒng),在市場中有廣泛的使用,它對Windows和linux平臺有很好的支持。尤其是和php程序設(shè)計語言結(jié)合,產(chǎn)生了好多開發(fā)環(huán)境。在客戶終端的瀏覽器上,微軟、谷歌、蘋果產(chǎn)品市場占有率很高。瀏覽器的內(nèi)核主要有Trident、Gecko、WebKit、Presto。主要任務(wù)是對HTML語言進行解釋與渲染,生成用戶的瀏覽界面。

1.3運行架構(gòu)

(1)數(shù)據(jù)訪問量有限的架構(gòu)。網(wǎng)站的初期,我們往往會在單機上跑我們所有的程序。但隨著訪問量逐步上升,服務(wù)器的負載慢慢提高,網(wǎng)站的壓力逐步顯現(xiàn)。假如我們代碼層面已難以優(yōu)化,在不提高單臺機器的性能的情況下,可以將服務(wù)細化,將后臺服務(wù)分成業(yè)務(wù)服務(wù)和數(shù)據(jù)庫服務(wù),分別由不同的計算機完成。這樣不僅可以有效地提高系統(tǒng)的負載能力,而且性價比也很高,還提高了容災(zāi)能力,如圖1所示。(2)數(shù)據(jù)訪問量較大的架構(gòu)。隨著訪問量繼續(xù)增加,上圖所示的架構(gòu)也即將無法滿足客戶的需求了。這時可以把應(yīng)用服務(wù)器從一臺變成多臺,將他們組成一個服務(wù)器集群,通過負載均衡技術(shù)把用戶的請求分散到不同的服務(wù)器中,從而提高負載能力。而對于日益增加數(shù)據(jù)庫的訪問需求,我們可以通過SAN、NAS和加大緩存與讀寫分離等技術(shù)來解決,如圖2所示。

2中小企業(yè)應(yīng)用程序的設(shè)計模式

設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。它是一套被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)??蚣苁且环N相對固定的設(shè)計模式是可重用、半完成的應(yīng)用程序,使用框架可以生成專門定制的應(yīng)用程序。

2.1基于“WEB頁面/文件”設(shè)計模式

這種設(shè)計模式下,當客戶端通過HTTP協(xié)議,將網(wǎng)頁上暴露的商業(yè)邏輯提交至服務(wù)器時,URL直接指向某個文件,然后由該文件來處理請求,同時將輸入?yún)?shù)提交給它,運行結(jié)束返回響應(yīng)結(jié)果。在實踐中,我們把不同的業(yè)務(wù)處理程序放在不同的文件夾的文件中,使之與URL對應(yīng)。當HTTP把請求提交至服務(wù)器時,URL為:www.sjsyd.com/news/reader.php?id=1234.可以想象,在站點根目錄的news目錄下放置一個reader.php文件,同時提交給文件的id值為1234。這種設(shè)計模式在ASP、PHP處理簡單業(yè)務(wù)時常見。

2.2基于MVC設(shè)計模式

模型(M)是數(shù)據(jù)的表述,它不是真正的數(shù)據(jù),而是數(shù)據(jù)的接口,使用它時我們無需知道底層數(shù)據(jù)庫的不同類型。視圖(V)使我們看到的界面,它是表現(xiàn)層??刂破?C)控制模型和視圖之間的信息流動,它通過程序邏輯來判斷模型從數(shù)據(jù)庫獲取了什么信息,將什么信息傳給了視圖。這種設(shè)計模式分離了應(yīng)用邏輯和表現(xiàn)邏輯,所有請求都通過控制器分發(fā),分發(fā)過程基于請求的URL.這種設(shè)計模式和上面的基于文件的模式一樣,都是基于請求/響應(yīng)驅(qū)動的,服務(wù)器與客戶機之間的數(shù)據(jù)傳輸遵循Http協(xié)議。它是中小企業(yè)網(wǎng)站主流的程序設(shè)計模式,很多常用框架springMVC(Java),RubyonRails(Ruby),ZendFramework(PHP)等都支持它。因為它們有很好程序結(jié)構(gòu)和代碼資源可供使用,給Web應(yīng)用程序設(shè)計帶來了極大便利,能夠滿足高內(nèi)聚、低耦合的要求。如有URL,www.sjsyd.com/lib/book/1234.可以想象在實際代碼中,我們會有一個控制器libController,其中有一個bookAction。當業(yè)務(wù)邏輯發(fā)生變化時,只要在控制器上變化一下即可,從而實現(xiàn)表現(xiàn)(V)與模型(M)的分離,與asp/php業(yè)務(wù)邏輯和表現(xiàn)層混合編程方式相比,程序的修改要方便很多。不同框架可能默認實現(xiàn)方式稍有不同,有的是一個Controller一個文件,其中有多個Action,有的是每個Action一個文件。還有更直接的基于URL的設(shè)計方案,那就是REST。通過人為規(guī)定URL的構(gòu)成形式(Action限制為只有幾種)來促進網(wǎng)站之間的互相訪問,降低開發(fā)的復(fù)雜性,提高系統(tǒng)的伸縮性。

2.3基于組件的設(shè)計模式

此種設(shè)計模式在中小企業(yè)網(wǎng)站程序設(shè)計中最常用的框架為ASP.NET的Webform。它采用的是視圖優(yōu)先的策略,非常接近VCGUI,JavaSwing等可視化設(shè)計,可通過拖拽控件方式完成表現(xiàn)層設(shè)計。雙擊它們即可在后臺代碼中生成一系列事件響應(yīng)代碼,這些邏輯代碼都在ASPX.CS文件中。Webform將用戶的請求與響應(yīng)都封裝為控件,采用事件驅(qū)動模式來控制應(yīng)用程序請求,因此需要大量服務(wù)器控件支持。.NET中的事件基于委托模型。委托模型遵循觀察者設(shè)計模式,使訂閱者能夠向提供方注冊并接收相關(guān)通知。事件發(fā)送方推送事件發(fā)生的通知,事件接收器接收該通知并定義對它的響應(yīng),HTTP被隱含其中。當然不是僅有ASP.NET支持這種模式,對PHP來說,PRADO就是完全基于組件和事件驅(qū)動的開發(fā)框架。

3結(jié)語

總之,隨著云計算、大數(shù)據(jù)、人工智能的發(fā)展與廣泛使用,中小企業(yè)網(wǎng)站必將在架構(gòu)與設(shè)計模式中呈現(xiàn)出越來越多的特點,以適應(yīng)業(yè)務(wù)需求的不斷變化。

作者:趙立群 單位:北京市石景山區(qū)業(yè)余大學(xué)

免责声明

本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。

AI写作,高效原创

在线指导,快速准确,满意为止

立即体验
文秘服务 AI帮写作 润色服务 论文发表