微软MTS三层应用系统开发技术概述
MTS是一种以Microsoft COM(对象模型组件)技术为基础,并且以服务器为中心的三层应用系统开发技术。对于MTS应用系统而言,在服务器上执行的逻辑组件,其运行是客户端的Microsoft DCOM技术实体中心所引起的,并且服务器上运行的逻辑组件完全处于MTS控制下执行。对于这种多层次结构的应用系统而言,其客户端的环境可以是各种不同类型的应用程序开发系统,只要这些系统支持Microsoft的COM以及DCOM技术,即可利用MTS的特性开发多层的应用系统;这些应用系统如在Microsoft IIS(Internet Information Server)上执行的ASP(Active Server Pages)脚本语言等,皆可应用MTS特性开发多层的应用系统,如图1所示是MTS应用结构图。
对于MTS的多层结构模型通常运用于多种不同的数据库存取方面,这些数据库如:MS SQL,ORACLE等。那么多层应用系统与MTS到底是什么样的关系,为什么要用MTS才能建立起多层的应用系统呢?MTS与多层应用系统之间的关系,请参考图2。
如图2所示,在客户端对数据库进行数据的存取前,必须通过MTS应用组件的协助,才能进行后台数据库的存取。以此方式设计的程序,系统都不会直接接触到后台的数据库系统,因此使用MTS的一项优点就是可以保护后台数据库不被任意地存取,这种方式对于重要的数据库系统可以得到最大的保护。
在上图中的中间部分是被称为中间层服务器的应用组件。此应用组件可以由程序员使用各种不同的开发工具进行开发,但是这些开发工具必须能够把程序编译生成动态链接库,并且支持COM组件的开发。而为了使这些组件可以在MTS环境下有效地运行时,程序员必须遵守以下几个准则:
·通过一个简单的API调用,创建一个对MTS Context Object的引用。
·由于这些调用程序结束时,MTS无法重复地使用它们的资源,因此在MTS组件的处理过程中,不要存储有关状态信息(例如:局部变量或是全局变量等)。如果必须存储这些状态,可以将这些状态存放在数据库中或是MTS的共享属性管理(Shared Property Manager)中,并得以随时调用并取得这些状态信息。
·当组件成功地完成处理后,必须调用MTS Context Object内的“SetComplete”方法。此方法可以通知MTS组件已经完成工作并停止服务。
·如果组件无法执行成功,必须使用“SetAbort”方法通知MTS放弃继续执行此组件的服务程序。
当设计出来的应用组件都能按照这些准则运行,将对MTS的管理及运行有非常大的益处。关于如何将这些MTS应用组件转成DLL组件,并加到MTS的环境中,笔者将在稍后的章节中做详细的叙述。
特别说明
事实上,多层应用系统不仅只是包含图2所示的三层结构应用系统模型。凡客户端与应用组件在不同设备上执行,并利用网络连接取得相关信息者,皆称为层。
通常层数在两层以上者,称之为多层应用系统。但在现今多数应用环境中,以三层构建的应用系统模型最为常见,因而笔者特以此层为范例说明。