100天土鸡饲养计划(2)

今天因为工作变动的事情,浪费了不少时间,其余时间了解了一下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.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns: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.1
Host: www.example.org
Content-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协议的消息~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值