- 打印本文 关闭窗口
- ASP与SQL网站数据库程序设计(13)
- 作者:. 文章来源:科学出版社 点击数: 更新时间:2004/1/25 0:23:23
ASP与ActiveX DLL
12-1 什么是MTS
12-2 如何创建ASP组件
12-3 将组件加入MTS中
12-4 调用MTS内的ASP组件
12-1 什么是MTS
12-1-1 MTS概述
MTS是一种以Microsoft COM(对象模型组件)技术为基础,并且以服务器为中心的三层应用系统开发技术。对于MTS应用系统而言,在服务器上执行的逻辑组件,其运行是客户端的Microsoft DCOM技术实体中心所引起的,并且服务器上运行的逻辑组件完全处于MTS控制下执行。对于这种多层次结构的应用系统而言,其客户端的环境可以是各种不同类型的应用程序开发系统,只要这些系统支持Microsoft的COM以及DCOM技术,即可利用MTS的特性开发多层的应用系统;这些应用系统如在Microsoft IIS(Internet Information Server)上执行的ASP(Active Server Pages)脚本语言等,皆可应用MTS特性开发多层的应用系统。
对于MTS的多层结构模型通常运用于多种不同的数据库存取方面,这些数据库如:MS SQL,ORACLE等。那么多层应用系统与MTS到底是什么样的关系,为什么要用MTS才能建立起多层的应用系统呢?MTS与多层应用系统之间的关系。
在客户端对数据库进行数据的存取前,必须通过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的环境中,笔者将在稍后的章节中做详细的叙述。
特别说明 事实上,多层应用系统不仅只是包含图12-2所示的三层结构应用系统模型。凡客户端与应用组件在不同设备上执行,并利用网络连接取得相关信息者,皆称为层。
通常层数在两层以上者,称之为多层应用系统。但在现今多数应用环境中,以三层构建的应用系统模型最为常见,因而笔者特以此层为范例说明。
12-1-2 何时该使用MTS呢
对于以Microsoft COM为基础的应用组件而言,在设计与开发多层应用系统过程中,MTS确实有很大优势。对于MTS如何在应用方面增加其附加值的部分,最好的方法是了解一下“何时使用MTS”的有关说明。
1. 有关Web-Based的应用
在许多应用中,利用Web做为商业间的数据传输方式,使用浏览器就可以非常简单地连接至服务器,并提供客户端强大的功能以及动态数据的展示。利和现今网络互连的便捷性,用户可以使用浏览器连接至世界上任一角落的服务器,执行数据的存取。
近来值得注意的是在网页上具有用户输入功能以及动态数据展示的功能,已经成为所有Web应用系统的一部分。而通常这些Web应用系统都是以HTML为基础,并且在这些网页上具有要求输入然后进行数据库操作等功能。因此如何处理这些由用户输入的数据,并且数据库响应相应的要求是很重要的。
向数据库索取用户要求的数据,是通过中间服务器及组件完成这些动作的,用户无须直接对数据库进行任何操作。使用以MTS为基础的多层结构应用系统模型是非常适合这种要求的,在Web上使用这种应用模型有下列优点:
· 多数的Web服务器仅提供部分或完全不提供任何多层结构的应用,这些Web服务器通常可以提供脚本语法上的应用。
· 大多数的Web脚本虽然其本身并不提供数据库的存取服务,但它们通常可以提供与外部应用系统的连接,进而提供原系统功能之外的服务。
· 提供共享的用户界面,不需理会用户所使用的平台。
实现多层结构应用系统模型最好的方法是在Web应用系统上使用CGI应用程序。目前在Web环境中使用的CGI程序种类很多,笔者将以Visual Basic所产生的“ActiveX DLL”做为Web应用系统的CGI程序,为读者进一步说明这些“ActiveX DLL”如何产生、如何与MTS结合。如果用户对其他的CGI产生与结合方式有兴趣,请自行参考与Web CGI相关的书籍。
2. IIS与Active Server Pages
对于以Web作为应用系统的前端用户而言,MTS与Microsoft IIS 4.0无疑提供了多层结构应用系统模型开发上的一种完美组合。由于IIS 4.0所附加的ASP(Active Server Pages)是一种以Visual Basic及javascript为脚本,以标准HTML命令输出的应用系统开发语言,因而其非常适用于交互式网页的开发。
ASP文件是以“.ASP”作为扩展名。那么ASP到底能提供哪些服务呢?例如:用户在网页上“用户姓名”的字段中输入“陈峰棋”,系统通过MTS与ASP应用系统的相互协作,并且直接通过ODBC就可以向数据库要求调阅出用户姓名为“陈峰棋”的所有相关信息。并且ASP会将这些调阅出的信息以标准HTML语言生成动态网页,直接显示在客户端的浏览器上。
12-1-3 使用
- 打印本文 关闭窗口