WebUtil — 了解 Webutil 的简要指南
简介
此文是对 WebUtil 的高级介绍,WebUtil 向您提供许多客户端实用程序,这些实用程序在客户机/服务器表单环境中理所当然可以使用,但部署到 Web 上时本地不可用。
背景信息
Oracle Forms 经历了一系列发展,从字符模式的大型机应用程序发展到使用客户机/服务器的台式机,进一步发展为利用 web 部署的优势。作为 Forms 发展的一部分,Oracle 一贯致力于确保产品各版本之间尽可能实现无缝升级。
但是,实践证明,将表单应用程序部署到 Web 时最具挑战性的工作恰恰是表单开发人员构建与客户台式机的紧密集成。特定于平台的特性(如 OLE 及从本地机访问数据的业务要求)引入了体系结构的依赖性,因而需要创新的解决方案在 Web 上提供与客户机/服务器相同的功能。
图 1
例如,图 1 说明在客户机上调用 Host 来执行操作系统的复制命令。由于表单应用程序运行于客户机上,因此该操作在客户机上执行。

图 2
然而,在 3 层环境中运行相同代码意味着在应用服务器上执行 Host 命令(如果您试图从本地驱动器复制文件,则这可能并不是您所希望的行为)。
这就是 WebUtil 努力帮助表单开发人员获得解决方法的问题典型示例。
WebUtil 如何帮助您解决这些问题?
一般解决方案
按照运行时体系结构运行表单应用程序,与客户机/服务器结构非常类似。唯一的区别是由表单 Java Applet 在客户端表示表单运行时的 UI 部分。这部分的 Java 代码负责显示屏幕及与应用服务器上的表单运行时进行通信。
因为此体系结构的客户端层以 Java 实现,所以易于对其扩展以提供额外的功能。这意味着如果您希望访问本地机,则通过在 UI 中编写 Java,您将可访问 PC 上的本地资源。如果您希望获得此功能,可使用 Java Bean 或可插入的 Java 组件,以获得到客户端 Java 虚拟机 (JVM) 的“钩子”。
WebUtil 组件
WebUtil 基本上由三个主要组件组成。库 WebUtil.pll 和对象库 webutil.olb。
- WebUtil.pll — 提供一组 PL/SQL 函数/过程,每个函数/过程映射到一个相应的内建“本地”表单。如
Client_Host 是对内建 Host 的相应调用。如果您希望以客户端的操作系统作为程序驻留的主机,则将代码更改为调用 Client_Host,而不是 Host。
- WebUtil.olb — 提供实现功能的 Java Bean。表单中对 Java 调用的机制是通过扩展 UI 组件实现的。因此,此库提供的一些组件是隐藏的,因为它们提供的纯粹是功能,而不是“可视化”特性。
- WebUtil.jar — 包含执行 WebUtil 的 Java“层”的 Java 类。
配置 WebUtil
配置 WebUtil 的详细信息在《精通 WebUtil 手册》中阐述,但高级详细信息如下:
从表单本身内部,您需要附加 WebUtil.pll 并参考来自 WebUtil.olb 的对象组。这将给予表单执行 WebUtil 功能的代码和 Java Bean。在运行时,系统参考下载到客户机上的 WebUtil.jar 文件。开发人员则只需对在客户端上执行的表单内置程序的任何调用进行更改。例如:
- 对
OLE2 的调用将更改为对 Client_OLE2 的调用
- 对
Host 的调用将更改为对 Client_Host 的调用
- 对
Text_IO 的调用将更改为对 Client_Text_IO 的调用
跟踪一个简单示例
以下部分描述组成应用程序的全部组件之间的信息流。从用户按下屏幕上的一个按钮,回到表单,再到 WebUtil 库和实现客户端功能的 Java Bean。

图 3
图 3 说明当您希望显示文件选择对话框时(在客户端/服务器方式下通过对 Get_File_Name 调用完成)发生的高级流程。假设 WebUtil 已正确配置,且已将 Get_File_Name 调用更改为 Client_Get_File_Name
- 用户按下某个按钮,随后 UI 调用表单运行时执行 When-Button-Pressed 触发器。
- 该按钮执行对
Client_Get_File_Name 的一个调用(该调用是 WebUtil 库的一部分),为 Client_Get_File_Name 传递参数(如 file_name、title)。
- WebUtil 库调用表单内置的
Set_Custom_Property 以设置 FileFunctions Java Bean(属于隐藏的 UI 端组件)中的属性(file_name、title)。
- WebUtil 库随后调用表单内置的
Get_Custom_Property 以获得从对话框中选取的文件名(参见步骤 5)
- 调用
Get_Custom_Property 时将调用 FileFunctions Java Bean 的 getProperty 方法,该方法创建 JFileChooser 对话框的一个实例。
比客户机/服务器优越之处
除了提供方法执行许多台式机集成要求(客户机/服务器模式下的当然要求)之外,WebUtil 还提供大量额外功能,如 D2KWUTIL 端口、对客户端 PC 信息的访问、用于访问客户端库、文件传输和操作的 C API。有关全部详细信息,请参阅精通手册。
|