Bisel 银行

作者:Pablo Trincavelli

Bisel 银行诞生于 1994 年左右,由多家小银行合并而成。它现在是阿根廷最大的银行之一,拥有 160 多个分支机构(并计划开设更多),运行内部软件,这些软件将在 2000 年后被商业产品取代。

中央办公室在一台运行 Solaris 2.6 的 Sun Enterprise 5500 服务器上运行(一台类似的服务器作为备份服务器),所有数据都存储在 Informix Online 7 DSA 数据库中。用 JAM 和 ESQL/C 编写的应用程序运行良好。

分支机构使用 SCO UNIX 和 Progress、ESQL/C 及 JAM/Informix 应用程序的混合。这一切都始于我们必须合并来自不同银行的约八个不同系统。在与包括一些 AS/400 硬件和软件在内的其他竞争者竞争中,在 UNIX 机器上运行的 JAM/Informix 和 Progress 应用程序胜出。

该软件由一组程序员开发和维护,他们不断地修改正在运行的程序或从头开始制作新程序。我们必须管理主服务器的大量“流量”。为此,我们为程序实施了一个使用 RCS(版本控制系统)的版本控制系统,以及一个将它们发送到主计算机的系统。

工作原理

在满足新程序或现有程序更改的要求并且新的或更改的程序完成后,该程序在进入生产环境之前会经过一系列测试和授权阶段。

当一切正常时,程序会被发送到中央办公室或自动分发系统(根据需要),该系统会在夜间将修改发送到所有分支机构。该系统是使用 rsync(在 Solaris 服务器上)实施的,因此通过网络传输的数据量保持在最低限度。

Linux 的进入

最终,Linux 取得了辉煌的进入。这一切都始于 1997 年 11 月我作为正式员工来到这家银行。作为 kernel 0.99 以来的 Linux 用户,我相信 Linux 在这家银行的场景中值得占有一席之地。

我决定安装一台 Linux 服务器用作测试机。首先,我使用这台设备测试了几个软件包,然后当我满意后,我将软件转移到 Solaris 环境。 SCO 不在测试考虑范围内,因为它是旧的 SCO 3.2.4.2,这使得为其移植软件变得困难。

我开始使用 Linux 机器测试诸如 Samba、rdist、rsync、Apache Web Server、PHP/FI、PHP3、MSql、MySQL、Solid Server、Solid Web Engine、VNC、Squid 甚至 Linux 版 Informix SE 等产品。现在银行的大部分软件都在 Solaris、SCO 或 Linux 平台或它们的组合上使用。

我实施了各种项目,例如使用 Samba 设计和实施网络;用于源代码的 RCS;用于手册、文档和内部程序的 Intranet;使用 rdist 自动分发应用程序,该应用程序很快被 rsync 取代以节省传输时间;几个通过网络的备份程序;甚至一些使用 Java 和 JDBC 访问数据库服务器的测试。

真正的 Linux 工作

有一天,出现了一个新项目:构建一个应用程序,使用 Intranet 将程序发送到生产环境。我想要的是完全控制程序在每个时刻所处的位置。

图 1. 程序管理入口屏幕

首先,程序员使用 RCS(带有一个旨在简化程序员工作的前端)编写一个新程序或修改现有程序,以保持对版本的控制。然后他或她必须告诉某人程序已完成,以便其他人可以查看它并在将其传递到生产环境之前进行适当的测试。

这是通过登录“Sistema de Pasaje de Programas”系统并输入程序名称来完成的。此时,程序已准备好接收授权以发送到测试环境。一旦授权被授予,它就可以有效地发送到测试环境。

在所有必要的测试都成功通过后,程序就可以进入生产环境了。这是通过类似的过程完成的。在第一阶段,程序被设置为“ok”以进行传递,因此它需要另一个授权,然后是最终传递到生产环境。

所有这些授权和传递都记录在数据库中,因此我们可以准确地知道一个程序在每个时刻的位置,即它何时被授权或传递到哪个环境。

所有这些都是通过一个启用 Web 的应用程序完成的,其中一条记录被插入到数据库中,因此负责授权的人员会在他的屏幕上的列表中找到它,当他检查是否有任何内容需要授权时。然后,该记录会使用当前用户、日期和时间进行更新,以便实际执行传递的人员在他的列表中找到它。实际使用比用语言解释更容易。该应用程序也可以发送到另一个具有大量数据的测试环境,以进行更广泛的测试。

图 2. 登录屏幕

该系统托管在一台具有 16MB RAM、1GB 磁盘空间和 133MHz Pentium 处理器的 Slackware Linux 服务器上。它有一个 Apache Web 服务器和一个 Solid 数据库。它通常具有 60 天或更长的正常运行时间,没有任何问题。HTML 页面是使用作为 Apache 模块的 PHP3 构建制作的。该系统被设计为 Solid 引擎的测试,事实证明它非常好——我推荐它。由于 Linux 版 Informix SE 的发布以及我们组织对 Informix 的使用,我正在使用 Informix SE 或 Informix OnLine 重新设计整个系统,并且在您阅读本文时它将全面投入运行。

考虑事项

该系统中一个有趣的考虑因素是程序实际传递到测试环境或生产环境的阶段。这是通过 CGI 脚本完成的,这些脚本执行与我们的编程环境直接相关的各种命令。该系统可以通过仅替换那些 CGI 脚本来适应全新的编程环境——它不依赖于 JAM。创建它时就考虑到了这种独立性,因为银行将在不久的将来更改其系统,因此这种独立性保证了我们可以在新系统上进行少量调整后继续使用它。

图 3. 程序历史记录屏幕

幕后原理

我使用的方法是将程序传递到另一台运行 Solaris 的机器(使用 Web 应用程序),只需在 Solaris 上安装 Web 服务器,然后使用引用远程机器上的 CGI 脚本的 URL。此 CGI 脚本负责传递程序,发出必要的 rcp 命令以及使程序准备好使用的任何必要命令。

正如您所见,实际工作是由 CGI 脚本完成的,所有 HTML 页面都用于将脚本粘合到一个美观、易于使用的应用程序中,该应用程序将设备和阶段之间的所有程序“流程”存储在数据库中。我轻松地添加了报告页面,以按天查看活动或按程序名称搜索。

当前和新项目

除了将所有这些移植到 Informix 之外,我们目前正在为人力资源办公室开发一个应用程序,以检索员工信息。这正在以类似的方式完成,并将托管在同一台 Linux 服务器上。

由于这种架构所显示的稳健性,我们将来将制作越来越多的 Web 应用程序,而 Linux 将作为我们的 Web 服务器。

最后说明

PHP3 给我留下了深刻的印象——这款产品非常灵活和强大,可以毫无问题地处理复杂的应用程序。它的数据库支持越来越好,不仅支持经典的免费软件和共享软件数据库,如 mSQL、MySQL 和 Postgres,或商业数据库,如 Solid,还支持大型数据库,如 Informix、Oracle 和 Sybase。

毫无疑问,Linux 拥有美好的商业未来,并且是我最喜欢的 Intel 机器操作系统,性能优于 Windows NT 和 SCO UNIX。在我看来,Linux 和 Solaris 是目前市场上最好的操作系统。

一个需要考虑的重要方面是为您的操作系统和您经常使用的任何其他产品提供的技术支持类型。有一次,我遇到了一个问题(这是我的错),导致 Linux 服务器宕机。我在 20 分钟内收到了三位技术人员的帮助。我在哪里得到了这种出色的支持?当然,是互联网。我发布了一条消息,在 20 分钟内我的问题就解决了。我还没有在任何公司的任何商业产品上看到过如此快速的响应。

Pablo Trincavelli 在阿根廷罗萨里奥的 Banco Bisel S.A. 担任技术分析师。他从早期的 0.99 版本开始就一直在使用 Linux。除了 Linux 之外,他还使用过 Solaris、HP-UX、SCO UNIX、WinNT、AmigaOS 和许多其他系统。他喜欢玩他的 PalmPilot 并找到轻松完成困难事情的方法。他喜欢一切带有芯片的东西,可以通过 pablo@iname.com 联系到他。

加载 Disqus 评论