ann
          冰是沒有未來的,因為它的永恒
          posts - 107,comments - 34,trackbacks - 0
            
          一 . WebService 概念
                 WebSerivce 是通過一系列標準和協議來保證程序之間動態連接,即分布式服務組件。本質上就是要以標準話的形式實現企業內外部各個不同服務系統之間的互調或集成。其中最 基本的協議包裹:SOAP(WebService之間的基本通信協   議),WSDL(WebService描述語言,它定義了WebSerivce 是做什么的,怎么做和查詢的信息),UDDI(用于集中存放和查找WSDL描述文件,起著目錄服務器的作用)。

                1. SOAP. Simple Object Access Protocol

                    SOAP是消息傳遞的協議,它規定了Web Serivces之間是怎樣傳遞消息的。簡單的說,SOAP規定了:
            
                   1). 傳遞的消息格式是XML。使Web Services 可以在任何平臺,任何語言實現。
                   
                   2). 遠程對象方法調用的格式。 規定了怎樣表示被調用對象及調用的方法名和參數類型。
                  
                   3). 參數類型和XML格式之間的映射,被調用的方法有時候需要傳遞一個復雜的參數,例如,一個Customer對象,怎樣用XML來表示一個對象參數,也是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). 異常處理以及其他的相關信息

                2. WSDL.Web Services Description Language
                    是Web Services的定義語言 。是基于XML格式的關于WEB服務的描述語言,主要的目的在于為別人提供你實現某種服務的有關內容,也即為了讓別的程序調用,你必須告訴大家你的服務接 口,例如服務名稱,服務所在的機器名稱,監聽端口,傳遞參數的類型,個數,順序等等,這樣別人才能調用 你的服務。使用者使用者通過這個wsdl文檔,創建想用的SOAP請求信息,通過HTTP傳遞web Service 提供者,Web 服務器在完成服務請求之后,將SOAP返回消息傳回請求者,服務請求者在根據wsdl文檔將SOAP消息解析成自己能夠理解的內容。
                     例如: 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 :數據類型的定義容器,它使用某種類型系統(一般使用XML Schema中的類型系統。例如這里面就是)
                                 Message :通信消息的數據結構的抽象類型化定義。使用Types所定義的類型來定義整個消息的數據結構(例如:CustomerService_schema1.xsd)。
                                  PortType:對于每個訪問入口類型所支持的操作的抽象幾個,這些操作可以由一個或多個訪問服務點來支持。
                                 Operation: 對服務中所支持的操作的抽象描述,一般單個Operation描述了一個訪問入口的請求/響應消息對。例如:
                                                 <operation name="addNewCustomer">
                                                     <input message="tns:addNewCustomer"/>
                                                     <output message="tns:addNewCustomerResponse"/>
                                                 </operation>
                                                中有input/outPut消息對。
                                  Binding: 特定端口類型的具體協議和數據格式規范的綁定
                                  Port : 定義為協議/數據格式綁定與具體的Web訪問地址組合的單個服務訪問點
                                  Service:相關服務訪問點的集合。
                                
                             
                3. UDDI .Universal Description, Discovery, and Integration
                     簡單說,UDDI用于集中存放和查找WSDL描述文件,起著目錄服務器的作用。

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

          1.         客戶端建立了新的XML Web service 服務代理類實例,此實例對象駐留在客戶端的計算機中。

          2.         客戶端調用一個代理類的方法。

          3.         客戶計算機的底層結構序列化XML Web service 方法的參數為SOAP消息,并通過網絡將其發送到XML Web service 服務端。

          4.         在服務端的底層結構及收到SOAP消息,并房序列化為XML。建立一個類的實例來完成XML Web service,調用XML Web service 方法并傳遞XML參數。

          5.         XML Web service 方法執行,最終設置返回值和輸出參數。

          6.         XML Web service 服務方的底層結構將返回值和數除參數序列化為SOAP消息。并通過網絡發回客戶端。

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

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

               webService 實現的例子。
           
                1.實現一個WebService,使其能夠接受和響應SOAP消息
                
                2.撰寫一個WSDL文件用于描述此Web Services。

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

                5.根據你的WSDL,客戶端編寫程序調用Web Service.

                    





                   

          posted on 2009-03-17 17:24 冰是沒有未來的,因為它的永恒 閱讀(244) 評論(0)  編輯  收藏 所屬分類: java

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

          主站蜘蛛池模板: 湾仔区| 竹山县| 宾阳县| 资中县| 宁陵县| 佛山市| 涿鹿县| 温州市| 荔浦县| 台江县| 勐海县| 富宁县| 广州市| 安仁县| 抚松县| 类乌齐县| 文安县| 桦甸市| 南木林县| 惠来县| 万荣县| 浠水县| 安多县| 双江| 扬州市| 榕江县| 临潭县| 松阳县| 北流市| 施秉县| 甘泉县| 唐海县| 陵水| 兴隆县| 突泉县| 土默特右旗| 九江县| 道真| 兰州市| 合川市| 茂名市|