Tauruser

          JSF will hibernate in spring.

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            24 隨筆 :: 2 文章 :: 19 評論 :: 0 Trackbacks

          #

            最近去圖書館借了本《Java Web 服務編程指南》,讀了第一章,寫點自己的看法吧。
            在還沒有接觸這本書的時候,我一直的以為WS就只是網絡上的web應用,這么說吧,就是我們經常上的網站。看了第一章之后,我才發現之前的直觀的看法是錯誤的,Web Service并不只是一個網站。Web Service使我們能夠對網絡上的一個對象進行遠程調用,也就是Remote Procedure Calls,RPC。
            我是這么理解的,一般性的網站我們也可以看成是廣義上的Web Service,但是Web Service并不僅局限行一般性的網站,他更加強大的功能在于提供一個公開的,標準化的接口,讓所有的客戶都能通過一服務注冊表,查找到此項服務,并對此項服務進行綁定。客戶可以通過這個公開的,標準化的API接口,進行遠程的服務調用。這些服務如,查詢天氣預報,查詢機場服務,在一個網絡商場進行下訂單操作,等等。只要服務商愿意公開他的Web服務,并在服務注冊表發布其服務,所有的潛在客戶都可以通過在服務注冊表中查找此服務,并得到關于此項服務的一些具體的描述,從而在服務商與客戶之間建立bind關系,遠程調用這些服務。
          ?  在Web服務中,我們可以看到有三個不同的角色。他們之間的交互關系如下圖所示。
          ??
            
            從這個圖我們可以很清楚地看到三者之間的關系。服務提供者提供Web Service,服務消費者是使用此服務客戶,而位于最頂端的服務注冊表,則為兩者互相尋找對方提供了一個橋梁。服務提供者在服務注冊表上發布自己提供的服務,服務消費者從服務注冊表上查找自己需要的服務,找到后,就可以在服務消費者和服務提供者之間進行綁定,服務消費者就可以對服務提供者提供的服務進行訪問,遠程調用。這里需要注意的是,服務提供者提供的服務可能是一個非常復雜的服務,他這項服務可能還會調用其它服務提供者提供的服務,他將所有的這些信息整合處理,最終為服務消費者完成此項服務。當然這項服務也可以很簡單,簡單到服務消費者發起一個訪問,直接返回一個響應就可以了。
            三個實體之間要進行通信,為了保證這些通信都能順利的進行,我們需要為這些通信定義規則,如果大家都遵守這些規則行事,這樣我們提供的服務就可以給任何消費者使用,消費者也就可以使用任何的服務提供者的服務了。這些規則有:
            
          1. Web Service Description Language, WSDL,Web服務描述語言,用來描述Web服務。
              
          2. Universal Description, Discovery, and Integration, UDDI,通用描述,發現,集成標準。這個是用來發布和查找Web服務的標準協議。
          3. Simple Object Access Protocol,SOAP,簡單對象訪問協議。用于綁定到Web服務的標準應用程序協議。

            這三個協議可以簡單的和上圖的三個操作對應。
            最終我們得到了基本Web服務棧:
            
          上面的功能都需要下面的支持。從最底層我們可以看到,Web服務不一定是建立在HTTP之上的,我們可以使用多種基于TCP/IP的應用層協議來實現我們的web service。

          posted @ 2006-11-28 12:34 Tauruser 閱讀(865) | 評論 (2)編輯 收藏

          中大沙發,大家常來坐坐啊!
          posted @ 2006-11-25 17:36 Tauruser 閱讀(269) | 評論 (0)編輯 收藏

          在我負責的一個個人日程模塊中,使用了一個<t:inputCalendar/>進行日期的選擇,并用一個<h:outputText/>將所選擇的日期顯示出來。這時候問題就出來了,如要我在<t:inputCalendar/>中選擇一個日期,在<h:outputText/>中輸出的日期總是會比選擇的日期提前一天。搞得很久都沒有辦法解決,最后還是用多一個<t:inputCalendar/>解決了問題,為了保持樣式和<h:outputText/>一致。可以設置<t:inputCalendar/>的屬性。
          <t:inputCalendar?displayValueOnly="true"?renderAsPopup="true"?readonly="true"?value="#{yourBackingBean.selectDate?}"/>
          如此就可以正常顯示了,樣式和<h:outputText/>無異。
          為什么<f:outputText/>用來輸出Date類型就會比預期的日期提前一天呢?
          posted @ 2006-11-25 14:16 Tauruser 閱讀(1021) | 評論 (2)編輯 收藏

          僅列出標題
          共3頁: 上一頁 1 2 3 
          主站蜘蛛池模板: 旌德县| 武穴市| 石嘴山市| 安乡县| 夏津县| 张家口市| 红安县| 施秉县| 宁安市| 连城县| 灌阳县| 山丹县| 琼结县| 吉木萨尔县| 肥东县| 铁力市| 棋牌| 敖汉旗| 武功县| 班戈县| 高青县| 仙居县| 玛纳斯县| 尖扎县| 来宾市| 启东市| 宜君县| 日照市| 保亭| 西安市| 嵊泗县| 增城市| 手游| 鹰潭市| 湟中县| 阿拉善盟| 城口县| 琼结县| 青铜峡市| 斗六市| 怀来县|