Web专家系统(精选12篇)
Web专家系统 篇1
1 基于We b专家系统的结构
随着internet技术的发展, 网络化已成现代软件的一个基本特征, 采用基于Web的专家系统技术, 是专家系统发展的一种必然趋势。基于Web专家系统的简单结构如图1所示。由浏览器、应用服务器和数据库服务器三个层次所组成, 包括Web接口、推理机、知识库、数据库和解释器。
各部分的功能与其他类型专家系统相似, Web接口用来实现用户与系统之间在internet层次上的交互, 推理机用来实现系统推理和控制系统的运行;解释器用来向用户解释专家系统的推理过程, 知识库用来存放领域知识;数据库用来存放初始事实和中间结果。
基于Web的专家系统将人机之间的交互定位在internet层次上, 系统中的各类用户, 包括领域专家、知识工程师和普通用户都可以通过浏览器访问专家系统的应用服务器, 将问题传递给Web推理机, 而后Web推理机通过后台数据服务器, 并利用数据库和知识库进行推理, 推导出问题的结论, 最后将推出的结论汇报给用户。
2 基于We b专家系统的开发
基于Web专家系统多采用B/S模式。例如可采用浏览器/Web/服务器的三层体系结构, 用户通过浏览器向Web服务器发送服务请求, 服务器端的专家系统收到浏览器传来的请求信息后, 调用知识库, 运行推理模块, 进行推理判断, 最后将产生的推理结构显示在浏览器上。
用户页面可设计成HTML格式, 利用Web技术, 实现与远程服务器专家系统的连接。目前, 实现Web与专家系统连接的可用技术很多, 常用的有CGI (common gate-way interface) 、ISAP、JAVA Applet、ASP、PHP等。
数据库设计应选用主流数据库管理系统来实现。例如, 可选择SQL Server作为专家系统的数据库管理系统。SQL Server不仅是一个高性能的多用户数据库管理系统, 而且提供了Web支持, 具有数据容错、完整性检查和安全保密等功能。利用SQL Server的数据库管理功能, 实现B/S模式下的知识库管理与维护, 可对知识库提供方便的增删改等操作, 可以更好地保证知识库的正确性、完整性和统一性。
3 分布式和协同式专家系统
分布式和协同式是两种不同的先进专家系统, 各自的侧重点和倾向不同。协同式专家系统强调的是协作与协同, 分布式专家系统强调并行和分布。
3.1 分布式专家系统
分布式专家系统是具有并行分布处理特征的专家系统, 它可以把一个专家系统的功能分解后, 分布到多个处理机上去并行执行, 这样在总体上提高系统的处理效率。分布式专家系统的运行环境可以是紧密耦合的多处理器系统, 也可以是松耦合的计算机网络环境。
从结构上来看, 分布式专家系统由多个可分布并行执行的分专家系统所组成, 并且其只是库、推理机、数据库、解释模块等部件也都是可以分布的。因此, 要想设计和建立一个分布式专家系统, 需要解决以下一些特殊问题:a.功能分布;b.知识分布;c.接口设计;d.系统结构;e.驱动方式。
3.2 协同式专家系统
协同式专家系统又叫做“群专家系统”, 是一种能综合若干个相近领域或同一领域内多个方面的分专家系统相互协作、共同解决单个分专家系统无法解决的更广领域或更复杂问题的专家系统。协同式专家系统是解决单专家系统存在的知识的窄台阶问题的一个重要途径。
从结构上来看, 协同式专家系统和分布式专家系统有一定的相似之处, 他们都涉及到多个分专家系统, 但是在功能上却有很大的差别, 分布式专家系统强调的是功能分布和知识分布, 他要求系统必须在多个节点上并行运行;协同式专家系统强调的则是各分专家系统之间的协同, 各分专家系统可以在不同结点上运行, 也可以在同一个结点上运行。因此, 设计和建立一个协同式专家系统, 需要解决如下几点问题:
a.任务的分解。根据领域知识, 将确定的总任务合理地划分为若干个子任务, 每个子任务对应着一个分专家系统。至于一个分布式专家系统应该划分为多少个分专家系统, 一般应尊重领域专家的意见。
b.公共知识的导出。公共知识导出时指吧各子任务所需要的公共知识部分分离出来, 形成一个公共知识库, 共各分专家系统共享。
c.讨论方式。协同式专家系统通常把黑板作为各分专家系统进行讨论的园地。所谓黑板, 实际上是一个设在内存的可供各分专家系统随机存取的存储区。各分专家系统可以随时从黑板上了解其他专家系统对某个问题的意见。获取它所需要的各种信息资源。同时, 也可以随时将自己的意见发表, 供其他分专家系统参考。
d.裁决问题。裁决问题是指如何由多个分专家系统来决定某个问题。其解决办法往往同问题本身的性质有关。若问题是一个非选择题, 则可采用表决法或加权平均法。若问题是一个评分问题, 可以采用加权平均法等办法。若问题是一个互补问题, 则可采用互相配合的方法。
e.驱动方式。尽管协同式专家系统的各个分专家系统可能在同一个处理机上执行, 也仍然存在用什么方式将各分专家系统激活的问题, 也就是驱动方式问题。协同式专家系统的驱动方式与分布式专家系统中采用的驱动方式基本上是一致的, 在分布式专家系统中介绍的驱动方式对协同式专家系统同样可用。
参考文献
[1]王士同.人工智能教程[M].北京:电子工业出版社, 2001.
[2]王万森.人工智能原理及其应用[M].北京:电子工业出版社, 2007.
Web专家系统 篇2
企业用户:
有效节省企业处理报表的成本,提高利润
提高了报表处理的效率和速度
方便企业借助报表来做好预测管理,绩效管理,销售管理,利润管理……
提高领导层对内部营运的了解能力
让企业以经济简便的操作接入商业智能
应用开发商:
加速应用产品的开发速度,降低开发成本
减少维护费用
部署和二次开发:
报表服务器,能够以多种方式集成到应用服务器当中。提供了丰富开放,结构清晰的API接口,可以很简易的嵌入到各种应用程序。支持JDBC,JNDI数 据源,如Oracle,DB2,SQLServer,MySQL等主流的数据库,自定义的程序数据源,文本数据源,Hibernate数据 源,Remedy等等,同时数据源具有无限的扩展性,可以支持WebService, SOA等标准的数据。
1、WEB部署 :FineReport的服务程序以JAR包形式出现,可与应用程序统一打成包一起部署在应用服务器上,安装非常轻松。
2、环境的支持:FineReport报表采用纯JAVA开发,无论设计器还是服务器均支持所有可部署JDK的操作系统、有JDBC接口的数据库,特别对于UNIX/LINUX的支持与Windows是完全一样的3、丰富的API接口:FineReport向应用程序员提供了结构清晰,丰富开放的JAVA API调用,可以对报表进行扩展和深度控制。
4、页面的集成:FineReport报表生成的HTML可在应用页面(JSP)中任意嵌入摆放,浏览器端完全是无缝嵌入
对遗留系统的Web服务封装 篇3
关键词:SOA;Web服务;遗留系统;JNI
中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)15-30773-03
The Web Service Encapsulation of Legacy System
XIAO Yi,WANG Yong-jun
(National University of Defense Technology,Changsha 410073,China)
Abstract:Focusing on all sorts of LEGACY SYSTEM currently present, the paper analyses Service Oriented Architecture (SOA) and Web Service, proposes a design and realization method of encapsulating them as Web Service.This method considers LEGACY SYSTEM’s feature of multi-language(programming language), multi-os(Operation System) maturely, proposes a solution to special system(developed by c/c++ and running on linux/unix),and can efficiently encapsulate LEGACY SYSTEM as Web Service on the basis of SOA.
Key words:SOA; Web service; legacy system
1 引言
1996年,市场研究公司Gartner[1]最早提出了面向服务体系结构(Service Oriented Architecture ,简称SOA)的预言;2002年12月,Gartner又提出“SOA是现代应用开发领域最重要的课题”,并且预计到2008年,SOA将成为占有绝对优势的软件工程实践方法。Gartner建议,主流企业现在就应该在理解和应用SOA开发技能方面进行投资。
对于SOA发展的理解认识,如何实现对遗留系统的重复利用是一个非常重要的环节。这是面向服务架构中实现服务到服务的一个重要基础,也是如何区别面向服务架构体系和其它架构体系的重点所在[2]。本文主要研究对遗留系统进行Web服务封装以构建SOA体系结构的设计与实现。
2 面向服务体系结构(SOA)与Web服务
SOA是根据Internet环境下业务集成的需要,为了连接能完成特定任务的独立功能实体而提出的一种软件系统架构[3]。SOA不是一项具体的技术,因此它与很多已经存在的软件技术(如面向对象技术)并不矛盾,而是一种互补的关系,它们面向不同的应用层次和细节,共同构成合理的软件工程开发方法。对于SOA而言,服务是独立的功能实体,它不负责功能实体的管理和恢复,而强调服务的整合以及重组[4]。
近年来,SOA及其实现技术己经得到国内外众多的组织和公司,尤其是国外的大公司(如微软、IBM、BEA、Oracle、Sun、SAPAG、诺基亚)的大力支持,他们的研究集中在SOA的实现方面,并参与标准的制定。结构化信息标准促进组织(OASIS)、开放SOA合作组织(OSOA)、万维网联盟(W3C)、Web服务互操作组织(WS-I)、互联网工程任务组(IETF)等标准化组织对相关技术和标准作出了不小的贡献[5]。而在国内,SOA几乎已经成为企业应用架构的主流,从2006年6月22日计算机世界“中间件应用年会”上可以看出,大部分主题演讲都涉及到SOA的应用和部署问题。种种迹象表明,SOA已经超越概念走向应用,并逐渐形成一股不可阻挡的潮流[6]。
2.1 相关概念
关于Web服务有多种定义,一般情况下,人们把它定义为:以独立于平台的方式,通过标准的Web协议,可以由程序访问的应用程序逻辑单元。从表面上看,Web服务就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
同传统技术相比,Web服务具有如下特征:
(1)Web服务是平台无关的。通常消息是以XML和一些其他Web相关标准序列化之后通过HTTP传输;
(2)Web服务的软件模块是松散耦合的;
(3)Web服务具有异构平台的互通性。Web服务的最大优势就是提供了异构平台无缝衔接的技术;
(4)Web服务将软件重用提升到了更高的高度。
我们可以采用任何语言在任何平台下把一组功能包装成Web服务并发布,用户只要获得了Web服务的描述信息,就可以生成客户端并通过代理访问Web服务提供的功能。
正由于Web服务的以上特征以及广泛普及,使用Web服务来实现SOA是很好的选择。
Web服务以XML为基础,其核心协议包括SOAP、WSDL、UDDI。
图1 Web服务核心协议
2.2 全新Web服务的构建
Web服务是独立于实现平台的,但是,就具体的实现技术平台而言,当前Web服务的架构平台主要有两大阵营:微软的.NET平台和J2EE平台。
微软的.NET框架包括基本的运行库、.NET框架用户接口库、C#、C++、VB.NET、Jscript.NET、ASP.NET以及.NET框架API的各个方面。
J2EE是开发和部署企业级应用的平台,理所当然地成为开发和部署Web服务的平台。使用J2EE开发和部署Web服务,不仅可以利用J2EE平台提供的可移植性、扩展性和可靠性,最重要的是有大量的J2EE平台提供商,像Sun、IBM、BEA等。JAVA阵营的开源项目也进行的如火如荼。Apache已经宣布结束旧版本的Axis开发,转而专注于Axis2,该版本继承了 Axis 上的所有已有功能,并通过更改体系结构实现了更大的灵活性,从而将其推向了一个新的高度;XFire是一个免费的开源SOAP框架,它不仅可以极大方便地实现Web Services,并且可以提供许多Web Services规范中的高级特征,这些特征在多数的商业或者开源工具都没有提供。
3 对遗留系统的Web服务封装
什么是遗留系统(LegacySystem,后面简称为LS)?任何作为产品在在各种实体中实际运行的系统,从它被交付使用的那一刻起,就成为LS了。LS一般是用传统的方法开发的,很多的LS都没有按组件或者面向对象的思想进行设计开发,大多数都是一些孤立的系统,很少与其他系统之间有信息的集成,而且界面表示逻辑通常与业务逻辑、数据访问混杂在一起。一方面,LS是经过时间检验的,在其中倾注了大量的时间和精力,已经成为整个实体运转过程中值得信赖的组成部分;另一方面,LS也有许多缺点:不够灵活,维护费用昂贵,通常不容易与其他的应用系统集成。
3.1 遗留系统危机
软件产品[7]从发布的那一刻起,与时间和老化的赛跑就开始了。“遗留代码就是昨天写好的代码”这样的陈词滥调越来越真实了。随着技术开发的步伐不断发展,技术废退的步伐也在发展。
信息系统的趋势是随着时间而扩展,而同时移除无用代码的工作很少得到资助。所有这些软件的问题是什么呢?简明扼要的讲,软件越多就意味着要演化和维护的软件也越多。例如,公司修改软件,以响应不断变更的业务实践、修正错误或者改善性能、可维护性或者其他质量属性。这与Lehman的第一定律完全一致:“一个大型程序在不断变更中得到应用,或者逐步变得没有什么用处。”
许多年来累计的代码变化经常会导致代码更加难以维护。Lehman第二定律描述了对一个系统变更的结果:“由于一个大型系统不断的变化,它的复杂性增加了,这反映了不断恶化的结构,除非进行了维护或者化简它的工作。”复杂性的增加意味着,系统越来越变得脆弱,因为每一次变化都很有可能会带来副作用。依此类推,软件维护变得越来越困难。
当维护和增强再不能获取所希望的系统属性的时候,人们就试图通过软件现代化改造来演化一个LS了。
3.2 遗留系统的现代化改造
LS[7]的现代化改造比大多数软件工程师所怀疑的更有挑战性。Standish研究组的研究表明,23%的项目在完成以前就被取消了,而只有28%的项目按时和按预算完成了所期望的功能。LS的现代化改造工作最终失败有各种各样的原因,但可以简化成少数几个因素:复杂性、风险和商业组件。
3.2.1 复杂性
由于大多数LS的规模和内在的不可理解性,我们应该在可能的地方尽量化简复杂性,实在不能消除复杂性的地方管理复杂性,这是非常关键的。虽然还有其他限制,但相比起来复杂性是LS的现代化改造中最大的限制。
3.2.2 风险
许多组织不能正确的管理风险。尽早在项目中识别风险、维护和监视这些风险,并且经常考虑怎样降低识别出来的风险,我们可以从中获益匪浅。
3.2.3 商业组件
在现代化改造工作中使用商业组件是实际的需要,但也并不是没有问题。对于那些用大量商业组件开发的软件系统来说,因为组件版本经常定期更新。如果系统在进入测试阶段以后已经非常成功了,配置管理就不太可能接受商业软件产品新版本的引入。结果,很有可能改造后的系统包含陈旧的或者废弃的组件版本。
3.3 遗留系统与SOA
从业务和竞争力的角度来看,我们可以用一个词来概括用户的实际需求——速度。业务需要迅速响应市场中转瞬即逝的机会。单纯地依靠旧的或新的技术都不可能获得成本有效、完整或足够灵活的解决方案。所以说,在新旧技术之间需要架设一座桥梁,它可以不断扩展现有系统,同时还能提供像Web服务这样的新技术。
在SOA的世界里,完成业务任务的方式是执行一系列的“服务”。只要服务按照期望的方式做出响应,并提供了用户所需要的服务质量,那么对于用户来说,服务到底是如何实现就无关紧要了。这样,在部署了多个厂商软硬件产品的IT环境中,或者在一个LS与新的应用程序、集成技术或数据源混合存在的企业中,SOA成为近乎理想的应用方式。因此,面对IT技术的不断发展,若想继续使用LS提供的功能并希望与其他系统集成构建SOA的话,就需要对LS进行Web服务封装了。
并不是所有的LS都能够进行Web服务封装。如果LS中的功能模块可以经济有效的从系统中剥离出来,则可以把这部分封装成新的组件模块,然后通过Web服务的技术封装成可以作为Web服务发布的形式。如果LS中功能模块的剥离成本要高于重写新的功能模块的成本,则可以直接重写新的Web服务模块。分析要考虑的因素有很多,可以通过面向服务的方法来分析。通过服务,所有的使用者都引用抽象功能或模块以执行希望的动作,其他任意数量的用户也都可以利用这些通用的模块。
3.4 封装技术验证
现有实体A中一直以来运行着LS,随着技术的发展与需求的变化,要求将LS封装为Web服务来构建SOA,目前的条件如下:
(1)LS的运行环境为linux/unix;
(2)LS是基于c/c++开发的。
3.4.1 系统分析
虽然有着两大阵营,但是在linux/unix环境下,由于Microsoft.NET平台的操作系统局限性,J2EE平台就成为我们唯一的选择了。由此带来的问题是:LS是基于c/c++开发的,也就是说,我们在java环境中无法直接对LS进行Web服务封装。对于这一问题,本文给出的解决方案就是:JNI(Java Native Interface,java本地接口)。
JNI技术[8]是java对本地操作的一种方法,它允许java程序调用c/c++写成的本地库函数,而本地函数是以库文件的形式存放的(windows平台上是.dll文件,linux/unix平台上是.so文件)。
基于以上的分析,我们对LS的Web服务封装得出了一个基本的设计方案:对LS的原有系统进行封装,使之符合JNI调用的规范;然后再将得到的java程序进行Web服务在J2EE平台下的封装,由此构建一个标准的SOA。具体架构如图2所示。
图2 架构图
3.4.2 软件开发工具需求
本文所采用的开发工具均为免费自由使用的开源软件。
(1)JAVA开发工具包(JDK1.5.0)
JDK全名为Java Development Kit,是一套Java compiler,JVM,class library及其它工具的组合,是开发Java程序最基本的软体要求。
(2)Apache Tomcat v5.5.12
Tomcat是Sun的JSWDK(Java server Web Development Kit)中Servlet的运行坏境(servlet容器)。Tomcat的源代码被提供给Apache(开放源代码组织)的Jakarta项目,在Open Source的模型下进行进一步的开发。在本文Tomcat 实际上被用来运行JSP页面和Servlet.,即Web服务器。
(3)Apache AXIS v2.0
Apache可扩展交互系统(Apache extensible Interaction System ,AXIS)是Apache软件组织对SOAP规范的实现,是Apache SOAP项目的第三代产品,是在基于可配置的消息链和Handler对象重新设计SOAP的过程中发展而来的。
在AXIS软件中提供了一个AXIS Web应用,可以把它发布到Tomcat服务器中。Tomcat充当AXIS Web应用的容器,而AXIS Web应用又充当SOAP服务(即Web服务)的容器。SOAP客户程序可以通过AXIS API发出RPC请求,访问Web服务。
(4)MySQL Server v5.0.18
由于遗留系统运行在Linux下,使用MySQL作为数据库服务器非常合适。MySQL[9]是一种关系型数据库,它功能强大而且相当简单,同时还能做到轻小高效。它在一个小巧而快速的引擎中集成了大量的特性。虽然与昂贵的商业数据库相比MySQL不具备其全部特性,但对于中等规模的数据库管理来说已经足够了。
3.4.3 服务设计原则
服务是其接口采用某种一致认可的格式发布的服务操作的逻辑分组,关于适用于整个服务的设计原则,目前主要有如下所示:
(1)命名服务时应以最大化易用性为目标
在选择服务、操作、数据类型和参数的名称时有一个指导原则:希望最大化服务的易用性。应使用服务使用者专业领域内有意义的名称,优先选用业务概念而不是技术概念;应使用名词对服务进行命名,而使用动词对操作进行命名。
(2)服务应具有精心选择的粒度
没有可用于确定服务粒度的简单启发式方法。不过有两个在设计服务时应该考虑的因素:
a)服务将通常作为测试和发布的单位。如果粒度过粗,而将大量操作分组到单个服务中,则可能将增加服务的使用者。因此,如果对服务的某些方面进行更改(可能仅为了少数人的利益),则必须重新发布整个服务,从而可能影响所有使用者。
b)服务使用者所面临的一个挑战就是找到正确的操作。通常,使用者需要浏览服务列表,然后在标识为合适的服务中浏览操作列表。因此,服务粒度的两个极端――提供仅有几个方法的很多服务,或数十或数百个操作均集中在几个服务中――都将对易用性造成影响。
在选择服务粒度时,需要在多个因素间进行折衷,如可维护性、可操作性和易用性。
(3)服务应是内聚而完整的
有两个对象设计概念很有用:内聚性和完整性。我们可将这些概念应用于服务接口。
(4)服务应对实现细节进行封装
另一个对象设计原则(封装)也适用于设计服务接口。封装服务实现的细节――所用的算法和资源――能够实现使用者和提供者之间的分离,从而为将来扩展提供灵活性。
3.4.4 接口设计
接口设计在SOA中是最重要的,因为设计糟糕的接口对需要使用这些接口的所有应用程序都会造成负面影响。根据上面所述的服务设计原则,下面以“数据库信息检索”模块为例来说明接口设计。
3.4.4.1 Web服务接口设计
Web服务接口是SOA提供给外界所有应用程序使用的公共接口,起着Web服务与外界门户和桥梁的作用。Web服务通过精心定义的接口对外展现所提供的功能(即服务),对于外界调用接口的应用程序而已,服务接口也是Web服务唯一的价值体现方式。
对于“数据库信息检索”模块来说,它的功能点主要为通过id值在数据库中检索对应的详细信息。下面依据上面所述的服务设计原则,我们进行设计。
按照服务的命名原则,定义服务名(即接口名)为DatabaseInfoService。
对数据库进行信息检索并不是每次都需要所有的相关详细信息,按照一般的定义,可以给出相对应的所有方法。不过,这对于Web服务接口设计而言,就显得有些不太合理了。根据服务粒度选择的原则,我们定义操作getDBInfoDetails:通过id检索时返回所有对应的详细信息,而不仅仅是当前所需要的信息。
因此,Web服务接口设计如下:
public interface DatabaseInfoService{
String getDBInfoDetails (int id); };
在上述代码中,getDBInfoDetails方法返回XML格式的字符串,在这个字符串中含有要检索的数据库信息。
3.4.4.2 java本地接口(JNI)设计
JNI的任务是为了沟通LS和Web服务,因此在设计上直接继承Web服务接口的设计即可:
public interface JQueryDatabase
{
String getDBInfoDetails (int id);
};
设计JNI接口为JQueryDatabase,函数JQueryDatabase是本地方法,但是只有函数声明,具体的实现是通过LS来完成的。
3.4.5 接口实现
3.4.5.1 Web服务实现
Apache Axis提供了WSDL2Java和Java2WSDL开发工具。
WSDL2Java利用已知的WSDL文件生成服务端和客户端代码,从WSDL文件生成客户端存根(stub)代码、服务端框架(skeleton)代码以及WSDL中的数据类型文件,只需向框架代码中补充相关的业务逻辑代码即可以得到完整的Web 服务代码,因此该工具极大地减轻了开发人员的编码负担。
而生成WSDL文件同样也不要手工完成,Java2WSDL根据已有的Java类文件生成WSDL 文件,Java类文件可以是接口类文件。
Web服务的实现过程只需按以下步骤:
(1)java Java2WSDL -cn DatabaseInfoService –o
-cn 开关指定形成服务基础的类。-o 开关指定输出目录。如果没有出现问题,此类将以静默方式执行,在输出文件中生成 DatabaseInfoService.wsdl 文件。
(2)java WSDL2Java -uri DatabaseInfoService.wsdl -ss -sd -d xmlbeans -o service
这是生成服务器端代码。第一个参数是WSDL文件的URL。第二个开关-ss告知应用程序生成服务(而不是客户机)。-sd开关告知应用程序生成XML服务描述符,从而更便于在生成服务代码后进行部署。其后紧跟数据绑定方法。最后,为了保持条理清楚,将服务生成到名为service的新目录中。
(3)java WSDL2Java -uri DatabaseInfoService.wsdl -d xmlbeans -o client
这是生成客户端代码。相应的参数和服务器端代码生成几乎完全相同,不过不需要服务描述符。另外,为了保持条理性,将新文件放入了独立的client目录中。
接下来,只要实现java本地接口,再将Web服务发布即可。
3.4.5.2 java本地接口(JNI)实现
实现JNI的步骤如下:
(1)javah –jni myPackage.JQueryDatabase.class
这是生成c/c++头文件代码。生成后的文件为myPackage_ JQueryDatabase.h。
(2)将生成的头文件加入到LS中具体实现,并生成库文件放
到系统库中。
最后运行即可。
4 结束语
本文对面向服务体系结构与Web服务进行了分析,提出了对遗留系统进行Web服务封装的方法。该方法充分考虑了遗留系统多语言、多平台的特点,较好的解决了linux/unix环境下采用c/c++语言开发的遗留系统的封装问题,为构建面向服务的体系结构提出了一条解决之道。
参考文献:
[1]柴晓路. Web服务架构与开放互操作技术[M]. 清华大学出版社.
[2]Thomas.Erl. SOA历史发展简要概述[M], 2007.
[3]Eric Newcomer,Greg Lomow著. Understanding SOA with Web Services中文版[M]. 电子工业出版社.
[4]毛永茂, 基于SOA的在线商务网站原型系统的设计与实现. 2005.
[5]Thomas ERL著, 王满红 陈荣华,译. SOA概念、技术与设计[M].机械工业出版社.
[6]Dirk Krafzig,Karl Banke,Dirk Slama, 韩宏志,译. Enterprise SOA中文版——面向服务架构的最佳实战[M].清华大学出版社.
[7]Robert C. Seacord, Daniel Plakosh, Grace A. Lewis著, 梁海华,译.遗留系统的现代化改造[M].清华大学出版社.
[8]刘揆, 杜中军. jni技术在三层架构开发中的应用,2003.
[9]George Reese, Randy Jay Yarger, Tim King著, 杨晓云,王建桥,杨涛,等译. MySQL权威指南[M].人民邮电出版社.
Web系统负载测试的实现 篇4
在软件系统日益复杂的今天,考虑到系统终端的维护以及交互问题,许多信息应用系统都采用了Web技术。当一个Web系统未上线使用时,往往不清楚将会有多少注册用户,以及系统能否承受大量用户同时访问。因此,有必要在Web系统正式使用前对其进行全面的负载测试,以检验系统能否达到预期性能。负载测试是Web系统中比较重要的性能测试,主要是在被测系统上不断增加压力,直到性能指标达到极限,如响应时间超过预定指标或某种资源已达到饱和状态。负载测试可以找到系统的处理极限,为系统调优提供依据。本文主要结合作者工作参与的实际项目对Web负载测试的实现进行研究。
2. Web负载测试设计
2.1 需求调研
经过对用户需求的调研和对被测Web系统的分析来确定系统核心业务模块,综合考虑系统角色、数据来源、系统使用习惯、用户预期性能等方面,得出被测Web系统负载测试的主要任务。根据国家软件质量检测标准和用户需求对被测Web系统进行负载测试,检测系统可承受的并发量及响应时间,验证系统是否满足用户需求。
2.2 制定测试案例
1)数据量分析
被测Web系统目标在线用户约85个。根据访问量和数据量分析,可按“并发用户数=在线用户数*30%”公式折算,则系统并发用户数约25个。考虑系统今后的推广,假定未来三至五年用户增长2至3倍,则系统并发量分别为50个、75个。
2)测试策略
采用负载测试工具HP Load Runner分别模拟25、50、75个并发用户,设计独立业务场景和混合业务场景,检测系统典型业务操作可承受的并发量及响应时间,同时监控应用服务器、数据库服务器的系统资源占用情况。
3)测试案例
根据需求分析和数据量分析,制定如下测试案例[1]:
前提条件:整个系统安装配置完成且功能正常。
网络环境:100M局域网。
测试指标:系统响应时间小于5秒。
独立业务场景:登录系统、问题上报、查询统计。
混合业务场景:根据系统实际应用情况,分别以50%、40%、10%的用户数比例执行登录系统、问题上报、查询统计操作进行混合并发。
场景执行策略:各场景分别设置三组测试,并发用户数为25、50、75个。
3. Web负载测试流程
Web负载测试流程主要包括测试环境的确认、测试脚本录制、测试脚本编写与调试、设计测试场景、执行测试、获取测试结果、结果分析等环节[2]。下面针对被测Web系统负载测试的关键环节进行介绍。
3.1 测试脚本录制、编写与调试
该Web负载测试采用测试工具HP Load Runner录制脚本,分别录制登录系统、问题上报、查询统计等三个脚本。为了模拟真实的用户操作,需要对脚本进行编辑与优化。
1)插入事务与集合点
为了获取用户并发执行时的响应时间,可通过HP Load Runner自带的函数在脚本中插入事务以及集合点。如登录系统脚本中的登录系统事务名称设为“login”,可在事务开始和结束处分别添加函数lr_start_transaction("login")和lr_end_transaction("login",LR_AUTO),测试完成后分析报告即可查看该事务最小、最大、平均响应时间以及90%以上用户的响应时间[3];为了模拟用户并发操作效果,可在“login”事务开始之前通过函数lr_rendezvous("login")设置集合点,使多个虚拟用户在此处等待所有用户到达再同时进行下一步操作。
2)进行参数化
参数化的作用是避免多个并发用户采用同一个帐户或提交相同的数据。在登录系统脚本中,首先需要批量创建测试帐号,将脚本中已录制的用户帐号替换为参数{login Name}。然后对参数值列表进行设置,使虚拟用户按一定规则获取用户帐号值。如被测系统执行75个并发用户测试,每个用户循环执行3次,那么可创建测试帐号test001至test225共225个。
3)自动关联
被测Web系统在新建问题时系统会自动生成问题编号,问题上报成功后该问题编号则不可重用。由于录制时生成的问题编号无法继续使用,导致问题上报脚本回放失败。测试工具HP Load Runner提供的数据关联功能可解决此问题,它通过web_reg_save_param函数进行参数定义并调用其参数值来替换动态数据。问题上报时需要把问题编号作为一个动态数据,再次新建问题时便获取一个新的有效的问题编号,然后通过函数保存下来。如存储问题编号的参数定义为WCSParam_Diff,在回放脚本时会产生一个新的问题编号保存为该参数的变量值。
4)检查点
为确保系统查询统计结果的正确性,需要验证查询结果页面,避免返回到“无法显示网页”或因服务器繁忙、数据问题返回错误页面。如在查询统计脚本中,可使用该页面的统计表表名进行文本检查。
3.2 设计测试场景
测试场景主要通过Load Runner控制器进行设计与实现。被测Web系统负载测试分为独立业务场景和混合业务场景,其中独立业务场景只需考虑是否需要多个负载生成器,以及配置虚拟用户的运行策略即可。而混合业务场景还要着重考虑各混合业务的用户数分配比例,这部分内容需要在测试现场进一步向用户确认,若与前期制定的测试案例有偏差,应及时调整,并最终确定系统关键业务及其对应的用户使用比例。
而设置监控点方面,该Web负载测试主要关注客户端交易处理性能指标,可通过测试工具HP Load Runner统计分析平均事务响应时间、Web请求的吞吐量、点击数、HTTP状态代码摘要、Web页面组件等。为了检验系统资源是否满足应用需求,还可以监控应用服务器、数据库服务器系统的CPU、内存、磁盘等资源。除此之外还可对数据库、中间件等进行监控,以检测其配置是否合理,是否能支撑系统的正常应用。
3.3 执行测试
Web负载测试通常安排在非繁忙时段执行,主要关注虚拟用户运行情况、事务响应情况是否正常,系统或脚本本身是否出现报错。根据测试结果及时调整测试策略,可随时停止某个Vuser组或各个Vuser,甚至直接中止场景[4]。该Web系统负载测试时查询统计响应比较慢,因此首次测试时将查询统计的各组并发量调整为25、35、40个。
3.4 结果分析
场景执行完毕后可利用Load Runner分析器获取测试结果报告,从业务处理情况、服务器资源、Web服务器资源、数据库资源等进行综合分析[5]。通过整改被测Web系统中查询统计耗时较多的页面,经回归测试表明系统可支持目前及今后推广所预计的应用要求,负载测试过程中系统响应正常,服务器资源利用合理。
4. 结束语
本文以被测Web系统贯穿全文,阐述了Web系统负载测试流程,论述Web负载测试设计与实现,重点描述了测试需求分析、测试案例的制定、测试实现等环节。本文展现的Web系统负载测试实例,有助于读者了解目前Web系统负载测试情况,使读者达到触类旁通,并可将测试需求分析、测试设计、负载测试工具的应用、自动化测试流程等经验应用到其它测试领域。
摘要:本文结合作者工作中参与的测试项目,对Web系统的负载测试进行研究;根据软件测试理论和负载测试原理,采用负载测试工具HP LoadRunner对Web系统进行负载测试;通过分析被测系统的测试需求,设计相应的测试案例。文中引入了自动化测试流程,采用专业的负载测试工具,描述整个Web系统的负载测试设计与测试实施过程。
关键词:Web系统,性能,负载测试,并发,事务
参考文献
[1]陈绍英,夏海涛,金成姬.Web性能测试实战[M].北京:电子工业出版社,2006,24:139.
[2]谈姝辰,尹军.基于负载的Web性能测试研究与应用[J].现代电子技术,2007,30(14):140.
[3]杨莲,陆际光.Web应用性能测试研究[J].电脑知识与技术,2008,2(11):247-250.
[4]柳纯录.软件评测师教程[M].北京:清华大学出版社,2005:304.
Web系统-收银员操作手册 篇5
收银员操作手册
收银员系统界面
收银开单流程:
1.点击“收银开单”,进入收银单界面
输入框底纹为浅蓝色的地方为系统自动生成部分
2.在商户编号输入框内,可使用模糊查询
输入商户名称的拼音首字母,即可显示品牌,例如:优越,输入“yy” 输入商户编码的后三位,也可找到该品牌 按空格键,则显示所有商户列表
3.输入合同编码,按商户开具的定销货单的编号,按回车键进入一下输入框 4.输入合同金额,按商户开具的定销货单内容,按回车键进入一下输入框 5.输入应缴金额,按商户开具的定销货单内容,按回车键进入一下输入框 6.选择会员卡,非会员按回车键进入一下输入框
7.选择参与活动,默认情况下会显示该商户参加的最新活动,按回车键确认后自动计算优惠金额
如果商户同时参加2个活动,根据定销货单开具参加的活动选择对应的活动
开业价不参加活动的,删除参与活动框中的内容,按回车键即表示不参加活动,对应的活动优惠金额自动变为0 8.按总计收款数收取,根据顾客支付方式选择对应的支付方式
优惠券/卡为特殊方式,金额在券卡号中选取对应的券/卡,且不找零 刷卡费用根据系统管理员后台设置的费用率、费用上限自动计算 9.点击“保存”按钮保存该收银单
(保存后)
10.点击“预览”按钮,打印该收银单(预览前可对刚保存的单据进行修改)
★ 收银单未打印,系统禁止开具下一单
(预览后编辑按钮禁用)
收银清单查询
系统管理员设置收银员的查询权限仅查看本人的销售记录清单
默认收款日期为当日,点击“刷新”按钮后,显示收银员的当日所有的销售记录(右上角记录行数可调整单页显示行数)
查询条件可使用收款日期、收款编号、厂商编号、品牌名称等
例:2012年4月30日,收银员查询自己帐台所收的厂商优越的销售记录
关于退货业务的处理说明
1、当天退货,收银台作废收银单(作废单由领导审核组权限审核作废单)
2、收银单作废 隔天退货,财务部开退货单
打开收银清单,找到需作废的单据并点击单据
(如当日收银单据较多,可在查询中输入作废单据的收款编号精确查询)
收银单被作废后,该单据由收银清单中转至作废清单
同时作废收银单转入作废待审核状态
审核后的作废单状态
收银员每日对账单
点击“刷新”在显示列表中选中收收银员,再按左上角“单据按钮” 自动弹出收银员对账单,点击“预览”即可打印出收银员对账单
谷歌浏览器清空缓存
1、点击谷歌浏览器左上角“自定义浏览器”
2、点击“选项”,进入“高级选项”
3、点击“清除浏览器数据”
基于Web的网上订餐点菜系统 篇6
一、系统软件介绍
本系统以Visual Studio.NET 2003为开发平台,采用B/S模式,以VB.NET语言为基础进行开发;数据库采用关系型数据库SQL Server 2000;系统软件可在Windows或Unix平台上运行。
二、数据库设计
本系统的数据库主要涉及餐位、食品、用户、订单等信息。采用关系型数据库SQL Server 2000进行设计,主要包括以下表,表中含有下划线的字段为各表的主键。
1.餐位表Seats。该表主要包括SeatID(餐位编号)、Location(位置)、Nums(容纳人数)、Charge(收费标准)、State(预订状态)等5个字段。
2.类别表Kind。该表包括KindID(类别编号)、KindName(类别名称)2个字段。
3.产品表Products。该表主要包括fID(食品编号)、fName(食品名称)、Price(价格)、fIntro(食品介绍)、KindID(类别编号)等字段,其中KindID字段与类别表中的KindID字段对应。
4.用户表Users。该表主要包括UserID(用户名)、UserPwd(密码)、Sex(性别)Email(电子邮件)、Address(联系地址)、Tel(联系电话)等字段。
5.订单表Orders。该表主要包括OrderID(订单编号)、UserID(用户名)、Location(位置)、TotalNum(订购食品总数量)、TotalMoney(订购食品总价格)、HavingDinnerDate(用餐日期)、HavingDinnerTime(用餐时间)、OrderingTime(预订日期)等字段,当用户提交注册信息时,即返回一个订单号OrderID。其中UserID与Users表中的UsersID相同,用来确定该订单属于谁。
6.详细订购信息表Orders_Detail。该表包括OrderID(订单编号)、fID(食品编号)、fNum(订购数量)。表中的订单号OrderID与Users表中的订单号相同,表明该记录属于哪一笔订单。
7.管理员表admin。该表包括2个字段:adminName(管理员名)和adminPwd(管理员密码)。
三、系统详细设计
使用ASP.NET开发的网上订餐点菜系统,具有如下功能:
普通用户模块。普通用户可以进行食物营养查询、预订餐位、浏览食品、订购食品、用户注册、用户登录、订购信息查询、网上留言等。
管理员模块。包括餐位管理、类别管理、食品管理、订单管理、用户管理及留言管理等。
根据系统要实现的功能,进行了如下设计。
1.用户模块设计。
(1)预订餐位模块。在首页中提供了可用餐位的信息,包括人数、收费标准等。单击“预订”按钮,即可预订该餐位,同时在页面中显示所选的餐位信息,并显示一个“开始订菜”按钮。在首页中提供了查询食物营养、查询订单、留言等超链接。
(2)订菜模块。选择“开始订菜”,即进入订菜页面。用户可以浏览全部或某一类食品;也可以按食品名称或价格进行查找;可以查看食品的详细信息。单击“订购”按钮可将选定的食品放到订餐车中。在订餐车中显示所订购的食品,可以修改食品数量,删除食品,可以返回继续订购,也可以取消本次订购。
(3)下订单模块。本次订购结束后,在订餐车中选择“下订单”,进入用户注册页面。收集用户的信息及用餐的日期、时间等信息。提交注册信息时,将用户信息写入Users表,将订购食品的总数量、总金额及用餐的日期、时间及预订日期等写入Orders表,同时返回一个订单号,并将订购的详细信息写入Orders_Detail表,包括订单编号、食品编号和订购数量。
(4)订餐信息查询模块。提交注册信息后,随即进入登录页面,输入用户名和密码后,即可显示该用户详细的预订信息及总的费用。
(5)用户留言模块。用户可通过留言板进行留言,留下自己的意见和建议等。
2.管理员模块设计。通过管理员登录页面进行登录,确认其是否具有管理员资格。如果是管理员,即可进入管理员管理页面。
(1)餐位管理模块。这是管理员模块中重要的一部分。作为餐饮的餐位状态在一日三餐后都需要及时更新。在该模块中,通过选择日期及就餐时间,可查询每天的预订情况,每一餐的预订情况,查询餐位情况。在预订的用餐时间过后,将餐位的可用状态恢复为“是”。
(2)食品类别及食品管理模块。管理员可添加和删除类别,添加和删除食品。
(3)用户管理模块。可以查询用户信息,并对用户进行删除。
(4)订单管理模块。可以按日期查询订单,删除过期订单。
(5)用户留言管理。作为管理员,可以回复用户留言,删除留言等。
四、关键技术
订餐车设计是本系统的关键。在订餐车中,利用HashTable和Session对象保存订购食品的食品编号和数量。当订购食品时,首先检查Session中的HashTable是否存在,如果不存在,就创建一个HashTable,并将其保存到Session中。如果要订购一种食品,从Session中读取HashTable,将食品编号和订购数量添加到HashTable中,重新将HashTable保存回Session中;如果要订购订餐车中已经存在的食品,从Session中读取HashTable,按食品编号找到该食品,将对应的数量加1后,将HashTable保存回Session中;如果要修改食品数量时,从Session中读取HashTable,在其中找到该食品,直接修改数量即可;如果要删除某种食品,从Session中读取HashTable,在其中找到该食品,将该项删除即可。
要显示订购的食品信息,只需从Session中读取HashTable,并根据食品编号从Products表中查找对应的食品名称、价格等信息,并根据HashTable和Products表中的信息生成一个DataTable,绑定到DataGrid控件显示出来即可。
五、结束语
本课题属于电子商务中的一种,但又不同于电子商务。通过网上订餐点菜系统,可以实现订餐位、点菜、食物营养查询等功能,可以为许多饮食行业所应用,可以合理地利用人力、物力、财力等现有资源,产生更大的经济效益。
高校Web系统安全防范 篇7
大学门户网站系统已经从简单信息发布平台,逐步演化为汇集远程教育、资源共享、招标采购、招生就业等功能的综合业务平台,有着日益广泛的影响力。众多高校门户网站被挂马、被篡改的案例告诉我们,Web系统安全是校园信息安全的重中之重。
Linux系统因为强大的面对网络应用的性能和丰富的功能,在Web服务器领域有着举足轻重的影响力。Linux是一种相对安全的操作系统,相对于Windows系统,这种安全除了来自于自身健壮性,还得益于其作为服务器操作系统的使用门槛以及PC桌面用户对其熟悉程度不高。作为开源系统,一旦有新的系统漏洞被发现,世界各地的开源志愿者就会积极踊跃地来及时修补它,然而相对于操作系统自身的漏洞,更多的威胁来自于系统和应用程序的配置缺陷以及管理上的漏洞。文章将对Linux系统下Web(Apache服务器)安全做一些探讨。
2 Linux系统安全
2.1 检测是否有入侵
如果Web服务器没有在出口做地址映射,而是直接连接到公网上,那么服务器就会有个固定的IP地址,通常会有许多非法用户尝试登录系统,查看/var/log/secure可以得到相关信息。
2.2 口令安全
口令安全是系统安全的第一步,从理论上说没有破解不了的口令,只要有足够的资源和时间就可以做到,口令必须保证一定的复杂度并且自己能够记住,不能在任何地方写出来,特别是不能写在电子文档里,因为在PC系统里,很难做到干净的系统,这是享用一些盗版或免费软件大餐时所付出的代价,所以才有保密原则里的“上网不涉密,涉密不上网”。
2.3 禁止不必要的服务
设置/etc/xinetd.conf所有者为root,且权限为600。同时禁止作为Web服务器不必要的服务,如imap、login、shell、telnet、talk、ntalk、auth、etc、finger、pop-2、pop-3。
2.4 配置TCP-WRAPPERS
Linux默认允许所有的请求,在/etc/hosts.deny里放入ALL:ALL,然后将允许的请求放入/etc/hosts.allow,如sshd:10.10.10.10/255.255.255.0 allow.open.com
允许IP地址为10.10.10.10/24和主机名allow.open com进行ssh连接。
2.5 禁ping
阻止系统响应任何ping包请求。如果没有人能接收到对系统的ping包回应,将大大增强站点的安全性。例如可以将echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all加入到/etc/rc.d/rc.local里,以便系统每次启动自动加载,或者在iptables里加入规则:[root@ad]#iptables–A INPUT–P icmp–j DROP。
2.6 只允许一个终端登录
/etc/securetty文件制定允许root登录的设备,它被/bin/login程序读取,其格式一般如下:
tty1
#tty2
#tty3
可以注释掉后面的几个,只留下一个。
2.7 禁用特别账号
禁用所有在安装系统和应用程序时默认添加并且在实际中不需要的账号,账号越多受到攻击的可能性越大,以下是作为Web站点一般不需要的账号:adm、lp、sync、shutdown、halt、mail,直接删除。如果不要sendmail服务器和服务,删除用户news、uucp、operator、games和组news、uucp、games;如果不用X Windows服务器和服务,删除用户gopher、ftp和组dip、ppusers、popusers;如果不用匿名FTP,删除用户ftp和组adm、lp、mail;如果不用pop服务器,删除组slipusers。同时用chattr命令给/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow加上不可更改属性,如[root@ad]#chattr+i/etc/passwd。
2.8 禁止普通用户su到r oot
修改/etc/ssh/sshd.config文件,Permit Root Login改成no,再重启ssh服务。[root@ad]#/etc/rc.d/sshd restart。
最后为避免仍有普通用户登陆后将权限提升到root的可能,将su命令属主改为root,将su命令的权限改为700。
2.9 开启Linux系统自带防火墙
以下命令依次为打开iptables,清空所有规则,输入输出链默认动作设置为DROP,再根据需要打开需要的端口(80),允许lookback,保存退出,重启生效
2.1 0 配置日志服务器
Linux使用syslogd作为日志监控进程,配置独立的日志服务器,记录包括Web服务器在内的众多日志信息,方便从众多日志记载中获得有价值信息,同时可以避免在系统遭入侵后,黑客删除痕迹,以作评估。
3 Apache服务器安全
合理地配置可以使Apache服务器免遭很多攻击。
3.1 打好补丁
及时升级系统或添加补丁,用最新最高版的安全版本对加强Apache服务器的安全至关重要。例如果将openssl升级到0.9.8e或者更高版本,伪造的密钥将渗透不到系统里去。
3.2 隐藏Apache的版本信息
软件的版本号对攻击者来说极有价值,黑客还可以从中知道哪些配置处于默认状态。去除版本号可以修改/etc/httpd.conf,找到Server Signature,修改如下:
Server Signature off
Server Tokens Pord。
Server Tokens目录被用来判断Apache会在Server HTTP响应包的头部填充什么信息,如上修改,HTTP响应包头会被设置成:Server:Apache。
3.3 SSL加密
普通的http协议数据包都是明文传输的,明文信息对任何窃听者都是可见的,为了避免敏感信息被窃听,可以对数据加密,Linux系统下apache+openssl方案来实现加密传输。
3.4 让目录结构更安全
Apache服务器包括如下四个主要目录:
Scrip Alias CGI脚本目录;
Customlog和Errorlog日志目录;
Server Root保配置文件和二进制文件目录;
Document Root站点数据目录。
对以上目录严格控制访问权限:Server Root目录和日志目录只能被root访问,Script Alias目录只能被Apache用户和CGI开发人员访问,Document Root被Web站点管理员和Apache用户以及Apache用户组访问,且以上四个目录间相互独立,没有逻辑上的父子关系。
3.5 用专用账户和组来使用Apache
“最小特权”原则是系统安全里的基本原则之一,既保证了用户完成必要的操作,又将其异常操作行为产生的破坏限制到最小。比如有的系统安装就使用了nobody用户和nogroup组,如果FTP也是用nobody用户,那一旦nobody用户被控制,会同时危及到多个服务。
3.6 禁止使用目录索引
Apache服务器接收到用户访问目录的请求时,会调用Directoryindex命令查找目录索引文件,通常为index.html,如果没有,则会动态显示该目录的列表,从而暴露了Web站点的目录结构,因此可以通过修改httpd.conf,通过option指令禁止Apache使用目录索引,修改如下:[root@ad]#Options–Indexes Folow Sym Links。
4 第三方设备防护
4.1 安全监测
网站的安全漏洞是受攻击的根源,可以通过升级程序以及依靠经验来保护系统,但是新的漏洞总在不断地被发现,靠人力手工来应付这种更新会很力不从心。另外现在的管理员面对的是越来越多的设备和系统,所以提前定期地对系统进行扫描,借助第三方设备尽早发现系统漏洞,采取措施,可以防患于未然。有一款行业领先的漏扫工具显得很有必要。
4.2 Web应用防火墙
传统边界防火墙只是针对一些底层(网络层、传输层)的信息进行阻断,它是以IP包五元组为基础的包过滤行为,Web应用防火墙用到的是应用层的访问控制列表,它面对的对象是网站的地址、网站的参数、整个网站互动过程中所提交的一些内容,包括HTTP协议报内容。由于Web应用防火墙对HTTP协议的完全认知,通过深度包检测技术(DPI),可以知道是否有攻击行为,IPS也只是做部分认知,不能做深层次的扫描,漏洞扫描工具是做到事前防范,Web应用防火墙则是做到在线防御。
5 落实管理制度
好的管理制度是网站安全必不可少的手段。这些制度包括密码维护、数据备份和恢复、数据容灾、网站安全应急预案、网站管理员培训等等。制度的制定通常都有章可循,更重要的是制度的落实和坚持。
6 结束语
网站安全已经变得非常重要,它关系到数据安全,关系到舆论影响,但是网站安全没有绝对可靠的方案,它是一项系统工程,需要从多个层面去关注。只有立体式多方位的防护,才可以保护我们的Web系统,或者在系统遭受攻击后可以做出科学评估和迅速恢复。
参考文献
[1]吴应嘉.基于Linux系统下的Web服务器安全探讨.《网络天地》.
[2]尹欣.Linux系统的安全性.《Linux应用实例与技巧》,2001.
[3]http://linux.chinaunix.net/techdoc/system/2007/03/23/953026/shtml.
基于Web系统的安全研究 篇8
随着计算机技术和互联网的发展,电子商务、网络办公的兴起,越来越多的政府机关、企业事业单位都办起了自己的各种Web系统,例如OA办公系统、信息发布系统、工资查询系统、驾校预约系统、在线考试系统、干部测评系统、成果申报系统等,这些系统的使用极大地提高了工作效率、节约了人力、节约了资金给使用部门带来极大的便利,但同时也给这些部门带来极大地风险。目前各个单位在开发Web系统时将大量的资金和精力花费在设备和Web系统的功能和性能上, 甚少考虑Web系统的安全问题, 导致系统极易受到黑客的攻击或被黑客篡改了数据,导致系统崩溃或其他问题。
本文就基于Web系统安全机制方面的问题进行了分析,Web系统的安全性除了受Web应用程序设计的影响, 还包括运行Web应用程序的操作系统及数据库等因素的影响。
2 Web 应用程序设计问题
2.1 用户权限设计
每种Web应用程序在设计的时候都要进行仔细的需求分析,要考虑好各类用户权限的设定和划分,避免使得用户在使用时获取到身份不相符权限,或者页面缺少身份验证,用户不经身份验证就打开相应的页面等问题。例如在干部测评系统中,根据系统参与人员分析我们把测评系统用户分为系统管理员、纪委监察员、信息上传员、参与投票用户共四类人员,其各自权限有:(1)系统管理员权限:设定被测评的部门和被测评人员,负责导出投票结果,保存历史测评信息,具有对纪委监察员和信息上传员信息初始化的权限;不具有对参与投票用户信息管理的权限;(2)纪委监察员权限:设定参与测评的部门和人数, 并利用系统随机生成用户名和密码,并将用户名和密码下发给相关人员;监控测评进度;具有对自身信息修改的权限;(3)信息上传员权限:具有对自身信息进行更改的权限;上传被测评部门和被测评人员的信息等;(4)参与投票用户权限:具有对自身信息进行更改的权限;可对被测评部门和被测评人员进行投票。
2.2 程序设计问题漏洞
不管Web程序设计基于某种语言或脚本, 因使用语言或脚本本身就有部分缺陷导致产生安全漏洞,比如对特殊字符的判断或者会话管理漏洞等。例如在asp.net中的“cookie会话”漏洞,入侵者自己在URL中创造一个假的会话标识(ID),并将其提交给服务器,服务器被欺骗以为会话是合法的,会创建一个会话。这个漏洞使得攻击者可以窃取会话并装扮成一个合法用户自由访问程序。
3 Web 数据库安全问题
Web数据库中存储的数据都是系统的重要信息 ,例如在线考试系统中存储学生登录用户名、密码、答卷信息、各科考试成绩;阅卷教师账户、密码、试卷信息等。这些信息一旦丢失或被非法入侵者篡改了数据,将对学校教学工作带来混乱, 使得学生对学校考试的公平性、公正性产生怀疑。根据数据库的自身特性对数据库安全方面要考虑几个问题:(1)对Web应用程序中进行必要的脚本审核,过滤一些类似“,; @ /<>%”等字符,防止SQL注入攻击;(2)对于SQL Server数据库,要利用其的安全配置给超级sa用户设定健壮的密码 (密码长度超过9位);(3)建议采用SSL来加密通信协议;(4)对数据库中的关键信息进行MD5加密,如试卷信息、教师账户、教师密码、学生账户等;(5)拒绝来自1434端口的探测,建议修改TCP/IP使用的端口;(6) 删除一些不必要的服务,如管理扩展存储过程。对于中小型系统,根本用不到多少系统的扩展存储过程,为避免系统的存储过程被人利用起来提升权限或进行破坏, 建议将扩展存储过程Xp_cmdshell去掉。
4 加强 Web 服务器的安全
Web服务器的安全受到二个层面的威胁。一方面是操作系统本身的漏洞,非法入侵者可以这些漏洞进行攻击,甚至会利用这些漏洞绕过操作系统直接获取到数据库文件和程序源码。另一方面是指搭建Web服务器的工具软件自身存在的安全漏洞。
4.1 操作系统是一切应用软件的基础
操作系统是一切应用软件的基础,其安全对应用软件至关重要,加强操作系统安全主要需要从制定安全策略和加强账户管理入手;(1) 对账户口令设置要使用安全强壮密码,避免使用规则性单词和昵称、生日等,多使用一些非字母的特殊符号等;(2) 删除不必要的操作系统账户;(3)给操作系统管理员Administrator改个名字,并创建陷阱用户,增加非法入侵破解难度;(4)关闭不需要的系统服务;(5)及时安装系统补丁;(6)安装防火墙和杀毒软件;(7)开启系统事件日志,日志可以记录非法入侵者的行踪,系统维护员可以根据这些行踪了解分析其做过什么,留了什么后门,给系统会造成什么破坏及隐患,帮助系统管理员有针对性地实施维护。
4.2 在 Web 服务器的软件平台上应用。
Web应用程序是在Web服务器的软件平台上应用的,我们经常使用的ⅡS或者Apache软件,也存在安全漏洞,容易受到攻击和利用。主要漏洞有几种。
(1)物理路径泄露。一般是由于Web服务器处理用户请求出错导致的,例如入侵者通过提交一个超长的请求, 或者是某个精心构造的特殊请求, 或是请求一个Web服务器上不存在的文件。建议安装Web服务器时更改默认路径,不要安装在系统盘。
(2)目录遍历。通过对任意目录附加“../”,或者是在有特殊意义的目录附加“../”,或者是附加“../”的一些变形,如“..”或“..//”甚至其编码,都可能导致目录遍历。
(3)执行任意操作系统命令。主要包括两种情况。 一是通过遍历目录,来执行系统命令。另外一种就是Web服务器把用户提交的请求作为SSI指令解析,因此导致执行任意命令。
(4)缓冲区溢出。缓冲区溢出漏洞是Web服务器没有对用户提交的超长请求没有进行合适的处理,这种请求可能包括超长URL,或者是其它超长的数据。这种漏洞可能导致执行任意命令或者是拒绝服务,这一般取决于构造的数据。
(5)拒绝服务。拒绝服务产生的原因多种多样 ,主要包括特殊的目录,超长的URL,超长的HTTP Header域,畸形HTTP Header域或者是DOS设备文件 等。由于Web服务器无法处理这些特殊请求或者是处理方式不当,就会出错终止或挂起任务。
(6)解析漏洞。利用各个Web服务器对文件解析的错误植入木马或展开攻击,如:Apache服务器会将 *.php.*1.*2.*3解析为PHP文件 ,IIS?7.0/IIS?7.5在默认Fast-CGI开启状况下,在一个文件路径(/*.jpg)后面加上 /*.php会将/*.jpg/*.php解析为php文件等。
5 结束语
互联网技术的发展、计算机的普及, 催生了各种Web应用系统的越来越广泛的使用 ,Web应用系统安全性问题越来越受到重视, 本文就Web系统安全方面存在的问题从Web应用程序、Web数据库和Web服务器等三个方面进行了分析和探讨。
摘要:随着计算机技术和互联网技术的发展,各级政府机关、企业事业单位都在研发自己的网站,将各种业务都通过Web系统进行办理。事实上企事业单位往往注重Web系统的功能和性能,却很少注意到Web系统的安全问题,文章就基于Web系统安全问题进行了研究和探讨,并就系统中的安全漏洞提出了解决途径或方法。
Web专家系统 篇9
关键词:Web GIS,对虾,专家系统
1、必要性
湛江对虾养殖规模居广东省首位, 是中国对虾养殖的主要产区之一。2007年达到44.8万亩, 年产量达18.2万吨, 占广东省40%, 占全国21%, 是中国最大的对虾养殖基地, 最大的虾苗、加工及出口基地。对虾生产的质量安全管理, 不仅关系到消费者的生命和健康, 而且深刻地影响到湛江经济和社会发展与稳定。进行对虾病害防治信息化建设的研究, 建立对虾生产保障体系, 对适应新时期渔业和农村经济结构战略性调整, 提高湛江对虾在国际市场上的竞争力, 保障对虾产业的可持续发展有着重要的现实作用和深远的战略意义。
本文设计的对虾疾病专家系统包括在客户端有关对虾病害数据的录入, 网络数据库的建立, 专家系统推理机模块 (BP神经网络) 和网络地理信息系统的发布等。本系统可以直观的了解对虾疾病的发病趋势和流行区域, 针对养殖户在客户端录入的病症信息, 推理出病害的性质和治疗方法等, 便于养殖户及时治疗, 减少病害所造成的损失。
2、技术介绍
2.1 Web GIS简介
Web GIS又称万维网地理信息系统, 是在因特网下的一种存储、处理、分析、显示与应用空间信息的计算机系统, 是GIS与Web的有机结合。Web GIS不仅拥有大部分乃至全部传统GIS软件具有的功能, 而且还具有利用因特网优势的特有功能, 即用户不必在本地计算机上安装GIS软件就可以在因特网上访问远程的GIS数据和应用程序, 进行GIS分析, 在因特网上提供交互的地图和数据等, 从而为广大GIS用户提供更为广泛的地理信息服务。Web GIS已经成为目前国际GIS发展的主要趋势, 成为GIS发展到了一个崭新阶段的标志。
2.2 专家系统
专家系统是运用特定领域的专门知识, 通过推理来模拟通常由人类专家才能解决的各种复杂、具体的问题, 达到与专家具有同等解决问题能力的计算机智能系统。专家系统作为一种计算机系统, 具有操作成本低、易于传递和复制、易达成一致性的特点, 并且可以处理费时及复杂的问题。1965年, 费根鲍姆等人研制了世界上第一个专家系统Dendral, 用于推断化学分子结构。经过40多年的发展, 专家系统已被运用到各个行业。我国从20世纪80年代末才开始从事水产领域专家系统的研究, 目前已经成功开发的专家系统有淡水虾养殖专家系统、河蟹养殖专家系统、饲料投喂专家系统和智能化鱼病诊断专家系统等。
3、系统实现
3.1 数据来源
数据来源病害数据有三个来源, 一是分布于对虾养殖区的病害监测站点管理人员即时将收集到的有关病害、水质指标、苗种和饲料信息录人到数据库中;二是对虾养殖户通过网络终端将遇到的病害特征和一些与养殖有关的数据按网页提供的格式传送到数据库中;三是根据典型的病例和症状所建立的数据库, 包括专家的建议和经验。
3.2 Web GIS实现
电子地图在项目实施过程中, 应用地理信息系统软件Map Xtreme 2004, 将各个水产病害监测站点的信息数字化, 建立监测站点的数据地图。首先将监测站点所涉及的行政区域地图输入计算机, 对各地理单元进行标识, 并赋予一系列属性数据, 从而构建了对虾病害专家系统数字地图的基础图库, 用于实现对虾病害专家系统的检索和数字化管理。
3.3 知识库构造
知识库结构知识库内容很多, 提供各种病原的照片及由该病原所引发疾病后各种症状的图片, 病原种类和病原照片是一对多的关系;通过病害的流行病学研究, 病原的生物学研究和病原种类特征的描述等可确定病害的影响区域和流行范围;通过疾病调查可了解该病害发生的背景, 比如苗种、饲料和水质等;提供防治的一些指标参数、治疗的方式方法和一些经过国家认证的治疗药物等, 组成病害防治知识库。以上这些相关资料组成了对虾病害专家系统的知识库, 并由知识库管理系统进行统一管理。
4、系统实现
Web GIS的实现主要通过浏览器访问服务器上的地理信息文件, 一方面, 浏览器需要增加解释和显示GIS数据的功能, 另一方面, 服务器需要具备动态产生GIS数据文件的功能。Web GIS实现了矢量地图文件的传输显示, 可以实现把传统GIS的全部功能搬到Web GIS上。
Web Server的主要功能是负责接收用户端浏览器发来的请求, 然后调用相应的服务功能, 最后返回结果。本文根据对虾疾病流行学调查数据等, 并结合这些数据和地理信息之间的关系, 将对虾疾病的数据直观地体现在电子地图上, 综合系统内部的推理机, 将水产疾病影响的区域和以后的发病趋势都作了相应的预测, 最终结合Web技术实现网络发布。
5、结语
本系统可以直观地在电子地图上反映调查区域的对虾疾病流行情况和影响区域, 同时为对虾养殖人员搭建与水产专家交流的平台, 平台的网络收集信息和网络发布功能可以让相关的对虾养殖、科技人员及时的了解病害的发展动态和最新资讯;根据系统数据的地理特点实现了Web GIS功能, 将对虾养殖户关心的数据和分析、统计结果直观地表现出来, 便于管理部门做出科学及时的决策。
参考文献
[1].朱恩林.中国农作物生物灾害防治回顾与展望[J].植保技术与推广, 20oo, 20 (2) :37-39.
[2].胡月明.土地信息系统[M].广州:华南理工大学出版社, 2001:1-16.
[3].COBB D A, OLIVERO A.Online GIS service[J].The Journal of Aca-demic Librarianship, 1997, 23 (6) :484_497.
Web随书光盘系统的比较 篇10
1 Web随书光盘系统
将光盘网络化给读者带来的便利是不言而喻的, 但是人力和资金的大量投入却让很多中小馆无法承受。而web随书光盘系统在一定程度上缓解了这种压力。Web随书光盘系统也被称作光盘云系统。工作过程如图1所示。
在该系统中, 光盘资源的加工和存储由光盘数据运营商提供, 因此光盘资源不存在图书馆本地, 而是通过Internet从运营商提供的服务器中取得。运营商为图书馆提供调用光盘数据的API, 图书馆将API嵌入OPAC网页中。读者在OPAC检索图书时, API会对比本地图书资源的光盘数据的ISBN及215字段中的$e和307字段的$a。如果配比成功, 则在OPAC系统中会显示光盘信息, 用以检索和下载。光盘OPAC系统调用API之后的效果如图2所示。
用户只要点击光盘链接, 就会直接下载光盘。
这种Web随书光盘系统很好的和OPAC系统融合, 而OPAC系统是图书馆用户检索图书馆资源最常用和最熟悉的工具, 因此, 这种方式很容易被读者接受和利用。另一方面, 该系统在一定程度上省去了图书馆的人力成本、硬件成品及维护成本。因此, Web随书光盘系统已经被很多高校图书馆使用。
目前, 国内市场上常见的Web随书光盘产品主要是畅想之星、广州图联和麦达博云。主要对这三种产品做比较分析。
2 三种Web随书光盘的比较
2.1 畅想之星
畅想之星非书资源管理平台, 由ASP.net开发。是针对图书馆的非书资料管理的平台, 该平台把各种媒体资源加工、发布、浏览等功能高度融合一起, 对非书资料进行管理和利用。主要功能有:资源的分类浏览、资源总览、资源检索、对各种资源可以直接利用 (在线运行、收看、收听、阅读、下载、请求光盘资源等) 。光盘数据格式分为视频 (WMV/RMVB/MKV/FLV) 、音频 (MP3/WMA/RM) 、电子文档 (PDF/DOC/TXT等) , 其他格式均压缩成ISO格式等。使用该系统需要安装相关插件。“畅想之星”采用无连接协议方式, ISO文件通过无连接的HTTP协议装载, 因此, 没有数据访问时网络自动断开, 因此可以节省带宽和服务器内存。
2.2 广州图联
联图XOPAC (eXtend OPAC, 图书书目强化数据服务系统) 由java开发。采用云计算和Web2.0技术, 实现对图书馆现有OPAC的智能扩展。可以在OPAC中无缝对接联图非书资源云服务系统 , 实现随书光盘等非书资源智能下载链接。该系统采用松耦合模式和AJAX异步传输技术, 不会对现有OPAC系统功能和性能造成任何影响。目前通过测试的OPAC系统有ILAS、汇文、北邮、金盘、新世纪、ALEPH等。可以在线打开常用的格式, 诸如PDF、文档、图片等。读者不需要安装任何插件或客户端软件, 实现在浏览器中直接查看光盘内容。
2.3 麦达博云
博文光盘云系统由java开发, 系统会自动判断读者与服务器之间的网络速度以及光盘的运行类型 (即光盘的数据量大小) , 提醒读者选择最适合自己的光盘浏览方式:在线浏览、网碟下载、迅雷下载。如果网速快、数据量小, 则会推荐在线浏览;如果网速很慢、数据量大, 则会推荐迅雷下载。
2.4 三种系统的比较 (见表1)
从表1可以看出, 这三种产品的功能都十分相似, 在开发环境和具体实施细节及操作上各有不同。因此图书馆在选择此类产品时应该从自身特点出发, 重点考察如下几个方面:
1) 光盘系统是否与本馆OPAC之间做到了真正的无缝对接。
2) 随书光盘资源的覆盖率和本馆随书光盘的覆盖率。
3) 光盘下载速度。
4) 光盘信息加工的程度, 包括光盘信息的揭示程度, 光盘信息的格式等。
3 结束语
Web随书光盘系统在一定程度上缓解了图书馆在光盘管理中存在的人力与资金不足的矛盾。因此逐步被图书馆所重视。如何选择Web随书光盘系统, 也成为图书馆必须要解决的问题。从本馆实际出发。从联系该系统的OPAC和本馆馆藏图书的实际情况出发, 才是保证Web随书光盘系统使用率的关键所在。
摘要:概述了传统方式下, 图书馆管理书附光盘过程中出现的矛盾和存在的不足, 然后描述了Web随书光盘系统的工作原理和管理方式。最后对国内最常见的3种Web随书光盘系统做了比较。图书馆在选择此类产品时应该从自身特点出发, 选择最适应本馆环境的Web随书光盘系统。
关键词:随书光盘,非书资料,OPAC链接
参考文献
[1]于秀芬, 张曾昱.基于云存储架构的随书光盘镜像服务器构建探讨[J].图书馆, 2011, 30 (2) :72-76.
[2]覃柳慧.图书馆随书光盘管理模式的调查分析[J].内蒙古科技与经济, 2011, 24 (19) :155-156.
[3]李蕾.浅谈随书光盘管理现状和网络化数据库建设措施[J].科技情报开发与经济, 2011, 21 (16) :1-2.
[4]杨桦.ILAS II图书管理系统与畅想随书光盘系统集成初探[J].科技情报开发与经济, 2011, 21 (18) :20-21.
[5]吴乾清.基于畅想之星平台的随书光盘网络化管理与发布[J].农业图书情报学刊, 2010, 19 (6) :57-59.
[6]赵励.浅议随书光盘管理模式[J].科技情报开发与经济, 2010 (2) :17-18.
[7]许文丹, 刘文哲, 冯现永.基于WEB的图书馆随书光盘发布系统的设计与实现[J].价值工程, 2010 (22) :133-134.
构建基于Web的在线考试系统 篇11
关键词:在线考试系统;.NET;B/S结构;数据库;Web
中图分类号:TP311.52
现代教育技术的发展促进了高校教学理念和教学方法的变革,特别是计算机技术和Internet持续迅猛的发展,也给传统的教育评价体系提出了新的挑战。考试,作为教育评价的主要形式,逐渐纳入教学改革的视野。以往传统模式下的考试方式存在着诸多弊端,已无法再满足现代教育模式下学校建设发展的需要,将先进的计算机与网络技术应用于教学和管理体系中,是改革高校教育模式,提高学校教学、科研和管理水平的必要手段。
如今,借助现代教育发展的先进技术手段,众多高校纷纷构建和发展自身的校园网络环境,随着数字化校园建设的日趋完善,考试的技术手段和载体也在发生着革命性的变化。从传统的纸笔考试到计算机辅助考试,再到计算机化自适应考试,其实现方法由单机形式逐步向不受时间、地点约束的网络远程化考试发展,这使得基于Web的在线考试成为现实。
1 学院目前考试现状和改进意义
当前,学院课程考试采取传统笔试与部分课程上机考试并用的方式。其中计算机化考试的场所全部集中在学校现教中心下属的实验机房,使用有“我爱C”计算机语言考试系统和蓝鸽校园网语言学科平台考试系统。通过调查研究学校计算机使用情况、校园网环境以及现有考试系统的特点和使用状况,发现目前的计算机考试方式主要还存在以下几个问题:
(1)现有的考试系统面向学生的考试应用模块都采用C/S模式建构,这使得考试前的客户端软件安装工作繁重,后期维护也极不方便。
(2)以C/S模式为主的考试构建体系使得上机考试在时间、地点上存在很大的局限性,考试需通过机房管理员安排在指定的机房进行,属于组织型的定时定点的基于局域网的考试,不适应网络考试的发展趋势。
(3)中心实验机房的资源使用已日趋紧张,考试的组织工作越发困难,而现有考试系统因为应用范围的局限性不仅无法解决这个问题,其继续使用也必将无法满足大规模计算机化考试的需要。
(4)现有考试系统都存在诸多功能上的不足,例如缺少试卷及试题分析功能,考试评估反馈能力较低;学生不能远程登录进行在线考试和模拟自测,无法满足自适应教学的需要。另外,后台的服务器和系统管理是远程连接,所有权在校外开发商,由于网络的不确定因素影响,会给考试的前期准备带来麻烦,也不利于今后系统的升级和扩充。
(5)学院现已建立起了自己的校园网,其范围可以说覆盖校园内各个角落,甚至是学生宿舍,而现有考试系统的使用却无法充分利用起这些硬件资源为教学考试服务。
为解决以上种种弊端,改进目前考试状况的不足,充分利用校园网环境内所有的计算机和网络资源,缓解考试压力,提高教学管理水平,适应学院数字化校园建设发展和适应性人才培养的需要,建立一个良好的基于Web的在线考试系统是非常重要和必须的。
不论是相比传统的卷面考试,还是现有的基于局域网的考试,使用基于Web的在线考试系统可以进一步改进、扩充和完善原有考试系统的功能,具有很重要的现实意义:
(1)题库的集中管理和使用实现了教学资源共享。可以提供试题的查询、浏览、引用、上传下载等功能,同时由于使用B/S结构,依托Web数据库技术,有利于开发和建立多媒体题库,大大丰富试题种类。
(2)自动化组卷、阅卷减轻了教师的工作强度,大大提高工作效率,提高考试的实效性,缩短了考试周期,使教师有更多的时间专注于自己的教学和科研工作。
(3)可以实现教考分离以及考务工作的全自动化管理,减轻考务工作的难度,降低考试成本,尤其是在远程教育中具有较高的经济效益。
(4)可以实行大规模的考试,有效利用校园网的软硬件资源,使其发挥出最大效力。
(5)科学、智能的组卷策略实现了考试的客观公正性;内容详细、层次更高的分析结果则充分发掘考试效果,科学评价了教学效果,促进教师不断改进教学方法,提高教学水平。
(6)促进学生学习方式的转变,有利于学生的发展。学生由以前单一的、被动的接受考试变成自我探索、发现、协作学习等多种形式的组合学习,更能发挥主观能动性去参与人机互动、师生互动,同时,考前的练习自测也有利于提高学生自我评价能力。
(7)通过互联网,可以打破时间和地域的限制,实现异地时时考试、远程在线考试,极大地简化考试过程安排的复杂性。
2 系统设计思路
本系统是为了适应教学考试发展的需要而设计开发的,是一个使用更简单、实用性更强、完全开放的在线考试系统,可在Intranet/Internet上进行各种实时的考试,实现系统管理、题库管理、试卷管理、考试管理、成绩管理、试卷分析等主要功能。
2.1 系统架构
鉴于B/S(三层式)结构具有较好的独立性、可伸缩性和安全性,适合于不同数据库之间的互连,并且便于管理维护,因此本在线考试系统采用客户端、Web服务器及数据库服务器的B/S模型开发。利用微软公司的IIS架构Web服务器,以SQL Server 2005作为数据库平台,借助ASP.net在.NET平台中对三层体系结构的良好支持,结合Web的开放式技术及数据库技术,完成在线网络考试平台的建立。
2.2 系统功能
根据系统需求分析和设计目标的要求,本系统可设计为四大功能模块:系统登录模块、系统管理模块(权限管理;用户管理)、考生考试模块(在线考试;在线练习;成绩查询)和教师管理模块(题库管理;试卷管理;考试管理;成绩管理;试卷分析)。
2.3 系统开发环境
开发环境完全选用整套微软的软件平台,以求使系统在兼容性和性能上获得最大的提升和保障。在线考试系统使用基于组件的应用开发策略,以Microsoft Visual Studio .NET 2005为开发平台,C#为开发工具来完成开发。客户端安装IE 8.0浏览器,应用界面通过ASP.net应用程序和XML Web服务来实现;Web服务器采用Microsoft的IIS 6.0,运行于Windows Server 2003之上;数据库使用SQL Server 2005,通过ADO.net技术和ODBC类对数据库进行数据存取。
3 结束语
由于在线考试系统以基于Web的B/S模式建构,具有很强的开放性。所以,系统的安全性也是设计开发过程中一个不容忽视的关键问题。建立有效的安全机制,保障考试数据的安全和系统的稳定运行,将是需要着重解决的技术难点。只有这样,在线考试系统才能在学院教学考试中得到广泛的应用。
参考文献:
[1]王建华,张军.现代教育技术与计算机网络考试系统[J].黑龙江高教研究,2003,3.
[2]郑家辉,万东梅.利用校园网组建网络考试系统的研究[J].石家庄铁路工程职业技术学院学报,2003,6.Vol.2 No.2.
[3]刘晓林.基于B-S模式的网上考试系统的设计与实现[J].湖南工业职业技术学院学报,2006,6.Vol.6 No.2.
作者简介:杨捷(1975-),男,湖北武汉市人,武汉理工大学研究生毕业,研究方向:计算机网络及应用。
Web应用软件系统测试研究 篇12
大多数Web系统采用Browser/Server结构。一个典型的Web系统的结构示意图如图1所示, 包括客户端浏览器、Web应用服务器、数据库服务器、网络及中间件。其中客户端浏览器可以是一般浏览器、手机浏览器和平板电脑等, 例如Internet Explorer、Netscape等;Web应用服务器用于发布Web页面, 接收来自客户端的请求, 并把请求结果返回客户端, 常用的Web应用服务程序有Apache、Tomcat等;数据库服务器保存数据库, 常用的有Oracle、SQL Server等;网络及中间件则提供客户端的请求到Web服务器的通道, 网络可以是Internet/Intranet/Extranet, 也可能是局域网。对于重要的系统防火墙与CA服务器也是必不可少的。因此, Web系统的测试是一项比较复杂的测试工作。
Web应用软件的测试与传统软件相比, 既有相同之处, 又有不同的地方。文献2提出了寻找PHP应用程序中的故障的方法。文献3提出一种Web应用软件结构模型, 该模型分为函数级、函数群级、对象级、对象群级和应用级共5级。就Web应用软件的系统测试进行研究, 从Web应用软件的组成:网页和网站两个层次展开。
1 Web应用软件的网页测试
网页, 是网站中的一个页面, 由文字、图形、动画、音频、视频和超级链接等组成, 通常是HTML格式, 文件扩展名可以是.html、.htm、.asp、.aspx、.php、.jsp等。用户通过对浏览器的操作, 搜索查看所需要的信息。网页测试包括功能测试和可用性测试。
1.1 网页的功能测试
网页的功能测试包括内容测试、链接测试、表单测试和Cookies测试。
内容测试用来测试Web系统提供信息的正确性、准确性和相关性。内容测试通常使用一些文字处理软件进行自动测试, 例如Microsoft Word的“拼音与语法检查”功能, 同时还需要人工测试文本内容和网页上图片的文字描述。
链接是Web软件的一个主要特征, 它使用户实现页面之间的切换。链接测试需要测试3个方面的内容:首先是测试所有链接是否按指示的那样确实链接到了应该链接的页面;其次测试所链接的页面是否存在;最后保证Web网站上没有孤立的页面, 所谓孤立页面是指没有链接指向该页面, 只有知道正确的URL地址才能访问。链接测试可以手动进行, 也可以自动进行。链接测试必须在集成测试阶段完成, 也就是说, 在整个Web网站的所有页面开发完成之后才进行链接测试。
表单是一些需要在线显示和填写的表格, 例如用户注册、登陆、信息提交等。表单测试主要是模拟表单提交过程, 测试表单提交是否准确。表单测试主要考虑以下几个方面: (1) 表单提交应当模拟用户提交, 测试是否完成功能。例如使用表单来进行在线注册, 要测试提交按钮能否正常工作, 当注册完成后能否返回注册成功的消息。 (2) 测试提交操作的完整性, 以测试提交给服务器的信息的正确性。 (3) 如果使用表单收集配送信息, 应确保系统能够正确处理这些数据, 需要测试服务器能否正确保存这些数据, 而且后台运行的程序能否正确解释和使用这些信息。 (4) 要测试数据的正确性和异常情况的处理能力。 (5) 表单测试时, 会涉及到数据校验问题。例如, 用户注册页面中在某可选字段区中不填写内容提交表单, 在某必填字段区中不填写内容提交表单, 输入超出字段所能接受的最大长度的字符串。对于有固定操作流程的表单测试, 可以考虑自动化测试工具。
Cookies是由网页服务器发送出来存储在客户端浏览器目录的非常小的文本文件, 通常用来存储用户信息和用户在某些应用系统上的操作序列, 当一个用户使用Cookies访问了某一个应用系统时, Web服务器将发送关于用户的信息, 并把该信息以Cookies的形式存储在客户端计算机上, 这可用来创建动态和自定义页面或者存储登录等信息。B/S结构Cookies中存放的信息更多。如果Web系统是用了Cookies, 需要对它们进行测试。测试内容包括:Cookies是否能正常工作;Cookies是否按预定的时间进行保存;刷新对Cookies有什么影响等。例如:如果在Cookies中保存了注册信息, 应确认该Cookies能够正常工作而且已对这些信息进行加密。如果使用Cookies来统计次数, 需要验证次数累计正确。
1.2 网页的可用性测试
网页的可用性测试包括导航测试、图形测试和界面测试。
导航描述了用户在一个页面内操作的方式, 可以在不同的用户接口控制之间, 例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。导航测试的内容包含:导航是否直观?Web软件的主要部分是否可以通过主页访问?Web软件是否需要站点地图、搜索引擎或其他的导航器帮助?测试导航条、菜单、连接的风格是否一致?测试各种提示是否准确, 确保用户凭直觉就知道是否还有内容, 内容在什么地方。最好让最终用户参与导航测试, 效果将更加明显。
在Web软件中, 适当的图片和动画既能起到广告宣传的作用, 又能起到美化页面的功能。一个Web软件的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有: (1) 测试图形是否有明确的用途, 图片或动画不要胡乱地堆在一起, 以免浪费传输时间。 (2) 测试所有页面字体的风格是否一致。 (3) 测试背景颜色与字体颜色和前景颜色是否搭配。 (4) 图片的大小和质量也是一个很重要的因素, 一般采用JPG或GIF压缩, 最好能使图片的大小在30KB以下。 (5) 测试文字环绕是否正确。 (6) 测试图片能否正常加载。
界面测试是对整个Web系统的页面结构设计的测试, 是用户对系统的一个整体感受。例如, 当用户浏览Web网站时, 应考虑:页面各元素的位置、颜色、大小比例是否协调?是否感到舒适?用户在界面中的操作是否容易, 能否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?
2 Web应用软件的网站测试
所谓网站, 就是指在Internet上, 根据一定的规则, 使用HTML等工具制作的用于展示特定内容的相关网页的集合。用户通过网页浏览器来访问网站, 获取自己需要的信息或者享受网路服务。网站测试在网页测试的基础之上还包括功能测试、性能测试、安全性测试和兼容性测试。
2.1 网站的功能测试
网站的功能测试包括数据库测试、Web网站特定的功能需求测试和设计语言测试。
数据库在Web网站中具有十分重要的作用, 数据库为Web网站的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用软件中, 最常用的数据库类型是关系型数据库, 可以使用SQL对信息进行处理。数据库测试是Web网站测试的一个基本组成部分。测试人员需要了解后台数据库的内部结构和设计概念, 执行详细的数据库测试计划, 至少能在程序的某个流程点上并发地查询数据库。数据库测试要测试数据完整性、数据有效性、数据操作和更新。
测试人员需要依据程序需求规格说明书对Web网站特定的功能需求进行测试。例如:开发一个在线考试系统, 测试用户可能进行的所有操作:考生登录后自动组卷, 考生答题结束后自动收卷, 试卷自动分析和评阅, 考生查询成绩, 教师试题录入等。
不同的Web设计语言版本的差异可以引起客户端或服务器端严重的问题, 例如使用哪种版本的HTML;尤其在分布式环境中开发时, 开发人员都不在一起, 这个问题就显得尤为重要。除了HTML的版本问题外, 使用Java、Java Script、Active X、VBScript或Perl等开发的应用程序也要在不同的版本上进行测试。
2.2 网站的性能测试
网站的性能测试对于网站的运行而言非常重要, 主要包括负载测试、压力测试和连接速度测试。
负载测试是为了测量Web系统在某一负载级别上的性能, 以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量;也可以是在线数据处理的数量。负载测试包括的内容有:测试Web系统最多能允许多少个用户同时在线?如果超过了这个数量, 会出现什么现象?Web系统能否处理大量用户同时对同一个页面的请求?负载测试应该安排在Web系统发布以后, 在实际的网络环境中进行测试。一般使用自动化工具来进行。
压力测试是测试Web系统的限制和故障恢复能力, 也就是测试Web应用系统会不会崩溃, 在什么情况下崩溃。压力测试的区域包括表单、登录和其他信息传输页面等。压力测试应该关注:瞬间访问高峰, 每个用户传送大量数据, 长时间的使用。压力测试需要利用一些辅助工具对Web系统进行模拟测试。
连接速度测试是对打开网页的响应速度的测试。用户连接到Web应用系统的速度根据上网方式的不同而不同, 可能是电话拨号上网、宽带上网、局域网、有限电视网、光纤网、移动网络。不管用户使用哪种方式, 系统都不能让用户在访问一个页面时等太长的时间。如果访问一个页面Web系统响应时间太长 (例如超过10秒钟) , 用户就会因失去耐心而离开。有些页面有超时的限制, 如果响应速度太慢, 用户可能还没来得及浏览内容, 就需要重新登录了。而且连接速度太慢, 还可能引起数据丢失, 使用户得不到真实的页面。
2.3 网站的安全性测试
对于有交互信息的网站以及电子商务网站, 网络安全问题尤为重要, 需要对Web系统进行安全性测试, 包括目录测试、SSL套接字测试、登录验证测试、日志文件和脚本语言的测试。
目录安全是Web安全性测试中不可忽略的问题。如果Web系统处理不当, 通过简单的URL替换和推测, 会将整个Web目录暴露给用户, 这样会造成Web的安全性隐患。每个目录下应该有Index.html或严格设置Web服务器的目录访问权限, 这样就不会显示该目录下的所有内容。
SSL (Security Socket Layer) 是由Netscape首先发表的网络数据安全传输协议, 它利用公开密钥/私有密钥的加密技术, 位于HTTP层和TCP层之间, 建立用户和服务器之间的加密通信, 从而确保所传送信息的安全性。如果Web系统使用了SSL, 需要测试是否有相应的替代页面, 适用于3.0以下版本的浏览器, 这些浏览器不支持SSL。当用户进入或离开安全站点的时候, 测试是否有相应的提示信息。还要测试是否有连接时间限制, 超过限制时间后会出现什么情况等。
目前很多网站都需要用户注册后登录使用, 从而校验用户名和匹配的密码, 以验证其身份, 阻止非法用户登录。登录测试的主要测试内容有:测试用户名和输入密码是否大小写敏感?测试有效和无效的用户名和密码?测试用户登录是否有次数限制, 如果有次数限制, 超出限制是否还能通过验证?测试是否限制从某些IP地址登录?测试密码选择是否有规则限制?测试哪些网页和文件需要登录才能访问和下载?测试是否可以不登录直接浏览页面?测试Web应用系统是否有超时限制?
日志文件对于保证Web应用系统的安全性至关重要, 需要测试相关信息是否写进了日志文件, 是否可追踪。
脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录, 其他脚本只允许访问邮件服务器。但有经验的黑客可以利用这些缺陷攻击和使用服务器系统。测试人员需要找出站点使用了哪些脚本语言, 并研究该语言的缺陷, 测试是否构成安全问题。
2.4 网站的兼容性测试
兼容性测试用来测试Web系统是否可以在用户使用的机器上运行。如果用户是全球范围的, 需要测试各种操作系统、浏览器以及浏览器各种设置下Web系统能否正常工作, 包括平台测试和浏览器测试。
市场上有很多不同的操作系统类型, 最常见的有Windows、Unix、Macintosh、Linux等。Web网站的最终用户究竟使用哪一种操作系统, 取决于用户系统的配置。这样就可能会发生兼容性问题。同一个应用可能在某些操作系统下能正常运行, 但在另外的操作系统下可能会运行失败。因此, 在Web系统发布之前, 需要在各种操作系统下对Web系统进行兼容性测试。而且客户端分辨率设置的不同也可能会使网页内容显示面目全非, 影响用户的正常使用, 还要测试页面版式在640x400、600x800或1024x768的分辨率模式下是否显示正常?
浏览器是Web系统客户端最核心的软件, 来自不同厂商的浏览器对Java、Java Script、Active X或不同的HTML有不同的支持, 甚至有些HTML命令或脚本只能在某些特定的浏览器上运行。例如, Active X是Microsoft的产品, 是为Interne Explorer而设计的, Netscape本身是不支持Active X的, 需要安装插件。另外, 框架和层次结构风格在不同的浏览器中也有不同的显示, 甚至根本不能显示。不同的浏览器对安全性和Java的设置也不一样。浏览器测试的一个方法是创建一个兼容性矩阵, 在该矩阵中, 测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。另外, 浏览器中许多设置也会影响Web系统功能, 例如缓存设置、Cookies设置、显示设置、安全设置等, 还需要测试浏览器不同设置是否影响Web系统的功能。
3 结语
Web应用软件的测试同传统软件的测试一样, 测试工作应贯穿其设计和开发的整个过程, 就Web应用软件的系统测试进行研究, 讨论了针对网页和网站展开的各项测试。但对于Web应用软件测试用例的设计和自动化测试还需进一步研究。
参考文献
[1]郭玉环, 高建华.Web应用程序的动态测试生成方法.计算机工程与设计, 2013, 34 (3) :930-934.
[2]柳纯录.软件评测师教程.北京:清华大学出版社, 2010.