C/S结构模型(精选9篇)
C/S结构模型 篇1
1 概述
(1) 在DCOM, ASP, XML Web Services等在众多远程处理方法中, 因为.NET远程处理的二进制编码和TcpChanel的最佳进程间通信能力, 决定了其远程处理的高效率。所以本解决方案就采用了它为C/S间的交互方法。
(2) 数据集DataSet是数据的容器, 在缓存中存储数据, 提供了高性能数据访问以及可伸缩性。数据集的结构类似于关系数据库的结构;它公开表、行和列的分层对象模型。另外, 它包含为数据集定义的约束和关系。通过在数据集内保存数据, 可以方便地将它在应用程序的表示层、业务层和数据层之间或应用程序之间移动。本解决方案采用它作为远程数据交互的数据容器。
(3) 类库具有良好的数据封装特性和可重用性, 并且可以以异步方式来调用同步方法。本解决方案采用它提供公共数据结构定义外, 还利用这些特性同时实现方案的单机版。
2 模型框架
模型基本框架一共建立两个类库, 一个类库DataAgent, 包含远程处理对象和数据库访问逻辑;另一个类库Utility, 负责公共数据结构和接口定义;两个应用程序, 一个是服务器端值守程序, 负责在指定端口上呈现DataAgent远程处理对象;另一个是客户端应用程序。
基本框架逻辑图如图1所示。
3 代码实现
下面的代码示例以某公司员工档案分布式管理系统开发为背景展开。
3.1 Utility类库
该类库中提供了基本的数据接口定义:
另外, 该类库还提供一个DataAgentCallerHelper是远程对象调用器, 供客户机端在创建远程对象时调用, 并提供了本机版和网络版的实现, 通过Ini配置文件解决。Ini配置文件在系统安装时可根据具体环境配置, 内容如下:
远程对象调用器DataAgentCallerHelper的实现如下:
3.2 DataContext对象
远程处理中, 不可避免地要和数据库交互。以下示例代码提供了DataSet和Access数据库之间交互的逻辑。
3.3 DataAgent类库
DataAgent类库提供了远程处理对象clsDataAgent。逻辑函数中的对象ResultConext负责提供每次数据访问时的数据库连接, 并在交互的DataSet中动态插入一个记录数据处理过程中是否出现错误的一个数据表DataTable, 便于客户端进行错误处理。
以下是远程处理对象clsDataAgent的实现, 这个对象提供了系统所有的业务逻辑。
3.4 服务器值守程序Sever.exe
值守程序负责将类库DataAgent中的clsDataAgent远程处理对象在指定的端口下呈现出来, 供客户端远程激活。核心代码如下:
3.5 客户机实现
在客户机端, 实现业务的调用封装, 包括异常处理。
4 结语
介绍了一个基于.NET平台, 以DataSet为基本交互对象的C/S泛化模型, 并给出具体的代码实现。在实际开发过程中采用上述模型, 取得了很好的效果。以上的处理模式同时适用于局域网环境和Internet环境, 可用于高层次大规模的系统开发, 使开发人员致力于业务逻辑, 而不再过多关注与业务无关的细节, 减小了系统设计开发的复杂度, 提高了效率。
(收稿日期:2010-06-23)
摘要:介绍了一个基于.NET平台、以DataSet为基本交互对象的C/S泛化解决模型。
关键词:C/S模式,.NET远程处理,ADO.Net,DataSet,VisualBasic
C/S结构模型 篇2
关键词:C/SB/SMIS
近年来,随着网络技术不断发展,尤其是基于Web的信息发布和检索技术、Java计算技术以及网络分布式对象技术的飞速发展,导致了很多应用系统的体系结构从C/S结构向更加灵活的B/S多级分布结构演变,使得软件系统的网络体系结构跨入一个新阶段。认识这些结构的特征,并根据实际情况进行系统的选型,对于成功开发一个MIS系统是非常关键的。
1C/S结构与B/S结构
1.1C/S结构
C/S结构,即Client/Server(客户机/服务器)结构。此结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。C/S软件一般采用两层结构,其分布结构如图1所示。它由两部分构成:前端是客户机,即用户界面(Client)结合了表示与业务逻辑,接受用户的请求,并向数据库服务提出请求,通常是一个PC机;后端是服务器,即数据管理(Server)将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。还要提供完善的安全保护及对数据的完整性处理等操作,并允许多个客户同时访问同一个数据库。在这种结构中,服务器的硬件必须具有足够的处理能力,这样才能满足各客户的要求。
C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。要求具有一定专业水准的技术人员去完成。
1.2B/S结构
B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术。
B/S三层体系结构采用三层客户/g艮务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,如图2所示。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由WebServer完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。
B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对于发展已非常成熟C/S的一系列应用工具来说,这些技术的开发复杂,并没有完全成熟的技术工具供使用。
2C/S结构与B/S结构的分析比较
2.1硬件环境不同
C/S建立在局域网的基础上,通过专门服务器提供连接和数据交换服务。所处理的用户不仅固定,并且处于相同区域,要求拥有相同的操作系统。B/S建立在广域网的基础上,信息自己管理,有比C/S更强的.适应范围,一般只要有操作系统和浏览器就行。与操作系统平台关系最小。面向不可知的用户群。
2.2结构不同
C/S软件一般采用两层结构,而B/S采用三层结构:
这两种结构的不同点是两层结构中客户端参与运算,而三层结构中客户端并不参与运算,
只是简单地接收用户的请求,显示最后的结果。由于三层结构中的客户端并不需要参与计算,所以对客户端的计算机电脑配置要求较低。虽然BlS采用了逻辑上的三层结构,但在物理上的网络结构仍然是原来的以太网或环形网。这样,第一层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占用同一条网络线路,网络通信量大。而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量,网络通信量低。所以,C/S处理大量信息的能力是B/S无法比拟的。
2.3处理模式不同
B/S的处理模式与C/S相比,大大简化了客户端,只要装上操作系统、网络协议软件以及浏览器即可,这时的客户机成为瘦客户机,而服务器则集中了所有的应用逻辑。
2.4构件重用不同
在构件的重用性方面,C/S程序从整体进行考虑,具有较低的重用性。而BlS对应的是多重结构,要求构件具有相对独立的功能,具有较好的重用性。
2.5系统维护不同
系统维护是在软件生存周期中开销最大的一部分。C/S程序由于其本身的整体性,必须整体考察并处理出现的问题。而B/S结构,客户端不必安装及维护。B/S结构在构件组成方面只变更个别构件,开发、维护等工作都集中在服务器端。当需要升级时,只需更新服务器端的软件,而不必更换客户端软件,实现系统的无缝升级。这样就减轻了系统维护与升级的成本和工作量,使用户的总体拥有成本(TCO)大大降低。
2.6对安全的要求不同
由于C/S采用配对的点对点的结构模式,并采用适用于局域网、安全性比较好的网络协议(例如NT的NetBEUI协议),安全性可得到较好的保证。C/S一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Intemet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。所以B/S对安全以及访问速度比C/S有更高的要求。而Intemet技术中这些关键的安全问题远未解决。
2.7速度不同
由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S快。使得C/S更利于处理大量数据。
2.8交互性与信息流不同
基于C/S结构的考试与题库系统 篇3
关键词:考试系统;C/S模式;数据库
中图分类号:TP311
计算机技术的应用与推广,实质上取决于计算机软件的应用和推广。可以说,没有软件,就没有计算机的应用;学习、使用计算机,从根本上讲就是学习和掌握软件的使用。本文主要研究一个通用型的题库和考试系统,利用计算机和网络进行无纸化考试。
本系统由服务器端和客户端组成,采用C/S模式。服务器端主要包括系统基本操作模块、题目录入模块、判卷处理模块、系统查询模块、系统初始化和系统数据维护模块。客户端主要由考生登录模块、历次成绩查询模块和考试处理模块组成。
其中系统基本操作模块主要完成试卷的生成、考试设置、学生信息录入功能;题目录入模块包括选择题、填空题、判断题、问答题、分析题的录入;系统查询模块完成试卷、学生、学生成绩的查询功能;系统初始化模块完成系统数据库初始化、单位信息设置功能;数据维护模块完成按年级、科目信息维护及操作员维护,修改密码、数据备份/修改等功能。
总的来说包括两大部分:一是服务器端题目的录入与修改,教师可以从题库中抽取试题,也可加入,删减试题用以为学生生成试卷。并对学生所作答案进行批改给分,同时可将成绩结果打印。二是客户端可从现已生成的试卷中调出试题作答,学生可在考试之后查询以前考试卷的成绩。
另外,还可以使用打印机生成传统的试卷,由学生进行笔答,在考试结束之后学生成绩也可以使用打印机生成文本,以备存档。
1 系统分析
1.1 需求分析
随着Internet的高速发展,网络逐渐进入人们的生活,给我们的生活和工作带来许多便利,无纸化办公也渐渐的取代传统的办公模式。在传统的学校或者人事单位的考试方式中,考试和成绩的管理都很麻烦,每次考试都要出题、组卷、判卷,浪费很多人力和时间。
随着计算机和网络的普及,网上学校、网上教学等渐渐取代传统的教学模式。所以学校和单位的考试也将改变传统的模式,利用计算机和网络进行学习和考核,题目可以用计算机进行数据保存,实现“一次出题、多次利用”。这就是开发本系统的目的。
1.2 运行环境分析
硬件环境:系统需要运行在局域网环境,必须有一台性能较好的计算机作为题库和考试控制的服务器,客户端用于学生的考试或者教师录入/修改题目之用。
软件环境:服务器端操作平台为Window Server 2003,后台数据库使用SQL Server 2005服务器版。客户端可以是Windows XP等个人版系统,如图1所示。
1.3 开发工具的选取
由于Visual Basic 6.0工具功能强大,简单易用,开发周期短,特别是它强大的数据库操作功能,加上其与SQL Server的完美结合,所以优先采用它作为前台开发工具。
后台数据库使用SQL Server 2005,由于数据库数据量比较大,需要保存各学科、各班级的题目和试卷信息,还有学生的基本信息、各次考试的试卷成绩;而且数据库必须支持多用户同时并发访问。所以只能选用大型多用户多任务的数据库系统,比如微软的SQL Server、Sybase、Oralce等。
Visual Basic 6.0中操作数据库的方法很多,比如DAO、RDO、ADO等。Microsoft的ADO2.0-2.5数据库操作对象是在DAO和RDO的基础上完善的,其性能很好,特别适合用于本地或者远程数据库的操作。所以系统采用Microsoft ADO 2.0对象库进行数据库操作,用OLE DB作为数据库的编程连接接口。
1.4 系统效益的估计
在传统的知识和学习考试中,存在很大的浪费,比如纸张、人力、时间等,而且管理很不方便。现在如果采用计算机网络系统来出题、考试、管理等,一可以节省纸张,二可以减轻教师不必要的重复工作,效益非常可观。
2 数据库结构设计
数据库分为服务器端和客户机端。服务器端用SQL Server 2005保存各科、各班级的题目和试卷信息、所有学生的基本信息和成绩信息。客户端用Access小型关系数据库,考试时从服务器端读取当前考试的试卷信息,再从服务器端读取各题目的信息,生成本地数据库。而客户端暂时保存数据,提高客户端读取数据的速度,考完试后数据就被删除。
服务器端数据库一共包括17张表:例如操作员的信息、学校科目信息、年级和班级结构信息、学生的基本信息、成绩信息、各种考试题型(选择题、填空题、判断题等)信息等。
客户端数据库一共包括6张表,分别为:试卷信息、试卷选择题、试卷填空题、试卷判断题、试卷问答题、试卷分析题。
3 系统功能设计
鉴于以上的分析,系统服务器一共包括7个模块,分别为:
(1)基本操作包括子模块:试卷生成/修改、考试设置、学生信息录入。
(2)题目录入包括子模块:选择题录入、填空题录入、判断题录入、问答题录入、分析题录入。
(3)判卷处理包括子模块:填空题判卷、问答题判卷、分析题判卷。其他的两个题型(选择题、判断题)由计算机自动判卷。
(4)查询处理包括子模块:试卷查询、学生查询、学生成绩查询。
(5)系统初始化包括子模块:系统数据库初始化、单位信息设置初始化。
(6)数据维护包括子模块:科目信息维护、班级信息维护、操作员维护、修改密码、数据备份/恢复。
(7)系统帮助主要为用户提供一定的帮助和使用指南。
客户端一共包括3个模块分别为:
(8)考生登录负责检查考生输入的个人信息是否正确(从服务器端取得考生信息),正确则登录。系统信息包括关闭计算机、强行交卷、系统消息等。
(9)考生历次信息查询负责考生本人的历次考试的查询、浏览考过的试卷。
(10)考生考试处理主要负责考生的考试全过程,先从服务器读取本次考试的试卷信息,
在客户端生成一缓存数据库。客户端数据库为Access数据库。考试过程中只对缓存数据库操作,就算系统出问题也能把考生的答案保存下来,考完试后统一把答案提交到服务器的成绩表里。
4 小结
本系统经过详细测试和检验,证明其设计方案是合理的、实用的,运行是可靠的,数据维护方便,用户操作简易。可以实现的“一次出题、多次利用”的目标,使考试和成绩的管理变得更加方便,节省了大量的人力和时间。
参考文献:
[1]刘志妩,张焕君,马秀丽.基于VB和SQL的数据库编程技术[M].北京:清华大学出版社,2008.
[2]林卓然.VB语言程序设计(第2版)[M].北京:电子工业出版社,2009.
作者简介:焦鸿斌(1979-),男,吉林省长春市人,吉林农业大学硕士研究生,工程师,主要从事医院计算机应用研究。
C/S结构模型 篇4
随着计算机技术的不断发展与应用, 计算模式从集中式转向了分布式, 尤为典型的是C/S结构 (Client Server的简称, 客户机/服务器模式) 。近年来, 随着网络技术不断发展, 导致了很多应用系统的体系结构从C/S结构向更加灵活的多级分布结构演变, 使得软件系统的网络体系结构跨入一个新阶段, 即B/S体系结构 (Browser/Server的简称, 浏览器/服务器模式) 。基于Web的B/S方式其实也是一种客户机/服务器方式, 只不过它的客户端是浏览器。认识这些结构的特征, 并根据实际情况进行系统的选型, 对于成功开发一个MIS系统是非常关键的。
一、C/S结构与B/S结构
(一) C/S结构
C/S结构, 即Client/Server (客户机/服务器) 结构。C/S软件一般采用两层结构, 其分布结构如图1所示。它由两部分构成:前端是客户机, 即用户界面 (Client) 结合了表示与业务逻辑, 接受用户的请求, 并向数据库服务提出请求, 通常是一个PC机;后端是服务器, 即数据管理 (Server) 将数据提交给客户端, 客户端将数据进行计算并将结果呈现给用户。
C/S结构在技术上很成熟, 它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发, 变更不够灵活, 维护和管理的难度较大。通常只局限于小型局域网, 缺少通用性, 具有较大的局限性。
(二) B/S结构
B/S结构, 即Browser/Server (浏览器/服务器) 结构, 就是只安装维护一个服务器 (Server) , 而客户端采用浏览器 (Browse) 运行软件。主要利用了不断成熟的WWW浏览器技术, 结合多种Script语言和Active X技术, 是一种全新的软件系统构造技术。
B/S三层体系结构采用三层客户/服务器结构, 在数据管理层和用户界面层增加了一层结构, 称为中间件 (Middleware) , 使整个体系结构成为三层。中间件作为构造三层结构应用系统的基础平台, 提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。
在B/S体系结构系统中, 用户通过浏览器向分布在网络上的许多服务器发出请求, 服务器对浏览器的请求进行处理, 将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由Web Server完成。
B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低, 这些缺点是有目共睹的。
二C/S结构与B/S结构的分析比较
(一) 硬件环境不同
C/S建立在局域网的基础上, 通过专门服务器提供连接和数据交换服务。所处理的用户不仅固定, 并且处于相同区域, 要求拥有相同的操作系统。B/S建立在广域网的基础上, 信息自己管理, 有比C/S更强的适应范围。
(二) 结构不同
C/S软件一般采用两层结构, 而B/S采用三层结构:
这两种结构的不同点是两层结构中客户端参与运算, 而三层结构中客户端并不参与运算。B/S采用了逻辑上的三层结构, 网络通信量大。而C/S只有两层结构, 网络通信量低。所以, C/S处理大量信息的能力是B/S无法比拟的。
(三) 处理模式不同
B/S的处理模式与C/S相比, 大大简化了客户端, 只要装上操作系统、网络协议软件以及浏览器即可, 这时的客户机成为瘦客户机, 而服务器则集中了所有的应用逻辑。
(四) 构件重用不同
在构件的重用性方面, C/S程序从整体进行考虑, 具有较低的重用性。而B/S对应的是多重结构, 要求构件具有相对独立的功能, 具有较好的重用性。
(五) 系统维护不同
系统维护是在软件生存周期中开销最大的一部分。C/S程序由于其本身的整体性, 必须整体考察并处理出现的问题。而B/S结构, 客户端不必安装及维护。
(六) 对安全的要求不同
由于C/S采用配对的点对点的结构模式, 并采用适用于局域网、安全性比较好的网络协议 (例如NT的Net BEUI协议) , 安全性可得到较好的保证。而B/S采用点对多点、多点对多点这种开放的结构模式, 并采用TCP/IP这一类运用于Internet的开放性协议, 其安全性只能靠数据服务器上管理密码的数据库来保证。
(七) 速度不同
由于C/S在逻辑结构上比B/S少一层, 对于相同的任务, C/S完成的速度总比B/S快。使得C/S更利于处理大量数据。
(八) 交互性与信息流不同
交互性强是C/S固有的一个优点。在C/S中, 客户端有一套完整的应用程序, 在出错提示、在线帮助等方面都有强大的功能, 并且可以在子程序间自由切换。
三、基于B/S结构与C/S结构结合的体系结构
从上面的对比分析中, 我们可以看出, 传统的C/S体系结构并非一无是处, 而新兴的B/S体系结构也并非十全十美。
C/S技术是20年前的主流开发技术, 它主要局限于内部局域网的需要。因而缺乏作为应用平台的一些特性, 难以扩展到互联网这样的环境上去。这使得应用程序的维护、移植和互操作变得复杂, 成了C/S的一大缺陷。
但是, 与B/S结构相比, C/S技术发展历史更为"悠久"。从技术成熟度及软件设计、开发人员的掌握水平来看, C/S技术更成熟、更可靠。在某些情况下, 采用100%的B/S方式将造成系统响应速度慢、服务器开销大、通信带宽要求高、安全性差、总投资增加等问题。客观地分析C/S、B/S的优劣, 建立C/S、B/S结构相结合的网络构架已成为必然趋势。
下面以学校学生管理系统为实例说明这种设计方法。该系统采用B/S&C/S体系结构, 结合了ASP技术, 并将组件技术COM+和Active X技术分别应用在服务器端和客户端。该系统的实现主要分为三个部分:ASP页面、COM+组件和数据库, 是一个三层结构。表示层由ASP页面组成, 用以实现WEB页面显示和调用COM+组件, 业务逻辑和数据访问由一组用VC实现的COM+组件构成。一些需要用WEB处理的、满足大多数访问者请求的功能界面采用B/S结构, 例如任课教师可以通过浏览器查询所教班级学生各种相关信息;学校管理人员通过浏览器对学校的学生、教师等信息进行管理与维护以及查询统计;学校领导则可通过浏览器进行数据的查询和决策。而后台只需少数人使用的功能则采用C/S结构, 例如数据库管理维护界面。如此处理, 可充分发挥各种模式的优越性。
四、小结
B/S与C/S混合软件体系结构特点是系统结构灵活, 用户界面友好。外部用户不能直接访问数据库服务器, 能保证数据库的相对安全。内部用户的交互性较强, 数据查询和修改的响应速度较快。在学校学生管理系统中使用的基于三层的B/S与C/S混合软件体系结构解决了目前学校各部门之间的运行平台、运行模式和应用系统的许多问题。在应用过程中, 应结合实际情况进行系统的选型与构建, 从而开发出高效、安全的应用系统。
摘要:本文在介绍了B/S和C/S的基础上, 通过对B/S结构和C/S结构进行充分分析比较后, 简述了今后发展的前景, 并提出了一种新的体系结构--结合B/S与C/S, 将组件技术COM+和AcdveX技术分别应用在服务器端和客户端, 从而开发出高效、安全的应用系统。
关键词:C/S,B/S,MIS
参考文献
[1]张友生, 陈松乔.C/S与B/S混合软件体系结构模型。计算机工程与应用, 2002 (23) :138~140
[2]张友生.软件体系结构.软件工程, 2006 (2) :55~66
多层C/S结构中的关键技术 篇5
随着计算机技术和通信技术的快速发展, 计算机网络技术也正在逐渐影响企业的经营管理模式。特别是原来的1-tier系统更是被淘汰, 2-tier应用越来越不适用。在这种情形下, 多层C/S开发技术浮出水面。
1 传统客户端/服务器 (C/S) 结构
早在1980年第一个数据库管理系统出现时, 数据库的世纪就悄然开始。那时的观念是由应用程序控制关系型数据库, 这种数据处理的模式一般称为单层结构 (1-Tier) 。由于这种结构的数据库占用计算机资源较多, 于是在上世纪80年代中期, 数据库应用开始转向C/S结构, 也就是所谓的两层结构 (2-Tier) 。这种结构在当时不但得到了广泛的运用, 而且相当成功。
两层C/S结构将整个系统分为两个功能模块, 第一层包含了软件的应用层与逻辑层, 驻留于客户端。第二层包含数据库和服务器组件。一个基于SQL的数据库管理系统一般安装在服务器端。应用软件在服务器端进行的操作主要是数据存储和检索, 其他的业务逻辑操作和界面操作都在客户端。在两层模式中会有部分逻辑以存储过程和触发器的形式存储在服务器端, 以优化服务器性能, 但绝大多数的应用逻辑是放在客户端。两层C/S在充分发挥分别作为服务器以及工作站客户端的计算能力的基础上, 比共享文件服务器模式较大地减少了通过网络传输的数据流量, 从而提高了运行效率。但是随着Interne和Intranet应用的不断普及和应用系统的不断扩大, 应用程序的用户现在以几何倍数增长, 两层模式越来越不能满足应用的发展需要。
传统的二层C/S结构存在以下几个局限:
(1) 它是单一服务器且以局域网为中心的, 所以难以扩展至大型企业广域网或Internet, 不能适应网络化的要求;
(2) 由于客户端和服务器直接连接, 服务器将消耗部分系统资源用于处理与客户端的连接工作;
(3) 系统缺乏灵活性。客户机/服务器需要对每一应用独立地开发应用程序, 消耗了大量的资源, 但胖客户机的模式却仍然满足不了日益增长的应用的需要。在向广域网扩充的过程中, 由于信息量的迅速增大, 专用的客户端已经无法满足多功能的需求。
2 三层C/S基本结构
三层C/S结构是将应用功能分成表示层、业务逻辑层和数据层三部分。其解决方案是:对这三层进行明确分割, 并在逻辑上使其独立。原来的数据层作为DBMS已经独立出来, 所以关键是要将表示层和逻辑层分离成各自独立的程序, 并且还要使这两层间的接口简洁明了。
尽管将逻辑层和数据层分别放在不同的服务器中, 服务器和服务器之间也要进行数据传送。但是, 由于在这种形态中三层是分别放在各自不同的硬件系统上的, 所以灵活性很高, 能够适应客户机数目的增加和处理负荷的变动。例如, 在追加新业务处理时, 可以相应增加装载逻辑层的服务器。因此, 系统规模越大这种形态的优点就越显著。
值得注意的是, 三层C/S结构各层间的通信效率若不高, 即使分配给各层的硬件能力很强, 其作为整体来说也达不到所要求的性能。此外, 设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层C/S结构的关键问题。该结构具有以下优点:
(1) 灵活的系统缩放性。在多层系统中各层相对独立并可选择与其处理负荷和处理特性相适应的硬件。随着业务的发展, 用户数和数据量逐渐增加, 可以随时增加逻辑层或数据层专用服务器, 以平衡应用的数据吞吐量, 提高系统的稳定运行。
(2) 高程序维护性。三层C/S结构中, 应用的各层可以并行开发, 各自调试, 各层也可以选择各自最适合的开发语言。
(3) 利于变更和维护应用技术规范。因为是按层分割功能, 各层处理逻辑简单且容易变更。
(4) 严密的安全管理。在三层C/S结构中, 识别用户的机构是按层来构筑的, 对应用和数据的存取权限也可以按层进行设定。多层安全防线加大入侵的难度。
此外, 多层系统管理简单, 可支持异种数据库, 有很高的可用性。
3 多层C/S结构关键技术
要开发一个多层C/S结构的系统, 我们必须选择合适的中间件、通信协议及交易模式。
3.1 中间件技术
MIDAS (Multi-tier Distributed Application Services Suite多层分布式应用服务组件) , Borland公司的旗艇产品, 可应用在Windows及Linux下。它包含一套用于建立各种多层数据库应用的组件和用于客户端应用与应用服务器之间数据信息传递的机制。从而应用MIDAS提供的组件、服务和技术可以方便地进行跨平台的多层应用开发。
CORBA (Common Object Request Broker Architecture公共对象请求代理体系结构) , OMG (对象管理组织) 推出的产品, 有强大的跨平台能力。其核心是一套标准的语言接口和协议, 以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。或者说CORBA体系结构是OMG为解决分布式处理环境 (DCE) 中, 硬件和软件系统的互连而提出的一种解决方案。
COM/DCOM (Distributed Component Object Model) /COM+是Microsoft的拳头产品, 也是每次Microsoft都要宣传的理念之一, 已整合到操作系统中。COM是组件之间相互接口的规范, 是OLE和Active X的共同基础, 其作用是使各软件组件和应用软件能够用一种统一的标准方式进行交互。DCOM是基于分布式环境下的COM, 它规范定义了分散对象创建和对象间通信机制, 规范本身不依赖于任何特定编程语言和操作系统。
3.2 通信协议
或称连接方式, 通用的中间件连接方式有DCOM、TCP/IP、HTTP、CORBA等。选用哪种通信协议, 还要看你系统开发中选用哪种连接控件。如采用DCOMConnection、Corba Connection、Socket Connection、Web Connection连接控件则分别选用DCOM、CORBA、TCP/IP、HTTP通信协议。
3.3 交易模式
交易模式, 最著名的是MTS (Microsoft Transaction Serv er) , 交易模式实现的功能非常多, 比如, 多段提交模式, 其Pooling技术, 也就是缓冲池技术, 让数据提交更加安全、快速。MTS是建立在系统层的, 可以帮助你解决许多本应在程序里解决的东西, 省掉了自己动手写大量的代码实现事务机制。
4 Delphi下多层结构的简略模型
在DELPHI中多层结构的基础是MIDAS, Delphi所提出的Multi-Tier结构是把原来的Two-Tier前台应用程序内的b Express, ADO, BDE, SQLLink, Data Moule, 拿到另外一台NT服务器 (就是所谓的应用程序服务器) , 而前台程序只剩下一个可执行文件及MIDAS.DLL, 而移到NT服务器上的Data Moule则变成COM程序 (Remote Data Module) 。如图1为DELPHI下MIDAS多层结构示意图:应用服务端可根据应用系统的需要进行扩展成多层。从图中也可看出多层C/S结构的开发分为客户端和服务端的开发。在客户端使用的控件有数据控件 (如DBGrid, DBEdit等) 、数据源控件 (Data Source) 、客户数据集控件 (Client Dataset) 和连接控件 (如Web Connection等) ;服务端使用的控件有远程数据模块控件 (Remote Data Module) 、数据提供控件 (Dataset Provider) 、数据集控件 (如ADOTable, ADOQuery) 和数据库连接控件 (如ADOConnection等) 。而MIDAS.DLL用于管理客户端和服务端传递的动态数据包。
5 结束语
多层C/S结构开发技术正成为当前主流技术, 我们身边有很多应用该技术的信息系统。因此, 普通用户适当熟悉多层C/S结构的关键技术是有必要的。本文提到的中间件、通信协议、交易模式是开发多层C/S结构必须用到的技术。
参考文献
[1]钟其兵, 等.中间件技术及其应用研究[J].微机发展, 2005 (6) .
[2]李瑾, 等.利用Delphi开发基于MIDAS和ADO技术的三层应用[J].计算机应用与软件, 2004 (7) .
[3]COCARD, REMUS.A generic database adapter for multi-tier COR-BA-based applications[J].Masters Abstracts International, Volume:40-06.
C/S结构模型 篇6
1. C/S概述
C/S结构的基本原则是将计算机应用任务下发分给多个计算机完成, 客户端一般为个人计算机进行数据处理、加工以及用户接口功能, 服务器完成DBMS的核心功能, 相应客户端的请求, 这种客户端发送请求服务、服务器接收请求的处理方式是一种新型的计算机应用模式。
2. JAVA概述
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台 (即Java SE, Java EE, Java ME) 的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性, 广泛应用于个人PC、数据中心和互联网。
3. 系统功能
(1) 系统管理
系统模块的功能主要是:实现用户管理和帮助库的维护, 用户管理包括登录系统的人员信息、权限的设置;帮助库中包括进行性别、民族、专业等的添加和修改, 可以在此完成由于新学年教学计划的变更后的处理操作。
(2) 新生管理
新生模块功能主要是:完成新生信息采集、新生信息的完善补充输入和编班编学号的工作, 最终完成输出新生名册发往各单位使用的任务。高校录取完成后, 招生办将录取数据下发到学籍管理部门, 由学籍管理人员, 将新生数据导入系统并进行修改、添加等操作, 对确定报到的学生进行编班编学号, 为进一步的在校生学籍管理提供必要的支持。
(3) 注册管理
新、老学生注册管理功能主要是:新生注册管理;新生数据转在校生库管理、在校生的注册管理和所有学生注册信息按全校方式进行管理。无论新生注册还是老生注册均包含注册项目的管理。
(4) 学籍管理
在校生学籍管理模块功能主要是:对于报到入学的学生, 进行信息维护的过程, 在此模块根据教学单位、部门的反馈, 对于有误的学生信息进行修改、删除等操作, 在学籍管理中学籍异动管理占很大比重, 学生入学后通过参加考试或者填写申请书并出具证明等形式可以提出学籍异动申请, 此系统本模块应具有调用数据库中某学生的信息, 进行学籍异动管理的功能。
(5) 学历管理
毕业生学历管理模块的功能主要是:对毕业生信息的维护, 在校生从入学年开始计算, 在校时间与学制相等, 毕业年等于入学年加学制, 学历管理中, 输入毕业年份时, 自动生成毕业生信息。
(6) 综合信息管理
系统模块的功能主要是:学生入学前的基本信息、高考信息、学生在校期间的奖励与处分信息管理。学生入学前的信息主要是来自于高考录取信息, 学生的奖励处分信息主要用于记录在校期间的奖励情况, 本系统主要是通过对奖励级别和处分原因与处分结果的帮助库代码实现规范管理。
(7) 共享信息管理
系统模块的功能主要是:其他教学或教辅人员, 通过用户名和密码进入系统后, 能够直接查询和浏览学生各种信息, 例如:姓名、家庭住址、奖惩情况等。
4. 系统设计
4.1 系统设计原则
(1) 过程与结果并重原则。在强调结果的同时更注重过程的控制。因此该系统在设计时坚持了过程与结果并重的原则。
(2) 通用性与灵活性相结合原则。普遍性和特殊性是事物的普遍规律。在规范统一的前提下, 考虑全国各地的实际情况各不相同, 系统在设计中坚持通用性与灵活性相结合原则, 各项指标均可由各高校根据各自的工作实际确定是否选用。
4.2 系统工作原理
系统具体工作原理如图所示。
5. 系统的测试
通过模拟各项业务, 将新生录取数据录入到学籍管理系统后, 得到了新生管理、注册管理、学籍管理等结果, 达到了设计该系统的预期目标。
通过系统的实现和测试工作, 学生学籍管理系统展示了其特点及优点, 有以下几个方面:
(1) 标准性:学籍管理系统的设计全部依据教育部学生司针对当前成人高等教育在校学生学籍、学历管理工作的需要文件而编制的;采用计算机C/S结构的JAVA技术, 后台采用SQL server数据库完成的。
(2) 效率性:利用计算机处理海量信息的能力, 对学生学籍数据批量处理。考虑到本系统将有大量的操作过程, 系统设计对服务器处理能力、网络带宽传输能力、软件系统效率、数据库的优化等进行综合分析, 合理设计数据库结构、配置, 以确保系统具有足够的处理能力, 保障服务质量, 并通过本系统执行相关指令, 能够快速的自动的完成学籍数据的更新, 方便快捷, 节省了大量的人力。
(3) 全面性:覆盖学籍管理工作的新生管理、在校生管理、毕业生管理三大方面。做到对学生学籍信息从学生入学到学生毕业整个流程的实时监控。不仅降低了学籍管理人员的工作量, 还使其他教辅人员的工作难度得以减轻。
(4) 安全性:本系统的设计应充分考虑系统的安全性保证。内容包括:通过用户口令设置控制用户进入系统的权限;通过用户权限的设置控制用户可进行操作, 相关人员只能在系统中看到属于自己工作范围的数据。
(5) 可扩展性:本系统的所有应用软件模块设计都遵循可扩充的原则, 随着业务的变更, 系统在不停止服务的前提下可以实现无缝扩展。
(6) 灵活性:系统对指标的启用等均可以根据工作需要进行调整和增减。
综上所述, 研发学籍管理系统的目的, 是解决传统学籍管理方法中出现的种种弊端。通过使用该系统, 可以更加有效地提高工作效率和工作质量, 减少错误, 帮助学籍管理人员减轻工作强度、加快工作速度, 全面、实时的处理学籍管理工作;帮助其他教辅部门, 及时访问数据, 准确掌握信息, 提高工作效率。
摘要:随着高校办学规模的扩大, 传统的学籍信息管理方式已不能满足高校的需要。开发学生学籍信息管理系统提高学生管理工作的效率势在必行。本文采用C/S模式, 由JAVA语言编写的以SQL server为数据库系统研发高校学生学籍管理系统。
关键词:C/S结构,高校,学籍管理系统
参考文献
[1]梁德华.浅析高等院校学籍管理信息系统的设计与开发[J].硅谷, 2011, (1)
[2]郑文发.教育信息化与教学管理流程再造[J].漳州师范学院学报 (哲学社会科学版) , 2005, (1)
C/S结构模型 篇7
关键词:WebService,SSH2框架,AppWidget,分布式异构数据库,线程池
0 引 言
随着社会经济的不断增长,人们追求影视文化的需求也日益增长,特别是智能手机出现后人们经常通过智能手机进行电影票预订、在线电影下载以及在线电影播放等操作。但是管理各个影视信息的电影系统由于数据库存在异构性和分布性,从而构建了许多相互隔离的信息服务,使得这些电影系统就像一个个“信息孤岛”,相互之间的电影数据有限且不能共享,影响人们获取电影数据的效率。因此,建立一个行之有效的中心数据库来管理各个分散系统中的数据是很有必要的[1]。中心数据库与分布式异构数据库通信中需要解决的问题是数据同步操作,在国外,文献[2]中许多专家学者在分布式异构数据库和数据库同步领域进行了深入的研究。文献[3]阐述了一个自动发布Web服务来访问和集成远程的分布式异构数据库源的多平台集成实现方法; 在国内,文献[4]中国科学院对数据库复制时产生的事务冲突进行了研究,提出了一种基于双时间印的事务级同步机制。文献[5]分析了企业数据集成中存在异构数据库的变化数据捕获与数据同步问题,提出了一种将触发器和日志表相结合的变更数据捕获方法。
以上研究能够有效解决企业内部系统集成和数据交换问题,但是由于每一种组件模型的架构以及数据封装的标准不一样,导致各个组件模型之间相互集成变得越来越困难。为了将各个孤立的电影系统数据进行很好的集成交互,本文提出了将触发器与日志表法、API法相结合的变更数据捕获方法实现分布式异构数据库的同步操作。而在手机电影系统的研究中,虽然文献[6]以J2ME为研究平台实现了电影票预订功能,文献 [7]对电子电影票系统进行了深入的分析,通过小灵通和天翼手机终端发送指令消息实现各个影院电子购票功能,但它们主要研究手机访问电影系统的总体设计与架构,对手机客户端的开发以及手机客户端与服务器端的开发研究较少。文献[8]虽然采用android平台实现了影院购票系统开发,主要讨论了移动客户端SQLite数据库的设计以及手机客户端与服务器端数据的通信,但在手机客户端性能优化设计以及手机客户端如何快速获取各个孤立电影系统的共享数据研究较少。综合以上研究,本文设计并实现了基于Web Service和Android的C/S + B/S结构手机电影系统,该系统是对现有电影系统特别是手机电影系统的一种扩充,对业界具有一定的参考价值。
1 系统设计
1. 1 系统功能设计
手机电影票系统分为客户端系统和服务器端系统。其中客户端系统是基于Android开发的系统,主要功能包括以CoverFlow形式展示给用户的正在热映的影视信息,电影widget,影视排期,影视收藏,在线评分,购买通票以及采用流媒体技术实现在线播放等功能。而服务器端系统采用基于Java EE平台开发的电影票后台管理系统,主要功能包括权限管理,用户管理,影院管理,影片管理,订单管理,用户行为管理以及用户访问频道管理等功能。
1. 2 系统总体设计
系统总体由Android手机客户端、Java EE服务器端和基于Web Service的分布式异构数据库三部分组成。Android手机客户端提供给用户一个操作电影系统的接口,它通过Web Service访问中心数据库,而中心数据库通过Web Service适配器与分布式异构源数据库进行数据同步操作。在Java EE服务器端,Tomcat6. 0作为Web应用服务 器, Struts2 + Spring + Hibernate ( SSH2) 整合框架作为服务器端架构,它共分表示层、控制层、业务层、DAO层、持久层等5层,后台管理系统通过浏览器访问JSP经过5层处理后与中心数据库交互。系统总体设计如图1所示。
1. 2. 1 基于 Web Service 的分布式异构数据库同步设计
( 1) 分布式异构数据库
分布式异构数据库DHD ( Distributed Heterogeneous Database) 是计算机网络与分布在不同地理位置上的若干数据库系统的有机集合,可以实现不同数据库之间硬件、数据的共享及透明访问。
( 2) 中心数据库
中心数据库即共享数据库,主要用来存储和管理各个异构源电影数据库的连接信息和数据库表结构信息,它不仅对各个异构源电影数据库提供统一的表示,而且为用户提供访问接口, 用户通过该接口对数据库表进行DML操作,并将更新的数据同步到各个异构源电影数据库中,而各个异构源电影数据库的改变也能及时同步到中心数据库。
( 3) 基于Web Service分布式异构数据库同步方法
Web Service是一个标准的、低耦合的、基于XML的用于开发分布式的Web应用程序。从逻辑上它分为服务层、业务层以及数据库访问层,其中服务层为基于Android的客户端程序的远程调用提供服务说明以及函数调用; 业务层用于处理具体的业务逻辑; 数据库访问层用于连接中心数据库并将数据同步更新到中心数据库中。其中数据同步是指将当前状态的数据回传到相关数据库结点,并更新对应的数据以维护数据的统一。完成数据的同步一般需要经过数据变化捕捉、数据转换以及数据转移三个步骤。其中数据变化捕捉方法有快照法、API法、触发器法、影子表法以及日志法等。这些变化捕捉方法虽各有自己的优点,但同时也存在一定的局限性[9]。虽然大部分数据库都支持触发器的使用,且触发器具有自动捕捉数据操纵事件的功能,但完全采用这种方式会影响捕获工作的通用性,并且有部分数据库还没有触发器和日志机制,数据捕获较困难,因此本文采用触发器与日志表法、API法相结合的变更数据捕获方法完成分布式异构数据库的同步操作。同步操作分为源数据库和中心数据库操作同步。如果源数据库和中心数据库都支持触发器操作,则当用户在进行DML、DQL操作时,将要更改的信息放在自定义的增量更新日志表中,然后根据增量日志表记录的信息通过定时器调用同步函数完成数据同步操作。如果数据库不支持触发器操作,则采用API捕获技术即自定义中间件技术将数据库的类型、数据库表以及变更的数据在事务提交前插入控制变化表中,并将更改表信息插入增量更新日志表中,并通过定时器调用同步函数完成数据同步操作。在进行数据同步时,除了要进行数据变化捕捉外,还要进行数据转换和数据转移,本系统的数据转换和数据转移方法参考熊辉等[10]提出的基于B/S模式的分布式异构数据库迁移系统的设计与实现。
1. 2. 2 系统服务器端架构设计
在系统总体设计中,各个影院系统的数据库由于具有分布性和异构性,因此本系统采用了基于Web Service的分布式异构数据库同步方法,使得中心数据库与各分项数据库保持数据同步,同时将中心数据库所在的系统作为整个系统的服务器端,手机客户端和Web浏览器共用这一服务器端,因此服务器端的架构设计就显得尤为重要。在Java EE平台下,服务器端的架构大都采用三层架构,比较典型的框架有采用MVC模式的Jsp + Servlet + Java Bean、Struts + Spring + Hibernate ( SSH) 以及Struts2 + Spring + Hibernate( SSH2) 。Jsp + Servlet + Java Bean框架虽然实现了显示层、控制层和模型层三层的分离,但由于Servlet和Java Bean负责了大量的运算和业务跳转工作,程序复用度较低, 后期业务维护困难。SSH框架虽然实现了视图层、控制器与模型的彻底分离,降低了各层之间的耦合度,但由于其中的struts框架在线程安全、易测性、捕获输入以及视图展示都弱于Struts2框架[11],因此本系统采用SSH2框架作为服务器端架构方案。 在SSH2框架中,Struts2框架中的Jsp用于展示数据,action用于流程控制; Spring框架中的Spring Ioc用于业务处理,Spring DAO将持久层的持久化技术与一般的业务规则和工作流隔离开来, 并与Web Service融合为android手机访问服务器端提供接口。 Hibernate是一个功能强大的ORM工具,它依赖于对象化映射和中心数据库交互,处理Spring DAO组件请求的数据,并返回处理结果。
1. 2. 3 系统数据交换流程
在Java EE服务器端,用户通过电影票后台管理系统将电影信息更新到中心数据库,中心数据库变化捕捉器通过Web Service适配器将数据同步到相应源电影数据库,源电影数据库更新数据并将同步成功信息返回给中心数据库。如果用户只是执行查询操作,则不执行同步操作。如果各个源电影数据库有数据更新操作,则会通过Web Service中的数据同步模块更新中心数据库。android手机电影系统客户端如果要更新数据或者查询数据则通过Web Service访问中心数据库。
2 系统的实现
2. 1 客户端实现
2. 1. 1 Android 手机电影 App Widget 实现
Widget是运行在客户端上基于Widget引擎的应用程序,可以从本地或者互联网获取并显示数据。目前,Widget主要分为桌面Widget、Web Widget和移动Widget[12]。其中移动Widget是一种在手机主屏上快速浏览的插件,如Symbian的Opera Widget、Windows Mobile以及Android的App Widget。由于AppWidget独立于浏览器、低耦合于操作系统,能给用户以独特的视觉体验而被许多厂商作为重点研究方向。为了使用户能够快捷方便地以多角度查看各影院的最新影视信息,本文提出在手机客户端采用App Widget技术实现电影票Widget插件功能。用户通过长按手机主屏空白处,在弹出窗体中选择Widgets后弹出Widget选择器,选择手机电影票Widget将其添加到手机桌面上,这时各影院的最新影视图片就会循环播放,点击其中一张图片后即可迅速进入正在热映界面。采用App Widget技术实现手机电影票Widget小插件的步骤如下:
( 1) 建Widget桌面布局的widgetshow. xml文件。该xml文件主要定义Widget的显示样式,如宽度、高度以及背景图片等。
( 2) 建widgetconfig. xml文件,用于设置widget元数据。内容包括App Widget的最小宽度、最小高度以及App Widget框架调用App Widget Provider的On Update( ) 方法的频率,同时指定第 ( 1) 步所创建的Widget桌面布局文件。
( 3) 建手机电影票widget实现类Movie Widget,该类需继承App Widget Provider类,其中父类的onReceive方法接收到android. appwidget. action. APPWIDGET_UPDATE消息后,就会调用子类的on Update方法,启动Service并更新widget界面。其中, Service不能自动运行,只能运行于后台,并且需要在Android Manifest. xml文件中声明该Service后才能使用。启动Service部分代码如下:
启动服务后,在手机电影票widget中要实现用户手动左右翻阅电影图片以及点击电影图片后进入正在热映界面,需要在on Update方法中为Image Button和图片添加点击监听事件,一旦触发Image Button按钮就会发送广播服务,部分代码如下:
这里只例举了在widget中点击向左按钮和点击电影图片的广播方法,点击向右按钮发送广播的原理与点击向左按钮时发送广播的原理相同。发送广播后,在广播接收类中的onReceive方法中实现联网操作 ,获取远程服务器端的电影数据并更新widget显示。广播接收类中的onReceive方法的部分代码如下:
( 4) Android Manifest. xml文件中注册一个Widget的接收器类和用于Widget更新数据的Service类和BroadcastReceiver类。
2. 1. 2 手机客户端与服务器端的网络通信策略
由于手机电影票客户端的影院、影视等信息来自于服务器端,客户端与服务器端的网络通信就显得异常重要。目前,Android平台提供了标准Java接口、Android网络接口以及Apache接口访问网络[13]。手机客户端通过这些接口联网时需要等待服务器端的响应,如果服务器的响应时间超过5秒钟,手机客户端就可能会出现ANR( Application Not Responding) 错误,通常解决此问题的方法是在主线程中创建一个新的线程进行联网数据请求,获取数据后调用Handler对象中的send Message方法将数据传递给Handler中的handle Message方法更新UI。但手机电影票客户端有很多功能如获取影院、影视信息,购买大通票、在线支付以及在线播放等功能都需要访问服务器,即一个手机客户端可能会创建多个新的线程处理这些功能的联网请求与响应,当新的线程数达到一定的数目后而又未对未使用的线程进行有效管理就会影响系统的性能。线程池技术为创建和销毁线程所带来的时间和空间上的浪费问题以及系统资源不足问题提供了很好的解决方案,能有效地提高系统响应速度和整体性能[14]。本文针对此问题提出在手机客户端采用线程池方法联网请求服务器端数据,其流程图如图2所示。该方法算法如下:
( 1) 定义一个用于存放客户端联网请求服务器端数据的线程池Vector,并初始化线程池中的线程最大值MAX_THREAD。
( 2) 当有新的联网线程时,首先判断线程池对象是否为空, 如果为空则实例化线程池对象。
( 3) 判断当前线程池的大小是否小于MAX_THREAD,如果小于MAX_THREAD,则将当前联网线程加入线程池,并启动此线程进行联网操作。否则判断线程池中是否有空闲线程,如果有则启动空闲线程进行联网操作。如果没有,则只能将当前联网线程放在另外的线程队列中等待,直到线程池中某个线程终止并被移出线程池,再执行第( 3) 步。
( 4) Vector线程池中的线程进行联网操作后,将获取服务器端的数据返回给手机客户端。
( 5) 手机客户端解析并显示服务器端数据,流程结束。
2. 2 服务器端实现
2. 2. 1 SSH2 + JSON + JQuery 组合框架调用
JSON( Java Script Object Notation) 是一种能够替代XML工作的轻量级数据交换格式,它可以在不同平台间进行数据交换[15]。与XML相比,它能减少解析数据时带来的性能和兼容性问题,同时能提高数据在网络中的传输效率[16]。
Ajax( Asynchronous Java Script And XML) 技术是当今Web比较重要的技术,它采用异步通信机制,可以提高网页的响应速度,给用户更好的浏览体验。在Ajax技术中比较成熟的框架有JQuery、Dojo、Extjs、GWT、DWR和Moo Tools等。与其他框架相比,JQuery有强大的Selector选择器对DOM元素进行操作、文档说明齐全、各种应用叙述详细以及有很多成熟的插件可供选择等优势,因此电影票后台管理系统与服务器端通信采用SSH2 + JQuery + JSON组合框架实现。
2. 2. 2 分布式异构数据库同步数据捕获方法实现
在分布式异构数据库架构中,不同的异构数据库同步方案可以采用不同的数据库捕获方法,用于获取差异数据。针对各影院数据库系统的特点和系统的扩展性,整个系统采用触发器与日志表法和API法相结合的方法完成数据捕获。在本系统中,能提供完善的触发器功能的数据库系统采用触发器法和日志表法,不支持触发器功能的数据库系统采用API法。
API捕获数据实现的关键问题是如何编写对数据库操作的中间件,而中间件的编写较为复杂,容易出现问题,本文采用Java EE中的AOP( Aspect Oriented Programming) 技术实现中间件编写。AOP技术是一种面向方面编程的技术,它将与业务无关的逻辑封装在可重用的模块中,实现一种单一的结构化行为,从而使系统设计更加结构化和模块化。数据库捕获技术关心如何获得对数据库操作的信息,在AOP中将对数据库的操作作为关注点,而在异构环境下使用JDBC来访问数据库是一种通用的方法[1],而Hibernate在本质上对JDBC进行了封装来对数据库进行操作,因此系统通过AOP来捕获数据关注的就是Hibernate对数据库的操作。对数据库进行DML操作时需要调用Hibernate中的save、save Or Update以及delete方法,而为了捕获这些操作需要在save、save Or Update以及delete方法定义通知,通知类型包括前置通知、返回后通知、抛出异常后通知、后通知以及环绕通知,其中返回后通知指在连接点正常完成后执行通知。 因此本系统对捕获数据操作采用返回后通知,在通知中获得操作类型、操作表和变更的数据,并将这些信息插入到增量更新日志表中,然后根据增量日志表记录的信息通过定时器调用同步函数进行数据同步,同步操作成功后,删除增量更新日志表。中间件使用Aop技术实现捕获数据操作的部分代码如下:
( 1) 定义返回后通知类
( 2) 在application Contex. xml文件中注册返回后通知类,代码如下:
3 实验及分析
本次实验主要对android手机客户端联网请求java EE服务器端时采用的普通联网请求和采用线程池方式的联网请求进行性能对比。实验采用测试工具i Testin,它是全球首款移动App真机自动化云测试客户端工具[17]。客户端: HTC纵横 ( S610d) 2. 3. 4。服务器端: Windows7操作系统,Web服务器Tomcat6. 0,数据库Oracle11g。服务器端电脑CPU双核2. 27 GHz主频,2 GB内存。测试步骤: ( 1) 点击手机桌面的电影票Widget如图3所示,联网请求服务器后进入正在热映界面如图4所示; ( 2) 点击以Coverflow形式展示的正在热映的电影图片后联网请求服务器进入影视详情界面如图5所示。实验结果如表1所示。
从表1可以看出,手机客户端采用线程池方式联网时启动耗时的时间不论是平均值还是最大值都略高于采用普通方式连接网络时的启动耗时时间,原因是客户端采用线程池联网之前要对线程池进行实例化以及初始化数据,并判断当前线程池的大小是否小于初始化值,如果为真则将当前线程加入线程池并等待联网操作都需要一定的时间。在本实验中,手机的CPU、内存RSS以及网络流量的平均使用值是考查的重点,从表1可以看出,线程池方式联网时CPU以及内存RSS的平均使用值明显低于普通方式,同时在手机电池温度和网络流量方面不论是平均值还是最大值线程池都优于普通联网方式。
4 结 语
C/S结构模型 篇8
随着信息技术的发展和网络化的普及,各行各业为了提高工作效率,都纷纷开始使用和关注自动办公系统的使用趋势。在金融、保险、担保行业中也不例外,如何利用好现代网络技术来实自动化办公的问题成为高层关心的重点之一。 面对保证担保行业办公的工作流程复杂,数据繁多,信息多样化;全国各地分支机构众多;工作人员职责权限划分细致;工作内容保密程度不尽相同等特点。尤其涉及到重要保密的信息,这个问题是一个重大的难题。因此大中型保证担保当今社会信息就是重要生产力,因此信息的安全公司的OA系统不仅要求系统能够满足功能方面需求,而且对于平台系统的稳定性、安全性、扩展性方面的要求尤其显著[1,2]。
二、OA系统框架结构的选择
1、担保公司OA系统简介
OA系统是一个以日常办公管理事务为中心,通过引入数据库权限和功能权限对不同部门及员工进行权限划分, 以实现信息、管理、服务协同工作的办公管理平台。通过对信息中心,人事考勤,公文会议,计划项目审批,用款报销, 资产资料,办公用品,生活补贴等日常办公内容的管理。实现对企事业单位日常办公工作的全面管理,并能规范办公流程,提高管理水平和管理质量,标准分析决策,达到全面提升单位办公效率的目的。
担保公司的OA系统以分公司众多,办公人员级别划分细致,OA系统的客户端多,加之系统的模块繁多,且系统业务变动也频,这就要求系统能及时准确的做出相应的变化,也就要求设计者对系统有个整体的规划,留出可变的空间。
2、B/S结构在系统中运用
B/S结构(Browser/Server,浏览器/ 服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),服务器安装数据库。浏览器通过Web Server同数据库进行数据交互。从软件行业的发展来看,不论从成本或是扩展性来讲, B/S(浏览器/ 服务器)模式的结构已经成为主流[3];加之硬件通用性的发展,现在B/S模式的软件系统已经能够与很多种硬件系统协同[4],例如电话系统,员工考勤系统,资产管理系统等。B/S模式已经可以满足OA系统的各种需求, 而且更加实用在扩展性较高的系统中。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展, 它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
3、C/S结构在系统中的运用
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统。客户端需要安装专用的客户端软件。C/S一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S结构适宜。
综上所述,结合B/S架构和C/S架构各自特点。
B/S架构系统针对用户范围广,只需要浏览器就使用OA系统。C/S架构系统,对信息安全行好,针对特定用户。 企业的大部分员工使用B/S架构的OA系统处理一般的日常事务。高层对涉及重要保密的信息,用C/S系统进行处理。B/S架构和C/S架构系统协同处理公司的事务信息,使得公司的OA系统既能够满足广泛的运用又能保障公司重要敏感信息的安全。
三、B/S和C/S架构各自的功能设计
1、B/S系统支持功能介绍
B/S结构系统通过浏览器就可以访问服务器上的系统进行办公。使用方便,适合大范围人群使用。具有以下特征的工作用B/S系统部分进行处理:(1) 针对一些工作量大、 繁琐的事情需要很多人力的;(2) 日常基本上每天都要处理的信息;(3)保密性价值不高的信息处理,普通员工能够独立完成的;(4)每个员工自己处理的工作范围的事物。主要这些事情可以放在BS架构系统上,不管员工在何时何地都可以进行办公,处理工作事物。中层管理可以通过系统了解自己管辖范围的公司事物、掌握下属的工作状况、 处理自己权限范围的公文等。
2、C/S模块功能的的设计和介绍
C/S模式的特点是将信息处理进行了有效的分工,共享的数据放在服务器上,与B/S架构系统共享数据。但是两种架构系统读取、调取和处理的数据的功能不同、权限范围C/S架构系统由于自身的安全性和特定用户的特点有较高的处理权限。C/S系统主要处理公司如下几种情况的业务: (1)涉及到高度商业机密的文件和信息处理,由安装特点CS系统的计算机处理;(2)大批量信息处理,由于访问路径不一样C/S结构处理效率更高,同时大量数据也反应一个公司经营状况,大量数据处理要慎用,C/S系统便于管理这些使用权限的人;(3) 高层管理人员处理特殊的数据和核心文件信息。
3、C/S系统与B/S系统协同处理整个公司的业务
C/S架构系统与B/S架构系统协同处理系统的核心是, 共享共同的数据库,同时两种架构系统分工明确各司其职。B/S系统用户多,处理工作量大,但是对数据导出调取等操作权限却小。C/S系统用户少,只针对一些高管,和特殊的工作人员。处理一些庞大数据或者商量机密的工作。用户范围尽量小,对系统和数据库的保密工作就做的更好。
四、系统实现的关键技术
1、ASP.NET技术和C# 语言
因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。 ASP.net同时也是language-independent语言独立化的,所以可以选择一种最适合的语言来编写程序,或者把程序用很多种语言来写,现在已经支持的有C#,VB,Javascript。
ASP.NET一般分为两种开发语言,VB.NET和C#,C# 相对比较常用,因为是.NET独有的语言。
C# 是一种安全的、稳定的、简单的、优雅的,由C和C++ 衍生出来的面向对象的编程语言。它在继承C和C++ 强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C# 综合了VB简单的可视化操作和C++ 的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为. NET开发的首选语言。
本系统B/S架构部分采用基于C# 语言的ASP.NET技术开发。C/S架构部分同样采用C# 语言开发。
2、SQL SERVER数据库的选用
Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/ 服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
其主要特点如下:
(1)高性能设计,可充分利用WindowsNT的优势;
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置;
(3)强壮的事务处理功能,采用各种方法保证数据的完整性;
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQL Server以其内置的数据复制功能、 强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
正是由于SQL Server数据库有如上特点,本系统采用SQL Server数据库存储数据。
五、B/S与C/S架构系统的用户权限设置
1、整个系统用户配置原则
要适应担保公司分公司众多,办公人员级别划分细致, 业务流程繁琐,多变的需求。所有员工可以拥有在B/S系统的账户,C/S系统只针对自己的少数特殊信息处理人员和上层高管人员。
2、B/S系统用户权限设置
一般来讲,B/S系统面对的用户较多,而且用户的级别划分细致,为保护公司机密信息和规范各种工作流转,那么不同的用户所操作的内容应该区别对待,也就是要给不
同的用户设置不同的权限[9]。除此之外还要考虑每个用户的权限的可变性。这就要求系统不仅仅要在权限的分配上要足够多的级别,并且还要能够及时的给用户跟换或增加权限。
C/S系统主要针对高层和特殊的数据处理人员,面向用户相对较少。对应的,用户管理起来也比较方便。高层领导用户可以进行一些涉及到安全或者较敏感的操作,数据处理人员对数据进行大量读取和数据分析。
五、结束语
根据大中型担保公司的需求,设计一款适合满足需要的OA管理系统至关重要。把B/S架构系统和C/S架构系统相结合,协同处理公司事务和信息数据。既保证了了工作效率,又保证了数据安全。
摘要:本文以大中型担保公司的OA管理系统为研究对象。大中型企业分公司和部门众多,接触的信息量和每天产生的文件信息量都非常大。部门组织结构功能之间交叉和联络范围广泛,加上工作流程复杂和多变等特点。设计一款便于的运用的OA系统至关重要。便于使用,直接可以通过浏览器使用的B/S架构的系统,操作人员可以随时随地方便的办公。设计到重要流程处理和重要信息的操作,就要确保信息的安全。设计到敏感和重要的信息处理,可以通过安全性更好的C/S架构系统完成作业。以B/S架构为主C/S架构为辅的OA系统,方便有效的实现大中型担保公司的办公自动化。
C/S结构模型 篇9
1 系统设计
系统采用C/S模型, 其优点在于系统客户端应用程序和服务器部件分别运行在不同的计算机上, 这样的模式有利于用户的操作和更好的数据安全性。系统分为服务器和客户端两部分, 使用方式可以设置成平时练习和正式考试两种方式, 平时练习方式主要用于学生平时学习, 正式考试方式用于课程结课时正式考试。
1.1 服务器程序的功能
主要是实现教师对考试的监控和管理, 服务器功能结构图如图1.1所示。
系统设置:服务器启动时, 可以设置系统使用方式, 考试时间, 每种题型的试题数量, 每题分值, 以及考试场次。
实时信息监控:可以实时查看考场情况, 包括考生登录人数, 交卷人数, 异常人数, 考生考号, 登录时间, 交卷时间, 答题时间, 考生成绩, IP地址等。
成绩查询:可以查询已交卷考生的成绩, 并生成成绩单。
成绩打印:可以打印任何场次的考试成绩单。
试卷备份:每场考试结束后, 可以生成试卷备份文件, 文件中将记录每名考生的学号, 成绩, 答题及标准答案。
统计分析:可以对任何场次的考试成绩单进行统计分析, 分析内容为各个成绩段的考生人数, 百分比, 平均分以及趋势图。
系统帮助:包括系统介绍, 操作说明等。
1.2 客户端程序的功能
主要是实现考生登录系统并进行答题考试, 客户端功能结构图如图1.2所示。
系统登录:考生输入正确考号后, 可以登录考试系统。
考试须知:显示考试要求及注意事项。
试题浏览:可以选择任意题型的任何一道试题。
答题:针对不同题型, 可以进行选择答案或输入答案。
交卷:考试结束时, 可以进行交卷。
查看答案:在练习方式下, 考生可以随时查看答案, 巩固学习效果。
显示成绩:在练习方式下, 考生交卷后, 可以显示考试成绩。
2 关键技术分析
在设计基于C/S模型的网络考试系统的过程中, 需要设计合理的组卷算法, 采用技术手段防止作弊以及对软件系统进行加密。
2.1 组卷算法
在网络考试系统中, 必须设计合理的组卷算法, 才能保证试卷的题目分布合理, 难易程度合适。组卷时, 可以将每个题型的试题分为易中难三种, 同时相似的题目可以划分为一个知识点, 让教师根据考生对课程知识的掌握程度, 选择各种题型的易中难三种题目的试题数量和分值, 系统组卷可以采用随机算法, 但保证相同知识点的题目只能出现一次, 这样就可以在一定程度上, 保证试卷的题目分布相对合理。
2.2 防止作弊的技术手段
在网络考试系统中, 必须考虑如何防止考生采用各种手段违纪和作弊。在客户端, 必须保证考生登录后, 系统界面锁定, 考生无法切换到其他界面, 网络考试系统采用Java技术实现, 而Java程序均在Java虚拟机中运行, 无法直接使用Java程序来进行操作系统层次的屏蔽热键和锁屏的功能, 解决方案是采用C++程序来实现操作系统层次的屏蔽热键和锁屏的功能, Java程序采用Java的JNI (Java Native Interface) 技术, 即Java本地接口技术, 调用C++程序来实现屏蔽热键和锁屏的功能。另外, 为防止考生换题或替他人答题, 在技术上应考虑考生登录时的身份验证, 即相同考号只允许登录一次, 相同客户端只能登录一次, 解决方案是, 考生登录后, 记录考生考号以及客户端特征码 (IP或MAC地址) , 防止考生换题或替他人答题。
2.3 系统加密的措施
为保证试题库和服务器端软件系统的安全, 应该对两者进行加密处理, 解决方案是试题库采用数据库层次的加密;服务器端软件系统的加密, 可以采用国际上较为先进的MD5, SHA等加密算法对软件系统进行加密, 设计自己独有的加密规则, 系统安装时必须具有开发者授权的许可, 系统才可以正常安装和使用, 这样就保证了服务器端软件系统的安全, 防止了对服务器端软件系统的非法复制和使用。
3 结束语
本文尝试对基于C/S结构的网络考试系统进行设计与实现, 详细论述了系统功能以及几个关键技术, 随着网络技术发展, 相信在不久的将来, 结合人工智能、虚拟现实、数据挖掘技术的智能化、人性化的虚拟网络考试系统将成为主流。
参考文献
[1]栗好利.基于局域网的计算机考试系统研究与实现[D].沈阳:东北大学, 2006.
[2]马宝英, 浅谈在线考试系统[J].新疆职业大学学报, 2006 (3) :82-84.