使用宏语言文件通过互联网访问关系数据库下载PDF US5737592AUS08/491,742 US49174295A US5737592A US 5737592 A US57375992A US 5737592A US 49174295 A US49174295A US 49174295A US 5737592 A US57375992 US 5737592A法律地位(法律地位是一种假设,不是法律结论。谷歌没有进行法律分析,也没有就所列状态的准确性发表任何声明。)。
当前受理人(列出的受理人可能不准确。谷歌没有进行法律分析,也不对名单的准确性做出任何陈述或保证。)。
优先日期(优先日期是假设,不是法律结论。谷歌没有进行法律分析,也没有就列出的日期的准确性发表任何声明。)。
转让给国际商业机器公司重新转让国际商业机器公司转让ASSIGNORS权益(详见文件)。转让人:Nguyen,Tam Minh,Srinivasan,VENKATACHARY。
分配给思科系统公司。重新分配Cisco Systems,Inc.。转让ASSIGNORS权益(详见文件)。委托人:国际商业机器公司。
分配给思科技术公司。重新分配思科技术公司。转让ASSIGNORS权益(详见文件)。委托人:思科系统公司。
G06F16/958-网站内容的组织或管理,例如发布、维护页面或自动链接。
G06F16/972-访问其他存储库系统中的数据,例如遗留数据或动态网页生成
G06F16/20-信息检索;其数据库结构;其结构化数据(例如关系数据)的文件系统结构。
y-新技术发展的一般标记;跨IPC几个部分的横截面技术的一般标记;前USPC交叉参考艺术收藏[XRAC]和文摘所涵盖的技术主题。
y-新技术发展的一般标记;跨IPC几个部分的横截面技术的一般标记;前USPC交叉参考艺术收藏[XRAC]和文摘所涵盖的技术主题。
本发明公开了一种用于通过因特网的万维网在关系数据库管理系统中执行SQL查询的方法和装置。根据本发明,Web用户可以通过HTML输入表单从RDBMS软件请求信息,然后使用该请求来创建由RDBMS软件执行的SQL语句。RDBMS软件输出的结果本身会转换为HTML格式,以便呈现给Web用户。
发明背景本发明总体上涉及由计算机执行的数据库管理系统,尤其涉及一种使用宏语言文件通过因特网访问关系数据库的方法和设备。
随着Internet和万维网(也称为WWW或Web)的迅速普及,对Web访问数据库的需求也在快速增长。然而,在Web上使用关系数据库管理系统(RDBMS)软件尤其困难。在Web上使用RDBMS软件的问题之一是用于在Web中通信的协议与用于与RDBMS软件通信的协议之间缺乏对应。
例如,Web使用超文本传输协议(HTTP)和超文本标记语言(HTML)进行操作。该协议和语言导致包含超链接的图形信息的通信和显示。超链接是嵌入在单词、短语、图标或图片中的网络地址,当用户选择图形信息中显示的突出显示的项目时激活这些网络地址。HTTP是Web客户端和Web服务器使用这些超链接在它们之间通信时使用的协议。HTML是Web服务器用来创建包含这些超链接的文档并将其连接在一起的语言。
相比之下,大多数RDBMS软件使用结构化查询语言(SQL)接口。SQL接口已发展成为RDBMS软件的标准语言,并已被美国国家标准组织(ANSI)和国际标准组织(ISO)采用。
因此,在本领域中需要通过互联网访问RDBMS软件的方法,特别是通过万维网访问RDBMS软件的方法。此外,需要为这样的系统简化开发环境。
发明内容为了克服上述现有技术中的限制,并克服在阅读和理解本说明书后将变得明显的其他限制,本发明公开了一种用于通过因特网在关系数据库管理系统中执行SQL查询的方法和设备。根据本发明,Web用户可以通过HTML输入表单从RDBMS软件请求信息,然后使用该请求来创建由RDBMS软件执行的SQL语句。RDBMS软件输出的结果本身会转换为HTML格式,以便呈现给Web用户。
附图简介图1示意性地示出了本发明优选实施例的硬件环境;
图2示意性地示出了本发明的优选实施例的概述,并且具体地示出了本发明中的组件之间的交互;
图3示意性地示出了本发明的优选实施例的概述,具体地,示出了本发明的用户运行时环境和应用开发环境之间的关系;
图4是说明根据本发明创建宏语言文件所涉及的步骤的流程图;
图5是说明根据本发明使用宏语言文件来提供对关系数据库的访问所涉及的步骤的流程图;以及。
图6是说明使用宏语言文件生成动态SQL查询,然后将该查询的结果合并到HTML报告表单中所涉及的步骤的流程图。
优选实施例的详细描述在优选实施例的以下描述中,参考形成其一部分的附图,并且作为说明,附图中示出了其中可以实施本发明的特定实施例。应当理解,可以利用其他实施例,并且可以在不脱离本发明范围的情况下进行结构和功能改变。
概述随着Internet和万维网(也称为WWW&34;或Web)的迅速普及,对Web访问关系数据库的需求也在不断增加。本发明是促进Web客户端、Web服务器和执行诸如IBM的DB2系列产品的RDBMS软件的服务器之间的通信的DB2WWW网关。DB2WWW网关使应用程序开发人员能够使用HTML表单和动态SQL为RDBMS软件构建Web应用程序。
这些应用程序的最终用户只能看到他/她的请求的输入表单和结果报告。用户填写输入的表单,点击导航表单,访问RDBMS软件和关系数据库。DB2WWW网关使用用户输入动态构建完整的SQL命令,并将其发送到执行RDBMS软件的服务器。SQL命令由RDBMS软件执行,结果输出由DB2WWW网关合并到HTML表单中,以呈现给用户。
应用程序开发人员创建HTML表单和SQL查询,并将它们存储在执行DB2WWW网关的计算机上的宏语言文件中。宏语言提供跨语言变量替换,从而使应用程序开发人员能够充分利用以下功能:(A)HTML用于创建查询或输入表单和报表,以及(B)SQL用于查询和更新。由于DB2WWW网关使用原生HTML和SQL语言,而不是某种新的或混合的语言,因此可以使用各种现成的工具来创建HTML表单和生成SQL查询。
硬件环境图1示意性地示出了本发明优选实施例的硬件环境,更具体地说,示出了使用因特网10将执行Web浏览器的客户端系统12连接到执行Web守护程序的服务器系统14、将执行Web守护程序的服务器系统14连接到执行DB2WWW网关的服务器系统16、以及将执行DB2WWW网关的服务器系统16连接到执行RDBMS软件的服务器系统18的典型分布式计算机系统。资源的典型组合可以包括作为个人计算机或工作站的客户端12,以及作为个人计算机、工作站、小型机或大型机的服务器14、16和18。这些系统通过各种网络相互耦合,包括LAN、WAN、SNA网络和Internet。
客户端系统12通常执行Web浏览器,并且耦合到执行Web服务器的服务器计算机14。Web浏览器通常是一个程序,如IBM的Web Explorer或Netscape或Mosaic。Web服务器14通常是诸如IBM的HTTP守护程序或其他WWW守护程序的程序。客户计算机12通过线路或通过无线系统与服务器计算机14双向耦合。接着,服务器计算机14通过线路或通过无线系统与DB2WWW服务器16双向耦合。另外,DB2WWW服务器16通过线路或通过无线系统与RDBMS服务器18双向耦合。
DB2WWW网关16支持对执行RDBMS软件的服务器18的访问。DB2WWW网关16和RDBMS服务器18可以位于与Web服务器14相同的服务器上,或者它们可以位于不同的机器上。执行RDBMS软件的服务器18可以是地理上分布的,并且可以包括不同的供应商系统,例如DB2、Oracle、Sybase等。
本领域技术人员将认识到,在不脱离本发明的范围的情况下,可以对该配置进行许多修改。例如,在两层结构中,执行DB2WWW网关16的功能的服务器系统也可以执行Web服务器14和/或RDBMS服务器18的功能,或者,在三层结构中,Web服务器14、DB2WWW网关16和RDBMS服务器18都可以由不同的服务器来执行。
DB2WWW网关DB2WWW网关16被设计为足够灵活和强大,但仍可在多个平台上使用,例如OS/2、AIX、MVS等。此外,DB2WWW网关16被设计为与现有的Web和数据库应用程序开发工具一起工作,只需对这些工具进行最少的修改。
这些目标还导致了本发明的宏语言的发展。宏语言是HTML和SQL的组合,并结合了跨语言变量替换机制,该机制允许将来自HTML格式输入表单的输入数据插入到RDBMS软件的SQL格式查询中。跨语言变量替换机制还允许将SQL查询结果合并到HTML报表中。
DB2WWW网关16的运行时引擎读取宏语言文件以生成适当的查询或输入表单、SQL查询和报告表单。使用原生HTML和SQL,而不是使用新的或混合的语言,可以充分发挥这些语言的表达能力,而不受人为限制。查询表单和报告表单都可以以任何方式布局。
此外,可以使用现有工具来生成宏语言文件。例如,来自不同供应商的HTML编辑器可用于生成HTML表单组件,而SQL查询接口(如IBM的Visualizer查询)可用于生成SQL查询组件。
组件之间的交互图2示意性地示出了本发明的优选实施例的概览,并且具体地示出了本发明中的组件之间的交互。用户与在远离Web服务器14的客户计算机12上执行的Web浏览器交互。在某一时刻,用户通过Web浏览器12执行HTTP命令,该HTTP命令导致与在Web服务器14上执行的HTTP守护程序通信。然后,Web服务器14将HTML格式的初始或主页发送到Web浏览器12以呈现给用户。DB2WWW网关16将由用户从主页选择超链接项来调用。可以预见,DB2WWW网关16符合为Web服务器14定义的公共网关接口(CGI),因此可以通过以下两种方式之一从HTML页面调用:通过HTTP锚引用或通过HTTP表单动作。
HTTP锚引用的格式通常如下:";<;A HREF=http://{web-server}/{cgi-name}/{db2-www-gateway}/{macro-language-file}/{command}?Variable-Name=Variable-Value&;。。。!>;";。
HTTP form操作的格式通常如下所示:";<;Form METHOD={method}ACTION=http://{web-server}/{cgi-name}/{db2-www-gateway}/{macro-language-file}/{command}?Variable-Name=Variable-Value&;。。。!>;";。
";{COMMAND}";通常是";输入";或";报告";。如果";输入";,则为最终用户显示HTML输入表单。如果";REPORT";,则执行{宏语言文件}中的SQL命令,并为最终用户显示HTML报告表单。
";?Variable-Name=Variable-Value&;。。。!";是可以传递给DB2WWW网关执行的宏语言文件的可选参数。
在Web浏览器12、Web服务器14和DB2WWW网关16之间交互的某个时刻,用户将从由RDBMS服务器18管理的关系数据库请求数据。DB2WWW网关16将检索宏语言文件20,从宏语言文件20提取HTML输入表格,并将HTML输入表格发送到Web服务器14。Web服务器14将HTML输入表格发送到Web浏览器12以显示给用户。
用户通过选择功能和/或将数据输入到输入框,经由Web浏览器12操纵HTML输入表单。当用户调用提交或发布命令时,来自HTML输入表单的数据连同该命令一起从Web浏览器12传输到Web服务器14。该命令将包括调用Web服务器14和DB2WWW网关16之间的通信的统一资源定位符(URL)。
DB2WWW网关16从HTML输入表单中提取用户输入,检索相关的宏语言文件20,并将这些输入替换为来自宏语言文件20的SQL查询。然后,DB2WWW网关16将SQL查询发送到RDBMS服务器18以供执行。在执行SQL查询之后,RDBMS服务器18将SQL查询的结果,即输出表返回给DB2WWW网关16,DB2WWW网关16从输出表中提取数据,并使用公共名称空间将其替换为来自宏语言文件20的HTML报告形式。公共名称空间源于宏语言文件中HTML和SQL语句中公共变量的使用,以及本发明的跨语言变量替换机制。所得到的HTML报告表格由DB2WWW网关16发送到Web服务器14,Web服务器14将HTML报告表格发送到Web浏览器12以呈现给用户。Web浏览器12、Web服务器14、DB2WWW网关16和RDBMS服务器18之间的这种交互可以根据用户的方向以类似的方式继续。
开发环境图3示意性地示出了本发明的优选实施例的概览,具体地,示出了本发明的用户运行时环境和应用开发环境之间的关系。
如前所述,运行时环境包括执行Web浏览器和Web服务器14的客户端12、DB2WWW网关16和RDBMS服务器18之间的交互。通过DB2WWW网关16对RDBMS服务器18和相关关系数据库的访问由存储在宏语言文件20中的编程控制。
根据本发明,用于访问关系数据库的Web应用的开发通常涉及以下步骤:
2.从HTML输入表单中提取用户输入,并使用变量替换机制通过通用名称空间生成合适的SQL查询;
4.允许其他查询和HTML表单,可能来自HTML报告表单中嵌入的超链接。
为DB2WWW网关编写应用程序的关键挑战是理解HTML和SQL语言,因为这些语言嵌入在宏语言文件中。以其最简单的形式,可以很容易地获得SQL和HTML的基本知识。但是,为了利用它们的高级功能,这些语言编写起来可能相当复杂和乏味。幸运的是,现有的HTML编辑器22和SQL查询工具24可以帮助极大地降低写宏语言文件的复杂性。使用HTML编辑器22和SQL查询工具24,应用开发者创建宏语言文件20,其中每个宏语言文件20包含HTML格式的SQL命令和相关联的查询和报告表格。
宏语言定义根据本发明的优选实施例,每个宏语言文件通常包含三个部分:
2.标识如下的HTML输入表单部分:%HTML--input{html输入表单部分%}。
3.标识如下的HTML报表表格节:%HTML--Report{html报表表格节%}。
宏语言包含指令,这些指令是带有前缀符号";%";(例如,%sql)的保留关键字。许多指令既有单行形式,也有支持多行文本的块形式。这些块指令以";%}";结尾,可以在一行的任何位置。在优选实施例中,除了下面描述的报表的%EXECSQL块之外,不允许块的嵌套。
SQL指令标识要由RDBMS软件执行的一个或多个SQL命令。这些SQL命令按顺序执行,并且将来自SQL命令的查询结果(如果有的话)返回给用户以供显示。
HTML输入表单指令包含HTML命令,其中包含用于在生成SQL查询之前接受来自用户的输入数据的输入表单。仅当需要用户输入才能完成SQL查询时,才需要HTML输入表单部分。
HTML报告表单指令包含HTML命令,该HTML命令包括用于格式化查询结果以显示给用户的报告表单。%EXECSQL子指令包含要执行的SQL命令,以及查询结果变量及其在报告中的格式。%EXECSQL块前后的任何HTML命令都可能包含指向其他HT的超链接。
..