江西先锋软件职业专业技术学院

上传人:乐*** 文档编号:104515409 上传时间:2019-10-09 格式:DOC 页数:22 大小:250.50KB
返回 下载 相关 举报
江西先锋软件职业专业技术学院_第1页
第1页 / 共22页
江西先锋软件职业专业技术学院_第2页
第2页 / 共22页
江西先锋软件职业专业技术学院_第3页
第3页 / 共22页
江西先锋软件职业专业技术学院_第4页
第4页 / 共22页
江西先锋软件职业专业技术学院_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《江西先锋软件职业专业技术学院》由会员分享,可在线阅读,更多相关《江西先锋软件职业专业技术学院(22页珍藏版)》请在金锄头文库上搜索。

1、江西先锋软件职业技术学院毕 业 设 计 报 告题目:基于 soap 协议的综合信息管理系统姓 名:万兵 班 级: 先锋十三班 专 业: 信息安全 届 别: 04届 指导教师: 江海 2006年6月24日基于 soap 协议的综合信息管理系统 随着计算机技术的不断发展,现代企业面临的环境越来越复杂,其客户需求的信息系统大多想采用能跨越多操作系统、多种语言平台、能够支持多种连接方式、数据易于共享的综合信息管理系统。通过在学校两年的学习以及江老师的辅导,我在学习期间了解到了soap协议,并与先锋学院科研处联合开发了先锋学院综合信息管理系统。先锋学院综合信息管理系统是基于java Web servic

2、es 的soap协议来统一实现数据访问的。这让我们的系统有了以下的特点。、系统特点介绍简单性以前的系统都会在数据库的访问上花费大量的时间去编码,我们的由于该系统采用统一的消息模式来管理数据库的信息,所以使得编码变得非常的简单,而且基本上是一致的,大大减少了程序员在数据库的访问上花费的时间。可扩展性以前用java开发的系统不论是用到什么架构,在数据库改动以后都要对系统进行较大的更改,并且改动后的数据不容易集成到现有的系统中。才用我们的这个设计方法在遇到上述情况只要你修改sql语句,和必要的文档后就能直接对系统进行修改。没必要修改程序中的方法或类。安全性 在有别人想基于我们的系统再开发一个系统的时

3、候我们没必要把我们的数据库结构公布出来,只要对方按照我们规范给我们发消息就能取得相应的数据。对方对于我们提供的交易是怎样实现的完全不了解。这样就能防止外人在了解到你的数据库结构后对你的数据进行有针对性的攻击。性能好 有些系统中可能存在以下的结构:交易主机1交易主机1Web服务主机数据库服务器应用程序服务器终端终端中间件 每个服务都会单独去访问数据库,这样频繁的对数据的操作很有可能会导致数据库性能上出问题,而且您不能保证每个应用程序的操作都是合理的,也许有些程序没有及时的释放资源就会导致数据库资源的大量浪费,直接影响性能。 我们的系统采用一个基于soap的 axis主机实现对数据库的统一访问,这

4、样可以有效的控制别的主机直接对数据库的操作,我们也就可以通过对Axis 主机上的代码进行优化来解决由于程序带来的大量资源消耗的问题。我们只要保证Axis主机不出问题,web 上或应用程序出问题不会直接导致数据库的死机。以下是我们交易的流程图:交易主机1交易主机1Axis主机Web服务主机数据库服务器应用程序服务器终端终端 二、什么是SOAP? SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的

5、,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。 虽然这四个部分都作为SOAP的一部分,作为一个整体定义的,但他们在功能上是相交的、彼此独立的。特别的,信封和编码规则是被定义在不同的XML命名空间(namespace)中,这样使得定义更加简单。 SOAP的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息系统或分布式对象系统中的某些性质将不是SOAP规

6、范的一部分。比如:分布式垃圾收集 (Distributed garbage collection)、成批传送消息(Boxcarring or batching of messages)、对象引用 (Objects-by-reference(which requires distributed garbage collection))、对象激活 (Activation(which requires objects-by-reference))。SOAP=RPC+HTTP+XML SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为

7、一致性的调用途径,作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。RPC的描叙可能不大准确,因为SOAP一开始构思就是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过SOAP封装起来,包括DCE(Distributed Computing Environment )RPC CALLS,COM/DCOM CALLS, CORBA CALLS, JAVA CALLS,etc。SOAP 使用 HTTP 传送 XML,尽管HTTP 不是有效率的通讯协议,而且 XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。但是X

8、ML 是一个开放、健全、有语义的讯息机制,而 HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。但是如果效率对你来说很重要,那么你应该多考虑其它的方式,而不要用 SOAP。 为了更好的理解SOAP,HTTP,XML如何工作的,不妨先考虑一下COM/DCOM的运行机制,DCOM处理网络协议的低层次的细节问题,如PROXY/STUB间的通讯,生命周期的管理,对象的标识。在客户端与服务器端进行交互的时候,DCOM采用NDR(Network Data Representation)作为数据表示,它是低层次的与平台无关的数据表现形式。DCOM是有效的,灵活的,但也是很复杂

9、的。而SOAP的一个主要优点就在于它的简单性,SOAP使用HTTP作为网络通讯协议,接受和传送数据参数时采用XML作为数据格式,从而代替了DCOM中的NDR格式,SOAP和 DCOM执行过程是类似的,如下图,但是用XML取代 NDR作为编码表现形式,提供了更高层次上的抽象,与平台和环境无关。 客户端发送请求时,不管客户端是什么平台的,首先把请求转换成XML格式,SOAP网关可自动执行这个转换。为了保证传送时参数,方法名,返回值的唯一性,SOAP协议使用了一个私有标记表,从而服务端的SOAP网关可以正确的解析,这有点类似于COM/DCOM 中的桩(STUB)。转化成XML格式后,SOAP终端名(

10、远程调用方法名)及其他的一些协议标识信息被封装成HTTP请求,然后发送给服务器。如果应用程序要求,服务器返回一个HTTP应答信息给客户端。与通常对HTML页面的HTTP GET请求不同的是,此请求设置了一些HTTP HEADER,标识着一个SOAP服务激发,和HTTP包一起传送。例如:对于一个询问股票价格的应用程序,服务器端具有组件提供某股票当前的价格,组件是COM或CORBA在服务器上建立的。客户端发送一个SOAP请求给服务器询问股票价格。服务器依赖于服务器上的SOAP网关,使用内嵌的HTML对象调用合适的方法, 然后把得到的价格通过SOAP应答传给客户端。三、java 的 soap 服务器

11、 AxisAxis 的简介 Axis全称Apache eXtensible Interaction System,是apache组织下的一个开源项目,用来做webservice开发的,有java版的实现,也有c+版的实现,其前身最早是IBM的SOAP4J,后来捐给Apache后改名Apache SOAP,也就是支持SOAP1.1的那个版本,到现在的AXIS已经是第三代了,AXIS对Apache SOAP的改进有很多,比如用SAX代替以前的DOM,增加对WSDL的支持,支持SOAP1.2等等Axis 的安装使用axis很容易,在apache网站上把axis下载了后(最新版本1.2.1),把%AX

12、IS_HOME%webappsaxis整个目录copy到tomcat的webapps目录下面,启动tomcat,浏览器中输入http:/localhost:8080/axis就可以了上面说的只是axis运行起来了,要想布置自己的webservice,axis支持两种方法:一种是用JWS(Java Web Service),好处是只要有源码比如说Hello.java,把他改成Hello.jws后放到%TOMCAT_HOME%webappsaxis目录下面就搞定,浏览器里面输入http:/localhost:8080/axis/Hello.jws就可以了,不足的地方是能配置的地方有限(比如说Hel

13、lo.java里面的所有public非static方法都会暴露),很多东西没办法弄;第二种方法就是使用wsdd(web service deploy description),这个就是在TOMCAT_HOME%webappsaxisWEB-INF目录下写一个deploy.wsdd和undeploy.wsdd文件,然后通过java org.apache.axis.client.AdminClient deploy.wsdd就搞定了,卸载这个webservice就用org.apache.axis.client.AdminClient undeploy.wsdd,客户端输入http:/localho

14、st:8080/axis/services/Hello就可以了。Axis的简单访问介绍了部署webservice的两种方法后,下面说说客户端的访问方式,也有两种,一种是通过axis实现的java里面的JAX-RPC进行动态调用,另外一种就是通过服务器端产生的wsdl文件利用WSDL2Java工具生成Client Stub后访问。通过JAX-RPC的比较简单,需要提供的有SOAP router URL,service namespace,operation name,operation parameter types,operation return types,看看下面这个例子就明白了: pu

15、blic SOAPWrapper() String location = http:/localhost:8080/axis/hello ; try Service service = new Service(); call = (Call)service.createCall(); call.setTargetEndpointAddress(new url(/location); catch (Throwable t) handleError(SOAPWrapper (constructor) had an Exception.,t); public void create(Book book) try call.removeAllParameters();

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号