论文部分内容阅读
一、引言
ASP(Active Server Page)是微软推出的一种服务器端的脚本语言开发环境,它将在服务器端运行的脚本和在浏览器端执行的HTML语句放在一个ASP程序中执行,用户请求一个ASP页面后,该页面首先在相应的Web服务器端执行,然后将程序执行的输出变为HTML语句插入到ASP程序中相应的位置,再送回客户端。
ASP技术在基于Web的数据库访问上克服了CGI程序效率低、速度慢,及API兼容性差,开发难度大的缺点;ASP程序源代码容易产生、容易设计,与浏览器无关,遵循面向对象的设计思想,且与任何ActiveX脚本语言兼容;在ASP程序里可以通过ActiveX服务器组件来扩充服务器功能,还可以通过服务器端脚本产生或更改客户端脚本。ASP技术的上述特点使之更好地适应了动态的站点设计的要求。
ASP技术将Web技术与数据库技术相结合,开发动态的Web数据库应用,同时有效结合了HTML语言、脚本语言(如:VBScript、JavaScript等)以及ActiveX服务器组件(ActiveX Server Component),融合了分布式对象管理技术(DCOM、CORBA)。
ASP技术的优点在基于电信管理网(TMN)的综合网管系统TIMS 中得到了充分的展现。本项目的开发环境为:服务器端的操作系统采用Windows NT4.0,Web服务器为IIS4.0,数据库采用SQL Server 7.0,主要开发工具是Visual Basic、Visual Interdev等。
二、ASP数据库访问技术
ASP环境下对数据库的访问主要是通过ADO数据模型。ADO是一个ASP内置的ActiveX服务器组件,可用于访问Access、SQL Server数据库,及其它与ODBC(开放式数据库互联)兼容的数据库。
要执行ADO,服务器端须安装Windows NT Server和IIS(Internet Information Server),而客户端只要有IE4.0或Netscape较新版本的浏览器即可。
ADO有些类似于以前在VB中的DAO(Data Access Object,数据访问对象)和RDO(Remote Data Object,远程数据对象)。在ASP中,ADO可以看作是一个服务器组件。具体的操作步骤可以归纳为以下几步:
1.创建数据库源名(DSN)。
2.创建数据库链接(Connection):
创建链接对象mConn set Mconn=Server.createObject(“ADODB.CONNECTION”);
打开链接MConn.Open“dsn1”,“username”,“password”。
3.创建记录集对象:
创建RecordSet对象Set RecordSet=mConn.Execute(sqlStr)。
其中sqlstr通常是Select语句,因为其它的Insert语句,Delete语句返回不了记录集。
4.操作数据库:execute方法的参数是一个标准的SQL语句串,所以可以利用它方便地执行数据插入、修改、删除等操作。
5.关闭数据对象和链接:RecordSet.close。
ADO与其它数据库访问机制比较如图一所示:
在Visual Interdev中,可以灵活方便地使用DTC(design time control)。DTC包括标准用户界面元素,如文本框,标签,复选框,列表框,命令按纽,它们基于脚本对象模型产生运行时的脚本,更易于对控件进行数据绑定。当你编辑DTC和定义其属性的时候,Visual Interdev就自动的写出运行代码。因此页面上象文本框、按纽之类的控件可以自动绑定到数据库记录集的特定字段上。这些数据绑定控件已经包括建立数据连接,提取数据,修改数据库的脚本,不用或者只需编写很少的脚本。DTC运行时产生相应的具有方法、事件和属性的脚本对象。DTC可以被看作一种脚本编辑器。DTC控件使得脚本的编写更加容易。在使用DTC时,必须指定好目标脚本平台,以决定用服务器脚本还是客户端的脚本,客户端脚本是在浏览器端执行的。服务器端脚本是在服务器上由IIS运行的。
在ASP的集成开发环境中,ADO及DCOM的实现比较简单。下面将以用户登录时的身份验证、用户管理以及站点、网元管理为例,具体说明ADO技术、分布式组件对象模型DCOM技术在电信管理网综合网管系统中的应用。
首先建立一个“ADODB.CONNECTION”对象conn,连接到数据库TMNdb上。
* 用户身份验证:用户进入TMN网管系统之前必须输入帐号和口令,把帐号和口令作为参数执行一个SELECT语句,对表TabUser进行查询,结果返回RecordSet对象RsUser里。如果RsUser为空,则该用户为非法用户;反之,则将返回记录“user_level”(用户级别)字段的值赋给session(level),在用户浏览网站的整个过程中都保留。用户有不同的优先级,最高级别是0级(系统管理员),其次1级,最低的是2级。
* 用户管理:用户管理主要有用户确认、用户口令修改、用户添加、用户删除等功能。只有系统管理员才有权限(即要求Session(level)值为零)进行用户添加和用户删除。ASP脚本先检查Session(level)是否为零。用户添加只需在一张DTC控件(文本框,下拉列表框)构成的表单中填写帐号、密码、级别,再单击确定按纽(confirm),触发confirm_onclick事件,把表单提交给服务器,在用户表中添加一条记录即可。用户删除则需在数据源定义为所有用户帐号的下拉列表框中选择帐号,然后给出该用户的密码,单击确定按纽,即可删除用户数据表中的相应记录。用户口令修改则对权限没有太多的要求,只要知道口令就可以进行。
* 网元信息显示:运用DTC控件RecordSet和DBGrid可以轻松地显示各种情况下的数据报表。DTC控件RecordSet的DataBase Object属性可以设置为一个网元数据表,也可以设置为带参数的SQL查询命令,查询特定地区特定告警级别的网元。
三、ASP环境中采用的分布式对象管理技术
综合网管系统所处理的信息来源于各个管理子系统,由于各管理子系统具有分布、异构的特点,因此综合网管系统是一个大型的分布信息处理系统,互联平台内部必须具有分布对象管理、异种数据源访问、信息分析和处理、统一视图的生成等功能,这只有在分布计算环境中才能有效地实现,为此必须合理地引入分布对象管理技术。
ASP技术融合了分布式对象管理技术——DCOM和CORBA。国际对象管理组织OMG发布的公共对象请求代理结构(CORBA)和微软公司提出的分布式组件对象模型(DCOM)是目前较为成熟的分布式对象管理技术规范。两者都支持本地对远程的透明调用,调用对象服务时不必知道远程对象细节,两者都支持动态或静态两种调用方式,都支持多线程服务。CORBA实现的产品具有良好的跨平台特性,但不同厂商开发的产品可能采用了不同的实现方法。DCOM的实现具有高质量的开发工具,如微软的Visual C++、Visual Basic、Power Builder、Delphi等,有大量商品化了的ActiveX组件可供使用,但DCOM只能在有限的操作系统平台下使用,目前仅在Windows NT、Windows 95及Sun Solaris下被支持。因此DCOM在支持异种平台和框架开发方面有明显不足。
1.DCOM的实现
分布式组件对象模型(DCOM)是独立于具体编程语言的一种协议,它使得ActiveX组件之间能够在网络上直接通信。
在应用ASP开发基于Web的分布式计算应用时,ActiveX的代码部件可以用于直接扩展ASP的功能,适合扮演用户请求的“代理者”,ActiveX控件具有友好的用户界面,适合用于接收用户下达的管理要求。
图2给出了ActiveX组件在Web环境下应用的体系结构:
图2 Web环境下的ActiveX组件
以TMN_MAP地图控件为例说明ActiveX组件在TMN子系统互联中的应用:
(1)图形界面:
交换机、接入网局端、接入网远端、连路和中继群分别用长方形、圆形、方形和直线表示。告警色为红色。
(2)功能说明:
显示TMN的基本运行状况(以颜色或声音等),如交换机、SDH、接入网的运行状况;提供端到端的管理——输入两端点Id号,显示两端点间的路由信息;显示全网的运行状态;
显示单个设备的基本信息,并能提供一部分接口(主要是一部分事件接口)扩展功能,如左击进入下一级设备;右击弹出菜单,显示性能管理、配置管理、故障管理、基本信息等等。
(3)网元控件的主要属性和方法:
主要属性:Appearance、Position、Scale、FlashEnabled、BeepEnabled、StateChanged;
主要方法:SetPBXInfo(?,?,?)SetSDHInfo(?,?,?)SetANInfo(?,?,?)设置节点基本信息
GetInfo() 获取节点附加信息
ShowPopUpMenu() 显示弹出式菜单,在鼠标的右击事件中调用
(4)网元控件涉及到的数据库的主要表结构:
交换机基本信息表(TB_PBX) 站点基本信息表(TB_SST_INFO)
节点信息表(TB_A_NODE) (交换机)当前告警(TB_WARN)
(AN)当前告警记录表(TB_AN_CURALARM) (SDH)当前告警表(TB_SDH_ALARM)
(5)实现:
* 在内部生成Private Nodes Collection集合,由这个集合管理AN、SHD、PBX的生成、显示、保存相关的信息;
* 站点间连路(或中继群)的连接采用在站点控件间画直线来完成(根据站点控件的Position_X和Postion_Y属性);
* 坐标系的转化,把站点坐标转化为TMN_Map控件内部坐标:建立可以自定义的坐标系统;
* 通过Add_PBX_Node(Id ...)、Add_AN_Node(Id...)、Add_SDH_Node(Id...)及Get_AN_Node(Id...)等方法添加站点;
* 初始时,在本控件中加入每类型内控件一个,并把Index属性设置成0,Visual=False,在生成新的内控件时,调用如下方法:Load _Node(I) :I=I+1;
* 实现端到端的管理。
2.CORBA在TMN子系统互联中的应用
CORBA目前已经是一项比较成熟的分布式面向对象技术,以CORBA平台为基础构造TINA体系结构中分布式处理环境DPE的工作正在进行。可以预见,在不久的将来,CORBA将被广泛用于开放的电信市场环境下业务的快速构造及资源和业务的有效管理。
电信业务异质性强,种类多,经常处于动态变化之中,且许多业务需要互相配合,业务的管理更为复杂。CORBA体系结构所支持的对象模型能够满足业务层的管理需要。对象之间可以通过ORB相互调用对方提供的服务;有分布透明的支持,业务对象和组件还可以在网络内动态迁移。CORBA的ORB之间可以通过基于TCP/IP的IIOP协议通信,实现起来代价较低。CORBA采用IDL描述对象的对外接口,对被管理对象的访问和管理系统内部对象之间的交互可以一致看待,CORBA的动态调用接口DII还可以在运行时刻访问被管理系统中新的对象类型。因此,NE内部采用CORBA技术是可选方案之一。目前的TMN网管平台缺乏特定TMN管理组件和支持分布式应用的基础构件。采用IDL定义对外接口的组件通过ORB可以很好地支持访问和位置透明。因此,以CORBA的ORB为核心,结合目前分布式对象体系结构和电信网络和业务管理方面的相关技术,可以构造一个更加分布化、重用性强、可靠性高、可伸缩性好并且适用于整个TMN分层体系结构的新一代分布式TMN管理平台。
四、结论
ASP技术很好地适应了动态站点设计和基于Web的数据库访问的要求。ASP技术主要采用ADO机制访问数据库,并融合了脚本语言以及分布式对象管理技术。本文着重就ASP技术在TINMS(基于TMN的综合网管系统)数据库访问和分布式组件上的应用作了分析和介绍。ASP技术将在更多的领域发挥优势。
ASP(Active Server Page)是微软推出的一种服务器端的脚本语言开发环境,它将在服务器端运行的脚本和在浏览器端执行的HTML语句放在一个ASP程序中执行,用户请求一个ASP页面后,该页面首先在相应的Web服务器端执行,然后将程序执行的输出变为HTML语句插入到ASP程序中相应的位置,再送回客户端。
ASP技术在基于Web的数据库访问上克服了CGI程序效率低、速度慢,及API兼容性差,开发难度大的缺点;ASP程序源代码容易产生、容易设计,与浏览器无关,遵循面向对象的设计思想,且与任何ActiveX脚本语言兼容;在ASP程序里可以通过ActiveX服务器组件来扩充服务器功能,还可以通过服务器端脚本产生或更改客户端脚本。ASP技术的上述特点使之更好地适应了动态的站点设计的要求。
ASP技术将Web技术与数据库技术相结合,开发动态的Web数据库应用,同时有效结合了HTML语言、脚本语言(如:VBScript、JavaScript等)以及ActiveX服务器组件(ActiveX Server Component),融合了分布式对象管理技术(DCOM、CORBA)。
ASP技术的优点在基于电信管理网(TMN)的综合网管系统TIMS 中得到了充分的展现。本项目的开发环境为:服务器端的操作系统采用Windows NT4.0,Web服务器为IIS4.0,数据库采用SQL Server 7.0,主要开发工具是Visual Basic、Visual Interdev等。
二、ASP数据库访问技术
ASP环境下对数据库的访问主要是通过ADO数据模型。ADO是一个ASP内置的ActiveX服务器组件,可用于访问Access、SQL Server数据库,及其它与ODBC(开放式数据库互联)兼容的数据库。
要执行ADO,服务器端须安装Windows NT Server和IIS(Internet Information Server),而客户端只要有IE4.0或Netscape较新版本的浏览器即可。
ADO有些类似于以前在VB中的DAO(Data Access Object,数据访问对象)和RDO(Remote Data Object,远程数据对象)。在ASP中,ADO可以看作是一个服务器组件。具体的操作步骤可以归纳为以下几步:
1.创建数据库源名(DSN)。
2.创建数据库链接(Connection):
创建链接对象mConn set Mconn=Server.createObject(“ADODB.CONNECTION”);
打开链接MConn.Open“dsn1”,“username”,“password”。
3.创建记录集对象:
创建RecordSet对象Set RecordSet=mConn.Execute(sqlStr)。
其中sqlstr通常是Select语句,因为其它的Insert语句,Delete语句返回不了记录集。
4.操作数据库:execute方法的参数是一个标准的SQL语句串,所以可以利用它方便地执行数据插入、修改、删除等操作。
5.关闭数据对象和链接:RecordSet.close。
ADO与其它数据库访问机制比较如图一所示:
在Visual Interdev中,可以灵活方便地使用DTC(design time control)。DTC包括标准用户界面元素,如文本框,标签,复选框,列表框,命令按纽,它们基于脚本对象模型产生运行时的脚本,更易于对控件进行数据绑定。当你编辑DTC和定义其属性的时候,Visual Interdev就自动的写出运行代码。因此页面上象文本框、按纽之类的控件可以自动绑定到数据库记录集的特定字段上。这些数据绑定控件已经包括建立数据连接,提取数据,修改数据库的脚本,不用或者只需编写很少的脚本。DTC运行时产生相应的具有方法、事件和属性的脚本对象。DTC可以被看作一种脚本编辑器。DTC控件使得脚本的编写更加容易。在使用DTC时,必须指定好目标脚本平台,以决定用服务器脚本还是客户端的脚本,客户端脚本是在浏览器端执行的。服务器端脚本是在服务器上由IIS运行的。
在ASP的集成开发环境中,ADO及DCOM的实现比较简单。下面将以用户登录时的身份验证、用户管理以及站点、网元管理为例,具体说明ADO技术、分布式组件对象模型DCOM技术在电信管理网综合网管系统中的应用。
首先建立一个“ADODB.CONNECTION”对象conn,连接到数据库TMNdb上。
* 用户身份验证:用户进入TMN网管系统之前必须输入帐号和口令,把帐号和口令作为参数执行一个SELECT语句,对表TabUser进行查询,结果返回RecordSet对象RsUser里。如果RsUser为空,则该用户为非法用户;反之,则将返回记录“user_level”(用户级别)字段的值赋给session(level),在用户浏览网站的整个过程中都保留。用户有不同的优先级,最高级别是0级(系统管理员),其次1级,最低的是2级。
* 用户管理:用户管理主要有用户确认、用户口令修改、用户添加、用户删除等功能。只有系统管理员才有权限(即要求Session(level)值为零)进行用户添加和用户删除。ASP脚本先检查Session(level)是否为零。用户添加只需在一张DTC控件(文本框,下拉列表框)构成的表单中填写帐号、密码、级别,再单击确定按纽(confirm),触发confirm_onclick事件,把表单提交给服务器,在用户表中添加一条记录即可。用户删除则需在数据源定义为所有用户帐号的下拉列表框中选择帐号,然后给出该用户的密码,单击确定按纽,即可删除用户数据表中的相应记录。用户口令修改则对权限没有太多的要求,只要知道口令就可以进行。
* 网元信息显示:运用DTC控件RecordSet和DBGrid可以轻松地显示各种情况下的数据报表。DTC控件RecordSet的DataBase Object属性可以设置为一个网元数据表,也可以设置为带参数的SQL查询命令,查询特定地区特定告警级别的网元。
三、ASP环境中采用的分布式对象管理技术
综合网管系统所处理的信息来源于各个管理子系统,由于各管理子系统具有分布、异构的特点,因此综合网管系统是一个大型的分布信息处理系统,互联平台内部必须具有分布对象管理、异种数据源访问、信息分析和处理、统一视图的生成等功能,这只有在分布计算环境中才能有效地实现,为此必须合理地引入分布对象管理技术。
ASP技术融合了分布式对象管理技术——DCOM和CORBA。国际对象管理组织OMG发布的公共对象请求代理结构(CORBA)和微软公司提出的分布式组件对象模型(DCOM)是目前较为成熟的分布式对象管理技术规范。两者都支持本地对远程的透明调用,调用对象服务时不必知道远程对象细节,两者都支持动态或静态两种调用方式,都支持多线程服务。CORBA实现的产品具有良好的跨平台特性,但不同厂商开发的产品可能采用了不同的实现方法。DCOM的实现具有高质量的开发工具,如微软的Visual C++、Visual Basic、Power Builder、Delphi等,有大量商品化了的ActiveX组件可供使用,但DCOM只能在有限的操作系统平台下使用,目前仅在Windows NT、Windows 95及Sun Solaris下被支持。因此DCOM在支持异种平台和框架开发方面有明显不足。
1.DCOM的实现
分布式组件对象模型(DCOM)是独立于具体编程语言的一种协议,它使得ActiveX组件之间能够在网络上直接通信。
在应用ASP开发基于Web的分布式计算应用时,ActiveX的代码部件可以用于直接扩展ASP的功能,适合扮演用户请求的“代理者”,ActiveX控件具有友好的用户界面,适合用于接收用户下达的管理要求。
图2给出了ActiveX组件在Web环境下应用的体系结构:
图2 Web环境下的ActiveX组件
以TMN_MAP地图控件为例说明ActiveX组件在TMN子系统互联中的应用:
(1)图形界面:
交换机、接入网局端、接入网远端、连路和中继群分别用长方形、圆形、方形和直线表示。告警色为红色。
(2)功能说明:
显示TMN的基本运行状况(以颜色或声音等),如交换机、SDH、接入网的运行状况;提供端到端的管理——输入两端点Id号,显示两端点间的路由信息;显示全网的运行状态;
显示单个设备的基本信息,并能提供一部分接口(主要是一部分事件接口)扩展功能,如左击进入下一级设备;右击弹出菜单,显示性能管理、配置管理、故障管理、基本信息等等。
(3)网元控件的主要属性和方法:
主要属性:Appearance、Position、Scale、FlashEnabled、BeepEnabled、StateChanged;
主要方法:SetPBXInfo(?,?,?)SetSDHInfo(?,?,?)SetANInfo(?,?,?)设置节点基本信息
GetInfo() 获取节点附加信息
ShowPopUpMenu() 显示弹出式菜单,在鼠标的右击事件中调用
(4)网元控件涉及到的数据库的主要表结构:
交换机基本信息表(TB_PBX) 站点基本信息表(TB_SST_INFO)
节点信息表(TB_A_NODE) (交换机)当前告警(TB_WARN)
(AN)当前告警记录表(TB_AN_CURALARM) (SDH)当前告警表(TB_SDH_ALARM)
(5)实现:
* 在内部生成Private Nodes Collection集合,由这个集合管理AN、SHD、PBX的生成、显示、保存相关的信息;
* 站点间连路(或中继群)的连接采用在站点控件间画直线来完成(根据站点控件的Position_X和Postion_Y属性);
* 坐标系的转化,把站点坐标转化为TMN_Map控件内部坐标:建立可以自定义的坐标系统;
* 通过Add_PBX_Node(Id ...)、Add_AN_Node(Id...)、Add_SDH_Node(Id...)及Get_AN_Node(Id...)等方法添加站点;
* 初始时,在本控件中加入每类型内控件一个,并把Index属性设置成0,Visual=False,在生成新的内控件时,调用如下方法:Load _Node(I) :I=I+1;
* 实现端到端的管理。
2.CORBA在TMN子系统互联中的应用
CORBA目前已经是一项比较成熟的分布式面向对象技术,以CORBA平台为基础构造TINA体系结构中分布式处理环境DPE的工作正在进行。可以预见,在不久的将来,CORBA将被广泛用于开放的电信市场环境下业务的快速构造及资源和业务的有效管理。
电信业务异质性强,种类多,经常处于动态变化之中,且许多业务需要互相配合,业务的管理更为复杂。CORBA体系结构所支持的对象模型能够满足业务层的管理需要。对象之间可以通过ORB相互调用对方提供的服务;有分布透明的支持,业务对象和组件还可以在网络内动态迁移。CORBA的ORB之间可以通过基于TCP/IP的IIOP协议通信,实现起来代价较低。CORBA采用IDL描述对象的对外接口,对被管理对象的访问和管理系统内部对象之间的交互可以一致看待,CORBA的动态调用接口DII还可以在运行时刻访问被管理系统中新的对象类型。因此,NE内部采用CORBA技术是可选方案之一。目前的TMN网管平台缺乏特定TMN管理组件和支持分布式应用的基础构件。采用IDL定义对外接口的组件通过ORB可以很好地支持访问和位置透明。因此,以CORBA的ORB为核心,结合目前分布式对象体系结构和电信网络和业务管理方面的相关技术,可以构造一个更加分布化、重用性强、可靠性高、可伸缩性好并且适用于整个TMN分层体系结构的新一代分布式TMN管理平台。
四、结论
ASP技术很好地适应了动态站点设计和基于Web的数据库访问的要求。ASP技术主要采用ADO机制访问数据库,并融合了脚本语言以及分布式对象管理技术。本文着重就ASP技术在TINMS(基于TMN的综合网管系统)数据库访问和分布式组件上的应用作了分析和介绍。ASP技术将在更多的领域发挥优势。