web服务器的实验报告

2024-09-01

web服务器的实验报告(10篇)

1.web服务器的实验报告 篇一

网页设计实验报告

学院:计算机

专业:网络工程

班级:0430801

学号:08490121

姓名:姚树秘

2011年5月10日Web

实验一

实验题目:编程环境的熟悉 实验目的:

1、学会使用Macromedia Dreamweaver 软件,了解并掌握该软件的各种功能,为以后的网页设计打下基础。

2、重点学习使用“页面创建”和“设置服务器信息”功能

实验环境:

操作系统为Windows2000或者Windows XP,应用软件为Macromedia Dreamweaver。

实验步骤:

1、启动

单击“开始”,依次指向“程序”、“Macromedia ”,然后单击“Macromedia Dreamweaver MX”。

2、熟悉和了解Macromedia Dreamweaver MX界面

实验过程截图:

心得体会:

通过这次试验,基本熟悉和掌握了Dreamweaver软件的功能和用法,能够用该软件设计简单的网页。

实验二

实验题目:熟悉ASP技术及它的内置对象 试验目的:

1. 了解并掌握ASP初步知识 2. 熟悉ASP内置对象

试验步骤:

1、打开软件设计页面

2、输入下列代码

3、建立一个自动监测浏览时间并根据不同时段动态显示不同页面内容的 ASP 程序,请将以下代码输入到Macromedia Dreamweaver的代码编辑区 , 命名为test1.asp

4、运行结果

实验过程截图:

5、建立一个学生情况调查表,并将学生填写的内容写入数据文件student.txt中。

6、设计编译结果

心得体会:

通过本次试验我学会了很多,软件的掌握和使用也更加熟练,能够成功的打开ASP文件,更加熟悉了ASP的运用和使用技巧,以及学会怎么打开IIS服务器,设置站点信息。

实验三

试验题目:

实现与后台数据库的连接

试验目的:

学会在ASP页面访问数据库的方法,包括对后台数据库进行各项操作; 试验环境:

Windows2000/Windows XP(已安装有IIS系统),Microsoft Access数据库 实验步骤:

1、利用 ASP 的 Database Access 组件通过 ADO 连接并操作 WEB 数据库

2、单击“开始”,选设置控制面板。

3、双击图标“32 位 ODBC” , 将弹出一个对话框,选标签“System DSN”

4、单击“Add”添加一个 DSN 入口 , 选择如“Microsoft Access Drive”并确认。

5、在“Data Source Name”栏里输入你希望指定的 DSN, 然后单击“Select”选择数据库存放位置,你可以按“Browse”来选取。

6、以上步骤完成后在 ASP 程序中指定 DSN

7、现有两个数据库表:students表记录学生的一般数据,其中字段studID为学号,studName记录学生姓名,score表记录学生成绩,其中computer字段和english字段分别记录studID所表示的学生的计算机和英语课程成绩。实验相关代码:

<% @ language=javascript %> 请输入查询条件PLEASE INPUT CONDITION

2.web服务器的实验报告 篇二

一、Web服务器选型

在选择Web服务器产品时, 必须充分考虑整个应用系统平台的性能和可扩展性。大多数旧版网上产品采用的模式是Web服务器+CGI程序调用。在此种模式下, 客户端向服务器发起请求, 后台系统需要启动系统进程, 运行对应的CGI程序, 系统的开销相当大, 且扩展能力也差, 不能满足日益增长业务处理需求, 此类模式已不适合新一代网上银行产品。目前, 企业级应用的技术路线主要包括DCOM, CORBA和J2EE。在用户激增的条件下, J2EE架构模式具有可移植、可扩展、高可靠及高性能的优势, 同时, 市场上成熟的软、硬件平台和供应厂商较多。大型商业银行大多选择IBM的Web SPHERE产品系列。Web SPHERE采用的是Web服务器和应用服务器分离的架构模式, 该产品符合J2EE技术规范, 支持JSP, SERVLET和企业级JAVA BEAN等轻量级线程, 所有客户端请求通过对应线程进行处理, 系统的开销低、效率高, 同时Web SPHERE具有灵活的体系结构, 在不同的场景下可以进行横向和纵向扩展, 满足不同的性能扩展需求。

二、Web服务器的性能配置

Web服务器性能配置从投资成本和业务需求出发, 分为投产之初的低负荷环境、业务增长期的中等负荷环境以及大并发下的高负荷环境3种场景, 可以采用部件扩容、横向升级等方式提升Web服务器的性能。

(一) 投产之初低负荷环境

在系统投产之初, 考虑到系统低负荷及投资成本, 可采取集中部署的方式, 即将Web服务器、应用服务器、数据库服务器和中间件服务器等部署于同一台机器, 这样既可节约成本又可满足性能需求。

(二) 业务增长期的中等负荷环境

在业务发展和用户访问量增大的环境下, 服务器的响应变慢, CPU利用率升高内存和硬盘交换频次明显增大, 究其原因是系统的内存不足。由于服务器会把大量SESSION暂存在内存中, 当内存空间不足时, 会将SESSION信息保存到硬盘, CPU忙于等待内存和硬盘数据交换, 系统运行效率大大降低。解决办法是扩充服务器的内存, 同时优化调整配置参数。

(三) 大并发下的高负荷环境

在大并发访问的环境下, 系统数据库处于繁忙状态, 数据库连接资源严重不足。可以对系统硬件进行横向扩展, 采用分布式部署方式, 即数据库服务器与应用服务器分别部署在独立的服务器上, 或引入多台Web服务器及应用服务器并行工作, 提高系统的吞吐量, 降低单点故障的可能性, 满足高负荷环境下的业务需求。

三、应用系统的优化

在系统编码时, 必须注意系统资源的利用率。比如尽量不要利用用户会话信息来传递大的对象, 注意内存回收。同时, 必须重视对代码的抽查工作, 争取在早期开发测试期间发现问题。

3.嵌入式Web服务器的实现 篇三

关键词 嵌入式Web 服务器 控制设备

中图分类号:TN915.08 文献标识码:A

1 主程序流程

在主程序流程中,主要设计实现包括两大部分:第一是对接收到的以太网数据帧进行解包:第二则是对要发送的数据进行封装并发送。系统初始化模块主要包括了LPC2I32微控制器的初始化、网络接口芯片ENC28J60的初始化、TCP/IP协议栈中各标志的初始化等:ARP处理模块主要完成接收ARP请求并发送ARP响应;ICMP处理模块主要完成接收ICMP回显请求并发送ICMP回显响应;TCP数据处理模块主要完成对TCP数据包及HTTP数据的处理。当程序运行时,首先对系统初始化,这时系统处于等待状态,直到有数据帧到达。ENC28J60接收完数据帧以后,首先去除帧头,然后判断该数据帧的报文是否为ARP包,若是,则进行ARP数据包处理,若不是,则检查数据报头,看IP数据包的报文是否为ICMP数据包,若是ICMP数据包,则转到ICMP数据处理子程序。若不是ICMP数据包,就继续进行判断,看是否为TCP数据包,若为TCP数据包则转入TCP数据处理子程序,若此时即不是ICMP数据包也不是TCP数据包,则将该包丢弃。

子程序的设计是为了完成TCP/IP协议体系的每一层的功能的,TCP/IP协议的每一层都是相互联系的,但也是相对独立的,具体由下面7个部分实现:以太网驱动程序、以太网层程序、ARP协议处理程序、IP协议处理程序、ICMP协议处理程序、TCP协议处理程序、HTTP协议处理程序。

2 网络接口的实现

网络接口是Web服务器与外界交流的接口。操作系统提供网络协议栈的支持,最主要是TCP/IP以及socket套接字系统函数库。网络接口使用操作系统提供的socket函数族建立可远程通信的套接字。它分两部分,一部分在系统初始化的时候建立,另一部分在HTTP引擎模块里面实现。网络接口模块的功能描述为:首先建立socket。socket是BSO Unix提出的进程间通信(IPC)机制,它是一种双向的通信接口,使得可以在两个不同进程(通常是网络上的不同节点的进程)之间可以直接通信。

2.1 中心处理模块

中心处理模块是嵌入式Web服务器的核心。它进行全局的控制和管理。它通过accept()接收HTTP请求,调用read将请求接收到本地,然后进行请求解析。根据请求的内容,判断是属于动态内容还是静态内容,如果是动态内容则调用相应的动态处理函数,如果是静态内容则访问VFS获得相应的内容。然后将获得的内容包装成为HTTP响应,返回给客户端。中心处理模块还实现控制管理信息和容错机制。

2.2 动态文件预处理器

Web服务器必须有交互能力才是有实际意义的服务器程序。目前大多数的Web服务器都是利用CGI(Common Gateway Interface,通用网关接口)来实现应用程序的接口。本论文从嵌入式系统的角度出发,实现了一种内部的应用程序接口。

动态文件预处理器所实现的功能是将普通的Web动态资源转变成为可编译的函数代码。设动态文档为f.dtm,它包含内容{x,f(a)}。其中x为静态的内容,F()为应用程序,a为通过解析HTTP请求得出的参数。动态文件预处理器将f.dtm转变成为f_dtm.c。它的内容为(f_dtm( )},它是一个函数,实现功能为输出{x',f(a)}.其中f(a)是f(a)的实际输出,而x'是输出静态内容的动作。

3 嵌入式Web服务器的主要应用

嵌入式Web服务器是应用在嵌入式系统上的Web服务器架构。它的主要应用是设备管理和应用程序的网络扩展。

嵌入式Web服务器作为一个后台程序直接在嵌入式设备上运行,用户通过网络对设备配置、控制、监测,保证设备安全、有效地运作。

Web接口使得用户可以在任何一台有互联网接入能力的带有Web浏览器的设备访问到该嵌入式设备。Web服务器提供应用程序接口可以扩展Web的应用。这种设备管理方式不仅起到监测、控制的功能,而且根据设备的特点可以更加入性化和智能化。它使对远程设备的操作从监控(Monitor)变成为管理(Manage)。其中基于嵌入式WEB服务器的视频监控系统现已成为视频监控系统的主流技术,在嵌入式系统中集成嵌入式Web视频服务器,采用嵌入式实时多任务操作系统;内置一个嵌入式Web服务器。摄像头送来的视频信号数字化后由高效压缩芯片压缩,通过内部总线送到内置的Web服务器,网络上用户可以直接用浏览器观看Web服务器上的摄像机图像,授权用户还可以控制摄像机、云台、镜头的动作或对系统配置进行操作。

另一个应用是应用程序网络扩展。Web服务已成为支撑现代应用程序技术和系统核心组件,现今约87%的企业用户都希望为他们的程序添加上基于Web的用户接口。嵌入式Web服务器很好地提供了Internet网络的接口,将应用程序和Web接口结合起来,是应用程序网络扩展的解决方案。

参考文献

[1] 宋凯.嵌入式Web服务器的设计与实现.计算机工程与设计,2009,04.

[2] 吴玉成.嵌入式Linux下WEB服务器的设计与实现.数据通信,2008,06.

[3] 梁银会.基于ARM-LINUX的嵌入式Web服务器设计.成都信息工程学院学报,2008,05.

4.DNS-服务器的配置实验报告 篇四

Win server 2003下管理配置DNS服务器

一.环境

运行环境:Microsoft Virtual PC 操作系统:TomatoWin2003_ENTv1.0 二.实验目的

1.掌握DNS服务器的概念

DNS是域名服务器(Domain Name Server)的缩写,在TCP/IP网络中是一种很重要的网络服务,它用于将易于记忆的域名和不易记忆的IP地址进行转化。

2.掌握DNS服务器工作原理及功能

DNS通过在网络中创建不同的区域(一个区域代表该网络中要命名的资源的管理集合),并采用一个分布式数据系统进行主机名和地址的查询。当在客服机的浏览器中键入要访问的主机名时就会触发一个IP地址的查询请求,请求会自动发送到默认的DNS服务器,DNS服务器就会从数据库中查询该主机所对应的IP地址,并将找到IP地址作为查询结果返回。浏览器得到IP地址后,就根据IP地址在Internet中定位所要访问的资源。

3.掌握DNS的组成及查询

①域名空间

②域名服务器 ③解析器

4.DNS服务器的类型

1、主域名服务器(master server)

2、辅助域名服务器(slave server)

3、缓存域名服务器(caching only server)

三.实验内容及步骤

要想成功部署DNS服务,运行Windows Serve 2003的计算机中必须拥有一个静态IP地址,只有这样才能让DNS客户端定位DNS服务器。另外如果希望该DNS服务器能够解析Internet上的域名,还需保证该DNS服务器能正常连接至Internet。

(一)安装DNS服务器

默认情况下Windows Server 2003系统中没有安装DNS服务器,第一件工作就是安装DNS服务器。

第1步,依次单击“开始/管理工具/配置您的服务器向导”,在打开的向导页中依次单击

下一步”按钮。配置向导自动检测所有网络连接的设置情况,若没有发现问题则进入“服务器角色”向导页。

第2步,在“服务器角色”列表中单击“DNS服务器”选项,并单击“下一步”按钮。打开“选择总结”向导页,如果列表中出现“安装DNS服务器”和“运行配置 DNS 服务器向导来配置DNS”,则直接单击“下一步”按钮。否则单击“上一步”按钮重新配置(如图1)。

图1 选择“DNS服务器”角色

第3步,向导开始安装DNS服务器,并且可能会提示插入Windows Server 2003的安装光盘或指定安装源文件(如图2)。

如果该服务器当前配置为自动获取IP地址,则“Windows 组件向导”的“正在配置组件”页面就会出现,提示用户使用静态IP地址配置DNS服务器。

(二).创建区域

DNS服务器安装完成以后会自动打开“配置DNS服务器向导”对话框。用户可以在该向导的指引下创建区域。

第1步,在“配置DNS服务器向导”的欢迎页面中单击“下一步”按钮,打开“选择配置操作”向导页。在默认情况下适合小型网络使用的“创建正向查找区域”单选框处于选中状态,保持默认选项并单击“下一步”按钮(如图3)。

图3 选择配置操作

第2步,打开“主服务器位置”向导页,如果所部署的DNS服务器是网络中的第一台DNS服务器,则应该保持“这台服务器维护该区域”单选框的选中状态,将该DNS服务器作为主DNS服务器使用,并单击“下一步”按钮(如图4)。

图4 确定主服务器的位置

第3步,打开“区域名称”向导页,在“区域名称”编辑框中键入一个能反映公司信息的区域名称(如“yesky.com”),单击“下一步”按钮(如图5)。

图5 填写区域名称

第4步,在打开的“区域文件”向导页中已经根据区域名称默认填入了一个文件名。该文件是一个ASCII文本文件,里面保存着该区域的信息,默认情况下保存在“windowssystem32dns”文件夹中。保持默认值不变,单击“下一步”按钮(如图6)。

图6 创建区域文件

第5步,在打开的“动态更新”向导页中指定该DNS区域能够接受的注册信息更新类型。允许动态更新可以让系统自动地在DNS中注册有关信息,在实际应用中比较有用,因此点选“允许非安全和安全动态更新”单选框,单击“下一步”按钮(如图7)。

图7 选择允许动态更新

第6步,打开“转发器”向导页,保持“是,应当将查询转送到有下列IP地址的DNS服务器上”单选框的选中状态。在IP地址编辑框中键入ISP(或上级DNS服务器)提供的DNS服务器IP地址,单击“下一步”按钮(如图8)。

图8 配置DNS转发

通过配置“转发器”可以使内部用户在访问Internet上的站点时使用当地的ISP提供的DNS服务器进行域名解析。

第7步,依次单击“完成/完成”按钮结束“yesky.com”区域的创建过程和DNS服务器的安装配置过程。

(三)创建域名

利用向导成功创建了“yesky.com”区域,可是内部用户还不能使用这个名称来访问内部站点,因为它还不是一个合格的域名。接着还需要在其基础上创建指向不同主机的域名才能提供域名解析服务。创建一个用以访问Web站点的域名“”,具体操作步骤如下:

第1步,依次单击“开始”→“管理工具”→“DNS”菜单命令,打开“dnsmagt”控制台窗口。

第2步,在左窗格中依次展开“ServerName”→“正向查找区域”目录。然后用鼠标右键单击“yesky.com”区域,执行快捷菜单中的“新建主机”命令(如图9)。

图9 执行“新建主机”命令

第3步,打开“新建主机”对话框,在“名称”编辑框中键入一个能代表该主机所提供服务的名称(本例键入“”这样的域名访问网站。这是因为虽然已经有了DNS服务器,但客户机并不知道DNS服务器在哪里,因此不能识别用户输入的域名。用户必须手动设置DNS服务器的IP地址才行。在客户机“Internet协议(TCP/IP)属性”对话框中的“首选DMS服务器”编辑框中设置刚刚部署的DNS服务器的IP地址(本例为“192.168.0.1”,如图11)。

图11 设置客户端DNS服务器地址

然后再次使用域名访问网站,你会发现已经可以正常访问了。

四.实验结果

验证实验是否成功:(1)虚拟机中的DNS的IP:192.168.2.2(2)物理机本地IP:192.168.2.5 区域名称为: 正向检查:在命令提示符中ping

得到的结果如下图:

反向检查:在物理机的命令提示符中输入nslookup 192.168.2.2 得到的结果如下图所示:

所以DNS服务器配置成功。

五.报告总结

5.大一寒假实验报告服务员 篇五

在校园中,我们接触的人都是同学、老师,而在社会中却可以见到形形色色的人,可以在社会中学习很多书本学习不到的知识,通过这些实践活动以明白社会的多样性。

在现代经济日益发展的今天,在发展机会越来越多的同时,竞争压力也越来越大,有了更艰巨的挑战,对人才的需求量也是日益加大。我们应更主动走进社会,不断增加自己的经验,尽可能全面武装自己,用知识填满自己,才能在这个人才辈出的社会有立足之地。

在大一的寒假生活开始时,我就在家附近找一家菜馆当服务员。挂着服务员的牌子,站在那里满脸迷茫,在心里不断提醒自己,要勇敢,要说话,但是嘴就是不听使唤。好在一个好心的大姐在旁边教我要怎么样微笑,要怎么样去拉拢顾客。其实这种交流很简单,关键是要敢于迈出第一步,不能只是站着或只是坐着,得时刻注意着客户,哪里要买单,哪里要点菜,这都不能被忽略。服务员没有想象中的那么好做,一周下来腰酸背痛,回到家动也不想动。

在学校,会有按时按点的计划,什么时候上课,什么时候放假,而在这里,有时你会闲一上午,有时还可能脚不着地的忙一下午。当你偷懒时,老板可能不满意你的工作扣你工资或是将你开除。积极一点、热情一点,要有不怕累不怕苦的精神。我们可以通过顾客的言语或者表情去判断应该做出怎么样的回应。我们必须要有足够的努力才能继续做下去。在这里,竞争是必不可少的,在校园里比这里安逸,也许那么真诚以及纯真只有在校园里才存在。在社会里,优胜劣汰,千万年来恒古不变。你的成功必定让人嫉妒,影响他人的利益。社会中的各种关系复杂,只能自己通过经验去化解。尽管存在各种竞争,尽管有各种嫉妒存在,我们还是应该通过自己的不断努力去变得比别人更加优秀,及时调整自己的心态,这些经验都是在为人处事之后才能理解,在书本上都是领悟不到的。

工作与学习不同,工作是为了生存,没有了家人的帮助,没有了朋友的帮助,一个人在社会中拼搏,超越自己,追求更好,更完美的自己,工作,让生活有了一些特殊的责任,而不是上学时可以懒散的休息,通过工作,我的心态发生了本质的变化.其实我们的实际操作经验与学历存在着偏差,可能学习很好的人在社会上实践不是很理想,也许书本上的知识在你以后的进行实践的时候根本用不到,就像学了很多年的数学可能最后只是用它来算数。但正因为是这样,书本教给我们各个方面的知识,但在我们生活却不知道具体会用什么样的知识,书本教会我们如何正确的对待自己,如何树立自己的理想。

毕业后的我们不能再用幼稚、迷茫的眼神去看待社会,要有足够的能力和信心。

6.web服务器的实验报告 篇六

B. 进入系统盘:权限如下

C:WINDOWS Administrators SYSTEM用户全部权限 Users 用户默认权限不作修改.

其它目录删除Everyone用户,注意以下文件夹保留Everyone用户,C:Documents and Settings下All UsersDefault User目录及其子目录如C:Documents and SettingsAll UsersApplication Data 目录默认配置保留了Everyone用户权限,C:WINDOWSPCHealth、C:windowsInstaller也是保留了Everyone权限.

删除C:WINDOWSWebprinters目录,此目录的存在会造成IIS里加入一个.printers的扩展名,可溢出攻击.

默认IIS错误页面已基本上没多少人使用了,建议删除C:WINDOWSHelpiisHelp目录.

删除C:WINDOWSsystem32inetsrviisadmpwd,此目录为管理IIS密码之用,如一些因密码不同步造成500,这里可以删掉,下面设置将会杜绝因系统问题.

C, 打开C:Windows 搜索(可以不做)

net.exe

cmd.exe

tftp.exe

netstat.exe

regedit.exe

at.exe

attrib.exe

cacls.exe

format.com

regsvr32.exe

xcopy.exe

wscript.exe

cscript.exe

ftp.exe

telnet.exe

arp.exe

edlin.exe

ping.exe

route.exe

finger.exe

posix.exe

rsh.exe

atsvc.exe

qbasic.exe

runonce.exe

syskey.exe

修改权限,删除所有的用户只保存Administrators 和SYSTEM为所有权限

D. 关闭445端口

HKEY_LOCAL_MACHINESystemCurrentControlSetServices etBTParameters

新建 “DWORD值”值名为 “SMBDeviceEnabled” 数据为默认值“0”

禁止建立空连接

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa

新建 “DWORD值”值名为 “RestrictAnonymous” 数据值为“1” [默认为1]

禁止系统自动启动服务器共享

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters

新建 “DWORD值”值名为 “AutoShareServer” 数据值为“0”

禁止系统自动启动管理共享

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters

新建 “DWORD值”值名为 “AutoShareWks” 数据值为“0”

禁止dump file的产生

dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料。然而,它也能够给 提供一些敏感信息比如一些应用程序的密码等。

控制面板>系统属性>高级>启动和故障恢复把 写入调试信息 改成无。

E. 本地安全策略配置

开始 >程序 >管理工具 >本地安全策略

账户策略 >密码策略 >密码最短使用期限 改成0天[即密码不过期,上面我讲到不会造成IIS密码不同步]

账户策略 >账户锁定策略 >账户锁定阈值 5 次 账户锁定时间 10分钟 [个人推荐配置]

本地策略 >审核策略 >

账户管理 成功 失败

登录事件 成功 失败

对象访问 失败

策略更改 成功 失败

特权使用 失败

系统事件 成功 失败

目录服务访问 失败

账户登录事件 成功 失败

本地策略 >安全选项 >清除虚拟内存页面文件 更改为”已启用”

>不显示上次的用户名 更改为”已启用”

>不需要按CTRL+ALT+DEL 更改为”已启用”

>不允许 SAM 账户的匿名枚举 更改为”已启用”

>不允许 SAM 账户和共享的匿名枚举 更改为”已启用”

>重命名来宾账户 更改成一个复杂的账户名

>重命名系统管理员账号 更改一个自己用的账号 [同时可建立一个无用户组的Administrat账户]

组策略编辑器

运行 gpedit.msc 计算机配置 >管理模板 >系统 显示“关闭事件跟踪程序” 更改为已禁用

删除不安全组件

WScript.Shell 、Shell.application 这两个组件一般一些ASP木马或一些恶意程序都会使用到,

方案一:

regsvr32 /u wshom.ocx 卸载WScript.Shell 组件

regsvr32 /u shell32.dll 卸载Shell.application 组件

如果按照上面讲到的设置,可不必删除这两个文件

方案二:

删除注册表 HKEY_CLASSES_ROOTCLSID{72C24DD5-D70A-438B-8A42-98424B88AFB8} 对应 WScript.Shell

删除注册表 HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540000} 对应 Shell.application

F. 用户管理

建立另一个备用管理员账号,防止特殊情况发生。

安装有终端服务与SQL服务的服务器停用TsInternetUser, SQLDebugger这两个账号

用户组说明

在将来要使用到的IIS中,IIS用户一般使用Guests组,也可以再重新建立一个独立的专供IIS使用的组,但要将这个组赋予C:Windows 目录为读取权限。

以下服务改为自动

Alerter

Application Experience Lookup Service

Application Layer Gateway Service

Application Management

Background Intelligent Transfer Service

ClipBook

COM+ Event System

IIS配置

请您参考service.zzidc.com/count.asp?a=show&ID=89

IIS 6 出于安全考虑, 默认最大请求200K(也即最大提交数据限额为200KByte, 204800Byte).

解决办法:

1. 关闭 IIS Admin Service 服务

2. 打开 Windowssystem32inesrvmetabase.xml

3. 修改 ASPMaxRequestEntityAllowed 的值为自己需要的, 默认为 204800

4. 启动 IIS Admin Service

IIS支持PHP的配置

service.zzidc.com/count.asp?a=show&ID=99

注意php5和zend有问题,想用zend 请您用php4

G. FTP的配置

服务器使用Serv-U Server 建议使用此软件

安装原版至D:Serv-U_3434999fdaf [复杂无规则的目录名可有效防止 的猜解]

尔后退出Serv-U,安装汉化包。

运行SERV-U管理器 IP地址可为空、安装为系统服务 设置密码防止溢出

PASV设置

Serv-U管理器 -本地服务器-设置-高级

PASV端口范围 这里SERV-U只允许 50个端口范围 端口的设置范围 如1025-1075[1024以前的端口为系统使用]

可以了改为9000-9049.

H. Jmail 组件的安装

建议使用 w3 JMail Personal

默认安装至 D:w3JMail4_35434fnald [同样,复杂的目录名]

安装完成后只需单一设置 jmail.dll 权限,加入IIS用户组默认权限即可!

j. SQL Server 的安装与配置

目前SQL Server 2000 + SP4 在我看来已算比较安全,已没有SP3等版本会因为 sqlstp.log, sqlsp.log而泄露

安装信息的问题。当然也建议在安全后 检查:Program FilesMicrosoft SQL ServerMSSQLInstall

目录中是否存在有 sqlstp.log, sqlsp.log, setup.iss文件,如果有,则备份至其它位置。

数据库的建立这里就说了。请参考SQL SERVER 2000帮助文档!

7.基于Web的实验教学平台设计 篇七

针对以上问题,有必要采取一种能与当前实际需求相适应的、高效的、现代化的管理手段。基于网络的实验教学平台是促进实验管理的良性发展,是实验室开放的必要管理基础。

1 系统架构设计

本实验教学平台的体系结构是目前通用的B/S应用模式(浏览器/服务器模式),采用三层分布式体系结构,即表示层、业务逻辑层和数据访问层,在本系统中分别对应Web浏览器、Web服务器和数据库服务器如图1所示。其中,浏览器是客户服务层(表示层),负责接收用户输入并向Web服务器提交用户申请,接收Web服务器返回的执行结果并显示;Web服务器是中间层(业务逻辑层),负责应用程序的开发、运行和维护;数据库服务器是数据访问层,负责提供数据的存储,执行查询和更新数据的请求。基于B/S模式的三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互。这种结构可以避免客户端直接访问后台数据库的风险,提高系统的可靠性,同时方便了应用程序的开发和维护。

2 系统的主要功能

本系统共有3类用户,分别为系统管理员、教师和学生。不同的用户拥有不同的权限,根据用户类型的不同分别为其制作了独立的操作和管理页面(如图2所示),以提高系统安全性。

(1)系统管理员在系统中拥有最高的权限。管理员要对底层数据库进行管理,还要负责数据库备份包括实验报告的备份、实验内容和资料的备份及用户信息备份等等。另外,管理员负责发布实验室的各项通知和最新实验信息,还拥有用户管理的权限,包括添加、删除用户以及在线和离线用户的管理。除此之外,系统管理员还要对实验室的所有实验设备进行管理和维护,为各项实验分配实验设备以及设备状态的设置和查询。(2)对于教师用户提供实验内容修改、学生预约查询和学生名单显示、学生成绩提交、批阅和查看已提交的实验报告的功能。对于已结束的实验项目要登记学生的实验分数,统计每个人实验总分,还可以设置各实验的状态。只有实验状态为可见的实验,学生才可以查看并提交实验报告;实验状态为不可见的实验,学生不可以查看和提交实验报告。在实验过程中,还可以统计学生提交实验报告的情况,随时列出未提交的学生名单,同时具有修改密码的功能。(3)对于学生用户只提供实验的查询、实验的预约、实验报告提交、成绩查询、实验指导查询、密码修改功能。学生可以提交实验报告、也可以下载检查上传的实验报告是否正确,在实验报告没有批阅前可以随时进行修改,也可以下载教师上传的实验相关资料。

出于安全考虑,用户、成绩和实验用不同的表分开保存。同样是因为本系统所管理的内容涉及学生学籍问题,所以在本系统中的用户信息,包括老师、学生和管理员,均由专人以系统管理员身份录入。而学生不具有修改自己除身份认证以外的数据,老师有成绩提交功能,但是不提供成绩修改功能,所有实验的具体时间由系统管理员统一安排。

3 系统应用的主要技术

3.1 JSP技术。

JSP(Java Server Page)是SUN公司推出的一种服务器端的动态网页技术,实际上是一种基于Java的Web服务器应用技术体系。JSP的脚本语言采用Java,使其完全继承了Java的所有优点,主要体现在:系统具有很好的稳定性和安全性、平台无关性、面向对象的程序设计等,使其已成为跨平台应用开发的一种规范。

JSP的主要特性是能够把HTML、脚本、组件等各种对象有机地组合在一起,应用JSP技术可以编制和运行动态、交互、高性能的Web服务器应用程序。主要体现在:(1)将网页的静态部分与动态部分进行分离,网页设计者可以使用任一网页制作工具编写HTML程序(静态显示部分),网络程序员可以使用JSP的程序开发环境和工具编写应用程序(动态处理部分)。(2)将应用系统的业务处理逻辑(内容的生成)独立出来,由Java Bean直接进行封装,便于应用程序的编写、使用和维护。Java Bean是一个可重用的跨平台的软件组件,实际上是一种特殊的Java类,通过封装属性和方法处理某个业务的对象,JSP页面的数据处理过程被指派给一个或几个Java Bean来完成,其他人能够编辑和使用JSP页面,而不影响内容的生成。绝大多数JSP页面依赖于可重用的组件来执行应用程序所要求的更为复杂的处理,基于组件的方法加速了系统开发过程。(3)将JSP页面中用Java代码描述的业务流程控制分离出来,交给Servlet控制器负责,JSP页面主要用于向用户提供界面进行输入和显示信息(只有HTML语言和标签),使整个应用软件系统形成"控制-处理-显示"三个独立的部分,程序更加规范、结构清晰、模块独立性强,便于扩展和维护。Servlet负责根据用户请求,调用相应的Java Bean的业务逻辑方法进行处理,并将结果返回给JSP页面显示。

3.2 数据库访问技术JDBC。

Web服务器在处理用户请求时,多数情况下都需要对数据库进行访问,JDBC(Java Databse Connector)是Java语言访问数据库的应用程序接口,在功能方面与ODBC(开放式数据库互连)相同,程序员可以通过JDBC直接访问数据库。访问流程如下:获取数据库的JDBC驱动程序→装入JDBC驱动程序→建立数据库连接→执行SQL语句→检索结果→关闭连接。如果程序中针对每一个数据库通信的请求,都要先建立连接,通信完成后还要关闭连接,将使得程序的运行效率低下,本系统采用数据库连接池的连接方式,以提高对数据库的访问效率。

结束语:系统只需安装在校园网即可运行,便于安装和使用。本系统的使用可以提高学生实验的积极性,方便任课教师批阅实验报告并能及时发现学生中存在的问题,减轻管理人员的负担,并且方便实验设备和实验报告的管理。

参考文献

[1]潘慧文.高校实验室开放模式探讨[J].广州体育学院学报,2005,25(3):125-129.

[2]尹新,刘子建,刘红霞.实验室开放的探索与实践[J].实验技术与管理,2006,23(8):101-103.

[3]刘娇蛟,吕念玲,吴运昌.基于Web开放自主式实验教学模式的研究和实践[J].电气电子教学学报,2004,26(5):70-72.

[4]刘晓华,张建,周慧贞.JSP应用开发详解[M].第3版.北京:电子工业出版社,2007.

8.web服务器的实验报告 篇八

关键词:入侵检测;基于规范的入侵检测;URL过滤技术;Web服务器

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21581-02

Research on an Intrusion Detection Model to Protect Web Servers

GE Hong,YAN Ling

(Qinghai Oilfield Company,Qinghai 736202,China)

Abstract:This paper took the character of Web server into consideration, combined the Specification-based intrusion detection which was used to detect vulnerabilities based on Web servers and URL filter technology which was used to protect URL attacks, and designed a web-based intrusion detection system model WIDS, then explained the realization of some key part in WIDS detailedly, and analyzed the working process of WIDS through examples in the end.

Key words:Intrusion detection;Specification-based intrusion detection;URL filter technology;Web servers

1 引言

Web应用是运行于Internet和TCP/IP Intranet之上的基于Client/Server的应用。由于Web服务器必须具有固定并且公开的IP地址和域名,以对外提供服务,所以Web服务器最容易受到攻击。随着Internet规模的不断扩大,Web应用也日趋广泛,对入侵攻击的检测与防范、保障计算机系统、网络系统及整个信息基础设施的安全已经成为刻不容缓的重要课题。

2 保护Web服务器的入侵检测模型

2.1 入侵检测方法

入侵检测通常分为异常检测和误用检测[1][3]。误用检测收集非正常操作的行为特征,当监测的用户行为与库中的记录相匹配时,系统就认为这种行为是入侵。异常检测总结正常操作的特征,当用户活动与正常行为有重大偏离时即被认为是入侵。基于规范的入侵检测是介于异常检测和误用检测之间的入侵检测技术,由手工定义程序的正常行为规范,并监视程序执行,不需要维护大量的特征库,也无需历史数据的训练,并且能检测未知攻击,误警率低。

基于规范的检测技术可以检测针对Web服务器应用层的漏洞,对于通常的脚本类型的攻击,URL过滤也是一项重要的检测方法。现有检测URL攻击方法都是基于规则的,针对每一种入侵行为,提炼出它的特征并按照规范写成检验规则,从而形成一个规则数据库,然后将捕获的数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为成立。

2.2 WIDS模型设计

保护Web服务器的入侵检测模型WIDS(Web-based Intrusion Detection System)模型结构如图1所示。

图1 WIDS模型结构

控制器,接受来自URL检测引擎和安全规范检测引擎的检测结果,将检测结果转化成特定格式,作为响应模块的输入,同时结合来自响应模块的响应结果回馈信息,输出给系统管理员。

入侵响应模块,接受来自控制器的数据,根据一定的响应策略对入侵行为进行相应的响应,保护Web服务器。响应策略是根据系统的容忍性、响应的代价和预测入侵损失为每个入侵行为赋予相应的权值,最后根据权值执行相应的响应机制。

嗅探器,用来获得网络数据。

URL检测引擎,作为Web Server保护的第一道防线,直接进行URL攻击的检测,以减少系统资源的消耗。工作时,将检测规则组织成决策树,对每一个URL请求数据搜索此树,一旦搜索到匹配的特征则返回,并将检测结果提交控制器。

规范检测引擎,利用结合了异常检测和误用检测两种技术的规范检测技术对入侵进行检测,包括管理器、操作系统审计数据收集器、数据分发器、分析器,模型如图2所示。工作过程[2]为:管理器监视审计数据中的系统调用,检查是否存在与主体表达式匹配的记录,当存在时启动相应的分析器,分析器利用管理器中相应的安全规范执行。分发器通过处理数据收集器传送的数据,将有关的审计记录输入到分析器数据队列中,分析器通过检查审计记录中是否与已定义好的安全规范相一致来判断是否发生入侵,如果发生入侵,由控制器对数据进行整理后,提交到响应模块,执行相应的响应。

图2 规范检测引擎模型

3 模型关键模块实现

3.1 管理器的实现

当入侵检测系统启动,管理器作为守护程序对系统调用exec进行监视,作相应的处理,直到入侵检测系统关闭,管理器才退出。在管理器中,不仅要管理一个特权程序的安全规范数据库,并且每一个安全规范对应一个选择表达式,实现的流程图如图3所示。

图3 管理器的流程图

3.2 数据收集器的实现

审计数据的获取,是通过一个审计数据状态指示变量Audit_state实现的[4],其作用是跟踪当前数据收集器的工作变化情况。当启动数据收集器时,该变量取值为START;若需要打开审计数据文件时,取值为NEXT_FILE;当数据收集器从文件中读取审计记录时,取值为READ_FILE;当关闭当前审计数据文件时,值为CLOSE_FILE。图4为该模块的实现流程图。

图4 数据收集器的流程图

4 WIDS应用实例

4.1 Code Red worm检测

当用户的输入在URL中存在/default.ida时,URL检测引擎通过将URL中的内容与规则库中规则进行匹配,匹配成功时,将会检测出Code Red worm,并将检测结果交给控制器,由响应模块给出相应响应。

4.2 httpd緩冲区溢出的检测

当用户访问Web时,通常是先通过GET向HTTP发出请求,而GET没有对输入的大小进行限制,所以HTTP后台监视进程httpd存在缓冲区溢出漏洞。如果攻击者利用此漏洞则会造成缓冲区溢出,令系统挂起,而执行攻击者的代码,这样攻击者最终将获得管理员权限。在正常情况下httpd是在收到请求之后执行http目录下的文件,因此,可以通过限制httpd在收到请求后必须执行http目录下的文件的方法,编写httpd安全规范。通过检查httpd在接收到请求之后是否执行http目录下的文件,就能判断出是否发生了入侵。

4.3 WIDS模型的检测过程

首先,将GET的请求数据先在URL规则库中进行匹配,检测是否存在URL攻击,如果存在,将检测结果提交给管理器。同时,管理器监视审计数据中的系统调用execve,当检查到GET时,通过匹配主体表达式,启动httpd分析器,然后,httpd分析器调用并执行管理器中httpd的安全规范,分发器通过对数据收集器传送的数据进行处理,将有关httpd的审计记录输入到httpd分析器数据队列中,httpd分析器通过检查审计记录中的系统调用read,通过判断其是否执行http目录下的文件来判断是否发生入侵,如果发生入侵,由控制器对数据进行整理后,提交到响应模块,执行相应的响应机制。响应模块随后将处理结果回馈到处理器,由处理器负责向管理员输出结果。

5 结论

本文设计了用于保护Web服务器的入侵检测模型。根据Web服务器的特点,首先采用基于规范的入侵检测技术来检测针对Web服务器漏洞的攻击,基于规范的入侵检测技术结合了异常检测和误用检测,并能克服两者的不足。然后应用URL过滤技术来检测针对脚本类型的攻击。结合两者建立起一种保护Web服务器的入侵检测模型WIDS,并对关键模块的实现加以说明,最后通过实例分析了该模型的工作过程。

参考文献:

[1]唐正军,李建华.入侵检测技术[M].北京:清华大学出版社,2004.

[2]寺田真敏,萱岛.TCP/IP网络安全[M].北京:科学出版社,2003.

[3]Paul E. Proctor.入侵检测实用手册[M].北京:中国电力出版社,2002.

[4]C. Kruegel and G. Vigna. Anomaly Detection of Web-based Attacks. Proceedings of the 10th ACM Conference on Computer and Communication Security[A]. ACM Press Washington,2003,10.

9.web服务器的实验报告 篇九

针对于nginx服务器,可以修改源码中关于nginx的header描述信息,以下以nginx-1.2.0版本为例。

[root@wwwnginx-1.2.0]#cdsrc/core/[root@wwwcore]#vimnginx.h-------编辑nginx.h文件

/**Copyright(C)IgorSysoev*Copyright(C)Nginx,Inc.*/#ifndef_NGINX_H_INCLUDED_#define_NGINX_H_INCLUDED_#definenginx_version1002000#defineNGINX_VERSION“2.2.2”//默认为1.2.0#defineNGINX_VER“Apache/”NGINX_VERSION//默认为Nginx#defineNGINX_VAR“NGINX”#defineNGX_OLDPID_EXT“.oldbin”#endif/*_NGINX_H_INCLUDED_*/

然后进行正常编译完成安装,

测试效果

使用强大的nmap扫描主机

使用curl获取http请求信息

或者访问一个不存在的URL也可以查看到效果

可以看到无论是用nmap扫描主机还是用curl获取对网站http报文的请求信息甚至是访问请求一个不存在的url都会显示web服务器使用的是Apache2.2.2版本,从而隐藏了我们真实web服务器版本即nginx-1.2.0版本,当然这里可以伪装为IIS、Lighthttp、Tengine甚至是自定义的名字都可以,总之迷惑了入侵者的思路,保护了web服务器的安全。

补充:有朋友留言给我,说404页面还是显示出nginx的风格,那就修改默认404页面吧

在nginx.conf中增加如下内容指定404页面路径(/usr/local/nginx/html)

error_page404/404.html;location=/404.html{roothtml;}

重新加载配置文件

/usr/local/nginx/sbin/nginx-sreload

任意访问一个不存在的页面,就可以看到效果了!

10.对遗留系统的Web服务封装 篇十

关键词: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].人民邮电出版社.

上一篇:风能发电介绍与发展下一篇:团学会部门年度工作总结