11

我们有一个相对较大的应用程序,它与 Firebird 紧密相关(存储过程、视图等)。我们现在收到很多支持其他数据库的请求,我们还希望将很多功能从客户端转移到服务器。

现在似乎是迁移到 3(4) 层架构的好时机。我们已经看过 DataSnap 2009 和 RemObjects SDK/DataAbstract。两者似乎都可以胜任,但是我们应该注意哪些优点/缺点?您还有其他可以推荐的框架吗?

干杯,保罗

4

5 回答 5

4

我可以推荐使用 Components4Developers 的 KBM Middleware 组件。有一点学习曲线,但它们非常灵活,并且在现实世界条件下使用得很好。

来自用户的评论 ( http://www.components4programmers.com/usercomments/commentfromapowerusertoaquestion.htm )

于 2009-02-13T09:16:42.453 回答
4

使用新框架(RM、DS、kbmMW 或其他任何方式)将您的应用程序更改为多层,将对我们的应用程序架构进行大量更改,我建议将来使用此方法,但您可以实现对多层的支持数据库,以及其他产品,如

DevArt的 UniDac(直接连接数据库的最佳组件)。 AnyDac(来自提供 RemObjects 的同一家公司 。SqlDirect(支持 9 MajorDB 和 ODBC) 。ZeosDB(开源)。

使用上述组件之一,将为您提供对大多数主要数据库的支持,除此之外,它不会使您进行大量更改,并且在某些情况下,您只需用新的数据库组件替换旧的数据库组件,并且可能会更改一些属性。

但是,改为多层不仅会使您只支持更多的数据库,而且会将您的业务逻辑与表示层分开,因此您可以为您的应用程序(如 Web 界面或智能设备)提供更多的表示层。

但在多层架构中最重要的是,您将拥有一个可扩展的系统,其增长超过您使用的数据库可以处理的连接,此外还有其他好处,例如使用其他语言编写客户端应用程序。

于 2009-02-13T19:49:34.697 回答
3

在迁移到多层应用程序的过程中,您可以考虑在层之间使用传输协议,该协议独立于语言/技术(如 web 服务,(我认为 remobjects 支持))。

这可以使以后层的重新实现更简单(例如,如果您以后必须在浏览器/java/silverlight 中创建另一个版本的客户端应用程序)。

于 2009-02-13T08:45:35.167 回答
1

您还可以调查中间件http://www.overbyte.be/frame_index.html

于 2009-04-13T19:39:17.090 回答
1

对于多层架构,我还建议查看面向消息的中间件。

借助面向消息的中间件,可以使用点对点或发布/订阅通信模型实现跨语言和跨平台的应用程序集成。消息系统是松耦合、异步和可靠的。例如,它们是 Java(tm) 应用服务器(如 JBoss)中的核心组件。

对于 Firebird,我最近写了一篇关于替换 Firebird 数据库事件、它们的局限性以及用基于消息代理的解决方案(可作为开源)替换它们的方法的博客文章:

(免责声明:我是开源消息代理的 Delphi 和 Free Pascal 客户端库的开发人员)。

于 2013-03-17T15:33:52.917 回答