web server课程设计分析由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“web前端课程设计报告”。
Web server 软件体系结构课设
实验目的掌握Web服务体系结构和工作方式,即该体系结构的服务提供者、服务请求者和服务注册中心的角色和它们之间的交互。实验内容
2.1 目的开发一个基于Web Service的应用软件实例(比如天气查询、飞机/火车票价查询、分布式计算等)。
2.2 分工
我主要负责连接件和配置的设计,组员负责构件设计,我根据他们设计的程序进行思考后对整个web server系统进行了描述与总结。程序环境简介
本程序运行在Windows7系统下,采用Eclipse作为开发工具,使用Java作为开发语言,采用Apache的Tomcat搭建web服务器,实现web服务。
3.1 Web Server简介
通过网页搭建服务器,Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,Web服务器可以响应一个静态页面或图片,进行页面跳转,或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。3.2 Apache简介
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
3.3 Tomcat简介
Tomcat是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是8.0。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。程序架构设计
本程序采用web server架构,通过发布web端的服务器,再通过将客户端与该服务器的http网址相绑定,通过接口来访问服务器对应的方法,达到web服务的作用。
其中web端和客户端都是该系统的构件,web端由Apache和Tomcat所搭建的web服务器。web server是一种基于SOAP通信协议的服务框架,所以该系统的连接件是SOAP协议。程序使用wsdl语言描述了该系统的函数关系。构件设计
构件包含客户端和服务器。5.1 服务器端设计 5.1.1 Apache搭建
通过系统图形化界面方式进行搭建,其中自动生成等xml文件
其中server.xml对整个系统进行描述,用于生成系统代码。
5.1.2 服务器java代码
首先编写了一个加法程序,利用java的功能自动生成服务端的加法服务:int add(int a , int b);根据该函数通过系统生成对应的服务端代码。原程序结构
其中服务器共生成了如下代码
其中Cal这个类将是原函数之中的add方法在生成的服务端之中被重写为接口方法。以便客户端进行调用。剩下的都是为客户提供访问服务的方法。其中CalServiceLocator.java这个类里面也描述了http服务网址和远程服务的方法。
服务端自动包含了系统引用的包,Apache服务器的包和网络应用的包。
5.1.3 服务端wsdl文件
可以看到服务端还生成了一个cal.wsdl文件,这个文件是接口描述。
可以看到该文件描述了服务的http网址和其对应的方法。
在客户端进行调用的时候会根据这个描述文件进行相应的调用。
5.2 客户端设计
客户端由服务端的wsdl文件自动生成,其中包含了如下文件
其中Cal.java是我们的加法方法 CalServer.java是调用服务的方法
可以看到这个接口继承于rpc的类包,所以我认为是这是服务调用的方法。
CalServiceLocator.java类和CalSoapBindingStub.java类里面封装了服务启动以及运行的具体方法。
若想调用服务器端的加法,我们需要新建一个client包,其中包含了调用服务器的主代码。
可以看到其中声明了CalServerLocator类对象service,声明了一个URL对象url,并且用服务器端的wsdl的地址进行初始化,之后通过CalSoapBindingStub这个类生成sutb对象,并且用service和url对其进行初始化操作,客户端与服务器进行绑定。绑定成功之后可以调用stub的add方法进行计算。
通过这个绑定的文件名称,我们可以发现是通过Soap协议进行绑定,传输,这也说明了web server是基于Soap协议的一种架构。连接件设计
由于web server基于Soap协议进行数据传输,故这个系统中的连接件就是Soap协议(当然包括http协议)。具体在程序之中实例化表现为CalSoapBindingStub.java这个类,该类的构造函数中用wsdl地址和CalServiceLocator类对象进行初始化,将服务端与客户端进行绑定,达到了连接两端的作用,使客户端可以调用服务器的方法进行计算。配置设计
本系统由于比较简单,只有一个客户端与一个服务器进行连接通讯,所以只配置了点对点的连接方式。Web server的拓扑结构应该为三角结构,分别为客户端,服务端和注册端。由于是比较简单的web服务,目前市场的服务器计算吞吐量很大,点对点的服务让服务端不能满载,比较浪费资源,可以采用总线型或者星形的拓扑结构来增强服务器的带宽,以增强计算能力。实验结果
未开启服务运行客户端,客户端的add方法无法加载,但是system.out.println();未经过服务器,故函数可以进行调用,打印输出。可以看到命令行里面有很多的红色代码,说明没有开服务器是不能运行客户端的。
开启服务端的正确结果
可以看到客户端调用服务端的add方法,计算1+555等于556。说明程序运行成功。心得体会
通过这次试验,我明白了web server的开发过程,通过Apache服务器进行搭建web端的服务,再通过服务端的wsdl描述语言生成客户端与服务器之间的连接件,再通过调用连接件的对象方法对远程的服务器进行调用,达到web服务的目的。在写报告的时候我们将连接件误认为中间件,将Apache的服务器当做了连接件。
最开始我们还做了linux的RPC调用,在本次实验的服务端的CalServer.java里面写了继承于rpc包,所以一直认为web server和RPC一样,我都是客户端和服务器进行通讯达到服务的目的。经过网上的学习,我发现还是有区别的。
下面是RPC和web server的对比。
可以看到,RPC模型中多了一个stub的组件,这个是约定的接口,也就是server提供的服务。对客户端来说,有了这个stub,RPC调用过程对client code来说就变成透明的了,客户端代码不需要关心沟通的协议是什么,网络连接是怎么建立的。对客户端来说,它甚至不知道自己调用的是一个远程过程,还是一个本地过程。然后,前面说的理解协议,处理连接的工作,总是要有人做的,这个工作就是在下面的RPC Interface里完成的。
而web service接口就是RPC中的stub组件,规定了server能够提供的服务,这在server和client上是一致的,但是也是跨语言跨平台的。同时,由于web service规范中的WSDL文件的存在,现在各平台的web service框架,都可以基于WSDL文件,自动生成web service接口。web service框架,根据所选的平台有所不同,比如本次试验使用的就是Apache的服务架构。它做的事情也和RPC Interface是一样的,SOAP协议负责解析协议,HTTP协议负责处理连接。
就编程角度来说,RPC和Web server区别不大,RPC需要编写一个远程过程调用描述语言的*.x文件,通过rpcgen命令生成对应的服务端和客户端的结构,再更改其中的函数,通过gcc编译再运行。而Web server也是根据wsdl文件生成相应的web server结构,再去编写详细的函数进行调用。两者都是通过一个配置文件自动生成框架再去编写代码实现服务。
《工作分析》课程设计教学大纲课程编号:学 分:2 分 时 间:2周 适应专业: 人力资源管理 开课学期:第四学期 一、课程设计的性质与目的本次课程设计是本专业学生学完所设《工作分析......
中 北 大 学证券市场投资分析综合作业学 生 姓 名: 学 院、系: 专业:学 号:作 业 题 目: 大东南股份有限公司证券价格模拟操作分析 指导教师: 系 2013 年 4 月 6 日 主任: 叶云......
《操作系统课程设计》实验指导课程设计一:进程调度1、设计目的(1) 要求学生设计一个模拟进程调度的算法 (2) 理解进程控制块的结构 (3) 理解进程运行的并发性(4) 掌握进程调度的三种......
《财务报表分析》课程设计指导书一、课程设计的安排本次课程设计安排在集中实践周,为了让学生有较充裕的时间进行选题、调查和收集有关资料,教师在理论课后就将课程设计任务布......
提示:《电子商务课程设计》作为电子商务课程的结业考试,请同学们务必重视!拿到案例之后,同学们以10个人为一个单位(自己组成单位),从以下十个案例中选择一个做,并将案例题目与案例分......