考虑以下(熟悉的)场景:贵公司目前编写了一个客户端-服务器应用程序,有 300 个客户端连接到主服务器。 每次您更改客户端(错误修复、增强功能等)时,都必须通知每个用户获取新代码的副本。 因此,这些更改被捆绑在一起,并在更改被认为足够重要时进行“发布”。

这个系统存在几个问题。 首先,从更改到客户收到更改之间存在明显的滞后。 其次,发布版本和分发它们既耗时又昂贵。 最后,您最终会支持当前正在运行的每个客户端版本——或者您告诉您的客户升级——他们非常喜欢听到这个。

Java 可以用来解决这些问题,通过使用所谓的类存储库——不要与对象请求代理 (ORB) 混淆,它们是完全不同的。 因为 Java 编译后的 .class 文件是可移植的,并且可以在运行时动态加载,所以以下场景成为可能:

您仍然有 300 个客户端连接到主服务器。 但是,当您更改部分代码时,您只需使用新的 .class 文件和修改日期更新数据库(类存储库)。 当客户端启动时,它会询问服务器,“自从我上次访问以来,哪些类发生了更改?” 然后服务器检查存储库,并返回一个类名列表。 当(并且如果)客户端需要其中一个类时,它只需从服务器接收它,将其本地存储以供将来使用,然后加载它。

该系统解决了上述所有问题。 但是,没有简单的方法通过 Java 访问数据库。 Sun 发布了 jdbc,这是一个基于 ODBC 的规范,许多数据库提供商都支持它,但截至本文撰写之时,尚无实现可用。

因此,这成为了 Jgres 的动机:编写一个 libpq 的包装包,以便可以轻松访问 Postgres95 数据库。

© . All rights reserved.