ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美亚洲日本一区,亚洲精品二区三区,最新地址在线观看http://www.aygfsteel.com/shoppingbill/category/42424.htmlzh-cnWed, 28 Apr 2010 12:22:20 GMTWed, 28 Apr 2010 12:22:20 GMT60REST WebService与SOAP WebService的比è¾?/title><link>http://www.aygfsteel.com/shoppingbill/archive/2010/04/27/319476.html</link><dc:creator>shoppingbill</dc:creator><author>shoppingbill</author><pubDate>Tue, 27 Apr 2010 06:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/shoppingbill/archive/2010/04/27/319476.html</guid><wfw:comment>http://www.aygfsteel.com/shoppingbill/comments/319476.html</wfw:comment><comments>http://www.aygfsteel.com/shoppingbill/archive/2010/04/27/319476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/shoppingbill/comments/commentRss/319476.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/shoppingbill/services/trackbacks/319476.html</trackback:ping><description><![CDATA[<font size="3" face="宋体"><span>åœ?/span>SOA<span>的基¼‹€æŠ€æœ¯å®žçŽ°æ–¹å¼ä¸­</span>WebService<span>å æ®äº†å¾ˆé‡è¦çš„地ä½ï¼Œé€šå¸¸æˆ‘们æåˆ°</span>WebService<span>½W¬ä¸€æƒÏx³•ž®±æ˜¯</span>SOAP<span>消æ¯åœ¨å„¿U传输å议上交互。近几年</span>REST<span>çš„æ€æƒ³ä¼´éšç€</span>SOA<span>逿¸è¢«å¤§å®¶æŽ¥å—ï¼ŒåŒæ—¶å„大¾|‘ç«™ä¸æ–­å¼€æ”?/span>API<span>æä¾›¾l™å¼€å‘者,也激起了</span>REST<span>风格</span>WebService<span>的热潮ã€?/span> </font> <h1><span style="font-size: 15pt; line-height: 240%;"><font size="3" face="宋体">SOAP</font></span></h1> <p><font face="宋体"><font size="3">       <span>什么是</span>SOAP<span>åQŒæˆ‘想ä¸ç”¨å¤šè¯ß_¼Œ</span>google<span>一把满眼都是。其å®?/span>SOAP<span>最早是针对</span>RPC<span>的一¿Uè§£å†Ïx–¹æ¡ˆï¼Œ½Ž€å•对象访问å议,很轻é‡ï¼ŒåŒæ—¶ä½œäؓ应用åè®®å¯ä»¥åŸÞZºŽå¤šç§ä¼ è¾“åè®®æ¥ä¼ é€’消æ¯ï¼ˆ</span>Http,SMTP<span>½{‰ï¼‰ã€‚但是éšç€</span>SOAP<span>ä½œäØ“</span>WebService<span>çš„å¹¿æ³›åº”ç”¨ï¼Œä¸æ–­åœ°å¢žåŠ é™„åŠ çš„å†…å®¹åQŒä‹É得现在开å‘äh员觉å¾?/span>SOAP<span>很é‡åQŒä‹É用门槛很高。在</span>SOAP<span>åŽç®‹çš„å‘展过½E‹ä¸­åQ?/span>WS-*<span>一¾pÕdˆ—å议的制定,增加äº?/span>SOAP<span>çš„æˆç†Ÿåº¦åQŒä¹Ÿ¾l?/span>SOAP<span>增加了负担ã€?/span></font></font></p> <h1><span style="font-size: 15pt; line-height: 240%;"><font size="3" face="宋体">REST</font></span></h1> <p><font face="宋体"><font size="3">       REST<span>其实òq¶ä¸æ˜¯ä»€ä¹ˆåè®®ä¹Ÿä¸æ˜¯ä»€ä¹ˆæ ‡å‡†ï¼Œè€Œæ˜¯ž®?/span>Http<span>å议的设计åˆè¡·ä½œäº†è¯ é‡Šï¼Œåœ?/span>Http<span>å议被广泛利用的今天åQŒè¶Šæ¥è¶Šå¤šçš„æ˜¯å°†å…¶ä½œä¸ÞZ¼ è¾“å议,而éžåŽŸå…ˆè®¾è®¡è€…æ‰€è€ƒè™‘çš„åº”ç”¨åè®®ã€?/span>SOAP<span>¾cÕdž‹çš?/span>WebService<span>ž®±æ˜¯æœ€å¥½çš„例å­åQ?/span>SOAP<span>消æ¯å®Œå…¨ž®±æ˜¯ž®?/span>Http<span>åè®®ä½œäØ“æ¶ˆæ¯æ‰¿è²åQŒä»¥è‡³äºŽå¯¹äºŽ</span>Http<span>å议中的å„ç§å‚æ•°åQˆä¾‹å¦‚ç¼–ç ï¼Œé”™è¯¯ç ç­‰åQ‰éƒ½¾|®ä¹‹ä¸é¡¾ã€‚其实,最轻釾U§çš„应用åè®®ž®±æ˜¯</span>Http<span>åè®®ã€?/span>Http<span>å议所抽象çš?/span>get,post,put,delete<span>ž®±å¥½æ¯”æ•°æ®åº“中最基本的增删改查,而互è”网上的å„ç§èµ„溞®±å¥½æ¯”æ•°æ®åº“中的记录åQˆå¯èƒ½è¿™ä¹ˆæ¯”å–ÖM¸æ˜¯å¾ˆå¥½ï¼‰åQŒå¯¹äºŽå„¿U资æºçš„æ“ä½œæœ€åŽæ€ÀL˜¯èƒ½æŠ½è±¡æˆä¸ø™¿™å››ç§åŸºæœ¬æ“作åQŒåœ¨å®šä¹‰äº†å®šä½èµ„æºçš„规则以åŽåQŒå¯¹äºŽèµ„æºçš„æ“ä½œé€šè¿‡æ ‡å‡†çš?/span>Http<span>åè®®ž®±å¯ä»¥å®žçŽŽÍ¼Œå¼€å‘者也会å—益于˜q™ç§è½»é‡¾U§çš„åè®®ã€?/span></font></font></p> <p><font face="宋体"><font size="3">    REST<span>çš„æ€æƒ³å½’结以下有如下几个关键点åQ?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3">1<span>åQŽé¢å‘资æºçš„æŽ¥å£è®¾è®¡</span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3"><span>所有的接å£è®¾è®¡éƒ½æ˜¯é’ˆå¯¹èµ„æºæ¥è®¾è®¡çš„åQŒä¹Ÿž®±å¾ˆ¾cÖM¼¼äºŽæˆ‘们的é¢å‘对象和é¢å‘过½E‹çš„设计区别åQŒåªä¸è¿‡çŽ°åœ¨ž®†ç½‘¾lœä¸Šçš„æ“ä½œå®žä½“éƒ½ä½œäØ“èµ„æºæ¥çœ‹å¾…ï¼ŒåŒæ—¶</span>URI<span>的设计也是体çŽîCº†å¯¹äºŽèµ„æºçš„定ä½è®¾è®¡ã€‚åŽé¢ä¼šæåˆ°æœ‰ä¸€äº›ç½‘站的</span>API<span>设计说是</span>REST<span>设计åQŒå…¶å®žæ˜¯</span>RPC-REST<span>çš„æØœåˆä½“åQŒåÆˆéžæ˜¯</span>REST<span>çš„æ€æƒ³ã€?/span></font></font></p> <p><font size="3" face="宋体">       2<span>åQŽæŠ½è±¡æ“ä½œäØ“åŸºç¡€çš?/span>CRUD</font></p> <p><font size="3" face="宋体">       <span>˜q™ç‚¹å¾ˆç®€å•,</span>Http<span>中的</span>get,put,post,delete<span>分别对应äº?/span>read,update,create,delete<span>å››ç§æ“作åQŒå¦‚æžœä»…ä»…æ˜¯ä½œäØ“å¯¹äºŽèµ„æºçš„æ“ä½œï¼ŒæŠ½è±¡æˆäØ“˜q™å››¿Uå·²¾lèƒö够了åQŒä½†æ˜¯å¯¹äºŽçŽ°åœ¨çš„ä¸€äº›å¤æ‚的业务æœåŠ¡æŽ¥å£è®¾è®¡åQŒå¯èƒ½è¿™æ ïLš„æŠ½è±¡æœªå¿…能够满èƒö。其实这也在åŽé¢çš„几个网站的</span>API<span>设计中暴露了˜q™æ ·çš„问题,如果è¦å®Œå…¨æŒ‰ç…?/span>REST<span>çš„æ€æƒ³æ¥è®¾è®¡ï¼Œé‚£ä¹ˆé€‚用的环境将会有é™åˆ¶åQŒè€Œéžæ”¾ä¹‹å››æ“v皆准的ã€?/span>      </font></p> <p><font face="宋体"><font size="3">       3<span>åQ?/span>Http<span>是应用å议而éžä¼ è¾“åè®®</span></font></font></p> <p><font face="宋体"><font size="3">       <span>˜q™ç‚¹åœ¨åŽé¢å„大网站的</span>API<span>分æžä¸­æœ‰å¾ˆæ˜Žæ˜„¡š„体现åQŒå…¶å®žæœ‰äº›ç½‘站已¾lèµ°åˆîCº†</span>SOAP<span>çš„è€èµ\上,说是</span>REST<span>çš„ç†å¿µè®¾è®¡ï¼Œå…¶å®žæ˜¯ä½œäº†ä¸€å¥—ç§æœ‰çš„</span>SOAP<span>åè®®åQŒå› æ­¤ç§°ä¹‹äØ“</span>REST<span>风格的自定义</span>SOAP<span>åè®®ã€?/span></font></font></p> <p style="text-indent: 21.75pt;"><font face="宋体"><font size="3">4<span>åQŽæ— çжæ€ï¼Œè‡ªåŒ…å?/span></font></font></p> <p style="text-indent: 21.75pt;"><font face="宋体"><font size="3"><span>˜q™ç‚¹å…¶å®žä¸ä»…仅是对于</span>REST<span>æ¥è¯´çš„ï¼Œä½œäØ“æŽ¥å£è®¾è®¡éƒ½éœ€è¦èƒ½å¤Ÿåšåˆ°è¿™ç‚¹ï¼Œä¹Ÿæ˜¯ä½œäØ“å¯æ‰©å±•和高效性的最基本的ä¿è¯ï¼Œž®Þq®—是ä‹Éç”?/span>SOAP<span>çš?/span>WebService<span>也是一栗÷€?/span></font></font></p> <h1><span style="font-size: 15pt; line-height: 240%;"><font size="3" face="宋体">REST vs SOAP</font></span></h1> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">æˆç†Ÿåº¦ï¼š</font></span></h2> <p style="text-indent: 21pt;"><font face="宋体"><font size="3">SOAP<span>虽然å‘展到现在已¾l脱¼›ÖMº†åˆè¡·åQŒä½†æ˜¯å¯¹äºŽå¼‚构环境æœåŠ¡å‘布和调用åQŒä»¥åŠåŽ‚å•†çš„æ”¯æŒéƒ½å·²¾lè¾¾åˆîCº†è¾ƒäØ“æˆç†Ÿçš„æƒ…å†üc€‚ä¸åŒåã^åŽÍ¼Œå¼€å‘语­a€ä¹‹é—´é€šè¿‡</span>SOAP<span>æ¥äº¤äº’çš„</span>web service<span>éƒ½èƒ½å¤Ÿè¾ƒå¥½çš„äº’é€šï¼ˆåœ¨éƒ¨åˆ†å¤æ‚å’Œç‰ÒŽ®Šçš„傿•°å’Œ˜q”回对象解æžä¸Šï¼Œå议没有作很¾l†è‡´çš„è§„å®šï¼Œå¯ÆD‡´˜q˜æ˜¯éœ€è¦ä½œéƒ¨åˆ†ä¿®æ­£åQ?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3">REST<span>国外很多大网站都å‘布了自å·Þqš„å¼€å?/span>API<span>åQŒå¾ˆå¤šéƒ½æä¾›äº?/span>SOAP<span>å’?/span>REST<span>两ç§</span>Web Service<span>åQŒæ ¹æ®è°ƒæŸ¥éƒ¨åˆ†ç½‘站的</span>REST<span>风格的ä‹É用情况è¦é«˜äºŽ</span>SOAP<span>。但是由äº?/span>REST<span>åªæ˜¯ä¸€¿U基äº?/span>Http<span>åè®®å®žçŽ°èµ„æºæ“ä½œçš„æ€æƒ³åQŒå› æ­¤å„个网站的</span>REST<span>实现都自有一套,在åŽé¢ä¼šè®²è¯‰å„个大网站的</span>REST API<span>的风根{€‚ä¹Ÿæ­£æ˜¯å› äØ“˜q™ç§å„自实现的情况,在性能和å¯ç”¨æ€§ä¸Šä¼šå¤§å¤§é«˜äº?/span>SOAP<span>å‘布çš?/span>web service<span>åQŒä½†¾lŸä¸€é€šç”¨æ–šw¢˜qœè¿œä¸åŠ</span>SOAP<span>。由于这些大¾|‘ç«™çš?/span>SP<span>往往专注于此¾|‘ç«™çš?/span>API<span>å¼€å‘ï¼Œå› æ­¤é€šç”¨æ€§è¦æ±‚ä¸é«˜ã€?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3"><span>ç”׃ºŽæ²¡æœ‰¾cÖM¼¼äº?/span>SOAP<span>çš„æƒå¨æ€§åè®®ä½œä¸ø™§„范,</span>REST<span>实现的儿Uå议仅仅åªèƒ½ç®—æ˜¯ç§æœ‰å议,当然需è¦éµå¾?/span>REST<span>çš„æ€æƒ³åQŒä½†æ˜¯è¿™æ ïL»†èŠ‚æ–¹é¢æœ‰å¤ªå¤šæ²¡æœ‰¾U¦æŸçš„地æ–V€?/span>REST<span>æ—¥åŽçš„å‘展所走å‘规范也会直接影å“到这部分的设计是å¦èƒ½å¤Ÿæœ‰å¾ˆå¥½çš„生命力ã€?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3"><span>æ€Èš„æ¥è¯´</span>SOAP<span>在æˆç†Ÿåº¦ä¸Šä¼˜äº?/span>REST<span>ã€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">效率和易用性:</font></span></h2> <p><font face="宋体"><font size="3">       SOAP<span>å议对于消æ¯ä½“和消æ¯å¤´éƒ½æœ‰å®šä¹‰ï¼ŒåŒæ—¶æ¶ˆæ¯å¤´çš„坿‰©å±•æ€§äØ“å„ç§äº’蔾|‘的标准æä¾›äº†æ‰©å±•的基础åQ?/span>WS-*<span>¾pÕdˆ—ž®±æ˜¯è¾ƒäØ“æˆåŠŸçš„è§„èŒƒã€‚ä½†æ˜¯ä¹Ÿç”׃ºŽ</span>SOAP<span>ç”׃ºŽå„ç§éœ€æ±‚䏿–­æ‰©å……其本èínåè®®çš„å†…å®¹ï¼Œå¯ÆD‡´åœ?/span>SOAP<span>å¤„ç†æ–šw¢çš„æ€§èƒ½æœ‰æ‰€ä¸‹é™ã€‚åŒæ—¶åœ¨æ˜“用性方é¢ä»¥åŠå­¦ä¹ æˆæœ¬ä¸Šä¹Ÿæœ‰æ‰€å¢žåŠ ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       REST<span>被äh们的é‡è§†åQŒå…¶å®žå¾ˆå¤§ä¸€æ–šw¢ä¹Ÿæ˜¯å› äؓ光™«˜æ•ˆä»¥åŠç®€‹z易用的ç‰ÒŽ€§ã€‚è¿™¿U高效一斚w¢æºäºŽå…‰™¢å‘èµ„æºæŽ¥å£è®¾è®¡ä»¥åŠæ“作抽象简化了开å‘者的ä¸è‰¯è®¾è®¡åQŒåŒæ—¶ä¹Ÿæœ€å¤§é™åº¦çš„利用äº?/span>Http<span>最åˆçš„应用å议设计ç†å¿µã€‚åŒæ—Óž¼Œåœ¨æˆ‘看æ¥</span>REST<span>˜q˜æœ‰ä¸€ä¸ªå¾ˆå¸å¼•å¼€å‘者的ž®±æ˜¯èƒ½å¤Ÿå¾ˆå¥½çš„èžåˆå½“å‰?/span>Web2.0<span>的很多å‰ç«¯æŠ€æœ¯æ¥æé«˜å¼€å‘效率。例如很多大型网站开攄¡š„</span>REST<span>风格çš?/span>API<span>都会有多¿U返回åÅžå¼ï¼Œé™¤äº†ä¼ ç»Ÿçš?/span>xml<span>ä½œäØ“æ•°æ®æ‰¿è²åQŒè¿˜æœ‰ï¼ˆ</span>JSON,RSS,ATOM<span>åQ‰ç­‰å½¢å¼åQŒè¿™å¯¹å¾ˆå¤šç½‘ç«™å‰ç«¯å¼€å‘äh员æ¥è¯´å°±èƒ½å¤Ÿå¾ˆå¥½çš?/span>mashup<span>å„ç§èµ„æºä¿¡æ¯ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       <span>因此在效率和易用性上æ¥è¯´åQ?/span>REST<span>更胜一½{V€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">安全性:</font></span></h2> <p><font face="宋体"><font size="3">       <span>˜q™ç‚¹å…¶å®žå¯ä»¥æ”‘Ö…¥åˆ°æˆç†Ÿåº¦ä¸­ï¼Œä¸è¿‡åœ¨å½“å‰çš„互蔾|‘应用和òq›_°å¼€å‘设计过½E‹ä¸­åQŒå®‰å…¨å·²¾l被æåˆ°äº†å¾ˆé«˜çš„高度åQŒç‰¹åˆ«æ˜¯ä½œäؓ外部接壾l™ç¬¬ä¸‰æ–¹è°ƒç”¨åQŒå®‰å…¨æ€§å¯èƒ½ä¼šé«˜è¿‡ä¸šåŠ¡é€»è¾‘æœ¬èínã€?/span></font></font></p> <p><font face="宋体"><font size="3">       SOAP<span>åœ¨å®‰å…¨æ–¹é¢æ˜¯é€šè¿‡ä½¿ç”¨</span>XML-Security<span>å’?/span>XML-Signature<span>两个规范¾l„æˆäº?/span>WS-Security<span>æ¥å®žçŽ°å®‰å…¨æŽ§åˆ¶çš„åQŒå½“å‰å·²¾lå¾—åˆîCº†å„个厂商的支æŒï¼Œ</span>.net <span>åQ?/span>php <span>åQ?/span>java <span>都已¾l对其有了很好的支æŒåQˆè™½ç„¶åœ¨ä¸€äº›ç»†èŠ‚ä¸Š˜q˜æ˜¯æœ‰ä¸å…¼å®¹çš„问题,但是互通基本上是å¯ä»¥çš„åQ‰ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       REST<span>没有ä»ÖM½•规范对于安全斚w¢ä½œè¯´æ˜Žï¼ŒåŒæ—¶çŽ°åœ¨å¼€æ”?/span>REST<span>风格</span>API<span>的网站主è¦åˆ†æˆä¸¤¿U,一¿U是自定义了安全信毞®è£…在消æ¯ä¸­åQˆå…¶å®žè¿™å’?/span>SOAP<span>没有什么区别)åQŒå¦å¤–一¿U就是頼‹¬äšg</span>SSL<span>æ¥ä¿éš?/span>,<span>但是˜q™åªèƒ½å¤Ÿä¿è¯ç‚¹åˆ°ç‚¹çš„安全åQŒå¦‚果是需è¦å¤šç‚¹ä¼ è¾“çš„è¯?/span>SSL<span>ž®±æ— èƒ½äؓ力了。安全这å—其实也是一个很大的问题åQŒä»Šòq´åœ¨</span>BEA<span>å³îC¼šä¸Šçœ‹åˆ°æœ‰æ¼”示采用</span>SAML2<span>实现的网站间</span>SSO<span>åQŒå…¶å®žæ˜¯ç›´æŽ¥é‡‡ç”¨äº?/span>XML-Security<span>å’?/span>XML-Signature<span>åQŒæ•ˆçŽ‡çœ‹èµäh¥ä¹Ÿä¸æ˜¯å¾ˆé«˜ã€‚未æ?/span>REST<span>规范化和通用化过½E‹ä¸­çš„安全是å¦ä¹Ÿä¼šé‡‡ç”¨è¿™ä¸¤ç§è§„范åQŒæ˜¯æœªçŸ¥çš„,但是加入的越多,</span>REST<span>失去它高效性的优势­‘Šå¤šã€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">应用设计与改造:</font></span></h2> <p><font face="宋体"><font size="3">       <span>我们的系¾lŸè¦ä¹ˆå°±æ˜¯å·²¾l有了那些需è¦è¢«å‘布出去的æœåŠ¡ï¼Œè¦ä¹ˆž®±æ˜¯åˆšåˆšè®¾è®¡å¥½çš„æœåŠ¡åQŒä½†æ˜¯å¼€å‘ähå‘˜çš„ä¼ ç»Ÿè®¾è®¡æ€æƒ³è®?/span>REST<span>çš„åÅžå¼è¢«æŽ¥å—˜q˜éœ€è¦ä¸€ç‚ÒŽ—¶é—´ã€‚åŒæ—¶åœ¨èµ„æºåž‹æ•°æ®æœåŠ¡æŽ¥å£è®¾è®¡ä¸Šæ¥è¯´æŒ‰ç…§</span>REST<span>çš„æ€æƒ³æ¥è®¾è®¡ç›¸å¯ÒŽ¥è¯´è¦å®ÒŽ˜“ä¸€äº›ï¼Œè€Œå¯¹äºŽä¸€äº›å¤æ‚çš„æœåŠ¡æŽ¥å£æ¥è¯´åQŒå¯èƒ½å¼ºè¦åŽ»æŒ‰ç…§</span>REST<span>的风格æ¥è®¾è®¡ä¼šæœ‰äº›ç‰µå¼ºã€‚这一点其实å¯ä»¥çœ‹çœ‹å„大网站的接壞®±å¯ä»¥çŸ¥é“,很多¾|‘ç«™˜q˜è¦ä¼ å…¥</span>function<span>çš„å¿UîC½œä¸ºå‚敎ͼŒ˜q™å°±æ˜Žæ˜¾å·²ç»˜q背äº?/span>REST<span>本èín的设计æ€èµ\ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       <span>è€?/span>SOAP<span>本èínž®±æ˜¯é¢å‘</span>RPC<span>æ¥è®¾è®¡çš„åQŒå¼€å‘äh员å分容易接å—,所以ä¸å­˜åœ¨ä»€ä¹ˆé€‚应的过½E‹ã€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">æ€Èš„æ¥è¯´åQŒå…¶å®žè¿˜æ˜¯ä¸€ä¸ªè€è§‚念,适åˆçš„æ‰æ˜¯æœ€å¥½çš„</font></span></h2> <p><font face="宋体"><font size="3">       <span>技术没有好åï¼Œåªæœ‰æ˜¯ä¸æ˜¯åˆé€‚,一¿Uå¥½çš„æŠ€æœ¯å’Œæ€æƒ³è¢«è¯¯ç”¨äº†åQŒé‚£ä¹ˆå°±ä¼šå¾—åˆ°åæ•ˆæžœã€?/span>REST<span>å’?/span>SOAP<span>å„è‡ªéƒ½æœ‰è‡ªå·±çš„ä¼˜ç‚¹ï¼ŒåŒæ—¶å¦‚果在一些场景下如果åŽÀL”¹é€?/span>REST<span>åQŒå…¶å®žå°±ä¼šèµ°å?/span>SOAP<span>åQˆä¾‹å¦‚安全)ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       REST<span>对于资æºåž‹æœåŠ¡æŽ¥å£æ¥è¯´å¾ˆåˆé€‚ï¼ŒåŒæ—¶ç‰¹åˆ«é€‚åˆå¯¹äºŽæ•ˆçŽ‡è¦æ±‚很高åQŒä½†æ˜¯å¯¹äºŽå®‰å…¨è¦æ±‚ä¸é«˜çš„场景。è€?/span>SOAP<span>çš„æˆç†Ÿæ€§å¯ä»¥ç»™éœ€è¦æä¾›ç»™å¤šå¼€å‘语­a€çš„ï¼Œå¯¹äºŽå®‰å…¨æ€§è¦æ±‚较高的接å£è®¾è®¡å¸¦æ¥ä¾¿åˆ©ã€‚所以我觉得¾U¯çÑa说什么设计模å¼å°†ä¼šå æ®ä¸»å¯¼åœ°ä½æ²¡æœ‰ä»€ä¹ˆæ„义,关键˜q˜æ˜¯çœ‹åº”用场景ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       <span>åŒæ—¶å¾ˆé‡è¦ä¸€ç‚¹å°±æ˜¯ä¸è¦æ‰­æ›²äº†</span>REST<span>现在很多¾|‘站都跟风去开å?/span>REST<span>风格的接å£ï¼Œå…¶å®žéƒ½æ˜¯åœ¨å­¦å…¶åÅžåQŒä¸çŸ¥å…¶å¿ƒï¼Œæœ€åŽå¼„å¾—ä¸ä¼¦ä¸¾c»ï¼Œæ€§èƒ½ä¸Šä¸åŽ»ï¼Œå®‰å…¨åˆä¿è¯ä¸äº†ï¼Œå¾’æœ‰ä¸€ä¸ªçœ‹ä¼ÆD±¡æ‘¸è±¡æ ïLš„皮囊ã€?/span></font></font><font size="3" face="宋体"><span>åœ?/span>SOA<span>的基¼‹€æŠ€æœ¯å®žçŽ°æ–¹å¼ä¸­</span>WebService<span>å æ®äº†å¾ˆé‡è¦çš„地ä½ï¼Œé€šå¸¸æˆ‘们æåˆ°</span>WebService<span>½W¬ä¸€æƒÏx³•ž®±æ˜¯</span>SOAP<span>消æ¯åœ¨å„¿U传输å议上交互。近几年</span>REST<span>çš„æ€æƒ³ä¼´éšç€</span>SOA<span>逿¸è¢«å¤§å®¶æŽ¥å—ï¼ŒåŒæ—¶å„大¾|‘ç«™ä¸æ–­å¼€æ”?/span>API<span>æä¾›¾l™å¼€å‘者,也激起了</span>REST<span>风格</span>WebService<span>的热潮ã€?/span> </font> </p> <h1><span style="font-size: 15pt; line-height: 240%;"><font size="3" face="宋体">SOAP</font></span></h1> <p><font face="宋体"><font size="3">       <span>什么是</span>SOAP<span>åQŒæˆ‘想ä¸ç”¨å¤šè¯ß_¼Œ</span>google<span>一把满眼都是。其å®?/span>SOAP<span>最早是针对</span>RPC<span>的一¿Uè§£å†Ïx–¹æ¡ˆï¼Œ½Ž€å•对象访问å议,很轻é‡ï¼ŒåŒæ—¶ä½œäؓ应用åè®®å¯ä»¥åŸÞZºŽå¤šç§ä¼ è¾“åè®®æ¥ä¼ é€’消æ¯ï¼ˆ</span>Http,SMTP<span>½{‰ï¼‰ã€‚但是éšç€</span>SOAP<span>ä½œäØ“</span>WebService<span>çš„å¹¿æ³›åº”ç”¨ï¼Œä¸æ–­åœ°å¢žåŠ é™„åŠ çš„å†…å®¹åQŒä‹É得现在开å‘äh员觉å¾?/span>SOAP<span>很é‡åQŒä‹É用门槛很高。在</span>SOAP<span>åŽç®‹çš„å‘展过½E‹ä¸­åQ?/span>WS-*<span>一¾pÕdˆ—å议的制定,增加äº?/span>SOAP<span>çš„æˆç†Ÿåº¦åQŒä¹Ÿ¾l?/span>SOAP<span>增加了负担ã€?/span></font></font></p> <h1><span style="font-size: 15pt; line-height: 240%;"><font size="3" face="宋体">REST</font></span></h1> <p><font face="宋体"><font size="3">       REST<span>其实òq¶ä¸æ˜¯ä»€ä¹ˆåè®®ä¹Ÿä¸æ˜¯ä»€ä¹ˆæ ‡å‡†ï¼Œè€Œæ˜¯ž®?/span>Http<span>å议的设计åˆè¡·ä½œäº†è¯ é‡Šï¼Œåœ?/span>Http<span>å议被广泛利用的今天åQŒè¶Šæ¥è¶Šå¤šçš„æ˜¯å°†å…¶ä½œä¸ÞZ¼ è¾“å议,而éžåŽŸå…ˆè®¾è®¡è€…æ‰€è€ƒè™‘çš„åº”ç”¨åè®®ã€?/span>SOAP<span>¾cÕdž‹çš?/span>WebService<span>ž®±æ˜¯æœ€å¥½çš„例å­åQ?/span>SOAP<span>消æ¯å®Œå…¨ž®±æ˜¯ž®?/span>Http<span>åè®®ä½œäØ“æ¶ˆæ¯æ‰¿è²åQŒä»¥è‡³äºŽå¯¹äºŽ</span>Http<span>å议中的å„ç§å‚æ•°åQˆä¾‹å¦‚ç¼–ç ï¼Œé”™è¯¯ç ç­‰åQ‰éƒ½¾|®ä¹‹ä¸é¡¾ã€‚其实,最轻釾U§çš„应用åè®®ž®±æ˜¯</span>Http<span>åè®®ã€?/span>Http<span>å议所抽象çš?/span>get,post,put,delete<span>ž®±å¥½æ¯”æ•°æ®åº“中最基本的增删改查,而互è”网上的å„ç§èµ„溞®±å¥½æ¯”æ•°æ®åº“中的记录åQˆå¯èƒ½è¿™ä¹ˆæ¯”å–ÖM¸æ˜¯å¾ˆå¥½ï¼‰åQŒå¯¹äºŽå„¿U资æºçš„æ“ä½œæœ€åŽæ€ÀL˜¯èƒ½æŠ½è±¡æˆä¸ø™¿™å››ç§åŸºæœ¬æ“作åQŒåœ¨å®šä¹‰äº†å®šä½èµ„æºçš„规则以åŽåQŒå¯¹äºŽèµ„æºçš„æ“ä½œé€šè¿‡æ ‡å‡†çš?/span>Http<span>åè®®ž®±å¯ä»¥å®žçŽŽÍ¼Œå¼€å‘者也会å—益于˜q™ç§è½»é‡¾U§çš„åè®®ã€?/span></font></font></p> <p><font face="宋体"><font size="3">    REST<span>çš„æ€æƒ³å½’结以下有如下几个关键点åQ?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3">1<span>åQŽé¢å‘资æºçš„æŽ¥å£è®¾è®¡</span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3"><span>所有的接å£è®¾è®¡éƒ½æ˜¯é’ˆå¯¹èµ„æºæ¥è®¾è®¡çš„åQŒä¹Ÿž®±å¾ˆ¾cÖM¼¼äºŽæˆ‘们的é¢å‘对象和é¢å‘过½E‹çš„设计区别åQŒåªä¸è¿‡çŽ°åœ¨ž®†ç½‘¾lœä¸Šçš„æ“ä½œå®žä½“éƒ½ä½œäØ“èµ„æºæ¥çœ‹å¾…ï¼ŒåŒæ—¶</span>URI<span>的设计也是体çŽîCº†å¯¹äºŽèµ„æºçš„定ä½è®¾è®¡ã€‚åŽé¢ä¼šæåˆ°æœ‰ä¸€äº›ç½‘站的</span>API<span>设计说是</span>REST<span>设计åQŒå…¶å®žæ˜¯</span>RPC-REST<span>çš„æØœåˆä½“åQŒåÆˆéžæ˜¯</span>REST<span>çš„æ€æƒ³ã€?/span></font></font></p> <p><font size="3" face="宋体">       2<span>åQŽæŠ½è±¡æ“ä½œäØ“åŸºç¡€çš?/span>CRUD</font></p> <p><font size="3" face="宋体">       <span>˜q™ç‚¹å¾ˆç®€å•,</span>Http<span>中的</span>get,put,post,delete<span>分别对应äº?/span>read,update,create,delete<span>å››ç§æ“作åQŒå¦‚æžœä»…ä»…æ˜¯ä½œäØ“å¯¹äºŽèµ„æºçš„æ“ä½œï¼ŒæŠ½è±¡æˆäØ“˜q™å››¿Uå·²¾lèƒö够了åQŒä½†æ˜¯å¯¹äºŽçŽ°åœ¨çš„ä¸€äº›å¤æ‚的业务æœåŠ¡æŽ¥å£è®¾è®¡åQŒå¯èƒ½è¿™æ ïLš„æŠ½è±¡æœªå¿…能够满èƒö。其实这也在åŽé¢çš„几个网站的</span>API<span>设计中暴露了˜q™æ ·çš„问题,如果è¦å®Œå…¨æŒ‰ç…?/span>REST<span>çš„æ€æƒ³æ¥è®¾è®¡ï¼Œé‚£ä¹ˆé€‚用的环境将会有é™åˆ¶åQŒè€Œéžæ”¾ä¹‹å››æ“v皆准的ã€?/span>      </font></p> <p><font face="宋体"><font size="3">       3<span>åQ?/span>Http<span>是应用å议而éžä¼ è¾“åè®®</span></font></font></p> <p><font face="宋体"><font size="3">       <span>˜q™ç‚¹åœ¨åŽé¢å„大网站的</span>API<span>分æžä¸­æœ‰å¾ˆæ˜Žæ˜„¡š„体现åQŒå…¶å®žæœ‰äº›ç½‘站已¾lèµ°åˆîCº†</span>SOAP<span>çš„è€èµ\上,说是</span>REST<span>çš„ç†å¿µè®¾è®¡ï¼Œå…¶å®žæ˜¯ä½œäº†ä¸€å¥—ç§æœ‰çš„</span>SOAP<span>åè®®åQŒå› æ­¤ç§°ä¹‹äØ“</span>REST<span>风格的自定义</span>SOAP<span>åè®®ã€?/span></font></font></p> <p style="text-indent: 21.75pt;"><font face="宋体"><font size="3">4<span>åQŽæ— çжæ€ï¼Œè‡ªåŒ…å?/span></font></font></p> <p style="text-indent: 21.75pt;"><font face="宋体"><font size="3"><span>˜q™ç‚¹å…¶å®žä¸ä»…仅是对于</span>REST<span>æ¥è¯´çš„ï¼Œä½œäØ“æŽ¥å£è®¾è®¡éƒ½éœ€è¦èƒ½å¤Ÿåšåˆ°è¿™ç‚¹ï¼Œä¹Ÿæ˜¯ä½œäØ“å¯æ‰©å±•和高效性的最基本的ä¿è¯ï¼Œž®Þq®—是ä‹Éç”?/span>SOAP<span>çš?/span>WebService<span>也是一栗÷€?/span></font></font></p> <h1><span style="font-size: 15pt; line-height: 240%;"><font size="3" face="宋体">REST vs SOAP</font></span></h1> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">æˆç†Ÿåº¦ï¼š</font></span></h2> <p style="text-indent: 21pt;"><font face="宋体"><font size="3">SOAP<span>虽然å‘展到现在已¾l脱¼›ÖMº†åˆè¡·åQŒä½†æ˜¯å¯¹äºŽå¼‚构环境æœåŠ¡å‘布和调用åQŒä»¥åŠåŽ‚å•†çš„æ”¯æŒéƒ½å·²¾lè¾¾åˆîCº†è¾ƒäØ“æˆç†Ÿçš„æƒ…å†üc€‚ä¸åŒåã^åŽÍ¼Œå¼€å‘语­a€ä¹‹é—´é€šè¿‡</span>SOAP<span>æ¥äº¤äº’çš„</span>web service<span>éƒ½èƒ½å¤Ÿè¾ƒå¥½çš„äº’é€šï¼ˆåœ¨éƒ¨åˆ†å¤æ‚å’Œç‰ÒŽ®Šçš„傿•°å’Œ˜q”回对象解æžä¸Šï¼Œå议没有作很¾l†è‡´çš„è§„å®šï¼Œå¯ÆD‡´˜q˜æ˜¯éœ€è¦ä½œéƒ¨åˆ†ä¿®æ­£åQ?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3">REST<span>国外很多大网站都å‘布了自å·Þqš„å¼€å?/span>API<span>åQŒå¾ˆå¤šéƒ½æä¾›äº?/span>SOAP<span>å’?/span>REST<span>两ç§</span>Web Service<span>åQŒæ ¹æ®è°ƒæŸ¥éƒ¨åˆ†ç½‘站的</span>REST<span>风格的ä‹É用情况è¦é«˜äºŽ</span>SOAP<span>。但是由äº?/span>REST<span>åªæ˜¯ä¸€¿U基äº?/span>Http<span>åè®®å®žçŽ°èµ„æºæ“ä½œçš„æ€æƒ³åQŒå› æ­¤å„个网站的</span>REST<span>实现都自有一套,在åŽé¢ä¼šè®²è¯‰å„个大网站的</span>REST API<span>的风根{€‚ä¹Ÿæ­£æ˜¯å› äØ“˜q™ç§å„自实现的情况,在性能和å¯ç”¨æ€§ä¸Šä¼šå¤§å¤§é«˜äº?/span>SOAP<span>å‘布çš?/span>web service<span>åQŒä½†¾lŸä¸€é€šç”¨æ–šw¢˜qœè¿œä¸åŠ</span>SOAP<span>。由于这些大¾|‘ç«™çš?/span>SP<span>往往专注于此¾|‘ç«™çš?/span>API<span>å¼€å‘ï¼Œå› æ­¤é€šç”¨æ€§è¦æ±‚ä¸é«˜ã€?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3"><span>ç”׃ºŽæ²¡æœ‰¾cÖM¼¼äº?/span>SOAP<span>çš„æƒå¨æ€§åè®®ä½œä¸ø™§„范,</span>REST<span>实现的儿Uå议仅仅åªèƒ½ç®—æ˜¯ç§æœ‰å议,当然需è¦éµå¾?/span>REST<span>çš„æ€æƒ³åQŒä½†æ˜¯è¿™æ ïL»†èŠ‚æ–¹é¢æœ‰å¤ªå¤šæ²¡æœ‰¾U¦æŸçš„地æ–V€?/span>REST<span>æ—¥åŽçš„å‘展所走å‘规范也会直接影å“到这部分的设计是å¦èƒ½å¤Ÿæœ‰å¾ˆå¥½çš„生命力ã€?/span></font></font></p> <p style="text-indent: 21pt;"><font face="宋体"><font size="3"><span>æ€Èš„æ¥è¯´</span>SOAP<span>在æˆç†Ÿåº¦ä¸Šä¼˜äº?/span>REST<span>ã€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">效率和易用性:</font></span></h2> <p><font face="宋体"><font size="3">       SOAP<span>å议对于消æ¯ä½“和消æ¯å¤´éƒ½æœ‰å®šä¹‰ï¼ŒåŒæ—¶æ¶ˆæ¯å¤´çš„坿‰©å±•æ€§äØ“å„ç§äº’蔾|‘的标准æä¾›äº†æ‰©å±•的基础åQ?/span>WS-*<span>¾pÕdˆ—ž®±æ˜¯è¾ƒäØ“æˆåŠŸçš„è§„èŒƒã€‚ä½†æ˜¯ä¹Ÿç”׃ºŽ</span>SOAP<span>ç”׃ºŽå„ç§éœ€æ±‚䏿–­æ‰©å……其本èínåè®®çš„å†…å®¹ï¼Œå¯ÆD‡´åœ?/span>SOAP<span>å¤„ç†æ–šw¢çš„æ€§èƒ½æœ‰æ‰€ä¸‹é™ã€‚åŒæ—¶åœ¨æ˜“用性方é¢ä»¥åŠå­¦ä¹ æˆæœ¬ä¸Šä¹Ÿæœ‰æ‰€å¢žåŠ ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       REST<span>被äh们的é‡è§†åQŒå…¶å®žå¾ˆå¤§ä¸€æ–šw¢ä¹Ÿæ˜¯å› äؓ光™«˜æ•ˆä»¥åŠç®€‹z易用的ç‰ÒŽ€§ã€‚è¿™¿U高效一斚w¢æºäºŽå…‰™¢å‘èµ„æºæŽ¥å£è®¾è®¡ä»¥åŠæ“作抽象简化了开å‘者的ä¸è‰¯è®¾è®¡åQŒåŒæ—¶ä¹Ÿæœ€å¤§é™åº¦çš„利用äº?/span>Http<span>最åˆçš„应用å议设计ç†å¿µã€‚åŒæ—Óž¼Œåœ¨æˆ‘看æ¥</span>REST<span>˜q˜æœ‰ä¸€ä¸ªå¾ˆå¸å¼•å¼€å‘者的ž®±æ˜¯èƒ½å¤Ÿå¾ˆå¥½çš„èžåˆå½“å‰?/span>Web2.0<span>的很多å‰ç«¯æŠ€æœ¯æ¥æé«˜å¼€å‘效率。例如很多大型网站开攄¡š„</span>REST<span>风格çš?/span>API<span>都会有多¿U返回åÅžå¼ï¼Œé™¤äº†ä¼ ç»Ÿçš?/span>xml<span>ä½œäØ“æ•°æ®æ‰¿è²åQŒè¿˜æœ‰ï¼ˆ</span>JSON,RSS,ATOM<span>åQ‰ç­‰å½¢å¼åQŒè¿™å¯¹å¾ˆå¤šç½‘ç«™å‰ç«¯å¼€å‘äh员æ¥è¯´å°±èƒ½å¤Ÿå¾ˆå¥½çš?/span>mashup<span>å„ç§èµ„æºä¿¡æ¯ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       <span>因此在效率和易用性上æ¥è¯´åQ?/span>REST<span>更胜一½{V€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">安全性:</font></span></h2> <p><font face="宋体"><font size="3">       <span>˜q™ç‚¹å…¶å®žå¯ä»¥æ”‘Ö…¥åˆ°æˆç†Ÿåº¦ä¸­ï¼Œä¸è¿‡åœ¨å½“å‰çš„互蔾|‘应用和òq›_°å¼€å‘设计过½E‹ä¸­åQŒå®‰å…¨å·²¾l被æåˆ°äº†å¾ˆé«˜çš„高度åQŒç‰¹åˆ«æ˜¯ä½œäؓ外部接壾l™ç¬¬ä¸‰æ–¹è°ƒç”¨åQŒå®‰å…¨æ€§å¯èƒ½ä¼šé«˜è¿‡ä¸šåŠ¡é€»è¾‘æœ¬èínã€?/span></font></font></p> <p><font face="宋体"><font size="3">       SOAP<span>åœ¨å®‰å…¨æ–¹é¢æ˜¯é€šè¿‡ä½¿ç”¨</span>XML-Security<span>å’?/span>XML-Signature<span>两个规范¾l„æˆäº?/span>WS-Security<span>æ¥å®žçŽ°å®‰å…¨æŽ§åˆ¶çš„åQŒå½“å‰å·²¾lå¾—åˆîCº†å„个厂商的支æŒï¼Œ</span>.net <span>åQ?/span>php <span>åQ?/span>java <span>都已¾l对其有了很好的支æŒåQˆè™½ç„¶åœ¨ä¸€äº›ç»†èŠ‚ä¸Š˜q˜æ˜¯æœ‰ä¸å…¼å®¹çš„问题,但是互通基本上是å¯ä»¥çš„åQ‰ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       REST<span>没有ä»ÖM½•规范对于安全斚w¢ä½œè¯´æ˜Žï¼ŒåŒæ—¶çŽ°åœ¨å¼€æ”?/span>REST<span>风格</span>API<span>的网站主è¦åˆ†æˆä¸¤¿U,一¿U是自定义了安全信毞®è£…在消æ¯ä¸­åQˆå…¶å®žè¿™å’?/span>SOAP<span>没有什么区别)åQŒå¦å¤–一¿U就是頼‹¬äšg</span>SSL<span>æ¥ä¿éš?/span>,<span>但是˜q™åªèƒ½å¤Ÿä¿è¯ç‚¹åˆ°ç‚¹çš„安全åQŒå¦‚果是需è¦å¤šç‚¹ä¼ è¾“çš„è¯?/span>SSL<span>ž®±æ— èƒ½äؓ力了。安全这å—其实也是一个很大的问题åQŒä»Šòq´åœ¨</span>BEA<span>å³îC¼šä¸Šçœ‹åˆ°æœ‰æ¼”示采用</span>SAML2<span>实现的网站间</span>SSO<span>åQŒå…¶å®žæ˜¯ç›´æŽ¥é‡‡ç”¨äº?/span>XML-Security<span>å’?/span>XML-Signature<span>åQŒæ•ˆçŽ‡çœ‹èµäh¥ä¹Ÿä¸æ˜¯å¾ˆé«˜ã€‚未æ?/span>REST<span>规范化和通用化过½E‹ä¸­çš„安全是å¦ä¹Ÿä¼šé‡‡ç”¨è¿™ä¸¤ç§è§„范åQŒæ˜¯æœªçŸ¥çš„,但是加入的越多,</span>REST<span>失去它高效性的优势­‘Šå¤šã€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">应用设计与改造:</font></span></h2> <p><font face="宋体"><font size="3">       <span>我们的系¾lŸè¦ä¹ˆå°±æ˜¯å·²¾l有了那些需è¦è¢«å‘布出去的æœåŠ¡ï¼Œè¦ä¹ˆž®±æ˜¯åˆšåˆšè®¾è®¡å¥½çš„æœåŠ¡åQŒä½†æ˜¯å¼€å‘ähå‘˜çš„ä¼ ç»Ÿè®¾è®¡æ€æƒ³è®?/span>REST<span>çš„åÅžå¼è¢«æŽ¥å—˜q˜éœ€è¦ä¸€ç‚ÒŽ—¶é—´ã€‚åŒæ—¶åœ¨èµ„æºåž‹æ•°æ®æœåŠ¡æŽ¥å£è®¾è®¡ä¸Šæ¥è¯´æŒ‰ç…§</span>REST<span>çš„æ€æƒ³æ¥è®¾è®¡ç›¸å¯ÒŽ¥è¯´è¦å®ÒŽ˜“ä¸€äº›ï¼Œè€Œå¯¹äºŽä¸€äº›å¤æ‚çš„æœåŠ¡æŽ¥å£æ¥è¯´åQŒå¯èƒ½å¼ºè¦åŽ»æŒ‰ç…§</span>REST<span>的风格æ¥è®¾è®¡ä¼šæœ‰äº›ç‰µå¼ºã€‚这一点其实å¯ä»¥çœ‹çœ‹å„大网站的接壞®±å¯ä»¥çŸ¥é“,很多¾|‘ç«™˜q˜è¦ä¼ å…¥</span>function<span>çš„å¿UîC½œä¸ºå‚敎ͼŒ˜q™å°±æ˜Žæ˜¾å·²ç»˜q背äº?/span>REST<span>本èín的设计æ€èµ\ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       <span>è€?/span>SOAP<span>本èínž®±æ˜¯é¢å‘</span>RPC<span>æ¥è®¾è®¡çš„åQŒå¼€å‘äh员å分容易接å—,所以ä¸å­˜åœ¨ä»€ä¹ˆé€‚应的过½E‹ã€?/span></font></font></p> <h2><span style="font-size: 14pt; line-height: 173%;"><font size="3" face="宋体">æ€Èš„æ¥è¯´åQŒå…¶å®žè¿˜æ˜¯ä¸€ä¸ªè€è§‚念,适åˆçš„æ‰æ˜¯æœ€å¥½çš„</font></span></h2> <p><font face="宋体"><font size="3">       <span>技术没有好åï¼Œåªæœ‰æ˜¯ä¸æ˜¯åˆé€‚,一¿Uå¥½çš„æŠ€æœ¯å’Œæ€æƒ³è¢«è¯¯ç”¨äº†åQŒé‚£ä¹ˆå°±ä¼šå¾—åˆ°åæ•ˆæžœã€?/span>REST<span>å’?/span>SOAP<span>å„è‡ªéƒ½æœ‰è‡ªå·±çš„ä¼˜ç‚¹ï¼ŒåŒæ—¶å¦‚果在一些场景下如果åŽÀL”¹é€?/span>REST<span>åQŒå…¶å®žå°±ä¼šèµ°å?/span>SOAP<span>åQˆä¾‹å¦‚安全)ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       REST<span>对于资æºåž‹æœåŠ¡æŽ¥å£æ¥è¯´å¾ˆåˆé€‚ï¼ŒåŒæ—¶ç‰¹åˆ«é€‚åˆå¯¹äºŽæ•ˆçŽ‡è¦æ±‚很高åQŒä½†æ˜¯å¯¹äºŽå®‰å…¨è¦æ±‚ä¸é«˜çš„场景。è€?/span>SOAP<span>çš„æˆç†Ÿæ€§å¯ä»¥ç»™éœ€è¦æä¾›ç»™å¤šå¼€å‘语­a€çš„ï¼Œå¯¹äºŽå®‰å…¨æ€§è¦æ±‚较高的接å£è®¾è®¡å¸¦æ¥ä¾¿åˆ©ã€‚所以我觉得¾U¯çÑa说什么设计模å¼å°†ä¼šå æ®ä¸»å¯¼åœ°ä½æ²¡æœ‰ä»€ä¹ˆæ„义,关键˜q˜æ˜¯çœ‹åº”用场景ã€?/span></font></font></p> <p><font face="宋体"><font size="3">       <span>åŒæ—¶å¾ˆé‡è¦ä¸€ç‚¹å°±æ˜¯ä¸è¦æ‰­æ›²äº†</span>REST<span>现在很多¾|‘站都跟风去开å?/span>REST<span>风格的接å£ï¼Œå…¶å®žéƒ½æ˜¯åœ¨å­¦å…¶åÅžåQŒä¸çŸ¥å…¶å¿ƒï¼Œæœ€åŽå¼„å¾—ä¸ä¼¦ä¸¾c»ï¼Œæ€§èƒ½ä¸Šä¸åŽ»ï¼Œå®‰å…¨åˆä¿è¯ä¸äº†ï¼Œå¾’æœ‰ä¸€ä¸ªçœ‹ä¼ÆD±¡æ‘¸è±¡æ ïLš„皮囊ã€?/span></font></font></p> <img src ="http://www.aygfsteel.com/shoppingbill/aggbug/319476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/shoppingbill/" target="_blank">shoppingbill</a> 2010-04-27 14:11 <a href="http://www.aygfsteel.com/shoppingbill/archive/2010/04/27/319476.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">ÊÖÓÎ</a>| <a href="http://" target="_blank">ÎåºÓÏØ</a>| <a href="http://" target="_blank">ÙñÖÝÊÐ</a>| <a href="http://" target="_blank">ÎâÆìÏØ</a>| <a href="http://" target="_blank">Çì°²ÏØ</a>| <a href="http://" target="_blank">³çÐÅÏØ</a>| <a href="http://" target="_blank">ÉäÑôÏØ</a>| <a href="http://" target="_blank">»áÔóÏØ</a>| <a href="http://" target="_blank">·±ÖÅÏØ</a>| <a href="http://" target="_blank">Êæ³ÇÏØ</a>| <a href="http://" target="_blank">ÏæÒõÏØ</a>| <a href="http://" target="_blank">Ç­½­Çø</a>| <a href="http://" target="_blank">ôë½­ÏØ</a>| <a href="http://" target="_blank">ÎäÉ½ÏØ</a>| <a href="http://" target="_blank">ËÉÑôÏØ</a>| <a href="http://" target="_blank">¶«Ì¨ÊÐ</a>| <a href="http://" target="_blank">Ñô½­ÊÐ</a>| <a href="http://" target="_blank">ÉÛÑôÊÐ</a>| <a href="http://" target="_blank">ÍÅ·çÏØ</a>| <a href="http://" target="_blank">ÅͰ²ÏØ</a>| <a href="http://" target="_blank">°½ººÆì</a>| <a href="http://" target="_blank">ËïÎâÏØ</a>| <a href="http://" target="_blank">òÔºÓÊÐ</a>| <a href="http://" target="_blank">ÃñºÍ</a>| <a href="http://" target="_blank">´óÒ¦ÏØ</a>| <a href="http://" target="_blank">Çíº£ÊÐ</a>| <a href="http://" target="_blank">Á«»¨ÏØ</a>| <a href="http://" target="_blank">ººÖÐÊÐ</a>| <a href="http://" target="_blank">»Ý°²ÏØ</a>| <a href="http://" target="_blank">Ï¢·éÏØ</a>| <a href="http://" target="_blank">³çÃ÷ÏØ</a>| <a href="http://" target="_blank">±öÑôÏØ</a>| <a href="http://" target="_blank">¹àÔÆÏØ</a>| <a href="http://" target="_blank">ÈýÌ¨ÏØ</a>| <a href="http://" target="_blank">´óͬÊÐ</a>| <a href="http://" target="_blank">Óí³ÇÊÐ</a>| <a href="http://" target="_blank">Âí¶û¿µÏØ</a>| <a href="http://" target="_blank">ÇúÎÖÏØ</a>| <a href="http://" target="_blank">¶î¼ÃÄÉÆì</a>| <a href="http://" target="_blank">ÀÉÏªÏØ</a>| <a href="http://" target="_blank">ËÕÄáÌØÓÒÆì</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>