⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 209001.htm

📁 探索Windows 2000发展策略以及中介层技术设计的基本概念
💻 HTM
字号:
<html><body><span  id=Layer1><p><font size=2 color=#3c3c3c face=arial>在概念上没有任何的通讯方式会比讯息伫列来得更加容易。使用讯息伫列的应用程式只需要建立一个讯息,并把它送入伫列就可以了。然後应用程式的其他部分(或者是其他的应用程式)便可以由伫列中读取讯息。必要的话,读取者可以再一次藉由传送讯息到某些伫列来回应。稍後,原讯息的传送者亦或是其他应用程式可以读取这个回应讯息。过程确实相当地简单。</span><span  id=Layer2></font></p><p><font size=2 color=#3c3c3c face=arial>讯息伫列是一个简单的想法</span><span  id=Layer3></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>讯息伫列是一个简单的想法</span><span  id=Layer4></font></p><hr><p><font size=2 color=#3c3c3c face=arial>然而,真正建立一个应用程式时,你会想要用到很多特色,因此支援讯息伫列的产品所提供的功能通常比只是送收讯息还要来得更多。Microsoft Windows 2000内建的讯息伫列技术,Microsoft Message Queuing (MSMQ),就是这样的产品。它为讯息导向应用程式提供了功能广泛的特性。本章将描述随Windows 2000第一版出货的版本,MSMQ 2.0。</span><span  id=Layer5></font></p><p><font size=2 color=#3c3c3c face=arial>MSMQ不只是提供简单的讯息伫列服务而已</span><span  id=Layer6></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>MSMQ不只是提供简单的讯息伫列服务而已</span><span  id=Layer7></font></p><hr><p><font size=2 color=#3c3c3c face=arial>值得注意的是,使用MSMQ 2.0的系统功能和使用MSMQ 1.0的系统一同运作。但就如你所预期的一般,执行旧版本的机器将无法使用Windows 2000所提供的新特色。</span><span  id=Layer8></font></p><a name=209001><font color=#3e70d7 face=arial size=5><b>何时该使用讯息伫列</span><span  id=Layer9></b></font><p><font size=2 color=#3c3c3c face=arial>何时你应该在分散式的行程之间使用讯息伫列而非其他的通讯方式呢?抉择最常发生在COM/DCOM-一般行程之间或机器之间的通讯方式是采用远端程序呼叫(Remote Procedure Call,RPC)-与讯息伫列之间。在此提供一些简单的规则以帮助你决定何时应该使用何者:</span><span  id=Layer10></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li>如果传送者继续执行工作之前必须等待接收者回应的话,你倒不如使用RPC,因为在传回结果之前此呼叫会被冻结住。一般而言,使用RPC会比讯息伫列容易些。所以,如果它符合需求的话,就用它吧(虽然将於</span><span  id=Layer11>&nbsp;<a target='_new' href=210.htm#>下章</span><span  id=Layer12></a>&nbsp;描述的Queued Components (QC)能使得讯息伫列的使用几乎就像RPC一样地简单)。然而,如果传送者不需等待结果而在这一段时间里能有效地做一些其他工作的话,讯息伫列会是较佳的选择。</span><span  id=Layer13></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>当传送者不必等候回应时,使用讯息伫列</span><span  id=Layer14></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>当传送者不必等候回应时,使用讯息伫列</span><span  id=Layer15></font></p><hr></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>在</span><span  id=Layer16>&nbsp;<a target='_new' href=205.htm#>第五章</span><span  id=Layer17></a>&nbsp;所描述,COM非同步method呼叫的加入,使得两者之间的差异渐趋模糊。</span><span  id=Layer18></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b> 附注</b></font><p><font size=2 color=#3c3c3c face=arial>在</span><span  id=Layer19>&nbsp;<a target='_new' href=205.htm#>第五章</span><span  id=Layer20></a>&nbsp;所描述,COM非同步method呼叫的加入,使得两者之间的差异渐趋模糊。</span><span  id=Layer21></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li>如果传送与接收的应用程式在不同的时间点执行的话,当然要使用讯息伫列-RPC假设客户端与接收端是同时存在的。如果硬体、软体、或网路错误的问题发生,讯息伫列能提供较佳的可靠性。因为讯息能安全地在伫列中等候,直到它们的目标接收者出现为止。</span><span  id=Layer22></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>当传送者与接收者可能无法同时存在时,就使用讯息伫列</span><span  id=Layer23></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>当传送者与接收者可能无法同时存在时,就使用讯息伫列</span><span  id=Layer24></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li>如果传送者并非传送讯息给特定的接收者,而是传送给某一群接收者中的任一个,那麽就使用讯息伫列。一旦讯息被放置在伫列中,任何能从伫列读取讯息的应用程式都有可能取得讯息。相对地,使用RPC的话,客户端通常会呼叫特定的伺服器(server),而且在发出呼叫的那一刹那就已经知道伺服器的身份了。</span><span  id=Layer25></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>当要与一群接收者中任一个通讯时,就使用讯息伫列</span><span  id=Layer26></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>当要与一群接收者中任一个通讯时,就使用讯息伫列</span><span  id=Layer27></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li>若需稽核要求(request),而且可能要重新处理以便从错误中恢复,那麽就考虑使用讯息伫列。尽管有可能稽核以RPC为基础的应用程式,但这机制已然是内建於MSMQ的一部分。一如往常,利用Windows 2000系统所提供的服务,会比自己重新建立的相同功能执行时会来得有效些。</span><span  id=Layer28></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>若需要稽核的话,则使用讯息伫列</span><span  id=Layer29></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>若需要稽核的话,则使用讯息伫列</span><span  id=Layer30></font></p><hr></font><font size=2 face=arial color=#3c3c3c><li>如果你的客户端只是呼叫某个伺服端,由此伺服端取得回应、然後继续执行下去,使用RPC就够了。但是若你希望一个分散式应用程式的各部份之间能有较复杂的互动关系的话,那就使用讯息伫列。若使用MSMQ,A能送一个讯息到B、B再送给C和D、C和D两者都传送回应讯息给A。这是RPC所没有的弹性。</span><span  id=Layer31></li><br></font><br><font size=2 color=#3c3c3c  face=arial><p><font size=2 color=#3c3c3c face=arial>传送者与接收者之间需要复杂的互动的话,则使用讯息伫列</span><span  id=Layer32></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>传送者与接收者之间需要复杂的互动的话,则使用讯息伫列</span><span  id=Layer33></font></p><hr></font></ul></font><p><font size=2 color=#3c3c3c face=arial>把效能当作是选择MSMQ或RPC的考虑因素也是很不错的。由於RPC的要求与回应不需经由伫列,就这角度来看它的执行速度似乎应该比讯息伫列快一些。其实MSMQ与RPC的效能差异往往不是你作抉择的重要因素。MSMQ有时会快速地令人讶异。</span><span  id=Layer34></font></p><p><font size=2 color=#3c3c3c face=arial>讯息伫列相当快速</span><span  id=Layer35></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>讯息伫列相当快速</span><span  id=Layer36></font></p><hr><p><font size=2 color=#3c3c3c face=arial>然而,比起以RPC为基础的COM与DCOM应用程式来说,讯息伫列增加更多管理上的负担。一旦你安装好适当的型态程式库(type library)、stub、以及proxy,这些类型的应用程式将可顺利运作,而不需要额外加以照料。使用一个讯息伫列应用程式就不是如此单纯了,它需要更多初始的组态动作,而且在应用程式使用时,管理者也可能会有周期性的工作要做。例如,某些种类的伫列会淤塞,因此可能需要定期以人工的方式来照料,以保持讯息程式能顺畅执行。</span><span  id=Layer37></font></p><p><font size=2 color=#3c3c3c face=arial>讯息伫列会增加管理上的负担</span><span  id=Layer38></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>讯息伫列会增加管理上的负担</span><span  id=Layer39></font></p><hr><p><font size=2 color=#3c3c3c face=arial>最後,不要把讯息伫列和电子邮件搞混了。这两者似乎非常相似 (通常统称为「讯息通讯」),但是这两者的目的却竭然不同。最简单的区别方式便是把电子邮件协定想像为人与人之间传送讯息的一种方式,而类似MSMQ的技术是为了在应用程式之间传送讯息而设计的。未来某些版本的产品,比如说Microsoft Exchange,理论上可能会建立在MSMQ的基础上,但电子邮件的标准协定早已就绪。从历史观察的结果,人与人之间以及应用程式与应用程式之间的讯息通讯技术上根深蒂固的区别还未有消弭的迹象。</span><span  id=Layer40></font></p><p><font size=2 color=#3c3c3c face=arial>讯息伫列是与电子邮件不同的技术</span><span  id=Layer41></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>讯息伫列是与电子邮件不同的技术</span>
	</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -