999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

零配置分布式傳票翻打測試系統研究

2018-03-04 07:03:20施茂祺魏旻
電腦知識與技術 2018年36期

施茂祺 魏旻

摘要:傳票翻打是財經工作者必備的一項基本功,也是部分財經類專業的必備技能,并被列入全國高職會計技能比賽的正式項目。為更好組織日常教學及訓練,該研究在分析專業教師和學生的實際需求的基礎上,采用客戶機/服務器模型,研發了傳票翻打測試軟件。經實證應用,效果良好,設計思路和采用的技術手段可行,具有一定的普遍性、適用性和較高的應用推廣價值。

關鍵詞:零配置分布式;傳票翻打;Client/Server

中圖分類號:TP3? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)36-0058-02

1 問題的提出

傳票翻打,或稱傳票算,是指在經濟核算過程中,對各類單據、發票或憑證進行匯總計算的一種方法。一般使用加減計算,它是加減運算在實際工作中的具體應用,可以為會計核算、財會分析、統計報表提供及時、準確、可靠的基礎數字,是財經工作者必備的一項基本功,并被列入全國高職會計技能比賽的正式項目。

傳票本分為兩種:

第一種是訂本式傳票,是在傳票的左上角裝訂成冊,一般在比賽中使用。

第二種活頁式,全國會計技能大賽采用。

筆者所在學院為財經類院校,傳票翻打是學院許多專業學生的必備技能,因此,亟需一款供日常教學及訓練用傳票翻打測試軟件。經與相關專業教師共同探討和分析,確定自己研發的傳票翻打測試系統必須具備的以下功能和特點:

1) 系統分為教師端和學生端兩部分;

2) 學生端供學生練習與測試,接受學生輸入的傳票上的數據并實時匯總,考慮到學生練習時要求手、腦、眼并用,故學生端應能提供學生一些提示信息,譬如翻打進度、速度、正確率等等;

3) 教師端是控制端,教師可在教師端批量導入、導出學生名單、試題,也可現場編撰題目并布置測試題,統一設置測試時間,實時監控每一名學生的測試情況,收集并導出學生考試成績;

4) 性能要求,參考本院實際班級人數以及合班上課的需求,要求系統至少能夠同時支持150人左右同時進行測試。

2 系統實現的關鍵重點、難點說明

根據上面系統需求分析, 筆者確定該系統的實現軟件為客戶機/服務器模型,又稱為Client/Server體系結構。服務器Server通常采用高性能的工作站或PC小型機,并采用Client/Server架構數據庫系統,如Sybase? Oracle或SQL? Server,負責供多個用戶共享其信息和功能??蛻舳薈lient部分通常負責執行前臺功能,如與用戶交互,數據處理等。這種架構由多臺計算機構成,它們有機地組合在一起,協同完成整個應用,并達到使系統中的軟件、硬件資源得到最大限度的利用。

本系統服務器端即為教師端,而客戶端即為學生端。但是一般Client/Server結構系統在應用前都需要進行系統部署、設置和調試工作,很多情況下,Client/Server架構數據庫也需要進行一系列參數設置和環境設置,譬如連接時數據庫就至少需要配置連接字符串。由于網絡環境不同,連接字符串并非固定不變的,因此往往專業人員上門進行部署和測試。

考慮到本系統用戶為會計類專業教師,讓他們去安裝和部署Client/Server架構數據庫存在諸多的困難,因此,本系統在總體架構為Client/Server模型的基礎上,后臺數據庫卻選擇了桌面模型數據庫Access。之所以選擇Access,是因為微軟公司已經將其數據庫引擎Jet內置到Windows操作系統之中,完全免安裝。但是桌面型數據庫應用于網絡環境,相比Client/Server架構的數據庫,如SQL? Server,由于整個數據庫都需要傳輸到客戶端進行處理,造成網絡帶寬的巨大浪費,使得性能低下,支持客戶端的數量有限。為此,筆者考慮研究實現一個分布式框架,該分布式框架可將桌面架構數據庫虛擬為Client/Server架構數據庫,并可實現零配置,其具備以下特點:

1) 該框架適用于小型分布式程序。

2) 原生框架,不依賴當前流行的Java、.Net虛擬機運行時環境,這樣才能保證無需任何配置,拷貝到電腦上即可使用。

3) 將桌面型或嵌入式數據庫轉換為Client/Server架構數據庫,服務器端無需安裝數據庫服務器,如SQL? Server,客戶端無需單獨安裝數據庫驅動,并且做到網絡線路上只有請求流和結果流,能更有效地利用網絡帶寬,從而達到高性能。

4) 程序員使用本框架開發軟件簡單易用,如同開發桌面型數據庫一樣簡單。

3 實現思路

3.1 整體結構

如圖1所示,Client通過自定義協議向Server發送請求,Server監測Client連接請求,為每一個Client連接請求生成一個服務線程,考慮到每一個連接都需要一定的系統開銷,所以Server自己維護連接歸入池中。因此,線程池負責分配管理和釋放Client連接,允許系統重復使用一個現有連接,而不是重新建立一個。

該線程是衍生的會話線程,其內封裝了客戶端IP、端口號、Client發送的數據包等大量信息。同樣,為提高性能,系統在啟動時一次性生成一定數量的數據訪問對象(ADO),并放入對象池中。當程序需要一個新的對象時,如果對象池中有空閑對象,則立即返回,否則才創建新的該類對象。當一個對象不再被使用時,應該將其放回對象池,以便程序后來使用。并提供了一組方法用于與客戶端通信,其原型形如:

class? CClientThread:CThread

private:

bool? FTS;

void*FChunkbuf;

bool? Fiskeepalive;

char*Fpeekbuffev;

string GlobalPeerIpAddress;

int? GlobalPeerPort;

public:

bool? Connect();

bool? Listen();

int? Sendbuf(const? void*buf,int? count);

int? Write(char? c);

int? Write(const? string? s);

int? Write(void *buf,int? len);

int? Read(void *buf,int? len);

int? ReadInt()

bool? SaveTo(CStream* stream,unsigned? timeout);

bool? SaveTo(File? handle, unsigned? timeout);

3.2 網絡協議的設計

Client/Server是一種請求-響應模型,在一次完整的通信過程中,Client與Server之間將完成以下步驟:

1) 建立TCP連接,通過socket建立Client與Server之間的TCP連接。

2) Client向Server端發送命令,與http協議類似,命令存放在協議報文頭信息中。

3) Client發送協議報文信息。Client在發送請求命令之后,還要以協議報文的形式向服務器發送請求的具體參數。

4) Server應答,Server會向Client返回響應,主要是響應狀態碼。

5) Server返回協議報文,發送Client所請求的實際數據。

本系統設計了如下,一些整數作為協議頭信息:

1) CTSLOGIN=1;成功登陸標記;

2) CRESPOK=1;返回狀態碼,‘1表示響應成功;

3) CRESPFAULT=2;返回狀態碼,‘2表示響應失敗;

4) CRESULTOK=0;返回結果正確;

5) CRESULTNO=0;返回結果錯誤;

6) DISONN=0;斷開連接;

7) EXESQL=1;執行SQL結句;

8) OPENSQL=2;打開SQL結句;

9) LINKTEST=2;連接測試;

10) ACTIVEPACK=4;激活包。

3.3 系統的運作流程

如圖2所示,Server和Client內部存在一個工作循環,Server是一個監聽循環,在循環內Server通過讀取客戶端請求協議頭信息得知請求意圖,這將觸發Server做出不同的響應動作,其邏輯通過偽碼說明如下:

switch(IHead) {? //對協議頭信息進行判斷

case? EXESQL:? // //執行一條SQL語句 更新或者執行

Llen = ClientThread→Socket→ReadInteger;

LSQl = ClientThread→Socket→ReadStr(Llen);

ADOQuery→SQL.Clear;

ADOQuery→SQL→Add(LSQl);

ADOQuery→Execute;

break;

case? OPENSQL:? //執行一個查詢語句

Llen = ClientThread→Socket→ReadInteger;

LSQl = ClientThread→Socket→ReadStr(Llen);

ADOQuery→SQL.Clear;

ADOQuery→SQL→Add(LSQl);

ADOQuery→Open();

break;

}

3.4 結果集的返回

Client/Server架構的數據庫,可根據Client查詢請求返回相應的結果集,避免了在網絡上傳播無效數據,有效地利用了網絡帶寬,提高了系統性能。本系統采用了流處理機制(Stream)對數據集對象(ADO)序列化和反序列化,利用AdoDataSet數據集SaveToFile方法將數據集保存到文件中,再通過內存流(MemoryStream)緩存在內存中,使用 ZIP壓縮算法在壓縮內存流中的數據后返回給Client,Client收到響應數據后進行反序列化即可還原出該數據集對象(ADO)。由于網絡上傳輸的數據是經過壓縮的,進一步提高了系統性能。

4 結束語

本系統開發完成后,一直應用于江西財經職業學院會計及相關專業教學之中,并選作了近幾年江西省大學生會計技能競賽軟件,效果良好,證明其設計思路和采用的技術手段是可行的,具有一定的普遍性和適用性以及較高的推廣價值。

參考文獻:

[1] 劉向東.基于Client/Server結構的數據庫系統設計[J].電腦知識與技術,2018,14(11):8-10.

[2] 孟繁榮.中職傳票翻打技能比賽有效訓練的實踐及研究[J].科教導刊:中旬刊,2016(04):42-43.

[3] 狄慶貴.基于Client/Server技術的質量信息管理系統[J].中國管理信息化,2017,20(10):50-51.

[通聯編輯:張薇]

主站蜘蛛池模板: 欧美中日韩在线| 激情视频综合网| 九色综合视频网| 99久久精品免费视频| 亚洲精品视频在线观看视频| 国产99视频精品免费视频7| 无码不卡的中文字幕视频| 囯产av无码片毛片一级| 亚洲第一黄色网| 亚洲成a∧人片在线观看无码| 中文字幕欧美成人免费| 一本久道久综合久久鬼色| 国产精品亚洲一区二区三区z| a在线亚洲男人的天堂试看| 国产网站黄| 欧美视频在线观看第一页| 国产人人乐人人爱| 中字无码av在线电影| 在线色国产| 亚洲欧美成人影院| 在线日韩日本国产亚洲| 自拍欧美亚洲| 色视频国产| 99伊人精品| 日本精品αv中文字幕| 国产尤物视频在线| 亚洲精品大秀视频| 亚洲日韩欧美在线观看| 人妻免费无码不卡视频| 亚洲天堂网2014| 91麻豆精品国产高清在线| 午夜影院a级片| 天天做天天爱夜夜爽毛片毛片| 伊大人香蕉久久网欧美| 国产精品九九视频| 丰满人妻久久中文字幕| 热这里只有精品国产热门精品| 99久久精彩视频| 狠狠做深爱婷婷综合一区| 最新国产成人剧情在线播放| 99这里只有精品6| 男人天堂亚洲天堂| 亚洲一级毛片免费看| 婷婷在线网站| 天天躁狠狠躁| 国产精品99一区不卡| 精品久久777| 国产精品思思热在线| 国产成人a在线观看视频| 日韩欧美中文字幕在线韩免费| 日韩无码精品人妻| 国产精品亚洲五月天高清| 91精品网站| 99热亚洲精品6码| 久久国产V一级毛多内射| 无码高清专区| 亚洲精品国产成人7777| 亚洲色图另类| 国产高清精品在线91| 日韩精品欧美国产在线| 国产色爱av资源综合区| 日本亚洲最大的色成网站www| 91蜜芽尤物福利在线观看| 国产91麻豆免费观看| 久久精品免费看一| 亚洲三级a| 国产成人91精品| 国产91av在线| 91人妻日韩人妻无码专区精品| 国产女人18毛片水真多1| 日韩美女福利视频| 国产精选自拍| 欧美色亚洲| 国产成人高清精品免费5388| 亚洲日韩高清在线亚洲专区| 日韩免费成人| 国产亚洲精品自在久久不卡| 精品91在线| 青青久视频| 亚洲精品视频免费观看| 国产成人h在线观看网站站| 国产成人精品2021欧美日韩|