




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于WCF外貿(mào)ERP業(yè)務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要當(dāng)今,ERP(EnterpriseResourcePlanning,公司資源籌劃)系統(tǒng)已使許多公司生產(chǎn)經(jīng)營管理發(fā)生了全新變化。成功地實(shí)行了ERP公司也從中獲得了明顯效益。但是通過這樣近年發(fā)展,ERP系統(tǒng)規(guī)模也越來越大,導(dǎo)致維護(hù)難度極大。此外,子系統(tǒng)與子系統(tǒng)之間、模塊與模塊之間互相操作也是困難重重。如何解決這些問題已迫在眉睫。幸好,隨著SOA原則成熟以及支持SOA實(shí)現(xiàn)技術(shù)不斷發(fā)展,SOA在各公司信息化建設(shè)及其各部門業(yè)務(wù)整合上也具備了某些應(yīng)用。WCF作為.NET近幾年推出分布式開發(fā)技術(shù),融合了之前.NetRemoting、WebService等有關(guān)技術(shù),無疑是.Net平臺(tái)實(shí)現(xiàn)SOA框架制勝利器。本文一方面簡介了分布式開發(fā)模型發(fā)展過程,對老式C/S與B/S特點(diǎn)及基于分布式組件技術(shù)多層B/S開發(fā)模型優(yōu)缺陷進(jìn)行分析。接下來簡介了SOA,探討了WebService技術(shù)特點(diǎn)。在此基本上對WCF概念、多層服務(wù)模型、通道模型、WCF宿主進(jìn)行分析。還對外貿(mào)ERP業(yè)務(wù)系統(tǒng)進(jìn)行了進(jìn)一步需求分析,最后制定了系統(tǒng)總體架構(gòu)。本系統(tǒng)劃分為四個(gè)層次,分別是體現(xiàn)層、通訊層、業(yè)務(wù)層和數(shù)據(jù)層。體現(xiàn)層涉及顧客界面以及一定量數(shù)據(jù)解決;通訊層重要負(fù)責(zé)客戶端和服務(wù)器端之間通訊;業(yè)務(wù)層重要負(fù)責(zé)對數(shù)據(jù)按照一定商業(yè)邏輯進(jìn)行操作;數(shù)據(jù)層重要是屏蔽上層業(yè)務(wù)邏輯與底層數(shù)據(jù)訪問,對數(shù)據(jù)進(jìn)行一系列操作。本系統(tǒng)不但對以上四個(gè)層具備良好設(shè)計(jì),更是成功實(shí)現(xiàn)了以上四層。核心詞:ERP系統(tǒng),WCF,分布式,SOAAbstractToday,productionandoperationandmanagementofmanycompanieshavebeenchangedbyERP(EnterpriseResourcePlanning)system.ThecompaniesthatsucceedwiththeirERP'simplementalwaysgainssignificantbenefits.Butaftersomanyyearsofdevelopment,thesizeoftheERPsystembecomemoreincreasing,leadtoincreasemaintenance.Inaddition,theinteroperationbetweenthesubsystemandthesubsystem,themoduleandthemodule,thatisdifficult.Howtosolvetheseproblemsisimminent.Fortunately,withmatureSOA'sstandardsandtechnologytosupportSOAthatisdeveloping,thereareanumberofapplicationsforSOAbusinessintegrationbetweentheenterpriseinformationconstructionanditsvariousdepartments.NearlyWCFasdistributeddevelopmenttechnologyin.NETtofuseNetRemotingandWebService,undoubtedlyWCFisoptimalweaponin.NETframeworkforSOA.Thisdissertationreviewsthehistoryofdistributedsoftwaredevelopmentmodel,analysesadvantagesanddisadvantagesoftraditionalC/SandB/Smodel,especiallythemulti-tierC/Smodelbasedondistributedcomponent.ThisdissertationintroducesWCFconcept,multi-tierservicemodel,channelmodel,WCFhost.ThereisalsoathoroughrequirementanalysisfortheforeigntradeERPbusinesssystem,finally,establishesoverallstructureofthesystem.Thesystemisdividedintofourlevels,namely,thepresentationlayer,communicationlayer,businesslayeranddatalayer.Presentationlayerincludingacertainamountofdataprocessing;communicationlayerisresponsibleforclientsideandserverside’scommunication;businesslayerismainlyresponsibleforthedataaccordingtocertainbusinesslogictooperate;datalayerisshieldtheupperbusinesslogicandtheunderlyingdataaccess,dealswithaseriesofoperationsonthedata.Thesystemnotonlygooddesignofthefourlayers,butalsosuccessfulrealizationoftheabovefourlayer.KeyWords:ERPsystem,WCF,Distributed,SOA目錄TOC\o"1-4"\h\z\u摘要 iAbstract ii目錄 I圖目錄 =4\*ROMANIV表目錄 =5\*ROMANV第1章緒論 11.1研究背景 11.2研究內(nèi)容 11.3研究意義 21.4國內(nèi)外研究現(xiàn)狀 21.4.1國外研究現(xiàn)狀 21.4.2國內(nèi)研究現(xiàn)狀 31.5論文組織構(gòu)造 41.6本章小結(jié) 4第2章分布式開發(fā)模型與WCF技術(shù) 52.1C/S開發(fā)模型簡介 52.2B/S開發(fā)模式簡介 62.3分布式組件技術(shù) 72.4基于分布式組件技術(shù)多層C/S開發(fā)模型 82.5SOA簡介 82.5.1SOA體系構(gòu)造 102.5.2WebService簡介 112.6WCF技術(shù) 122.6.1WCF概念 12合約 12協(xié)定綁定 13安全性層次 142.6.2基于WCF多層服務(wù)模型 152.6.3WCF通道模型 162.6.4WCF宿主 182.7本章小結(jié) 19第3章系統(tǒng)需求分析 213.1項(xiàng)目背景 213.2系統(tǒng)總體需求 213.3客戶端功能 223.4重要業(yè)務(wù)流程 243.4.1外銷合同管理 243.4.2收購合同管理 253.4.3進(jìn)倉管理 263.4.4出倉管理 273.4.5出口明細(xì)單管理 273.4.6報(bào)關(guān)單管理 273.4.7結(jié)匯單證管理 283.4.8核銷單管理 283.4.9信用證管理 293.4.10結(jié)算單管理 293.5本章小結(jié) 30第4章基于WCF外貿(mào)ERP業(yè)務(wù)系統(tǒng)設(shè)計(jì) 314.1系統(tǒng)總體方案 314.1.1體系構(gòu)造概述 314.2系統(tǒng)構(gòu)架實(shí)現(xiàn) 324.2.1體現(xiàn)層設(shè)計(jì) 324.2.2通訊層設(shè)計(jì) 364.2.3業(yè)務(wù)邏輯層設(shè)計(jì) 384.2.4數(shù)據(jù)層設(shè)計(jì) 394.3WCF技術(shù)在構(gòu)架實(shí)現(xiàn)中應(yīng)用 404.3.1WCF實(shí)現(xiàn)雙工模式 404.3.2WCF解決大型數(shù)據(jù)傳播 434.4數(shù)據(jù)庫設(shè)計(jì) 464.4.1商品表設(shè)計(jì) 464.4.2客戶表設(shè)計(jì) 474.4.3外銷合同表設(shè)計(jì) 484.5本章小結(jié) 50第5章系統(tǒng)實(shí)現(xiàn)和成果展示 515.1系統(tǒng)布置環(huán)境 515.2系統(tǒng)實(shí)現(xiàn) 515.2.1ClientSearch體現(xiàn)層實(shí)現(xiàn) 515.2.2ClientSearch通訊層實(shí)現(xiàn) 535.2.3ClientSearch業(yè)務(wù)邏輯實(shí)現(xiàn) 545.2.4ClientSearch數(shù)據(jù)層實(shí)現(xiàn) 555.3系統(tǒng)成果展示 595.4本章小結(jié) 63第6章總結(jié)與展望 646.1論文總結(jié) 646.2將來工作 64參照文獻(xiàn) 66作者簡歷 68道謝 69圖目錄TOC\h\z\c"圖"圖2.1C/S開發(fā)模型 5圖2.2B/S開發(fā)模型 7圖2.3基于分布式組件技術(shù)多層C/S開發(fā)模式 8圖2.4SOA體系構(gòu)造 10圖2.5基于WCF多層服務(wù)模型 15圖2.6通道堆棧 16圖2.7通道對象靜態(tài)類圖 18圖3.1ERP業(yè)務(wù)系統(tǒng)組織構(gòu)造 21圖3.2外銷合同管理流程 24圖3.3外銷合同管理流程 25圖4.1四層架構(gòu) 31圖4.2窗體類圖 33圖4.3BaseForm類圖 34圖4.4EclipseForm類圖 35圖4.5SearchForm類圖 35圖4.6WizardForm類圖 36圖4.7ECI通訊圖 37圖4.8數(shù)據(jù)層解決邏輯 39圖4.9CDSLock類圖 40圖5.1ClientSearch體現(xiàn)層 52圖5.2數(shù)據(jù)層機(jī)構(gòu)圖 58圖5.3系統(tǒng)主界面 60圖5.4客戶查詢界面 60圖5.5客戶編輯界面 61圖5.6外銷合同編輯界面 61圖5.7收購合同編輯界面 62圖5.8托運(yùn)明細(xì)單編輯界面 62表目錄TOC\h\z\c"表"表2.1WCF四種合約類型 13表2.2WCF宿主種類以及特點(diǎn) 19表4.1商品表表構(gòu)造 46表4.2客戶表表構(gòu)造 47表4.3外銷合同主表表構(gòu)造 48表4.4外銷合同商品表表構(gòu)造 49表4.5外銷合同費(fèi)用表表構(gòu)造 50緒論研究背景當(dāng)今,ERP(EnterpriseResourcePlanning,公司資源籌劃)系統(tǒng)已使許多公司生產(chǎn)經(jīng)營管理發(fā)生了全新變化。成功地實(shí)行了ERP公司也從中獲得了明顯效益。但是通過這樣近年發(fā)展,ERP系統(tǒng)規(guī)模也越來越大,導(dǎo)致維護(hù)難度極大。此外,子系統(tǒng)與子系統(tǒng)之間、模塊與模塊之間互相操作也是困難重重。如何解決這些問題已迫在眉睫。幸好,隨著SOA原則成熟以及支持SOA實(shí)現(xiàn)技術(shù)不斷發(fā)展,SOA在各公司信息化建設(shè)及其各部門業(yè)務(wù)整合上也具備了某些應(yīng)用。WCF作為.NET近幾年推出分布式開發(fā)技術(shù),融合了之前.NetRemoting、WebService等有關(guān)技術(shù),無疑是.Net平臺(tái)實(shí)現(xiàn)SOA框架制勝利器?;诖?,本文重要研究如何使用WCF分布式技術(shù)來實(shí)現(xiàn)一種外貿(mào)ERP業(yè)務(wù)系統(tǒng)。研究內(nèi)容研究內(nèi)容涉及如下三個(gè)重要構(gòu)成某些:1)詳細(xì)分析老式C/S兩層架系統(tǒng),在實(shí)際運(yùn)營中存在問題,例如:系統(tǒng)數(shù)據(jù)庫操作可擴(kuò)展性差,數(shù)據(jù)層負(fù)責(zé)直接與數(shù)據(jù)庫交互,業(yè)務(wù)邏輯層和表達(dá)層混合在一起作為另一層。雖然原系統(tǒng)已經(jīng)把對數(shù)據(jù)庫操作某些辦法封裝到了數(shù)據(jù)層類里面,對于不同事體對象可以依照需要使用類里面辦法。但是這樣設(shè)計(jì),可擴(kuò)展性不夠好,當(dāng)業(yè)務(wù)需求變動(dòng),需要變化類里面辦法時(shí),各個(gè)客戶端都必要再重新更新應(yīng)用程序。代碼可重用性差,C/S開發(fā)模型程序基于不同開發(fā)工具,數(shù)據(jù)庫平臺(tái),由于兼容性因素,代碼很難重用。如果此前已用C#開發(fā)了一種C/S兩層架構(gòu)報(bào)價(jià)單管理系統(tǒng),當(dāng)前單位想用Java再開發(fā)一種Web版報(bào)價(jià)單管理系統(tǒng),來以便客戶查詢公司產(chǎn)品價(jià)格。此時(shí)此前寫代碼就很難重用,不得不用java再重新實(shí)現(xiàn)一遍,增長了成本。思考若運(yùn)用WCF技術(shù)與否可以解決這些問題。2)分析WCF構(gòu)成、技術(shù)特點(diǎn)、通信模式、布置方式、安全性。3)分析外貿(mào)業(yè)務(wù)流程,從而設(shè)計(jì)出一套外貿(mào)ERP業(yè)務(wù)系統(tǒng),有效地幫組公司去加強(qiáng)過程控制,設(shè)立風(fēng)險(xiǎn)預(yù)警,細(xì)化業(yè)務(wù)核算。研究意義在一種系統(tǒng)中特別是較為大型系統(tǒng)中,如外貿(mào)ERP業(yè)務(wù)系統(tǒng),可按照功能切分為:商品管理系統(tǒng)、客戶管理系統(tǒng)、外銷合同管理系統(tǒng)、收購合同管理系統(tǒng)、報(bào)關(guān)單管理系統(tǒng)、倉儲(chǔ)管理系統(tǒng)等。在這樣應(yīng)用中系統(tǒng)切分了、功能獨(dú)立了、耦合減少了、容易維護(hù)了,可是各個(gè)系統(tǒng)中通訊怎么完畢呢?如果發(fā)生一筆“以銷定購”業(yè)務(wù),采購員在使用ERP系統(tǒng)新建收購合同步候,勢必想去讀取外銷合同中有用數(shù)據(jù)(如商品信息),那要怎么做呢?是要直接引用外銷合同管理系統(tǒng)DLL還是把這些需要互相調(diào)用功能放在一種叫Common項(xiàng)目中供所有子系統(tǒng)調(diào)用呢,或者干脆直接在收購合同管理系統(tǒng)中訪問數(shù)據(jù)庫中外銷合同數(shù)據(jù),這些辦法都是不太良好。分布式技術(shù)浮現(xiàn)將物理分散資源、解決邏輯整合成統(tǒng)一工作平臺(tái),并在整個(gè)系統(tǒng)上進(jìn)行分派與優(yōu)化,克服了老式集中式系統(tǒng)缺陷。之后SOA(面向服務(wù)架構(gòu))浮現(xiàn),又將應(yīng)用程序不同功能單元構(gòu)建為服務(wù),這些服務(wù)通過定義良好借口和契約聯(lián)系起來。接口采用中立方式定義,它獨(dú)立于實(shí)現(xiàn)服務(wù)硬件平臺(tái),操作系統(tǒng)和編程語言。使得構(gòu)建在各種系統(tǒng)中服務(wù)以統(tǒng)一,通用方式進(jìn)行交互。Microsoft公司順應(yīng)這一趨勢,推出了基于SOA網(wǎng)絡(luò)開發(fā)新技術(shù)WCF(WindowsCommunicationFoundation,windows通信基本)。WCF采用面向服務(wù)新型編程模型簡化了分布式應(yīng)用程序開發(fā)。它提供分層體系構(gòu)造,支持各種風(fēng)格分布式應(yīng)用程序開發(fā)。WCF對“WS-*”原則內(nèi)置支持,提供了安全、可靠、協(xié)商過互操作。對于開發(fā)人員開說,這減少了達(dá)到異構(gòu)平臺(tái)互操作所需基本構(gòu)造代碼量。對于公司來說,這意味著在組織內(nèi)部和外部與客戶、伙伴和供應(yīng)商交互能力,而不論她們使用是什么平臺(tái)。因而,選用WCF分布式技術(shù)來實(shí)現(xiàn)一種外貿(mào)ERP業(yè)務(wù)系統(tǒng),不失為一種最佳解決方案。國內(nèi)外研究現(xiàn)狀國外研究現(xiàn)狀在某些IT應(yīng)用比較發(fā)達(dá)歐美國家中,公司已經(jīng)開始著手整合其不同種類操作系統(tǒng),應(yīng)用軟件,系統(tǒng)軟件和應(yīng)用基本構(gòu)造(applicationinfrastructure)。某些現(xiàn)存應(yīng)用程序被用來解決當(dāng)前業(yè)務(wù)流程(businessprocesses),因而從頭建立一種新基本環(huán)境是不也許。公司應(yīng)當(dāng)能對業(yè)務(wù)變化做出迅速反映,運(yùn)用對既有應(yīng)用程序和應(yīng)用基本構(gòu)造(applicationinfrastructure)投資來解決新業(yè)務(wù)需求,為客戶,商業(yè)伙伴以及供應(yīng)商提供新互動(dòng)渠道,并呈現(xiàn)一種可以支持有機(jī)業(yè)務(wù)(organicbusiness)構(gòu)架。SOA憑借其松耦合特性,使得公司可以按照模塊化方式來添加新服務(wù)或更新既有服務(wù),以解決新業(yè)務(wù)需要,提供選取從而可以通過不同渠道提供服務(wù),并可以把公司既有或已有應(yīng)用作為服務(wù),從而保護(hù)了既有IT基本建設(shè)投資。WindowsCommunicationFoundation(WCF)是Microsoft為構(gòu)建面向服務(wù)應(yīng)用提供分布式通信編程框架,是.NETFramework3.5重要構(gòu)成某些。使用該框架,開發(fā)人員可以構(gòu)建跨平臺(tái)、安全、可靠和支持事務(wù)解決公司級(jí)互聯(lián)應(yīng)用解決方案[1]。依照微軟官方解釋,WCF(之前版本名為“Indigo”)是使用托管代碼建立和運(yùn)營面向服務(wù)(ServiceOriented)應(yīng)用程序統(tǒng)一框架。它使得開發(fā)者可以建立一種跨平臺(tái)安全、可信賴、事務(wù)性解決方案,且能與已有系統(tǒng)兼容協(xié)作。WCF是微軟分布式應(yīng)用程序開發(fā)集大成者,它整合了.Net平臺(tái)下所有和分布式系統(tǒng)關(guān)于技術(shù),例如.NetRemoting、ASMX、WSE和MSMQ。以通信(Communication)范疇而論,它可以跨進(jìn)程、跨機(jī)器、跨子網(wǎng)、公司網(wǎng)乃至于Internet;以宿主程序而論,可以以ASP.NET,EXE,WPF,WindowsForms,NTService,COM+作為宿主(Host)。WCF可以支持合同涉及TCP,HTTP,跨進(jìn)程以及自定義,安全模式則涉及SAML,Kerberos,X509,顧客/密碼,自定義等各種原則與模式。也就是說,在WCF框架下,開發(fā)基于SOA分布式系統(tǒng)變得容易了,微軟將所有與此有關(guān)技術(shù)要素都包括在內(nèi),掌握了WCF,就相稱于掌握了叩開SOA大門鑰匙。國內(nèi)研究現(xiàn)狀在國內(nèi),WCF推出,促使許多程序員積極地刊登大量關(guān)于WCF技術(shù)以及WCF技術(shù)應(yīng)用有關(guān)文章,文章中還解說某些小應(yīng)用程序。蔣金南在博客園刊登系列博文《WCF技術(shù)剖析》。為了更好地學(xué)習(xí)WCF,國內(nèi)已經(jīng)出版了幾本外文翻譯后WCF技術(shù)圖書,深受廣大程序員歡迎。諸多公司應(yīng)用程序開發(fā)都采用了WCF框架,以使開發(fā)引用程序模塊化,便于適應(yīng)靈活多變外界需求。總體而言,國內(nèi)WCF研究工作與國外是同步,但在WCF應(yīng)用上小隊(duì)較少,相信隨著SOA概念普及以及Visualstudio發(fā)布,會(huì)有更多開發(fā)研究人員加入下WCF開發(fā)陣營中。論文組織構(gòu)造論文章節(jié)安排如下:第一章:緒論。簡介了論文研究背景、研究內(nèi)容、研究意義和國內(nèi)外研究現(xiàn)狀。第二章:分布式開發(fā)模型與WCF技術(shù)簡介。論述了分布式開發(fā)模型發(fā)展過程,分析了這些開發(fā)模型特點(diǎn),比較了這些模型在構(gòu)建分布式應(yīng)用程序中長處與局限性。簡介了SOA與WebService技術(shù),分析了它們特點(diǎn)。在此基本上簡介了WCF技術(shù),對WCF層次構(gòu)造,技術(shù)構(gòu)成進(jìn)行了分析。第三章:系統(tǒng)需求分析。簡介了作者參加開發(fā)外貿(mào)ERP業(yè)務(wù)系統(tǒng)項(xiàng)目背景、系統(tǒng)總體需求、客戶端功能、重要業(yè)務(wù)流程。第四章:系統(tǒng)架構(gòu)以及核心技術(shù)。本文作者一方面給出了體系機(jī)構(gòu)概念,并聯(lián)系實(shí)際給出了本系統(tǒng)體系架構(gòu),使讀者在整體上理解本外貿(mào)ERP業(yè)務(wù)系統(tǒng)。然后針對系統(tǒng)實(shí)現(xiàn)雙工模式和大數(shù)據(jù)傳播兩方面核心技術(shù),給出了可行解決方案。最后簡介了系統(tǒng)中商品表、客戶表、外銷合同主表、外銷合同商品表、外銷合同費(fèi)用表表構(gòu)造。第五章:系統(tǒng)實(shí)現(xiàn)和成果展示。本章開頭一方面給出了本系統(tǒng)布置環(huán)境,接著按照第四章設(shè)計(jì)思路,分別實(shí)現(xiàn)了ClientSearch模塊顧客層、通訊層、業(yè)務(wù)層和數(shù)據(jù)層,最后展示了本系統(tǒng)成果。第六章:總結(jié)與展望。對本文內(nèi)容進(jìn)行總結(jié),對WCF發(fā)展趨勢進(jìn)行展望,分析了WCF發(fā)展方向。本章小結(jié)在本章中,一方面簡介了本文研究背景、研究內(nèi)容、研究意義和國內(nèi)外研究現(xiàn)狀,最后給出了本文組織構(gòu)造。分布式開發(fā)模型與WCF技術(shù)C/S開發(fā)模型簡介C/S(Client/Server)構(gòu)造,即人們熟知客戶機(jī)和服務(wù)器構(gòu)造。它是軟件系統(tǒng)體系構(gòu)造,通過它可以充分運(yùn)用兩端硬件環(huán)境優(yōu)勢,將任務(wù)合理分派到Client端和Server端來實(shí)現(xiàn),減少了系統(tǒng)通訊開銷。當(dāng)前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式兩層構(gòu)造,由于當(dāng)前軟件應(yīng)用系統(tǒng)正在向分布式Web應(yīng)用發(fā)展,Web和Client/Server應(yīng)用都可以進(jìn)行同樣業(yè)務(wù)解決,應(yīng)用不同模塊共享邏輯組件;因而,內(nèi)部和外部顧客都可以訪問新和既有應(yīng)用系統(tǒng),通過既有應(yīng)用系統(tǒng)中邏輯可以擴(kuò)展出新應(yīng)用系統(tǒng)。這也就是當(dāng)前應(yīng)用系統(tǒng)發(fā)展方向。老式C/S體系構(gòu)造雖然采用是開放模式,但這只是系統(tǒng)開發(fā)一級(jí)開放性,在特定應(yīng)用中無論是Client端還是Server端都還需要特定軟件支持。由于沒能提供顧客真正盼望開放環(huán)境,C/S構(gòu)造軟件需要針對不同操作系統(tǒng)系統(tǒng)開發(fā)不同版本軟件,加之產(chǎn)品更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上局域網(wǎng)顧客同步使用。并且代價(jià)高,效率低。其構(gòu)造如圖2.1所示:業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層數(shù)據(jù)庫訪問層ClientServer數(shù)據(jù)庫圖STYLEREF1\s2.SEQ圖\*ARABIC\s11C/S開發(fā)模型在這種開發(fā)模型中,應(yīng)用程序業(yè)務(wù)邏輯和數(shù)據(jù)解決邏輯分布在客戶和服務(wù)器兩端??蛻舳私邮茴櫩洼斎肫砬?,通過解決后將數(shù)據(jù)發(fā)送給數(shù)據(jù)庫服務(wù)器,并將返回成果顯示給顧客。與集中式系統(tǒng)相比,C/S開發(fā)模型有如下長處:1)服務(wù)器負(fù)荷較輕。業(yè)務(wù)邏輯集成在客戶端,服務(wù)器僅負(fù)責(zé)數(shù)據(jù)祈求,不需要與顧客直接交互,減輕了服務(wù)器負(fù)載。2)數(shù)據(jù)儲(chǔ)存管理功能透明。數(shù)據(jù)庫服務(wù)器負(fù)責(zé)數(shù)據(jù)儲(chǔ)存管理,客戶端在得到相應(yīng)權(quán)限后,對數(shù)據(jù)庫訪問是透明,以便了程序開發(fā)和顧客使用。3)將業(yè)務(wù)邏輯與數(shù)據(jù)庫相分離,層次構(gòu)造清晰。數(shù)據(jù)與業(yè)務(wù)解決分離開發(fā)模型比集中式系統(tǒng)構(gòu)造清晰,有助于分布式程序開發(fā)。C/S開發(fā)模型浮現(xiàn),推動(dòng)了分布式技術(shù)應(yīng)用與發(fā)展,其自身也有如下局限性:1)數(shù)據(jù)安全性差。由于業(yè)務(wù)邏輯集成在客戶端,服務(wù)端無從理解操作合法性,給系統(tǒng)留下潛在安全隱患。2)代碼可重用性差。C/S開發(fā)模型程序基于不同開發(fā)工具、數(shù)據(jù)庫平臺(tái),由于兼容性因素,代碼很難重用。B/S開發(fā)模式簡介B/S(Browser/Server)構(gòu)造即瀏覽器和服務(wù)器構(gòu)造。它是隨著Internet技術(shù)興起,對C/S構(gòu)造一種變化或者改進(jìn)構(gòu)造。在這種構(gòu)造下,顧客工作界面是通過WWW瀏覽器來實(shí)現(xiàn),很少某些事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是重要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier構(gòu)造。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)成本和工作量,減少了顧客總體成本(TCO)。以當(dāng)前技術(shù)看,局域網(wǎng)建立B/S構(gòu)造網(wǎng)絡(luò)應(yīng)用,并通過Internet/Intranet模式下數(shù)據(jù)庫應(yīng)用,相對易于把握、成本也是較低。它是一次性到位開發(fā),能實(shí)現(xiàn)不同人員,從不同地點(diǎn),以不同接入方式(例如LAN,WAN,Internet/Intranet等)訪問和操作共同數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣跨平臺(tái)語言浮現(xiàn)之后,B/S架構(gòu)管理軟件更是以便、快捷、高效。其構(gòu)造如圖2.2所示:Web瀏覽器Web瀏覽器業(yè)務(wù)邏輯層數(shù)據(jù)庫訪問層Web服務(wù)器數(shù)據(jù)庫服務(wù)器圖STYLEREF1\s2.SEQ圖\*ARABIC\s12B/S開發(fā)模型B/S開發(fā)模型有如下長處[2]:1)業(yè)務(wù)擴(kuò)展簡樸以便,通過增長網(wǎng)頁即可增長服務(wù)器功能。2)開發(fā)簡樸,共享性強(qiáng)。3)維護(hù)簡樸,升級(jí)容易。C/S開發(fā)模型應(yīng)用必要開發(fā)出專用客戶端軟件,無論是安裝、配備還是升級(jí)都需要在所有客戶機(jī)上實(shí)行,揮霍了人力和物力。B/S應(yīng)用只需在客戶端裝有通用瀏覽器即可,維護(hù)工作都在服務(wù)器端進(jìn)行。當(dāng)系統(tǒng)升級(jí)時(shí),只針對本地服務(wù)器完畢相應(yīng)工作,升級(jí)容易。4)數(shù)據(jù)庫安全性好??蛻舳瞬慌c數(shù)據(jù)庫直接相連,而是通過web服務(wù)器進(jìn)行解決,最大限度保證了數(shù)據(jù)庫安全。但存在如下局限性:1)頁面動(dòng)態(tài)刷新,響應(yīng)速度明顯減少。2)網(wǎng)站服務(wù)器負(fù)荷較重。分布式組件技術(shù)B/S為分布式開發(fā)提供了良好開發(fā)模型。當(dāng)應(yīng)用發(fā)生變化時(shí),如何充分運(yùn)用己有成果,保證已開發(fā)代碼能移植到新應(yīng)用中,最大程序節(jié)約投資是程序開發(fā)過程需要解決問題。不同于在集中和封閉環(huán)境下發(fā)展起來老式軟件,分布式應(yīng)用,特別是在Web環(huán)境下分布式開發(fā),既有軟件理論、辦法、技術(shù)。難以有效地適應(yīng)或基本不能適應(yīng)這種新軟件形態(tài),老式辦法也難以適應(yīng)網(wǎng)絡(luò)組件協(xié)同性、自適應(yīng)性,以及需求多目的性;在軟件可靠性方面,難以適應(yīng)web環(huán)境所規(guī)定整體化、可靠性與安全性。分布式組件技術(shù)正是在這種背景下產(chǎn)生,其基本思想是將大而復(fù)雜軟件應(yīng)用提成一系列可先行實(shí)現(xiàn)、易于開發(fā)、理解和調(diào)節(jié)軟件單元,這些軟件單元被稱為組件(components)。以組件為基本軟件開發(fā)方案,效率高,費(fèi)用低,可靠性好。分布式組件均有也許在將來被復(fù)用。環(huán)繞分布式組件進(jìn)行組織開發(fā),使得開發(fā)人員能在原有工作基本上,不斷完善新系統(tǒng)功能并減少開發(fā)時(shí)間。基于分布式組件技術(shù)多層C/S開發(fā)模型在軟件模塊化趨勢下,結(jié)合C/S開發(fā)模型與分布式組件技術(shù)形成了新開發(fā)模型,基于分布式組件技術(shù)多層C/S開發(fā)模型如圖2.3所示:Client表達(dá)層邏輯Client表達(dá)層邏輯分布式組件業(yè)務(wù)邏輯層數(shù)據(jù)庫訪問層Web服務(wù)器數(shù)據(jù)庫服務(wù)器UI層圖圖STYLEREF1\s2.SEQ圖\*ARABIC\s13基于分布式組件技術(shù)多層C/S開發(fā)模式此開發(fā)模模型較好地解決了C/S開發(fā)模式中數(shù)據(jù)安全性差和代碼重用性差局限性,也不用忍受B/S響應(yīng)慢缺陷[3]。SOA簡介SOA,面向服務(wù)體系構(gòu)造(service-orientedarchitecture)是一種組件模型,它將應(yīng)用程序不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好接口和契約聯(lián)系起來。接口是采用中立方式進(jìn)行定義,它應(yīng)當(dāng)獨(dú)立于實(shí)現(xiàn)服務(wù)硬件平臺(tái)、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣系統(tǒng)中服務(wù)可以以一種統(tǒng)一和通用方式進(jìn)行交互。這種具備中立接口定義(沒有強(qiáng)制綁定到特定實(shí)現(xiàn)上)特性稱為服務(wù)之間松耦合。松耦合系統(tǒng)好處有兩點(diǎn),一點(diǎn)是它靈活性,另一點(diǎn)是,當(dāng)構(gòu)成整個(gè)應(yīng)用程序每個(gè)服務(wù)內(nèi)部構(gòu)造和實(shí)現(xiàn)逐漸地發(fā)生變化時(shí),它可以繼續(xù)存在。而另一方面,緊耦合意味著應(yīng)用程序不同組件之間接口與其功能和構(gòu)造是緊密相連,因而當(dāng)需要對某些或整個(gè)應(yīng)用程序進(jìn)行某種形式更改時(shí),它們就顯得非常脆弱。對松耦合系統(tǒng)需要來源于業(yè)務(wù)應(yīng)用程序需要依照業(yè)務(wù)需要變得更加靈活,以適應(yīng)不斷變化環(huán)境,例如經(jīng)常變化政策、業(yè)務(wù)級(jí)別、業(yè)務(wù)重點(diǎn)、合伙伙伴關(guān)系、行業(yè)地位以及其她與業(yè)務(wù)關(guān)于因素,這些因素甚至?xí)绊憳I(yè)務(wù)性質(zhì)。咱們稱可以靈活地適應(yīng)環(huán)境變化業(yè)務(wù)為按需(Ondemand)業(yè)務(wù),在按需業(yè)務(wù)中,一旦需要,就可以對完畢或執(zhí)行任務(wù)方式進(jìn)行必要更改。雖然面向服務(wù)體系構(gòu)造不是一種新鮮事物,但它卻是更老式面向?qū)ο竽P痛婺P?,面向?qū)ο竽P褪蔷o耦合,已經(jīng)存在二十近年了。雖然基于SOA系統(tǒng)并不排除使用面向?qū)ο笤O(shè)計(jì)來構(gòu)建單個(gè)服務(wù),但是其整體設(shè)計(jì)卻是面向服務(wù)。由于它考慮到了系統(tǒng)內(nèi)對象,因此雖然SOA是基于對象,但是作為一種整體,它卻不是面向?qū)ο?。不同之處在于接口自身。SOA系統(tǒng)原型一種典型例子是通用對象祈求代理體系構(gòu)造(CommonObjectRequestBrokerArchitecture,CORBA),它已經(jīng)浮現(xiàn)很長時(shí)間了,其定義概念與SOA相似。然而,當(dāng)前SOA已有所不同了,由于它依賴于某些更新進(jìn)展,這些進(jìn)展是以可擴(kuò)展標(biāo)記語言(eXtensibleMarkupLanguage,XML)為基本。通過使用基于XML語言(稱為Web服務(wù)描述語言(WebServicesDefinitionLanguage,WSDL))來描述接口,服務(wù)已經(jīng)轉(zhuǎn)到更動(dòng)態(tài)且更靈活接口系統(tǒng)中,非此前CORBA中接口描述語言(InterfaceDefinitionLanguage,IDL)可比了。Web服務(wù)并不是實(shí)現(xiàn)SOA惟一方式。前面剛講CORBA是另一種方式,這樣就有了面向消息中間件(Message-OrientedMiddleware)系統(tǒng),例如IBMMQseries。但是為了建立體系構(gòu)造模型,您所需要并不只是服務(wù)描述。您需要定義整個(gè)應(yīng)用程序如何在服務(wù)之間執(zhí)行其工作流。您特別需要找到業(yè)務(wù)操作和業(yè)務(wù)中所使用軟件操作之間轉(zhuǎn)換點(diǎn)。因而,SOA應(yīng)當(dāng)可以將業(yè)務(wù)商業(yè)流程與它們技術(shù)流程聯(lián)系起來,并且映射這兩者之間關(guān)系。例如,給供應(yīng)商付款操作是商業(yè)流程,而更新您零件數(shù)據(jù)庫,以涉及進(jìn)新供應(yīng)貨品卻是技術(shù)流程。因而,工作流還可以在SOA設(shè)計(jì)中扮演重要角色。此外,動(dòng)態(tài)業(yè)務(wù)工作流不但可以涉及部門之間操作,甚至還可以涉及與不為您控制外部合伙伙伴進(jìn)行操作。因而,為了提高效率,您需要定義應(yīng)當(dāng)如何得知服務(wù)之間關(guān)系方略,這種方略經(jīng)常采用服務(wù)級(jí)協(xié)定和操作方略形式。最后,所有這些都必要處在一種信任和可靠環(huán)境之中,以同預(yù)期同樣依照商定條款來執(zhí)行流程。因而,安全、信任和可靠消息傳遞應(yīng)當(dāng)在任何SOA中都起著重要作用。SOA體系構(gòu)造SOA將應(yīng)用程序不同功能單元稱為服務(wù),并通過接口形式對外公開。服務(wù)采用原則合同,通過網(wǎng)絡(luò)來訪問。服務(wù)提供者開發(fā)出各種各樣有用服務(wù),通過嚴(yán)格測試后把服務(wù)發(fā)布到公共服務(wù)注冊表上,服務(wù)消費(fèi)者(祈求者)通過查找服務(wù)注冊表獲得所需要服務(wù),然后就可以使用所需要服務(wù)了。SOA由服務(wù)注冊者、服務(wù)消費(fèi)者與服務(wù)提供者構(gòu)成,體系構(gòu)造模型如圖2.4所示:圖STYLEREF1\s圖STYLEREF1\s2.SEQ圖\*ARABIC\s14SOA體系構(gòu)造服務(wù)注冊者服務(wù)消費(fèi)者服務(wù)提供者查找消費(fèi)/綁定發(fā)布1)服務(wù)提供者。服務(wù)提供者是提供服務(wù)實(shí)體,接受服務(wù)消費(fèi)者調(diào)用祈求并進(jìn)行響應(yīng)。2)服務(wù)注冊者。服務(wù)注冊者重要作用是用來搜索網(wǎng)絡(luò)上可用服務(wù)以及有關(guān)詳細(xì)信息。服務(wù)注冊者使用合同相稱于一種服務(wù)目,它是接受并存儲(chǔ)服務(wù)契約實(shí)體,供服務(wù)消費(fèi)者查詢服務(wù)之用。服務(wù)提供者需要將服務(wù)信息發(fā)布到服務(wù)注冊中心。3)服務(wù)消費(fèi)者。服務(wù)消費(fèi)者從服務(wù)注冊者處查詢需要服務(wù),并通過傳播機(jī)制來調(diào)用服務(wù),服務(wù)消費(fèi)者可以是應(yīng)用程序或另一種服務(wù)。它提供服務(wù)WSDL文檔并通過SOAP合同來與要訪問服務(wù)通信。WebService簡介SOA提出為程序開發(fā)提供了較好開發(fā)模式,WebService技術(shù)則是這種開發(fā)模式詳細(xì)實(shí)現(xiàn)技術(shù)之一。WebService使用基于XML消息作為數(shù)據(jù)通信方式,從而消除了使用不同組件模型、操作系統(tǒng)與編程語言系統(tǒng)之間存在差別,使異類系統(tǒng)可以作為計(jì)算網(wǎng)絡(luò)一某些協(xié)同運(yùn)營。WebService可以以為是一種布置在web上對象,同步WebService基石是以XML為主、開放web規(guī)范技術(shù)。它重要目的是在既有各種異構(gòu)平臺(tái)基本上構(gòu)成一種通用與平臺(tái)、語言無關(guān)技術(shù)層,各種平臺(tái)上應(yīng)用依托該技術(shù)層來實(shí)行互相連接和集成。WebService使用SOAP(SimpleObjectAccessProtocol,簡樸對象訪問合同)合同進(jìn)行通信。SOAP是在分布式環(huán)境中互換信息簡樸合同,它是一種輕量、簡樸、基于XML合同,它被設(shè)計(jì)成在Web上互換構(gòu)造化和固化信息。SOAP可以和現(xiàn)存許多因特網(wǎng)合同和格式結(jié)合使用,涉及超文本傳播合同(HTTP),簡樸郵件傳播合同,多用途網(wǎng)際郵件擴(kuò)充合同(MIME)。它還支持從消息系統(tǒng)到遠(yuǎn)程過程調(diào)用(RPC)等大量應(yīng)用程序。通過SOAP合同,WebService可以簡樸、有效為服務(wù)消費(fèi)者提供服務(wù)。WebService使用WSDL(WebServiceDescriptionLanguage,web服務(wù)描述語言)定義如何運(yùn)用XML語法描述WebService規(guī)范。它通過在服務(wù)提供者和服務(wù)祈求者之間互換消息來描述WebService,可被看作是WebService和外界溝通橋梁。WebService技術(shù)繼承了SOA長處,為解決分布、異構(gòu)公司應(yīng)用提供了比較好解決方案。通過它,可以將既有應(yīng)用程序功能和數(shù)據(jù)以XML形式公開。然后,便可以創(chuàng)立使用此XML集合復(fù)合應(yīng)用程序以實(shí)現(xiàn)各個(gè)構(gòu)成應(yīng)用程序之間互操作性。WebService使得整個(gè)應(yīng)用程序開發(fā)從以操作系統(tǒng)為中心應(yīng)用程序組織模式擴(kuò)展到以網(wǎng)絡(luò)為中心組織模式[4]。WCF技術(shù)WindowsCommunicationFoundation(WCF)是由微軟發(fā)展一組數(shù)據(jù)通信應(yīng)用程序開發(fā)接口,它是.NET框架一某些,由.NETFramework3.0開始引入,與WindowsPresentationFoundation及WindowsWorkflowFoundation并行為新一代Windows操作系統(tǒng)以及WinFX三個(gè)重大應(yīng)用程序開發(fā)類庫[5]。在.NETFramework2.0以及前版本中,微軟發(fā)展了WebService(SOAPwithHTTPcommunication),.NETRemoting(TCP/HTTP/Pipelinecommunication)以及基本W(wǎng)insock等通信支持,由于各個(gè)通信辦法設(shè)計(jì)辦法不同,并且彼此之間也有互相重疊性(例如.NETRemoting可以開發(fā)SOAP,HTTP通信),對于開發(fā)人員來說,不同選取會(huì)有不同程序設(shè)計(jì)模型,并且必要要重新學(xué)習(xí),讓開發(fā)人員在顧客有許多不便。同步,服務(wù)導(dǎo)向架構(gòu)(Service-OrientedArchitecture)也開始盛行于軟件工業(yè)中,因而微軟重新查看了這些通信辦法,并設(shè)計(jì)了一種統(tǒng)一程序開發(fā)模型,對于數(shù)據(jù)通信提供了最基本最有彈性支持,這就是WindowsCommunicationFoundation。WCF概念WCF由于集合了幾乎由.NETFramework所提供通信辦法,因而學(xué)習(xí)曲線比較陡峭,開發(fā)人員必要要針對各個(gè)部份內(nèi)涵做進(jìn)一步理解,才可以操控WCF來開發(fā)應(yīng)用程序[6]。通信雙方溝通方式,由合約來訂定。通信雙方所遵循通信辦法,由協(xié)定綁定來訂定。通信期間安全性,由雙方商定安全性層次來訂定。合約WCF基本概念是以合約(Contract)來定義雙方溝通協(xié)定,合約必要要以接口方式來呈現(xiàn),而實(shí)際服務(wù)代碼必要要由這些合約接口派生并實(shí)現(xiàn)。合約提成了四種,如表所示[6]:表STYLEREF1\s2.SEQ表\*ARABIC\s11WCF四種合約類型合約類型作用數(shù)據(jù)合約(DataContract)訂定雙方溝通時(shí)數(shù)據(jù)格式。服務(wù)合約(ServiceContract)訂定服務(wù)定義。營運(yùn)合約(OperationContract)訂定服務(wù)提供辦法。信息合約(MessageContract)訂定在通信期間改寫信息內(nèi)容規(guī)范。一種WCF中合約,就猶如下列代碼所示:usingSystem;usingSystem.ServiceModel;namespaceMicrosoft.ServiceModel.Samples{[ServiceContract(Namespace="")]publicinterfaceICalculator{[OperationContract]doubleAdd(doublen1,doublen2);[OperationContract]doubleSubtract(doublen1,doublen2);[OperationContract]doubleMultiply(doublen1,doublen2);[OperationContract]doubleDivide(doublen1,doublen2);}}協(xié)定綁定由于WCF支持了HTTP,TCP,NamedPipe,MSMQ,Peer-To-PeerTCP等協(xié)定,而HTTP又分為基本HTTP支持(BasicHttpBinding)以及WS-HTTP支持(WsHttpBinding),而TCP亦支持NetTcpBinding,NetPeerTcpBinding等通信方式,因而,雙方必要要統(tǒng)一通信協(xié)定,并且也要在編碼以及格式上要有所一致。一種設(shè)立通信協(xié)定綁定示例如下[7][8]:<?xmlversion="1.0"encoding="utf-8"?><configuration><system.serviceModel><services><servicename="CalculatorService"><endpointaddress=""binding="wsHttpBinding"bindingConfiguration="Binding1"contract="ICalculator"/></service></services><bindings><wsHttpBinding><bindingname="Binding1"></binding></wsHttpBinding></bindings></system.serviceModel></configuration>雖然WCF也可以使用SOAP做通信格式,但它和以往ASP.NETXMLWebServices不同,因而有部份技術(shù)文章中,會(huì)將ASP.NETXMLWebServices稱為ASMXService。WCF服務(wù)可以掛載于ConsoleApplication,WindowsApplication,IIS(ASP.NET)Application,WindowsService以及WindowsActivationServices中,但大多都會(huì)掛在WindowsService。安全性層次WCF實(shí)現(xiàn)上已經(jīng)支持了傳播層次安全性(Transport-levelsecurity)以及信息層次安全性(Message-levelsecurity)兩種[9]。傳播層次安全性:在數(shù)據(jù)傳播時(shí)期加密,例如SSL。信息層次安全性:在數(shù)據(jù)解決時(shí)就加密,例如使用數(shù)字簽章,散列或是使用金鑰加密法等?;赪CF多層服務(wù)模型WCF繼承了SOA體系構(gòu)造,基于WCF多層服務(wù)模型也可以分為:客戶層、WCF服務(wù)層、業(yè)務(wù)邏輯層與數(shù)據(jù)庫層,如圖2.5所示[10]:客戶層WCF服務(wù)層客戶層WCF服務(wù)層業(yè)務(wù)邏輯層數(shù)據(jù)庫訪問層數(shù)據(jù)庫服務(wù)器圖圖STYLEREF1\s2.SEQ圖\*ARABIC\s15基于WCF多層服務(wù)模型在這種服務(wù)模型中,各層次功能如下:1)客戶層客戶層是顧客與系統(tǒng)交互橋梁。由于WCF充分支持WS-*原則,與WebService技術(shù)同樣,WCF與異構(gòu)平臺(tái)具備良好互操作性。WCF客戶端可以運(yùn)營在異構(gòu)平臺(tái)下,通過引用WCF提供接口與WCF服務(wù)交互。客戶端只關(guān)懷接口內(nèi)容,不必理解詳細(xì)服務(wù)實(shí)現(xiàn)形式,與面向?qū)ο缶幊碳夹g(shù)相比,簡化了客戶端編程復(fù)雜程序。當(dāng)業(yè)務(wù)邏輯發(fā)生變化而客戶端服務(wù)不變時(shí),客戶層無需做出任何修改,因而以便了系統(tǒng)維護(hù)。2)WCF服務(wù)層WCF服務(wù)層位于業(yè)務(wù)邏輯層和客戶層之間。從客戶端觀點(diǎn)看,WCF服務(wù)層是對業(yè)務(wù)邏輯層封裝與抽象。WCF對Windows平臺(tái)下己有分布式解決技術(shù)進(jìn)行整合,如DCOM,.NETRemoting,WSE等,并為分布式開發(fā)提供了統(tǒng)一開發(fā)模式,減少了系統(tǒng)維護(hù)復(fù)雜度WCF服務(wù)層對客戶層提供服務(wù)接口,WCF服務(wù)是由下一層即業(yè)務(wù)邏輯實(shí)現(xiàn)。3)業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層實(shí)現(xiàn)了WCF服務(wù)詳細(xì)內(nèi)容。業(yè)務(wù)邏輯層可以是服務(wù)實(shí)現(xiàn),也可以是對其他WCF服務(wù)調(diào)用封裝。WCF可以將基于初期Windows分布式技術(shù)進(jìn)行整合,在進(jìn)行少量代碼修改狀況下迅速構(gòu)建公司應(yīng)用,節(jié)約了投資。4)數(shù)據(jù)庫訪問層數(shù)據(jù)庫連接層為業(yè)務(wù)邏輯層提供訪問服務(wù),并提供數(shù)據(jù)庫操作辦法。本層將詳細(xì)數(shù)據(jù)庫與數(shù)據(jù)庫操作實(shí)現(xiàn)方式分離,可以將既有系統(tǒng)順利轉(zhuǎn)移到不同數(shù)據(jù)庫服務(wù)器上。結(jié)合ADO.NET提供支持,開發(fā)人員可以迅速構(gòu)建在線/離線分布式應(yīng)用。將多層C/S開發(fā)模型與WCF技術(shù)結(jié)合,為分布式提供了高效開發(fā)模式。這種模式結(jié)合了各種開發(fā)模式長處,為開發(fā)不同平臺(tái)下分布式應(yīng)用提供了有力支持。WCF通道模型通道堆棧是具備一種或各種消息解決通道分層通信堆棧。堆棧底部是傳播通道,它負(fù)責(zé)使通道堆棧適應(yīng)基本傳播(例如,TCP、HTTP、SMTP和其她類型傳播)。通道為消息發(fā)送和接受提供了一種低檔編程模型。此編程模型依賴于各種接口和其她類型模型(統(tǒng)稱為WCF通道模型)。如圖2.6所示[11]:圖STYLEREF1\s2.SEQ圖\*ARABIC\s16通道堆棧底部通道稱為傳播通道。它是負(fù)責(zé)與其她方之間發(fā)送和接受消息通道。這涉及負(fù)責(zé)在與用于和其她方通信格式之間轉(zhuǎn)換Message對象。傳播通道上面可以有任意個(gè)合同通道,每個(gè)合同通道負(fù)責(zé)提供一種通信功能(如可靠傳遞保證)。合同通道對以Message對象形式流過其中消息執(zhí)行操作。合同通道普通會(huì)轉(zhuǎn)換消息(例如,通過添加標(biāo)頭或加密正文),或者發(fā)送和接受合同通道自己控制消息(例如回執(zhí)確認(rèn))。每個(gè)通道均實(shí)現(xiàn)一種或各種接口,稱為通道形狀接口或通道形狀。通道形狀最底部是IChannel接口,該接口提供一種GetProperty<T>辦法,用作訪問由堆棧中通道公開任意功能分層機(jī)制。擴(kuò)展IChannel五種通道形狀是:1)IInputChannel單一消息傳遞2)IOutputChannel3)IRequestChannel祈求答復(fù)4)IReplyChannel5)IDuplexChannel雙工通信此外,這些形狀中每個(gè)形狀均有一種擴(kuò)展System.ServiceModel.Channels.ISessionChannel以支持會(huì)話等效項(xiàng)。這些等效項(xiàng)是:1)IInputSessionChannel2)IOutputSessionChannel3)IRequestSessionChannel4)IReplySessionChannel5)IDuplexSessionChannel通道堆棧普通是使用工廠模式創(chuàng)立,在這種模式中,綁定創(chuàng)立通道堆棧。在發(fā)送端,使用綁定生成ChannelFactory,而后者生成通道堆棧并返回對堆棧中頂部通道引用。之后,應(yīng)用程序可以使用此通道發(fā)送消息。在接受端,使用綁定生成IChannelListener,用于偵聽傳入消息。IChannelListener通過創(chuàng)立通道堆棧并將應(yīng)用程序引用傳遞給頂部通道,將消息提供應(yīng)偵聽?wèi)?yīng)用程序。之后,應(yīng)用程序使用此通道接受傳入消息。通道對象模型是實(shí)現(xiàn)通道、通道偵聽器和通道工廠所必須一組核心接口。還提供某些基類以輔助自定義實(shí)現(xiàn)。ICommunicationObject是定義所有通信對象實(shí)現(xiàn)基本狀態(tài)機(jī)核心接口。CommunicationObject提供了此核心接口實(shí)現(xiàn),可以從此實(shí)現(xiàn)派生其她通道類而不必重新實(shí)現(xiàn)接口。但這并不是必須:自定義通道可以直接實(shí)現(xiàn)ICommunicationObject而不繼承自CommunicationObject。通道對象靜態(tài)類圖如圖2.7所示:圖STYLEREF1\s2.SEQ圖\*ARABIC\s17通道對象靜態(tài)類圖WCF宿主幾種常用WCF宿主種類以及特點(diǎn)如表2.2所示:表STYLEREF1\s2.SEQ表\*ARABIC\s12WCF宿主種類以及特點(diǎn)宿主形式特點(diǎn)WinForms應(yīng)用程序WindowsForms宿主可以提供管理宿主狀態(tài)UI,操作更加直觀。控制臺(tái)應(yīng)用程序控制臺(tái)作為宿主托管簡樸,普通做簡樸WCF編程時(shí)候使用。Windows服務(wù)Windows服務(wù)可以長期運(yùn)營在后臺(tái),支持所有綁定合同,但是安裝布置相對復(fù)雜。承載于Internet信息服務(wù)(IIS)中Web應(yīng)用程序IIS布置簡樸,可以向發(fā)布WebService同樣布置,但是僅僅支持http合同,并且宿主進(jìn)程在客戶祈求時(shí)候啟動(dòng),IIS托管帶來弊端就是WCF有些特性入回調(diào)、單例服務(wù)、流解決、事務(wù)傳播等特性無法支持。在選取應(yīng)用程序類型時(shí),必要考慮某些特定規(guī)定ServiceHost必要被實(shí)例化才干提供運(yùn)營服務(wù)所需承載環(huán)境??刂婆_(tái)應(yīng)用程序和WinForms應(yīng)用程序普通運(yùn)營在顧客桌面計(jì)算機(jī)上。在桌面上是可見,它們可以承載您服務(wù),安全性較差,因而并不合用于公司宿主。由于咱們要讓咱們公司服務(wù)可以支持更大更多服務(wù),在使用控制臺(tái)應(yīng)用程序和WinForms應(yīng)用程序作為host時(shí)候,顯然不適合,在這種體系構(gòu)造中,這些合用于公司宿主普通可以滿足諸如高可用性規(guī)定。因而,咱們不能將控制臺(tái)或WinForms應(yīng)用程序作為合用于公司宿主。唯一可行就是在IIS上承載服務(wù)或?qū)⑵銱ost到Windows服務(wù)。事實(shí)上在項(xiàng)目開發(fā)過程中咱們普通都用windowsapplication或consoleapplication作為host這樣有助于調(diào)試和測試,而在項(xiàng)目布置時(shí)候,咱們普通會(huì)選取IIS或windowsservice作為host。IIS有諸多長處,她自身提供了諸多功能。本章小結(jié)本章回顧了分布式開發(fā)模式發(fā)展過程,簡介C/S構(gòu)造與B/S構(gòu)造特點(diǎn),分析了它們優(yōu)勢和局限性。分析了基于分布式組件技術(shù)C/S構(gòu)造特點(diǎn),在此基本上討論了SOA和WebService技術(shù),指出可重用、可靠性好、高效易維護(hù)是分布式開發(fā)目的。本章在分析了WebService技術(shù)局限性基本上,對WCF技術(shù)特點(diǎn),體系構(gòu)造進(jìn)行了詳細(xì)簡介。通過對WCF服務(wù)模式與層次構(gòu)造研究,分析了WCF運(yùn)營機(jī)制與原理。最后對WCF通道模型,WCF宿主形式進(jìn)行探討,展示了WCF特點(diǎn)。系統(tǒng)需求分析項(xiàng)目背景上海茶葉國際貿(mào)易有限公司重要經(jīng)營茶葉、可可豆、可可粉以及紡織品等其她商品代理業(yè)務(wù)。其中茶葉以自營為主,并帶有加工工廠;可可豆、可可粉為期貨業(yè)務(wù);茶葉精為主內(nèi)銷;紡織品等其她商品以代理為主。公司貿(mào)易涉及遼闊,除進(jìn)出口業(yè)務(wù)自營代理業(yè)務(wù)外,還承辦補(bǔ)償貿(mào)易、來料、來件、進(jìn)料加工等業(yè)務(wù)。圖STYLEREF1\s3.SEQ圖\*ARABIC\s11ERP業(yè)務(wù)系統(tǒng)組織構(gòu)造當(dāng)前,公司面對著來自人民幣不斷升值、國家控制國際貿(mào)易順差以及國內(nèi)通貨膨脹帶來生產(chǎn)成本增長等多重壓力。在這嚴(yán)峻形勢下,公司經(jīng)營由粗放轉(zhuǎn)向精細(xì)型,對于常規(guī)產(chǎn)品方面,要做深做透,同步不斷開發(fā)新產(chǎn)品,形成差別優(yōu)勢;在客戶服務(wù)上,加快響應(yīng)速度,減少交流中誤差;在公司管理上,加強(qiáng)過程控制,設(shè)立風(fēng)險(xiǎn)預(yù)警,細(xì)化業(yè)務(wù)核算。系統(tǒng)總體需求系統(tǒng)應(yīng)遵循如下原則[12]:1)科學(xué)實(shí)用原則。該原則是系統(tǒng)架構(gòu)主線出發(fā)點(diǎn),立足于科學(xué)技術(shù),一切以滿足公司真實(shí)業(yè)務(wù)需要為架構(gòu)目。2)經(jīng)濟(jì)性原則。盡量運(yùn)用既有資源,堅(jiān)持在先進(jìn)、高性能前提下合理投資,保證在成本最低狀況下獲得最大經(jīng)濟(jì)效益和社會(huì)效益。3)安全可靠性原則。最大也許地減少因系統(tǒng)架構(gòu)故障而導(dǎo)致業(yè)務(wù)無法正常運(yùn)營狀況,同步,設(shè)計(jì)中還要規(guī)劃安全體系建設(shè),提高系統(tǒng)整體安全性。4)先進(jìn)成熟性原則。在IT技術(shù)飛速發(fā)展今天,規(guī)劃產(chǎn)品和技術(shù)應(yīng)具備一定前瞻性,可以適應(yīng)將來一段時(shí)間內(nèi),公司業(yè)務(wù)需求和技術(shù)發(fā)展趨勢。同步,應(yīng)當(dāng)兼顧產(chǎn)品和技術(shù)成熟性,保證系統(tǒng)架構(gòu)整體安全性。5)開放與可擴(kuò)展性原則。系統(tǒng)架構(gòu)應(yīng)盡量地使用開放式技術(shù),并充分考慮可擴(kuò)展性,滿足不斷發(fā)展變化公司業(yè)務(wù)和技術(shù)需求。6)統(tǒng)一原則化原則。盡量采用業(yè)界公認(rèn)行業(yè)或技術(shù)原則,減少實(shí)行和管理復(fù)雜度。客戶端功能客戶端需要實(shí)現(xiàn)如下九個(gè)方面功能[13]:1)資源管理公司中重要資源重要有:商品、采購商、供應(yīng)商、委托代理方以及其她分供方等。整個(gè)系統(tǒng)將配合公司管理制度使這些資源得到統(tǒng)一管理,對于資源深層次分析將為產(chǎn)品經(jīng)營和客戶關(guān)系管理提供重要數(shù)據(jù)。2)出口業(yè)務(wù)公司在進(jìn)一步規(guī)范業(yè)務(wù)操作、減少貿(mào)易風(fēng)險(xiǎn)同步,還應(yīng)實(shí)現(xiàn)系統(tǒng)中數(shù)據(jù)充分共享,提高工作效率。在整個(gè)出口業(yè)務(wù)中,涉及貿(mào)易磋商、工廠詢價(jià)、對外報(bào)價(jià)、客戶訂單、生產(chǎn)排產(chǎn)、采購合同、進(jìn)出倉環(huán)節(jié)、發(fā)運(yùn)告知等環(huán)節(jié),此外涉及代理業(yè)務(wù)解決、付款申請等。3)儲(chǔ)運(yùn)管理在出口業(yè)務(wù)解決過程中,儲(chǔ)運(yùn)部在接受業(yè)務(wù)數(shù)據(jù)后,制作有關(guān)單證,安排配艙包管事宜,并負(fù)責(zé)將結(jié)匯單證交銀行或給業(yè)務(wù)員寄單。同步儲(chǔ)運(yùn)部還需要審核收到出口信用證,并轉(zhuǎn)交給有關(guān)業(yè)務(wù)員審核,此外還管理著公司核銷單以及加工手冊,并負(fù)責(zé)審核儲(chǔ)運(yùn)有關(guān)費(fèi)用支付。在進(jìn)口業(yè)務(wù)解決過程中,儲(chǔ)運(yùn)部負(fù)責(zé)進(jìn)口報(bào)關(guān)工作,同步負(fù)責(zé)進(jìn)口報(bào)關(guān)、運(yùn)送等費(fèi)用支付審核。4)進(jìn)口業(yè)務(wù)實(shí)現(xiàn)進(jìn)口業(yè)務(wù)數(shù)據(jù)充分共享,規(guī)范業(yè)務(wù)操作。在整個(gè)進(jìn)口業(yè)務(wù)中,涉及進(jìn)口報(bào)價(jià)、進(jìn)口合同管理、進(jìn)口付匯核銷、進(jìn)口報(bào)關(guān)和業(yè)務(wù)結(jié)算等。5)進(jìn)來料加工管理整個(gè)加工貿(mào)易全過程,重點(diǎn)是對加工手冊管理,集中管理加工手冊申領(lǐng),跟蹤加工手冊流向,控制加工手冊中原料單耗,校驗(yàn)加工手冊公司內(nèi)部數(shù)據(jù)與海關(guān)數(shù)據(jù),從而規(guī)范整個(gè)加工貿(mào)易業(yè)務(wù)操作。6)倉庫管理整個(gè)倉庫系統(tǒng)管理著公司出口、進(jìn)口以及進(jìn)來料加工業(yè)務(wù)所有庫存商品(涉及廠存商品),負(fù)責(zé)庫存商品入庫、出庫、庫存盤點(diǎn)等業(yè)務(wù)。7)資金管理集中管理公司各種資金收付。其中涉及出口(預(yù))貨款支付、出口費(fèi)用支付、出口收匯、進(jìn)口費(fèi)用支付、進(jìn)口貨款收款、進(jìn)口開證費(fèi)用、辦公費(fèi)用、資金利息以及資金籌劃管理。8)查詢記錄為公司各個(gè)崗位提供了自己權(quán)限范疇內(nèi)有關(guān)信息查詢和記錄數(shù)據(jù),特別對總經(jīng)理和部長提供滿足管理需要決策數(shù)據(jù)。9)系統(tǒng)管理和系統(tǒng)數(shù)據(jù)重要設(shè)立公司部門、人員、崗位、權(quán)限、慣用數(shù)據(jù)以及數(shù)據(jù)備份。重要業(yè)務(wù)流程外銷合同管理圖STYLEREF1\s3.SEQ圖\*ARABIC\s12外銷合同管理流程流程描述[14]:1)外銷合同數(shù)據(jù)是整個(gè)出口業(yè)務(wù)流程數(shù)據(jù)重要源點(diǎn),錄入數(shù)據(jù)必要對的無誤。2)外銷合同由業(yè)務(wù)員制作,同步制作相應(yīng)合同評審表,合同制作完畢經(jīng)業(yè)務(wù)員本人確認(rèn)無誤后提交領(lǐng)導(dǎo)審批,審批通過后合同為正本(ORIGINAL)合同,否則為樣本(SAMPLE)合同。只有正本合同才是有效。只有正本合同才容許執(zhí)行背面操作。3)批準(zhǔn)后合同,若要修改,則保存原版本,生成新版本。4)外銷合同規(guī)定貨源員備貨時(shí),采購商品貨源員由業(yè)務(wù)員來指定。由于不同商品也許是各種工廠生產(chǎn),因此系統(tǒng)容許一種外銷合同指定各種貨源員。外銷合同生成時(shí),系統(tǒng)自動(dòng)默認(rèn)業(yè)務(wù)員為貨源員。5)代理業(yè)務(wù)容許暫時(shí)先不制作外銷合同,先制作出口明細(xì)單。如果要打印合同,則依照出口明細(xì)單信息生成一種外銷合同。6)如果是進(jìn)來料加工業(yè)務(wù),在到海關(guān)辦理加工手冊同步,必要附帶一份海關(guān)合同。依照正式合同條款信息,加工手冊中成品備案商品信息,系統(tǒng)自動(dòng)生成一份海關(guān)合同,其合同格式和公司正式合同格式一致。7)如果合同需要信用保險(xiǎn),則在合同條款中進(jìn)行標(biāo)注,同步提供信用保險(xiǎn)使用狀況查詢。8)在制作外銷合同同步,擬定預(yù)測出運(yùn)日期,預(yù)測交貨日期等信息,在合同進(jìn)程中進(jìn)行跟蹤,對于沒有準(zhǔn)時(shí)完畢合同跟進(jìn)業(yè)務(wù)進(jìn)行預(yù)警。9)對于已審批,但未訂立采購合同外銷合同商品,要提示相應(yīng)查詢和提示功能。收購合同管理圖STYLEREF1\s3.SEQ圖\*ARABIC\s13外銷合同管理流程流程描述[15]:1)貨源員接到業(yè)務(wù)員備貨指令后,與國內(nèi)生產(chǎn)廠家磋商,就商品價(jià)格、品質(zhì)規(guī)定、交貨期以及結(jié)算方式達(dá)到一致,訂立購貨合同。2)收購合同分“以銷定購”和“庫存?zhèn)湄洝眱煞N。這兩種狀況都是在收到業(yè)務(wù)員指令后才執(zhí)行?!耙凿N定購”是指先有外銷合同,再進(jìn)行商品采購?!皫齑?zhèn)湄洝笔菫榱藗渖唐钒踩珟齑?,此時(shí)沒有外銷合同。在“庫存?zhèn)湄洝睜顩r下,為了滿足出庫單制作(選取業(yè)務(wù)員庫存商品時(shí),只能選取業(yè)務(wù)員本人庫存商品),必要規(guī)定一種收購合同相應(yīng)是一種業(yè)務(wù)員。如果兩個(gè)業(yè)務(wù)員商品同步需要一種貨源員采購時(shí),必要制作兩個(gè)收購合同。3)以銷定購收購合同商品信息來源于外銷合同,商品采購價(jià)格可以從外銷合同中讀取,并可依照實(shí)際狀況,調(diào)節(jié)詳細(xì)數(shù)據(jù),條款信息由業(yè)務(wù)員手工輸入,數(shù)據(jù)輸入完畢經(jīng)業(yè)務(wù)員本人確認(rèn)無誤后提交部門經(jīng)理審批,審批通過后合同為正本(ORIGINAL)合同,否則為樣本(SAMPLE)合同。只有正本合同才是有效。只有正本合同才容許執(zhí)行背面操作。4)貨源員在和工廠談價(jià)格時(shí)候,大某些是按含稅價(jià)談,但也有按不含稅價(jià)談。系統(tǒng)設(shè)計(jì)時(shí)都要考慮。5)一種收購合同只能相應(yīng)一種外銷合同,一種外銷合同可以相應(yīng)各種收購合同。6)代理出口業(yè)務(wù)在入庫之前也必要做收購合同。收購合同制作辦法類同于自營業(yè)務(wù)收購合同制作辦法。7)出口/國料作價(jià)加工(內(nèi)貿(mào)/原材料加工完畢后需要將加工成品轉(zhuǎn)出口),在收購合同打印界面上要反映出出售給工廠輔料信息,輔料信息可以來自內(nèi)貿(mào)/原材料收購合同(與收購合同相應(yīng)關(guān)系為多對多),也可以直接來自業(yè)務(wù)員商品庫。8)茶葉作為生產(chǎn)任務(wù)單時(shí)候,相應(yīng)料件從材料庫存里面讀取。進(jìn)倉管理流程描述:1)凡是需要工廠開增值稅發(fā)票業(yè)務(wù)必要制作入庫單。即自營業(yè)務(wù)、普通代理業(yè)務(wù)必要制作入庫單,純代理不做進(jìn)倉單。2)在自營出口業(yè)務(wù)中,貨源員確認(rèn)工廠已經(jīng)及時(shí)交貨,貨品準(zhǔn)備進(jìn)倉時(shí),制作入庫告知單。工廠按照入庫告知單批示,將貨品運(yùn)至指定倉庫。倉庫在驗(yàn)收貨品后,確認(rèn)貨品入庫即入庫告知單轉(zhuǎn)變?yōu)槿霂靻危娔X中確認(rèn)過程由貨源員或相稱貨源員角色完畢)。工廠要結(jié)算貨款時(shí),必要有入庫單、收購合同、增值稅發(fā)票等單據(jù),提交財(cái)務(wù),并由業(yè)務(wù)員提出付款申請,通過有關(guān)審批環(huán)節(jié),審批通過后財(cái)務(wù)付款。3)入庫單單價(jià)和商品必要為不含稅單價(jià)和不含稅金額。4)公司有實(shí)物倉庫,也也許是存廠。5)來料加工料件不做進(jìn)出倉單。6)入庫單種類:入庫單,入庫紅沖單,其她入庫單等。出倉管理流程描述:1)在業(yè)務(wù)員在制作出口明細(xì)單后,制作商品出庫告知單。出庫告知單一種是交給貨代提貨,一種給倉庫備貨,此外是財(cái)務(wù)記賬憑證。2)和入庫單同樣,自營業(yè)務(wù)、普通代理業(yè)務(wù)時(shí)必要制作出庫單,純代理可以不做出庫單。出口明細(xì)單管理流程描述:1)當(dāng)業(yè)務(wù)員將出運(yùn)明細(xì)單數(shù)據(jù)發(fā)送給單證人員后(業(yè)務(wù)員本人也可以是單證人員),單證人員能瀏覽到業(yè)務(wù)員提交給自己新明細(xì)單信息(明細(xì)單發(fā)送時(shí)業(yè)務(wù)員指定直接單證人員),單證人員接受出運(yùn)明細(xì)單后,系統(tǒng)自動(dòng)將明細(xì)單數(shù)據(jù)拆提成2套單證:托單、報(bào)關(guān)商檢單證、結(jié)匯議付單證。2)單證人員在接受明細(xì)單信息之前,可以退回業(yè)務(wù)員發(fā)送明細(xì)單信息,退回時(shí),清空指定單證人員。如果明細(xì)單數(shù)據(jù)已經(jīng)接受,則不容許退回。3)報(bào)關(guān)單據(jù),結(jié)匯單據(jù)由單證人員與儲(chǔ)運(yùn)人員分開接受。報(bào)關(guān)單管理流程描述:1)儲(chǔ)運(yùn)人員在接受數(shù)據(jù)后,依照報(bào)關(guān)需要,可以修改有關(guān)商品信息,打印報(bào)關(guān)單證。2)報(bào)關(guān)單證涉及:報(bào)關(guān)發(fā)票(合并前、后兩種)、報(bào)關(guān)裝箱單、報(bào)關(guān)單、報(bào)關(guān)委托書、異地加工貿(mào)易申請表、商檢發(fā)票、商檢裝箱單、商檢報(bào)關(guān)單、商檢合同、報(bào)檢委托書、出境貨品報(bào)檢單、先放行申請書、浦東海關(guān)5000美金如下敷料核銷表、保證函、出口明細(xì)單等。3)單證打印完畢后,單證人員確認(rèn)制單完畢。配上核銷單后,一并交給報(bào)關(guān)人員進(jìn)行報(bào)關(guān)。4)一票業(yè)務(wù)只有一套報(bào)關(guān)單證。如果一次出運(yùn)有2種貿(mào)易業(yè)務(wù)同步出運(yùn),則建議分開兩個(gè)發(fā)票解決。5)由于報(bào)關(guān)發(fā)票和箱單商品數(shù)據(jù)條數(shù)也許不同,建議發(fā)票和裝箱單商品庫分開解決。結(jié)匯單證管理流程描述:1)單證人員依照業(yè)務(wù)員發(fā)送出運(yùn)明細(xì)單數(shù)據(jù)和信用證規(guī)定,打印結(jié)匯單據(jù)。2)結(jié)匯單證涉及:結(jié)匯發(fā)票、結(jié)匯裝箱單、匯票(交行、農(nóng)行)、Forma、CCPIT(毛重、數(shù)量)、裝船告知、品質(zhì)證明書、證明信、普通產(chǎn)地證、普惠制產(chǎn)地證,亞太地區(qū)原產(chǎn)地證、輸歐出口允許證、紡織品暫時(shí)出口允許證申請表、出口明細(xì)單等。3)單證打印完畢后,單證人員確認(rèn)制單完畢。提交給業(yè)務(wù)員或交單人員,進(jìn)行交單操作。4)由于結(jié)匯發(fā)票和箱單商品數(shù)據(jù)條數(shù)也許不同,建議發(fā)票和裝箱單商品分開解決。5)結(jié)匯發(fā)票中需要進(jìn)行認(rèn)證商品必要單獨(dú)打印一套發(fā)票信息。核銷單管理流程描述[16]:1)核銷單管理員(財(cái)務(wù)人員)從外管領(lǐng)用核銷單后,登記核銷單號(hào)、領(lǐng)用日期、報(bào)關(guān)口岸,并在網(wǎng)上登記各核銷單報(bào)關(guān)口岸。此時(shí)核銷單狀態(tài)為“未使用”。2)單證人員依照發(fā)票號(hào)到核銷單管理員處申請核銷單。核銷單管理員將外銷發(fā)票輸入系統(tǒng)。此時(shí)核銷單狀態(tài)為報(bào)關(guān)中。3)報(bào)關(guān)完畢,業(yè)務(wù)員收回核銷單后,核銷單管理人員記錄實(shí)際返單日期。此時(shí)核銷單狀態(tài)為“已返單”。4)核銷單管理人員將核銷單交財(cái)務(wù)人員,財(cái)務(wù)人員輸入核銷單返回財(cái)務(wù)日期。此時(shí)核銷單狀態(tài)為“回管理員”。5)當(dāng)核銷單相應(yīng)水單配齊后,由核銷單管理員將核銷單、報(bào)關(guān)單和銀行水單一起交外管核銷,并在系統(tǒng)中輸入核銷日期。此時(shí)核銷單狀態(tài)為“已核銷”。6)報(bào)運(yùn)人員在外運(yùn)配倉中輸入報(bào)關(guān)日期后,自動(dòng)反饋到核銷單信息中,同步計(jì)算預(yù)測核銷日期(預(yù)測核銷日期=報(bào)關(guān)日期+90天計(jì)算)。7)報(bào)關(guān)單退稅連返回核銷單管理員時(shí),由核銷單管理員輸入報(bào)關(guān)單退稅聯(lián)返回日期。作為后來退稅申報(bào)所需文檔與否齊全可查詢根據(jù)。8)核銷單作廢后,狀態(tài)為“注銷”,注銷核銷單不能再使用。9)若是代理業(yè)務(wù),由委托方打單、配船、報(bào)關(guān)狀況,由于報(bào)關(guān)前,電腦中不一定由發(fā)票信息,由于沒有發(fā)票號(hào),故不能自動(dòng)配核銷單。這種狀況解決如下:業(yè)務(wù)員到核銷單管理員處領(lǐng)用空白核銷單,由核銷單管理員記錄領(lǐng)用人、領(lǐng)用日期、核銷單去向(如代理委托方名稱)等。核銷單返回后,業(yè)務(wù)員補(bǔ)起發(fā)票信息后,手工將發(fā)票和核銷單匹配起來。手工配時(shí),在核銷單管理中,找到相應(yīng)核銷單號(hào),在該核銷單信息欄中輸入發(fā)票號(hào)即可,同步將核銷單號(hào)反饋到報(bào)關(guān)單證中。信用證管理流程描述:1)當(dāng)外銷合同審批通過后來,若是信用證方式成交,則由業(yè)務(wù)員負(fù)責(zé)向客戶催證。2)當(dāng)信用證到公司后,由儲(chǔ)運(yùn)部審證人員對信用證進(jìn)行審證,審證完畢后將信用證信息錄入電腦,其中軟條款信息由信用證管理員維護(hù)。注意:一種信用證也許由兩業(yè)務(wù)員使用。3)信用證修改后,信用證修改人員將登記信用證修改記錄。4)在出運(yùn)明細(xì)單輸入信用證編號(hào)時(shí),判斷該信用證與否已到(按登入電腦計(jì)算)或則出運(yùn)金額與否不不大于信用證金額,若沒到或超過信用證金額,則提示業(yè)務(wù)員,并且不容許出運(yùn)明細(xì)單存盤。5)若審單員或銀行發(fā)現(xiàn)實(shí)際單據(jù)和信用證有不符點(diǎn)時(shí),在不能修改信用證前提下,規(guī)定業(yè)務(wù)員做擔(dān)保申請,并提交審證員審批,并由審證員確頂該擔(dān)保書與否規(guī)定公司審批。結(jié)算單管理流程描述:自營或合營業(yè)務(wù)(外銷發(fā)票)執(zhí)行結(jié)束后(付工廠貨款,付運(yùn)保傭,付國內(nèi)費(fèi)用,收國外客戶款等資金往來已結(jié)束),業(yè)務(wù)員制作結(jié)算單。讀取業(yè)務(wù)在各分散處登記收付款信息及財(cái)務(wù)實(shí)際發(fā)生信息,計(jì)算出發(fā)票實(shí)際盈虧狀況。當(dāng)外銷發(fā)票已經(jīng)結(jié)算完畢,此時(shí)如果浮現(xiàn)收匯沒有完畢狀況,應(yīng)在逾期收匯查詢中消除此發(fā)票預(yù)警(可以理解成已經(jīng)收匯,但收匯有差額。這些數(shù)據(jù)可以提供應(yīng)業(yè)務(wù)員或公司有關(guān)領(lǐng)導(dǎo)作為分析客戶信用根據(jù))本章小結(jié)本章一方面簡介了項(xiàng)目背景,然后研究了系統(tǒng)總體需求和客戶端需實(shí)現(xiàn)業(yè)務(wù)功能,最后研究了項(xiàng)目中重要業(yè)務(wù)流程,其中涉及外銷合同管理、收購合同管理、進(jìn)倉管理,出倉管理,出口明細(xì)單管理、報(bào)關(guān)單管理、核銷單管理等。通過對外貿(mào)ERP業(yè)務(wù)系統(tǒng)業(yè)務(wù)需求分析,無論對開發(fā)流程還是技術(shù)架構(gòu)搭建都提供了必要保證。同步業(yè)務(wù)需求理解有助于在開發(fā)過程中對某個(gè)詳細(xì)業(yè)務(wù)有較好理解,減少開發(fā)過程中盲目性。.基于WCF外貿(mào)ERP業(yè)務(wù)系統(tǒng)設(shè)計(jì)在理解了有關(guān)技術(shù)知識(shí)和保險(xiǎn)系統(tǒng)需求后,本章正式開始設(shè)計(jì)系統(tǒng)。本系統(tǒng)在典型三層框架(體現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層)基本上,加了一層通訊層,充分運(yùn)用了.NET4.0中WCF魅力,更好實(shí)現(xiàn)了客戶端和服務(wù)器端數(shù)據(jù)通訊。系統(tǒng)總體方案體系構(gòu)造概述重要框架基于C/S體系構(gòu)造。將系統(tǒng)分為四層,由上及下分別為:體現(xiàn)層、通訊層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,如圖4.1所示。商品管理UI客戶管理UI商品管理UI客戶管理UI外銷合同管理UI……體現(xiàn)邏輯層WCFClientWCFService商品Service客戶Service外銷合同Service……商品Component客戶Component外銷合同Component…….DataAccessLayer商品datasource客戶datasource外銷合同datasource……..商品Database客戶Database外銷合同DatabaseDatabase………圖STYLEREF1\s4.SEQ圖\*ARABIC\s11四層架構(gòu)體現(xiàn)層:體現(xiàn)層涉及顧客界面以及一定量數(shù)據(jù)解決。顧客界面重要是響應(yīng)顧客祈求以及呈現(xiàn)服務(wù)器端返回?cái)?shù)據(jù)。而數(shù)據(jù)解決涉及對顧客數(shù)據(jù)進(jìn)行驗(yàn)證,組裝顧客祈求數(shù)據(jù)并傳給通訊層已經(jīng)通過通訊層獲取服務(wù)器端返回?cái)?shù)據(jù)。通訊層:重要負(fù)責(zé)客戶端和服務(wù)器端之間通訊。業(yè)務(wù)邏輯層:重要負(fù)責(zé)對數(shù)據(jù)按照一定商業(yè)邏輯進(jìn)行操作。也就是說把某些數(shù)據(jù)層操作進(jìn)行組合。在該系統(tǒng)中,業(yè)務(wù)層重要是Business(業(yè)務(wù)邏輯)層。Business層重要負(fù)責(zé)與業(yè)務(wù)有關(guān)邏輯解決,如數(shù)據(jù)合法性檢查及檢索或者更新表解決。它事實(shí)上是通過通訊層鏈接了體現(xiàn)層和數(shù)據(jù)層,它向通訊層提供了某些函數(shù)接口,函數(shù)內(nèi)部實(shí)現(xiàn)了需要詳細(xì)解決業(yè)務(wù),Business層提供了業(yè)務(wù)邏輯詳細(xì)實(shí)現(xiàn),即需要做哪些解決,這些解決又需要對哪些表進(jìn)行哪些操作,最后是通訊層提供了對各個(gè)表進(jìn)行查詢和更新操作。數(shù)據(jù)訪問層:是屏蔽上層業(yè)務(wù)邏輯與底層數(shù)據(jù)訪問,使業(yè)務(wù)與數(shù)據(jù)操作無關(guān)。整個(gè)系統(tǒng)工作流程是:客服端向服務(wù)器端發(fā)送祈求時(shí)通過ECI端,并把自己祈求分為2某些,分別是消息頭和消息主題。在消息頭中指定在服務(wù)器端要調(diào)用接口,ECI依照消息頭中內(nèi)容在服務(wù)器端創(chuàng)立相應(yīng)組件。而除此之外,ECI可以依照多臺(tái)服務(wù)器合計(jì)響應(yīng)時(shí)間來進(jìn)行負(fù)載均衡(LoadBalance)[17]。ECI在收到客戶端祈求后會(huì)作出某些響應(yīng)(Response)并以不同類型返回(例如以XML形式返回成果,出錯(cuò)時(shí)會(huì)FaultMessage形式返回。服務(wù)器端在接到ECI端發(fā)來消息時(shí)普通以Access形式來存取數(shù)據(jù)(Access重要用來構(gòu)建SQL語句),而當(dāng)構(gòu)建新數(shù)據(jù)時(shí),則通過xxxSource形式進(jìn)行插入、刪除、更新操作。DateAccess工程對數(shù)據(jù)進(jìn)行封裝或者以多線程訪問等方式和數(shù)據(jù)庫進(jìn)行交互。而對于某些復(fù)雜邏輯則采用xxxComp專門組件進(jìn)行相應(yīng)操作。而LDAP依照專門LDAPSource組件進(jìn)行顧客操作管理。服務(wù)器端最后將操作成果通過ECI端返回客戶端完畢一次完整操作。結(jié)合這些原則理論,咱們開始詳細(xì)簡介系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),由于業(yè)務(wù)邏輯層重要是對商業(yè)邏輯實(shí)現(xiàn),這與普通系統(tǒng)差別并不大,因此如下簡介并不包括對業(yè)務(wù)邏輯層詳細(xì)描述。系統(tǒng)構(gòu)架實(shí)現(xiàn)體現(xiàn)層設(shè)計(jì)體現(xiàn)層,用于顧客接口展示,以及用業(yè)務(wù)層類和對象來“驅(qū)動(dòng)”這些接口。在本系統(tǒng)中,重要使用了WinForm來實(shí)現(xiàn),但是同步支持Web客戶端訪問是本系統(tǒng)下一步實(shí)現(xiàn)目的,由此在本系統(tǒng)中專門抽出了客戶端通用組件層用來統(tǒng)一WinForm以及Web對通訊層訪問。本文將Form依照業(yè)務(wù)需求進(jìn)行分類如圖4.2所示,以BaseForm為基類,它涉及了本系統(tǒng)中最基本行為,涉及:ResetClasses,HasAccessRight,ApplyEclipseStyle,DefineValidationRules,LoadData,SubmitData,ShowError/Warningmessage,Localization等。圖STYLEREF1\s4.SEQ圖\*ARABIC\s12窗體類圖BaseForm設(shè)計(jì):ResetClassesECI中某些實(shí)例、RuleGroup、Session中某些公共信息都是存儲(chǔ)在一種被叫作ClientDataManager類中(這個(gè)類將屬于客戶端通用組件),然后被不同窗體共享。因此在不同窗體調(diào)用它之前要清理數(shù)據(jù)緩存,由于不同窗體數(shù)據(jù)是不同樣。因此ResetClasses作用就是在不同窗體調(diào)用ClientDataManager之前,重置窗體數(shù)據(jù)緩存。HasAccessRight檢查顧客與否有訪問某些控件權(quán)限。例如,菜單權(quán)限管理,由于不同顧客所見到菜單內(nèi)容也是不同樣。ApplyEclipseStyle設(shè)立窗體中所有控件字體顏色、背景顏色,所有界面控件本地化、工具欄按鈕設(shè)立。DefineValidationRules窗體上某些控件再提交給服務(wù)器端之前需要進(jìn)行進(jìn)行一定限度驗(yàn)證(例如必填項(xiàng),最大/最小值約束等等),以節(jié)約服務(wù)器端計(jì)算資源,避免無意義計(jì)算,因此DefineValidationRules類用來添加相應(yīng)規(guī)則到各自窗口中。BaseForm類如圖4.3所示:圖STYLEREF1\s4.SEQ圖\*ARABIC\s13BaseForm類圖EclipseForm繼承于BaseForm重要是用來實(shí)現(xiàn)異步調(diào)用服務(wù)器功能。重要涉及:Closetheform,Releaselock,Multi-threading。Closetheform釋放窗體上鎖,關(guān)閉窗體、展示上一層窗體。Releaselock釋放和該窗體有關(guān)業(yè)務(wù)鎖。Multi-threadingutility定義某些基本屬性和辦法,減少修改代碼以使用多線程代價(jià),提高開發(fā)效率。再本系統(tǒng)中使用BackgroundWorker來實(shí)現(xiàn)顧客層多線程。使用BackgroundWorker好處在于BackgroundWorker使用基于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年天津市安全員知識(shí)題庫
- 重慶工程職業(yè)技術(shù)學(xué)院《朗讀與講故事指導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西南民族大學(xué)《古生物學(xué)含實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京農(nóng)業(yè)大學(xué)《教育評價(jià)與測量》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱劍橋?qū)W院《廣告創(chuàng)意與策劃》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西體育高等專科學(xué)?!峨姶艌隼碚撆c光波導(dǎo)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆河南省周口市西華縣三校聯(lián)考高三上學(xué)期一模歷史試卷
- 贛南師范大學(xué)《幼兒園體育游戲》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院《分子生物學(xué)(英文)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州城建職業(yè)學(xué)院《銷售管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2022年山東司法警官職業(yè)學(xué)院單招語文試題及答案解析
- 2023版北京協(xié)和醫(yī)院重癥醫(yī)學(xué)科診療常規(guī)
- 仁愛版九年級(jí)英語下冊課文翻譯
- 鋼網(wǎng)驗(yàn)收報(bào)告
- 防水補(bǔ)漏工程合同(合同版本)
- 鐵路局中間站管理手冊
- 監(jiān)理日志表(標(biāo)準(zhǔn)模版)
- H3C-CAS虛擬化平臺(tái)詳細(xì)介紹
- 小學(xué)生韻母in、ing常見漢字與區(qū)分練習(xí)
- 藥房品種類別及數(shù)量清單
- 大學(xué)生安全教育課件(ppt共41張)
評論
0/150
提交評論