技术开发 频道

微软事务处理服务

  MTS使用以组件为基础的编程完整事务使得你能开发出鲁棒,分布式的,以组件为基础的程序。

  MTS工程师

  这部分对MTS工程师主要元素作一简介

  这些元素包括:

  ActiveX组件,完成应用程序功能。

  事务管理服务执行者,为程序组件运行服务。

  服务处理,提供存放程序组件的代理处理环境。

  资源管理者(RM),管理程序的可耐阶段,例如包括相关数据库系统和事务性消息队列。

  资源分配者,管理进程内组件非耐久性共享数据,例子包括数据库连接池,管理队列。

  微软分布事务协调者,允许通过多个资源管理者,分配者和程序组件协调事务。

  微软事务服务器组件:程序组件使商业行为模式化。这些组件了完整商业规则,提供视图和程序状态变化情况。考虑在线书库的例子。用在数据库系统中的记录代表商务的耐久状态,如挂起订单,方便的目录,可接受帐单。应用程序组件刷新状态以反映如新定单和目录发送的变化。

  MTS程序组件是ActiveX处理中服务器(DDL)。通过使用Microsoft Visual Basic,Visual C++,Visual J++或任何与ActiveX相兼容的开发工具,你可以创造并实现这些组件。

  ActiveX以COM为基础,包括:

  界面概念,客户从对象请求服务的方法;

  通过处理器和机器界限与透明对象的连接;

  确认组件,动态装载和执行组件的机制;

  对象能通过MTS工程师支持多界面,并提供给用户查询支持对象的特殊界面的方法。并允许组件提供不同水平的功能并逐渐引入新版本。

  MTS扩展了COM以提供一个通用的服务器程序框架。除了上面提到的COM内在的特性外,MTS还处理服务器注册,进程,线程管理,内容管理,共享资源的管理和同步化,以及以组件为基础的安全性管理。

  将事务引入到程序模板作为获得最小单元更新和在组件、数据库系统及网络边界达到一致性的机制。每个组件都有一个事务属性指出组件的事务性语义。这允许事务性内容被MTS自动管理。MTS使用户避免了复杂的服务事件,使用户可以专注于完成商业功能。由于在MTS下运行组件可充分利用事务服务程序,用户可以把程序当成各自独立的状态来编写程序。MTS处理同时事件,资源池,内容管理及其他系统水平的复杂的事件。事务系统,与数据库服务器和其他类型的资源管理协同工作,确保同时事务是强大的、一致的、有恰当的分离性,并且,一旦完成,变化是可耐久的。

  应用程序作为ActiveX的组件来分配,称为包裹。包裹定义了错误分离和信任边界。

  事务管理服务执行器

  事务管理服务执行器是一个动态连接库(DDL),它对事务管理服务组件提供运行时服务。这些服务包括线程管理和内容管理。这些动态连接库被加载到应用程序组件的宿主进程中,并且在后台透明的执行。

  服务进程:

  服务进程是应用程序组件执行的宿主系统进程,对数十、成百、上千个客户提供服务。你可以配置多个服务进程在一个计算机上执行。每个服务进程反映了一个分立的信任边界和错误绝缘域。

  其他的进程环境也能让应用程序组件在其上运行。这使你可以分配应用程序以适合不同的分布、性能和错误绝缘要求。例如,你可以配置MTS组件直接加载到微软SQL服务器上或微软网络信息服务器(IIS)上。你还可以直接将它们配置到客户进程中去。

  资源管理者:

  资源管理者是一种系统服务,它管理耐久数据。服务器应用程序使用资源管理者维持应用程序的耐久状态,如方便的存货目录记录,到期订单以及可接受帐目。资源管理者于事务管理者协同工作,以保证应用程序的最小性和分立性。微软SQL服务器,耐久的消息队列和事务性的文件系统都是资源管理者的例子。

  最小性保证了在一个特殊事务中所有的更新都能完成(并能持久)或者被放弃并回到原来的状态。一致性意味着一个事务是系统状态的正确转化,保存了状态变量。

  分立使得同时事务不会得知其他事务的信息和未完成的结果,以免引起应用程序状态的不稳定。资源管理者应用以事务为基础的同步协议来分离活动事务管理程序未完成的工作。

  耐久性意味着对已管理资源(如数据库记录)的更新,能不受错误的影响,包括通讯错误,进程错误和服务系统错误。事务管理的日志甚至能允许你在磁盘介质失效后恢复耐久状态。

  最小性和分立性协同工作使得事务管理程序看起来是立刻发生的。事务管理程序的中间状态对外面来说是不可见的,并且产生了这样一个结果:或者所有的工作都完成了,或者没有一个完成了。这允许我们在编写应用程序组件时,可以把事务管理程序当作顺序发生而不考虑其同时性,这对应用程序开发者是一个非常大的简化。

  MTS支持资源管理者来完成OLE事务管理协议或X/Open XA协议。有开发资源管理者的工具包。

  一个资源分配者在一个进程内代表应用程序组件管理非耐久性的共享数据。资源分配者与资源管理者相似,但没有担保或耐久性。MTS提供两种资源分配者:

  ODBC资源分配者

  共享属性管理者

  并提供了一个工具包来开发资源分配者

  ODBC资源分配者:

  ODBC资源分配者使用标准开放数据连接界面为事务服务器管理数据连接池。ODBC资源分配者维护数据库连接池,快速和有效的分配给对象连接。连接被自动列在对象的事务处理程序中。资源分配者能自动的回收和重用连接。ODBC资源分配者是一个动态连接库,它对用户透明的提供这种功能并且内构在MTS的特性里。

  共享属性管理者:

  共享特性管理者对定义的应用程序,进程宽度,属性(变量)进行同步管理。你可以使用它来维护一个Web页面冲浪计数器,常量数据的缓冲,或者提供高速缓冲来避免数据库的过热点。(例如产生唯一的接收成员)。

  微软分布式事务管理协调者:

  微软分布式事务管理协调者是一个系统服务,用于协调跨越多个资源管理者的事务。即使事务可能在分立的计算机上跨越了多个资源管理者,它也能当作最小事务来完成。

  微软分布式事务管理协调者最早作为微软SQL服务器6.5版本的一部分发布,并且包含在MTS里。它完成了两阶段承诺协议来保证事务处理结果(完成的或抛弃的)在所有的资源管理者中是一致的。

  微软分布式事务管理协调者确保最小性,不管是在错误(节点冲突、网络崩溃或资源管理者、应用程序的错误动作),条件竞争(事务管理程序开始工作而一个资源管理者正在放弃)还是可提供性(一个资源管理者装备了一个事务但没有返回)发生时。

  微软分布式事务管理协调者支持符合OLE事务管理或X/Open XA协议的资源管理者。

  结论

  微软事务管理服务器将改变人们开发商业应用程序的方法。组件基础技术、面向对象技术与针对分布式、在线事务处理的时间验证技术的结合将使得布置由被购买的通常构造的组件组成的应用程序更加容易。经济上的优点将产生商业组件的一个新市场。这种情况,反过来说,使得原来没有解决的问题得到商业上的解决。

0
相关文章