★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識重要,素質比智力重要,覺悟比素質更重要
          posts - 110,comments - 35,trackbacks - 0
          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          MSN: yeiwei2008@hotmail.com
              你溫柔的臉旁總是徜徉著快樂的神情,你調皮的眼神總是扣人心弦,每次走過都會被你糾纏,雖然有時候有點不講理,不過我到是很喜歡!
              你的倔強讓你變的有點高傲,高傲的你成為了我獵奇的對象,當與你相識的那一刻,我才真正的了解,其實你根本沒什么,也是小女人一個,需要疼愛,需要哄,需要愛!無聊的時候我總會上網上看著你,雖然有時候我們誰都不說話只是靜靜的待在那里!

          常用鏈接

          留言簿(4)

          隨筆分類(80)

          隨筆檔案(110)

          文章分類(28)

          文章檔案(31)

          新聞檔案(1)

          相冊

          收藏夾

          友情鏈接

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 61823
          • 排名 - 854

          最新評論

          閱讀排行榜

          評論排行榜

          Web Service初探(推薦)<br>
          <br>
          <br>
          <br>
          簡介<br>
          <br>
          回顧過去的六年,難以想象如果沒有互聯網的話,網絡計算會變成什么樣。更早的超文本模式失敗了,而互聯網成功了,這其中最基本的原因可以歸結為:互聯網簡單且無處不在。從服務提供者(如網上商店)的角度來看,只要你會打字,你就可以接受服務。從服務API的角度來看,互聯網上絕大多數的活動都可以由三種方法(GET, POST, 和PUT ) 以及一種標記語言來完成。Web Service的興起正是基于這樣一個事實:Web不僅可以作為一個信息平臺 ,也可以作為一個服務平臺。 <br>
          這里的“Services”不是指Amazon.com提供的那種粗糙的服務,而是一種組件服務,其他人可以用來構造更強大的服務。例如,Microsoft提供了Passport服務,提供Web上的認證功能,所以,類似華盛頓郵報之類的電子報紙就不必自己開發認證服務,只要交給Passport做就可以了。當然,這只是一個假設。<br>
          <br>
          Oracle的動態服務白皮書(dynamic services whitepaper)提供了更多組件服務的例子:匯率轉換,翻譯,貨物運輸等等。IBM對Web Service有一個更為正式的定義:<br>
          <br>
          Web ervices 是一種新的web應用程序分支,他們是自包含、自描述、模塊化的應用,可以發布、定位、通過web調用。Web service可以執行從簡單的請求到復雜商務處理的任何功能。一旦部署以后,其他web services應用程序可以發現并調用它部署的服務。<br>
          <br>
          IBM的Web Service指南接著說在幾年前Web Service還是一個效率低下無法引起人們興趣的概念。但是隨著帶寬和存儲變的更為便宜,內容更為動態化,對不同平臺上廣泛而多樣的計算設備的集成的要求也更為強烈,同時,也使得人們對代價(帶寬和存儲)不那么敏感。<br>
          <br>
          當我已經有了我中意的中間件平臺(RMI, Jini, CORBA, DCOM 等等)時,為什么還要為Web而煩惱呢?中間件確實提供了強大的服務實現手段,但是,他們當中沒有一個是絕對的勝利者。Web作為信息發布者的力量就在于簡單且無處不在,這對解決現在這樣一個分裂中間件世界很重要。Web通過在傳統中間件平臺上更有效實現的Services,來提供一個統一且廣泛適用的接口,這樣就改善了這個平臺。<br>
          <br>
          從一個N層應用程序結構的角度來看,web service只是一個方便程序訪問的包裝,服務還是要靠中間件來實現。訪問包括服務請求處理(監聽者)和一個支持商業邏輯操作的接口,商業邏輯本身是由傳統的中間件平臺實現的。<br>
          <br>
          Web Services平臺<br>
          <br>
          那么什么是web service 平臺呢?最基本的平臺是XML加HTTP。HTTP是一個在Internet上廣泛使用的協議。XML是一種元語言,你可以用它書寫特定的語言來描述客戶和服務之間或者組件和復雜服務之間的交互。在web server之后,XML格式的消息被轉變成中間件的請求,返回的結果也會轉化成XML格式。 <br>
          <br>
          你可能會問,這與說CORBA是IDL加上RPC不是一樣嗎?這個平臺到底如何支持service的發現,事務,安全,認證等等基本功能,以使它真正成為一個平臺呢? 下面我們將講述這一點。 <br>
          <br>
          有必要增加一些服務,同時保持簡單性和普遍性,來把Web構建成一個功能更強大的平臺。可以認為功能全面的web services平臺是XML+HTTP+SOAP+WSDL+UDDI。在更高層次上,可能還要加上一些尚未廣泛接受的技術如XAML,XLANG, XKMS,和XFS。<br>
          <br>
          以下是對這些平臺要素的簡要描述。需要指出的是,這些還是發展中的技術,很多時候對一個問題會有多種解決方案。<br>
          <br>
          SOAP (遠程調用) <br>
          UDDI (貿易,目錄服務) <br>
          WSDL (描述服務特征) <br>
          XLANG/XAML (為包括多種web services的復雜web事務提供支持) <br>
          XKMS (XML Key Management Specification) - 支持認證和注冊,這個工作還在進展之中 <br>
          <br>
          SOAP<br>
          <br>
          SOAP是一個協議規范,定義了傳遞XML-encoded數據時的統一方式。它還定義了使用HTTP作為底層通信協議時執行遠程調用(RPC)的方法。<br>
          <br>
          SOAP的興起是基于這樣一種認識,無論現在的中間件是如何的好,他們都需要一個WAN包裝。以XML格式發送消息有很多好處,如能夠確保互用性。中間件使用者看來愿意容忍解析和序列化XML文檔的代價,因為這可以讓他們的軟件使用范圍更寬。<br>
          <br>
          IBM, Microsoft, UserLand,和DevelopMentor在2000年向W3C提交了SOAP,并成為W3C的Note,SOAP更長遠的發展規劃現在是由W3C的XML協議工作組來制定。這有力的表明了直到W3C工作組交付規范為止,SOAP都將是一個穩定的規范。<br>
          <br>
          UDDI (Universal Description, Discovery and Integration Service)<br>
          <br>
          UDDI為客戶提供了動態查找其它web <br>
          <br>
          services的機制。使用UDDI接口,商務處理可以動態的連接到外部的商務合作者提供的服務上。一個UDDI注冊類似于CORBA的trader,也可以把它想象成商業應用程序的DNS服務。一個UDDI注冊有兩種客戶:要發布一個服務(和使用接口)的商務應用,以及想要得到特定服務的客戶。下表是UDDI提供服務的概述。UDDI層在SOAP層之上,并假定請求和應答都是以SOAP消息傳送的UDDI對象。下面還包含了一個簡單的查詢。<br>
          <br>
          <br>
          <br>
          關于支持全方位的發現(full-featured discovery),UDDI沒有一個近期的計劃。UDDI希望能夠成為支持其它標準的更高層服務的基礎。UDDI計劃支持更復雜的商務邏輯,包括層次型商業組織。UDDI有著廣泛的支持,IBM, Ariba,和 <br>
          <br>
          Microsoft都全力推動它。到目前為止,它還不是一個開放的標準。<br>
          <br>
          <br>
          <br>
          UDDI 舉例<br>
          <br>
          <br>
          查詢:下面在SOAP封裝之內的查詢,返回Microsoft的詳細信息。<br>
          <br>
          <br>
          <br>
          &lt;find_business <br>
          <br>
          generic=&quot;1.0&quot; xmlns=&quot;urn:uddi-org:api&quot;&gt; <br>
          <br>
          <br>
          <br>
          <br>
          face=Arial,Helvetica&gt; <br>
          <br>
          &lt;name&gt;Microsoft&lt;/name&gt; <br>
          <br>
          <br>
          <br>
          <br>
          face=Arial,Helvetica&gt;&lt;/find_business&gt;<br>
          <br>
          <br>
          <br>
          結果:businessInfo元素中包含了Microsoft注冊的服務信息,也包括這個UDDI服務本身。<br>
          <br>
          &lt;businessList generic=&quot;1.0&quot;<br>
          operator=&quot;Microsoft Corporation&quot;<br>
          truncated=&quot;false&quot;<br>
          xmlns=&quot;urn:uddi-org:api&quot;&gt;<br>
          &lt;businessInfos&gt;<br>
          &lt;businessInfo<br>
          businessKey=&quot;0076B468-EB27-42E5-AC09-9955CFF462A3&quot;&gt;<br>
          &lt;name&gt;Microsoft Corporation&lt;/name&gt;<br>
          &lt;description xml:lang=&quot;en&quot;&gt;<br>
          Empowering people through great software -<br>
          any time, any place and on any device is Microsoft’s <br>
          vision. As the worldwide leader in software for personal<br>
          and business computing, we strive to produce innovative <br>
          products and services that meet our customer’s<br>
          &lt;/description&gt;<br>
          &lt;serviceInfos&gt;<br>
          &lt;serviceInfo<br>
          businessKey=&quot;0076B468-EB27-42E5-AC09-9955CFF462A3&quot; <br>
          serviceKey=&quot;1FFE1F71-2AF3-45FB-B788-09AF7FF151A4&quot;&gt;<br>
          &lt;name&gt;Web services for smart searching&lt;/name&gt;<br>
          &lt;/serviceInfo&gt;<br>
          &lt;serviceInfo<br>
          businessKey=&quot;0076B468-EB27-42E5-AC09-9955CFF462A3&quot;<br>
          serviceKey=&quot;8BF2F51F-8ED4-43FE-B665-38D8205D1333&quot;&gt;<br>
          &lt;name&gt;Electronic Business Integration Services&lt;/name&gt;<br>
          &lt;/serviceInfo&gt;<br>
          &lt;serviceInfo<br>
          businessKey=&quot;0076B468-EB27-42E5-AC09-9955CFF462A3&quot;<br>
          serviceKey=&quot;611C5867-384E-4FFD-B49C-28F93A7B4F9B&quot;&gt; <br>
          &lt;name&gt;Volume Licensing Select Program&lt;/name&gt; <br>
          &lt;/serviceInfo&gt;<br>
          &lt;serviceInfo<br>
          businessKey=&quot;0076B468-EB27-42E5-AC09-9955CFF462A3&quot;<br>
          serviceKey=&quot;A8E4999A-21A3-47FA-802E-EE50A88B266F&quot;&gt;<br>
          &lt;name&gt;UDDI Web Sites&lt;/name&gt;<br>
          &lt;/serviceInfo&gt; <br>
          &lt;/serviceInfos&gt;<br>
          &lt;/businessInfo&gt;<br>
          &lt;/businessInfos&gt;<br>
          &lt;/businessList&gt;<br>
          <br>
          WSDL :Web服務定義語言<br>
          <br>
          WSDL為服務提供者提供了描述構建在不同協議或編碼方式之上的web <br>
          <br>
          service請求基本格式的方法。WSDL用來描述一個web <br>
          <br>
          service能做什么,它的位置在哪里,如何調用它等等。在假定以SOAP/HTTP/MIME <br>
          <br>
          作為遠程對象調用機制的情況下,WSDL會發揮最大作用。UDDI注冊描述了web <br>
          <br>
          service的絕大多數方面,包括服務的綁定細節。WSDL可以看作是UDDI服務描述的子集。<br>
          <br>
          <br>
          <br>
          WSDL將服務定義為一個網絡端點的集合,或者說端口的集合。在WSDL里面,端點及消息的抽象定義與它們具體的網絡實現和數據格式綁定是分離的。這樣就可以重用這些抽象定義:消息,需要交換的數據的抽象描述;端口類型,操作的抽象集合。針對一個特定端口類型的具體協議和數據格式規范構成一個可重用的綁定。一個端口定義成網絡地址和可重用的綁定的聯接,端口的集合定義為服務。因此一個WSDL文檔在定義網絡服務的時候使用如下的元素:<br>
          類型-- <br>
          <br>
          使用某種的類型系統(比如XSD)定義數據類型的容器 <br>
          消息-- 通訊數據抽象的有類型的定義 <br>
          操作-- <br>
          <br>
          服務支持的動作的抽象描述 <br>
          端口類型-- 一個操作的抽象集合,該操作由一個或多個端點支持 <br>
          綁定-- <br>
          <br>
          針對一個特定端口類型的具體的協議規范和數據格式規范 <br>
          端口-- 一個單一的端點,定義成一個綁定和一個網絡地址的聯接 <br>
          <br>
          <br>
          服務-- 相關的端點的集合 <br>
          <br>
          <br>
          <br>
          所以,可以這樣說,WSDL給客戶提供了一個模板,方便他們描述和綁定服務。<br>
          <br>
          <br>
          <br>
          下面是一個簡單的例子,例子中的服務用來查找Motorala股票的價格。<br>
          <br>
          服務描述:<br>
          <br>
          &lt;?xml version=&quot;1.0&quot;?&gt;<br>
          &lt;definitions name=&quot;StockQuote&quot;<br>
          targetNamespace=&quot;http://example.com/stockquote.wsdl&quot;<br>
          xmlns:tns=&quot;http://example.com/stockquote.wsdl&quot;<br>
          xmlns:xsd1=&quot;http://example.com/stockquote.xsd&quot;<br>
          xmlns:soap=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot;<br>
          xmlns=&quot;http://schemas.xmlsoap.org/wsdl/&quot;&gt;<br>
          &lt;types&gt;<br>
          &lt;schema targetNamespace=&quot;http://example.com/stockquote.xsd&quot;<br>
          xmlns=&quot;http://www.w3.org/1999/XMLSchema&quot;&gt; <br>
          &lt;element name=&quot;TradePriceRequest&quot;&gt;<br>
          &lt;complexType&gt;<br>
          &lt;all&gt;<br>
          &lt;element name=&quot;tickerSymbol&quot; type=&quot;string&quot;/&gt;<br>
          &lt;/all&gt; <br>
          &lt;/complexType&gt; <br>
          &lt;/element&gt;<br>
          &lt;element name=&quot;TradePrice&quot;&gt; <br>
          &lt;complexType&gt; <br>
          &lt;all&gt;<br>
          &lt;element name=&quot;price&quot; type=&quot;float&quot;/&gt; <br>
          &lt;/all&gt; <br>
          &lt;/complexType&gt; <br>
          &lt;/element&gt; <br>
          &lt;/schema&gt;<br>
          &lt;/types&gt;<br>
          <br>
          &lt;message name=&quot;GetLastTradePriceInput&quot;&gt;<br>
          &lt;part name=&quot;body&quot; element=&quot;xsd1:TradePrice&quot;/&gt;<br>
          &lt;/message&gt;<br>
          &lt;message name=&quot;GetLastTradePriceOutput&quot;&gt;<br>
          &lt;part name=&quot;body&quot; element=&quot;xsd1:TradePriceResult&quot;/&gt;<br>
          &lt;/message&gt;<br>
          <br>
          &lt;portType name=&quot;StockQuotePortType&quot;&gt;<br>
          &lt;operation name=&quot;GetLastTradePrice&quot;&gt;<br>
          &lt;input message=&quot;tns:GetLastTradePriceInput&quot;/&gt;<br>
          &lt;output message=&quot;tns:GetLastTradePriceOutput&quot;/&gt;<br>
          &lt;/operation&gt;<br>
          &lt;/portType&gt;<br>
          <br>
          &lt;binding name=&quot;StockQuoteSoapBinding&quot;<br>
          type=&quot;tns:StockQuotePortType&quot;&gt;<br>
          &lt;soap:binding style=&quot;document&quot;<br>
          transport=&quot;http://schemas.xmlsoap.org/soap/http&quot;/&gt;<br>
          &lt;operation name=&quot;GetLastTradePrice&quot;&gt;<br>
          &lt;soap:operation<br>
          soapAction=&quot;http://example.com/GetLastTradePrice&quot;/&gt; <br>
          &lt;input&gt;<br>
          &lt;soap:body use=&quot;literal&quot; <br>
          namespace=&quot;http://example.com/stockquote.xsd&quot;<br>
          encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/&gt;<br>
          &lt;/input&gt; <br>
          &lt;output&gt;<br>
          &lt;soap:body use=&quot;literal&quot; <br>
          namespace=&quot;http://example.com/stockquote.xsd&quot;<br>
          encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/&gt; <br>
          &lt;/output&gt; <br>
          &lt;/operation&gt;<br>
          &lt;/binding&gt;<br>
          <br>
          &lt;service name=&quot;StockQuoteService&quot;&gt;<br>
          &lt;documentation&gt;My first service&lt;/documentation&gt;<br>
          &lt;port name=&quot;StockQuotePort&quot; binding=&quot;tns:StockQuoteBinding&quot;&gt; <br>
          &lt;soap:address location=&quot;http://example.com/stockquote&quot;/&gt;<br>
          &lt;/port&gt;<br>
          &lt;/service&gt;<br>
          <br>
          &lt;/definitions&gt;<br>
          <br>
          &lt;binding name=&quot;StockQuoteServiceBinding&quot; <br>
          type=&quot;StockQuoteServiceType&quot;&gt; <br>
          &lt;soap:binding style=&quot;rpc&quot;<br>
          transport=&quot;http://schemas.xmlsoap.org/soap/http&quot;/&gt;<br>
          &lt;operation name=&quot;getQuote&quot;&gt; <br>
          &lt;soap:operation <br>
          soapAction=&quot;http://www.getquote.com/GetQuote&quot;/&gt;<br>
          &lt;input&gt;<br>
          &lt;soap:body type=&quot;InMessageRequest&quot;<br>
          namespace=&quot;urn:live-stock-quotes&quot; <br>
          encoding=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/&gt; <br>
          &lt;/input&gt;<br>
          &lt;output&gt;<br>
          &lt;soap:body type=&quot;OutMessageResponse&quot;<br>
          encoding=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/&gt;<br>
          &lt;/output&gt;<br>
          &lt;/operation&gt; <br>
          &lt;/binding&gt;<br>
          &lt;service name=&quot;StockQuoteService&quot;&gt;<br>
          &lt;documentation&gt;My first service<br>
          &lt;/documentation&gt;<br>
          &lt;port name=&quot;StockQuotePort&quot;<br>
          binding=&quot;tns:StockQuoteBinding&quot;&gt;<br>
          &lt;soap:address location=&quot;http://example.com/stockquote&quot;/&gt;<br>
          &lt;/port&gt;<br>
          &lt;/service&gt;<br>
          &lt;/definitions&gt;<br>
          <br>
          SOAP請求:<br>
          <br>
          POST /StockQuote HTTP/1.1<br>
          Host: www.stockquoteserver.com<br>
          Content-Type: text/xml;<br>
          charset=&quot;utf-8&quot;<br>
          Content-Length: nnnn<br>
          SOAPAction: &quot;Some-URI&quot;<br>
          <br>
          &lt;SOAP-ENV:Envelope<br>
          xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; <br>
          SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt; <br>
          &lt;SOAP-ENV:Body&gt;<br>
          &lt;m:GetLastTradePrice<br>
          xmlns:m=&quot;Some-URI&quot;&gt;<br>
          &lt;symbol&gt;MOT&lt;/symbol&gt;<br>
          &lt;/m:GetLastTradePrice&gt; <br>
          &lt;/SOAP-ENV:Body&gt;<br>
          &lt;/SOAP-ENV:Envelope&gt;<br>
          <br>
          SOAP應答:<br>
          <br>
          HTTP/1.1 200 OK Content-Type: text/xml; charset=&quot;utf-8&quot;<br>
          Content-Length: nnnn<br>
          <br>
          &lt;SOAP-ENV:Envelope<br>
          xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;<br>
          SOAP-ENV:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/&gt; <br>
          &lt;SOAP-ENV:Body&gt;<br>
          &lt;m:GetLastTradePriceResponse<br>
          xmlns:m=&quot;Some-URI&quot;&gt;<br>
          &lt;Price&gt;14.5&lt;/Price&gt;<br>
          &lt;/m:GetLastTradePriceResponse&gt;<br>
          &lt;/SOAP-ENV:Body&gt;<br>
          &lt;/SOAP-ENV:Envelope&gt;<br>
          <br>
          XLANG<br>
          <br>
          <br>
          數據庫中的事務的傳統概念是原子性,即要么不做,要么全做。在分布式的系統中維持這種原子性,一般采用一種代價昂貴的處理方式,即兩相承諾。另一個相對優化的模型也在研究之中(最初叫做sagas,由Hector <br>
          <br>
          Garcia-Molina提出),即每個動作都有一個明確的互補動作,用以取消該動作產生的結果。在現實生活中,這種互補動作的例子很多,比如說,你在信用卡里取出$52,互補動作就是存入$52,你發出一封Email說“你將會在7天內拿到你預定的產品”,互補動作就是發Email說“哦,你還得多等幾天”。XLang就是基于這樣一個概念,用來表示任何要取消的請求的互補動作。而Web <br>
          <br>
          Service的分布式基礎將推動XLang規范的發展,使之能完成復雜的撤銷操作。 <br>
          <br>
          XAML<br>
          <br>
          Transaction Authority Markup Language (XAML)提供了傳統的兩相承諾事務語義。在XAML規范中有一個B2B事務的例子。XAML不完全局限于兩相承諾,某些操作也可以象XLang一樣有互補動作。兩相承諾在企業集成中顯然是很有效的,而大量的web事務(如B2C事務)在更便宜的互補動作模型中可以完成。除非XAML把互補動作放在第一位,否則還是XLang存在的的理由更充分。<br>
          <br>
          Scenario<br>
          <br>
          下面的場景演示了一個商業事務,包括一批web service,并將利用XAML。考慮一家公司在網上向一家化工廠購買苯。為了讓買家能夠購買,賣方必須有第三方提供的附加增值服務,如運貨方式,付款方式,意外保險,安全運輸執照等等。必須等到所有服務都就緒且滿足他的要求,買方才會同意購買。他可以買或者不買,換句話說,必須滿足所有的相關要求,才有可能完成這次商務活動。<br>
          <br>
          提供頂層商業事務功能的軟件必須協調每個web service。包括(1)賣方存貨系統;(2)保險服務確保產品能被運輸;(3)財務服務確保依照賣方的形式付款;(4)運輸服務保證按時發送貨物;(5)協調服務確保與政府的安全要求一致。<br>
          <br>
          XKMS (XML Key Management Specification)<br>
          <br>
          XKMS是Microsoft和Verisign用XML應用程序集成PKI和數字認證(用于Internet事務安全性)的成果。關鍵的思想是將簽名處理放到Web上的可信服務器(trust server)上,這樣小客戶就不必自己來做這些內容。XKMS依賴于XML數字簽名規范和正在制定中的XML加密規范。現在的XKMS規范依賴于XML,SOAP,WSDL。<br>
          <br>
          其它例子<br>
          <br>
          Web service平臺是一個發展的生態系統,達爾文主義還在起作用,這里有進化,有競爭,還有混亂。下面是一個小例子。<br>
          <br>
          XFS <br>
          <br>
          XMethods 文件系統服務讓你能夠通過SOAP接口讀或貼文件。這個系統讓開發者可以創建使用集中而穩定數據的服務。理想情況下,這種文件系統能夠用來集中被多個節點訪問的信息。例如,可以用它支持程序補丁的自動升級。XFS提供了一個客戶端工具,在Windows Explorer中集成了XFS web service,這樣Windows Explorer集成了基于XML-SOAP的文件系統。XFS是開放源碼的,由xmethods.com始創,它的前景還不清楚,但是,這個想法在技術上是很有吸引力的。<br>
          <br>
          <br>
          <br>
          posted on 2007-03-23 10:30 圣域飛俠 閱讀(245) 評論(0)  編輯  收藏 所屬分類: 轉載
          主站蜘蛛池模板: 两当县| 湖北省| 丰宁| 界首市| 惠来县| 华阴市| 楚雄市| 郯城县| 杨浦区| 石嘴山市| 县级市| 阳高县| 仁怀市| 阜平县| 于都县| 岗巴县| 乌拉特后旗| 棋牌| 林西县| 安多县| 富宁县| 金平| 甘南县| 绩溪县| 永川市| 淳安县| 寿宁县| 常山县| 亚东县| 临颍县| 四平市| 五家渠市| 二连浩特市| 三明市| 阳新县| 牟定县| 乌拉特中旗| 塔城市| 邵东县| 海淀区| 故城县|