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

📄 201005.htm

📁 探索Windows 2000发展策略以及中介层技术设计的基本概念
💻 HTM
字号:
<html><body><span  id=Layer1><a name=201005><font color=#3e70d7 face=arial size=5><b>使用Windows 2000分散式服务</span><span  id=Layer2></b></font><p><font size=2 color=#3c3c3c face=arial>若要了解在Windows 2000 中的分散式服务如何一起运作的就要看看一些范例。在这个范例中将展示这些诉求-一个相当简单的分散式银行系统,一家虚拟的QwickBank公司-这两者底层都是以本章之前描术的银行COM物件为基础。在</span><span  id=Layer3>&nbsp;<a href="#1-6" target=_new>图1-6</span><span  id=Layer4></a>&nbsp;中展示,这个物件有两个介面:IAccount,它的method包含Credit、Debit与GetBalance。另一个介面是ITransfer,只包含一个简单的method,MoveMoney。使用这些method,客户端便可以操纵银行帐户的馀额、检查馀额、在帐户间进行转帐。因为帐户馀额事实上是维护在一个或多个资料库之中的,物件便使用适当的资料库来实行每一个操作。也因为某些操作,如执行ITransfer的MoveMoney,可能会需要对两个资料库有不可分割性的变更需求,因此这些范例应用程式都需要COM+与DTC提供的交易服务。(事实上,应用程式也有可能使用其它的COM+服务,不过在这个简单的范例中并没有提及。) 扮演物件客户端的终端使用者可能是银行行员,以处理顾客的需求,也有可能是顾客自己,透过Internet存取自己的帐户。下面的情节中将示范这两种可能性。</span><span  id=Layer5></font></p><p><font size=2 color=#3c3c3c face=arial>真正的应用程式会同时使用许多Windows 2000 的分散式服务</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>真正的应用程式会同时使用许多Windows 2000 的分散式服务</span><span  id=Layer7></font></p><hr><font color=#3e72d7 face=arial size=4><b>一个DCOM客户端的范例</span><span  id=Layer8></b></font><p><font size=2 color=#3c3c3c face=arial>第一个情节展示於图1-12。在这个范例中,客户端应用程式(或许是使用Visual Basic或C++撰写的)使用DCOM来存取前述的银行物件。为了达到这个目的,客户端要先使用DCOM在伺服器上建立一个物件。客户端系统使用Active Directory来找到伺服器并建立物件,对应用程式来说这是通透的(图1-2步骤一)。</span><span  id=Layer9></font></p><p><font size=2 color=#3c3c3c face=arial>一个客户端可以使用Active Directory来决定欲建立物件的地方</span><span  id=Layer10></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>一个客户端可以使用Active Directory来决定欲建立物件的地方</span><span  id=Layer11></font></p><hr><br><center><a target=_new href=imagesh/1-12.gif><img border=0 src='imagesl/1-12.gif'></a></center></span><span  id=Layer12><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图1-12</span><span  id=Layer13>&nbsp;</b></font>客户端可以使用DCOM来存取商业逻辑,决定於一个完整应用程式用到的其它服务。</span><span  id=Layer14></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>虽然图1-12中并没有显示,客户端可能会先与DNS伺服器取得连系,以找到正确的网域控制主机,不过最後客户端会向网域控制主机发行一个LDAP查询。接着Active Directory回传欲建立银行物件的伺服器所在位置。</span><span  id=Layer15></font></p><p><font size=2 color=#3c3c3c face=arial>不过此伺服器机器不应允许任何人建立或存取它的物件。取代的做法,应用程式使用Kerberos以处理分散式安全性,它要求客户端机器先从KDC取得应用程式的ticket。(图1-12的步骤二)。一旦这个工作完成,客户端要求建立物件的动作便可以进行了,在底层它是依赖DCOM与COM+来实现的。</span><span  id=Layer16></font></p><p><font size=2 color=#3c3c3c face=arial>建立物件可能需要取得Kerberos的ticket</span><span  id=Layer17></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>建立物件可能需要取得Kerberos的ticket</span><span  id=Layer18></font></p><hr><p><font size=2 color=#3c3c3c face=arial>虽然图中并没有显示,客户端可能也需要存取Active Directory的ticket。</span><span  id=Layer19></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注 </b></font><p><font size=2 color=#3c3c3c face=arial>虽然图中并没有显示,客户端可能也需要存取Active Directory的ticket。</span><span  id=Layer20></font></p><hr><p><font size=2 color=#3c3c3c face=arial>一旦客户端建立物件後,客户端便可以呼叫IAccount与ITransfer上的method来修改帐户(图1-12的步骤叁)。每个客户端都自行拥有一个银行物件的实例,而一个实例可能会在许多不同的帐户之中重复地使用。每一个呼叫到IAccount的Credit与Debit method的动作都会更改适当的资料库以反应新帐户的馀额。如图1-12所示,物件使用ADO来存取这些资料库。</span><span  id=Layer21></font></p><p><font size=2 color=#3c3c3c face=arial>一旦物件建立後,客户端便可以呼叫它的method</span><span  id=Layer22></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>一旦物件建立後,客户端便可以呼叫它的method</span><span  id=Layer23></font></p><hr><p><font size=2 color=#3c3c3c face=arial>客户端能执行的某些操作需要一个跨越多个资料库之查询。举例来说,客户端可以呼叫ITransfer的MoveMoney method,要求移动两个资料库中的帐户金额。在这个情况下,这两个动作-减去金额与新增金额-都应该发生,或全部都不发生。COM runtime最终是依赖DTC,确保这个交易的行为是正确的。(图1-12的步骤四)。</span><span  id=Layer24></font></p><p><font size=2 color=#3c3c3c face=arial>COM runtime与DTC可以确保交易行为是正确的</span><span  id=Layer25></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>COM runtime与DTC可以确保交易行为是正确的</span><span  id=Layer26></font></p><hr><p><font size=2 color=#3c3c3c face=arial>在某些操作可能需要的不仅是修改资料库 。举例来说,QwickBank可能有一个政策要传送给转帐超过$10,000的顾客一个回函。为了要达到这个目的,银行物件的MoveMoney method建立一个MSMQ讯息,然後将讯息送到正确的伫列中(图1-12的步骤五)。其它系统上的其它应用程式最後可以从伫列中读取这个讯息,然後看到已列印的确认回函,并传送给顾客。也有可能让传送这个讯息和更新资料库的的动作包装成为一个交易。如此可确保只有在转帐的动作成功时才会传送讯息。</span><span  id=Layer27></font></p><p><font size=2 color=#3c3c3c face=arial>某些要求可能来自於MSMQ</span><span  id=Layer28></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=Layer29></font></p><hr><font color=#3e72d7 face=arial size=4><b>浏览器客户端的范例</span><span  id=Layer30></b></font><p><font size=2 color=#3c3c3c face=arial>使用DCOM客户端来建立一个银行系统在系统的使用者都是行员的情况下是有意义的。每个行员的工作站上可以安装自订的DCOM客户端,而伺服器机器可以在内部的网路上存取。不过当银行的经理人决定要让客户透过Internet存取他们的帐户时,会发生什麽事呢?若要实现这个动作,应用程式就需要新增一个以Web为基础的介面。在Windows 2000 中,这并不会很困难。银行物件所提供的核心功能仍然没有改变,需要更改的是客户端如何存取这些功能。事实上,你有可能在同一个应用程式中,同时使用DCOM与Web客户端。</span><span  id=Layer31></font></p><p><font size=2 color=#3c3c3c face=arial>以Web为基础的客户端可以存许相同的商业物件(business object)</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>以Web为基础的客户端可以存许相同的商业物件(business object)</span><span  id=Layer33></font></p><hr><p><font size=2 color=#3c3c3c face=arial>图1-13展示这个以Web为基础之简单的银行系统可能的长像。客户端现在是执行在任何一种作业系统上的任一种浏览器-Netscape Navigator、Microsoft Internet Explorer或其它浏览器。客户端可以透过网页存取银行物件,因此客户端必须为这个网页提供一个URL</span><span  id=Layer34></font></p><p><font size=2 color=#3c3c3c face=arial>一个Web浏览器可以使用DNS来找到伺服器,并用SSL来自行验证。</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>一个Web浏览器可以使用DNS来找到伺服器,并用SSL来自行验证。</span><span  id=Layer36></font></p><hr><p><font size=2 color=#3c3c3c face=arial>通常URL包含内嵌的DNS名称,因此客户端先与DNS伺服器取得连系,以便找到网页所在的机器(图1-13的步骤一)。接下来,就和前面的范例一样,客户端需要向建立银行物件的伺服器证明自己的身份。虽然在此可以使用Kerberos,但Internet应用程式较喜欢SSL。此外,验证的动作可以公开金钥技术来完成。(图1-13的步骤二)</span><span  id=Layer37></font></p><br><center><a target=_new href=imagesh/1-13.gif><img border=0 src='imagesl/1-13.gif'></a></center></span><span  id=Layer38><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图1-13</span><span  id=Layer39>&nbsp;</b></font>显示在图1-12的同一个business物件可以让浏览器客户端存取。</span><span  id=Layer40></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>现在顾客可以存取这个帐户了。在前面的范例中,银行行员能看得到的介面完全由客户端的软体开发者所控制。在此,客户端的使用者介面可以是一个网页或其它类型。网页中可能提供一个表单、可选取的方块以供输入,目标是让顾客能够很简单地存取到帐户资讯。不管使用者介面是如何制作的,顾客最後都可以透过HTTP提交要求到Web伺服器。(图1-13的步骤叁)。接着IIS载入ASP script中的VBScript程式,然後将每个要求传送到银行物件,必要时再呼叫物件的method(图1-13的步骤四)。银行物件的程式码和前面的范例是一模一样的-更改的是物件的method,现在它可以让ASP Script呼叫,而不是用来让DCOM客户端呼叫的。当订单提交後,这物件会再度依赖ADO来存取资料,使用COM+与DTC来确认交易,然後使用MSMQ传送任何必要的资讯(图1-13的步骤五)。</span><span  id=Layer41></font></p><p><font size=2 color=#3c3c3c face=arial>ASP script可以呼叫COM物件的method</span><span  id=Layer42></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>ASP script可以呼叫COM物件的method</span><span  id=Layer43></font></p><hr><p><font size=2 color=#3c3c3c face=arial>这些范例都解决了相同的问题,而应用程式的核心  COM物件,允许客户端查询并修改帐户-在两个范例中都是相同的。这两个情节不同之处在於客户端如何找到物件,应用程式如何提供分散式安全性,以及客户端如何跨网路发出要求。在某些情况下,以DCOM为基础的应用程式是正确解决方案,而其它的情况下,较适合以Web为基础的客户端。不过,不管哪一种情节,Windows 2000 提供了一组完整整合的服务,让你更容易建立具弹性、安全的分散式应用程式。不管你如何看待它,这些服务代表使用Microsoft作业系统的公司向前跨越了一步。</span><span  id=Layer44></font></p><p><font size=2 color=#3c3c3c face=arial>Windows 2000分散式服务代表向前跨越一步</span><span  id=Layer45></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Windows 2000分散式服务代表向前跨越一步</span>
	</body></html>

⌨️ 快捷键说明

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