邪恶八进制信息安全团队技术讨论组's Archiver

冰血封情 2005-6-20 03:03

[转载]Web Service的学习笔记

文章作者:刘晶晶
信息来源:ITS

所谓web services,是编程的应用逻辑,可以通过标准internet协议进行访问,web services集组件开发和web技术只所长。他也代表了可以重用的黑盒,而不必关心业务实现的细节,和目前的组件技术不同,web services不通过特定的对象模型进行访问,比如分布式组件对象模型dcom,远程方法调用RMI或者internet ORB互操作协议IIOP.相反,web services可以通过通用的web协议和数据格式,如http,xml,soap来访问。而且,web service使用者可以在任何平台以任何编程语言实现,只要他们可以创建并使用web services接口所定义的消息。

重要之处就在于其实现平台细节和业务调用程序无关。

web 服务被定义为通过soap可进行网络访问,并且由服务描述来表示,因此需要由web services协议栈的3层提供服务,哪3层呢?网络层(Http),xml消息层(soap),业务描述层(wsdl)。
wdsl 业务描述
soap 基于xml的消息
http 网络传输
基本上就是这种格式了,以下分别介绍三种技术:

说起xml嘛,本科时候专门选了这门课,最崇拜的老师讲的,讲到最后,收获最深的就是xml的最大特点“置标”那个时候,xml可能还不像现在这样发挥如此强悍的作用,不过基本功倒是学的不错,还记得和genius一起去五道口的高教书店买原价的xml书,然后去麦当劳,对着可爱伶俐的麦香金猪,两个人面面相觑,一致抱怨“怎么都这么小呀,不够吃呀”的快乐场面。。。呵呵,跑题了,“广告之后,马上回来”。。。

有人说,xml相对于web services就像Ip相对于internet,起了非常重要的作用。他奠定了web services革命的技术基础。使用xml就好像你可以使用自己喜欢的编程语言来创建任何一种数据结构,然后和他人的计算平台上使用的其他语言来共享数据。使数据在不同平台,不同系统之间可以使用不同的编程语言来实现互操作。

xml中描述的数据对象被称为xml文档,文档的定义形式是一个简单的层次树,其中有一个根节点,成为文档实体或者文档根。定义xml文档有效性规则的方式有多种,而目前通用的是xml schema.具体语法在这里就不一一介绍。

下面说说xml的名称空间,xml的目的是共享数据。而xml schema是xml的数据模式,就相当于数据库模式对数据库一样。当在xml schema文档中通过定义和声明规定了xml schema的细节之后,将把这个xml schema定义为一个名称空间,通过名称空间机制可以来限制xml的实例文档,或者在不同的schema之间进行操作。

xml实例文档和schema是通过名称空间来进行关联的。通过在schema中设定元素targertnamespace来设定。

今天先写到这吧,中午得去找最喜欢的好朋友吃饭,今天就到这里,就这样。。。呵呵,想起聪明的一休来了吧~


接着昨天的写啊

下面开始soap学习,soap(simple object access protocol ,简单对象访问协议)是在分布式环境中通过xml编码进行通信的一种简单的网络协议。soap协议从本质来说,也是一种应用层协议,然而它往往是基于某些应用层协议来实现的,比如它可以基于http协议,可以基于smtp协议。soap以xml形式提供了一个简单的,轻量级的可以在分散的环境,或者是分布式的环境中点对点地交换结构化和类型化信息的一种机制。简单地说,可以力用简单的soap消息在不同的服务之间进行通信,这又回到平台无关性上来了。

soap消息由四部分组成,soap envelope(soap包封),soap encoding rules(soap 编码规则),soap RPC representation(SOAP RPC表示,定义了一个用于远端过程调用和响应的约定),soap binding(SOAP 绑定,定义了一个使用底层传输协议来完成在节点间交换soap包封的约定)

具体编码规则等就不一一详谈了,我也是大概看了看,毕竟本人现在的工作还用不上,现在就算个扩大知识面吧:)

下面介绍wsdl(web services description language)是定义如何用xml语法描述web服务的规范。wsdl通过在服务提供者和服务请求者之间交换的消息来描述web服务。消息本身是抽象定义的,然后绑定到具体的网络协议和具体格是上。wsdl是用来描述web services的xml语法。本身没有专用的类型系统,使用w3c的xml schema规范做为默认的类型系统。wsdl包括对soap1.1端点的绑定,支持对与协议相关的信息做如下的设定。

规范包括6个主要元素:

<definition>:wsdl文档根元素
<types>:所传输的数据类型是什么
<message>:所传输的消息是什么
<portType>:所支持的操作是什么
<binding>:消息如何在网络上传输,传输协议的细节是什么
<service>:web服务放置在哪里

最后看看UDDI(Universal Description,Discovery and Integration)是容易描述,发现和集成协议的简称。顾名思义,UDDI是用来描述,发现并集成Web服务的一系列技术规范。用自己的话来讲,就是服务写好了之后,用uddi进行web中的注册,发布等工作。用一则故事比喻,就是一个盲人夜里拿了一盏灯,他虽然自己什么都看不见,但是可以利于别人更好的发现他,也算安全了,达到了目的。(不过这个故事在书里看的,想来想去,觉得比喻的还不是很恰当)

uddi的目的在于改进设计阶段和动态运行阶段中的服务发现,所以uddi项目开通了一个公共的在线企业注册中心,该中心被称为uddi企业注册中心。uddi还定义了一套数据结构以及API规范,以便用户可以编程查找企业,服务,绑定已有服务类型。

唉~好像越往后写,写的越迷糊了。关键在于自己学习的还是不够深刻~
不过就这点东西,只要不用,也很容易就忘记了,提醒自己好好看看
新东方老师说过一句不错的话,“所谓记忆力好就是简单的重复”
偶认为不错不错,谨记~

页: [1]
© 1999-2008 EvilOctal Security Team