100天土鸡饲养计划(2)

来源:互联网 发布:同花顺软件的参数设置 编辑:程序博客网 时间:2024/05/16 23:47

今天因为工作变动的事情,浪费了不少时间,其余时间了解了一下WebService的工作原理。

WebService是一种通信技术,是基于XML+SOAP+WSDL+UDDI来实现的,一个个的说。

XML:可扩展标记语言,其实就是按照一定规则编写的纯文本文件!它的结构大概类似于这样:

<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/css" href="cd_catalog.css"?><CATALOG>  <CD>    <TITLE>Empire Burlesque</TITLE>    <ARTIST>Bob Dylan</ARTIST>    <COUNTRY>USA</COUNTRY>    <COMPANY>Columbia</COMPANY>    <PRICE>10.90</PRICE>    <YEAR>1985</YEAR>  </CD>  <CD>    <TITLE>Hide your heart</TITLE>    <ARTIST>Bonnie Tyler</ARTIST>    <COUNTRY>UK</COUNTRY>    <COMPANY>CBS Records</COMPANY>    <PRICE>9.90</PRICE>    <YEAR>1988</YEAR>  </CD>....</CATALOG>

正式由于它是纯文本文件,所以任何系统都能识别它,WebService能跨平台的原因就在于此!

SOAP:简单对象访问协议,百度百科上的解释是“一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议”,它的结构大概类似于这样:

POST /InStock HTTP/1.1Host: www.example.orgContent-Type: application/soap+xml; charset=utf-8Content-Length: nnn<?xml version="1.0"?><soap:Envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">  <soap:Body xmlns:m="http://www.example.org/stock">    <m:GetStockPrice>      <m:StockName>IBM</m:StockName>    </m:GetStockPrice>  </soap:Body> </soap:Envelope>
可以看出它与上面的XML片段风格完全一致,因为本来就是基于XML的!
POST /InStock HTTP/1.1Host: www.example.orgContent-Type: application/soap+xml; charset=utf-8
看起来是不是很熟悉?没错,我们的HTML文件里也有相似的代码,因为SOAP协议也和HTML文件一样,是通过HTTP协议来进行通信的!而且仅能通过HTTP协议通信,这个也是其性能的弊端吧!

WSDL:网络服务描述语言,是使用XML编写的,用来描述WebService服务,简单来说,它就是用来描述某个WebService的具体信息的,如提供的接口名称,所需的参数名称,参数类型,是否返回值,返回类型等等,所以叫做“描述”语言。它的结构类似于这样:

<message name="getTermRequest">   <part name="term" type="xs:string"/></message><message name="getTermResponse">   <part name="value" type="xs:string"/></message><portType name="glossaryTerms">  <operation name="getTerm">    <input message="getTermRequest"/>    <output message="getTermResponse"/>  </operation></portType>
UDDI:即统一描述、发现和集成协议,百度百科的描述为“统一描述、发现和集成协议是一种规范,它主要提供基于Web服务的注册和发现机制,为Web服务提供三个重要的技术支持:①标准、透明、专门描述Web服务的机制;②调用Web服务的机制;③可以访问的Web服务注册中心。”,因为我也不是特别懂这个,但就我理解的是,UDDI也是基于XML和SOAP协议,实现了一组公共接口,企业和公司可以通过这组接口,将自己的WebService服务注册到注册中心,其他需要服务的人,通过查询注册中心可以使用所有注册到这里的WebService服务。但是我到现在还是不知道,这个注册中心的物理位置是在哪些地方?

所以说WebService其实是一种通信技术,而我昨天写的,通过VS2012建立WebService服务应该叫做ASP.NET WebService,是微软自己实现的框架,封装了底层的具体实现,避免了自己手动去写WSDL和满足SOAP协议的消息~

0 0
原创粉丝点击