专利名称:基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法
专利说明基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法 本发明涉及用于外部数据处理的计算机技术领域,具体地说是一种基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法。Oracle Form到了6i以后,就可以使用WEB技术来实现WEBFORM,因此可以使用浏览器作为客户端,实现B/S架构。使用FORM技术来开发的企业应用软件,也不再像以前必需在客户方电脑上安装相应的客户端软件,可以直接通过浏览器使用FORM技术的软件,给软件实施和使用带来了便利。
使用WEBFORM比较简单,需要进行如下步骤的配置,就可以实现1.配置FORMSWEB.cfg文件,设定显示的大小,颜色和启动WEBFORM的一些参数;2.配置default.env,设定FORMS90_PATH,CLASSES PATH等路径的环境变量;3.修改basejini.htm等启动WEBFORM的WEB页面;4.启动WEB服务;5.使用浏览器来打开basejini.htm等启动页面;6.第一次启动需要下载jinitiator,并安装该java解释器;7.打开WEBFORM。
在使用WEBFORM技术进行企业应用软件开发中,FORM的数量往往都有几百甚至上千个,而且基本上每个产品都要求客户可以同时打开多个FORM。在WEBFORM中,如果要打开多个WEBFORM,需要配置不同的WEB页面,使用不同链接来打开WEBFORM。从目前来看,可能的已知的有以下几种方法来实现打开多个FORM1.一个主控页面,上面有很多FORM的链接,每点击一个链接,会新打开一个窗口来显示FORM。其缺点是在使用中会打开很多浏览器窗口,占用较多的资源。
2.一个主控页面,上面有很多FORM的链接,每点击一个链接,会在原有的窗口打开新的FORM。其缺点是不能实现同时打开多个FORM。
3.打开一个主控FORM,在主控FORM上有很多按钮或者树状结构,标签等能够代表不同FORM的对象,每点击这些对象,都会使用FORM内部的OPEN_FORM函数来打开FORM。其缺点是FORM的界面设计能力有限,不能够做出比较美观的界面效果。考虑的目前已知的解决方案均不能满足即打开一个浏览器,占用较少的系统资源;又能够通过WEB页面访问,实现灵活的界面控制。本发明的目的是实现WEBFORM在WEB页面中实现真正的嵌入,即通过WEB页面上的链接,能够在一个窗口中打开多个FORM。即利用了WEB页面灵活的页面设计能力,可以创造处较好的界面效果;又使用了FORM内部OPEN_FORM函数,高效的打开多个FORM。
本发明分两部分来实现。第一部分是WEB页面的架构,使用了Oracle高级队列(Advanced Queuing)的技术,当WEB页面上的链接被点击时,会通过ENQUEUE这个函数在队列中加入一个QUEUE,该QUEUE包含需要打开的FORM的名称;第二部分是一个控制FORM,该FORM会监听队列,如果有新的QUEUE,那么会通过解析QUEUE的内容,来获得要打开FORM的信息,通过OPEN_FORM来打开FORM。
具体的说,本发明是这样实现的,一种通过Oracle Database中Advanced Queue技术实现在Web页面中嵌入Oracle Webform的方法,通过使用AQ的在Oracle数据库中的通信特性,实现在Web界面中通过点击WEB页面上的链接,使已经打开的基础FORM可以通过OPEN_FORM()方法打开新的FORM。其特征在于从用户的观点来看,WEBFORM和WEB/JSP结合到一起,通过点击WEB/JSP上相应的链接可以打开相应的WEBFORM,就像点击FORM窗体上按钮一样。
WEB/JSP和WEBFORM之间进行通信,需要执行以下操作--通过Oracle标准技术打开一个基础FORM,该FORM可以接收和处理QUEUE;--点击WEB/JSP页面上的链接,发送QUEUE给基础FORM,FORM收到QUEUE,将其分析后使用OPEN_FORM()方法打开指定的FORM。
实现基础FORM需要创建一个可以接收QUEUE的FORM,该FORM需要执行以下操作--创建一个Bean Area类型的Item,在实施类上加载一个PJC程序,实现可以接收QUEUE;--在上步创建的Item下使用WHEN-CUSTOM-ITEM-EVENT触发器来接收QUEUE--在WHEN-CUSTOM-ITEM-EVENT中通过get_parameter_attr函数得到QUEUE中的内容,通过OPEN_FORM方法打开指定的FORM。实现JSP页面可以发送QUEUE需要以下操作--为打开页面者分配AQ的订阅者代码和一个唯一的ID号;--将包含分配的订阅者和ID号记录插入到数据库中;--打开基础FORM,把ID号作为参数传递给基础FORM,基础FORM可以通过这个唯一的ID号来确定自己的订阅者名称;--点击需要打开的FORM名称的链接,JSP页面会把FORM名称放入QUEUE的内容中,然后通过Oracle AQ API来发送这个QUEUE给当前的订阅者。
实现该FORM的方法还需要创建PJC程序,为接收QUEUE的Item增加订阅者属性的步骤。
实现FORM的嵌入还包括基础FORM在打开的时候,通过唯一ID号从数据库中取出订阅者代码,设置Bean Area类型Item的订阅者属性的步骤。
插入包含用户唯一ID和订阅者信息的记录还包括在数据库中创建相关数据库表,索引,序列号的步骤。
该方法还可以用于的Oracle Form6i,Oracle Form7i,OracleForm8i。
通过这种方式,即能使用成熟的WEB技术来进行外观的布置,创造出美观的外观,又解决了通过链接打开FORM会造成窗口的增多,消耗大量的资源的问题。从而实现了WEB页面中嵌入WEBFORM。
图1示出了WEBFORM嵌入网页的外观在图1中,整个页面为一个具有Frame框架的网页,分成左右两部分,左部分为需要打开FORM的链接,右面的部分为FORM打开的地方。当左面的链接被点击后,FORM在右面打开。
实现如图1的WEBFORM的嵌入需要如下的步骤1.通过Oracle数据库中的AQ技术,预先定义好若干的订阅者名称;2.在数据库中建立一个表,用来存放连接的信息和一个序列,作为连接唯一标识;3.创建如图1的WEB/JSP页面,使用Frame框架分成左右两部分;4.页面被打开的时候,分配一个连接ID和订阅者名称,把该数据插入到前面建立的表中。并且打开主控FORM,把连接ID作为参数传给主控FORM;5.使用Oracle AQ API的JAVA包,当打开FORM的链接被点击时,把该FORM的名称放入到QUEUE的内容中,然后发送该QUEUE给前面分配的订阅者;6.主控FORM上创建一个ITEM,类型为Bean Area,并且在实施类的地方使用一个JAVA程序,该JAVA程序会一直在做DEQUEUE,看是否有新发给该订阅者的QUEUE,如果有,那么会产生CUSTOMEVENT;7.在FORM中Bean Area的下面挂上一个WHEN-CUSTOM-ITEM-EVENT的触发器,当触发器被触发时就是收到了新的QUEUE,在触发器中对QUEUE进行解析,分析出需要打开的FORM名称,然后通过OPEN_FORM函数打开新的FORM。
不再做进一步的具体实施说明,因为本领域的技术人员能由以上说述说明开始实施本发明。
在研究说明书和其中揭示优选实例的附图后,本领域的技术人员可理解本发明的许多改变、修改、变化以及其他用途和应用。不背离本发明宗旨和范围的所有这些改变、修改、变化以及其他用途和应用,均被认为由本发明所覆盖。
权利要求
1.一种基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法,通过使用AQ的在Oracle数据库中的通信特性,实现在Web界面中通过点击WEB页面上的链接,使已经打开的基础FORM可以通过OPEN_FORM()方法打开新的FORM。其特征在于从用户的观点来看,WEBFORM和WEB/JSP结合到一起,通过点击WEB/JSP上相应的链接可以打开相应的WEBFORM,就像点击FORM窗体上按钮一样。
2.根据权利要求1所述的方法,其特征在于WEB/JSP和WEBFORM之间进行通信,需要执行以下操作--通过Oracle标准技术打开一个基础FORM,该FORM可以接收和处理QUEUE;--点击WEB/JSP页面上的链接,发送QUEUE给基础FORM,FORM收到QUEUE,将其分析后使用OPEN_FORM()方法打开指定的FORM。
3.根据权利要求2所述的方法,实现基础FORM需要创建一个可以接收QUEUE的FORM,该FORM需要执行以下操作--创建一个Bean Area类型的Item,在实施类上加载一个PJC程序,实现可以接收QUEUE;--在上步创建的Item下使用WHEN-CUSTOM-ITEM-EVENT触发器来接收QUEUE--在WHEN-CUSTOM-ITEM-EVENT中通过get_parameter_attr函数得到QUEUE中的内容,通过OPEN_FORM方法打开指定的FORM。
4.根据权利要求2所述的方法,实现JSP页面可以发送QUEUE需要以下操作--为打开页面者分配AQ的订阅者代码和一个唯一的ID号;--将包含分配的订阅者和ID号记录插入到数据库中;--打开基础FORM,把ID号作为参数传递给基础FORM,基础FORM可以通过这个唯一的ID号来确定自己的订阅者名称;--点击需要打开的FORM名称的链接,JSP页面会把FORM名称放入QUEUE的内容中,然后通过Oracle AQ API来发送这个QUEUE给当前的订阅者。
5.根据权利要求3所述的方法,其中实现该FORM的方法还需要创建PJC程序,为接收QUEUE的Item增加订阅者属性的步骤。
6.根据权利要求3所述的方法,实现FORM的嵌入还包括基础FORM在打开的时候,通过唯一ID号从数据库中取出订阅者代码,设置BeanArea类型Item的订阅者属性的步骤。
7.根据权利要求4所述的方法,插入包含用户唯一ID和订阅者信息的记录还包括在数据库中创建相关数据库表,索引,序列号的步骤。
8.根据权利要求1所述的方法,其特征在于该方法还可以用于的Oracle Form6i,Oracle Form7i,Oracle Form8i。
全文摘要
本发明涉及用于外部数据处理的计算机技术领域,具体地说是一种基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法。一种基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法,通过使用AQ的在Oracle数据库中的通信特性,实现在Web界面中通过点击WEB页面上的链接,使已经打开的基础FORM可以通过OPEN_FORM()方法打开新的FORM。其特征在于从用户的观点来看,WEBFORM和WEB/JSP结合到一起,通过点击WEB/JSP上相应的链接可以打开相应的WEBFORM,就像点击FORM窗体上按钮一样。通过这种方式,即能使用成熟的WEB技术来进行外观的布置,创造出美观的外观,又解决了通过链接打开FORM会造成窗口的增多,消耗大量的资源的问题。从而实现了WEB页面中嵌入WEBFORM。
文档编号G06F9/44GK1664780SQ20051002460
公开日2005年9月7日 申请日期2005年3月24日 优先权日2005年3月24日
发明者吴滨 申请人:上海全富汉得软件技术有限公司