Web连接

2024-10-01

Web连接(共3篇)

Web连接 篇1

摘要:数据库连接池是一个连接数据库对象的缓冲池,其技术已得到了广泛的应用。通过对数据库传统的连接方式和基于Web的数据库连接池技术进行对比,提出了数据库连接池的概念及管理,同时也给出了一个数据库连接池完成的实例。

关键词:数据库,连接池,设计

0 引言

当前,数据库的应用已成为Web系统的主要特征之一,一般情况下,在使用Java开发基于数据库的Web系统时,传统的操作模式是按照以下步骤进行的:(1)在主程序中建立数据库连接;(2)进行SQL操作,在数据库中进行查询、修改、删除等操作;(3)断开数据库连接;使用这种操作模式进行开发,存在很多问题,主要表现在以下几个方面:

(1)每一次Web请求建立一次数据库连接,在完成操作后都要关闭连接。虽然,进行一次或者几次数据库的连接,系统开销不会太大,对用户来讲,系统运行的速度也不会受到太大影响。但是,对于Web系统程序来讲,在很短的时间内,其操作请求数绝不是几次或是几十次,而是上百次,因次,系统开销会非常大。因为,世界上的任何一个角落都可以连接到互联网,全球只要几十万分之一的人同时操作一个网页,系统开销就会很大,这种情况下,对数据库频繁的关闭连接会影响到Web系统的运行速度。

(2)对于传统的操作模式来讲,必须确保每一个连接都能正确关闭,在操作过程中若出现程序异常,就会导致某些连接不能关闭,最终用户不得不重启数据库。

针对这些问题,我们可以采用数据库连接池技术予以解决。我们先建立数据库连接池,当程序中需要建立数据库连接时,我们不用新建一个数据库连接,只要从数据库连接池中取一个空闲连接。使用完毕后,将连接放回数据库连接池中,由连接池自身来管理连接的建立和断开。另外,我们还可以通过连接池的参数设置来控制连接池中的连接数以及连接的最大使用次数等等。

1 连接池的原理

1.1 数据库连接池简介

连接池是一个连接数据库对象的缓冲池,基本思路是在内存对象中先建立一些连接,当程序需要建立连接时,只需从内存对象中取出一个连接即可,使用完毕后,再将其放回内存。在实际的数据库运用中,同一个数据库可能存在很多用户反复多次进行连接、断开,这样势必会造成浪费,消耗调很多数据库的资源。但在数据库连接池的应用中,连接池会自动保存用户使用过的一些连接,当用户想再次使用连接时,只用在连接上调用Open,看连接池中是否有可用的连接,若有,则程序会将该连接返回给用户,不用打开新连接,这样便节约了连接资源,提高了数据库的使用效率。同样,当用户在连接上调用Close时,已用过的连接不会真正关闭,只是会返回到连接池中,以方便用户下一次运用。

1.2 连接池的管理

连接池的建立、连接池的使用管理、连接池的关闭三部分共同组成了连接池的管理。系统通过这三部分,使得连接池成为连接对象的缓冲池,也就是连接对象的集合体,它控制着连接池中连接对象的获取、释放以及连接对象的数目。

1.2.1 连接池的建立

在系统初始化时就建立一个已分配好连接数目的静态连接池,这些连接都是应用程序可以分配的自由连接,之后使用的连接都是从这个静态连接池中获取的。这样就减少了因新的连接和断开所产生的开销。

1.2.2 连接池的使用管理

连接池的管理机制核心就是连接池的使用管理。用户在申请连接时不用向数据库申请,只需向连接池申请即可。同样,当用户释放连接时,也是向连接池进行释放,而不用关闭数据库。连接池设有空闲连接和已分配连接,空闲连接里存放没有使用的连接,已分配连接里存放正在使用的连接。当用户申请数据库连接时:

(1)若有空闲连接,则将空闲连接分配给该用户,并注册到已分配连接中。连接池中的连接数会控制在一定的空闲连接数内,当用户进行申请时,便可从连接池中获取空闲的连接对象。

(2)因连接池限制了最大连接数,当已分配的连接数达到了最大数,而用户又有新的连接申请,这时,客户就需要等待,等待其他的用户释放连接,再将其分配给该用户。

1.2.3 连接池的关闭

当用户退出应用程序时,要关闭连接池,将在建立连接池时申请的连接对象放回到数据库连接池中,以便其他用户申请连接时,连接池将其分配给其他用户。

2 基于Web数据库连接池的设计

我们以一个名为Connection Pool的连接池为例。在建立连接池之前,我们先设置好数据库的基本属性,如password、URL等。基于此,我们先创设了一个Property Parser类,该类的主要用途是从Properties文件中读取有关数据库的基本属性。因为数据库的基本属性全部或者部分都装在组件里,必须先调取已设置好基本属性的组件,然而再将其修改。我们之所以这样操作,是因为我们写的这个连接池不用关心其是什么样的数据库,直接用Property Parser类就能解析Properties文件,并将在里面调取需要的内容就可以了。

我们给出在Property Parser类中的一个构造函数代码,该函数能解析Properties文件,并读取相关的内容。部分代码如下:

在设置好基本属性后,就可以建立数据库连接池了,在建立连接池时要完成以下几个接口:

//从数据库连接池中获取一个可用的空闲连接,如果没有可用连接,并且正在使用的连接数小于连接池的最大连接数,就可以创新新的连接。

至此,数据库连接池已完成了大部分的操作,接着就需要建立一个能够管理连接池的管理容器类,这个类需要完成的接口大致有以下几个方面:

3 结束语

本文介绍了数据库连接池的基本原理,但建立的数据库连接池只是完成了连接池的基本功能,所介绍的流程也仅是提供一些基本接口,对于一些企业的大型应用,应设计一个功能更加强大的数据库连接池。在数据库应用系统开发中,数据库连接池技术可以提高连接的重复使用,减少系统开销,提高系统的整体性能。目前,数据库连接池技术已经得到了广泛应用,但还是存在很多问题,例如,用户不能根据实际需要调整连接池的容量,通常做法是,在系统资源比较丰富时,用户便放大连接池容量,而在系统资源比较紧张时,就将连接池容量进行收缩,删除使用较少或未被使用过的连接。因此,我们必须不断改善数据库连接池技术,进一步提高连接池的性能,使其能够适应用户的需要。

参考文献

[1]刘菲游,达章.基于Java的数据库连接池的设计与优化[J].微型电脑应用,2008(10).

[2]李素军,胡建华,王清心.基于web数据库的连接池的设计与实现[J].电脑应用技术,2008(1).

Web应用程序中的数据库连接 篇2

1、ODBC

开放性数据库连接(Open Database Connectivity)是Microsoft为应用程序开发人员提供的一种策略。它采用单一的API来辐射各种不同的数据库引擎。ODBC旨在给应用程序开发人员提供详细的功能,而不管它们访问的数据格式是什么,比如Excel或者Access。实际上,ODBC API只能提供编程接口,而不能直接驱动数据库。数据库的驱动是通过专门的数据库驱动程序(DLL文件)完成的。而各种不同的数据库驱动程序的具体定位工作,则由一个被称作ODBC运行时管理器的模块负责。它们之间的层次关系如图1。

对于应用程序来说,它们只需要直接调用ODBC API即可,至于数据来源则由Windows系统下的"数据源名(DSN)"实现。如果没有设置DSN,也可在Web应用程序中创建没有ODBC数据源的连接。通过设置DSN,应用程序就可以访问不同的数据类型。

2、ADO

ActiveX是使软件组件能够在网络环境中交互作用并且与创建组件的语言无关的一套技术。实现ActiveX的基础是"组件对象模型"(COM)。微软公司在ActiveX的基础上推出了ADO (Active Data Object),即ActiveX数据对象。ADO是重要的应用程序接口,它是一组通过HTTP和Internet来实现客户机到服务器数据访问的对象。ADO对象由几个分别独立的对象组成,其中,最基本的有3个对象,Connection对象、Command对象和Recordset对象。Connection对象主要用于建立客户端到数据库服务器之间的管道,Command对象主要用于配置与执行SQL语句,而Recordset对象主要用于保存返回的记录集。利用这些对象提供的属性和方法,就可以完成所有的数据库访问操作。ADO是基于Windows的Web应用程序中应用最广泛的数据库访问技术。

3、OLE DB

OLE DB定义了一组简化各种数据库管理系统服务的COM接口,这些接口启动并完成这些服务的软件组件的建立工作。OLE DB对待本地和远程的,关系的和非关系数据没有任何区别。OLE DB是低层接口,它能够处理不同类型的数据。图2所示描述了OLE DB在数据访问程序中的位置。从图中可以看出,ADO可以通过OLE DB访问ODBC数据源。

从某种角度上讲,OLE DB可以看成是与ODBC等同的,那就是通过提供通用的API实现数据访问,但OLE DB与ODBC之间的区别也是明显的,归纳起来,主要由以下几点:

1. OLE DB是基于COM的方法,而ODBC是基于函数的技术,由独立的驱动管理器管理。

2.OLE DB有一个通用结构,包括了关系型数据和非关系型数据,而ODBC只设计成使用关系型数据。

3.OLE DB能够支持特定的提供者理解的任何查询语言,而ODBC只限于通常的SQL。

下面以asp连接Access数据库为例,用到的数据库设ad-

dress.mdb。

1、创建没有ODBC数据源的连接

利用带Mappath的连接方法有一个很大的好处,程序移植到别的服务器上后,马上就可以使用,无需修改程序中的数据库物理路径。

2、创建有ODBC数据源的连接

首先配置ODBC数据源:打开Windows的"控制面板",双击"ODBC数据源"图标,然后选择"系统DSN"属性页,单击"添加"后在弹出的对话框中选择"Microsoft Access Driver (*mdb) ",这时弹出一个"ODBC Microsoft Access安装"的对话框,输入数据源名addr, 数据库选取address.mdb后,单出"确定"即可。

这种方法不管数据库放在哪里,只要设置一下数据源,程序不要改。

3、创建基于OLE DB的连接

下面再以asp连接SQL数据库为例,用到的数据库设sqltest,数据库登录帐号teacherd,登录密码12345。

1、创建没有ODBC数据源的连接

2、创建有ODBC数据源的连接

首先配置ODBC数据源名称设test,配置步骤类似access数据源,只是在"系统DSN"属性页,单击"添加"后在弹出的对话框中选择"SQL Server",详细步聚略。

3、创建基于OLE DB的连接

以上是连接Access和SQL数据库的连接方法,在实际的Web应用程序开发中可以选择适当的连接方法,在程序调试过程中也许会碰到问题,大部分是由于书写不规范,比如中间多了空格,或者路径不对,等等。

在Web应用程序设计中,除使用以上三种数据库连接外,还有其它一些常用的数据库应用程序接口,由于本人水平有限,到目前还未能涉及JDBC之类的数据驱动。此文,旨在浅层论述Web应用程序中数据库连接的基本原理与方法。

摘要:随着网络的快速发展, 越来越多的应用程序趋向网络化, Web应用程序中的数据库连接也各不相同, 此文论述了Web应用程序中的常用的不同数据库连接及具体方法。

关键词:应用程序,数据库,接口

参考文献

[1].侯志荣.Web应用程序开发--算法分析与应用.人民邮电出版社.2003年

Web连接 篇3

关键词:Web-Sensor网关,Zigbee/IEEE802.15.4协议,OPNET

随着无线通信技术的发展, Zigbee传感器网络也引起了广泛的关注, 进而开始有人研究应用于因特网与传感器之间的网关。最近, 有资料文献提到Internet-Zigbee网关, 其基本功能包括分布查询, 数据汇集以及信息转化[1,2]。从这些文献中可以看出, 由于因特网具有访问方便和灵活性高的特点, 所以基于网页的数据查询和管理技术被广泛地运用于Zigbee传感器网络中[3]。

为了解决因特网和Zigbee传感器网络之间数据有效传输的问题, 本文提出了一种新型的Web-Sensor网关结构, 它能够实现两种不同网络协议间的翻译功能。我们把CGI程序写入网关中的嵌入式web服务器, 这样用户就可以通过访问网关中的web服务器, 在浏览器中观察Zigbee传感器的数据。

本文接下来的叙述结构如下:第二节阐述了一些与本文主题相关的技术资料。第三节讨论了本文所提出的Web-Sensor网关结构。文章的第四节描述的是使用仿真软件OPNET模拟不同网络以及数据通信过程, 用来验证本文提出的网关设计功能。最后在第五节给出研究结论。

1 相关研究

在这一节, 我们将讨论三种已使用在因特网和传感器网络之间等同于网关功能的方法, 其中后两种使用了协议叠加的方式, 在相关资料文献里可以查看详细介绍。

1.1 配置IP法

这是基于最佳网关的因特网接入技术, 它使用了一种反应式网关探索IP地址的方法, 在每一个传感器中配置全球IP路由地址, 这样网关就可以识别在因特网主机和传感器之间传输的数据, 但是需要指出的是, 给所有的传感器配置IP地址是不可行的, 无线传感器网络可以由成千上万个传感器组成, 但传感器的计算和数据处理能力有限, 此外配置大量的IP地址付出的价格比较昂贵[4]。

1.2 因特网植入传感网

这种技术是将一个极小的IP TCP/IP协议栈植入传感器中, 从而使得用户可以通过因特网直接访问每一个传感器并且获取数据。同时, 各个传感器之间仍然遵循传感网的通信协议。由于传感网中传感器数量可能很大, 所以植入技术仍然需要花费很大的开销[5]。

1.3 传感网植入因特网

在这种方法中, 因特网中的每一个IP主机都被看做是一个虚拟的传感器, 主机之间除了遵循因特网的传输协议, 也可以执行传感网传输协议。但是这种将传感器协议栈附加到IP主机中的技术相对复杂和困难, 可行性并不高[6]。

2 Web-Sensor网关

2.1 连接异构网络

图1是一个通过Web-Sensor网关连接因特网和Zigbee传感网的说明图。首先, 用户远程连接已嵌入Web-Sensor网关中的web服务器, 然后通过因特网把请求发送至该服务器, Web-Sensor网关传递请求至Zigbee传感网, 相应的Zigbee传感器响应请求之后把数据通过Web-Sensor网关又一次传回用户, 用户可以在浏览器中看到所需信息。数据在用户和网关之间传输需要遵循TCP/IP协议, 而在网关和Zigbee传感器之间又必须遵循Zigbee/IEEE802.15.4协议。所以在该异构网络中实现数据有效识别和传输, 要求我们提出的Web-Sensor网关具备“协议翻译”功能。

2.2 Web-Sensor网关结构

Web-Sensor网关的一项重要任务就是在因特网和Zigbee传感网之间建立有效的接口以及能够互通信息的通道。

网关由三个部分组成:TCP/IP协议栈 (植入嵌入式web服务器中) , 用以实现因特网用户和网关之间的通信。Zigbee/802.15.4协议栈, 它可以看作是Zigbee Access Point (AP) 程序, 实现网关和Zigbee传感器之间的通信。网关协议转化层, 其主要功能是映射和翻译在因特网和传感网之间传输的信息, 图2所示为Web-Sensor网关结构图。从图中可以看出, 协议转化层被“捆绑”在TCP/IP协议栈和Zigbee/802.15.4协议栈的最顶层, 从而把嵌入式web服务器应用层和Zigbee AP应用层连接起来。TCP/IP协议栈为嵌入在网关中的web服务器提供了一系列通信层。此服务器功能几乎等同于传统web服务器, 例如, 通过HTTP协议提供浏览器功能等此类通信应用给用户, 只要用户能够访问因特网, 就能在动态网页中远程控制Zigbee传感器。在网络接口层中我们利用以太网协议作为它的数据链路层。

3 仿真模型结构

3.1 OPNET中的节点层次

OPNET是MIL3公司开发的网络仿真软件产品, 是一款优秀的图形化, 支持面向对象建模的大型网络仿真软件。其主要特性是网络模型设计层次化, 并允许层次模型嵌套, 可以通过嵌套来模拟拓扑结构复杂的网络。OPNET建模过程分为三个层次:网络层次 (network) 、节点层次 (node) 、进程层次 (process) 。

我们使用OPNET模拟Web-Sensor网关以及整个异构网体系。图3所示的是节点层次的网络结构图。网关的协议转化层模块把嵌入式web服务器的应用层和Zigbee AP的应用层连接起来, 换句话说, Web-Sensor网关为有线网和无线网提供了一个接口, ipv4数据包和Zigbee数据包通过网关可以实现双向转化。

从图3中我们可以看到, 模块间用红色、蓝色、黄色的箭头线相连, 红线和蓝线是包流线, 它承载了模块间数据包的传输和流向。黄线为统计线, 可实现对模块待定参数变化的监视, 其中带双向箭头的黄线代表对应的发射端-接收端的逻辑关联, 这对发射端-接收端被指定只能同时连接在一个模块上。

3.2 OPNET中的进程层次

作为三层建模机制的最底层, 进程模型是实现各种算法的载体, 因此它是建模仿真过程中最重要的部分, 同时也是最难实现的部分。进程模型主要用来刻画节点模型里的处理机以及队列模型的行为, 可以模拟大多数软件或者硬件系统, 包括通信协议、算法、排队策略、共享资源、特殊的业务源等等。进程模型主要由状态和转移线 (转移条件) 构成。状态就是进程在仿真过程中所处的众多模式之一, 状态之间是互斥和互补的, 进程在某一时刻只能处在一个状态中, 而所有的状态则构成了进程状态空间的全集。状态和转换条件中使用C/C++语言对任何进程进行模拟。处理机加上标准的C/C++以及400多个库函数构成了该仿真软件的核心, 这个集合也被称为“Proto C语言”。

网关中协议“翻译”过程将在进程模型中得到进一步详细的描述, 状态机处理图如图4所示。在Web-Sensor网关的协议转化层中当协议转化进入到进程模型时, 转化进程和判断进程都将在状态init中初始化并且注册。同时, 需要指明三项定义, 分别是:1.转化方向, 2.“指向判断”函数, 3.“指向转化”函数。

完成初始化之后, 进程进入到test状态。在这个状态机中自动判定一个来自应用层的信号, 当信号来自http应用层, 那么协议转化方向是从用户到Zigbee传感器;当信号来自Zigbee/802.15.4协议栈的应用层, 协议转化方向则是从Zigbee传感器到因特网用户。

这个信号是一个判断数据类型的域值, Test状态机包括一个论据模块和两条状态指向路径。其中一条朝上指向的路径代表的转移条件是packet_is_ipv4=1和packet_is_zigbee=0;另一条向下指向的路径代表的转移条件是packet_is_zigbee=1和packet_is_ipv4=0。

当状态选择朝上指向的路径时, 进程就进入了extract_ip状态机和encap_to_zb状态机, 在这两个状态机中完成的工作分别是提取来自因特网用户的请求数据和封装成Zigbee传感器可识别的数据格式。另一方面, 当状态选择向下指向的路径时, 紧接着extract_zb状态机的是encap_to_ip状态机, 它们完成的工作是把Zigbee传感器的有效数据提取并封装成IP应用格式, 从而形成可以被因特网用户读取的数据信息。最后, 进程进入到idel状态机, 这就意味着进程的状态处理进入了尾声。

当来自因特网用户的请求数据被转化成传感器可识别的信息时, 进程将停留在idle状态机中等待一个响应, 这个响应是来自传感器对用户的反馈, 到此就完成了进程层次的整个建模过程。

4 结语

此文主要描述了Web-Sensor网关的结构, 它作为连接因特网和Zigbee传感网的媒介, 发挥了在不同协议下实现数据相互转化的重要作用。具体的说, 我们给出了Web-Sensor网关协议结构以及网关的OPNET仿真模型等等。此外, 我们还通过软件OPNET仿真提出的异构网络和Web-Sensor网关, 并且证明其实现的可行性, 最终使得因特网中的用户可以在浏览器中成功地控制和了解传感器的实时数据。

总之, 有许多无线传感器网络中的重要应用都要求能够与因特网整合, 这也是异构网发展的一个重要方面。希望在不久的将来, 通过Web Sensor网关技术连接因特网和Zigbee传感器网络, 可以在商业楼宇自动化、智能家居、医疗卫生以及通信应用等社会各方面发挥积极的作用并做出更大的贡献。参考文献:

参考文献

[1]A.Tanenbaum.Computer Networks[M]. (Fourth Edition) .USA:Pearson Education, Inc, 2002:pp.326-328

[2]K.Hwang.N.Park.and D.Eom.A design and Implementation of Wireless Sensor Gateway for Efficient Querying and Managing through World Wide Web[J].IEEE Trans.on Consumer Electronics, 2003, 49 (4) :pp.1090-1097

[3]Lee, L.T.Chui, S.T.Tsang, K.F.A System Design for Residential Services Delivery Over Internet[IEEE Xplore].Las Vegas, USA:Proc.of ICCE 2007, 2007[2013-4-5].http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4146009

[4]Zhang Jin.Liu Da-xin.Xu Yue-zhu, etal.Dissymmetrical Wireless Sensor Network Internet Access Technology Based on Optimum Gateway[C]//ICCSIT.2008.Washington DC, USA, Computer Science and Information Technology, 2008:pp.755-759

[5]Adam Dunkels.Juan Alonso.Thiemo Voigt, etal.Connecting wireless sensornets with TCP/IP networks[C]//Peter L.WWIC2004.Frankfurt, Germany, Lecture Notes in Computer Science, 2004:pp.143-152

【Web连接】推荐阅读:

电气连接05-15

液压连接05-28

自动连接05-29

焊接连接06-08

测试连接06-10

新型连接06-28

问题连接07-30

通信连接08-11

连接结构08-14

连接保护09-01

上一篇:班主任工作心语下一篇:费米系统