張?jiān)慈?/p>
(廣東省機(jī)械技師學(xué)院,廣州510450)
基于Citrix技術(shù)的連鎖藥店結(jié)賬系統(tǒng)遠(yuǎn)程共享的設(shè)計(jì)和實(shí)現(xiàn)
張?jiān)慈?/p>
(廣東省機(jī)械技師學(xué)院,廣州510450)
昂貴的連鎖藥店結(jié)賬軟件使經(jīng)營(yíng)者的成本急劇上升,Citrix技術(shù)能讓一套軟件同時(shí)分享給多個(gè)異地門(mén)店使用,高效的連接方式讓結(jié)賬方順利完成業(yè)務(wù)操作。描述在當(dāng)前銷(xiāo)售行業(yè)以此技術(shù)實(shí)現(xiàn)銷(xiāo)售管理系統(tǒng)的遠(yuǎn)程管理與遠(yuǎn)程服務(wù)。這個(gè)軟件系統(tǒng),分為前臺(tái)操作和后臺(tái)管理,以數(shù)據(jù)庫(kù)為數(shù)據(jù)存儲(chǔ)媒介。數(shù)據(jù)庫(kù)數(shù)據(jù)分別是本軟件的用戶信息和遠(yuǎn)程服務(wù)器信息。
Citrix;ICA協(xié)議;遠(yuǎn)程控制;大型軟件共享
連鎖藥店往往需要通過(guò)軟件入賬,減庫(kù)存等操作來(lái)實(shí)現(xiàn)數(shù)據(jù)業(yè)務(wù)。這些連鎖店鋪的數(shù)量往往關(guān)系到該軟件的終端授權(quán)費(fèi)用,門(mén)店越多,授權(quán)費(fèi)越高。為了解決高昂的授權(quán)費(fèi),基于Citirx ICA協(xié)議平臺(tái)下,開(kāi)發(fā)藥店終端連接系統(tǒng),減少授權(quán)數(shù)量,減低費(fèi)用。
Citrix技術(shù)是基于ICA協(xié)議,ICA協(xié)議全稱為Independent Computing Architecture Protocol,支持TCP/ IP、IPX/SPX和NetBEUI等多種協(xié)議的,并且可以適應(yīng)網(wǎng)絡(luò)速度極差的環(huán)境[1]。Citrix擁有數(shù)據(jù)獨(dú)立和服務(wù)器應(yīng)用管理體系結(jié)構(gòu)的產(chǎn)品Citrix MetaFrame系列軟件,能利用ICA協(xié)議實(shí)現(xiàn)應(yīng)用程序集中發(fā)布和管理等要求[2]。這項(xiàng)技術(shù)是由Citrix公司研發(fā),目前應(yīng)用于大多數(shù)全球500強(qiáng)企業(yè)[3]。在藥店行業(yè)ERP系統(tǒng)中,結(jié)合Citrix ICA技術(shù),研發(fā)出軟件來(lái)實(shí)現(xiàn)遠(yuǎn)程ERP系統(tǒng)的調(diào)用。藥店的ERP系統(tǒng)運(yùn)營(yíng)時(shí),為了安全和方便因素,會(huì)在管理信息上采取一些加密措施,而使用了Citrix ICA技術(shù)后,可在此基礎(chǔ)上更進(jìn)一步加密。Citrix ICA本身是支持加密功能的,而且可以選擇加密的程度,這樣數(shù)據(jù)在網(wǎng)絡(luò)中以密文傳輸。網(wǎng)絡(luò)環(huán)境較好或?qū)ΡC苄砸蠛芨叩膯挝豢梢赃x擇高強(qiáng)度加密。通過(guò)使用該技術(shù),可使藥店行業(yè)對(duì)軟件購(gòu)買(mǎi)成本大大減少。因?yàn)樗腔诠蚕淼倪h(yuǎn)程終端訪問(wèn),即一臺(tái)服務(wù)器安裝銷(xiāo)售系統(tǒng);在任何一個(gè)地方任何一臺(tái)能聯(lián)網(wǎng)的客戶機(jī)可聯(lián)接到銷(xiāo)售系統(tǒng)并實(shí)現(xiàn)遠(yuǎn)程操作。財(cái)務(wù)行業(yè)對(duì)信息數(shù)據(jù)的保密性和完整性要求非常高,而ICA協(xié)議在這方面正是強(qiáng)項(xiàng)。
現(xiàn)有的該類(lèi)產(chǎn)品大部分是使用Citrix ICA Client和Borland Delphi(C++Builder)開(kāi)發(fā)的,由Citrix公司提供公共庫(kù),可調(diào)用公共庫(kù)進(jìn)行網(wǎng)絡(luò)連接,數(shù)據(jù)操作,界面顯示。與此同時(shí),微軟也有自己的RDP協(xié)議,可實(shí)現(xiàn)ICA協(xié)議的部分功能,但在使用效果上分析,RDP協(xié)議的效率遠(yuǎn)遠(yuǎn)低于ICA協(xié)議。在Win2003下,RDP協(xié)議只支持TCP/IP協(xié)議傳輸數(shù)據(jù)。RDP協(xié)議不能在其他非微軟系列的平臺(tái)下使用。所以,使用RDP協(xié)議來(lái)開(kāi)發(fā)的產(chǎn)品實(shí)際并不多。當(dāng)軟件離線時(shí),在恢復(fù)網(wǎng)絡(luò)后能自動(dòng)還原登錄狀態(tài)。
該藥店終端軟件系統(tǒng)的編程平臺(tái)使用Delphi 2010,數(shù)據(jù)庫(kù)使用Access;服務(wù)器操作系統(tǒng)和客戶機(jī)操作系統(tǒng)都是Win2003,采用的庫(kù)為Citrix ICA Client Lib[4]。
(1)軟件模式:這個(gè)軟件可以用C/S模式實(shí)現(xiàn),也可以用Web(B/S)模式實(shí)現(xiàn)。為了程序操作的高效率,優(yōu)先使用C/S模式開(kāi)發(fā)。
(2)客戶端連接:網(wǎng)絡(luò)連接可直接使用Citrix ICALib提供的事件方法,無(wú)須人為手寫(xiě)。對(duì)ICA Client屬性值的改變,可使軟件確定訪問(wèn)的服務(wù)器位置。
(3)數(shù)據(jù)存儲(chǔ):利用Access數(shù)據(jù)庫(kù)存儲(chǔ)軟件用戶登錄識(shí)別信息和服務(wù)器信息,對(duì)用戶名和密碼進(jìn)行加密處理,防止Access數(shù)據(jù)庫(kù)被惡意破解。遠(yuǎn)程服務(wù)器的登錄信息一旦被惡意獲取,將會(huì)使高權(quán)限的用戶暴露。這種情況對(duì)服務(wù)器產(chǎn)生的威脅相當(dāng)大。
(4)服務(wù)器配置:
①安裝Citrix MetaFrame平臺(tái)
②激活終端服務(wù)授權(quán)
(5)權(quán)限控制:
①遠(yuǎn)程登錄軟件自身的權(quán)限控制,分系統(tǒng)管理員和普通用戶;
②遠(yuǎn)程服務(wù)器的用戶權(quán)限,可設(shè)置多種級(jí)別不同權(quán)限。安全防范要結(jié)合這兩點(diǎn)。
(1)模塊劃分
圖1
(2)程序流程設(shè)計(jì)
①身份驗(yàn)證流程:
圖2
②賬號(hào)管理流程圖
圖3
③軟件注冊(cè)繳費(fèi)流程圖
圖4
④邏輯數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
表1 Color表
表2 Login表
表3 Sound表
表4 Data表
⑤物理數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
●軟件的注冊(cè)信息以MD5方式加密后保存在注冊(cè)表中,每次啟動(dòng)軟件時(shí),都會(huì)讀取保存位置的數(shù)值,用此數(shù)值來(lái)驗(yàn)證是否已經(jīng)繳費(fèi)購(gòu)買(mǎi)軟件。
●保存位置:HKEY_LOCAL_MACHINE/SOFTWARE/Company/Reg
●綜合輕巧簡(jiǎn)便的目的,選用Access作為軟件信息保存的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)文件必須改后綴名和自身加密處理,以提高被破解的難度。數(shù)據(jù)庫(kù)文件存放于軟件的目錄底下,暫命名data.ini。
●用戶信息存放于login表。服務(wù)器登錄信息存放于data表。color表存放登錄界面的顏色數(shù)量級(jí)別和sound表存放是否需要聲音傳輸,它們存放枚舉數(shù)據(jù),這樣的好處是業(yè)務(wù)處理和數(shù)據(jù)存儲(chǔ)分離,方便后期維護(hù),減少維護(hù)成本。
●考慮到安全因素,服務(wù)器登錄信息與用戶賬號(hào)信息都必須加密后才能保存入數(shù)據(jù)庫(kù),需要用到時(shí)才進(jìn)行逆向解密。
●采用壓縮方式為軟件打包,使得軟件只有一個(gè)exe可執(zhí)行文件。文件會(huì)被解壓到指定的目錄里,解壓完畢自動(dòng)運(yùn)行軟件真正的exe可執(zhí)行文件。這樣做的好處是保證了用戶的簡(jiǎn)便性,對(duì)普通用戶屏蔽掉一些不必要的顯示與操作。
(1)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)需要程序非常穩(wěn)定地工作,與服務(wù)器信息連為一體,與網(wǎng)絡(luò)高效率通訊緊密結(jié)合。根據(jù)這樣情況的分析,需要實(shí)現(xiàn)以下設(shè)計(jì)目標(biāo):
●實(shí)時(shí)性,系統(tǒng)必須對(duì)遠(yuǎn)程服務(wù)器的實(shí)時(shí)反饋高效顯示,高效執(zhí)行。
●安全性,系統(tǒng)必須保證普通用戶無(wú)法破解軟件,不能有明顯的系統(tǒng)bug。
●高性能,同一計(jì)算機(jī)同時(shí)開(kāi)啟服務(wù)器登錄窗口多個(gè),必須保證每個(gè)窗口運(yùn)行流暢。
●易操作性,根據(jù)用戶的特點(diǎn),設(shè)計(jì)方便的功能按鈕布局。
(2)身份驗(yàn)證模塊
圖1 登陸界面
設(shè)計(jì)思路:當(dāng)輸入完賬號(hào)和密碼后,點(diǎn)擊“登錄”按鈕,系統(tǒng)從數(shù)據(jù)庫(kù)中檢索用戶輸入的賬戶名和密碼是否有相同的匹配。如果找到匹配項(xiàng),再判斷賬戶名的權(quán)限是屬于系統(tǒng)管理員還是普通用戶。如果賬戶是系統(tǒng)管理員,顯示系統(tǒng)管理員窗口;如果賬戶是普通用戶,則顯示普通用戶窗口。
主要代碼是:
(3)界面按鈕生成模塊
圖2 用戶界面
設(shè)計(jì)思路:當(dāng)完成驗(yàn)證操作,且成功登錄后,系統(tǒng)將自動(dòng)顯示用戶界面。用戶界面由右邊一小區(qū)域的按鈕組成外,其余大部分區(qū)域?yàn)檫h(yuǎn)程服務(wù)器按鈕區(qū)。
①右邊的按鈕分別有退出登錄、最小化面板、修改密碼、注冊(cè)購(gòu)買(mǎi)。功能分別是:退出登錄等于退出軟件并且釋放遠(yuǎn)程服務(wù)器資源,假設(shè)有登錄遠(yuǎn)程服務(wù)器。該按鈕擺放在此處的好處是方便用戶關(guān)閉軟件;最小化面板等于用戶界面窗口最小化操作,可方便用戶的操作;修改密碼可以修改當(dāng)前用戶的密碼,避免密碼泄露后,無(wú)法修改密碼;注冊(cè)購(gòu)買(mǎi)主要是提醒用戶如何購(gòu)買(mǎi)軟件。
②左邊的按鈕功能為遠(yuǎn)程服務(wù)器按鈕,按鈕下方顯示遠(yuǎn)程服務(wù)器上設(shè)置軟件的名稱。按鈕中的圖標(biāo)和按鈕的名稱可在本軟件的系統(tǒng)管理員界面中修改。顯示用戶界面之前,本軟件讀取數(shù)據(jù)庫(kù)3-2 Data表。根據(jù)里邊的記錄數(shù)量對(duì)應(yīng)地顯示出遠(yuǎn)程服務(wù)器按鈕數(shù)量,保存入變量。本軟件循環(huán)讀取數(shù)據(jù)庫(kù)記錄,每次讀完一條,馬上把圖標(biāo)生成在左邊區(qū)域中,且計(jì)算好所要擺放的位置,然后根據(jù)圖標(biāo)的選擇,把圖標(biāo)信息顯示在按鈕上。最后在按鈕的tag屬性里邊賦值序號(hào)并且指定按鈕的事件。
③當(dāng)用戶點(diǎn)擊按鈕時(shí),按鈕事件執(zhí)行數(shù)據(jù)庫(kù)讀取操作。根據(jù)按鈕的tag屬性值來(lái)確定是讀取數(shù)據(jù)庫(kù)中的哪一條數(shù)據(jù)。當(dāng)讀取到需要的數(shù)據(jù)時(shí),把數(shù)據(jù)的每一項(xiàng)值寫(xiě)入到datamodule里邊的全局變量。下一步產(chǎn)生一個(gè)RemoteServer窗體,并且從datamodule里邊的全局變量中讀取信息,更改remoteServer窗體的標(biāo)題和執(zhí)行其他后續(xù)操作。
按鈕產(chǎn)生的核心算法:
(4)客戶端信息存儲(chǔ)模塊
設(shè)計(jì)思路:當(dāng)用戶以系統(tǒng)管理員身份登錄之后,將進(jìn)入此界面。界面是上中下結(jié)構(gòu)的。當(dāng)用戶錄入完數(shù)據(jù)并且系統(tǒng)提示成功保存后,數(shù)據(jù)將會(huì)存放在Access數(shù)據(jù)庫(kù)里邊。
①上方是一排按鈕和一個(gè)選擇框,密碼框。功能有三個(gè),第一個(gè)選擇要登錄的服務(wù)器,登錄系統(tǒng)按鈕可以按選中的服務(wù)器帳套名稱登錄到指定的服務(wù)器;第二個(gè)更改密碼可以更改系統(tǒng)管理員密碼也可以更改普通用戶密碼;第三個(gè)注冊(cè)繳費(fèi)按鈕點(diǎn)擊后顯示的是注冊(cè)繳費(fèi)界面。
②中間界面顯示的是系統(tǒng)管理員錄入的遠(yuǎn)程服務(wù)器信息,當(dāng)保存完畢后,將在上方的選擇框里邊顯示所有記錄的帳套信息
③下方四個(gè)按鈕的作用分別是中間界面新增一行、刪除一行、確認(rèn)提交、刷新數(shù)據(jù)。
(5)用戶付款注冊(cè)模塊
設(shè)計(jì)思路:
①要對(duì)軟件實(shí)現(xiàn)試用版和正式版,必須要有一個(gè)驗(yàn)證機(jī)制。設(shè)計(jì)一個(gè)Timer,以一定的時(shí)間周期檢測(cè)該軟件是否已經(jīng)注冊(cè),如果注冊(cè),則跳過(guò)Timer后續(xù)事件,否則執(zhí)行關(guān)閉軟件的操作。軟件啟動(dòng)時(shí),Timer enable屬性等于true。
②為了避免一個(gè)注冊(cè)碼多部計(jì)算機(jī)都可注冊(cè)的情況,我們?cè)O(shè)計(jì)出對(duì)于不同計(jì)算機(jī),注冊(cè)碼不一樣的機(jī)制。取計(jì)算機(jī)中的硬件信息作為甄別不同計(jì)算機(jī)的依據(jù),這里取網(wǎng)卡地址和計(jì)算機(jī)名。根據(jù)算法計(jì)算,為用戶的機(jī)器生成注冊(cè)號(hào)。在軟件中依據(jù)注冊(cè)號(hào)與注冊(cè)碼的對(duì)應(yīng)關(guān)系,檢驗(yàn)是否成功注冊(cè)。
(6)賬號(hào)管理模塊
設(shè)計(jì)思路:
數(shù)據(jù)庫(kù)操作有查詢、修改、增加、刪除。擁有系統(tǒng)管理員權(quán)限的用戶在對(duì)用戶賬號(hào)的添加修改,當(dāng)增加一個(gè)用戶時(shí),對(duì)該用戶記錄中的權(quán)限一欄寫(xiě)入一個(gè)權(quán)限值。權(quán)限分兩種,系統(tǒng)管理員和普通用戶。系統(tǒng)管理員可以對(duì)其他用戶進(jìn)行增加或刪除操作,而普通用戶無(wú)此功能。
通過(guò)使用Citrix ICA協(xié)議來(lái)進(jìn)行定制可以的客戶端軟件。在各大不同的行業(yè)中,只要用到遠(yuǎn)程共享,遠(yuǎn)程控制的地方,都可以使用此方案。優(yōu)點(diǎn)有很多,統(tǒng)一管理、高效率、平臺(tái)無(wú)關(guān)性、服務(wù)器支持集成等。這里高效率體現(xiàn)在一臺(tái)普通的小型服務(wù)器可容納幾十臺(tái)客戶端同時(shí)連接并且同時(shí)訪問(wèn)服務(wù)器數(shù)據(jù),占用的帶寬非常小。平均下來(lái),一個(gè)客戶端只需要5kbps-10kbps。一條普通寬帶變可以滿足30幾個(gè)客戶端同時(shí)訪問(wèn)服務(wù)器的要求。另外Citrix ICA技術(shù)還支持多種不同的網(wǎng)絡(luò)協(xié)議,不局限于TCP/IP協(xié)議,也可以在不同的平臺(tái)下工作,這里邊包括了Unix、Linux、手持掌上電腦等。微軟公司的遠(yuǎn)程終端技術(shù)只支持一臺(tái)主機(jī)做服務(wù)器,而Citrix ICA支持多臺(tái)主機(jī)同時(shí)做為服務(wù)器使用。
[1]黃慶,周文靜.計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議及其應(yīng)用分析[J].教育技術(shù)導(dǎo)刊,2009,01:142-144.
[2]孫劍,杜猛俊.MetaFrame網(wǎng)絡(luò)終端的應(yīng)用[J].電子技術(shù),2006,33(03):69-71.
[3]DONG Hui,FANG Jin-yun,ZHAO Hong-chao,CHENG Zhen-lin.Design and Implementation of Remote Software Sharing System Based on Citrix[J]Computer Engineering,2009,35(1):49-51,54.
[4]梁水.Delphi程序開(kāi)發(fā)范例寶典[M].人民郵電出版社,2010.
Design and Implementation of Remote Share of Chain Drugstore Checkout System Based on Citrix Technology
ZHANG Yuan-quan
(Department of Information Engineering and Art Design,Guangdong Machinery Technician College,Guangzhou 510450)
Expensive chain drugstore checkout software enables the operator's costs rose sharply,Citrix technology allows a set of software simultaneously share to multiple remote stores use,efficient way to make the connection complete operational checkout.Describes the current sales industry as technology sales management system for remote management and remote services.The software system is divided into front and back office operations management,database data storage media.Database of user information data are the software and the remote server information.
Citrix;ICA Protocol;Remote Control;Software Sharing
1007-1423(2016)16-0071-06DOI:10.3969/j.issn.1007-1423.2016.16.020
張?jiān)慈?987-),男,廣東饒平人,本科,研究方向?yàn)閳D像處理、軟件設(shè)計(jì)等
2016-04-27
2016-05-26