freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于wcf的外貿(mào)業(yè)務(wù)管理及系統(tǒng)管理知識設(shè)計-資料下載頁

2025-06-18 16:42本頁面
  

【正文】 自營或合營業(yè)務(wù)(外銷發(fā)票)執(zhí)行結(jié)束后(付工廠貨款,付運保傭,付國內(nèi)費用,收國外客戶款等資金往來已結(jié)束),業(yè)務(wù)員制作結(jié)算單。讀取業(yè)務(wù)在各分散處登記的收付款信息及財務(wù)實際發(fā)生的信息,計算出發(fā)票的實際盈虧情況。當外銷發(fā)票已經(jīng)結(jié)算完成,此時如果出現(xiàn)收匯沒有完成的情況,應(yīng)在逾期收匯查詢中消除此發(fā)票的預警(可以理解成已經(jīng)收匯,但收匯有差額。這些數(shù)據(jù)可以提供給業(yè)務(wù)員或公司相關(guān)領(lǐng)導作為分析客戶的信用的依據(jù)) 本章小結(jié)本章首先介紹了項目背景,然后研究了系統(tǒng)的總體需求和客戶端需實現(xiàn)的業(yè)務(wù)功能,最后研究了項目中主要的業(yè)務(wù)流程,其中包括外銷合同管理、收購合同管理、進倉管理,出倉管理,出口明細單管理、報關(guān)單管理、核銷單管理等。通過對外貿(mào)ERP業(yè)務(wù)系統(tǒng)的業(yè)務(wù)需求分析,無論對開發(fā)流程還是技術(shù)架構(gòu)的搭建都提供了必要的保證。同時業(yè)務(wù)需求的了解有助于在開發(fā)過程中對某個具體的業(yè)務(wù)有較好的了解,減少開發(fā)過程中的盲目性。.第4章 基于WCF的外貿(mào)ERP業(yè)務(wù)系統(tǒng)設(shè)計在了解了相關(guān)的技術(shù)知識和保險系統(tǒng)需求后,本章正式開始設(shè)計系統(tǒng)。本系統(tǒng)在經(jīng)典的三層框架(表現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層)的基礎(chǔ)上,加了一層通訊層, ,更好的實現(xiàn)了客戶端和服務(wù)器端的數(shù)據(jù)通訊。 系統(tǒng)總體方案 體系結(jié)構(gòu)概述主要框架基于C/S體系結(jié)構(gòu)。將系統(tǒng)分為四層,由上及下分別為:表現(xiàn)層、通訊層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。商品管理UI客戶管理UI外銷合同管理UI……表現(xiàn)邏輯層WCF ClientWCF Service商品 Service客戶 Service外銷合同 Service……商品 Component客戶 Component外銷合同 Component…….Data Access Layer商品 data source客戶 data source外銷合同 data source……..商品 Database客戶 Database外銷合同 Database Database………圖 四層架構(gòu)表現(xiàn)層:表現(xiàn)層包括用戶界面以及一定量的數(shù)據(jù)處理。用戶界面主要是響應(yīng)用戶請求以及展現(xiàn)服務(wù)器端返回的數(shù)據(jù)。而數(shù)據(jù)處理包括對用戶數(shù)據(jù)進行驗證,組裝用戶請求數(shù)據(jù)并傳給通訊層已經(jīng)通過通訊層獲取服務(wù)器端返回的數(shù)據(jù)。通訊層:主要負責客戶端和服務(wù)器端之間的通訊。業(yè)務(wù)邏輯層:主要負責對數(shù)據(jù)按照一定的商業(yè)邏輯進行操作。也就是說把一些數(shù)據(jù)層的操作進行組合。在該系統(tǒng)中,業(yè)務(wù)層主要是Business(業(yè)務(wù)邏輯)層。Business層主要負責與業(yè)務(wù)相關(guān)的邏輯處理,如數(shù)據(jù)合法性的檢驗及檢索或者更新表的處理。它實際上是通過通訊層鏈接了表現(xiàn)層和數(shù)據(jù)層,它向通訊層提供了一些函數(shù)接口,函數(shù)內(nèi)部實現(xiàn)了需要具體處理的業(yè)務(wù),Business層提供了業(yè)務(wù)邏輯的具體實現(xiàn),即需要做哪些處理,這些處理又需要對哪些表進行哪些操作,最終是通訊層提供了對各個表進行查詢和更新的操作。數(shù)據(jù)訪問層:是屏蔽上層業(yè)務(wù)邏輯與底層數(shù)據(jù)訪問,使業(yè)務(wù)與數(shù)據(jù)操作無關(guān)。整個系統(tǒng)工作的流程是:客服端向服務(wù)器端發(fā)送請求時通過ECI端,并把自己的請求分為2部分,分別是消息頭和消息主題。在消息頭中指定在服務(wù)器端要調(diào)用的接口,ECI根據(jù)消息頭中的內(nèi)容在服務(wù)器端創(chuàng)建相應(yīng)的組件。而除此之外,ECI可以根據(jù)多臺服務(wù)器累計的響應(yīng)時間來進行負載均衡(LoadBalance)[17]。ECI在收到客戶端的請求后會作出一些響應(yīng)(Response)并以不同的類型返回(比如以XML的形式返回結(jié)果,出錯的時會Fault Message的形式返回。服務(wù)器端在接到ECI端發(fā)來的消息時一般以Access的形式來存取數(shù)據(jù)(Access主要用來構(gòu)建SQL語句),而當構(gòu)建新的數(shù)據(jù)時,則通過xxxSource的形式進行插入、刪除、更新操作。DateAccess工程對數(shù)據(jù)進行封裝或者以多線程的訪問等方式和數(shù)據(jù)庫進行交互。而對于一些復雜的邏輯則采用xxxComp專門的組件進行相應(yīng)的操作。而LDAP根據(jù)專門的LDAP Source組件進行用戶操作管理。服務(wù)器端最終將操作的結(jié)果通過ECI端返回客戶端完成一次完整的操作。結(jié)合這些原則理論,我們開始詳細介紹系統(tǒng)的設(shè)計與實現(xiàn),由于業(yè)務(wù)邏輯層主要是對商業(yè)邏輯的實現(xiàn),這與一般系統(tǒng)差別并不大,所以以下介紹并不包含對業(yè)務(wù)邏輯層的詳細描述。 系統(tǒng)構(gòu)架實現(xiàn) 表現(xiàn)層設(shè)計表現(xiàn)層,用于用戶接口的展示,以及用業(yè)務(wù)層的類和對象來“驅(qū)動”這些接口。在本系統(tǒng)中,主要使用了WinForm來實現(xiàn),但是同時支持Web客戶端的訪問是本系統(tǒng)下一步的實現(xiàn)目標,由此在本系統(tǒng)中專門抽出了客戶端通用組件層用來統(tǒng)一WinForm以及Web對通訊層的訪問。,以BaseForm為基類,它包括了本系統(tǒng)中最基本行為,包括:ResetClasses, HasAccessRight, ApplyEclipseStyle, DefineValidationRules, Load Data,Submit Data, Show Error/Warning message, Localization等。圖 窗體類圖BaseForm的設(shè)計:1) ResetClassesECI中的一些實例、RuleGroup、Session中的一些公共信息都是存儲在一個被叫作ClientDataManager的類中(這個類將屬于客戶端通用組件),然后被不同的窗體共享。所以在不同的窗體調(diào)用它之前要清理數(shù)據(jù)緩存,因為不同的窗體數(shù)據(jù)是不一樣的。所以ResetClasses的作用就是在不同窗體調(diào)用ClientDataManager之前,重置窗體的數(shù)據(jù)緩存。2) HasAccessRight檢驗用戶是否有訪問一些控件的權(quán)限。比如,菜單的權(quán)限管理,因為不同的用戶所見到的菜單內(nèi)容也是不一樣。3) ApplyEclipseStyle設(shè)置窗體中所有控件的字體顏色、背景顏色,所有界面控件的本地化、工具欄按鈕的設(shè)置。4) DefineValidationRules窗體上一些控件再提交給服務(wù)器端之前需要進行進行一定程度的驗證(例如必填項,最大/最小值約束等等),以節(jié)約服務(wù)器端的計算資源,避免無意義的計算,所以DefineValidationRules類用來添加相應(yīng)的規(guī)則到各自窗口中。5) :圖 BaseForm的類圖EclipseForm繼承于BaseForm主要是用來實現(xiàn)異步調(diào)用服務(wù)器的功能。主要包括:Close the form,Release lock,Multithreading。1) Close the form釋放窗體上的鎖,關(guān)閉窗體、展示上一層窗體。2) Release lock釋放和該窗體相關(guān)業(yè)務(wù)的鎖。3) Multithreading utility定義一些基本的屬性和方法,降低修改代碼以使用多線程的代價,提高開發(fā)的效率。再本系統(tǒng)中使用BackgroundWorker來實現(xiàn)用戶層的多線程。使用BackgroundWorker的好處在于BackgroundWorker使用基于事件觸發(fā)的異步編程,對于調(diào)用層次較深的方法可以通過事件綁定的方式再各個層次上添加相應(yīng)的響應(yīng)函數(shù),降低開發(fā)的代價。4) :圖 EclipseForm的類圖SearchForm繼承于EclipseForm,它的主要功能是實現(xiàn)查找的作用,主要包括:ListView, SearchButton, TimeToMoreRecord, SelectButton, Clear, Disable OK button。1) ListView窗體中查找的結(jié)果將以ListView的形式展示出來。2) TimeToGetMoreRecords檢查是否有必要來獲得更多的記錄來填充列表(數(shù)據(jù)分頁功能)。3) Clear清除ListView和窗體緩存中的數(shù)據(jù)。4) Disable OK button因為SearchForm只是查找數(shù)據(jù),所以不允許改變數(shù)據(jù)。5) :圖 SearchForm的類圖WizardForm也是繼承于EclipseForm,它實現(xiàn)向?qū)С绦虻淖饔谩Kǎ篧izard Step Container,Previous Button,Next Button,F(xiàn)inish Button,Wizard progress bar。1) Wizard Step Container包括所有的步驟。2) Previous Button獲得下一步驟。3) Finish Button完成事務(wù)。4) Wizard progress bar顯示進度狀態(tài)。5) :圖 WizardForm的類圖 通訊層設(shè)計和其他的三層架構(gòu)不同,本文多了一層通訊層,本系統(tǒng)稱之為ECI層,它是客戶端和服務(wù)器端通信的橋梁。ECI在收到客戶端的請求后會做出一些響應(yīng)(Response)并以不同的類型返回(比如以XML的形式返回結(jié)果,出錯的時會Fault Message的形式返回。在通訊層主要負責2部分的內(nèi)容,一部分來至客戶端,另一部分來之服務(wù)器端,但是客戶端和ECI(Eclipse Common Interface)之間是通過XML的形式進行通信,而ECI和服務(wù)器端是采用直接方法調(diào)用實現(xiàn),[18]。圖 ECI通訊圖如圖所見,ECI也分成Client ECI和Server ECI兩部分,但是實際上ECI還包括一個Common ECI用于封裝Client ECI和Server ECI功能重合的部分(比如負載均衡)。1) Client ECIClient ECI主要是服務(wù)器端調(diào)用在客戶端的實現(xiàn),它在客戶端創(chuàng)建WCF渠道,用來和服務(wù)器端進行交互。具體代碼如下://獲得客戶端傳來XML的內(nèi)容int iStart = ((39。39。) + 1) + 1。int iEnd = ((/ +() + ) + 1) iStart。string sHeaderXml = (Start 1, (, iEnd +().Length + 3))。//建立好和服務(wù)器端聯(lián)系的XMLTrace(ExecuteTransaction Header, sHeaderXml)。2) Common ECI它包括了客戶端和服務(wù)器端ECI組件的通用功能。比如一些配置文件的設(shè)立,一些許可驗證的建立。3) Server ECI它主要實現(xiàn)了WCF在承載和共享屬性管理時對不同服務(wù)間的負載均衡以及對服務(wù)器端組件的路由功能。服務(wù)器端ECI會通過記錄所有服務(wù)器端到目前為止的響應(yīng)時間來選擇最小負載服務(wù)器執(zhí)行當前服務(wù)請求。而對于服務(wù)器端組件的路由,ECI會存儲一張請求類型與服務(wù)器端組件的對應(yīng)表,當ECI接到請求時會解析服務(wù)請求的頭部獲得當前服務(wù)的類型,然后查找對應(yīng)的服務(wù)器組建,再創(chuàng)建相應(yīng)的組件以執(zhí)行服務(wù)請求。具體代碼如下:public string GetServerLoadBalancingStats(ref string status){ …… //獲得各個服務(wù)器負載均衡的狀態(tài) for (int index = 0。 index 。 index++) { temp = elbStatistics[index]。 ({0},{1},{2},{3},{4},{5},{6},{7}。, , , , , , , , ))。 }} 業(yè)務(wù)邏輯層設(shè)計服務(wù)器端的業(yè)務(wù)邏輯主要是獲得通訊層傳來的數(shù)據(jù),在該層處理業(yè)務(wù)邏輯,比如進行一些查找、更新、增加記錄等操作,并從數(shù)據(jù)層中獲得符合條件的數(shù)據(jù),再傳回給通訊層。具體見偽代碼段(由于篇幅的原因這里只舉一個例子)://delete wxht action params recordsforeach (cDsWxhtActionParams item in ){//篩選符合刪除條件的記錄 if (( == dDeleteSchedDate) amp。amp。 ( == sDeleteActionType) amp。amp。 ( == lDeleteWxhtId) amp。amp。 ( == dDeleteActionDate) ) { //刪除符合外銷合同條件的記錄 = 。 (cCkywConnection)。 }} 數(shù)據(jù)層設(shè)計數(shù)據(jù)層是專門用于與數(shù)據(jù)庫進行通信的層次,本系統(tǒng)為了能使開發(fā)者更好地按照面向?qū)ο蟮睦砟钸M行編程,利用了類似ORM的方式將數(shù)據(jù)庫中的表及表間關(guān)系映射到類及類間的關(guān)系(一般數(shù)據(jù)表中的單條記錄會被映射到一個單獨對象而整個表則會被映射為多個對象的集合)。
這樣開發(fā)人員就可以像操作對象一樣來操作數(shù)據(jù)表,而不需要關(guān)心是哪個數(shù)據(jù)庫。每個數(shù)據(jù)類中除了包含與數(shù)據(jù)庫中數(shù)據(jù)表對應(yīng)的列之外,還具有相應(yīng)的CRUD方法(如果是數(shù)據(jù)集合,則會包含諸如PopulateCollection之類用于操作數(shù)據(jù)集合的方法),以便調(diào)用者可以通過這些方法來操作數(shù)據(jù)對象,將對應(yīng)的修改寫回到數(shù)據(jù)庫中。為了更好地而為了進一步降低這些數(shù)據(jù)對象與具體數(shù)據(jù)庫的耦合,本系統(tǒng)將具體的SQL語句拼接工作封裝在XXXAccess組件中,而將數(shù)據(jù)庫的連接管理,操作及SQL腳本的執(zhí)行封裝到DataAccessor這個組件中,這樣數(shù)據(jù)對象就可以通過使用DataAccessor來連接和操作數(shù)據(jù)庫。圖 數(shù)據(jù)層處理邏輯在這層中最重要的一個類就是CDSLock類,它主要負責實現(xiàn)樂觀所得機制,:圖 CDSLock的類圖 WCF技術(shù)在構(gòu)架實現(xiàn)中的應(yīng)用 WCF實現(xiàn)雙工模式在外貿(mào)ERP業(yè)務(wù)系統(tǒng)中需要提供合同的審批功能,比如一個業(yè)務(wù)員在系統(tǒng)中錄入了一個外銷合同,在點擊了審批按鈕后,業(yè)務(wù)經(jīng)理馬上會收到一條請求審批的消息。傳統(tǒng)的實現(xiàn)方式是系統(tǒng)不斷地輪詢數(shù)據(jù)
點擊復制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1