ASP是ActiveServerPages(动态服务器主页)的缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。ASP可以胜任基于微软Web服务器的各种动态数据发布。从技术层面看,ASP脚本是在站点服务器端执行的,用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主页。在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制ActiveX服务器组件来扩充功能。从应用的层面看,ASP可处理由浏览器传送到站点服务器的表单输入;访问和编辑服务器端的数据库表;读写站点服务器的文件;提供广告轮播器、取得浏览器信息、URL表管理等内置功能;由cookies读写用户端的硬盘文件,以记录用户的数据;可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。基于ASP的上述特征,文章分析了现代仓储物流管理系统设计和开发。
1仓储物流管理系统的总体设计分析系统的总体目标是作为物流管理系统整体规划的重要组成部分进行分析和设计,充分利用计算机网络技术、舆技术、数据库技术等,实现基于以Internet查询平台,以Web页面的形式提供客户进行货物库存及各类报表的动态查询以及提供在线平单功能的网上系统,通过集中式管理和分级授权安全体系,保证系统的正常运行,随时为管理者和客户提供准确、可靠的统计信息,同时力求兼顾系统的通用性、应用的广泛性、稳定性和可移植。具体的分析和设计过程就遵循以下基本原则:(1)可靠性;(2)安全性;(3)容错性;(4)适应性;(5)易操作性。
1.1功能模块划分仓储物流信息系统功能是向仓储公司客户提供货物库存及各类报表的动态查询。根据需求,该系统的功能模块可以划分为用户登录模块,通过客户管理模块(包括入库信息查询模块,出库信息查询模块、库存信息查询模块、库存汇总查询模块、客户信息修改模块);银行客户管理模块(包括签约单位信息查询模块以及银行信息修改模块)。系统的功能结构如所示:1.1流程分析用户进入登陆界面,选择货主类别、填写用户名、密码后点击确认,若用户名和密码、以及用户的Mac地址正确则进行系统主界面。若用户为通用用户类型,则进入通用客户查询的页面,显示登录的客户单位的名称、系统时间、登录时间。选择查询类别(包括入库单、出库单、零卡、转让入库单、转让出库单、库存货物明细表、库存货物汇总表、货物变动明细表、货物变动汇总表、到货情况的查询),选择查询的起止时间、选择显示表的每页的记录数,就出现符合查询条件的记录表。可以输入查询的关键字或者选择排序方式进一步的查询,直到出现符合客户要求的查询记录为止。若用户为银行类型用户,则进行银行客户查询页面,显示登录的银行单位的名称、系统时间、登录时间、以及修改银行签约的单位,选择需要查询的客户单位,进入到客户查询页面,通过选择查询类别(包括入库单、出库单、零卡、转让入库单、转让出库单、库存货物明细表、库存货物汇总表、货物变动明细表、货物变动汇总表、到货情况的查询),选择查询的起止时间、选择显示表的每页的记录数,然后点击查询,就出现符合查询条件的记录表。可以输入查询的关键字或者选择排序方式进一步查询,直到出现符合客户要求的查询记录为止。系统的流程图。
1.3系统的体系结构系统采用B/S体系结构,B/S模式应用系统由浏览器和服务器组成。数据和应用程序都放在服务器上,浏览器功能可以通过下载服务器上的应用程序得到动态扩展,服务器具有多层结构,B/S系统处理的数据类型可以动态扩展。用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件,服务器将担负更多的工作,对数据库的访问和应用程序的执行在服务器上完成。浏览器发出请求,而其他如数据请求、加工、结果返回以及动态网页生成等工作全部由WebServer完成。实际上B/S体系结构是把二层Client/Server结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如所示。
采用这种结构优势在于:(1)具有较低开发成本和维护成本。B/S用户的界面的应用只需在客户端装有通用浏览器即可,维护和升级工作绝大部分都在服务器端进行,不需或只需少部分在客户端上改动。
(2)可实现跨平台操作。在基于IIS结构的系统中,各种平台上的用户可通过浏览器访问相应的信息。
(3)减少数据库并发用户。Web服务器采用的HTTP协议是一种无连接的协议,浏览只有在请求时才和Web服务连接,取到结果后马上结束此连接。采取这种无连接模式,可同时为几百、几万甚至更大的并发请求服务,所以这种结构可通过共享数据库连接的方式,明显地减少数据库并发连接数。
(4)减少网络开销,若将二层C/S结构移到一个复杂应用环境中,客户机与数据库服务器往往不在同一比较高速的网络上,一次数据库操作需要在客户机与服务器之间交互若干次。在B/S结构中Web服务器与客房机只需一次交互。
(5)消除数据库瓶颈。由于客户机与服务器通常不在同一局域网上,而应用服务器与数据库服务器往往在高速局域网,虽然数据库的并行系统不能有很大的并发度,但应用服务器却无此限制,当应用服务器成为瓶颈时,可以通过增加应用服务器数目,由多台应用服务器同时为终端客户服务,实现平衡负载,同时提高系统的整体可靠性。当数据库瓶颈不可逾越时,可以由应用服务器上的应用来实现用分类过的数据访问不同的数据库,由多个数据库实现应用级的一个逻辑数据库,这可在一定程度上消除数据库服务的瓶颈。
2ASP技术的实现过程ASP利用ActiveDataObject(ADO)对象组件并借助于VBscript等脚本语言编写Server端的ASP脚本,用户可与任何兼容ODBC标准的数据库进行高性能的互连,从而创建出从一个DBMS中提取数据并将其以标准HTML页面方式显示给Web客户的应用程序。ADO运行于服务器端,通过一些对象来管理从数据库的连接、操作命令的传送到存放结果的记录集,通过执行SQL命令可以在浏览器上动态地查询数据库的记录。
本系统采用DreamweaverMX2004开发,客户端代码采用JavaScript语言编写,服务器端代码采用VBScript语言编写。后台采用SQL2000的数据库系统。连接SQL2000后台用ADO来连接。实现ASP的动态数据库操作主要有以下几步:a.设置数据库源名(DSN)。在Windows9X或Windows2000系统中,运行“控制面板”//“ODBC数据源管理器”,按提示添加“系统DSN”。
b.创建数据库连接(Connection)。SetConn=Server.Server.CreateObject(“ADODB.Connection”)c.调用Open方法打开数据库。如:Conn.Open“数据源名称”。
d.创建数据对象(数据集)。如:Setrs=Conn.Execute(“SQL语句”)e.对数据库进行各种操作。
f.关闭数据库对象和连接。
3仓储物流管理系统实现的关键技术3.1ADO访问Web数据库方法ASP的主要支撑技术为ActiveX服务器组件。ASP提供5个服务器组件,ADO作为ASP核心技术之一,它是微软提供的使ASP具有访问数据库功能的构件。ADO结合了OLEDB易于使用的特性以及RDO和DAO模型中的*好特性,并将它们重新组织在一个对象模型中。本系统采用ADO组件访问数据库,其优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO继承了DAO/RDO,功能上与RDO更相似,两者之间存在一定的映射关系。ADO扩展了DAO和RDO所使用的对象模型,包含较少的对象、更多的属性、方法(和参数)和事件模型。ADO支持建立基于COM的桌面和客户/服务器模式与基于Web的应用程序,具有远程数据服务RDS的特性,通过RDS能够在一次往返中将服务器端的数据传送到客户端的应用程序或Web页面中,并在客房端对数据进行处理后,立即更新服务器端的数据。
ADO对象模型主要由3个*核心的对象:Connection,command与Recordset以及4个集合(Collection):Error,Parameters,Fields和Properties所组成。这3个核心对象间相互牵连,依次完成数据库连接、数据提取与数据处理等数据访问过程。
(1)数据连接(connection):Connection建立一个数据交换环境,应用程序通过Connection访问数据。应用程序直接或通过诸如IIS这样的系统间接访问数据源。Connection对象用于规定特定的数据提供者和附加参数。由Connection发生的一系列数据存取操作形成一个事务处理过程,ADO确保事务过程成功操作的结果传给数据源,如果其中某个操作失败或用户取消事务过程,数据源中的数据就会维持原先的状态。对象模型并不明确地具体表示一个事务过程,而通过一套Connection对象方法实现。
(2)命令(Command):Command通过已建立的Connection发布。典型的Command有增加、删除和更新、恢复表中的记录等。
(3)记录集(Recordset):Recordset存储查询命令返回的结果,是检查和修改记录的主要手段,在Recordset对象中可以检查记录,在记录中浏览,浏览记录的次序,增加修改或删除记录、更新记录已变化的数据源等。
(4)错误(Error):任何涉及ADO对象的操作都会生成一个或多个提供者错误,一个或多个Error对象被放到Connection对象的错误集合中,新的Error将替换原有的Error对象。
(5)属性(Property):ADO有内置、动态2种属性,前者是ADO固有的,始终生效;后者是数据提供者添加到ADO对象的Property集合中,仅使用该数据的使用者时才有效。
(6)字段(Field):记录集的每条记录由一个或多个安段组成,每个安段包括自己的名称、类型和数据值,可以通过修改记录集中的字段对象值,*终传递到数据源中。
利用ADO对象完成对数据库操作的具体步骤:(1)创建数据库源名(DSN);(2)创建数据库连接(Connection);(3)创建数据对象;(4)操作数据库;(5)关闭数据对象和连接。
3.2ADO访问数据库的核心源代码为了便于在每个。asp文件使用同样的方式连接数据库,开发了一个系统ADO访问Web数据库的核心代码,该段代码用于包含在每个。asp文件中,作用主要是创建数据库源名(DNS),并且创建数据库连接(Connection)。
<%runctionopendb(dbpath,sessionname,dbsort)dimconn ifnotisobject(session(sessionname))then dbname=requestcookies(“Dbname”)Setconn=Server.CreateObject(“ADODB.Connection”)……
3.3使用ASP和SQL技术实现动态查询系统基于Internet查询平台,以Web页面的形式提供客户进行货物库存及各类报表的动态查询。需要对各种单据、报表、货物情况进行多条件查询,反复多次查询,数据量大且繁多,如何能够使用户快速的查询所需要的信息和过滤掉冗余信息就显得非常重要。能否实现对数据库的快速动态查询是该系统是否成功的一个重要的标准。
系统动态查询主要依靠2个途径,一是通过对关键字的模糊查询,显示含有该关键字信息;二是通过对信息显示列表按照某个属性列进行排序。通过这2个方式结合分页显示,动态选择每页显示行数等辅助方式,就可以基本实现快速的查询目的。经过考虑,使用ASP和SQL方法实现系统的动态查询。
采用分割SQL查询条件的方法,按照客户选择组合SQL语句来对数据库进行查询,通过ASP的Recordset内置对象来返回合适的信息记录,从而实现系统的多条件动态查询。
3.4地址绑定由于系统涉及客户重要货物的信息,所以对系统的安全管理要求比较严格。一般模式是网络安全管理系统对所有用户和所有网上的业务系统进行统一管理,为网上的每一个用户进行授权,对入网的每一项服务项目,进行分发授权。但是只对用户进行授权,若用户密码失窃,安全性将无法保证。本系统采用将MAC地址与IP地址的绑定作为一种身份验证的手段。
3.4.1MAC地址与IP地址。线开的ICP/IP网络是一个4层协议族结构,从下往上依次为链路层、网络层、传输层和应用层。以太网协议是链路层协议,使用的地址是MAC地址。在以太网上传输的每个报文都含有发送该报文的网卡的MAC地址。可根据以太网报文头中的源MAC地址和目的MAC来识别报文的发送端和接收端。IP协议应用于网络层,使用IP协议进行通讯,每个IP报文头中必须含有源IP和目的IP地址,用以标志该IP报文的发送端和接收端。IP地址的修改非常容易,而MAC地址存储在网卡的E2PEOM中,且是**确定的。将内部网络的IP地址与MAC地址绑定。盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败。而且可以根据MAC地址查出该使用网卡,进而查出非法盗用者。
3.4.2IP地址获得方法。要绑定MAC地址与IP地址并用身份验证管理,获得MAC地址和IP地址是*重要的一步。过程计算机的IP地址可以在Web服务器端直接利用ASP或JSP等语句获得,在ASP里获得远程计算机IP地址的语句:strIP=Request.ServerVariales(“REMOTE_ADDR”)3.4.3MAC地址的获得方法。获取MAC地址的获得则相对要复杂许多。一般可以有3种方法获得MAC地址。
(1)通过ARP地址解析协议获得。ARP是将IP地址与MAC地址一一对应的协议。拥有一张ARP表,用于记录IP地址与MAC地址一一对应的关系。通过网关获取IP地址和ARP协议即可得到需要的MAC地址。但是ARP协议不是可路由的协议,故无法获得不同网段的MAC地址。
(2)通过SNMP简单网络管理协议获得。SNMP简单网络管理协议提供监视和控制网络设备、管理和配置网络、以及网络信息的统计收集、性能和安全的一种方法。几乎所有的TCP/IP协议都支持SNMP协议。路由器要准确地投递网络数据包,必须拥有网络上*完整ARP地址识别表,该表存放于路由器上的SNMPMIB管理信息库中,可以从这里获取MAC地址。此法可获得不同网段的MAC地址,但如果路由器不带或不支持远程管理模式,也得不到想要的MAC地址。
(3)通过NBT协议(NetbiosoverTCP/IP)。简单来说NBT就是一个转换接口,实现Netbios地址到TCP/IP地址的转换。通过NBT可使不可路由的Netbios协议封装到TCP/IP协议之中,以TCP/IP协议为载体访问本子网外的计算机。这种方法通过NBT协议获得MAC地址可直接调用Windows2000以上的系统自带的程序Netstat实现。
4身份验证的过程当一个用户注册时,必须指明用户名、密码等并选择是否绑定主机IP地址和MAC地址。用户提交时,服务器获得这些资料的同时获得用户主机的IP地址和MAC地址,并将这些数据插入数据库保存。管理员查看用户提交的相关数据,核实以后给用户发放相关的权限,用户得到权限以后就可以进行相关的操作了。在这里绑定主机IP地址和MAC地址好象没有必要,可是当非法的用户窃取了合法用户的用户名和密码以后,想在其他的主机上登录系统进行相关的操作是会被禁止的,因为你的IP地址和MAC地址不合法,即你使用的计算机是不合法的。