APP下载

基于Citrix技术的连锁药店结账系统远程共享的设计和实现

2016-10-18张源泉

现代计算机 2016年16期
关键词:普通用户按钮远程

张源泉

(广东省机械技师学院,广州510450)

基于Citrix技术的连锁药店结账系统远程共享的设计和实现

张源泉

(广东省机械技师学院,广州510450)

昂贵的连锁药店结账软件使经营者的成本急剧上升,Citrix技术能让一套软件同时分享给多个异地门店使用,高效的连接方式让结账方顺利完成业务操作。描述在当前销售行业以此技术实现销售管理系统的远程管理与远程服务。这个软件系统,分为前台操作和后台管理,以数据库为数据存储媒介。数据库数据分别是本软件的用户信息和远程服务器信息。

Citrix;ICA协议;远程控制;大型软件共享

0 引言

连锁药店往往需要通过软件入账,减库存等操作来实现数据业务。这些连锁店铺的数量往往关系到该软件的终端授权费用,门店越多,授权费越高。为了解决高昂的授权费,基于Citirx ICA协议平台下,开发药店终端连接系统,减少授权数量,减低费用。

Citrix技术是基于ICA协议,ICA协议全称为Independent Computing Architecture Protocol,支持TCP/ IP、IPX/SPX和NetBEUI等多种协议的,并且可以适应网络速度极差的环境[1]。Citrix拥有数据独立和服务器应用管理体系结构的产品Citrix MetaFrame系列软件,能利用ICA协议实现应用程序集中发布和管理等要求[2]。这项技术是由Citrix公司研发,目前应用于大多数全球500强企业[3]。在药店行业ERP系统中,结合Citrix ICA技术,研发出软件来实现远程ERP系统的调用。药店的ERP系统运营时,为了安全和方便因素,会在管理信息上采取一些加密措施,而使用了Citrix ICA技术后,可在此基础上更进一步加密。Citrix ICA本身是支持加密功能的,而且可以选择加密的程度,这样数据在网络中以密文传输。网络环境较好或对保密性要求很高的单位可以选择高强度加密。通过使用该技术,可使药店行业对软件购买成本大大减少。因为它是基于共享的远程终端访问,即一台服务器安装销售系统;在任何一个地方任何一台能联网的客户机可联接到销售系统并实现远程操作。财务行业对信息数据的保密性和完整性要求非常高,而ICA协议在这方面正是强项。

1 研究与实现的关键技术

现有的该类产品大部分是使用Citrix ICA Client和Borland Delphi(C++Builder)开发的,由Citrix公司提供公共库,可调用公共库进行网络连接,数据操作,界面显示。与此同时,微软也有自己的RDP协议,可实现ICA协议的部分功能,但在使用效果上分析,RDP协议的效率远远低于ICA协议。在Win2003下,RDP协议只支持TCP/IP协议传输数据。RDP协议不能在其他非微软系列的平台下使用。所以,使用RDP协议来开发的产品实际并不多。当软件离线时,在恢复网络后能自动还原登录状态。

该药店终端软件系统的编程平台使用Delphi 2010,数据库使用Access;服务器操作系统和客户机操作系统都是Win2003,采用的库为Citrix ICA Client Lib[4]。

(1)软件模式:这个软件可以用C/S模式实现,也可以用Web(B/S)模式实现。为了程序操作的高效率,优先使用C/S模式开发。

(2)客户端连接:网络连接可直接使用Citrix ICALib提供的事件方法,无须人为手写。对ICA Client属性值的改变,可使软件确定访问的服务器位置。

(3)数据存储:利用Access数据库存储软件用户登录识别信息和服务器信息,对用户名和密码进行加密处理,防止Access数据库被恶意破解。远程服务器的登录信息一旦被恶意获取,将会使高权限的用户暴露。这种情况对服务器产生的威胁相当大。

(4)服务器配置:

①安装Citrix MetaFrame平台

②激活终端服务授权

(5)权限控制:

①远程登录软件自身的权限控制,分系统管理员和普通用户;

②远程服务器的用户权限,可设置多种级别不同权限。安全防范要结合这两点。

2 系统结构设计

(1)模块划分

图1 

(2)程序流程设计

①身份验证流程:

图2 

②账号管理流程图

图3 

③软件注册缴费流程图

图4 

④逻辑数据结构设计

表1  Color表

表2  Login表

表3  Sound表

表4  Data表

⑤物理数据结构设计

●软件的注册信息以MD5方式加密后保存在注册表中,每次启动软件时,都会读取保存位置的数值,用此数值来验证是否已经缴费购买软件。

●保存位置:HKEY_LOCAL_MACHINE/SOFTWARE/Company/Reg

●综合轻巧简便的目的,选用Access作为软件信息保存的数据库。数据库文件必须改后缀名和自身加密处理,以提高被破解的难度。数据库文件存放于软件的目录底下,暂命名data.ini。

●用户信息存放于login表。服务器登录信息存放于data表。color表存放登录界面的颜色数量级别和sound表存放是否需要声音传输,它们存放枚举数据,这样的好处是业务处理和数据存储分离,方便后期维护,减少维护成本。

●考虑到安全因素,服务器登录信息与用户账号信息都必须加密后才能保存入数据库,需要用到时才进行逆向解密。

●采用压缩方式为软件打包,使得软件只有一个exe可执行文件。文件会被解压到指定的目录里,解压完毕自动运行软件真正的exe可执行文件。这样做的好处是保证了用户的简便性,对普通用户屏蔽掉一些不必要的显示与操作。

3 系统实现

(1)系统设计与实现

系统需要程序非常稳定地工作,与服务器信息连为一体,与网络高效率通讯紧密结合。根据这样情况的分析,需要实现以下设计目标:

●实时性,系统必须对远程服务器的实时反馈高效显示,高效执行。

●安全性,系统必须保证普通用户无法破解软件,不能有明显的系统bug。

●高性能,同一计算机同时开启服务器登录窗口多个,必须保证每个窗口运行流畅。

●易操作性,根据用户的特点,设计方便的功能按钮布局。

(2)身份验证模块

图1 登陆界面

设计思路:当输入完账号和密码后,点击“登录”按钮,系统从数据库中检索用户输入的账户名和密码是否有相同的匹配。如果找到匹配项,再判断账户名的权限是属于系统管理员还是普通用户。如果账户是系统管理员,显示系统管理员窗口;如果账户是普通用户,则显示普通用户窗口。

主要代码是:

(3)界面按钮生成模块

图2 用户界面

设计思路:当完成验证操作,且成功登录后,系统将自动显示用户界面。用户界面由右边一小区域的按钮组成外,其余大部分区域为远程服务器按钮区。

①右边的按钮分别有退出登录、最小化面板、修改密码、注册购买。功能分别是:退出登录等于退出软件并且释放远程服务器资源,假设有登录远程服务器。该按钮摆放在此处的好处是方便用户关闭软件;最小化面板等于用户界面窗口最小化操作,可方便用户的操作;修改密码可以修改当前用户的密码,避免密码泄露后,无法修改密码;注册购买主要是提醒用户如何购买软件。

②左边的按钮功能为远程服务器按钮,按钮下方显示远程服务器上设置软件的名称。按钮中的图标和按钮的名称可在本软件的系统管理员界面中修改。显示用户界面之前,本软件读取数据库3-2 Data表。根据里边的记录数量对应地显示出远程服务器按钮数量,保存入变量。本软件循环读取数据库记录,每次读完一条,马上把图标生成在左边区域中,且计算好所要摆放的位置,然后根据图标的选择,把图标信息显示在按钮上。最后在按钮的tag属性里边赋值序号并且指定按钮的事件。

③当用户点击按钮时,按钮事件执行数据库读取操作。根据按钮的tag属性值来确定是读取数据库中的哪一条数据。当读取到需要的数据时,把数据的每一项值写入到datamodule里边的全局变量。下一步产生一个RemoteServer窗体,并且从datamodule里边的全局变量中读取信息,更改remoteServer窗体的标题和执行其他后续操作。

按钮产生的核心算法:

(4)客户端信息存储模块

设计思路:当用户以系统管理员身份登录之后,将进入此界面。界面是上中下结构的。当用户录入完数据并且系统提示成功保存后,数据将会存放在Access数据库里边。

①上方是一排按钮和一个选择框,密码框。功能有三个,第一个选择要登录的服务器,登录系统按钮可以按选中的服务器帐套名称登录到指定的服务器;第二个更改密码可以更改系统管理员密码也可以更改普通用户密码;第三个注册缴费按钮点击后显示的是注册缴费界面。

②中间界面显示的是系统管理员录入的远程服务器信息,当保存完毕后,将在上方的选择框里边显示所有记录的帐套信息

③下方四个按钮的作用分别是中间界面新增一行、删除一行、确认提交、刷新数据。

(5)用户付款注册模块

设计思路:

①要对软件实现试用版和正式版,必须要有一个验证机制。设计一个Timer,以一定的时间周期检测该软件是否已经注册,如果注册,则跳过Timer后续事件,否则执行关闭软件的操作。软件启动时,Timer enable属性等于true。

②为了避免一个注册码多部计算机都可注册的情况,我们设计出对于不同计算机,注册码不一样的机制。取计算机中的硬件信息作为甄别不同计算机的依据,这里取网卡地址和计算机名。根据算法计算,为用户的机器生成注册号。在软件中依据注册号与注册码的对应关系,检验是否成功注册。

(6)账号管理模块

设计思路:

数据库操作有查询、修改、增加、删除。拥有系统管理员权限的用户在对用户账号的添加修改,当增加一个用户时,对该用户记录中的权限一栏写入一个权限值。权限分两种,系统管理员和普通用户。系统管理员可以对其他用户进行增加或删除操作,而普通用户无此功能。

4 结语

通过使用Citrix ICA协议来进行定制可以的客户端软件。在各大不同的行业中,只要用到远程共享,远程控制的地方,都可以使用此方案。优点有很多,统一管理、高效率、平台无关性、服务器支持集成等。这里高效率体现在一台普通的小型服务器可容纳几十台客户端同时连接并且同时访问服务器数据,占用的带宽非常小。平均下来,一个客户端只需要5kbps-10kbps。一条普通宽带变可以满足30几个客户端同时访问服务器的要求。另外Citrix ICA技术还支持多种不同的网络协议,不局限于TCP/IP协议,也可以在不同的平台下工作,这里边包括了Unix、Linux、手持掌上电脑等。微软公司的远程终端技术只支持一台主机做服务器,而Citrix ICA支持多台主机同时做为服务器使用。

[1]黄庆,周文静.计算机网络协议及其应用分析[J].教育技术导刊,2009,01:142-144.

[2]孙剑,杜猛俊.MetaFrame网络终端的应用[J].电子技术,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程序开发范例宝典[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

张源泉(1987-),男,广东饶平人,本科,研究方向为图像处理、软件设计等

2016-04-27

2016-05-26

猜你喜欢

普通用户按钮远程
当你面前有个按钮
远程求助
远程工作狂综合征
基于小红书UGC模式的城市形象传播研究
即使是普通用户也需要备一张家庭影院入门攻略:影音调校工具篇1
远程诈骗
死循环
内心不能碰的按钮
离线发文件 不是会员也能用
波音757-300中远程客机