ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>羞羞答答一区二区,最近2018年手机中文在线,国产欧美日韩视频在线http://www.aygfsteel.com/caizh2009/category/39992.html与大家共同成é•?/description>zh-cnWed, 03 Jun 2009 08:05:43 GMTWed, 03 Jun 2009 08:05:43 GMT60全面解读åQšWeb service到底是什ä¹?/title><link>http://www.aygfsteel.com/caizh2009/articles/279822.html</link><dc:creator>ž®èœæ¯›æ¯›</dc:creator><author>ž®èœæ¯›æ¯›</author><pubDate>Wed, 03 Jun 2009 07:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/caizh2009/articles/279822.html</guid><wfw:comment>http://www.aygfsteel.com/caizh2009/comments/279822.html</wfw:comment><comments>http://www.aygfsteel.com/caizh2009/articles/279822.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/caizh2009/comments/commentRss/279822.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/caizh2009/services/trackbacks/279822.html</trackback:ping><description><![CDATA[<strong>分布式应用程序和‹¹è§ˆå™?</strong> <p>  研究一下当前的应用½E‹åºå¼€å‘,你会发现一个绝对的們֐‘åQšäh们开始偏爱基于浏览器的瘦客户应用½E‹åºã€‚è¿™å½“ç„¶ä¸æ˜¯å› äØ“ç˜¦å®¢æˆ¯‚ƒ½å¤Ÿæä¾›æ›´å¥½çš„用户界面åQŒè€Œæ˜¯å› äØ“å®ƒèƒ½å¤Ÿé¿å…èŠ±åœ¨æ¡Œé¢åº”ç”¨ç¨‹åºå‘å¸ƒä¸Šçš„é«˜æˆæœ¬ã€‚å‘å¸ƒæ¡Œé¢åº”ç”¨ç¨‹åºæˆæœ¬å¾ˆé«˜ï¼Œä¸€åŠæ˜¯å› äØ“åº”ç”¨½E‹åºå®‰è£…和配¾|®çš„问题åQŒå¦ä¸€åŠæ˜¯å› äؓ客户和服务器之间通信的问题ã€?/p> <p>  传统的Windows富客户应用程序ä‹É用DCOM来与服务器进行通信和调用远½E‹å¯¹è±¡ã€‚配¾|®å¥½DCOM使其在一个大型的¾|‘络中正常工作将是一个极富挑战性的工作åQŒåŒæ—¶ä¹Ÿæ˜¯è®¸å¤šIT工程师的噩梦。事实上åQŒè®¸å¤šIT工程师宁愿忍受浏览器所带来的功能限åˆÓž¼Œä¹Ÿä¸æ„¿åœ¨å±€åŸŸç½‘上去˜qè¡Œä¸€ä¸ªDCOM。在我看来,¾l“æžœž®±æ˜¯ä¸€ä¸ªå‘布容易,但开发难度大而且用户界面极其受限的应用程序。极端的è¯ß_¼Œž®±æ˜¯ä½ èŠ±äº†æ›´å¤šçš„èµ„é‡‘å’Œæ—¶é—ß_¼Œå´å¼€å‘出从用æˆïLœ‹æ¥åŠŸèƒ½æ›´å¼Þqš„应用½E‹åºã€‚不ä¿?问问你的会计师对新的åŸÞZºŽ‹¹è§ˆå™¨çš„会计软äšg有什么想法:¾lå¤§å¤šæ•°å•†ç”¨½E‹åºç”¨æˆ·å¸Œæœ›ä½¿ç”¨æ›´åŠ å‹å¥½çš„Windows用户界面ã€?/p> <p>  关于客户端与服务器的通信问题åQŒä¸€ä¸ªå®Œ¾ŸŽçš„解决æ–ÒŽ³•是ä‹É用HTTP协议来通信。这是因ä¸ÞZ“Q何运行Web‹¹è§ˆå™¨çš„æœºå™¨éƒ½åœ¨ä½¿ç”¨HTTP协议。同æ—Óž¼Œå½“前许多防火墙也配置为只允许HTTP˜qžæŽ¥ã€?/p> <p>  许多商用½E‹åº˜q˜é¢ä¸´å¦ä¸€ä¸ªé—®é¢˜ï¼Œé‚£å°±æ˜¯ä¸Žå…¶ä»–½E‹åºçš„互操作性。如果所有的应用½E‹åºéƒ½æ˜¯ä½¿ç”¨COMæˆ?NET语言写的åQŒåƈ且都˜qè¡Œåœ¨Windowsòq›_°ä¸Šï¼Œé‚£å°±å¤©ä¸‹å¤ªåã^了。然而,事实上大多数商业数据仍然在大型主æœÞZ¸Šä»¥éžå…³ç³»æ–‡äšg(VSAM)çš„åŞ式存放,òq¶ç”±COBOL语言¾~–写的大型机½E‹åºè®‰K—®ã€‚而且åQŒç›®å‰è¿˜æœ‰å¾ˆå¤šå•†ç”¨ç¨‹åºç‘ô¾l­åœ¨ä½¿ç”¨C++、Java、Visual Basic和其他各¿Uå„æ ïLš„语言¾~–写。现在,除了最½Ž€å•çš„½E‹åºä¹‹å¤–åQŒæ‰€æœ‰çš„应用½E‹åºéƒ½éœ€è¦ä¸Ž˜qè¡Œåœ¨å…¶ä»–异构åã^åîC¸Šçš„åº”ç”¨ç¨‹åºé›†æˆåÆˆ˜q›è¡Œæ•°æ®äº¤æ¢ã€‚è¿™æ ïLš„ä»ÕdŠ¡é€šå¸¸éƒ½æ˜¯ç”Þq‰¹ŒDŠçš„æ–ÒŽ³•åQŒå¦‚æ–‡äšg传输和分析,消息队列åQŒè¿˜æœ‰ä»…适用于某些情å†ëŠš„çš„APIåQŒå¦‚IBMçš?高çñ”½E‹åºåˆ°ç¨‹åºäº¤‹¹?APPC)"½{‰æ¥å®Œæˆçš„。在以前åQŒæ²¡æœ‰ä¸€ä¸ªåº”用程序通信标准åQŒæ˜¯ç‹¬ç«‹äºŽåã^台、组建模型和¾~–程语言的。只有通过Web ServiceåQŒå®¢æˆïL«¯å’ŒæœåŠ¡å™¨æ‰èƒ½å¤Ÿè‡ªç”Þqš„用HTTP˜q›è¡Œé€šä¿¡åQŒä¸è®ÞZ¸¤ä¸ªç¨‹åºçš„òq›_°å’Œç¼–½E‹è¯­­a€æ˜¯ä»€ä¹ˆã€?/p> <p>  <strong>什么是Web Service</strong></p> <p>  对这个问题,我们臛_°‘有两¿Uç­”案。从表面上看åQŒWeb service ž®±æ˜¯ä¸€ä¸ªåº”用程序,它向外界暴露å‡ÞZ¸€ä¸ªèƒ½å¤Ÿé€šè¿‡Web˜q›è¡Œè°ƒç”¨çš„API。这ž®±æ˜¯è¯ß_¼Œä½ èƒ½å¤Ÿç”¨¾~–程的方法通过Web来调用这个应用程序。我们把调用˜q™ä¸ªWeb service 的应用程序叫做客戗÷€‚例如,你想创徏一个Web service åQŒå®ƒçš„作用是˜q”回当前的天气情å†üc€‚那么你可已建立一个ASP™åµé¢åQŒå®ƒæŽ¥å—邮政¾~–ç ä½œäØ“æŸ¥è¯¢å­—ç¬¦ä¸ÔŒ¼Œç„¶åŽ˜q”回一个由逗号隔开的字½W¦ä¸²åQŒåŒ…含了当前的气温和天气。要调用˜q™ä¸ªASP™åµé¢åQŒå®¢æˆïL«¯éœ€è¦å‘送下面的˜q™ä¸ªHTTP GETè¯äh±‚åQ?/p> <p>  http://host.company.com/weather.asp?zipcode=20171</p> <p>  ˜q”å›žçš„æ•°æ®å°±åº”è¯¥æ˜¯è¿™æ øP¼š</p> <p>  ˜q™ä¸ªASP™åµé¢ž®±åº”该可以算作是Web service 了。因为它åŸÞZºŽHTTP GETè¯äh±‚åQŒæš´éœ²å‡ºäº†ä¸€ä¸ªå¯ä»¥é€šè¿‡Web调用的API。当ç„Óž¼ŒWeb service ˜q˜æœ‰æ›´å¤šçš„东è¥Ñ€?/p> <p>  下面是对Web service æ›´ç²¾¼‹®çš„解释åQ?Web services是徏立可互操作的分布式应用程序的新åã^台。作ä¸ÞZ¸€ä¸ªWindows½E‹åºå‘˜ï¼Œä½ å¯èƒ½å·²¾lç”¨COM或DCOM建立˜q‡åŸºäºŽç»„件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很å®ÒŽ˜“丑ևºCOMòq¶ä¸èƒ½æ»¡­‘Œ™¦æ±‚的情况ã€?/p> <p>  Web serviceòq›_°æ˜¯ä¸€å¥—标准,它定义了应用½E‹åºå¦‚何在Web上实çŽîCº’操作性。你可以用ä“Q何你喜欢的语­a€åQŒåœ¨ä»ÖM½•ä½ å–œ‹Æ¢çš„òq›_°ä¸Šå†™Web service åQŒåªè¦æˆ‘们可以通过Web service标准对这些服务进行查询和讉K—®ã€?/p> <p>  <strong>æ–°åã^å?/strong></p> <p>  Web serviceòq›_°éœ€è¦ä¸€å¥—协议来实现分布式应用程序的创徏。ä“Q何åã^台都有它的数据表½Cºæ–¹æ³•å’Œ¾cÕdž‹¾pȝ»Ÿã€‚要实现互操作性,Web serviceòq›_°å¿…须提供一套标准的¾cÕdž‹¾pȝ»ŸåQŒç”¨äºŽæ²Ÿé€šä¸åŒåã^台、编½E‹è¯­­a€å’Œç»„件模型中的不同类型系¾lŸã€‚在传统的分布式¾pȝ»Ÿä¸­ï¼ŒåŸÞZºŽç•Œé¢(interface)çš„åã^台提供了一些方法来描述界面、方法和参数(译注åQšå¦‚COMå’ŒCOBAR中的IDL语言)。同æ ïLš„åQŒWeb serviceòq›_°ä¹Ÿå¿…™åÀLä¾›ä¸€¿Uæ ‡å‡†æ¥æè¿°Web serviceåQŒè®©å®¢æˆ·å¯ä»¥å¾—到­‘›_¤Ÿçš„信息来调用˜q™ä¸ªWeb service。最后,我们˜q˜å¿…™åÀLœ‰ä¸€¿Uæ–¹æ³•来对这个Web service˜q›è¡Œ˜qœç¨‹è°ƒç”¨ã€‚è¿™¿Uæ–¹æ³•实际是一¿Uè¿œ½E‹è¿‡½E‹è°ƒç”¨åè®?RPC)ã€‚äØ“äº†è¾¾åˆîCº’操作性,˜q™ç§RPC协议˜q˜å¿…™åÖM¸Žòq›_°å’Œç¼–½E‹è¯­­a€æ— å…³ã€‚下面几个小节就½Ž€è¦ä»‹¾läº†¾l„成Web serviceòq›_°çš„这三个技术ã€?/p> <p>  <strong>XMLå’ŒXSD </strong></p> <p>  可扩展的标记语言(XML)是Web serviceòq›_°ä¸­è¡¨½Cºæ•°æ®çš„基本格式。除了易于徏立和易于分析外,XML主要的优点在于它既是òq›_°æ— å…³çš„,又是厂商无关的。无å…Ïx€§æ˜¯æ¯”技术优­‘Šæ€§æ›´é‡è¦çš„:软äšg厂商是不会选择一个由竞争å¯Òމ‹æ‰€å‘明的技术的ã€?/p> <p>  XML解决了数据表½Cºçš„问题åQŒä½†å®ƒæ²¡æœ‰å®šä¹‰ä¸€å¥—标准的数据¾cÕdž‹åQŒæ›´æ²¡æœ‰è¯´æ€Žä¹ˆåŽÀL‰©å±•这套数据类型。例如,整åŞ数到底代表什ä¹?16位,32位,˜q˜æ˜¯64ä½?˜q™äº›¾l†èŠ‚å¯¹å®žçŽîCº’操作性都是很重要的。W3C制定的XML Schema(XSD)ž®±æ˜¯ä¸“门解决˜q™ä¸ªé—®é¢˜çš„一套标准。它定义了一套标准的数据¾cÕdž‹åQŒåƈ¾l™å‡ºäº†ä¸€¿Uè¯­­a€æ¥æ‰©å±•这套数据类型。Web serviceòq›_°ž®±æ˜¯ç”¨XSD来作为其数据¾cÕdž‹¾pȝ»Ÿçš„。当你用某种语言(如VB.NET或C#)来构造一个Web serviceæ—Óž¼Œä¸ÞZº†½W¦åˆWeb service标准åQŒæ‰€æœ‰ä½ ä½¿ç”¨çš„æ•°æ®ç±»åž‹éƒ½å¿…须被è{æ¢äØ“XSD¾cÕdž‹ã€‚你用的工具可能已经自动帮你完成了这个è{换,但你很可能会æ ÒŽ®ä½ çš„需要修改一下è{换过½E‹ã€‚在½W¬äºŒç« ä¸­åQŒæˆ‘们将深入XSDåQŒå­¦ä¹ æ€Žæ ·è½¬æ¢è‡ªå®šä¹‰çš„æ•°æ®¾cÕdž‹(例如¾c?到XSD的类型ã€?/p> <p>  <strong>SOAP</strong></p> <p>  Web service建好以后åQŒä½ æˆ–者其他ähž®×ƒ¼šåŽ»è°ƒç”¨å®ƒã€‚ç®€å•å¯¹è±¡è®¿é—®åè®?SOAP)提供了标准的RPCæ–ÒŽ³•来调用Web service。实际上åQŒSOAP在这里有点用词不当:它意味着下面的Web service是以对象的方式表½Cºçš„åQŒä½†äº‹å®žòq¶ä¸ä¸€å®šå¦‚此:你完全可以把你的Web service写成一¾pÕdˆ—çš„C函数åQŒåƈ仍然使用SOAP˜q›è¡Œè°ƒç”¨ã€‚SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来ä‹É用SOAP。SOAP也是åŸÞZºŽXMLå’ŒXSD的,XML是SOAP的数据编码方式。第三章我们会讨论SOAPåQŒåƈ¾l“识SOAP消息的各¿Uå…ƒç´ ã€?/p> <p>  <strong>WSDL</strong></p> <p>  你会怎样向别äºÞZ»‹¾lä½ çš„Web service有什么功能,以及每个函数调用时的参数å‘?你可能会自己写一套文档,你甚臛_¯èƒ½ä¼šå£å¤´ä¸Šå‘Šè¯‰éœ€è¦ä‹É用你的Web serviceçš„äh。这些非正式的方法至ž®‘都有一个严重的问题åQšå½“½E‹åºå‘˜ååˆ°ç”µè„‘前åQŒæƒ³è¦ä‹É用你的Web service的时候,他们的工å…?如Visual Studio)无法¾l™ä»–们提供ä“Qä½•å¸®åŠ©ï¼Œå› äØ“˜q™äº›å·¥å…·æ ÒŽœ¬ž®×ƒ¸äº†è§£ä½ çš„Web</p> <p>  service。解å†Ïx–¹æ³•是åQšç”¨æœºå™¨èƒ½é˜…è¯Èš„方式提供一个正式的描述文档。Web service描述语言(WSDL)ž®±æ˜¯˜q™æ ·ä¸€ä¸ªåŸºäºŽXML的语­a€åQŒç”¨äºŽæ˜q°Web service及其函数、参数和˜q”回倹{€‚因为是åŸÞZºŽXML的,所以WSDL既是机器可阅è¯Èš„åQŒåˆæ˜¯äh可阅è¯Èš„åQŒè¿™ž®†æ˜¯ä¸€ä¸ªå¾ˆå¤§çš„好处。一些最新的开发工å…äh—¢èƒ½æ ¹æ®ä½ çš„Web service生成WSDL文档åQŒåˆèƒ½å¯¼å…¥WSDL文档åQŒç”Ÿæˆè°ƒç”¨ç›¸åº”Web service的代码ã€?/p> <img src ="http://www.aygfsteel.com/caizh2009/aggbug/279822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/caizh2009/" target="_blank">ž®èœæ¯›æ¯›</a> 2009-06-03 15:29 <a href="http://www.aygfsteel.com/caizh2009/articles/279822.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>