Next Previous Contents

18. PostgreSQL 的应用程序和工具

18.1 PostgreSQL 的 4GL 万维网资料库程序 AppGEN 开发系统

AppGEN 可在此下载

AppGEN 是一种高阶第四代程序语言和应用程序产生器 (application generator),用以产生以万维网为基础的程序。这些程序一般在互联网或公司内联网使用。 AppGen 程序以合乎 Common Gateway Interface (CGI) 标准的 C 命令稿 (C scripts) 写成,大部分互联网伺服器都可支持。

要使用 AppGen,你需要︰

PostgreSQL,关联式资料库系统

支持 CGI 的互联网伺服器,如 NCSA 的 HTTPD

一个 ANSI C 编译器,如 GCC

AppGEN 包括以下 Unix (Linux) 可执行程序︰

作者 Andrew Whaley 可以以下途径接触︰

18.2 PostgreSQL 的互联网界面 DBENGINE

dbengine 是 Ingo Ciechowski 所写的一个即插即用的 PostgreSQL 互联网界面。它在

有关 DBENGINE︰ dbengine 是互联网与 Postgres95 之间的界面,只需花数分钟, 它便可存取任何现存的资料库。

PHP 让你在文件中编写类似 Perl 的语言,但不是真的 Perl,AppGEN 和 WDB-P95 需要你为每一个资料库建立设定档 (configuration files)  听起来, 你似乎都要先学一类新的假语言 (meta language) 才能启用。

和其他工具不同,你不需要学任何特别的程序或命令稿语言来使用 dbengine。也不会有每个资料库都有设定档的情况,所以你不需要熟习这些新结构。 不过,如果你想用到 dbengine 的完整功能,学习 Perl 会是一个好主意。

整个系统可籍处理一个附加的资料库设定好, 它会包含有关如何理解你的资料库存取的资料。你甚至可以指定虚假栏 (virtual fields),用以在资料显示在萤幕之前作出即时计算。

18.3 PostgreSQL 的 Apache 伺服器模块 NeoSoft NeoWebScript

Apache 是一个有名的互联网伺服器。一个 PostgreSQL 到 Apache 的界面模块位于 

NeoWebScript 是一程容许你把不同复杂程度的程序嵌入到 HTML 档程序语言。

当有人要求一个包含 NeoWebScript 的 HTML 网页时,支授 NeoWebScript 的伺服器便执行嵌入了的命令稿 (script),产生一个含有自订内容的网页。

NeoWebScript 是直接在网页的 HTML 码编写功能强大、 伺服器为基础的互动程序的一个方法,高速、安全、易学。籍著 NeoWebScript,即使对新手来说,计数器 (counter)、电邮表格 (email forms)、墙纸、签名簿 (guest books)、访客纪录都变得简单。请看看 NeoWebScript 对自己、PERL 和 JavaScript 作出的比较。

如果你想在你的互联网伺服器安装 NeoWebScript, 你的网络管理员在开始前需先阅读他们的 Sysop FAQ。《Theory of Operations》会解释 NeoWebScript 如何运作,《Installation》会逐步说明。《Management》 关于设定和执行伺服器的事宜,《Test》让你确定 NeoWebScript 运作正常,《Troubleshooting》和伺服器的问题有关。

在自己的 ISP、内联网或外联网使用 NeoWebScript 费用全免, 你会在登记下载时得到完全的执照。不过, 如果你想把它嵌入到自己的产品或在商业的伺服器(如 SSL)使用,它总值 99 美元。

NeoWebScript 是一个容许你在网页中嵌入 Tcl/Tk 语言作为命令稿工具的 Apache 模块。它由 Karl Lehenbauer,NeoSoft 的 Chief Technical Officer 发明,并由 Neosoft 的程序设计师和技术撰稿员编写文件、改良及加强功能。

Apache 是世上最流行的互联网伺服器,经调查的网站中有六十八巴仙使用。

Tcl/Tk 是由 Dr. John Ousterhout 开发的一种强劲、自由、跨平台的命令稿语言。 他说过“Tck/Tk”容许软件开发人员比使用以 C 或 C++ 为基础的工具快十倍完成工作。 它也是一种伟大的胶水语言 (glue language),使得现存的程序共同工作、 更图像化和可用于互联网。”

NeoSoft 创办人及 Chief Technical Officer,Karl Lehenbauer 在开始时便已参与 Tcl/Tk 开发。他也和 Mark Diehkans 一起创作了 Extended Tcl,又名为 TclX 或 NeoSoft Tcl,延伸这种语言的功能。很多 Tcl 的核心指令都来自 Extended Tcl,而由 Dr. Ousterhout 加入到核心语言中。

NeoSoft Inc., 1770 St. James Place, Suite 500, Houston, TX 77056 USA

18.4 HTML 的伺服器端延伸 HEITML 和一个 PostgreSQL 的 4GL 语言

heitml 是另一个 postgres 与万维网间的界面。欲知详情,请接触

 
          Helmut Emmelmann H.E.I. Informationssyteme GmbH 
          Wimpfenerstrasse 23 Tel. 49-621-795141 
          68259 Mannheim Germany Fax. 49-621-795161 

Heitml 同时是 HTML 的伺服器端延伸和一种 4GL 语言。网页编写人员可以 HTML 的风格用类似 HTML 标签编写程序。

Heitml(音 "Hi"-TML)是 HTML 的延伸及一个全面的第四代语言, 它容许以互联网为基础的程序直接利用 SQL 资料库中的资料,而不需使用复杂的 CGI 命令稿。

Heitml 在伺服器端延伸 HTML,动态地把“.hei”档转换为 HTML 格式, 使它与任何浏览器兼容。它包括大家熟悉、易用的 HTML 语法, 及提供大量预先开发了的标签和程序库来应附以往由 CGI 进行的工作。像 XML 般,heitml 容许使用者自定标签。籍著 heitml,使用者自定的标签可翻译为 HTML 及传送给浏览器。

Heitml 同时以 HTML 设计者和专业的程序设计师为目标。HTML 设计师可使用 heitml 标签来建立动态的网页,存取 SQL 资料库,或建立完整的万维网应用程序。计数器、 登记资料库 (registration databases)、搜寻器表格、电邮表格、阶层式选单 (hierachical menus) 都可轻松地籍著在大量元件函式库 (Component Libraries) 预建的类似 HTML 的标签产生。

对程序设计师来说,heitml 在 HTML 中嵌入了完整的第四代程序语言,

 
(如 <if>, <while>, 和 <let> 标签), 
和对含整数、实数、布林值、字串和元组 (tuple) 的表达式强劲运算能力。 元组的参考语法 (reference semantics) 就像物件导向语言,及储存在堆叠中。Heitml 变数,包括所有在堆叠中的复杂资料结构,在 Session Mode 中可在不同网页间维持。 你也可以自订标签或环境标签 (environment tags),甚至重新定义 HTML 标签。

heitml 使得以下事情有可能

  以具结构及模块化 (structured and modular) 方式开发网页,大幅减低维护困扰。

  开发有智慧及互动的网页,内容可动态地适应用者所需。

  无需设计程序便可显示 SQL 资料库的内容,你只需要使用预先 定义的“dba”系列标签。

  使用 Session Variables 开发复杂的资料库及目录购物程序。

Heitml 可经 CGI 界面在 Linux 的任何互联网伺服器中执行,而在 Apache 中可使用 apache API 使得执行速度特别快(避免了 CGI 的工作)。目前,它支持 mSQL(第一及二版)、PostgreSQL(第六版)、mySQL、及 the yard databases。heitml 可在 Linux、BSDi、Solaris 和 SunOS 执行,以及在视窗 NT 加上 CGI 和 ISAPI、ODBC、视窗 95 中使用。

heitml(Linux 版)对研究、非商业性和个人用途是免费的。商业网站需附出授权费。 设有试用期限而功能完整的试用版可免费下载。(不过要注意,每个你开发的“.hei” 网页都会印出一个信息指出它是非商用版本。登记之后你会收到一个键码, 使你可关掉这信息而无需重新安装。)

heitml(音“Hi”-TML)籍著可自行定义的标签和完整的程序设计能力大幅延伸及增强 HTML 的功能。这使动态的内容和资料库程序可在 HTML 世界中出现,而不需要 CGI 或外部手稿或程序语言。也就是说,一个 HTML 作者可在网页中嵌入应用程序。 这只需要使用新的标签,而不需 CGI 或程序设计。另一方面, 进阶使用者或程序设计师可创造及设计强劲的标签库。这做法使得 heitml 对 HTML 新手和专业程序设计师共时适用。heitml 在万维网伺服器上执行及动态地产生 HTML,所以 heitml 和互联网标准兼容,也和任何浏览器兼容。 它一方面为用者提供完整的资料库存取功能,另一方面使用者无需理会任何不必要的 CGI 复杂性。heitml 是根据有关编译器构造和交易 (transaction) 系统的最新研究成果而开发的。

heitml 页的开发过程和 HTML 页一样,都是使用文字编辑器或 HTML 编辑器,也如常地放在万维网伺服器上。不过,新的网页可包括动态的 heitml 标签和使用标签库。你可使用这些标签存取资料库、产生动态内容、寄出电邮, 甚至可以开发强劲的应用程序,如登记资料库 (registration database) 和购物系统。

HTML 新手和专业程序设计师一样会为能够高速而简易地设计精采的应用程序, 如我们的互动签名簿,而不需使用复杂而难学的 CGI 命令稿而惊讶。这工作只需使用 dba 标签库中的工具便可做到。

heitml 包括不同种类的标签库,用以产生签名簿、资料库维护程序、 可延伸的查询表格、强劲的电邮表格或网页的阶层式选单 (hierarchic menu)。这些工具已可使用,你只需在网页上加上对应的标签。

作为一个有经验的程序设计师,你可全面使用 heitml 的持久动态元组架构 (persistent dynamic tuple architecture)︰heitml 不单是有动态型态 (dynamic typing)、全功能的表达式计算、递回函数和丰富的参数传递特色的命稿语言, 也籍动态元组架构自动保持任何大小的 session 资料。

18.5 PostgreSQL 的 America On-line AOL 万维网伺服器

AOLserver 2.3 版是一个免费的商业万维网伺服器,它可连接到 PostgreSQL。欲知详情,请看

AOLserver 是一个快速,全多流处理 (multithreaded),支持 Tcl 的万维网伺服器。但不止于此,它还是一个全面支持资料库的万维网开发平台。

使用 AOLserver,你可有公用 (pooled) 的 PostgreSQL(和其他 RDBMS)连接,由不同执行绪 (threads) 分享。AOLserver 有 Tcl 和 C API,让你可开发强劲的动态网页。所有这些东西都在 1995 年开始。它以 APL (AOLserver Public License) 或 GPL 授权,因此是全自由的软件。

对网页来说,Tcl API 最有用。AOLserver 有一组强劲的 Tcl 呼叫,例如 ns_sendmail(用来发出电邮)、ns_httpget(用来取回一个 URL)、ns_schedule(类以 cron 的功能,用以排定程序在特定时间执行)等等。你也可用 Tcl API 来轻易扩展 AOLserver 的功能。每一个 AOLserver 的虚拟伺服器都可拥有私家的 Tcl 命令稿“函式库”,由 AOLserver 解释,并可让该虚拟伺服器中任何网页使用得到。

你可用三种方法为 AOLserver 开发网页︰

虽然 AOLserver 是一个伟大的的互联网伺服器,拥有优良的架构, 它的光芒在于它连接资料库的能力。AOLserver 拥有自己的资料库抽象层 (abstraction layer),让你完全不需修改程序而连接到不同 RDBMS。这些 RDBMS 的连接是公用 (pooled)、持续 (persistent) 的,由不用的执行绪分享。 这容许很快的连结和有效运用资源。

AOLserver 拥有所有主要的 RDBMS 的驱动程序︰PostgreSQL、Oracle、Sybase、 Informix、Illustra、Solid、Interbase 和 MySQL。

18.6 PostgreSQL 的疑难 / 计划追踪系统程序工具

它在

18.7 把 dbase 的 dbf 档转换至 PostgreSQL

dbf2msql 程序和 mSQL 及 PostgreSQL 合作愉快。你可在以下方找到

这程序由 Faculty of Electrical Engineering TU Delft, NL Computer Architecture and Digital Technique section 的 Maarten Boekhold 写成。

你也可使用 python 的方法 (method) 在读入 dbf 档及载入到 postgres 资料库。

18.8 把微软 MDB 资料库转换至 PostgreSQL

计划中的 MDB Tools 是一组函式库和公具程序,用于把微软 Access 资料库(mdb 档)汇出至多用户的资料库,如 Oracle、Sybase、DB2、Informix、MySQL、PostgreSQL 之类。

18.9 Zeos 客户

“Zeos”是一个用来开发和管理资料库应用程序的软件产品,用于开放原始码 SQL 伺服器 MySQL、PostgreSQL 和 InterBase http://www.zeos.dn.ua/eng/index.html

18.10 Java 的 Report Writer

Generic Report Writer 是一个目录驱动的报告编写器。它不是拖 放 (drag-and-drop) 界面。可用于 PostgreSQL、MySQL 和 Access。它也很可能可用于其他你有 Type 4 JDBC version 1 驱动程序的资料库。它在 http://www.geocities.com/SiliconValley/Ridge/4280/GenericReportWriter/grwhome.html


Next Previous Contents