• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    鐵路概預(yù)算軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)

    2018-09-10 07:25:14張弛
    現(xiàn)代信息科技 2018年2期
    關(guān)鍵詞:WEB服務(wù)

    摘 要:本文結(jié)合鐵路工程概預(yù)算軟件項(xiàng)目的實(shí)例,闡述了對N層體系架構(gòu)技術(shù)的理解,并通過分析具體的項(xiàng)目特點(diǎn),詳細(xì)地表述了如何設(shè)計(jì)一個可以靈活部署為單臺計(jì)算機(jī)應(yīng)用模式、企業(yè)局域網(wǎng)應(yīng)用模式、Internet應(yīng)用模式的分布式應(yīng)用系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)方案。

    關(guān)鍵詞:鐵路概預(yù)算;軟件系統(tǒng)設(shè)計(jì);N層體系結(jié)構(gòu);Web服務(wù);分布式應(yīng)用程序;應(yīng)用程序部署

    中圖分類號:TP311.52;U215.1 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2018)02-0022-03

    The Application Architecture Design of Budgetary Estimation of Railway Engineering

    ZHANG Chi

    (Dalian JiYi Logistics Co.,Ltd.,Dalian 116601,China)

    Abstract:In this article,via a software project of budgetary estimation of railway engineering,the author describes the understanding of the technique of N-tire architecture. By analyzing the characteristic of the concrete project,the author illustrates how to make a system architecture design plan of a distributed software application,in which explained that the application can be deployed flexibly by a single desktop mode,or by an enterprise intranet mode,or by the internet mode.

    Keywords:budgetary estimation of railway engineering;software system design;N-Tier;Web service;distributed application;application deployment

    引 言

    隨著計(jì)算機(jī)科學(xué)技術(shù)的不斷發(fā)展,軟件的規(guī)模和應(yīng)用領(lǐng)域迅速擴(kuò)大,造成了軟件程度的復(fù)雜度不斷加大,所以高效地開發(fā)出高質(zhì)量的軟件產(chǎn)品越來越困難,于是軟件開發(fā)人員開始關(guān)注如何找到理解軟件的更好途徑和探討是否存在更好的途徑來構(gòu)造復(fù)雜的大型軟件系統(tǒng)。為此,作為基層的計(jì)算機(jī)技術(shù)人員,我們對手頭的工作項(xiàng)目進(jìn)行了深入的思考。下面,結(jié)合我們在鐵路概預(yù)算軟件開發(fā)過程中的體會,就如何用N層體系結(jié)構(gòu)來設(shè)計(jì)該項(xiàng)目的系統(tǒng)結(jié)構(gòu),進(jìn)行簡單介紹。

    1 N層體系結(jié)構(gòu)簡介

    設(shè)計(jì)和數(shù)據(jù)庫相關(guān)的軟件系統(tǒng),總逃不開在如何確定系統(tǒng)的體系結(jié)構(gòu)的問題上做出選擇。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,體系結(jié)構(gòu)已經(jīng)從當(dāng)年的不分層,發(fā)展到今天的N層體系結(jié)構(gòu)。軟件的設(shè)計(jì)實(shí)現(xiàn)也從當(dāng)年無規(guī)矩可循的泥沼中,走到今天規(guī)范的高速路上來。

    最初的解決方案是不分“層”的,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)據(jù)層被分離出來,這樣就形成了一個典型的兩層結(jié)構(gòu)的系統(tǒng)設(shè)計(jì)。在這種架構(gòu)中,數(shù)據(jù)庫系統(tǒng)在后臺存儲和管理數(shù)據(jù),在用戶界面層里,負(fù)責(zé)進(jìn)行業(yè)務(wù)邏輯的處理和表示。雖然在大多數(shù)情況下,這些已經(jīng)足夠解決問題了,但仍存在著一些缺陷,如由于客戶端包含了業(yè)務(wù)邏輯,業(yè)務(wù)邏輯一改,所有客戶端都要升級等。由此,三層架構(gòu)出現(xiàn)了,業(yè)務(wù)邏輯層被從客戶端分離出來,并被部署在一臺服務(wù)器上,客戶端簡單到只是IE瀏覽器。這樣,便彌補(bǔ)了兩層架構(gòu)的缺陷。但對于需要在復(fù)雜客戶端操作的軟件系統(tǒng),這么“瘦”的客戶端顯然是不能滿足需求的,所以客戶端必須是復(fù)雜的應(yīng)用程序界面,那么,業(yè)務(wù)邏輯又應(yīng)該放到哪里呢?

    隨著組件技術(shù)的不斷發(fā)展,N層架構(gòu)出現(xiàn)了,這給上文的提問以多樣的解決方式。N層架構(gòu)還是以三層架構(gòu)為基礎(chǔ)的,只是業(yè)務(wù)邏輯層被劃分得更細(xì),如表示層和業(yè)務(wù)邏輯的接口被從業(yè)務(wù)邏輯層單獨(dú)分離出來,業(yè)務(wù)邏輯和數(shù)據(jù)庫的接口也被從業(yè)務(wù)邏輯層單獨(dú)分離出來,數(shù)據(jù)實(shí)體層被單獨(dú)定義,這樣每層的邏輯更單一,層與層的接口更清晰,而這一切帶來的就是更容易地升級、更簡單地維護(hù)、更靈活地部署。

    總結(jié)了這么多的分層方式,可以看出,給出一個設(shè)計(jì)方案是有多種選擇的。采用何種方案的標(biāo)準(zhǔn)是:哪種體系結(jié)構(gòu)的設(shè)計(jì)方案更適合我們的具體項(xiàng)目;適合的標(biāo)準(zhǔn)是:體量合適、效率滿足需要、易于升級、易于維護(hù)、可以靈活部署。

    下面以我們的項(xiàng)目為案例,闡述我們的解決方案。

    2 鐵路概算軟件的項(xiàng)目特點(diǎn)

    設(shè)計(jì)鐵路概算軟件體系結(jié)構(gòu)時,以下方面是必須考慮到的:

    2.1 多專業(yè)配合工作

    一個工程項(xiàng)目一般包含多個子工程,每個子工程需要多個專業(yè)配合設(shè)計(jì)。比如一個房建工程就涉及房屋、水暖、電力、裝飾、機(jī)械等專業(yè);更大的工程如一個秦沈客運(yùn)專線,就需要多個車站多個區(qū)間的線路工程、橋梁工程、房建工程、信號工程、通信工程等。如此說來,我們面臨這樣一個事務(wù)模型:它是由許多相互關(guān)聯(lián)的子事務(wù)構(gòu)成的,這些子事務(wù)模型共享基礎(chǔ)資源,共享設(shè)計(jì)標(biāo)準(zhǔn),彼此有時序關(guān)聯(lián),互為約束條件。

    2.2 多人協(xié)作工作

    用戶是軟件設(shè)計(jì)時要考慮的第一要素。一個復(fù)雜的概算項(xiàng)目是由許多角色共同參與、彼此配合來完成的。這在本項(xiàng)目中表現(xiàn)得尤為突出。如,一種典型概算編制的工作模式就是:具體設(shè)計(jì)者完成自己負(fù)責(zé)的個別概算;概算科負(fù)責(zé)配置定額標(biāo)準(zhǔn),設(shè)計(jì)標(biāo)準(zhǔn),并進(jìn)行統(tǒng)計(jì)匯總;項(xiàng)目總負(fù)責(zé)人或總工程師負(fù)責(zé)審核,以及責(zé)令修改。在這種模式中,要由許多有特定權(quán)限的角色共同協(xié)作來完成工作。

    2.3 異地并行工作

    隨著Internet接入的不斷普及,異地(非公司局域網(wǎng)范圍內(nèi))并行工作成為可能,而這也正符合大型勘查設(shè)計(jì)工作的特點(diǎn)。另一種情況是,概算審查單位(比如上級主管部門、建設(shè)單位)也都處于本單位局域網(wǎng)之外,他們也有要求通過Internet訪問某特定概算的需求。

    這些情況,帶來了通過Internet訪問本系統(tǒng)的需求。

    2.4 多變的部署規(guī)模

    大的設(shè)計(jì)院,一般有幾百個設(shè)計(jì)人員,有幾十個人的工經(jīng)處;中型的設(shè)計(jì)院,有近百個設(shè)計(jì)人員,有十余人的概算科;而眾多小型設(shè)計(jì)所、施工單位,有可能只有一個人,需要在一臺電腦上完成所有操作。

    對于這種種需求,在今天飛速發(fā)展的計(jì)算機(jī)技術(shù)面前,其有效實(shí)現(xiàn)都已經(jīng)成為可能。

    3 采用的軟件技術(shù)

    (1)數(shù)據(jù)庫系統(tǒng)采用了MS SQL Server2008。(2)客戶端采用了MS.Net Windows Application和IE配合使用。(3)服務(wù)端組件的設(shè)計(jì)采用了.Net Managed Component和ASP.NET。(4)Web服務(wù)器采用MS IIS。(5)數(shù)據(jù)交換技術(shù),采用了兩種技術(shù),一是基于SAOP協(xié)議的XML Web Service,它可以穿透防火墻,適于Internet應(yīng)用;二是基于TCP或HTTP協(xié)議,傳送Binary Stream的.Net Remoting,它交換速度更快,適于局域網(wǎng)內(nèi)部應(yīng)用。由于這些技術(shù)不在本文的討論范圍之內(nèi),故不展開討論。

    4 我們的鐵路概算軟件的體系結(jié)構(gòu)

    基于以上種種考慮,我們的鐵路概預(yù)算軟件的體系結(jié)構(gòu)設(shè)計(jì)共分為六層,如圖1所示,箭頭代表調(diào)用關(guān)系。

    4.1 客戶端表示層

    該層采用有著豐富表現(xiàn)形式的Windows應(yīng)用程序作為客戶端程序,通過這個界面,可以實(shí)現(xiàn)復(fù)雜的輸入和處理方式,也能更好地利用客戶端的資源,這是IE插件所難以辦到的。

    4.2 業(yè)務(wù)邏輯接口層

    該層用來將客戶端表示層和業(yè)務(wù)邏輯層隔離。在該層中,主要完成用戶權(quán)限管理工作,只有有權(quán)限的用戶才能存取相應(yīng)的業(yè)務(wù)。同時,在該層中完成界面表示層和業(yè)務(wù)邏輯層之間數(shù)據(jù)格式的轉(zhuǎn)換。該層也為之后靈活地部署提供了條件。

    4.3 業(yè)務(wù)邏輯層

    該層的功能是比較好理解的——在該層中處理所有定額的管理邏輯、規(guī)則的定義邏輯、概算的計(jì)算邏輯,以及所有數(shù)據(jù)格式的合理性檢查。同時,它又是對多種來自業(yè)務(wù)邏輯接口層的一種歸納抽象,可以降低冗余業(yè)務(wù)邏輯,提高代碼的內(nèi)聚性。

    4.4 數(shù)據(jù)接口層

    該層的功能很單一,是內(nèi)存中的數(shù)據(jù)集和數(shù)據(jù)庫之間的接口。它只負(fù)責(zé)定額、概算數(shù)據(jù)和數(shù)據(jù)庫之間的交換。它是業(yè)務(wù)邏輯層對數(shù)據(jù)庫的調(diào)用的一種歸納和抽象,能夠大幅度地降低冗余代碼。

    4.5 數(shù)據(jù)實(shí)體層

    數(shù)據(jù)實(shí)體層是數(shù)據(jù)庫中的實(shí)體在組件中的再定義。為什么要把它單獨(dú)分離出來呢?這是因?yàn)槠渌鲗訌谋举|(zhì)上說都要和數(shù)據(jù)庫對話,業(yè)務(wù)邏輯操縱的業(yè)務(wù)實(shí)體就是數(shù)據(jù)庫中的實(shí)體,而在N層結(jié)構(gòu)中,只有數(shù)據(jù)接口層才能和數(shù)據(jù)庫交流,為此我們創(chuàng)建了數(shù)據(jù)實(shí)體層。從上圖中可以看出,其他各層都要對本層進(jìn)行訪問。同時帶來的好處是,它是數(shù)據(jù)庫中的實(shí)體的所有信息在組件中的映象,它對所有數(shù)據(jù)實(shí)體在組建中建立了強(qiáng)制類型的約束。

    4.6 數(shù)據(jù)庫層

    數(shù)據(jù)庫層負(fù)責(zé)定額、規(guī)則、概算數(shù)據(jù)的存取。把所有業(yè)務(wù)邏輯從數(shù)據(jù)庫層剔除,當(dāng)然是理想化的,但同時也會使我們不得不放棄數(shù)據(jù)庫管理軟件的強(qiáng)大功能所帶來的好處。為此我們還是利用了數(shù)據(jù)庫提供的關(guān)聯(lián)、索引、約束等手段,同時設(shè)計(jì)了簡明的存儲過程和觸發(fā)器,在提供和數(shù)據(jù)接口層交流的同時,降低業(yè)務(wù)邏輯層的工作量。

    5 多層的優(yōu)點(diǎn)

    有的讀者可能會問,這么簡單的一個輸入定額、費(fèi)率、再計(jì)算、輸出報表的過程用得著設(shè)計(jì)這么多層嗎?那么,拋下邏輯清晰、便于升級、便于維護(hù)等優(yōu)點(diǎn)不講,下面介紹幾種部署方案,來簡單了解一下N層體系結(jié)構(gòu)設(shè)計(jì)帶來的其他益處。

    5.1 簡單的個人版的部署

    這類用戶可能只有一臺電腦,需要我們將所有組件都部署在同一臺機(jī)器上。數(shù)據(jù)庫可以安裝SQL Server MSDE,同時簡化用戶管理模塊,使該用戶擁有所有權(quán)限。這樣,該用戶會覺得和使用一個單機(jī)版的軟件沒有區(qū)別。

    5.2 一個中大型企業(yè)的部署

    圖2是各種組件在一個企業(yè)局域網(wǎng)內(nèi)部的部署:

    豎虛線左面的是網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),右面的是各層部署的組件。服務(wù)器集群的作用是均衡網(wǎng)絡(luò)負(fù)載,那么客戶的個數(shù)將只會受到集群的大小的限制。一般情況下,幾百人的企業(yè)有一臺電腦也足夠了。

    5.3 面向Internet用戶的部署

    圖3是各種組件在一個Internet解決方案中的部署:

    從這張圖中可以看出,客戶端可以通過調(diào)用Web Service,在Internet上訪問本系統(tǒng),同樣為了降低海量用戶訪問的壓力,可以設(shè)計(jì)兩個服務(wù)器集群,一個是web服務(wù)器集群,它是一個橋梁,溝通外部世界;另一個集群是組件服務(wù)器集群,用以完成業(yè)務(wù)邏輯處理。兩個集群之間用.Net Remoting連接。

    這樣,通過組件的部署與配置,我們的軟件系統(tǒng)已經(jīng)發(fā)展為一個可以在Internet級別上應(yīng)用的大型系統(tǒng),可以為廣大的客戶提供鐵路工程概預(yù)算服務(wù)。

    6 結(jié) 論

    以上是我們對鐵路概預(yù)算軟件項(xiàng)目設(shè)計(jì)的簡單介紹。通過對N層體系架構(gòu)的理解、對具體項(xiàng)目的分析,闡述了在本項(xiàng)目中,我們對層次的劃分,以及它所帶來的益處。

    我們希望能夠?qū)⒐ぷ髦械那猩眢w會進(jìn)行歸納總結(jié),并試圖得出超出具體軟件項(xiàng)目之外的規(guī)律性的東西。希望同行們批評指正,讓我們工程技術(shù)人員一起努力,把最新的計(jì)算機(jī)軟件技術(shù)應(yīng)用到生產(chǎn)實(shí)踐中,讓新興的軟件信息技術(shù)為鐵路建設(shè)事業(yè)服務(wù)。

    參考文獻(xiàn):

    [1] 李準(zhǔn),王曉剛.鐵路工程概預(yù)算工程數(shù)量自動套用定額系統(tǒng)研究 [J].鐵道標(biāo)準(zhǔn)設(shè)計(jì),2014,58(3):141-145.

    [2] 陳瑜.基于專家系統(tǒng)的鐵路工程單項(xiàng)概算編制研究 [J].鐵道標(biāo)準(zhǔn)設(shè)計(jì),2017,61(1):154-158.

    [3] 金強(qiáng).新版鐵路工程概預(yù)算編制辦法與費(fèi)用定額的特點(diǎn)及應(yīng)用 [J].鐵路工程技術(shù)與經(jīng)濟(jì),2017,32(4):13-16.

    作者簡介:張弛(1988.03-),男,漢族,遼寧錦州人,本科,助理工程師。主要從事計(jì)算機(jī)應(yīng)用相關(guān)研究。

    猜你喜歡
    WEB服務(wù)
    現(xiàn)代SOA架構(gòu)差旅報銷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)分析
    基于3G技術(shù)的智能水表WEB服務(wù)系統(tǒng)的研究
    基于Web服務(wù)的SPSS與.NET系統(tǒng)集成開發(fā)
    軟件(2016年4期)2017-01-20 09:28:12
    基于線性回歸的航班延誤預(yù)測研究與系統(tǒng)開發(fā)
    基于Proteus的嵌入式以太網(wǎng)Web服務(wù)虛擬實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)
    智慧校園一卡通與圖書館系統(tǒng)對接探究
    軟件(2016年5期)2016-08-30 18:28:31
    教學(xué)工作量管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
    一種基于SOA的web異構(gòu)數(shù)據(jù)集成方法研究
    基于Agent的自演化Web服務(wù)機(jī)制研究
    基于ARM平臺的嵌入式Web服務(wù)器設(shè)計(jì)
    庆阳市| 饶阳县| 平阴县| 女性| 潞城市| 庆元县| 波密县| 林口县| 泰来县| 开阳县| 巴南区| 海林市| 兴隆县| 安庆市| 石泉县| 仁寿县| 道真| 石阡县| 九江县| 昌邑市| 邵武市| 新干县| 广德县| 宝山区| 东乌| 江永县| 左云县| 敖汉旗| 温州市| 增城市| 芦山县| 日照市| 灵山县| 精河县| 宜都市| 石家庄市| 肇东市| 阿勒泰市| 堆龙德庆县| 文化| 八宿县|