8

我们公司有一个带有许多附加功能的销售点系统,例如订购和接收功能、销售和订单历史记录等。我们的主要问题是该系统从一开始就没有正确设计,因此修复和修复需要很长时间处理来自我们客户的请求。此外,由于数据库连接的多用户许可费用等,我们正在使用的当前技术(Progress 数据库,Progress 4GL 语言)给我们的客户带来了相当多的许可费用。

经过大量讨论后,看起来我们可能会从头开始(同时至少暂时保持当前产品)。我们正在寻找几件事:

  1. 使用漂亮的 GUI 前端创建系统(目前是 CHUI,并且应用程序的构建方式不支持我们重新设计前端...没有分层或分离业务逻辑和 GUI...不寒而栗)。

  2. 创建具有模块化不同功能的能力的系统,因此产品不必包含所有功能。这将降低我们当前需要基本功能和较低价格标签的客户的成本。这些花里胡哨的东西可供那些想要它们的人使用。

  3. 使用适当的设计模式使产品易于随时添加或更改任何部分(即更改数据库或更改前端,而无需重写应用程序或大部分应用程序)。这是今天的一个问题,因为 Progress 4GL 代码是直接针对数据库编译的。数据库中的小改动需要大量的代码重新编译。

我们的新系统将基于 Linux,客户端应用程序可能会从一个或多个 Windows 框提供功能。

所以我正在寻找的是关于有人可能会为这类产品推荐哪种数据库和/或框架或编程语言的任何建议。任何在该领域有经验的人都可以为我们指明正确的方向,甚至对要避免的事情有一些想法。我们已经考虑过 .NET 和 SQL Express(我们不需要企业级数据库),但这会将我们限制在 Windows 上(据我所知)。我听说过用于在 Linux 环境中编写 .NET 代码的 Mono,但我对它还不太了解。我们还考虑了基于 Java 和 MySql 的实现。

总而言之,我们希望做到以下几点:

  1. 降低我们将用于开发产品的技术的许可成本(甲骨文,哎呀!MySQL,很好。)

  2. 提供易于维护和支持的解决方案。

  3. 具有能够通过 CHUI 前端在“旧”硬件上运行的组件的解决方案。(我们的一些客户拥有 40 多个终端,这将是大量现金才能转换为 PC)。

建议将不胜感激。

谢谢

[更新] 我应该指出,我们目前正在执行总成本分析。这个问题旨在为我们提供几个“受过教育”的选项,以供研究以纳入或分析。任何可以分享有关客户端/服务器设置的经验/建议的人都将不胜感激(不仅仅是那些有销售点系统经验的人......这只是一个奖励)。

[更新]

对于任何感兴趣的人,我们最终选择了 Microsoft Dynamics NAV、LS Retail(一个用于销售点和其他各种东西的插件),然后在此基础上做了一些(目前正在研究)定制工作。这种设置为我们提供了一个额外的好处,即拥有一个我们当前系统所缺乏的完全集成的 g/l 系统。

4

5 回答 5

2

用于语言的 Java(或者 Scala,如果您想成为“前沿”,取决于您计划如何支持它以及您的开发人员喜欢它可能会更好,但也可能更糟)

H2 用于数据库

用于 GUI 的 Swing

原因:免费、便携且非常标准。

更新:错过了系统应该是客户端-服务器设置的部分。我的假设是数据库和客户端应该在同一台机器上运行。

于 2008-10-10T15:51:49.403 回答
1

我建议您使用浏览器的 UI。

将您的应用程序组织为 Web 应用程序。

后端有很多选项。您可以使用 Java + MySQL。Java 后端将使您免于 windows/linux 争论,因为它可以在两个平台上运行。您不会为 Java 和 MySQL 支付任何许可费用。(编辑:当然还有很多其他语言都有运行时用于 linux 和 windows,包括 PHP、Ruby、Python 等)

如果您走这条路,您可能还需要考虑使用 Google Web Toolkit (GWT) 以模块化方式创建基于浏览器的前端。

不过要注意一点。在内存管理方面,浏览器可能会让人讨厌。根据我们的经验,这是进行基于浏览器的 POS 时最重大的挑战。您可能想查看在浏览器中运行的 Adob​​e Flex,但它的内存管理可能更加文明。

于 2008-10-10T15:52:21.197 回答
1

我建议您首先研究一下您的限制条件——您使用特定类型的终端对客户进行了传递引用——这可能会限制您的选择,除非客户同意升级。

你需要在这方面做更多的工作。从网络论坛获得意见固然好,但我们不可能像您一样了解您的环境。

我的粗略建议是瞄准广泛使用的技术。这样一来,平台上的专业知识比“利基”技术便宜,而且如果碰壁了也更容易获得帮助。当然,如果您已经在客户那里采用了不可协商的技术,则可能无法遵循此建议。

我的第二个建议是在使用“从头开始重写”选项之前完成一个完整的项目计划,包括详细的规格和适当的成本估算。现在,你说重写系统比维护它更便宜,你真的不知道重写要花多少钱。

于 2008-10-10T16:04:48.707 回答
1

什么是崔?Character-UI,就像在 VT 终端中一样?甚至是3270风格?

听起来您需要一个 3 层系统 - 数据库后端、运行大部分后端业务流程的中间层,以及 CHUI / GUI / 数据网关的前端层。

所有三层都可以驻留在一台机器上;或者您可以将这些层分发到不同的服务器。前端层将控制实际的终端,无论它们是 VT 终端、网络浏览器还是自定义编写的“客户端”应用程序。

确保您已经考虑了这里的硬件需求——您是否将拥有条形码扫描仪、现金抽屉、POS 借记/贷记终端等?如果您使用的是标准浏览器,则可能很难可靠地集成这些项目。(至少,您可能不得不编写特殊的小程序来处理它们。)

最后,考虑在 Windows 上使用瘦客户端技术的可能性。它极大地简化了系统管理,因为您只需集中升级软件。瘦客户端 PC 很便宜——不到 200 美元。

于 2008-10-10T17:14:09.037 回答
1

Golden Code Development(参见 www.goldencode.com)拥有一项技术,可以将 Progress 4GL(模式和代码……整个应用程序)自动转换为具有关系数据库后端(例如 PostgreSQL)的 Java 应用程序。他们目前支持非常完整的 CHUI 环境,并且他们确实重构了代码。例如,转换将 UI、数据模型和业务逻辑分离为单独的 Java 类。整个结果是与原始兼容的直接替换(用户不需要重新培训,流程不需要修改,数据也可以迁移)。这是可能的,因为它们提供了一个应用程序服务器和一组提供这种兼容性的运行时类。自动转换的结果在编译和运行之前不需要进一步编辑。包括真正的终端支持,因此硬件终端仍然可以工作(它需要一个小型 JNI 库才能从 Java 访问 NCURSES)。运行时中的所有其余代码都是纯 Java。生成的系统中使用了 No Progress Software Corp 技术,它在 Linux 上运行。

At least one converted system is already in production, running a 24 by 7 mission critical environment. It is a converted ERP system that their mid-sized pilot customer uses to run their entire business.

于 2010-08-26T18:04:11.000 回答