9

有人在互联网上使用火鸟数据库的真实经验吗?

我有一个典型的 Windows 会计/ERP 软件(用 delphi 完成),它可以很好地与 firebird 数据库服务器配合使用。现在我的用户(现在大约 300 个,但应该增加)也希望“在云中”工作(从办公室、笔记本电脑、房子等)。将所有内容重新创建到标准 Web 应用程序(例如,HTML+CSS+JS+PHP+MYSQL)需要大量工作,所以我正在考虑保留 win 客户端(我不关心其他操作系统)但不是将服务器放在客户端 LAN 中,而是将其移动到我将签约的一对专用服务器(一个主服务器和一个辅助服务器以防止启动失败)。

搜索我遇到了这个常见问题解答http://www.firebirdfaq.org/faq53/,它解释了它不适合在互联网上工作的 fb 协议,但我今天的所有用户仍然至少有 1MBbit/秒ADSL 互联网连接(我认为这并不像常见问题解答所指的那样慢)。

有人做过这个吗?体验如何?fb 服务器对互联网开放的安全性如何?他们的规模如何?

我知道例如使用 SOAP 构建“中间件”会更正常,但我在这里评估的解决方案仍然更加快速和简单(我仍然在复制、备份、听力服务方面进行了一些工作,但它很多比为网络重做所有事情要少)。

谢谢!编辑:FB 版本:2.5。

4

5 回答 5

8

我曾试图“推动” Firebird Core 开发人员改进 Firebird 协议,以通过高延迟网络(又名 Internet)获得更好的速度。最近,Dmitry Yemanov 在他的博客(dyemanov.blogspot.com)上发表了一些文章。似乎有优化的余地,我真的很想看到这会出现在 FB 2.5.3 和 FB 3.0 中,尽管这些版本或很快就会发生这种情况并不能保证。您可以在此处对此类改进进行投票:http: //tracker.firebirdsql.org/browse/CORE-2530

安全?您可以尝试设置 VPN。它也可能有助于提高速度,因为那里的大多数 VPN 软件(Zebedee等)都可以压缩正在传输的数据,在某些情况下有助于加快数据传输速度。

我的一些客户确实在互联网上使用 Firebird 传统的 C/S。与本地网络相比,它要慢得多,当然,慢多少基本上取决于链接速度和延迟。您也可以在客户端进行一些优化,使用元数据缓存等,但不要指望当前协议会出现奇迹。我想说,对于一整天的工作,现在使用终端服务会是一个更好的选择。

于 2012-04-10T00:12:22.570 回答
4

关于扩展问题 Firebird 在大型大型铁服务器上运行的响应:512G​​ 的 ram 100.000 个并发用户

我们运行 Firebird 为更大的系统(为 12 个政府机构和 3 个银行)提供动力。它有大约 100000 个最终用户通过 2500 个(最大)池连接多路复用 https://plus.google.com/111558763769231855886/posts/Q1ACy1yyTgP

Firebird 2.5 中的协议得到改进,3.0 仍有空间,但您可以检查已经完成的工作

http://asfernandes.blogspot.com/2009/07/network-latency-influence-on-firebird.html

以及 3.0 中的未来增强功能 http://www.firebirdnews.org/?p=6953

为了保护您的连接,我想最好的选择是具有高压缩选项的 ssl/ssh 隧道(它可以是 opnvpn) http://mapopa.blogspot.com/2010/11/securing-firebird-using-ssh-tunnel.html

于 2012-04-13T13:29:39.877 回答
3

FB 协议问题不在于带宽,而在于延迟。根据我的经验,与 LAN 或本地连接相比,通过 Internet/VPN 进行的某些操作可能非常慢。我没有进一步检查问题,因为我并没有真正通过互联网连接运行应用程序。

但是,我建议应用三层模型。创建自己的应用程序服务器,它运行在数据库服务器/同一网络上。让客户端与应用程序服务器对话,您将获得最大的性能。

Delphi 有一些 N 层应用程序/中间件框架:

有了这些,您可以获得数据压缩、加密、二进制消息(比 SOAP 更快)等。

于 2012-04-10T05:12:12.033 回答
0

您可以直接在 firebird 引擎中实现 TCP/IP 数据包加密/解密。个人而言,我已经下载了 Firebird 2.5 源代码,并直接在他的低级通信层(INET 套接字层)中注入了安全隧道化代码。现在,firebird 引擎直接在服务器端和客户端(fbclient.dll)对每个 TCP/IP 数据包进行加密/解密。然后无需重新构建客户端应用程序,只需添加一行代码,即可提供您选择的用于加密通信到 fbclient.dll 的密钥。必须在服务器安装的 firebird.conf 文件中声明相同的密钥。我还在 fbclient 中实现了代理协商解决方案。dll 以允许 TCP/IP 数据包通过任何代理服务器(例如 Microsoft ISA Server)。对我们来说,这种架构在实际生产系统中可以运行一年多。

于 2014-03-04T07:28:51.957 回答
-2

kbmMW CodeGear Edition 是免费的,但没有源代码。它可用于商业应用程序。注册后下载:https ://portal.components4developers.com

如果您看到证书错误(您不应该,但我知道我们听说有些确实如此),请接受并忽略它们。尽管存在 cert.error,该站点仍然有效。

kbmMW CodeGear Edition 包含 kbmMW Professional Edition 的子集,但支持以下 Delphi 数据库 API:

  • Borland 数据库引擎
  • DBExpress
  • kbmMem表
  • SQLite3

它支持与客户端通信的二进制、HTML 上的二进制、XML 和 SOAP 协议。它包含您需要的一切,包括。

  • 统一远程自定义方法调用
  • 统一的远程数据集查询、执行和数据更改解析
  • 统一数据库元数据处理和创建(表、字段、索引、生成器/序列器)
  • 可选的自动代理请求到另一台服务器并将结果代理回原始请求者
  • 完整的原生 XML DOM 和 SAX 支持
  • 完整的数据集公文包支持 CSV 或二进制数据
  • 高级但易于使用的向导,用于创建新的应用程序服务器服务

不过有一个警告。最新版本的 kbmMW CodeGear 版本始终只支持最新的 Delphi 版本。您仍然可以下载与较旧的 Delphi 版本匹配的较旧的 kbmMW CodeGear 版本。

kbMMW 专业版和 kbmmW 企业版没有此类限制,目前支持 D7、D2006、D2007、D2010、DXE、DXE2 以及 Embarcadero C++ 对应版本。

最好的问候金马德森 www.components4developers.com

于 2012-04-25T17:56:02.677 回答