CN1265309C - 一种通过协议代理方式访问数据库的方法 - Google Patents
一种通过协议代理方式访问数据库的方法 Download PDFInfo
- Publication number
- CN1265309C CN1265309C CN 02137696 CN02137696A CN1265309C CN 1265309 C CN1265309 C CN 1265309C CN 02137696 CN02137696 CN 02137696 CN 02137696 A CN02137696 A CN 02137696A CN 1265309 C CN1265309 C CN 1265309C
- Authority
- CN
- China
- Prior art keywords
- database
- agency
- client computer
- database systems
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Abstract
本发明提供一种通过协议代理方式访问数据库的方法,在该方法中,客户端计算机对数据库系统之间经协议代理模块通信,该协议代理模块负责管理与数据库系统之间的通信连接,对访问数据库的请求进行队列控制和超时控制,并且负责客户端计算机与数据库系统之间协议格式的转换。由于采用协议代理方式来管理客户端计算机对数据库的访问,所以提高了数据库系统的安全性能,有效地防止了非法用户的恶意攻击。此外,在协议代理模块的软件实现方式中,利用配置文件,以特定的格式描述协议代理模块与数据库系统之间的通信协议和客户端计算机与数据库之间的协议格式转换方式,因此只需修改配置文件即可修改业务,方便了系统的升级和业务扩展。
Description
技术领域
本发明涉及计算机数据库系统,特别涉及一种通过协议代理方式访问数据库的方法。
背景技术
电信、金融等服务业内的企业一般都设立客户服务系统来处理日常的客户业务,其中,与客户交互的客户服务中心作为客户端设备连接至系统数据库以根据业务要求访问数据库的数据。对于银行、金融等安全性要求很高的行业和部门,一方面必须要保证存储数据的系统数据库绝对安全可靠,确保其不受来自外部的非法攻击;另一方面,又需要向客户端提供访问数据库的权限。
在现有系统下,客户端计算机一般通过存储过程调用方式访问数据库。在这种方式下,系统需要向访问方提供整个数据库的数据表结构并开放数据库的读写权限,由客户端计算机通过存储过程方式对数据库直接进行读写操作。显然,由于此种方式下对数据库进行的是直接操作,所以恶意用户可透过客户端计算机非常容易地从数据库获取机密数据或者对数据库存储数据进行肆意篡改,因而存在较大的安全隐患。此外,当以存储过程方式访问数据库时,访问过程与数据库格式密切相关,客户端实现程序或模块的代码将随数据格式的改变而作较大改动,从而造成业务的扩展和改动非常不便。
发明内容
本发明的目的是提供一种通过协议代理方式访问数据库的方法,其可在确保数据库安全的前提下向客户端提供业务服务。
在按照本发明的一种通过协议代理方式访问数据库的方法中,客户端计算机与数据库系统之间经协议代理模块通信,当客户端计算机内的应用进程访问数据库时,包含以下步骤:
(1)客户端计算机的应用进程向协议代理模块传送访问数据库的请求报文,该请求报文包含对数据库的操作类型和操作参数;
(2)协议代理模块将所述请求报文转换为被访问数据库可处理的协议格式,并控制格式转换后请求报文向数据库系统的发送;
所述的协议代理模块包括协议代理执行单元和协议格式转换单元,其中,协议代理执行单元负责与数据库系统建立通信连接,从数据库接收操作结果和向数据库发送访问报文,并对访问数据库报文向数据库系统的发送进行队列控制和超时控制,而协议格式转换单元负责客户端计算机与数据库系统之间协议格式的转换;
(3)数据库系统根据协议代理模块发送的请求报文对数据库进行操作,并且如果需要将操作结果回送至客户端计算机的应用进程,则向协议代理模块发送包含操作结果的响应报文;以及
(4)协议代理模块将响应报文转换为客户端计算机内应用进程可处理的协议格式并传送至客户端计算机。
在上述方法中,比较好的是,协议代理模块与数据库系统之间按照TCP协议建立连接和进行通信。更好的是,数据库系统可以对协议代理模块进行IP验证及登录口令验证来保证数据库系统的安全,并可以控制协议代理模块对数据库系统操作的权限。
在上述方法中,比较好的是,在步骤(2)中,协议代理模块对格式转换后报文向数据库系统发送的控制包括报文发送队列控制和报文发送超时控制。
在上述实现方式中,比较好的是,所有可以配置或改动的设置以预先设定的格式写入配置文件中,协议代理执行单元通过读取配置文件确定协议代理模块与数据库系统之间的通信协议和客户端计算机与数据库之间的协议格式转换方式并且调用协议格式转换单元完成协议格式转换。
由上可见,在本发明中采用协议代理方式来管理客户端计算机对数据库的访问,杜绝了客户端计算机对数据库的直接操作,而且协议代理模块与数据库系统之间的通信可采用安全性较高的协议,因此提高了数据库系统的安全性能,有效地防止了非法用户的恶意攻击。此外,由于采用软件方式实现协议代理模块的功能,并且利用专门的配置文件以特定的格式描述协议代理模块与数据库系统之间的通信协议和客户端计算机与数据库之间的协议格式转换方式,因此只需修改配置文件即可修改业务,方便了系统的升级和业务扩展。
附图说明
图1为按照本发明的访问数据库方法的流程图。
图2为按照本发明较佳实施例的协议代理接口模块在一个典型的应用环境下的示意图。
具体实施方式
以下借助图1描述按照本发明的访问数据库方法的流程图。如图1所示,当客户端计算机的应用进程访问数据库时,首先向协议代理模块传送请求访问数据库的请求报文,该请求报文包含有对数据库的操作类型和操作参数。随后,协议代理模块将接收到的报文转换为被访问数据库可处理的协议格式,并控制格式转换后报文向数据库系统的发送方式,协议格式转换和请求报文发送可采用下述实施例中的具体方式。接着,数据库系统根据格式转换后的报文对数据库进行操作,并且如果需要将操作结果回送至客户端计算机的应用进程,则数据库系统向协议代理模块发送包含操作结果的响应报文。最后,协议代理模块将接收到的响应报文转换为客户端计算机内应用进程可处理的协议格式并传送至客户端计算机的应用进程。值得指出的是,本发明的协议代理模块应该理解为一种功能实体,它可以软件、硬件及其结合的方式实现,而且其物理位置可以位于客户端计算机内,也可以位于数据库系统,还可以独立于客户端计算机和数据库系统而分立存在。但是实施方式的上述所有变化并不会对本发明的效果产生实质性的影响。
图2为按照本发明较佳实施例的协议代理接口模块在一个典型的应用环境下的示意图。在图2中,局方系统前置机和局方系统数据库构成营帐系统,前置机用于处理对数据库的各种操作;短信计费服务器、自动语音应答(IVR)业务服务器、应用服务器、催缴业务服务器、传真服务器和语音服务器等构成客户服务系统,各种应用业务由这些服务器完成。在上述组网结构中,营帐系统可视为向提供数据访问的数据库系统,而上述客户服务系统中的各种服务器由于在提供业务时需要访问局方系统数据库存储的数据,所以可视为客户端计算机。在现有技术下,这些客户端计算机直接访问营帐系统,因此对局方系统数据库带来了较大的安全隐患,而在本发明中,如图2所示,所有这些客户端计算机都与下面将要详述的协议代理模块连接,并且必须经过该协议代理模块才能访问数据库系统。如上所述,协议代理模块应该理解为一种功能实体,因此虽然图2中的协议代理模块独立于客户服务系统和营帐系统,但是并不意味着该模块在物理位置上一定是独立的,相反,它可以位于局方系统前置机内或者客户服务系统的各种服务器内。
上述协议代理模块完成的功能主要包括:
(1)协议格式转换功能
客户服务系统中的各种服务器应用程序需要访问营帐系统以读写局方系统数据库,但是由于客户服务系统的软硬件环境与营帐系统往往存在很大差异,所以两个系统对访问数据库的方式是不统一的,例如操作数据库的报文命令字各不相同,数据格式也各不相同,因此当各种服务器向协议代理模块传送请求访问数据库的报文时,协议代理模块将报文中包含的数据库操作命令和参数转换为营帐系统可以识别的操作命令和参数,并将营帐系统访问数据库的操作结果转换为各种服务器应用程序可以处理的格式。
(2)通信管理功能
协议代理模块负责与数据库系统建立通信连接,将经过协议格式转换后的服务器对数据库的访问请求发送给数据库系统,以及从数据库系统接收数据库访问结果。在本发明的较佳实施例中,考虑到安全性,协议代理模块与营帐系统内的局方系统前置机采用TCP协议进行通信,在通信建立时,协议代理模块可根据预先确定的方式设定双方的连接方式、IP地址、连接端口号和监听端口号等。此外,为了进一步提高系统的安全性,可由数据库系统对协议代理模块进行IP验证及登录口令验证并控制协议代理模块操作数据库系统的权限。
(3)报文控制发送功能
协议代理模块对向数据库系统发送的请求访问报文进行控制以满足各种需要,例如可对待发送的请求访问报文进行队列控制和超时控制。具体而言,在本实施例中,当营帐系统的局方系统前置机处理忙时(即无法处理新的访问请求),协议代理模块启动队列控制处理,对请求访问报文进行队列处理以避免报文的丢失;当一项报文或请求在队列中等待时间过长而得到响应时,协议代理模块可启动超时控制处理丢弃这样的报文。
上述协议代理模块的功能可以软件或硬件方式实现,但是在本发明的较佳实施例中,比较好的是以软件方式实现,以下对此作进一步的描述。
实现协议代理模块上述功能的接口程序包括协议代理执行单元和协议格式转换单元,其中,协议代理执行单元负责与数据库系统建立通信连接,从数据库接收操作结果和向数据库发送访问报文,并对访问数据库报文向数据库系统的发送进行队列控制和超时控制,而协议格式转换单元负责客户端计算机与数据库系统之间协议格式的转换。之所以将实现协议代理的接口程序分成相对独立的两部分是考虑到在客户服务系统与不同局对接时应尽量减少对程序的改动。具体而言,由于客户服务系统与局方系统之间一般只是协议格式不同,双方之间的通信管理过程是相同或相似的,因此主要负责通信管理功能的协议代理执行单元可以作为通用程序使用,而将协议格式转换单元提供给不同的局方系统。
如图2所示,在本实施例中,协议代理执行单元为可执行程序DtProxy.exe而协议格式转换单元为可由DtProxy.exe调用的动态链接库DtProxyDll.dll。
为了灵活地配置DtProxy.exe程序与局方系统前置机之间的通信协议,在本实施例中,将所有可以配置或改动的设置以预先设定的格式写入一个配置文件DtProxy.ini中,DtProxy.exe程序通过读取该配置文件制定与前置机之间的通信协议。该配置文件内容包括:1)连接方式的设定、连接端口和监听端口的配置等;2)传送的各项报文的超时时限和所用连接的配置;3)与其它内部程序通信时的进程ID设置和数据源的配置等。
通过配置文件DtProxy.ini的配置,协议代理模块可通过如下的连接方式向营帐系统内的局方系统前置机发送请求访问数据库的报文:
1、长连接、异步(非阻塞)方式
在这种方式下,DtProxy.exe程序在接收到客户服务系统访问营帐系统的请求报文时,经过协议格式转换后如果前置机可处理,则即行发送,否则进行队列控制,即,将报文放入一个请求队列中,待前置机可处理时再发送。由于各种报文的处理速度不同,因此营帐系统回送的响应报文的顺序可能与请求报文的顺序不同。
2、长连接、同步(阻塞)方式
在这种方式下,DtProxy.exe程序将客户服务系统的一个请求报文发送给局方系统前置机后,必须等待接收到响应报文后或者在预先设定时间结束时未接收到响应报文时(即超时)才能发送下一个请求报文。如果请求报文过多,则采用这种方式可以将等待时间过长的请求报文丢弃。
3、短连接、同步(阻塞)方式
在这种方式下,DtProxy.exe程序在发送请求报文之前,先与局方系统前置机建立套接字(Socket)连接,然后发送报文,并且只有在接收到响应报文或者在预先设定时间结束时未接收到响应报文时才断开连接。
同样,为了灵活地配置协议格式转换,在本实施例中,将所有可以配置或改动的设置以预先设定的格式写入一个配置文件DtProxyDll.ini中,DtProxy.exe程序在调用DtProxyDLL.dll进行格式转换前,通过读取该配置文件确定协议格式转换方式。该配置内容包括协议格式转换时报文命令字的对应关系和转换数据的对应关系等,具体设置与具体的协议相关。
此外,由于各种接口协议的实现方式不尽相同,所以可能会根据实际情况需要增加配置文件。
Claims (7)
1.一种通过协议代理方式访问数据库的方法,其特征在于,客户端计算机与数据库系统之间经协议代理模块通信,当客户端计算机内的应用进程访问数据库时,包含以下步骤:
(1)客户端计算机的应用进程向协议代理模块传送访问数据库的请求报文,该请求报文包含对数据库的操作类型和操作参数;
(2)协议代理模块将所述请求报文转换为被访问数据库可处理的协议格式,并控制格式转换后请求报文向数据库系统的发送;
所述的协议代理模块包括协议代理执行单元和协议格式转换单元,其中,协议代理执行单元负责与数据库系统建立通信连接,从数据库接收操作结果和向数据库发送访问报文,并对访问数据库报文向数据库系统的发送进行队列控制和超时控制,而协议格式转换单元负责客户端计算机与数据库系统之间协议格式的转换;
(3)数据库系统根据协议代理模块发送的请求报文对数据库进行操作,并且如果需要将操作结果回送至客户端计算机的应用进程,则向协议代理模块发送包含操作结果的响应报文;以及
(4)协议代理模块将响应报文转换为客户端计算机内应用进程可处理的协议格式并传送至客户端计算机。
2.如权利要求1所述的方法,其特征在于,所有可以配置或改动的设置以预先设定的格式写入配置文件中,协议代理执行单元通过读取配置文件确定协议代理模块与数据库系统之间的通信协议和客户端计算机与数据库之间的协议格式转换方式并且调用协议格式转换单元完成协议格式转换。
3.如权利要求1或2中任意一项所述的方法,其特征在于,协议代理模块与数据库系统之间按照TCP协议建立连接和进行通信。
4.如权利要求3所述的方法,其特征在于,数据库系统对协议代理模块进行IP验证及登录口令验证,并控制协议代理模块对数据库系统的操作权限。
5.如权利要求4所述的方法,其特征在于,在步骤(2)中,协议代理模块在接收到客户端计算机访问数据库系统的请求报文时,对其作协议格式转换并在数据库系统可处理时即行发送,否则进行队列控制处理。
6.如权利要求4所述的方法,其特征在于,在步骤(2)中,协议代理模块在将客户端计算机传送的一个请求报文发送给数据库系统后,必须等待接收到数据库系统的响应报文后或者在预先设定时间结束时未接收到响应报文时才能发送下一个请求报文。
7.如权利要求4所述的方法,其特征在于,在步骤(2)中,在发送请求报文之前,协议代理模块先与数据库系统建立套接字Socket连接,然后发送请求报文,并且只有在接收到响应报文或者在预先设定时间结束时未接收到响应报文时才断开套接字连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02137696 CN1265309C (zh) | 2002-10-30 | 2002-10-30 | 一种通过协议代理方式访问数据库的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02137696 CN1265309C (zh) | 2002-10-30 | 2002-10-30 | 一种通过协议代理方式访问数据库的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1494022A CN1494022A (zh) | 2004-05-05 |
CN1265309C true CN1265309C (zh) | 2006-07-19 |
Family
ID=34231654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02137696 Expired - Lifetime CN1265309C (zh) | 2002-10-30 | 2002-10-30 | 一种通过协议代理方式访问数据库的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1265309C (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4164490B2 (ja) * | 2004-12-17 | 2008-10-15 | キヤノン株式会社 | 通信装置、プロファイル情報取得方法、及び、プログラム |
CN100459594C (zh) * | 2005-08-12 | 2009-02-04 | 华为技术有限公司 | 基于转发控制分离协议的系统及接入方法 |
CN101150530B (zh) * | 2006-09-21 | 2011-11-16 | 华为技术有限公司 | 转发控制分离架构中的转发系统、方法和转发单元代理 |
CN101163120B (zh) * | 2006-10-13 | 2011-12-21 | 华为技术有限公司 | 协调不同业务提供者提供的业务的方法和系统 |
CN101183363B (zh) * | 2006-11-13 | 2010-05-12 | 中兴通讯股份有限公司 | 一种利用系统表结构统一配置管理内存数据库的方法 |
CN101034411B (zh) * | 2007-04-09 | 2016-05-11 | 招商银行股份有限公司 | 一种计算机数据处理系统及其处理方法和应用 |
CN101227351B (zh) * | 2008-01-23 | 2012-05-23 | 深圳国人通信有限公司 | 一种远程监控中多协议数据包的处理方法及装置 |
CN101631019B (zh) * | 2008-07-18 | 2011-12-28 | 深圳市维信联合科技有限公司 | 单向传输设备及其配置控制模块、配置控制方法 |
CN102801699B (zh) * | 2011-12-28 | 2015-07-29 | 北京安天电子设备有限公司 | 防止服务器数据篡改的系统、方法及设备 |
CN103744896A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据处理方法和装置 |
CN104270537B (zh) * | 2014-08-25 | 2017-12-22 | 江苏鸿信系统集成有限公司 | 一种ivr自动外呼平台 |
CN104462605B (zh) * | 2014-12-31 | 2019-03-26 | 迈普通信技术股份有限公司 | 一种数据库持久层框架配置、修改方法及系统 |
CN105227667A (zh) * | 2015-10-14 | 2016-01-06 | 深圳市金证科技股份有限公司 | 报文转换方法及平台 |
CN109284968B (zh) * | 2017-07-19 | 2022-02-01 | 华润微电子(重庆)有限公司 | 签核系统的管理方法、签核系统、可读存储介质及服务器 |
CN107634957B (zh) * | 2017-09-29 | 2021-08-10 | 深圳迪贝守望信息技术有限公司 | 基于协议代理的数据和文件操作实时预保存方法和系统 |
CN108183833B (zh) * | 2017-11-29 | 2021-08-10 | 努比亚技术有限公司 | 一种响应处理方法、装置及计算机可读存储介质 |
CN108390863B (zh) * | 2018-01-31 | 2021-01-05 | 深圳市元征科技股份有限公司 | 一种数据处理方法及装置 |
CN108769017B (zh) * | 2018-05-29 | 2022-01-11 | 杭州字符串科技有限公司 | 一种数据通信方法及装置 |
CN109815214B (zh) * | 2018-12-29 | 2022-05-17 | 深圳云天励飞技术有限公司 | 数据库访问方法、系统、装置及存储介质 |
CN109756508B (zh) * | 2019-01-22 | 2022-11-08 | 深圳壹账通智能科技有限公司 | 基于多协议接入区块链网络的消息代理方法及相关设备 |
CN111752987B (zh) * | 2019-03-29 | 2023-12-12 | 北京数聚鑫云信息技术有限公司 | 一种数据库访问方法、装置、存储介质和计算机设备 |
CN113378233B (zh) * | 2021-08-16 | 2021-11-30 | 北京安华金和科技有限公司 | 一种防止通过直连访问数据库的系统和方法 |
CN115062092B (zh) * | 2022-08-10 | 2023-02-03 | 阿里云计算有限公司 | 数据库访问方法、设备、系统及存储介质 |
-
2002
- 2002-10-30 CN CN 02137696 patent/CN1265309C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1494022A (zh) | 2004-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1265309C (zh) | 一种通过协议代理方式访问数据库的方法 | |
CN1924863B (zh) | 在远程计算机上运行为因特网访问而配置的软件的方法和系统 | |
US8073954B1 (en) | Method and apparatus for a secure remote access system | |
JP3853593B2 (ja) | ウェブアプリケーションサーバにおいて拡張可能な認証機構を実現するための方法および装置 | |
US6643690B2 (en) | Apparatus and method for determining a program neighborhood for a client node in a client-server network | |
US8943579B2 (en) | Trusted communications with child processes | |
JP3518958B2 (ja) | 拡張属性サポートを有する分散ファイル・システム・トランスレータ | |
US6442695B1 (en) | Establishment of user home directories in a heterogeneous network environment | |
US7200636B2 (en) | Method and apparatus for applying personalized rules to e-mail messages at an e-mail server | |
JP3853592B2 (ja) | 分散ウェブアプリケーションサーバ | |
JP3485219B2 (ja) | 遠隔ユーザのクライアントとアプリケーション・サーバとの間の通信を管理する方法、及びシステム | |
AU2003219640B2 (en) | System and method for use of multiple applications | |
US20030158889A1 (en) | Simulating web cookies for non-cookie capable browsers | |
CN1257593A (zh) | 动态控制一个网络设备的系统 | |
WO1997012321A1 (en) | Virus detection and removal apparatus for computer networks | |
US7624439B2 (en) | Authenticating resource requests in a computer system | |
US6941474B2 (en) | Firewall subscription service system and method | |
US20060080517A1 (en) | Accessing a protected area of a storage device | |
EP1696627B1 (en) | Apparatus and system to retrieve information in a network | |
KR20000054233A (ko) | 전용 사설망 서비스 방법 | |
KR100736830B1 (ko) | 사용자의 인터넷 프로토콜 인증을 이용한 유해 정보 차단시스템 및 그 방법 | |
Guide | Unicenter® SOLVE: CPT™ | |
AU2002339961A1 (en) | Authenticating resource requests in a computer system | |
Achacoso et al. | Oracle Database Net Services Reference, 11g Release 1 (11.1) B28317-02 | |
AU2007201095A1 (en) | System and Method for Use of Multiple Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20060719 |
|
CX01 | Expiry of patent term |