客户端/服务器结构(共12篇)
客户端/服务器结构 篇1
目前, 还有好多VFP编程爱好者对VFP的认识还是停留在FOXBASE和FOXPRO的基础上。其实用VFP开发基于C/S模式的系统是可以的, 而且原来所熟悉的各种技术在开发主从结构时仍然完全适用, 而我国有许多MIS系统开发人员都比较熟悉FOX系列的软件, 因此在此基础上掌握VFP开发C/S结构的MIS系统, 对于这些人来讲加快了开发进程, 延续了知识的生命周期。通过此论述谈谈VFP开发C/S系统的方法, 使对VFP不太了解或者没有用它开发过C/S结构的读者对VFP有重新的认识。
1 在服务器建立数据库, 在客户机建立ODBC数据源
主从结构最大的优点就是将工作合理分配于服务器与工作站以便让它们同时发挥所长, 主从结构包括三个重要的部分-网络操作系统、数据库服务器及前端应用程序。我们可以采用Visual Fox Pro+SQL Server2005+WNT Server (或Windows xp) 的组合方式。我们首先需在SQL Server上建立所需的数据库如:cj, 并创建所需要的表, 如, 人员信息表等。
在前台的工作站上, 操作系统采用Window98/95/XP即可, 在工作站建立连接到SQL Server的ODBC数据来源 (Data Source) 。我们新建了一个用户数据源shuju, 连接到SQL Server上的cj数据库。注意在前台工作站上使连接SQL Server的ODBC数据源连接成功, 必须在后台数据库服务器上设置“更改Windows防火墙设置”和SQL Server上用户的添加。
“更改Windows防火墙设置”设置方法为:依次打开控制面板->网络连接->更改Windows防火墙设置, 打开了“Windows防火墙”页, 有两种设置方法, 一种是首先在“常规”页中选择“启用”, 允许例外, 然后在“例外”页的程序和服务中查看有无“sqlserver”, 如无点击“添加程序”按钮, 添加所安装的sqlserver程序, 并选择该程序。另外一种设置方法是在“常规”页中直接选择“关闭”, 当然这种选择会降低计算机的安全性, 建议使用第一种方法进行设置。
SQL Server上用户的添加方法如下:首先添加一用户登录名, 设置其默认数据库为用户可访问的某个具体数据库, 然后给需要访问的数据库添加一用户, 并设置用户的角色和架构, 使用户具有对数据库的访问权限, 并且必须设置启用此登陆名。
以上设置完成后用户才可以在前台工作站真正地访问后台数据库服务器SQL Server中数据库了。
现在开始建立ODBC数据源了 (注:ODBC所在位置:开始->设置->控制面板->管理工具->数据源ODBC) 。建立ODBC数据源, 按照以下步骤就可完成:添加->选择SQL->完成->输入想要的名称、描述, 服务器要选对->输入用户ID和密码->更改数据库->?完成->测试一下数据源, 测试成功!->确定, 则ODBC数据源建立完成。
2 在Vis ua l Foxpro中建立和数据库相连的连接
下面进入与Visual Foxpro相关的部分。在以Visual Foxpro所开发的主从结构中, 远程视图 (Remote View) 扮演着关键性的角色。远程视图使得程序设计师能够将现有的技术直接应用于主从结构系统的开发上, 而无须增加太多的负担。当要在Visual Foxpro中存取其他数据库系统的数据记录时, 就可借助于远程视图。在建立一个远程视图之前, 必须在数据库中建立一个连接 (Connection) , 它记录了登入SQL Server的相关信息并定义连接通道的一些设定信息。在数据库设计器中新建一个连接, 有三种方法:第一, 分别在数据源、用户标识、密码、数据库所对应的输入框中输入如前文所述的名称, 然后验证连接即可。第二, 在连接设计器中直接选择前面设计的ODBC中“用户DSN”数据源。第三, 可以在程序中用连接串函数连接, 来使用所定义的ODBC数据源:nhandle=sqlstringconnect (“driver=sql server;server=PC-20100310ZGKV;uid=zhld;pwd=zhld;database=cj”) 。用户根据自己的喜好选择使用不同的方法, 在有些情况下, 用程序控制方式进行连接将会更方便。
3 在Vis ua l Foxpro中建立远程视图
在VFP中连接成功的情况下, 就可以建立远程视图。既可以在数据库设计器中用视图向导建立视图, 也可以用命令的方式来建立视图。下面以向导为例来进行说明, 在向导中可以使用数据源或者连接来创建视图, 一般而言, 让远程视图透过已定义的连接来连接到所需的数据来源较好, 因为连接本身就包含较完整的连接定义信息, 而用数据源则每次使用远程视图时便会出现SQL Server Login对话框, 显然这是非常麻烦的。接着选择视图所对应的SQL Server中的来源表即可。
用户就视图所需要的字段、联接条件、筛选条件、排序、分组、更新条件应分别进行设置, 以满足用户的需要。特别要注意的是在“更新页面”栏, 如果要建立一个可更新的视图, 必须选中“发送SQL更新”栏, 这样针对视图所作的任何变动, 会主动反映到后端的SQL Server中去, 可以直接使用所熟悉的Visual Foxpro来更新后端数据, 否则在客户端数据看似已修改了, 但实际上并未将修改了的数据发送到后端SQL Server中去, 给用户产生错觉而发生错误。另外, 我们还要指定关键字、可更新字段、更新冲突的检查方式以及后端的SQL Server如何执行更新操作等, 这样视图的建立就完成了。
但是表中字段数据类型前后端的相互对应问题非常值得我们注意, Visual Foxpro中的数据类型与SQL Server中的数据类型不尽相同, 不过前后端的数据类型有一固定的关系。比如:某一个字段在SQL Server上的数据类型是money, 而在远程视图中此字段的数据类型将是货币值类型, 又例如, 某一个字段在SQL Server上的数据类型是text, 而在远程视图之中此字段的数据类型将是备注型, 我们往往需要手动去调节对应的字段类型, 例如, SQL Server上的datetime类型到了远程视图中都要变成date型。以上数据类型的转换比较容易理解, 遇到相关编程问题也好解决, 但是如果某一字段数据类型为image型, 存储的是多媒体数据或其它软件产生的文档, 则数据的转换就比较复杂, 可以通过以下方法进行识别和处理:假设在后台SQL Server中有“相片”字段为image型, 通常该字段的数据显示为“二进制型数据”, 用户无法对其直接进行操作, 但经过VFP远程视图查看, 该数据类型被自动转换为通用型, 即显示为Gen, 这样在VFP中可以双击查看。但有时后台SQL Server中image型数据会显示为空值, 即为“.NULL.”, 那么经VFP远程视图查看, 该数据显示依然为.NULL., 而不是Gen, 那么在处理该字段值时不能相当然地认为是这通用型的字段。那么可以通过以下方法来解决经远程视图查看同一字段有的数据显示为Gen, 而有的数据显示为.NULL.的情况。即使用VFP提供的数据类型判断函数vartype (表达式) , 例如以下使用方法:
IF vartype (jbxx.相片) =”G”&&“相片”字段为通用型
Thisform.form1.olb相片.contrlsource=[jbxx.相片]&&此时该字段数据为通用型
ELSE
Thisform.form1.olb相片.contrlsource=“”&&此时该字段数据为字符型
ENDIF
经以上方法判断就能识别该字段当前数据类型, 可以方便地对该类数据进行正确处理了。
远程视图一旦建立完成, 用户就可以利用它来显示与更新数据。由于远程视图在外观与使用上皆与表大同小异, 因此, 即使其来源数据实际上是位于SQL Server中, 用户也无需任何顾虑, 过去使用Visual Foxpro本身的数据建立数据操作界面、报表及标签的方法完全适用于远程视图。用户可以在表单设计工具、报表设计工具与标签设计工具中, 将远程视图加至表单、报表或标签的数据环境组件中, 并快速建立出数据源为远程视图或其它某字段的控制项。
4 S QL P a s s-Through (S P T) 技术的运用
要使一个主从结构系统趋于完善, 除了用远程视图来构筑主从结构的主体, 还必须辅以SQL Pass-Through技术。所谓SQL Pass-Through, 意指我们可以将任何符合SQL Server语法的命令叙述从前端透过连接通道送至后端的SQL Server来执行, 与SQL Server进行其他直接有效的沟通。利用SQL Pass-Through用户还可以直接去执行储存在SQL Server上的储存式程序 (Stored Procedure) , 和系统储存式程序 (System Stored Procedure) , 比方说, 从前端去执行SQL Server的系统储存式程序sp_addlogin, 来要求加入一个使用者帐号。一般而言, SPT函数的使用流程如下所示:
(1) 首先使用SQLCONNECT () 或SQLSTRINGCON-NECT () 函数来连接值所需的数据源。
(2) 成功的连接到SQL Server之后, 即可以透过连接通道进行所需的各项处理。比如, 我们可以使用SQLEXEC () 函数将SQL命令送至SQL Server执行。
(3) 完成所有的操作后, 应用SQLDISCONNECT () 函数切断与数据源的连接。下面举一个典型的运用SQL Pass-Through的例子:
Set talk off
Clear all
Close all
public nhandle&&定义连接串名
nhandle=sqlstringconnect (“driver=sql?server;server=PC-20100310ZGKV;uid=zhld;pwd=zhld;database=cj”) &&我的连接类型是SQL SERVER, 服务器是PC-20100310ZGKV, 用户名是zhld, 密码是zhld, 数据库是cj
if nhandle>0
messagebox (‘连接成功!!!’)
browse
sqlexec (nhandle, “select编号, 姓名, 职务, 股室, 电话from人员信息表order by编号”, “gh”) &&将服务器中的‘人员信息表’表中的数据读到gh临时表中
sele gh
cursorsetprop (“tables”, “人员信息表”, “gh”) &&设置临时表的更新目标表
cursorsetprop (“keyfieldlist”, “编号”, “gh”) &&设置临时表的关键字
cursorsetprop (“updatablefieldlist”, “编号, 姓名, 职务, 股室, 电话”, “gh”) &&设置临时表的更新字段
cursorsetprop (“updatenamelist”, “编号人员表.编号, 姓名人员表.姓名, 职务人员表.职务, 股室人员表.股室, 电话人员表.电话”, “gh”) &&用gh中的相应字段更新人员表
cursorsetprop (“sendupdates”, .t., “gh”) &&设置为可更新
cursorsetprop (“wheretype”, 2)
cursorsetprop (“buffering”, 5) &&设置表缓冲do form表单1&&连接成功, 执行表单1
sqldisconnect (n Handle) &&如操作结束, 可切断连接
else
if messagebox (“数据库连接失败, 是否继续连接?”, 48+4, “连接失败提示”) =6&&回答“是”
return
else
quit
endif
endif
通过这样简单有效的代码, 我们可以不使用远程视图也能够有效地访问远程SQL Server数据库中的数据, 以确保数据的完整性和安全性。在此列出所有的SQL Pass-Through函数供大家参考:
(1) 连接建立与切断SQLCONNECT () 、SQLSTRING-CONNECT () 、SQLDISCONNECT () 。
(2) SQL命令叙述的执行与控制SQLCANCEL () 、SQLEXEC () 、SQLMORERESULTS () 、SQLPREPARE () 、SQLCOMMIT () 、SQLROLLBACK () 。
(3) 数据来源信息SQLCOLUMNS () 、SQLTABLES () 。
(4) 存取连接通道的属性SQLGETPROP () 、SQLSET-PROP () 。
在用SQL Pass-Through时, 程序设计师能够拥有较高的主导权与控制权, 因此, 若能够将远程视图和SQL Pass-Through技术紧密的结合起来, 互补有无, 我们的主从系统就可以无所不能了。
5 结束语
Visual Foxpro集数据、表单、报表、程序、菜单、视图及连接等功能于一体, 利用VFP能够快速、简单地进行界面、报表、菜单、视图等的设计, 能够实现对SQL Server数据库中数据的插入、查询、修改等操作。VFP是一个简单易学、功能强大的开发C/S结构数据库应用系统的前端软件, 掌握了VFP的程序设计人员, 并且只有了解了Visual Foxpro在开发客户/服务器结构系统中所扮演的角色, 就能轻松掌握开发客户/服务器结构数据库应用系统。
摘要:VFP因简单易学, 可快速建立应用软件而深受广大程序员喜爱, 但其数据库系统不安全也令广大用户非常头痛。随着SQL Server数据库系统的推广应用, 其强大的安全性能普遍受到好评。而现在许多人都能够开发一些VFP单机系统, 但仍不知如何使用VFP开发C/S系统, 本论述较系统地介绍如何使用VFP开发C/S系统, 使VFP和SQL Server初学者和熟练者都能迈进C/S系统开发的大门。
关键词:VFP,C/S,系统开发方法,客户/服务器结构系统
参考文献
[1]赵忠孝.数据库原理及Visual Foxpro应用[M].北京:高等教育出版社, 2004.
[2]郭盈发, 张红娟, 赵伟华.Visual Foxpro6.0及其程序设计.西安:西安电子科技大学出版社, 2001.
[3]闪四清.中文版SQL Server2005数据库应用[M].北京:清华大学出版社, 2009.
[4]章立民.Visual Foxpro6.x中文版程序设计-应用实务篇[M].北京:中国铁道出版社, 1999.
客户端/服务器结构 篇2
在客户端虚拟化操作系统中,主机把它的资源大体上划分成几个独立的部分,由这些不同的部分共同来支持不同的操作系统和不同的应用。一个虚拟机就是一个设备齐全的操作系统环境,它运行在虚拟层的顶层,并扮演着一个独立的计算机角色。
微软公司提供了商业用途的免费版本,它们是“虚拟机服务器 R2”和“虚拟PC机”。VMware也发行了几款免费版本的虚拟机服务,例如有VMware Server,还有“WORKSTATION 6.0”,它可以运行在普通的PC机上;另外还有Virtual Infrastructure 3.x or ESX Server 3.x,这是VMware公司最全面的解决方案;最后就是“虚拟桌面结构”(简称VDI),它可以把桌面环境进行虚拟化。
其他的厂商也提供了一些客户端操作系统虚拟化的解决方案,其中包括SWsoft,Virtual Iron 和 XenSource。例如,Linux的任何Xen版本都包括有一个核心的虚拟引擎。XenSource也提供了单机的虚拟化工具,而Virtual Iron和SWsoft公司也提供了这样的工具。关于XenSource最有趣的事情是,他们和微软公司一样,都是运行一个相同的虚拟机的格式,并且都保证您可以进行从一个虚拟机的解决方案迁移到另外的一台虚拟机上的操作。
操作系统虚拟化把操作系统本身从硬盘上解放出来
客户端操作系统虚拟化具有如此强大的作用的原因是,它把操作系统本身从正在运行的硬盘上“解放”出来。毕竟,一个虚拟机其实只不过就是一个文件夹下的一整套文件而已,如下图的目录图所示。
这些文件主要是由一些配置信息、虚拟硬盘驱动器和内存文件组成,如下面的表格所示。
文件类型
微软公司
VMware公司
配置信息文件
VMC
.VMX
虚拟硬盘驱动器文件
.VHD
.VMDK
内存文件
.VSV
.VMEM
一旦一个客户端操作系统被“解放”,您就能用它做各种各样的事情了。例如,您可以把它从一个主机服务器迁移到另外一个主机服务器上。除此之外,您还可以很容易的就做到保护一个客户端虚拟化操作系统,而做到这些您只需要使用一个复制的引擎来把一台主机信息复制到另外一台主机上去就可以了,甚至是发布在不同的网址上的。使用这项技术可以做的事情真是不胜枚举。
客户端操作系统虚拟化的工具分为几种不同的类型。最常用的工具就是现有操作系统顶部上的一个虚拟化引擎。举个例子,假设您在您的主机上安装了Windows Server,然后不论您是安装微软公司的“虚拟服务器”还是“VMware服务器”后,您都能创建和运行虚拟化的操作系统了。
然而,这种方法更适合用来做测试和在研发环境中使用,而真正谈到了产品系统,那可能就要差很多距离了。在产品环境中,您还得再使用一个虚拟化系统管理程序的工具。一个系统管理程序就是一个最基本的软件,这个软件直接运行在硬件的顶层上,以此来管理不同的虚拟化操作系统,
这个系统管理程序的目的是为虚拟机操作系统揭露硬件资源。
系统管理程序事实上是一些大小在180K到500K之间小代码。由于它的小体积,所以使用起来给人的感觉很不错。
您可以在一个物理设备上同时运行几个不同的虚拟操作系统。平均算来,一个依赖系统管理程序的公司在一个物理设备上可以同时运行10个到20个的虚拟机操作系统。因为它们只不过是一些文件夹下的文件而已,所以虚拟机操作系统可以很轻松的被保护起来,而且可以完全支持商业连续性的各个环节。
软件的厂商们甚至在他们的服务器操作系统上创建自定义特征来使客户端操作系统更加完善。例如,微软公司在带有SP2补丁的Windows Server上添加了新特征来使它和主机进行更好的通讯协作工作。
修补许可证模式
但是使客户端虚拟化操作系统倍受喜爱的原因是,最近一些厂商们对许可证做了一些修改。例如,微软公司修改了服务器操作系统的许可证模式。在旧的许可证模式下,不管是物理实际存在的系统实例还是在虚拟机上存在的实例,您都得为此购买一个Windows的许可证。
但是现在,带有R2企业版本的Windows Server 2003(简称,WS03 R2 EE),您所购买的每个许可证都可以让您在主机上同时安装、创建和运行四个虚拟机。因此您只需要为您的实际物理操作系统购买一个许可证,然后您就能添加四个免费而且是任何版本的Windows客户端系统。如果您想得到多于四个的虚拟操作系统,那就要为WS03 R2 EE再购买一个许可证就可以了。
除此之外,微软公司撤消了对Windows R2数据中心版本OEM的限制。如果您购买了数据中心版本,您就能运行一个不受数量限制的Windows的虚拟机实例。那么这就好象是圣代冰淇淋最上面的小樱桃一样令人喜爱:而这又与您所使用的是哪个虚拟平台无关。
这个模式的好处就在于它支持更快速度的虚拟机响应,因此您没有必要为许可证的事情而担忧了。仔细考虑一下这个问题。当您把它安装在一个虚拟实例上而不是在一个物理主机上的时候,可以得到WS03版本的75%的购买折扣。这使得通过虚拟机操作系统加固服务器变得更加的令人满意。
微软公司在关于授予给服务器许可证的技术上还做出了一些改变。最简单的计算您所需要许可证数量的方法就是使用微软现在所提供的“Windows服务器虚拟机计算器”,它有两种方法,您可以选择使用其中的一个。
当您创建一个虚拟化主机的时候,第一个“计算器”可以配置您的基于虚拟化技术的服务器、sockets程序和群集需求。
第二个计算器让您对Windows Server版本估算许可证的数量和花费。它给您提供了两种选择:
1. 选项A根据在您网络中存在服务器的数量来计算可运行在每个服务器上虚拟机的平均数量。
2. 选项B根据在每个服务器上的处理器的数量,计算了针对于每个个体服务器可运行虚拟机的数量。
微软公司并不是唯一一个在进行许可证修改的公司,其他一些厂商们也很赞同虚拟运行模式并且在他们的许可证计划中可见一斑。首先在您决定把一个服务器产品虚拟化之前,一定要和您的软件提供商谈好这个问题。
这篇文章是关于服务器加固的四篇文章中最后的一篇。第一篇文章,讲述了关于“使IT管理员们五步就能管理好服务器的加固的方法”。第二篇文章讲述了关于“控制花费是服务器加固的第一步”,在这篇文章中讨论了控制IT花费应该优先于服务器的加固工程。第三篇文章,讨论了“多核处理器和64位服务器”在当今服务器安全加固中所起到的重要作用。
64位服务器技术、多核处理器、虚拟化操作系统和操作系统许可证模式的修改,它们使得迁移虚拟化的服务器变得非常引人注目。因为服务器加固的目标是减少服务器的增殖负担,所以在我们的加固工程完成之前,您还得使用一些其他的技术。毕竟,如果您一旦把操作系统的每个物理实例进行虚拟化后,那么就相当于既要管理好实际的主机操作系统,又要管理好比现在数量更多的客户端虚拟化操作系统了。
客户端/服务器结构 篇3
其上层是数据网络,其底层使用光传送网(RTN)作为物理传输网络。数据网络的组成设备主要是异步转移模式(ATM)交换机、路由器等;光传送网的组成设备当前主要是具有光分插复用器(OADM)和光交叉连接器(OXC)的波分复用(WDM)网络、光放大器以及光纤等等。而在光互联网中,高性能的数据互联设备(如交换机和路由器等等)通过光网络技术互连,这些设备既可直接连接在光纤上,也可连接在向各类客户提供光波长路由的光网络层上。这里的客户包括数据互联设备和同步数字系列(SDH)/同步光纤网(SONET)等网络单元,交换机或路由器可以充分利用光纤或者光波长的容量,对数据分组或者信元进行复用。SDH/SONET二者都是一种光纤同步多路复用系统,用以传输不同传输速率的数字信号,经由光纤/电缆在一个单一的速率下把它们发送出去,以确保数据网络能够国际互联,并确保能够利用现有的光纤资源。
瘦服务器/瘦客户端
服务器/客户机(Server/Client)是网络中用于联合、包含多样化终端的分布式处理系统的计算机。服务器是网络中提供服务和信息的计算机;客户机是用户自己上网的计算机。如果一台个人计算机所拥有的软硬件资源仅仅能够满足一个特定的网络功能,如文件访问、打印管理等,那么这台个人计算机就叫作瘦服务器(Thinserver),使用它比使用通常的网络服务器成本更低。
通常瘦服务器包括一个或多个最小安装的操作系统如Windows95、Macintosh或UNIX,包括一些必须的网络协议如TCP/IP和NetBEUI,一般还包括超文本传送协议(HTTP),以通过浏览器的界面管理配置计算机。瘦服务器硬件方面使用精简指令集计算机(RISC)处理器比较合适。一些瘦服务器仅被设计用于商业局域网之中;还有一些瘦服务器正在进入家用市场。
瘦服务器和瘦客户端都体现了一个观念:不为不需要的功能花费金钱。瘦客户端又称为网络计算机,是专用于网络的低成本个人计算机。它不过是服务器的一个终端,部件和功能比通常的计算机要少,只有必须的部件,没有CD-ROM、软驱和扩展插槽,由一个中心机集中管理和维护,并由中心机为这些计算机提供服务(新软件都由下载得来)。瘦客户端使用的操作系统小型化,应用程序与运行平台无关。传统上使用的大型独立软件,在网络计算机中被分割成若干个较小的、功能彼此独立的软件包。瘦客户端能完成传统计算机所能完成的任何工作,同时又节约了大量投资。
超媒体
超媒体(Hypermedia)是超级媒体的简称,是超文本和多媒体在信息浏览环境下的结合。超文本(Hypertext)是超级文本的简称,它是一种全局性的信息结构,将文档中的不同部分通过关键字建立链接,使信息得以用交互方式搜索。多媒体(Multimedia)信息是文本、图形、动画、图像和声音组合而成的媒体形式,电视节目、动画片、个人视话都可被看作是多媒体。
通过一种创建Web页面的超文本标记语言(HTML),可以往普通文档中加入一些特殊的标识符,这些标识符具有一定的语法结构,使生成的文档中还含有其他文档甚至图像、声音、动画等,从而成为超文本文档。实际上超文本文档中本身是不含有上述多媒体数据的,而是仅含有指向这些多媒体数据的指针,这种指针一般称为链接(Link)。通过超文本文档方式,用户仅仅使用鼠标点击操作,就可以得到所要的文档,而不管该文档是何种类型(普通文档、图像或声音等),也不管它身居何处(本机上、局域网上乃至全世界任何一台联网的机器上)。总而言之,超文本标记语言是一系列的标记符号或嵌入希望显示文件内的代码。这些标记告诉浏览器应该如何显示文字和图形。由于其编写制作的简易性,作为Web的核心技术之一,超文本标记语言在因特网中被广泛应用。
客户端软件结构的发展探析 篇4
客户端软件结构经历了从C/S结构到B/S结构的发展。B/S结构的缺陷带来了ASP、JSP、PHP以及Ajax等技术的发展, 但是这些修修补补的技术仍难以弥补B/S结构的不足。对此, Citrix提出了ICA结构, 微软提出了智能客户端结构, 还有Macro Media的Flex、Mozilla的XUL等等, 一时间客户端软件结构的发展似乎进入到百花齐放的春天。但这是个迷茫的春天, 对我们这样多年从事软件开发的人们和广大用户而言, 实在难以适从, 困惑重重。本文通过对这些软件结构的利弊分析, 以期让读者能对客户端软件结构的发展及其变迁的原因有总体的认识和了解。同时, 对SOA成为未来客户端软件结构主流方向, 予以展望, 表述了个人见解。
1 B/S结构和C/S结构之争
1.1 C/S结构
C/S (Client/Server, 客户端/服务器) 结构是上世纪八十年代出现的技术, 至今已经相当成熟, 应用非常广泛。C/S结构主要应用于局域网, 对于用户数不多的小系统, 一般采用两层结构, 即客户端/服务器。用户数较多、比较复杂的系统可考虑三层 (或N-Tier) 结构, 即客户层/中间层 (应用服务器) /数据库服务器。在这种结构中, 客户端有较好的交互能力, 报表的操作方便, 并能进行部分数据处理, 能有效地降低网络通信量和服务器运算量。同时, 通过对客户端数据的加密处理, 可以达到较高的数据安全性。目前, 国内的大部分ERP产品即属于此类结构。
1.2 B/S结构
B/S (Browser/Server, 浏览器/服务器) 结构是对C/S结构的变化或者改进。B/S结构的最大优点在于充分有效地利用了互联网络资源, 客户端不需要开发专用软件, 用户工作界面是通过浏览器来实现, 主要事务逻辑在业务逻辑层实现, 从而减轻了系统维护与升级的工作量, 降低了用户的成本。为了便于设计和维护, B/S结构通常采用三层体系结构, 即用户界面层、业务逻辑层 (或称中间层) 和数据管理层。
随着互连网应用的迅猛发展, 业界许多人士认为, B/S结构软件会全面取代C/S结构软件而成为软件的主流发展方向。然而B/S结构缺陷所导致的软件设计上的困难和使用上的不便, 使软件开发人员及用户倍感痛苦。B/S不但操控性差, 而且较易受病毒感染, 安全性也较差。
B/S技术是伴随着Internet的普及而产生的, 其核心是建立在Web浏览器的基础上。而Web浏览器最早只是用于信息浏览, 对于B/S应用似乎存在着先天性的不足。
首先, 浏览器较差的可交互性是B/S应用的最大瓶颈。浏览器最初只是用于浏览静态页面, 采用类LISP的超文本标记语言HTML来控制浏览页面的格式, 信息流只是单方向地由服务器传给浏览者, 当初的设计者并没有考虑到要收集和处理终端用户回馈的信息。为了改善浏览器的可交互性, 逐步发展起来了采用嵌入Active X、ASP、JSP、PHP以及Ajax等技术的动态网页技术。尽管这些技术在一定程度上弥补了动态网页的可交互性, 但其可控性、灵活性还是与C/S结构的客户端程序相差很远。
其次, B/S结构的主要事务逻辑都是在服务器端实现的, 用户界面完全通过浏览器调用, 它需要经常性地下载和上传数据, 造成服务器和网路的负担过重, 使程序运行速度慢。同时客户端资源又大量闲置, 并且对客户端资源进行交互性操作 (如调用本地磁盘文件或其他应用程序) 也极为不便。
另外, 互联网络的低安全性、低可靠性阻碍了B/S应用的进一步发展。由于TCP/IP的技术缺陷, 网络黑客可以轻易地窃取或发送虚假的IP数据包, 对B/S服务器进行攻击或骗取密码。即使对于设计得很完善的系统, 饱和式攻击也可使其网路阻塞或致整个网络瘫痪。即使无黑客攻击, 互联网络的故障或访问高峰, 也会造成系统运行慢或瘫痪, 使工作无法正常进行。
面对B/S结构存在的种种问题, 有人提出回归C/S结构。但是B/S结构较好地利用了庞大的互联网络资源, 客户端零部署, 低成本、低维护的优势, 无疑是令人期待的。客户端软件结构的发展到了进退两难尴尬的境地。
2 Citrix的ICA结构和微软的智能客户端
2.1 ICA结构
Citrix的软件体系架构———独立计算结构ICA (Independent Computing Architecture) 结合了C/S和B/S结构的优点, 克服了C/S方式多地点应用的局限性, 又没有B/S方式数据交换量大对带宽要求高、安全性等不是很令人满意的特点。
Citrix Systems Inc.是全球领先的应用服务器软件方案供应商, 是瘦客户/服务器 (Thin Client/Server) 计算领域的发起者和领导者。区别于常规的C/S计算模式, Citrix技术采用新的网络计算模式———基于服务器的计算模式。通过ICA协议, 可将应用程序的逻辑从用户界面中分离开来, 缩减网络传输数据量。这就降低了对网络带宽的要求, 平均每个用户仅占用10K左右, 即使是通过电话线连接到Internet, 也能保证多个用户同时工作, 提供数据的实时访问和更新。另外, 应用服务器与后台数据库通常是局域网连接, 计算和查询所需的大量数据都是基于LAN传输速度, 因此远程用户的网络性能非常理想。同时它支持多种平台或设备, 几乎所有形式的客户端设备 (PC、WBT、掌上电脑、无线终端等) 都可访问服务器上的最新程序。而且网络中传输的仅是用户界面以及键盘、鼠标动作和屏幕更新信息, 系统的安全性更好。
ICA结构既承袭了C/S结构的软件资源和用户经验, 又进一步发挥了B/S结构的集中控管优势。它通过设置应用服务器Meta Frame, 将关键性的业务软件集中安装并发布, 客户端可完全在服务器上执行所需的应用。这使它可最大限度地利用网络资源, 改进网络性能, 提高网络的可管理性、可维护性、扩展性及安全性。尤其在网络远程实时数据的传输、管理、办公及安全性方面, 它克服了常规的C/S模式的不尽人意之处。目前, Citrix解决方案已被全球超过10万的用户采纳, 其中包括世界财富100强的所有企业和公司, 世界财富500强的企业中亦有85%选用Citrix的产品。
实际上, ICA结构类似于Windows中的远程桌面, 不过它通过ICA协议使其性能大为提升。ICA协议可在多种操作系统下使用, 且能映射驱动器, 实现真彩、远程终端, 是一个优秀的终端协议。但该协议的终端软件价格不菲, 使其应用受到一定限制。另外, 其软件系统的安装调试也较繁琐, 尤其是较差的中文兼容性, 进一步阻碍了它在国内市场的发展。
尽管ICA结构在商业上取得了巨大成功, 但它并未很好地集成C/S结构和B/S结构的优点, 使之不能代表软件结构的发展方向。如何能够利用强大的本地资源 (处理器资源和存储器资源) 在保留C/S结构的快速交互能力、大数据处理能力的同时, 又能利用宽带网络 (网络带宽资源) 在互联网上像B/S结构一样进行畅通高效的部署、更新和交互, 这就为主流的应用厂商提出了新挑战。
2.2 智能客户端
智能客户端的概念作为Microsoft.net平台的一个特性被提出, 其实它的很多功能在传统的应用程序中早已存在, 只是.NET平台从系统和语言级别对它提供了支持, 使开发智能客户端应用程序更为便捷。按照微软的描述, 智能客户端是一个可扩展的、能集成不同应用的桌面应用程序。它具有以下特征:
(1) 无接触部署:安装时只要将一个主程序文件下载到本地, 直接运行即可, 无须改变注册表或共享的系统组件, 其他应用组件将在第一次运行时自动下载。
(2) 自动更新:只需将新版本的程序发布在服务器上, 由客户端自动发现最新版本的程序和应用组件, 并自动下载和更新。
(3) 离线运用:允许在脱离服务器的状态下利用本地的客户端程序和应用组件进行工作。
(4) 动态加载应用组件:应用软件开发商可根据企业应用系统的公共接口进行开发, 然后将应用组件发布在企业的服务器上, 客户端应用程序将自动发现并加载该应用组件。
(5) 个性化用户界面:用户可根据喜好自行设置客户端应用程序, 配置信息将被保存到服务器上。
显然, 能具备上述特征的客户端程序是一个比较理想和“智能”的程序, 这正是微软极力倡导的原因所在。然而, 时至今日, 智能客户端技术仍然停留在概念层次上。尽管微软在.NET平台中为这一技术的实施付诸了极大的努力, 但仍未取得理想的进展, 其中的原因是多方面的。由此看来, 智能客户端技术的成熟还有待时日。
3 SOA与体系结构的发展趋势
近年来, 面向服务的架构 (Service Oriented Architecture, SOA) 在IT业界被炒得如火如荼。什么是SOA?如何实现SOA?在某些媒体上, 一些人将其吹得神乎其神, 让原本清晰的概念思想复杂化、神秘化。按笔者的理解, SOA就是按应用所需, 动态灵活地搭建应用软件平台。
要构建这样理想的软件体系结构就必须有大量丰富的软件构件支持, 及一套公认的构件开发设计标准制约。这好比建造一台机器, 我们不必自己制造每一个零部件, 购买通用标准的零部件来使用即可。SOA借鉴了传统制造业和建筑业的经验, 致力于创建一个可以互换的基于构件组装的软件体系结构。软件构件化将真正解决长期困扰软件行业的软件复用难题, 从而提高软件生产率, 降低生产成本。软件业过渡到这种生产方式, 将会实现软件行业前所未有的跨越式发展。SOA技术的成熟将标志着软件生产工厂化时代的到来。
构件也称组件、中间件, 构件技术是实现SOA的关键。组成SOA的构件必须具有已知的、良好定义的接口, 可以被其它的软件使用;应该具备良好的安全性和健壮性, 使调用者可以放心使用。同时, 构件应做成松耦合、粗粒度, 达到二进制的低层兼容, 接口标准应规范化、明文化, 最好能制定统一的国际标准 (或国家级标准) , 以实现构件的平台无关性 (非X86计算机体系另当别论) 。
基于构件技术提供网络服务是SOA的重要思想起源。在SOA体系结构中, 流动的是构件, 而不是已经集成在一起的整个系统软件。用户选择一款软件, 一般都有定制的要求, 尤其是系统管理软件, 如ERP、CRM等。把软件的各个功能模块做成可供选择的构件, 用户就有了更为灵活的选择。同时也避免了传统的牵一发而动全身的弊病, 构件可以独立地实现、升级, 而不会影响系统整体。
构件的集成是SOA技术的核心。单纯的机器零件集中的在一起是不会产生任何功能的, 只有将它们按某种方式组合在一个载体上, 才会发挥效能。应用软件体系如同机器设备一样种类繁多, 我们可以将不同的应用服务设计成各式各样的“模式”, 作为承载构件的载体。模式应具备良好的可扩充性能, 以满足服务需求的不断膨胀和变化。模式也可做成构件, 即构件之中嵌套构件, 对于某些应用服务这是完全可能的。但模式的个性化, 特别是其可扩充性要求, 是实现完全构件化的技术的难题。
目前, SOA的发展仍然存在着标准化、安全、服务粒度、企业管理等方面的不足。其中标准化不足是制约SOA发展的重要因素。Web服务是实现SOA最好的方式, 但Web服务本身还有很多不成熟的方面。除了SOAP和WSDL相对成熟外, 在可靠消息传递、安全Web服务、Web事务处理等方面的标准还有待完善, UDDI、eb XML、UBL等在定义业务方面都还需要走很长的路。尽管如此, SOA作为新一代的软件构架, 将会给软件产业带来革命性的变化。在计算机技术的发展历程中, 许多技术 (如CPU中的指令流水线技术) 都借鉴传统制造业的经验, SOA理念无疑代表目前软件体系结构最先进的思想。
在SOA时代, 任何一个大的应用软件系统, 都不再由一个软件开发商独立完成, 而是由不同厂商生产的基于基础标准和接口的中间件相互协作完成。到时会出现各种消息通信、内容管理系统、工作流引擎, 身份认证提供者、整合应用和门户服务器等不同类型的中间件厂商。随着SOA的标准化, 每种中间件的生产厂商的数量会逐渐减少。每个厂商也只会专注于一种或几种中间件, 以努力提高中间件性能和质量。从软件产业总体上看, 这种趋势将降低软件开发成本, 提高软件质量, 大大减少目前各软件厂商之间相同软件部分重复开发的问题。
参考文献
[1]程伍端.客户端/服务器体系结构的应用与发展[J].电脑知识与技术, 2005 (12) .
[2]吴家菊.基于Web服务的面向服务 (SOA) 架构研究[J].现代电子技术, 2005 (14) .
[3][美]David Chappell, Tyler Jewell.Java Web Services[M].O’Reilly Press, Mar2002.
客户端/服务器结构 篇5
新闻组服务是Internet上与WWW(HTTP)、E-Mail(SMTP、POP3)与FTP(FTP)齐名的四大网络信其对应的英文名称是Newsgroups,该服务使用的网络协议是NNTP(Network News Transfer Protocol),逻辑端口号为119,
(1)新闻组的起源
新闻组是由世界范围的计算机组成的共享新闻和邮件的国际化网络。新闻组的英文名称为Usenet或NewsGroup,起源于北卡罗林娜,1980年,两个学生(Tom Trusctt 和James Ellis)在几台UNIX计算机上生成第一版Usenet,它能在一天之内通过一种称之为UUCP(Unix-to-unix Copy)的网络协议,将大批文章从一台计算机传到另一台上。几年之内,这种Usenet的改良版本被推广到了其它几所大学和几家软件公司之中。接下来的几年里,Usenet得到迅猛传播,其信息量也从1983年的每天几百篇文章增加到现在的每天几万条,其主题已经涵盖了人类社会所能涉及到的所有内容,如科学技术、人文社会、地理历史、休闲娱乐等,无论我们有什么样的问题,都可以发送到新闻组上,届时会有成千上万的人和我们讨论这一问题,帮助我们找到最好的解决方法。 新闻组最初的方向是用于支持计算机方面的疑问与解答,但是到了2 0世纪8 0年代后期,不同的新闻组,也就是讨论方向,已经发展到了将近一千个。
简单的说新闻组是一个可以离线浏览的论坛,当在线时候可以把新闻组里面的帖子先接收到自己的电脑中,断线后仍旧可以阅读。新闻组出现于1980年美国北卡罗来纳州。它是一个基于网络的计算机的组合,这些计算机就是新闻服务器,新闻组用户通过新闻组客户端软件就可以连接到新闻服务器上,下载阅读其他人发上去的帖子并可以进行回复和讨论。它和我们现在使用的论坛差不多,不过它是不需要进行注册的,是任何一个网络用户都能进行相互交流的平台。 新闻组服客户端程序是按分类组织各个新闻分组的,接收由用户直接发送到服务器上的帖子,发送的帖子可以带有背景图案或音频,还可以附加各类文档、程序,以及图形、图像和多媒体内容等。新闻组还可以周期性地与相邻的其他新闻组服务器交换内容,采用这种接力传送的方法就可以获得各个新闻组服务器上的内容,再将所获得的内容定期保存于相应的新闻分组中,过期的帖子则由系统自动删除掉。在国外,该技术被广泛用于提供免费资源,中国通过该技术提供收费资源则相对较少。NNTP需要设置一台或多台中心新闻服务器,用来保留所有的新闻文章,服务器端可以设置不同的新闻组对新闻信息加以分类,用户端根据所订阅的新闻组与服务器端进行数据同步,接收到的稿件根据新闻组的分类规则对所属信息进行层次化展示,便于信息查找。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。
(2)与其他网络应用的对比
新闻组的实时性没有论坛好,但是客户端不必登录到服务器,安全性相对要好;另外它新闻组可以离线浏览,这在论坛中是不可能的。新闻组和电子邮件相比:电子邮件保存在客户端,只有收件人能够查看和保存,而 新闻组存储在服务器端,可以随时查阅,
新闻组和文档相比,新闻组的优越性在于时效性和便于沟通,文档的优越性在于条理性和归档保存。每个新闻组都具有鲜明的主题。这和Web不同,虽然Web的网页做得越来越精致、越来越美观,但大多数时间只是从一个页面转到另一个页面,漫无头绪,而且由于图片、广告条的影响,Web的传输速度太慢。而新闻组则不同,每个新闻组只要看它的命名就能清楚它的主题,所以我们在使用新闻组时其主题更加明确,往往能够一步到位,而且新闻组的数据传输速度与网页相比则要快许多。
(3)新闻组的组成结构
新闻组的组成结构呈树状等级结构,通常是根据讨论的主题或类型分类的。比如说,Linux新闻组通常被安排在alt.os、comp.os.l i n u x或者l i n u x主题下。可以看出,关于Linux操作系统的一些诸如设置、硬件或者X 11 等讨论问题都被安排在计算机D操作系统DL i n u x的主题下。还会发现许多其他的讨论问题也是按照这个方法组织安排的。虽然没有什么可以保证能够准确地找到正想查找的讨论问题,但是在大多数情况下你还是可以很容易地找到一个讨论你感兴趣的问题的新闻组的。目前已经出现有几十种不同的新闻组客户端软件传输程序和新闻阅读器程序,还有超过十万个不同的新闻组。所有新闻阅读器程序都能够提供下列这些基本的功能:
1. 订阅或停止订阅某个新闻组。
2. 浏览消息并阅读后续消息(线索)。
3. 直接向消息的作者回复一个邮件消息。
4. 针对某个新闻组上的消息发布后续评论。
5. 保存某个消息的内容(通常保存在用户子目录中名为News的子目录中)。
二、新闻组服务器和客户端的工作原理
首先是新闻发布流程见图1:
1. 客户端使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,要求发布新闻组文章。
2. 新闻组服务器对客户端用户进行身份认证,确定客户端是否有发布新闻组文章权限。
3. 通过身份认证后客户端就可以登录新闻组服务器。
4. 新闻组服务器的新闻发布控制端检查文章,新闻发布控制端拒绝的文章将丢弃,新闻发布控制端接受的文章将发布和存储。
客户端查看新闻组文章流程见图2:
图2 查看新闻组流程
1. 客户端使用新闻组软件(浏览器等)通过TCP 119端口向服务器组服务器发送请求,要求提供新闻组文章列表。
2. 新闻组服务器对客户端用户进行身份认证,确定客户端是否有阅读新闻组文章列表权限。
3. 通过身份认证后客户端就可以登录新闻组服务器。
4. 新闻组服务器向客户端转送新闻组文章列表。
5. 客户端再次使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,从新闻组文章列表中列出希望查看的文章。
6. 新闻组服务器对客户端用户进行二次身份认证,确定客户端是否有阅读文章的权限。
7. 通过身份认证后客户端就可以登录新闻组服务器。
8. 新闻组服务器向客户端转送允许阅读新闻组文章。
航运企业客户信用管理组织结构 篇6
关键词:航运; 客户信用管理; 组织结构; 风险
中图分类号:F830; TP183文献标志码:A
Organization structure for customer credit management
in shipping companies
DING Yizhong
(Academy of Science & Technology, Shanghai Maritime Univ., Shanghai 200135, China)
Abstract: In view of the problem that the customer credit risk is difficult to be controlled under the existing organization structure for customer credit managementand the lack of customer credit has resulted in huge economic loss in some shipping companies, an improved organization structure is proposed by the help of the diagnoses of the existing organization structure for customer credit management in the shipping companies, based on the management principles. The structure is a kind of rectangle structure in which the management is implemented throughout the whole work process. It has the characteristics of multi-node control, entire-process observation and feedback ahead of time. Cases show that the improved organization structure is superior to the old one and is efficient in controlling the customer credit risk in shipping companies.
Key words: shipping;customer credit management; organization structure; risk
0 引 言
航运业是国际贸易发展的助推器,是各国发展外向型经济的主导因素之一,全世界约90%的货物贸易依靠海运.然而,我国航运企业客户信用缺失现象十分严重.一些航运企业存在大额逾期应收账款,由于客户信用问题造成的损失每年高达数千万甚至上亿元,其中一部分已变成呆账、坏账,给企业的正常经营造成极大困难.
国内外学者对信用问题已有许多研究,自1936年FISHER[1]提出判别模型后,客户信用管理理论与应用研究日益受到关注.当前,信用评估的方法主要有统计方法和人工智能方法.其中,统计方法包括单变量评定法、判别分析法、回归法和分类树法等;人工智能方法包括专家系统、神经网络和遗传算法等.ODOM等[2]首次将神经网络方法引入信用风险评测;YANG等[3]利用概率神经网络(PNN)技术建立公司破产预警模型,经实证研究发现,其预测准确率为66%~74%;NATH等[4]、FERAUD等[5]和CASTILLO等[6]发现当数据缺乏时,人工神经网络无法发挥其优势,但遗传算法效果良好;吴德胜等[7]提出遗传算法辅助网络训练策略,建立商业企业的信用评估模型,其准确率达83%;谭朝阳等[8]分析航运企业信用风险产生的原因和信用管理现状;袁雁[9]分析航运企业信用管理存在的问题,提出用5C定性分析方法对客户进行信用评估;杨华龙等[10]研究航运企业分别在事前、事中和事后进行客户信用管理的对策.
现有的客户信用研究存在以下问题:(1)从研究对象看,当前的相关研究主要集中于银行客户、上市公司和风险投资企业等的信用评估方面,关于航运企业客户信用问题的研究很少;(2)从研究内容看,当前的相关研究主要集中在客户信用的评价指标和评价方法方面,未见对信用管理组织结构的研究.
合理的组织结构是进行高效、敏捷管理的基础.现有的航运企业客户信用管理存在的许多问题与缺乏高效合理的组织结构密切相关.同时,由于航运企业客户与银行客户相比具有高分散、高风险、不规范和信息不对称等特点,因此,航运企业客户信用管理组织结构有其特殊性,对航运企业客户管理组织机制的研究十分必要.1 航运企业客户信用管理组织结构的现状诊断航运企业客户信用管理缺失的重要原因是组织结构不健全.一些航运企业缺乏专门的客户信用管理组织机构,常常是出现问题后临时指定人员解决,比较被动.还有一些航运企业虽然设有客户信用管理机构,但是组织结构不完善.现有的航运企业客户信用管理组织结构见图1.图中,实线部分表示客户信用管理组织结构的上下层关系,虚线部分表示客户信用信息的流通方向.
图1中,客户信用管理小组设在结算部内,通过结算部获得客户应收账款的事后信息后,将信息汇报给上级主管——财务部,由财务部汇报给主管副总经理,副总经理再将信息通知业务部与法务部以便采取相应措施.这种组织结构的优点是易于执行统一决策,但也有明显弱点[11],即层次较多、响应较慢.由于直线职能型结构层次较多,客户信用管理小组无法根据获得的客户信息在第一时间采取行动,而是层层上报等待指令.从客户信用管理小组获得间接信息至采取催讨欠款行动,须经过两级领导上报,再经过两级领导下传指令才能行使职能,响应较慢,往往延误时机,难以发挥客户信用管理小组的积极性.
现有的客户信用管理信息沟通渠道可能导致决策延误. 在客户信用管理中,及时采取行动至关重要,而信息流动的行程决定其所需的时间.由于直线职能型结构通常采用集权决策模式,往往延长信息行程,增加信息传递时间,导致决策延误.[11] 由图1可见,现有的信用管理组织结构采用单路径信息通道,路径较长,无法及时获取和控制多渠道信息,信息滞后,难以进行及时有效决策.
现有的信用管理的控制方式是事后控制. 现有的客户信用管理小组的主要工作是对应收账款进行跟踪和管理,及时了解应收账款情况并进行催账.这种管理功能以被动的事后催讨欠款为主,控制方式为单节点、单环节的事后控制.
哈罗德·孔茨等[12]指出,管理控制有时滞,以单一系统的输出作为控制手段会产生问题.如果要进行有效控制,必须采取前馈控制,即根据最新获得的信息估计未来可能出现的信用风险,并事先采取措施控制风险,如根据客户的异常表现进行预警.同时,鉴于客户信息管理的高风险和高不确定性特点,有必要对关键节点进行重点控制或全程控制,如对提单发放等关键点进行重点控制.2 改进后的航运企业客户信用管理组织结构航运企业客户具有高分散、高风险、不规范和信息不对称等特点,大量非协议客户不同程度地存在经营风险大、规模小、注册资金少以及财务报表不规范等问题,且不少是“一次性”客户,难以掌握其相关信息.为此,航运企业需要建立全方位观测、操作规范且反应敏捷的客户信用管理机制,从不同环节观察与汇集客户信息,及时发现风险并采取措施,将风险降低到最小程度.
一些管理先进的航运企业对客户信用管理组织结构进行改进.本文在此基础上,提出航运企业客户信用管理组织结构的改进方案,见图2.
图2中,实线部分表示客户信用管理组织结构的上下层关系,虚线部分表示客户信用信息的流通方向.
改进后的客户信用管理组织结构有以下特点:
(1)改进后的客户信用管理组织结构为矩形制结构. 矩形制结构是在原有的直线职能制结构基础上建立横向的组织系统,二者结合形成矩阵.[11]该结构中,客户信用管理小组由财务人员、业务人员和法务人员组成,分别接受财务部、业务部和法务部这3个纵向职能部门的领导,同时,也接受横向客户信用管理小组的领导.
(2)矩形制结构减少客户信用管理的层次,提高管理效率. 在矩形制结构中,客户信用管理小组的监督工作由副总经理或总经理助理负责,发现问题直接上报到最高管理层,而管理层的决定直接下达到小组实施,其沟通方式从逐级上报、逐级下达转变为直接上报、直接下达,减少信用管理层次,保证工作迅速、有效地进行.另外,矩形制结构容易产生多重领导的问题,可以通过副总经理协调加以解决.
(3)改进后的客户信用管理组织结构的信息沟通渠道更加快捷、全面. 由图2可见,矩形制结构加强职能部门的横向联系,采用多环节、多路径的信息通道.客户信用管理小组的成员来自不同部门,通过销售部、代理部、单证部和结算部等多个部门获得客户信用的动态信息,并在信用管理小组内集成,直接上报副总经理.上级决策也直接下达到客户信用管理小组,缩短信息行程.可见,改进后的客户信用管理组织结构可实现直接、短程、快速和多渠道的信息传递.
(4)改进后的客户信用管理从单节点控制转为多方位、多节点控制. 客户信用管理小组从结算部分离出来,成为相对独立的工作小组,人员组成也从结算部单部门参与转变为财务人员、业务人员和法务人员多方位参与,便于对签约、提单发放、跟踪支付以及催讨欠款等多节点进行控制.
(5)改进后的客户信用管理从个别环节的事后控制转为全流程的事前反馈. 改进后的客户管理从事后的财务管理转变为“签约前”、“履约中”和“终止合作后”的全流程事前客户信用管理,即对全程进行严格监督与管理.在“签约前”,销售人员上门了解潜在客户的基本情况、公司背景、业务规模、人员构成以及行业声誉等,客户信用管理小组进行客户信用评估,确定付款方式及今后的管理重点;在“履约中”,动态跟踪客户的履约情况,主要观察箱量情况和支付情况是否出现异动,并及时采取应对方案;在与客户“终止合作后”,要做好善后工作,由结算部门统计未结欠款,让客户尽快清偿,必要时可采取法律手段.
可见,改进后的组织结构更利于实现敏捷、高效的客户信用管理,有效避免信用风险.改进前、后的组织结构比较见表1.
3 案 例
3.1 案例1
A公司采用图1所示的改进前的客户信用管理组织结构.结算部发现客户C公司账户透支,累计欠款金额达人民币5.34万元. 同销售人员上门拜访,发现C公司已经停业,根本无从追讨,只得将欠款作坏账处理.
A公司事后总结,认为本案管理失败的原因是:(1)现有的组织结构反应太慢,如果能及早上门拜访,也许可以追回欠款;(2)控制节点过于单一,等到结算时才发现问题.如果签约前了解潜在客户的背景和状态,签约后动态跟踪客户的变化,由法务部、业务部等多个部门通过多渠道进行监督与控制,就能及早发现问题并采取措施.
A公司后来改进客户信用管理组织结构,采用图2所示的结构,有效减少客户欠账、赖账现象.
3.2 案例2
B公司采用图2所示的改进后的客户信用管理组织结构,客户信用管理小组由财务人员、业务人员和法务人员组成.箱量情况主要由业务部对口销售人员进行跟踪,一旦发生箱量异动(即出运箱量突然大幅增加、减少或者实际出运箱量与协议承诺箱量差距过大),销售人员立即上门拜访客户,了解原因,并针对不同情况采取相应措施,及时调整公司的应对方案.
B公司的某个客户在协议中承诺订舱箱量月均达到300 TEU,结算期为船舶开航后45 d.3个月后,B公司发现这家客户的实际订舱箱量与承诺箱量相差较多,销售人员上门了解到由于客观原因,该客户不可能达到承诺箱量.鉴于此,B公司通知客户恢复30 d结算.由于协议约定明确,客户心平气和地接受这样的安排,B公司降低了经营风险.
客户支付情况主要由结算部门进行跟踪.在发生支付异动(即银行未按约定期限付款)时,财务人员与客户财务部门联系,确定付款方式,必要时暂扣提单.如客户未及时清偿欠款,信用管理小组和销售人员上门拜访,了解支付异动的原因,与客户确定还款步骤.信用管理小组监督客户履行还款计划,如果客户不能按时还款,可采取法律手段追讨欠款.
4 结 论
合理的组织结构是进行高效、敏捷的信用管理的基础.航运企业客户具有高分散、高风险、不规范和信息不对称等特点,现有的航运企业客户信用管理组织结构难以有效控制客户信用风险.本文在总结航运企业经验的基础上,提炼出多方位参与、贯穿整个业务环节、操作流程规范且反应敏捷的矩形制航运企业客户信用管理组织结构,为航运企业完善客户信用管理
提供参考.
参考文献:
[1]FISHER R A. The use of multiple measurements in taxonomic problems[J]. Ann of Eugenics, 1936(7): 179-188.
[2]ODOM M D, SHARDA R. A neural network model for bankruptcy prediction[C] // Proc IEEE International Joint Conference on Neural Networks, San Diego, CA, USA: IEEE Proceedings, 1990: 163-168.
[3]YANG Z R, PLATT M B, PLATT H D. Probabilistic neural networks in bankruptcy prediction[J]. J Business Res, 1999, 44(2): 67-74.
[4]NATH R, RAJAGOPALAN B, RYKER R. Determining the saliency of input variables in neural network classifiers[J]. Comp & Operations Res, 1997, 24(8): 767-773.
[5]FERAUD R, CLEROT F. A methodology to explain neural network classification[J]. Neural Networks, 2002, 15(2): 237-246.
[6]CASTILLO F, MARSHALL K, GREEN J, et al. A methodology for combining symbolic regression and design of experiments to improve empirical model building[C] // Genetic and Evolutionary Computation Conference, Heidelberg: Springer Berlin, 2003: 1975-1985.
[7]吴德胜, 梁NB24F. 遗传算法优化神经网络及信用评价研究[J]. 中国管理科学, 2004, 12(1): 68-74.
[8]谭朝阳, 江建达, 高凯. 航运企业信用管理的成因及对策[J]. 天津航海, 2002(4): 23-25.
[9]袁雁. 航运企业信用管理问题研究[D]. 大连: 大连海事大学, 2003.
[10]杨华龙, 张建, 计红梅. 航运企业信用管理[J]. 世界海运, 2004, 27(1): 35-37.
[11]郁义鸿. 精巧的组织艺术——现代企业组织架构挥略[M]. 上海: 上海译文出版社, 1994: 38-48.
客户端/服务器结构 篇7
大部分网络协议的实现都由客户端(Client)和服务器端(Server)来协作完成。这种模型本质上涉及两个不同的程序,通常这两个程序在不同机器上运行。这些机器之间都有网络连接。服务器端程序提供服务并对来自客户程序的请求作成响应。而客户端程序则是在使用者和服务器端程序之间建立某种沟通的渠道,或者是作为使用服务器端提供的某种网络服务的工具。
一个典型的服务器与客户机之间的交互可能如下所示:
1)客户机提出一个请求;
2)服务器收到客户机的请求,进行分析处理;
3)服务器将运行处理的结果返回给客户机。
通常一个服务器需要向多个客户机提供服务。因此对服务器来说,还需要考虑如何有效地处理多个客户的请求。
2 服务器与客户端的Socket通信类型
Socket的连接类型可以分为两种,分别是面向连接的字节流类型(Sock_stream)和面向无连接数据报类型(Sock_dgram)。
面向无连接数据报类型的Socket工作流程比较简单,双方不需要进行太多的沟通与交互。客户机直接将用户的请求打包发送到服务器端,省略了建立一个固定信息通道的过程。服务器端也是直接将处理的结果发送给客户端。每个发送的数据报都携带有传递所需要的所有地址信息。其工作流程如图1所示。
面向连接的字节流类型的Socket工作中有比较严格的操作次序,工作的原理也比较复杂。在这种类型的Socket的工作过程中,必须首先启动服务器端,通过调用socket()函数建立一个Socket对象,然后调用Bind()函数将该Socket对象和本地网络地址绑定到一起。再调用Listen()函数使该Socket对象处于侦听状态,并规定它的最大请求的数量。其工作流程如图2所示。
总的来说,无连接和面向连接的通信方式各有长处和短处。在仅仅涉及少量的信息传递的场合可以使用无连接操作;如果涉及大量信息传递的场合可以采用面向连接操作。
3 Delphi的Socket组件
3.1 Delphi中Socket的操作方式
根据连接发起的方式以及本地Socket要连接的目标,Socket之间的连接可以分为:客户端连接、监听连接以及服务器端连接。
Delphi分别使用Client Socket组件和Server Socket组件来操纵客户端Socket和服务器端Socket的连接和通信。Client Socket组件为客户端组件。它是通信的请求方,也就是说,它是主动地与服务器端建立连接。Server Socket组件为服务器端组件。它是通信的响应方,也就是说,它的动作是监听以及被动接受客户端的连接请求,并对请求进行回复。Server Socket组件可以同时接受一个或多个Client Socket组件的连接请求,并与每个Client Socket组件建立单独的连接,进行单独的通信。
3.2 Server Socket的属性设置
·Port是通信的端口,必须设置。在本文实例中设置为95;
·Server Type服务器端读写信息类型,设置为st Thread Blocking表示异步读写信息,本文实例中采用这种方式。
·Thread Cache Size,客户端的最大连接数,就是服务器端最多允许多少客户端同时连接。本文实例采用默认值10。
3.3 Client Socket的属性
·Port,是通信的端口,必须与服务器端的设置相同。否则可能导致两个组件发送的目标端口和接收的端口不一致,无法建立有效的信息传送连接。
·Client Type,客户端读写信息类型,应该与服务器端的设置相同,为ct Non Blocking表示异步读写信息.
·Host,客户端要连接的服务器的ip地址。必须设置,当然也可以在代码中动态设置。
4 应用实例
4.1 设计思路
实例包括一个服务器端程序与一个客户端程序。客户端程序可以放到多个计算机上运行,同时与服务器端进行连接通信。
服务器程序实现以下基本功能:1)在用户登录的时候记录用户登录所在主机的IP、主机名称等;2)显示当前在线用户数量;3)可对当前在线用户执行注销、重启、关机等操作。
客户端程序实现一些基本功能:1)显示当前程序的工作状况;2)实现服务器端发送的注销、重启、关机的操作。
4.2 程序说明
根据功能的实际需要,服务端程序一运行,窗体的String Grid控件就显示已在线用户的基本信息。
代码如下:
在窗体上,“执行”按钮的Click事件负责向指定的在线用户或全体在线用户发送注销、重启、关机操作指令。
客户端程序通过通信端口接收指令,并做出响应,弹出关机提示对话框,如需要继续使用计算机的在线用户,可点击“取消”按钮。
5 结束语
综上所述,Socket组件相比其它高级协议组件如Fast Net组件,它的封装层次较低,程序员可以在它们的基础上自己定义新的高级协议或者是规定自己的信息交互流程。利用以上代码,进一步拓展的余地也很大,还可以加入一些更细化的功能,如局域网在线聊天、点对点传输文件等。
摘要:介绍有关网络客户服务模型的socket通信应用,采用delphi中对Windows API进行了完美封装的套接字组件,设计了一个实现面向连接的通信方式的实际例子,说明两者是如何进行通信。
关键词:socket,delphi,通信,客户端,服务器端
参考文献
[1]赵秀英.Delphi网络高级编程[M].北京:人民邮电出版社?,2001.83-85.
[2]申普兵,行明顺,王兆祥,等.计算机网络与通信[M].北京:人民邮电出版社,2006.9-11.
[3]王丰锦,邵新宇.基于SOCKET和多线程的应用程序间通信技术的研究[J].计算机应用,2000,20(6):65-67.
[4]谢希仁.计算机网络[M].第4版.北京:电子工业出版社,2003.100-113.
[5]计世网.统一通信的五大技术热点[EB/OL].http://tech.c114.net/166/a275630.html.
[6]谢安明,邵美珍.使用Socket设计网络通讯程序[EB/OL].http://www.cnki.com.cn/Article/CJFD2001-XXGC200101019.htm.
客户端/服务器结构 篇8
(一)存款客户年龄结构分析
该行各项存款余额190亿元,市场占有率39%。存款客户数为113.35万户。其中,活期存款客户数112.98万户,存款余额84.03亿元;定期存款客户3.62万户,存款余额41.24亿元。
(单位:万户、亿元)
由上述数据显示,从年龄上看,该行存款客户结构以20-40岁客户居多,存在年轻客户偏少,60岁以上的老龄客户占比略高,客户综合发展潜力不足。同时,在定期存款中,中老年客户存在明显偏高。
(二)贷款客户年龄结构分析
全行各项贷款余额151亿元,市场占有率24.26%。其中,贷款客户数为10.30万户,10万以下贷款户数为8.39万户,占贷款户数81.40%。
(单位:户、万元)
由于贷款客户具有年龄限制,超低年龄或超高年龄的客户只占极少部分,94.57%的客户分布在25-59岁区间。该年龄段的客户正值青壮年时期,表明该行贷款客户结构较为合理,同时40岁以上客户明显多于25-39岁客户,表明客户群体呈现成熟。
(三)电子银行客户年龄结构分析
1、网银及手机银行业务情况分析。该行个人网银15.19万户、企业网银4081户、手机银行10.25万户,分别较年增1.67万户、809户、2.7万户,保持较高的增幅和发展态势。
(单位:户)
从上表可以看出,该行网银、手机银行客户年龄结构以25-39岁为主要客户群体,其中手机银行的比例更高,相比网银更显年轻化。从增长情况来看,手机银行因其便捷性深受客户喜爱,客户数成倍增长,明显高于网银的增长客户数。较上年同期相比,24岁以下的网银客户占比快速增长。
ATM、POS、网上银行、手机银行等主要电子交易笔数分别为110.93万、20.27万、16.68万、12.13万,主要电子交易笔数替代率达71.45%。
2、贷记卡业务情况分析。全行贷记卡发卡量86032张,其中公务卡2119张,个人卡83913张,较年初新增发卡1344张。从贷记卡客户的使用情况看,25-39岁的客户群体最庞大,体现年轻客户群体强烈的消费需求;40-59岁的客户群体授信金额最高,与该群体客户拥有财富相匹配。(详见表五)
(单位:户、万元)
(单位:户)
(四)传统中间业务客户年龄结构分析:签约的水费代扣户数42766户、电费代扣户数59972户、电话费客户1647户、一户通客户4749户、批量代付客户269749户。以上客户年龄分布详见列表。
从中间业务的使用情况看,40~59岁的客户群体最庞大,中年客户具有的较好的业务关联;25~39岁的业务关联相对较少,成长性不够。
二、加强农信客户经营管理遵循的原则
1.以满足市场需求为原则。建设农信客户群体,要“以市场为导向,以客户为中心”,模式的改变和产品的设计要始终把握市场的切入点,真正了解客户实际需求,在设计产品的时候要以客户的角度出发,加强优质客户、潜力(年轻)客户的拓展力度,以满足客户需求为最大前提,让产品具有较大的竞争优势。
2.以紧跟发展趋势为原则。当前互联网金融方兴未艾,金融服务新模式和支付结算技术日新月异,目前农信网点机构多为地方性银行,要紧跟时代和信息化发展趋势,在客户经营方面要加强互联网和信息化金融服务方面的探索和创新,让客户享受更加个性化、更加便捷的金融服务,要更加注重年轻客户的服务体验。
3.以精细精准管理为原则。加强客户经营管理,要从粗放型管理向精细化管理转变,要加强科技支撑,强化数据对客户信息、交易行为,产品利润等方面的分析运用,通过精准化营销管理,对客户群体建设进行长远规划。
三、加强农信客户经营管理的建议
(一)坚持多元开发,实施普惠发展战略。
农信机构具有庞大的客户群体,客户种类多,服务覆盖广,这是农信发展的天然优势,也是基础优势,加强农信客户经营管理,要坚持普惠发展战略,做精做细农村市场,大力发展普惠金融,推进增户扩面,提升与农户关联度,巩固和优化现有客户群体,做到农村市场“寸土不让”。
1.做大基础客户。做大基础客户群体是农信,也是客户分层维护的基础工作,根据客户年龄结构分析,要紧密结合市场和客户的需求,加强对基础客户的分类管理。一是加强基础客户服务。利用我行交易渠道优势,如借记卡“五免”手续费、网银转账免手续费及支付宝卡通等产品优势开展针对性营销,为客户提供方便快捷、优质专业的金融服务,通过中间业务的组合营销,对水电费代扣、ETC等各类民生业务代扣代缴进行组合代理,推出“商通套餐”、“省心套餐”、“学子套餐”等业务套餐,打造账户“一卡通”,有效提高普通客户的账户关联度,稳定基础客户群。二是挖掘基础客户潜力。对于目前贡献度较小,但具备向上延伸的潜力客户,利用低端客户的议价能力不强的特点,针对不同的目标客户,采取有竞争性的产品开发和营销策略,比如对劳务输出型农户、城郊农民及个体工商户、农林牧渔等涉农规模化经营大户依靠农户建档,全面掌握客户产业经营状况,加强客户评价分析,加大小额贷款支持力度,获得稳定的经营效益。
2.做强中端客户。利用让利手段和业务优势,加强客户粘性。一是加强积分管理,提高附加值服务概念。农信机构历年来为拓展新客户提供各种优惠,而对老客户的服务升级与优惠力度不够,从而客户转换到其他银行的成本偏低,导致了我行成熟型中高端客户的流失率偏高。通过加强客户积分管理,逐渐培养服务营销管理的理念,在日均存款考核的基础上增加客户开户时长、中间业务代理流量、日均存款及月末余额、网银转账频率与额度等情况的考核,增加客户的附加值积分,由此综合测算客户积分。同时让利于客户,提高积分换礼品、积分抵贷款利息的力度,达到维系与成熟型客户的牢固关系,提高客户“跳槽”成本,增强客户对我行的依赖度和忠诚度。二是有效结合市场需求,开发新业务品种。针对群体性客户特点,通过“整合包装、自主创新”,发展理财、支付结算和个人信贷产品,为客户量身打造提供个性化、多样化服务,迎合客户的需求。
3.做优高端客户。积极探索高端客户服务模式,在有条件的基础上,加强财富中心建设,面对这批客户可以推出“资深贵宾卡”、专属客户经理“一对一”服务等方式,将这部分客户定位资深贵宾客户,要加大客户经理综合能力培养,加大对客户资产管理、财富增值、理财咨询和其他附加增值服务。
(二)加强科技支撑,提升客户管理效率。
一是加强科技建设规划,开发小银行管理平台,为每项工作开发系统模块,同时要实现各模块之间的融合衔接,提升办公的协同性,将管理活动的每个系列、每个环节都置于自动程序控制之中,提升管理质量和管理效率。二是开发数据定量分析系统,数据定量分析贯穿于银行精细化管理流程的各环节,为各项工作数据化提供技术支撑,尤其是数据定量分析技术的开发与运用程度。例如,客户细分、数据定量分析系统应用。三是强化精准营销作用。可利用数据定量分析系统确定客户类别,进行分类维护,根据客户的资金流向、中间业务代理流量、大额取现频繁度、网银转账频率与额度等进行分析,对市场进行细分,培育目标客户群
(三)加强渠道生态建设,挖掘年轻客户发展潜力。
1.发行年轻群体专用银行卡。面向在校学生发行丰收才子卡、面向外来人员推广新居民卡、面向年轻消费主体发行商户联名卡、面向年轻群体发行青春主题卡等等,同时大力拓展贷记卡副卡业务开办,积极营销低龄客户贷记卡业务,培育年轻客户用卡习惯。
2.打造“年轻化”生态渠道。一是大力推广以丰收创业卡、小额贷款卡为载体的网上放贷业务;研发推广T+0网络理财业务,提供7*24小时购买和赎回服务等新兴网络业务。二是提升互联网金融的参与度。顺应金融互联网化的发展趋势,推广手机银行、网络银行、支付宝卡等新兴支付渠道,加大积分商城和线下消费模式的探索力度,建设有特色、差异化和本土化的地区特惠馆,吸引年轻客户,提高年轻客户关联度、忠诚度,减少流失。三是加强农村丰收驿站建设,将农村年轻客户群体金融、消费行为在农信服务体系中进行闭环循环。四是推进IC卡新型业务。加强市民卡、IC卡智能运用,丰富IC卡菜场买菜、餐饮吃饭、乘公交、乘出租、超市购物等线下小额付款,实现现金电子化,以提高年轻客户的使用体验。
3.面向年轻群体开展专属金融营销活动。针对在校学生开展暑期体验生招幕活动、针对青年创业推广青年创业贷款、针对贫困大学生推广助学贷款、针对大学生村官开办村官创业贷款等等。同时,加大微信等公众社交媒体应用。通过拍摄微电影、制作微信公众号等年轻人喜闻乐见的形式,加大产品、品牌形象渗透,提升年轻客户参与度。
摘要:近年来,基于客户经营的战略转型成为国内商业银行共同关注的话题,客户结构是银行经营战略的基础,良好的客户结构是银行经营战略转型和可持续发展的关键,文章以某县农商银行为例,从客户生命周期角度进行数据分析,并根据分析结果,提出相关建议以供参考。
关键词:农信客户结构,客户生命周期,多元化经营,原则
参考文献
[1]李庆萍.新形势下我国零售银行业务发展探析[J].银行家,2011(10)
[2]任律颖.谈“长尾效应”与发展大众零售银行服务[J].浙江金融,2010(05)
[3]李瑛琦.商业银行客户关系管理研究[J].商业经济,2012(18)
[4]郭延明.农村商业银行客户关系管理问题研究[J].经营管理者,2012(08)
[5]邓军.客户关系管理系统与商业银行发展[J].金融理论与实践,2002(12)
客户端/服务器结构 篇9
集中式日志服务器在对黑客入侵进行记录、跟踪和追溯, 对各种操作系统和网络设备的帐号进行审计 (1) ;留存系统运行状况和设备故障信息等方面都发挥非常重要的作用 (2) 。如果不能解决采集各种操作系统和网络设备日志客户端的配置方法问题, 就不能系统而全面地保留各种操作系统和网络设备产生的日志, 同时如何在基本不对系统运行造成影响的情况下, 能对操作系统的帐号操作行为进行记录也没有现成的解决方案。
2 日志服务器架构设置
日志服务器中采用syslog-ng作为日志接收和记录的工具便于进行各种设备操作系统日志的分拣和管理。而在日志系统客户端, 对使用syslog-ng作为日志工具的系统, 每个系统分配不同的udp端口;对只使用udp 514端口的设备, 不分配专用端口。这样, 服务器生成按照设备文件-->年文件夹-->月文件夹-->auth.log、user.log和cron.log等日志文件。
3 日志服务器的配置
文章在suse10操作系统日志服务器端配置如下:
(1) 在syslog.conf中添加:
SYSLOGD_PARAMS="-r-s 0"
(2) 在/etc/syslog-ng/syslog-ng.conf中加入
options{sync (0) ;time_reopen (10) ;log_fifo_size (1000) ;long_hostnames (off) ;
use_fqdn (yes) ;chain_hostnames (off) ;keep_hostname (yes) ;
stats (43200) ;create_dirs (yes) ;};
(3) 对客户端使用syslog-ng日志工具的系统, 根据端口号进行相关配置;如配置一个属主帐号test, 用户组loggroup, 系统日志文件夹名称为loggercaiji1, 使用udp6514端口号接受日志信息的配置方式如下:
该配置会在home目录的test目录中产生2中所述的日志文件样式。
(4) 对客户端只能使用udp514端口的系统, 统一采用一个文件夹存放采集到的日志。配置方式如下:
source s_514{udp (ip ("0.0.0.0") port (514) ) ;}; (destination的配置与3.3相似。)
4 客户端设备配置
4.1 AIX系统日志客户端配置方法
(1) 在/etc/profile配置如下数据
(2) 编写用户操作命令传送shell脚本其相关脚本的流程图如图1:
(3) 发送到日志服务器的历史命令格式如下:
登录帐号执行命令时的帐号命令编号执行时间操作命令;如:
test root 511 2011/07/21 16:14:14::ls
(4) 修改配置文件syslog.conf, 在其上加上如下配置语句:auth.info@日志服务器ip地址
*.emerg;*.alert;*.crit;*warning;*.notice;*.err;*.debug@日志服务器ip地址
4.2 solaris操作系统客户端配置
(1) 在/etc/syslog.conf配置:
auth.info@服务器ip地址 (用tabs键形成空格)
*.err;kern.notice;auth.notice;daemon.notice;*.emerg@日志服务器ip地址
(2) 重启syslog服务:
svcadm restart system/system-log
4.3 linux操作系统日志客户端配置方法
在/etc/syslog.conf配置:
authpriv.info@日志服务器ip地址
daemon.info@日志服务器ip地址
*.emerg;*.alert;*.crit@日志服务器ip地址
4.4 在客户端使用syslog-ng日志工具 (包括F5负载均衡器) 日志客户端配置方法
(1) 修改配置文件, 在/etc/syslog-ng/syslog-ng.conf在最后面增加:
destination d_loghost{udp ("日志IP"port (端口号) ) ;};
log{source (src) ;destination (d_loghost) ;}; (使用设备上的日志数据源)
(2) 重启日志服务
4.5 linux操作系统 (包括F5) , 用户操作命令发送到日志服务器shell脚本命令和方法 (3)
(1) 在/etc/profile下的配置如下shell命令
export USER_IP=`who-u am i 2>/dev/null|awk'{print$NF}'|sed-e's/[ () ]//g'`
export Date Time=`date+%Y-%m-%d-%H:%M:%S`
export USER=`who-u am i 2>/dev/null|awk'{print$1}'`
export HISTTIMEFORMAT="%F-%T${USER_IP}${USER}${LOGNAME}${tty}"
export HISTSIZE=100
(2) 在/etc/bash.bashrc下加入如下脚本命令:
command_history () {export infohis=`history 1`
logger"$infohis"}
export PROMPT_COMMAND=command_history
发送到日志服务器的历史命令格式如下:
命令编号执行时间登录ip登录帐号执行命令时的帐号登录端口号操作命令;如:
101 2011-07-22-11:05:47 172.31.32.169 test root/dev/pts/4 ls
4.6 winodws日志客户端配置 (4)
在C:windowssystem32目录下拷贝入日志转换作用的软件evtsys.dll和evtsys.exe。然后在DOS环境下运行:C:>evtsysi h日志服务器ip p端口号并启动服务:C:>net start evtsys;日志服务器会在daemon.log文件中留存在“本地策略”配置的各种日志信息。
4.7 华为交换机配置样例
info-center loghost日志服务器ip地址
info-center timestamp loghost no-year-date
4.8 cisco交换机配置样例
service timestamps log datetime localtime
logging on (或enable)
logging facility local7
logging日志服务器ip地址
5 结语
文章实现的集中式日志服务器及各种日志客户端配置方法在及时发现黑客入侵、分析系统运行状况和进行帐号各种行为的记录及审计等方面有非常重要的作用。编写shell脚本能记录类linux和aix各帐号在设备上的操作命令;该日志服务器和客户端配置方法已成功应用, 对IT系统日志数据的留存、查看、审计、分析和管理, 提供了一个良好的平台。
参考文献
[1]王春璞, 卢宁.搭建集中管理日志服务器技术及应用[J].科技风, 2011 (21) :130-131.
[2]陈庭平, 沈丽娟, 曾鹏.日志服务器的建设和应用[J].网络安全技术与应用2010/09:67-68.
[3]杨宁.LINUX用户登录后精确命令记录:中国[OL]2009-06-09http://blog.csdn.net/cnbird2008/article/details/4253473.
客户端/服务器结构 篇10
随着现代计算机科学技术的发展和人类信息量的增大,数据库逐步成为许多计算机信息系统和计算机应用系统的基础和核心,数据库性能的重要性也越来越引起人们的关注,由此人们研究了很多优化数据库性能的方法,同时也提出了很多评测和分析数据库性能的方法。
在现有的各类数据库性能评测标准中,最具权威性也是应用最广泛的是事务处理性能委员会TPC(Transaction Processing Performance Council)提出的TPC系列基准测试规范。TPC系列基准是现在流行的商业基准组,主要服务器和数据库企业都派代表加入了这一组织。
TPC是由数十家会员公司创建的非盈利组织,该组织对全世界开放。TPC的成员主要是计算机软硬件厂家,而非计算机用户。它的功能是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。
TPC不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)[4],也就是说测试人员可以自己遵照TPC的标准规范去设计出自己的测试程序。
TPC已经推出了四套基准程序,被称为TPC-A、TPC-B、TPC-C和TPC-D[4]。其中A和B已经过时,不再使用了。TPC-C是联机事务处理OLTP(On-Line Transaction Processing)的基准程序规范,TPC-D是决策支持(Decision Support) 的基准程序规范。因为本文的系统测试只涉及到TPC-C,所以下面的章节首先介绍一下TPC-C规范。
1 TPC-C介绍
TPC-C是专门针对联机事务处理系统的,TPC-C测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境,该应用环境描述如下:
假设有一个大型的商品批发商,它拥有W个分布在不同区域的商品仓库,每个仓库负责为10个销售点提供货物,每个销售点为3000个客户提供服务,每个客户平均发出一个订单有10项产品,所有订单中约1%的产品在其直接所属的仓库中没有存货,需要由其他区域的仓库来提供。
现假设有顾客在不同的时间、不同的地点对本销售点的货物进行访问。顾客对销售点发出订货交易指令,销售点对顾客的指令作出一定的回应,向客户发出指定的货物,同时要更新客户的账户信息。另外,销售点需要定期查询各个客户的订单情况,查询仓库内各项商品的库存情况,对于不足的商品需要进行补充。
TPC-C系统的逻辑结构图如图1所示。
销售点需要处理的交易为以下几种:
1) New-Order:客户向销售点输入一笔新的订货交易;
2) Payment:更新客户的账户余额以反映其实际支付状况;
3) Delivery:向客户发送货物;
4) Order-Status:查询客户最近交易的状态;
5) Stock-Level:查询仓库现在的库存状况,以便能够及时补充不足货物。
对于前4种类型的交易,要求响应时间在5秒以内;对于库存状况查询交易,要求响应时间在20秒以内。客户端按一定比例向数据库发送这5 种事务负载,对数据库进行更新、插入、删除等操作。规范还规定了在这5 种事务执行过程中,事务的Keying time(输入时间,允许用户在交易执行前设定的延迟时间,以真实模拟交易前用户输入数据时间)及Think time(思考时间,交易结束以后的延迟时间,以真实模拟用户做出下一步操作前的考虑时间)。其中Keying time在测试过程中基本保持常量,Think time则以负指数分布,其具体的数值如表1所示。
注:New-Order事务的最小比例不确定是因为TPCC的性能指标是由测试期间完成的New-Order数目来决定的。TPC-C的测试结果主要有两个指标来进行衡量:
1) 流量指标tpmC(Throughput) 按照TPC的规范,流量指标描述了系统在执行Payment、Order-status、Delivery、Stock-Level这四种交易的同时,每分钟可以处理多少个New-Order交易。所有交易的响应时间必须满足TPC-C测试规范的要求。 流量指标值越大越好。
2. 价格性能比Price/tpmC(Price/Performance) 即测试系统价格(指在美国的报价)与流量指标的比值。价格性能比越小越好。
2 现有测试工具存在的问题
由于TPC不给出基准程序的代码,只给出基准程序的标准规范,在选择具体的测试工具时,笔者选择了开源软件jTPCC。经过一段时间的试用和对其源码的分析,发现jTPCC在功能上符合TPC的规范要求,但在具体使用中还存在以下几个主要问题:
1) 客户端程序负载太大 在服务器上打开5个仓库,客户机模拟50个终端运行时CPU资源占用一直在60%~70%之间,内存占用30~40M;服务器打开10个仓库,客户机模拟100个终端时客户机程序基本上处于假死状态,不能对键盘和鼠标的操作作出正常的响应。如此大的资源占用在运行时造成客户端不能发出足够的指令对服务器进行访问,从而在客户端形成瓶颈,造成测试结果产生较大偏差。
2) 服务器压力不够 在客户机上模拟50个终端运行时服务器CPU资源占用在15%~20%之间,内存占用30~40M;模拟100个终端运行时服务器CPU资源占用在20%~30%之间,内存占用50~60M。如此小的服务器资源占用不足以说明服务器的实际性能。为了确定服务器端确切的资源占用情况,在客户端模拟50个终端对服务器端进行测试时,笔者又用另一个开源工具SAR记录下了服务器端的资源占用情况,记录结果如表2所示。
表2中,%user表示CPU处在用户模式下的时间百分比;%system表示CPU处在系统模式下的时间百分比;%iowait表示CPU等待输入输出完成时间的百分比;%idle表示CPU空闲时间百分比。
从表2中%idle=56.48可以看出,CPU有一半以上的时间处于空闲状态。
综上所述,必须对程序进行改进以便更加准确地进行测试,改造的主要目标有两个:
1) 降低客户端测试软件的负载,因为客户端的负载过高会影响到测试成绩的准确性;
2) 提高服务器端的压力,原软件测试时服务器有一半以上时间处于空闲状态,服务器资源占用较低说明服务器的资源未能充分有效地利用,这样测出来的结果不能说明服务器的真实性能。
另外,该软件还有一些不方便之处在于每次程序打开时都要根据自己测试机器的情况重新设置测试参数,测试的结果记录也不完善,不能记录整个测试过程的情况。所有这些情况说明需要对该软件作较大的改动,以适应我们对测试软件的要求。
3 改进方案
根据前面的分析,在测试过程中被测试的服务器有一半以上时间CPU处于空闲状态,所以首先考虑增加对服务器的压力。经过对jTPCC源代码进行分析,发现jTPCC是按照TPC-C的规范对服务器进行操作。在测试前先设置被测试服务器的仓库数和客户端模拟的Terminals数,运用多线程技术对数据库服务器进行访问。测试时每个Terminals生成一个线程,随后各个线程生成各自的随机数序列。由于在测试前已经设置好了被测试服务的各类交易所占的百分比,所以生成的随机数落在哪一个交易的比例区间里该线程就执行哪一个交易,如此往复直到所有线程测试结束。一般情况下,线程多时访问数据库服务器对服务器的压力会增大,但是线程多也有其缺陷:(1)线程多的情况下会同样给客户端带来很大的资源占用,客户端开了100个终端时系统处于假死状态就是资源消耗太多造成的;2,根据TPC-C的规范,Terminals最多只能达到100,即线程的总数是有限制的,而且把线程数目限制在了一个较小的范围。综合以上考虑,仅在单一客户端增加线程是不能对系统的改进有太大的作用的,这一部分测试软件的代码不能进行修改。所以考虑将本软件改为多客户端的结构对数据库服务器进行访问,用多客户端的访问来加大服务器的压力,而且这样做同时也可以缓解客户端资源占用太大的矛盾。
其次考虑降低对客户端的资源占用。经过对源程序分析发现源程序中循环最多的程序段,一是对服务器进行各种诸如查询、插入等操作,另一处是对各种操作的结果包括错误信息在程序中进行输出显示。两部分都涉及到大量的字符串的连接以及拼接操作,而且输出显示部分还有大量的字符串输出显示操作,这些代码都要消耗较多的CPU和内存资源,因此需要对这部分代码进行优化。对服务器的各种操作部分的代码是为了完成核心功能的模块,这部分是不能进行更改的;而对于结果的输出显示部分,考虑改成多客户端结构后各个客户端实行无人值守模式进行测试,不需要对输出显示部分进行监控,所以考虑将这一部分的代码去掉以减轻客户端的资源占用。
另外,从实际应用方便考虑,需要为程序添加一些辅助功能使程序使用过程能够更加智能化。实际应用一段时间以后决定为其添加如下几个功能模块:
1) 参数记录功能,原软件每次启动后参数都是固定不变的,为了更灵活方便地设置参数,考虑每次测试时记下本次设置的参数,下一次启动时自动设为上一次运行时的参数;
2) 记录结果功能,原软件测试过程中测试结果一直在变化,而人不在旁边无法记录测试数据变化情况,所以考虑增加一个模块每隔固定时间就记录当前测试的结果,以实现无人值守测试功能。
4 实现方法
4.1 开发工具
开源项目jTPCC是用JAVA编程语言编写的,服务端也选用了JAVA进行开发,开发平台选择了JBuilder9.0。作为目前业界广泛使用的Java开发平台,JBuilder9.0使用简单,功能强大,能满足对系统开发的需求。
4.2 程序结构
程序使用TCP连接进行通信,控制端使用ServerSocket对端口进行监听,为了和每个客户端保持一对一的连接,控制端使用了多线程技术,每接收到一个客户端的SOCKET连接就产生一个线程和这个客户端连接,然后对客户端的各项指令和数据都通过这个线程去传递,客户端在测试过程中每次传过来的数据通过对应的线程传递给主进程,由主进程负责收集所有客户端的测试数据并进行统计。改进后的程序的逻辑结构图如图2所示。
4.3 控制端的功能模块设计
本系统的要求是在控制端收集各个客户端测试得到的数据,对数据进行统计,然后根据TPC-C的规范计算出tpmC值。根据这些要求及多客户端结构的特点,本系统中主要包括以下几个模块:
(1) 设置模块 对测试的参数进行设置并保存设置情况,以后每次程序运行时自动读取上一次的设置参数。这些参数包括:被测试服务器端地址和连接参数、仓库数、连接用户名和密码、每个客户端的终端线程数、执行时间等;
(2) 网络通信模块 提供控制端和每个客户端的指令和数据的传递,主要包括控制端的收-发数据和客户端的收-发数据;
(3) 显示模块 负责对收到的数据在程序页面的显示,并进行即时的刷新;
(4) 统计模块 负责对收集来的数据进行处理,主要是计算各个客户端的New-Order完成数、总运行时间、每个客户端的平均反应时间,总的反应时间等,并根据这些计算值得出tpmC值;
(5) 记录模块 为了能实现整个测试过程无人值守,每次测试所设置的参数以及测试所得的各个阶段的结果都要记录下来,由于测试时间较长,在测试过程中还要每隔五分钟记录一次测试结果。一个典型的记录结果为:
4.4 对客户端的改造
对客户端的改造目的有两个:(1)降低客户端资源占用;(2)添加网络通信模块。将客户端的屏幕输出部分代码屏蔽掉以后再打开50个终端进程测试,客户端资源占用已经从原来的60%左右降低到20%左右,能满足改造的要求。而且屏幕输出显示的功能在TPC-C的规范里面并没有要求,所以这部分功能是可以屏蔽掉的。添加网络通信模块是和控制端的网络通信模块对应的,主要是接收控制端的指令,并对各个指令作出正确的响应。
5 改进以后测试性能比较
经过改进后,在4个客户机一共打开40个终端线程对服务器测试的情况下,服务器的CPU资源占用达到70%~80%,内存占用超过100M。再用开源软件SAR对被测试服务器的资源情况进行记录,记录结果如表3所示。
从表中数据可以看出,被测服务器的CPU空闲等待时间比例(%idle)由改造前的56.48%缩短为7.10%,CPU空闲时间大大地缩短了,因此极大地提高了被测服务器的压力,得到的tpmC值也从原来的120tpmC提高到了140tpmC,在这种压力下得出的成绩更能代表数据库服务器的真实性能。
6 总结和展望
开源软件jTPCC经过系统的改进以后,由原来的单客户版测试工具改造成了一个可控制的多客户端结构的性能测试工具,使得测试的结果更加合理和准确。本次改造是对数据库访问技术、SOCKET连接技术、以及数据库压力测试技术的一次综合运用,使开源工具jTPCC在易用性及适用性上都有了较大突破,更符合测试软件的要求。
现在该系统在处理某些特定的问题时还有一些不够完善的地方,比如某一个客户端连接中断后对这个客户端原有的数据如何处理以保证测试数据的准确性,客户端有防火墙时控制端如何穿透防火墙发送指令等,有待进一步改进。
摘要:首先介绍了现在流行的数据库性能测试标准TPC-C;然后根据开源TPC-C测试软件jTPCC在使用过程中存在的问题对该软件进行了分析;由于存在的主要问题是客户端资源占用过多和服务器端压力不足,所以提出了将该软件从单客户端结构改进为可控制的多客户端结构的改进方案,并且实现了该方案。改造完成以后的测试数据表明,经过改进的软件比原软件测试数据更准确,使用更方便。
关键词:数据库,性能测试,TPC,多客户端
参考文献
[1]王良,蔡荣.基于TPC-C标准的自动化测试工具TPCCLoader[J].计算机工程与应用,2005(25).
[2]Edward Whalen,Mitchell Schroeter.Oracle性能调整与优化[M].高艳春,周兆确,唐艳军,译.北京:人民邮电出版社,2002.
[3]结城浩.Java多线程设计模式[M].北京:中国铁道出版社,2005.
[4]陆正中,马进德.JBuilder9软件开发项目实践[M].北京:清华大学出版社,2004.
[5]TPC-C介绍[EB/OL].http://www.tpc.org/tpcc/default.asp.
客户端/服务器结构 篇11
随着iPad的日益普及,其已成为白领人士和成功人士工作、生活、娱乐的随身用品。浦发银行抓住这一市场新兴需求,根据iPad的特点,打造了iPad版移动办公室,客户只需上网轻松登录,即可不受时空限制,随心掌握企业资产和负债状况,完成业务审核及各类金融交易。
据了解,浦发手机银行(企业版)具有以下特点:
客户体验多样化
浦发手机银行(企业版)根据不同手机和电子设备的特点,向客户提供多渠道公司电子金融服务,不仅包括WAP服务,还包括iPhone客户端、Android客户端、iPad客户端等客户端服务,企业、事业单位的高管和财务人员可以根据自己的喜好和自己的移动终端特点任意选择使用手机银行WAP服务或客户端服务,享受到同样的金融服务。同时每个服务版本还利用各电子设备的特点,给客户创造了最佳的操作体验,比如iPad客户端服务版本,由于其界面比手机大很多,页面显示的项目就更丰富、更清晰。
客户服务全面化
浦发手机银行(企业版)的信息查询服务,不仅包括活期存款、定期存款、通知存款、保证金存款、贷款等信息的查询,基本涵盖了客户在该行的所有存贷款信息,帮助企业、事业单位的高管和财务人员随时掌握其在银行的资产负债情况,而且还可提供网银互联账户信息查询,帮助企业、事业单位的高管和财务人员及时掌握企业在其他银行的账户余额和交易情况。
另外,浦发的手机银行(企业版)在转账支付交易中不仅提供了公司内部转账、行内转账支付、跨行转账支付,便于企业、事业单位财务人员随时开展各类支付结算交易;还提供了网银互联通道的支付,使得跨行汇款可即时到达在他行的收款人账户,更高效、便捷,满足客户快捷支付的业务需求。
服务渠道整合化
浦发银行近年来一直着力于研发多渠道整合的公司电子金融服务产品,目前已完成了手机银行、网上银行、银企直连、电话银行等电子银行服务渠道的初步整合,成功打造了一个多渠道整合的公司电子银行服务平台,在各种渠道上支持企业各类金融信息的查询,并在业内首先推出了同时可支持公司网银、手机银行、银企直连等跨渠道交叉的交易经办和业务授权模式,给企业、事业单位财务人员提供了最为便利的金融服务渠道。
据浦发银行总行企业现金管理部相关负责人称,该行手机银行(企业版)近期还将新增Symbian(触摸屏版)客户端、Symbian(键盘版)客户端和Windows Phone客户端服务,并进一步扩充服务功能,以便全方位提升企业客户的手机银行体验。
客户端/服务器结构 篇12
近年来随着云技术的发展, 公共云平台不断出现, 国内云平台诸如百度云、阿里云、新浪云等在性能、价格方面也越来越有吸引力, 公共云平台的Web服务、数据存储已经被广泛接受, 而且作为移动应用后端服务平台也因其可伸缩、维护简单、安全可靠及成本低廉的优点吸引着开发者的目光。
在本课题项目开发中, 我们针对应用需要, 引入了公共云平台作为后台服务, 实现了云数据库服务功能, 本文将剖析实现过程并讨论相关问题解决方案。
2. 项目需求
本项目需要云服务的功能主要包括:
(1) 基于Android应用的客户端通过无线互联网访问云端数据库, 完成注册、登录、验证等流程, 实现数据添加、修改、删除、查询等操作;
(2) 云端数据库服务器为My SQL, 通过支持JSP或Servlet的Web服务器作为中间层访问数据库, 并接受应用客户端数据访问请求;
综上所述, 本项目基于云端数据库服务的基本思路是:
Android应用客户端向云端发出数据请求, 云端以运行在Tomcat容器中的JSP或Servlet程序作为中间层, 按照客户端请求访问后台My SQL数据库, 并将访问结果返回给客户端, 在云端与客户端之间以HTTP协议进行数据通信。
3. 云平台
根据项目需求, 本项目使用的公共云平台至少应具有如下特征:
(1) 提供通用程序设计语言运行环境, 能运行Java语言, 支持Java Servlet和标准My SQL JDBC接口, Servlet容器支持Tomcat;
(2) 云端数据库服务, 支持My SQL数据库, 作为客户端应用的后台数据库;
(3) 支持HTTP网络通讯协议, 实现客户端应用与云端数据通讯;
在实际开发中, 我们选择了百度开放云平台[1], 不过, 目前商业性公共云平台基本功能相近, 本文介绍的开发技术也适用于其他类似平台。
选择商业性的公共云平台通常都会要求申请开发者账号, 根据开发需求在云平台上建立项目工程, 建立项目工程时通常要求开发人员填写:
(1) 项目名称:根据自己项目名称确实;
(2) 项目类型:主要根据运行在云平台上应用程序语言选择服务器类型, 如支持Java、PHP、Node.js、Python等类型的服务器;
(3) 域名:这是客户端访问云平台的URL地址;
(4) 代码版本管理工具:用于开发人员远程管理和控制云端应用代码, 上传已经开发完成的云端应用, 通常会支持SVN或GIT等代码版本管理工具。
4. 开发环境
(1) Android应用开发环境
我们的应用客户端是典型的Android应用, 因此, 采用了主流Android SDK+Eclipse+ADT开发环境, 限于篇幅本文不再介绍配置过程, 可以参考Android开发者官方网站[2]及其参考文献。
(2) 云端应用开发环境
云端应用开发环境主要依赖开发项目所要求的运行环境, 本项目运行环境为Java Servlet+Tomcat+My SQL, 因此选择Eclipse for Java EE作为集成开发环境来构建云端应用引擎的本地开发环境, 只要云端应用能在本地开发环境正常运行, 在线上也能够良好地运行。需要注意的是, 本地开发环境所用软件版本应与云平台支持的版本保持一致, 在构建本地开发环境前应该认真阅读相关云平台的开发指南。
对于建立在百度开放云平台上的本项目来说, 使用Eclipse开发时应注意两点:
(1) 项目类型应为动态Web项目 (Dynamic Web Project) ;
(2) 开发完成后导出应用类型应为WAR文件。这是因为云端应用程序运行在Java+Tomcat环境中, 需要将应用导出为WAR包。将项目导出为WAR文件的关键步骤:在Eclipse的“File”菜单中选择“Export”选项导出为“WAR file” (即打成WAR包) , 导出的包文件名为“ROOT.war” (这是百度云平台要求) , 然后就可以通过SVN或GIT上传到百度云平台服务器端环境中。关于上传操作具体步骤请参考百度开放云开发文档, 该文档中有详细说明, 本文不再赘述。
目前, 主流的云平台通常也提供打包好的云端应用本地开发包, 如百度云就提供了本地开发包, 这样开发人员可以不用自己构建本地开发环境了, 只要根据自己云端应用运行环境直接下载相应的开发包使用, 节省了开发人员自己配置开发环境时间, 同时也避免了版本依存关系而造成的一些麻烦。
5. 云端应用服务设计
本项目中云端应用服务设计方式本质仍然是基于JSP/Servlet的动态Web服务应用, 借助JDBC访问My SQL数据库, 对于有经验的Web应用开发人员来说这是非常熟悉的开发方式。本项目云端主要采用JSP程序。从功能上来说主要分成两部分:
(1) 接受客户端请求参数, 返回处理结果。
以下接收客户端请求中有关用户名、电子邮箱地址、口令等账户信息的JSP程序片断示例如下:
(2) 访问数据库操作。
云端数据库访问操作主要是根据客户端提供的信息对数据库记录进行添加、修改、查询、删除等基本操作, 主要功能是接受客户端提供的参数, 生成相关的数据库操作, 通过JDBC访问数据库, 取得数据库访问结果, 并向客户端返回结果。
本项目云端数据库访问程序包括如下模块:
数据库访问参数配置模块:按照云平台访问数据库要求设置数据库URI、用户名、密码等参数。代码片断示例如下:
上述代码中“数据库名”、“用户名”、“口令”应在申请云平台的内置数据库服务时取得, 具体方式请阅读相关云平台开发文档。
数据库操作执行模块:接受客户端提供参数, 执行相关的数据库操作。代码片断示例如下:
6. 客户端访问云服务设计
基于网络连接的Android应用主要使用HTTP协议接收和发送数据, 客户端访问云服务通常了可以借助HTTP Client实现。Android SDK提供了两种HTTP Client类:HTTPURLConnection和Apache HTTP Client。前者使用时比较简洁, 后者功能更加强大灵活, 本项目主要使用Apache HTTP Client。
本项目根据客户端应用访问云服务功能需求, 主要设计了两个模块:
(1) 封装HTTP Client模块。设置HTTP Client参数并创建该对象, 代码片断如下:
(2) 访问云端数据库模块。本模块以类的形式实现了客户端访问云数据库操作进行了封装, 每种操作为一个方法 (Method) 。这里给出其中一个方法代码片断作为示例:
在客户端连接云服务程序设计中, 网络连接发送数据和接收返回结果这两部分代码必须以异步方式实现, 比如采用Async Task或者Handler-Message机制实现, 以免造成返回结果丢失或阻塞UI线程。关于Android异步线程机制请参考有关文献。[3]
7. 小结
公共云平台作为Android应用后台服务扩展了客户端应用能力, 更能体现无线移动互联网的特点, 开发技术和平台也已经比较成熟, 具有Android应用和JSP/Servlet开发经验的开发者可以非常平滑地迁移到公共云开发环境中。
摘要:公共云作为Android应用后端服务平台具有伸缩性强、维护简单、安全可靠及成本低廉的优点, 本文剖析了一个基于云服务的Android应用客户端设计方案, 探讨了设计过程实现中应注意的问题。
关键词:云服务,Android客户端,移动互联网应用
参考文献
[1]http://developer.baidu.com/
[2]http://developer.android.com/index.html
[3]贾震斌等.Android应用开发中多任务机制剖析.福建电脑, 2013.9
[4]郝玉龙.Android程序设计基础.北京:清华大学出版社, 2011年10月
【客户端/服务器结构】推荐阅读:
服务器与客户端09-04
客户结构10-23
金牌客户服务与客户投诉异议处理技巧09-03
客户营销服务09-21
电网客户服务07-17
医院客户服务05-12
客户服务部05-20
集团客户服务08-16
客户服务管理09-20
《客户入住服务协议》10-06