计算机科学技术论文.docx
《计算机科学技术论文.docx》由会员分享,可在线阅读,更多相关《计算机科学技术论文.docx(26页珍藏版)》请在冰豆网上搜索。
计算机科学技术论文
计算机科学技术论文
题目ICA协议在Internet终端服务的应用
专业计算机科学与技术
2.2具体实现中采用的关键技术及复杂性分析6
3.3.2物理数据结构设计12
4.3软件打包与部署19
ApplicationsofICAProtocolinInternetTerminalServices
Abstract:
ThisarticlediscussestheCitrixICAprotocoladvantagesandfeatures,bycomparisonwithMicrosoftRDPprotocol,obtainedinthenetworkenvironmentispoorsituation,selecttheICAprotocoltotheremotesoftwaresharingisamoreappropriatesolution.Describesthistechniqueinthecurrentmarketingsalesmanagementsystemforremotemanagementandremoteservice,Softwareimplementationsarediscussed,andusedthemoutofasoftwaresystemimplementation;thesoftwaresystemisdividedintofrontandbackofficeoperationsmanagementtothedatabasefordatastorage.DatabaseDatawereusingthissoftwaretheuserinformationandtheremoteserverinformation.
Keywords:
ICA;Citrix;RemoteTerminalServices;RemoteAccess
论文题目:
字体:
楷体,字号:
小一
ICA协议在Internet终端服务的应用
摘要:
本文讨论了Citrix公司ICA协议的优势与特点,通过与微软公司RDP协议的对比,得出了在网络环境比较差的情况下,选择ICA协议来实现远程软件共享问题是比较妥当的解决方案。
描述了在当前销售行业以此技术实现销售管理系统的远程管理与远程服务。
讨论了软件的实现方式,并且用其中的一种以软件系统实现出来,这个软件系统,分为前台操作和后台管理,以数据库为数据存储。
数据库数据分别是使用本软件的用户信息和远程服务器信息。
关键词:
ICA;Citrix;远程终端服务;远程访问
1、概述
1.1CitrixICA技术的研究意义与应用前景
1.1.1CitrixICA技术的发展现状
1、ICA简介
ICA协议全称为IndependentComputingArchitectureProtocol。
CitrixICA技术是基于ICA协议的一套技术框架。
Citrix拥有数据独立和服务器计算机应用管理体系结构的产品CitrixMetaFrame系列软件,能利用ICA协议实现应用程序集中发布和管理等要求[1]。
2、ICA技术目标
为了妥善解决大型企业软件的管理成本、共享服务、利用价值等诸多问题,提出了基于CitrixICA协议的远程终端服务。
这项技术是由Citrix公司研发,目前应用于大多数全球500强企业[2]。
1.1.2CitrixICA技术在Internet应用的研究意义
1、传统Internet技术的缺陷
对CitrixICA技术的研究,可以使Internet的应用迈出一个新的步伐。
在传统的B/S、C/S应用模式下[3],很多软件实现的方式有一定的局限性。
比如B/S模式的效率问题,C/S模式的软件安装问题。
在使用了CitrixICA技术之后都可以获得新的改善。
2、结合CitrixICA技术的优势
CitrixICA技术是基于ICA协议的。
它的特点是支持TCP/IP、IPX/SPX和NetBEUI等多种协议的,并且可以适应网络速度极差的环境[4]。
1.1.3 CitrixICA技术在Internet应用前景
1、应用领域
目前很多个领域都有用到这项技术来实现远程终端,包括企业、教育、医院等。
2、成本优势
企业单独购买大型企业管理软件,如ERP系统、OA办公系统等的价格可能过高,利用基于ICA协议的CitrixICA远程终端技术来使用单服务器多客户机终端模式实现软件的最大利用化。
当然,单独服务器不一定是只有一台服务器,而是可以由多台服务器群集,服务器与服务器之间实现均衡负载[5]。
要实现的是,一个服务器端带动所有终端实现远程登陆并且访问软件。
这样可以在服务器端统一管理、配置、优化企业管理软件。
既方便了企业工作人员,又节省企业管理软件费用成本。
3、当前应用状况
客户端是CitrixICAClient,服务器端是CitrixPresentationServer,现在称为XenApp。
Citrix公司已经实现了虚拟化应用,并且与微软一起争夺VMware市场份额。
而Xen是作为剑桥大学的一个研究项目被开发出来,且已在开源社区中得到推动。
目前国内的企业比如:
用友,金蝶都有使用此技术来实现远程终端登陆财务软件,实现远程工作,也已经实现了官方CitrixICAClient大部分功能[6]。
4、未来应用方向
大中型企业软件系统的部署,虚拟化,远程维护,信息管理,入侵检测等应用。
1.2本论文研究目标与研究内容
1.2.1研究目标
1、行业特点
在销售行业ERP系统中,结合CitrixICA技术,研发出软件来实现远程ERP系统的调用。
企业的ERP系统运营时,为了安全和方便因素,会在管理信息上采取一些加密措施,而使用了CitrixICA技术后,可在此基础上更进一步地加密。
CitrixICA本身是支持加密功能的,而且可以选择加密的程度,这样数据在网络中是以密文传输的。
网络环境好点或者对保密性要求很高的单位可以选择高强度加密[7]。
2、结合CitrixICA技术的销售行业应用
通过使用该技术,可使销售行业对软件的购买成本大大减少。
因为它是基于共享的远程终端访问,即一台服务器安装销售系统
;在任何一个地方任何一台能联网的客户机便可以连接到销售系统并实现远程操作[8]。
3、结合CitrixICA技术的财务行业的应用
财务行业对信息数据的保密性和完整性要求非常高,而ICA协议在这方面正是强项[9]。
1.2.2研究内容
1、定制专门的行业管理方案
(1)销售行业的成本计算结果,发现如果换用CitrixICA产品,可以使软件成本急剧下降。
因为所有机器使用软件的成本只有一台机所需要花费的成本,而这台机器正是CitrixICA服务器。
也就是说,必须安装一台服务器并且在服务器上安装销售管理软件。
(2)传统销售管理软件,是每台机器都安装一个数据库和管理系统。
这样的坏处是每个不同地方的数据都要汇总在一台计算机上以便财务会计人员统计和做账。
而如果数据库只在一台服务器上,那么可以方便管理这些数据,减少数据的丢失的可能,减少企业对数据管理的成本费用。
所以,利用CitrixICA技术来整合销售管理软件是非常有好处的[10]。
2、软件的账户管理
(1)系统管理员,权限可查询、新增、删除、修改用户;
(2)普通用户,可登陆软件,可通过软件登陆远程服务器,并且自动打开信息管理软件,实现操作。
断线时,在恢复网络后能自动还原登陆状态。
3、用户的日志管理
这个管理可分为两点,一是控制远程登陆的软件本身的日志管理;一是远程服务器自身的日志记录[11]。
1.3课题的现状分析与解决方案
1.3.1现状分析和解决方案
1、现有产品使用的方案
现有的大部分产品是使用CitrixICAClient和BorlandDelphi(C++Builder)开发的,由Citrix公司提供公共库。
调用公共库进行网络连接,数据操作,界面显示。
另外,微软也有自己的RDP协议,可实现ICA协议的部分功能。
但是从使用效果上分析,RDP协议的效率远远低于ICA协议。
在WIN2003下,RDP协议只支持TCP/IP协议传输数据。
RDP协议不能在其它非微软系列的平台下使用。
所以,使用RDP协议来开发的产品实际并不多[12]。
2、解决方案
编程平台使用Delphi7,数据库使用Access;服务器操作系统和客户机操作系统都是WIN2000,采用的库为CitrixICAClientLib[13-15]。
这个软件可以用C/S模式实现,也可以用WEB(B/S)模式实现。
在这里,我们为了程序的高效率,优先使用C/S模式开发[16]。
1.4论文组织结构
第一章概述,介绍CitrixICA技术的特点,优势和应用领域,并阐述利用哪种技术制作应用软件;第二章研究与实现的关键技术,该章节介绍了CitrixICA技术的几个难点和结合应用软件后对安全要求的实现,其中包括的关键技术有数据库技术、Windows编程技术等;第三章介绍了软件的总体设计,包括程序流程、数据结构等信息;第四章描述了如何利用DELPHI开发基于ICA协议的软件的具体设计步骤与方法,还介绍如何打包软件等;第五章描述了对完成的软件进行用例测试,包括对登陆验证模块的测试。
最后部分结束语总结全文和表示在未来该技术的展望。
1.5本章总结
本章为CitrixICA技术做了一个整体的介绍,包括从应用领域、行业前景、应用的产品现状等分析和具体的应用分析,总结出了该技术的先进性和实用性。
利用现有的技术手段实现行业数据库系统的远程访问,与搭建的服务器配合工作达到一种既安全又高效的新型模式。
在安全这一方面上,主要分为内网安全和外网安全。
外网安全方面上,Citrix公司已经为我们提供了解决的方案,使用加密技术为数据进行保密性工作。
内网安全方面上,主要使用的技术是日志审核、数据加密,工作人员保密培训等手段。
2、研究与实现中的关键技术
2.1研究设计中要解决的问题
2.1.1网络连接
网络连接可直接使用CitrixICALib提供的事件方法,无须人为手写。
对ICAClient属性值的改变,可使软件确定访问的服务器位置。
2.1.2数据存储
利用ACCESS数据库存储软件用户登陆识别信息和服务器信息,对用户名和密码进行加密处理,防止Access数据库被恶意破解[17]。
特别是远程服务器的登陆信息,一旦被恶意获取到,那将得到非常高的远程服务器用户权限。
这种情况对服务器产生的威胁将是相当大的[12]。
2.1.3服务器配置
1、安装CitrixMETAFRAME1.8平台[18]
2、激活终端服务授权
2.1.4权限控制
权限控制分两点:
一是远程登陆软件自身的权限控制,分系统管理员和普通用户;二是远程服务器的用户权限,可设置多种级别不同权限。
安全防范要结合这两点[19]。
2.2具体实现中采用的关键技术及复杂性分析
2.2.1关键技术
1、数据库操作,必须要查询数据,增加数据,删除数据,编辑数据等操作[20];
2、远程连接控件的使用,打开和释放一定要成对,释放是为了避免造成资源浪费,还有其它一些窗体显示关闭等Windows编程技术[21];
3、远程登陆软件自身的界面控制,对系统管理员显示一种界面,对普通用户又是显示另一种界面,把所属功能放在显示在界面上。
达到权限不乱用的目的,避免不必要的安全隐患。
在普通用户界面中要生成图标,这需要有一套算法来确定图标的位置和区分是点击具体哪一个图标,然后激活按钮的点击时间。
2.2.2复杂性分析
软件最复杂的地方在于两点,一是如何保证图图像传输的效率,从远程操控另一台计算机,远程计算机时时刻刻都将有画面的改变,那么如果传输画面改变的数据,键盘操作数据,鼠标点击事件[22]。
在技术上,CitrixICA公共库已经帮我们处理;二是如何保证远程服务器的登陆信息不被用户获取到,目前使用的方法是对数据进行加密。
2.3本章总结
本章主要是讲明了如何利用CitrixICA技术实现远程访问服务器的方法,包括其中的主要难点。
既要使软件拥有高效率高性能,又要安全性达到一定的等级。
3、系统设计结构
3.1总体结构设计
3.1.1软件设计说明
系统使用delphi7+Access开发,名称为“网络连接系统”,版本1.0。
3.1.2模块划分
CitrixICA网络连接系统
身份验证模块
服务器信息存储模块
用户软件付款模块
账号管理模块
服务器按钮生成模块
图3.1模块划分
3.1.3运行环境
客户端:
windowsXP/win2000,内存256M,CPU2.0G,需要网络支持
服务器端:
Windows2000server,双核CPU2.5G,内存4G,硬盘空间10G
3.2程序流程设计
(1)身份验证流程:
通过认证?
Y
管理员身份?
Y
显示管理员界面
N
显示用户界面
N
启动软件
输入登陆信息
是否退出?
Y
是否退出?
N
Y
退出软件
执行其它操作
执行其它操作
N
图3.2身份验证流程
(2)账号管理流程图
Y
显示管理员界面
N
执行账户操作
关闭软件?
Y
关闭软件
通过认证?
管理员身份?
Y
N
N
启动软件
输入登陆信息
图3.3账号管理流程
(3)软件注册缴费流程图
退出软件
输入登陆信息
显示用户界面
执行其它操作
退出
软件?
N
Y
通过用户
认证?
Y
N
启动软件
判断已注册?
Y
N
开启Timer功能
显示用户界面
Timer
动作
执行?
Y
执行其它操作
Timer
动作
执行?
N
Y
N
注册?
N
显示注册界面
输入登陆信息
注册信
息有效?
N
Y
Y
图3.4软件缴费流程
3.3数据结构设计
3.3.1逻辑数据结构设计
表3-1Color表
字段名称
数据类型
主键
是否允许空
ID
数字
是
否
color
文本
否
否
表3-2Data表
字段名称
数据类型
主键
是否允许空
ID
自动编号
是
否
ServerName
文本
否
否
Username
文本
否
否
Password
文本
否
否
Port
文本
否
否
DSPName
文本
否
否
RemoteAPP
文本
否
否
Directory
文本
否
否
Icon
文本
否
是
表3-3Login表
字段名称
数据类型
主键
是否允许空
Username
文本
是
否
Password
文本
否
否
Level
文本
否
否
表3-4Sound表
字段名称
数据类型
主键
是否允许空
ID
数字
是
否
Sound
文本
否
否
3.3.2物理数据结构设计
1、软件的注册信息以MD5方式加密后保存在注册表中,每次启动软件时,都会读取保存位置的数值。
用此数值来验证是否已经缴费购买软件。
保存位置:
HKEY_LOCAL_MACHINE/SOFTWARE/Company/Reg[23]
2、综合轻巧简便的目的,选用ACCESS作为软件信息保存的数据库。
数据库文件必须改后缀名和自身加密处理,以提高被破解的难度。
数据库文件存放于软件的目录底下,暂命名为data.ini。
3、用户信息存放于login表。
服务器登陆信息存放于data表。
color表和sound表存放枚举数据,这样的好处是业务处理和数据存储分离,方便后期维护,减少维护成本[24]。
4、考虑到安全因素,服务器登陆信息与用户账号信息都必须加密后才能保存入数据库,需要用到时才进行逆向解密[25]。
5、采用压缩方式为软件打包,使得软件只有一个EXE可执行文件。
文件会被解压到指定的目录里,解压完毕自动运行软件真正的EXE可执行文件。
这样做的好处是保证了用户的简便性,对普通用户屏蔽掉一些不必要的显示与操作。
3.4本章总结:
本章主要讲系统设计结构,包括程序的流程,详细地分析了程序运行的每一个步骤,分模块化地表示出来;分析数据库表的每一项属性、默认值和其它约束
。
另外,对程序的物理数据结构具体说明了哪个数据库怎么存放,存放在具体哪个文件,对数据的安全如何保障,用哪种方法保密数据,哪种结构保存文件。
4、系统实现
4.1网络连接系统软件实现
4.1.1Delphi及相关技术
Delphi这个名字源于古希腊的城市名。
它以ObjectPascal为基础,扩充面向对象的能力,完美地结合可视化的开发手段。
它使用了本地编译器直接生成技术,使得编译完的程序执行性能比其它产品产生的程序强。
它编译完后不需要其它库的支持就能运行。
适合用于开发应用软件、数据库系统、系统软件等类型,它一样可以调用WINAPI函数,可对windows进行控制。
4.1.2系统设计与实现
系统需要程序非常稳定地工作,与服务器信息连为一体,与网络高效率通讯紧密结合。
根据这样情况的分析,需要实现以下设计目标[26]:
1、实时性,系统必须对远程服务器的实时反馈高效显示,高效执行。
2、安全性,系统必须保证普通用户无法破解软件,不能有明显的系统BUG。
3、高性能,同一计算机同时开启服务器登陆窗口多个,必须保证每个窗口运行流畅。
4、易操作性,根据用户的特点,设计方便的功能按钮布局。
4.2分模块详述系统各部分的实现方法
4.2.1身份验证模块
图4-1登陆界面
设计思路:
从数据库中检索用户输入的账户名和密码是否有相同的匹配。
如果找到匹配项,再判断账户名的权限是属于系统管理员还是普通用户。
如果账户是系统管理员,显示系统管理员窗口;如果账户是普通用户,则显示普通用户窗口。
主要代码是:
Id:
=trim(editID.Text);
Key:
=trim(enc(editPS.Text));
withAdOQuery1do
begin
close;
login.ADOquery1.SQL.Clear;
login.ADOquery1.SQL.Add('select*fromloginwhere(id='''+Id+'''andps='''+Key+''')');
adoquery1.Open;
i:
=recordcount;
end;
if(i>0)then
begin
if(id='admin')then
begin
adoquery1.Close;
mainform.Show;
login.Hide;
end;
if(id='hr001')then
begin
adoquery1.Close;
showpanel.Show;
login.Hide;
end;
end
图4-2用户界面
4.2.2服务器按钮生成模块
设计思路:
当完成验证操作,且成功登陆后,系统将自动显示用户界面。
用户界面由右边一小区域的按钮组成外,其余大部分区域为远程服务器按钮区。
1、右边的按钮分别有退出登录、最小化面板、修改密码、注册购买。
功能分别是:
退出登录等于退出软件并且释放远程服务器资源,假设有登陆远程服务器。
该按钮摆放在此处的好处是方便用户关闭软件;最小化面板等于用户界面窗口最小化操作,可方便用户的操作;修改密码可以修改当前用户的密码,避免密码泄露后,无法修改密码;注册购买主要是提醒用户如何购买软件。
2、左边的按钮功能为远程服务器按钮,按钮下方显示远程服务器上设置软件的名称。
按钮中的图标和按钮的名称可在本软件的系统管理员界面中修改。
显示用户界面之前,本软件读取数据库3-2Data表。
根据里边的记录数量对应地显示出远程服务器按钮数量,保存入变量。
本软件循环读取数据库记录,每次读完一条,马上把图标生成在左边区域中,且计算好所要摆放的位置,然后根据图标的选择,把图标信息显示在按钮上。
最后在按钮的tag属性里边赋值序号并且指定按钮的事件。
3、当用户点击按钮时,按钮事件执行数据库读取操作。
根据按钮的tag属性值来确定是读取数据库中的哪一条数据。
当读取到需要的数据时,把数据的每一项值写入到datamodule里边的全局变量。
下一步产生一个RemoteServer窗体,并且从datamodule里边的全局变量中读取信息,更改remoteServer窗体的标题和执行其它后续操作。
按钮产生的核心算法:
fori:
=0ton-1do
forj:
=0to4do
begin
begin
myButton:
=Tbitbtn.Create(self);
mybutton.Parent:
=showpanel;
panel1.Parent:
=showpanel;
//以下处理帐套长度分多行
splitstr:
=adoquery1.FieldByName('程序名称').asstring;
if(length(splitstr)>5)then
beginmybutton.Caption:
=copy(splitstr,1,5)+#13+copy(splitstr,6,5);
end
else
begin
mybutton.Caption:
=adoquery1.FieldByName('程序名称').asstring;
end;
mybutton.Top:
=16+i*119;
mybutton.Left:
=20+102*j;
mybutton.Width:
=70;
mybutton.Height:
=86;
mybutton.Layout:
=blGlyphTop;
mybutton.Tag:
=i*5+j;
mybutton.Font.Size:
=11;
img:
=TBitmap.Create;
mybutton.WordWrap:
=true;
mybutton.Glyph.Assign(img);
adoquery1.next;
mybutton.Cursor:
=crhandpoint;
myButton.OnClick:
=BtnClick;
end;
end;
fork:
=0tom-1do
begin
begin
myButton:
=Tbitbtn.Create(self);
mybutton.Parent:
=showpanel;
panel1.Parent:
=showpanel;
//以下处理帐套长度分多行
splitstr:
=adoquery1.FieldByName('程序名称').asstring;
if(length(splitstr)>5)then
begin
mybutton.Caption:
=copy(splitstr,1,5)+#13+copy(splitstr,6,5);
end
else
begin
mybutton.Caption