0

我一直在做一个使用 Flex + Blazeds + Spring 的项目。现在由于连接问题,它的某些部分必须离线运行。问题是如何处理现有架构,尽可能地保留它,或者至少如何创建一个不太难发展的解决方案。我在网上搜索过很多类似的问题,但最常见的做法是把所有代码都写在actionscript中(包括业务逻辑、数据库访问、事务等等),我觉得特别不适合这种情况。我正在考虑使用嵌入在应用程序中的 Jetty 和某种可嵌入的数据库,例如 Java DB,这样我就可以正常访问我的 Spring 服务而无需任何大的改变。然而,一些同事不同意。他们认为在客户端上运行的 Web 服务器' s 机器可能会导致性能问题,因此可以采用更轻量级的解决方案。直到现在,还没有其他解决方案出现。你有什么建议?

4

1 回答 1

1

当然我不知道你的具体情况,但总的来说我会同意你的同事的看法。特别是如果您不想 24/7 全天候为您的用户提供帮助台服务。如果您的用户没有强大的机器,性能可能确实是一个问题。我知道 Jetty 非常轻量级,但在一些较旧的计算机上,您希望同时运行尽可能少的进程。

但我更关心的是应用程序的可维护性。对于初学者,您必须在用户机器上安装整个堆栈,这并不容易。一旦你得到了覆盖,你就会有更多的失败点。您的应用程序现在可能在 AIR 应用程序、本地服务器、数据库或其中一个层之间的连接中失败。

如果您认为您将在本地机器上部署的服务器将 100% 以与当前 Web 服务器相同的方式运行,那么您可能错了。您没有在线运行 Jetty 或嵌入式数据库,是吗?您的用户可能拥有您必须考虑的各种不同的操作系统。

您将如何将更新推送到您的应用程序?这是 AIR 应用程序中的一个非常简单的过程,但如果您还必须更新本地服务器端代码,这将变得更加困难。

我认为从长远来看,重写您的 AIR 应用程序中的一些逻辑会带来回报。这将花费您一些前期费用,但它会减少您的维护费用。我也不认为应该重写完整的模型。对于这些类型的在线/离线问题,您可以制定一种仅同步最重要数据的策略。而且,如果您不喜欢重复代码,您总是可以编写一个生成器来获取您的 Java 模型并创建 ActionScript 副本。

于 2012-05-07T23:19:16.107 回答