您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > ASP与SQL网站数据库程序设计Chap12
12ASP与ActiveXDLL12-1什么是MTS12-2如何创建ASP组件12-3将组件加入MTS中12-4调用MTS内的ASP组件ASP与SQL网站数据库程序设计34612-1什么是MTS12-1-1MTS概述MTS是一种以MicrosoftCOM(对象模型组件)技术为基础,并且以服务器为中心的三层应用系统开发技术。对于MTS应用系统而言,在服务器上执行的逻辑组件,其运行是客户端的MicrosoftDCOM技术实体中心所引起的,并且服务器上运行的逻辑组件完全处于MTS控制下执行。对于这种多层次结构的应用系统而言,其客户端的环境可以是各种不同类型的应用程序开发系统,只要这些系统支持Microsoft的COM以及DCOM技术,即可利用MTS的特性开发多层的应用系统;这些应用系统如在MicrosoftIIS(InternetInformationServer)上执行的ASP(ActiveServerPages)脚本语言等,皆可应用MTS特性开发多层的应用系统,如图12-1所示是MTS应用结构图。图12-1MTS应用结构图对于MTS的多层结构模型通常运用于多种不同的数据库存取方面,这些数据库如:MSSQL,ORACLE等。那么多层应用系统与MTS到底是什么样的关系,为什么要用MTS才能建立起多层的应用系统呢?MTS与多层应用系统之间的关系,请参考图12-2。第12章ASP与ActiveXDLL347显示应用逻辑数据用户端数据库系统中间层服务器通过网络连接通过网络连接图12-2标准三层结构模型如图12-2所示,在客户端对数据库进行数据的存取前,必须通过MTS应用组件的协助,才能进行后台数据库的存取。以此方式设计的程序,系统都不会直接接触到后台的数据库系统,因此使用MTS的一项优点就是可以保护后台数据库不被任意地存取,这种方式对于重要的数据库系统可以得到最大的保护。在上图中的中间部分是被称为中间层服务器的应用组件。此应用组件可以由程序员使用各种不同的开发工具进行开发,但是这些开发工具必须能够把程序编译生成动态链接库,并且支持COM组件的开发。而为了使这些组件可以在MTS环境下有效地运行时,程序员必须遵守以下几个准则:通过一个简单的API调用,创建一个对MTSContextObject的引用。由于这些调用程序结束时,MTS无法重复地使用它们的资源,因此在MTS组件的处理过程中,不要存储有关状态信息(例如:局部变量或是全局变量等)。如果必须存储这些状态,可以将这些状态存放在数据库中或是MTS的共享属性管理(SharedPropertyManager)中,并得以随时调用并取得这些状态信息。当组件成功地完成处理后,必须调用MTSContextObject内的“SetComplete”方法。此方法可以通知MTS组件已经完成工作并停止服务。如果组件无法执行成功,必须使用“SetAbort”方法通知MTS放弃继续执行此组件的服务程序。当设计出来的应用组件都能按照这些准则运行,将对MTS的管理及运行有非常大的益处。关于如何将这些MTS应用组件转成DLL组件,并加到MTSASP与SQL网站数据库程序设计348的环境中,笔者将在稍后的章节中做详细的叙述。特别说明事实上,多层应用系统不仅只是包含图12-2所示的三层结构应用系统模型。凡客户端与应用组件在不同设备上执行,并利用网络连接取得相关信息者,皆称为层。通常层数在两层以上者,称之为多层应用系统。但在现今多数应用环境中,以三层构建的应用系统模型最为常见,因而笔者特以此层为范例说明。12-1-2何时该使用MTS呢对于以MicrosoftCOM为基础的应用组件而言,在设计与开发多层应用系统过程中,MTS确实有很大优势。对于MTS如何在应用方面增加其附加值的部分,最好的方法是了解一下“何时使用MTS”的有关说明。1.有关Web-Based的应用在许多应用中,利用Web做为商业间的数据传输方式,使用浏览器就可以非常简单地连接至服务器,并提供客户端强大的功能以及动态数据的展示。利和现今网络互连的便捷性,用户可以使用浏览器连接至世界上任一角落的服务器,执行数据的存取。近来值得注意的是在网页上具有用户输入功能以及动态数据展示的功能,已经成为所有Web应用系统的一部分。而通常这些Web应用系统都是以HTML为基础,并且在这些网页上具有要求输入然后进行数据库操作等功能。因此如何处理这些由用户输入的数据,并且数据库响应相应的要求是很重要的。向数据库索取用户要求的数据,是通过中间服务器及组件完成这些动作的,用户无须直接对数据库进行任何操作。使用以MTS为基础的多层结构应用系统模型是非常适合这种要求的,在Web上使用这种应用模型有下列优点:多数的Web服务器仅提供部分或完全不提供任何多层结构的应用,这些Web服务器通常可以提供脚本语法上的应用。大多数的Web脚本虽然其本身并不提供数据库的存取服务,但它们通常可以提供与外部应用系统的连接,进而提供原系统功能之外的服务。提供共享的用户界面,不需理会用户所使用的平台。实现多层结构应用系统模型最好的方法是在Web应用系统上使用CGI应第12章ASP与ActiveXDLL349用程序。目前在Web环境中使用的CGI程序种类很多,笔者将以VisualBasic所产生的“ActiveXDLL”做为Web应用系统的CGI程序,为读者进一步说明这些“ActiveXDLL”如何产生、如何与MTS结合。如果用户对其他的CGI产生与结合方式有兴趣,请自行参考与WebCGI相关的书籍。2.IIS与ActiveServerPages对于以Web作为应用系统的前端用户而言,MTS与MicrosoftIIS4.0无疑提供了多层结构应用系统模型开发上的一种完美组合。由于IIS4.0所附加的ASP(ActiveServerPages)是一种以VisualBasic及Javascript为脚本,以标准HTML命令输出的应用系统开发语言,因而其非常适用于交互式网页的开发。ASP文件是以“.ASP”作为扩展名。那么ASP到底能提供哪些服务呢?例如:用户在网页上“用户姓名”的字段中输入“陈峰棋”,系统通过MTS与ASP应用系统的相互协作,并且直接通过ODBC就可以向数据库要求调阅出用户姓名为“陈峰棋”的所有相关信息。并且ASP会将这些调阅出的信息以标准HTML语言生成动态网页,直接显示在客户端的浏览器上。12-1-3使用MTS的优点当ASP对MTS组件进行调用时,此调用的需求可以同时来自于多个客户端,而此组件可以实现下列功能:可以执行应用逻辑的任何计算需求。通过与ODBC3.0兼容的驱动程序,直接存取一个或是多个不同的数据库系统。使用标准的COM组件并且通过SNAServer4.0版的协助,直接存取大型计算机上的应用系统。通过MSMQ发送或是接收信息。调用其他组件以执行其他应用组件的功能。由于MTS结构复杂,其相关叙述也很多,如果读者对于MTS有兴趣,不妨参考MTS相关书籍。那么既然使用MTS可以达到共享组件的存取、数据库的存取、交互式网页的创建等好处,那么该如何在网页中使用MTS组件的服务呢?从下一节开始,笔者将介绍如何设计这些MTS组件。MTS的调用程序当组件根据规定创建,应用系统即可继承MTS的优点(例如:更高的效ASP与SQL网站数据库程序设计350能、易于管理、较好的移植性),当DLL组件要加入MTS中或是从MTS中删除时,操作方式也非常简便、容易。图12-3如何建立ASP组件12-2如何创建ASP组件在本节中,笔者希望读者了解如何在微软的多种操作平台下生成这些供ASP调用的“ActiveXDLL”组件,以及如何使用VisualBasic产生这些“ActiveXDLL”组件。事实上,ASP中的许多组件都是使用VisualBasic编写出来的,ASP基本上使用的是VisualBasicScripting脚本语言。如何在“ActiveXDLL”中使用ASP几个固有的对象(如:Response,Equest,Application,Session等);如果在VisualBasic中直接使用这些组件,是否代表着就可以直接在VisualBasic中编写ASP程序代码,进而达到ASP程序代码“组件化”的目的呢?答案是肯定的。那么在微软的这些操作系统中,哪些可以使用MTS组件呢?下面所示的是可以使用MTS组件的操作系统:Windows98WindowsmeWindowsNT4.0Windows2000以上所示的Microsoft操作平台,Windows98与WindowsNTServer4.0是非常类似的,但在Windows2000与Windowsme操作平台方面,由于微软已经把MTS整合进COM结构,构建了COM+,因此在“ActiveXDLL”的产生上,第12章ASP与ActiveXDLL351将会有所不同。12-2-1新建工程如果希望在VisualBasic中创建供ASP调用的MTS组件,则必须先创建相关的工程。在“EX12-1”的范例中,笔者将先介绍如何创建MTS组件专用的工程。由于Microsoft在不同操作系统上MTS结构有所变化,因此在工程的“引用”上也有所不同,笔者会对这两种环境进行详细的说明。范例程序:EX12-1创建准备设计成为MTS组件的VisualBasic工程。范例说明虽然微软的MTS结构已经有所改变,但是在这些操作平台上创建MTS组件所用的工程基本上是相同的。这些操作系统平台MTS组件的基本差异,仅仅是在VisualBasic的“引用”选项上有所不同。进入VisualBasic,新建工程画面如图12-4所示。图12-4创建新工程如图12-5所示,选择“ActiveXDLL”,即可创建一个MTS组件所用的新工程。ASP与SQL网站数据库程序设计352图12-5选择“ActiveXDLL”选项双击“ActiveXDLL”,即可见到如图12-6所示的画面。图12-6创建完成的新工程12-2-2设置引用由于在Windows98/NT与Windowsme/2000系统上,使用MTS的方式不同,因此在本节将分别以Windows9x与Windows2000两个不同平台为例加以说明。在本章开始,笔者已经谈到有关这些平台上的不同点仅限于“引用”不同。接下来直接进行的是如何在Windows9x/NT系统上,增加VisualBasic的引用。1.WindowsNT4.0IIS与Windows98PWS对于引用而言,只要WindowsNT与Windows98分别在安装“OptionPack4.0”、“PWS”时,安装了“TransactionServer”即可。这时,读者就可以在“引用”窗口中找到,如图12-10中标示的“MicrosoftTransactionServerTypeLibrary”,并且在前面的空格中打勾即可。以下的范例“EX12-2”即为在WindowsNT4.0加入“MicrosoftActiveServerPagesObjectLibrary”及“MicrosoftTransactionServerTypeLibrary”的范例与说明。范例程序:EX12-2笔者以范例“EX12-1”所建工程为基础,在Windows98/NT操作平台上设第12章ASP与ActiveXDLL353置新的引用。在设置引用完成之后,将范例“EX12-1”另存为“EX12-2”。范例说明在VisualBasic中设置新增“引用”为“MicrosoftActiveServerPagesObjectLibrary”。在VisualBasic中设置新增“引用”为“MicrosoftTransactionServerTypeLibrary”。打开菜单中的“工程”,选择“引用”。如图12-7所示。图12-7打开“工程”中的“引用”打开“引用”选项后,读者会见到如下所示的画面。ASP与SQL网站数据库程序设计354图12-8打开“引用”后的画面接下来拖动垂直滚动条并且找到“Microso
本文标题:ASP与SQL网站数据库程序设计Chap12
链接地址:https://www.777doc.com/doc-5264601 .html