ann
          冰是沒有未來的,因?yàn)樗挠篮?/span>
          posts - 107,comments - 34,trackbacks - 0
            
          一 . WebService 概念
                 WebSerivce 是通過一系列標(biāo)準(zhǔn)和協(xié)議來保證程序之間動(dòng)態(tài)連接,即分布式服務(wù)組件。本質(zhì)上就是要以標(biāo)準(zhǔn)話的形式實(shí)現(xiàn)企業(yè)內(nèi)外部各個(gè)不同服務(wù)系統(tǒng)之間的互調(diào)或集成。其中最 基本的協(xié)議包裹:SOAP(WebService之間的基本通信協(xié)   議),WSDL(WebService描述語言,它定義了WebSerivce 是做什么的,怎么做和查詢的信息),UDDI(用于集中存放和查找WSDL描述文件,起著目錄服務(wù)器的作用)。

                1. SOAP. Simple Object Access Protocol

                    SOAP是消息傳遞的協(xié)議,它規(guī)定了Web Serivces之間是怎樣傳遞消息的。簡(jiǎn)單的說,SOAP規(guī)定了:
            
                   1). 傳遞的消息格式是XML。使Web Services 可以在任何平臺(tái),任何語言實(shí)現(xiàn)。
                   
                   2). 遠(yuǎn)程對(duì)象方法調(diào)用的格式。 規(guī)定了怎樣表示被調(diào)用對(duì)象及調(diào)用的方法名和參數(shù)類型。
                  
                   3). 參數(shù)類型和XML格式之間的映射,被調(diào)用的方法有時(shí)候需要傳遞一個(gè)復(fù)雜的參數(shù),例如,一個(gè)Customer對(duì)象,怎樣用XML來表示一個(gè)對(duì)象參數(shù),也是SOAP所定義的范圍
                        例如:<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="................../">
                                  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="...................">
                                  <soapenv:Header/>
                                  <soapenv:Body>
                                            <web:addNewCustomer>
                                                      <!--Optional:-->
                                                      <arg0>
                                                              <id>?</id>
                                                      <!--Optional:-->
                                                             <lastUpdatedDate>?</lastUpdatedDate>
                                                      <!--Optional:-->
                                                             <name>?</name>
                                                     </arg0>
                                           </web:addNewCustomer>
                                   </soapenv:Body>
                                  </soapenv:Envelope>

                   4). 異常處理以及其他的相關(guān)信息

                2. WSDL.Web Services Description Language
                    是Web Services的定義語言 。是基于XML格式的關(guān)于WEB服務(wù)的描述語言,主要的目的在于為別人提供你實(shí)現(xiàn)某種服務(wù)的有關(guān)內(nèi)容,也即為了讓別的程序調(diào)用,你必須告訴大家你的服務(wù)接 口,例如服務(wù)名稱,服務(wù)所在的機(jī)器名稱,監(jiān)聽端口,傳遞參數(shù)的類型,個(gè)數(shù),順序等等,這樣別人才能調(diào)用 你的服務(wù)。使用者使用者通過這個(gè)wsdl文檔,創(chuàng)建想用的SOAP請(qǐng)求信息,通過HTTP傳遞web Service 提供者,Web 服務(wù)器在完成服務(wù)請(qǐng)求之后,將SOAP返回消息傳回請(qǐng)求者,服務(wù)請(qǐng)求者在根據(jù)wsdl文檔將SOAP消息解析成自己能夠理解的內(nèi)容。
                     例如: CustomerService.wsdl ,CustomerService_schema1.xsd(省落)
                           <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                           <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3.1-hudson-749-SNAPSHOT. -->
                           <definitions targetNamespace=".............." name="CustomerService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="..........." xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"                     xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                             <types>
                                  <xsd:schema>
                                       <xsd:import namespace="...................." schemaLocation="CustomerService_schema1.xsd"/>
                                  </xsd:schema>
                             </types>
                             <message name="addNewCustomerResponse">
                                  <part name="parameters" element="tns:addNewCustomerResponse"/>
                             </message>
                             <portType name="CustomerService">
                                  <operation name="addNewCustomer">
                                      <input message="tns:addNewCustomer"/>
                                      <output message="tns:addNewCustomerResponse"/>
                                  </operation>
                              </portType>
                             <binding name="CustomerServicePortBinding" type="tns:CustomerService">
                                  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
                                  <operation name="addNewCustomer">
                                         <soap:operation soapAction=""/>
                                         <input>
                                                   <soap:body use="literal"/>
                                         </input>
                                         <output>
                                                  <soap:body use="literal"/>
                                         </output>
                                  </operation>
                              </binding>
                            <service name="CustomerServiceService">
                                  <port name="CustomerServicePort" binding="tns:CustomerServicePortBinding">
                                          <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
                                 </port>
                            </service>
                      </definitions>
                      注意: Types :數(shù)據(jù)類型的定義容器,它使用某種類型系統(tǒng)(一般使用XML Schema中的類型系統(tǒng)。例如這里面就是)
                                 Message :通信消息的數(shù)據(jù)結(jié)構(gòu)的抽象類型化定義。使用Types所定義的類型來定義整個(gè)消息的數(shù)據(jù)結(jié)構(gòu)(例如:CustomerService_schema1.xsd)。
                                  PortType:對(duì)于每個(gè)訪問入口類型所支持的操作的抽象幾個(gè),這些操作可以由一個(gè)或多個(gè)訪問服務(wù)點(diǎn)來支持。
                                 Operation: 對(duì)服務(wù)中所支持的操作的抽象描述,一般單個(gè)Operation描述了一個(gè)訪問入口的請(qǐng)求/響應(yīng)消息對(duì)。例如:
                                                 <operation name="addNewCustomer">
                                                     <input message="tns:addNewCustomer"/>
                                                     <output message="tns:addNewCustomerResponse"/>
                                                 </operation>
                                                中有input/outPut消息對(duì)。
                                  Binding: 特定端口類型的具體協(xié)議和數(shù)據(jù)格式規(guī)范的綁定
                                  Port : 定義為協(xié)議/數(shù)據(jù)格式綁定與具體的Web訪問地址組合的單個(gè)服務(wù)訪問點(diǎn)
                                  Service:相關(guān)服務(wù)訪問點(diǎn)的集合。
                                
                             
                3. UDDI .Universal Description, Discovery, and Integration
                     簡(jiǎn)單說,UDDI用于集中存放和查找WSDL描述文件,起著目錄服務(wù)器的作用。

          二 . Web service 生命期
                  見圖:http://gceclub.sun.com.cn/staticcontent/html/java/webservices_for/webservice_for_html_m126e0ad.gif
             
              下面描述了
          XML Web service 調(diào)用時(shí)發(fā)生事件的序列:

          1.         客戶端建立了新的XML Web service 服務(wù)代理類實(shí)例,此實(shí)例對(duì)象駐留在客戶端的計(jì)算機(jī)中。

          2.         客戶端調(diào)用一個(gè)代理類的方法。

          3.         客戶計(jì)算機(jī)的底層結(jié)構(gòu)序列化XML Web service 方法的參數(shù)為SOAP消息,并通過網(wǎng)絡(luò)將其發(fā)送到XML Web service 服務(wù)端。

          4.         在服務(wù)端的底層結(jié)構(gòu)及收到SOAP消息,并房序列化為XML。建立一個(gè)類的實(shí)例來完成XML Web service,調(diào)用XML Web service 方法并傳遞XML參數(shù)。

          5.         XML Web service 方法執(zhí)行,最終設(shè)置返回值和輸出參數(shù)。

          6.         XML Web service 服務(wù)方的底層結(jié)構(gòu)將返回值和數(shù)除參數(shù)序列化為SOAP消息。并通過網(wǎng)絡(luò)發(fā)回客戶端。

          7.         客戶端的底層結(jié)構(gòu)接收到上面的SOAP消息,反序列化XML為返回值和輸出參數(shù)。并將其傳遞給代理類實(shí)例。

                        8.         客戶端接受到返回式和輸出參數(shù)

               webService 實(shí)現(xiàn)的例子。
           
                1.實(shí)現(xiàn)一個(gè)WebService,使其能夠接受和響應(yīng)SOAP消息
                
                2.撰寫一個(gè)WSDL文件用于描述此Web Services。

                3.將此WSDL發(fā)布到UDDI上
           
                4. 其他的應(yīng)用程序(客戶端)從UDDI上搜索倒你的WSDL

                5.根據(jù)你的WSDL,客戶端編寫程序調(diào)用Web Service.

                    





                   

          當(dāng)下,把心放下 放下如果是可能的,那一定是在當(dāng)下,
          不在過去,也不在未來。
          當(dāng)下放下。唯有活在當(dāng)下,你的問題才能放下。

          主站蜘蛛池模板: 台湾省| 石河子市| 荔波县| 图们市| 靖宇县| 陇川县| 南陵县| 固阳县| 五莲县| 黄平县| 仪陇县| 霍林郭勒市| 纳雍县| 渝中区| 宾川县| 武定县| 古蔺县| 汝州市| 天等县| 星子县| 融水| 云阳县| 太湖县| 离岛区| 蓬溪县| 准格尔旗| 芦山县| 铜山县| 黄平县| 乌拉特中旗| 勐海县| 阜平县| 临武县| 佛坪县| 山西省| 平遥县| 邮箱| 威宁| 都兰县| 壶关县| 股票|