D7的3层应用程序架构

时间:2011-07-25 11:03:20

标签: delphi architecture delphi-7 3-tier

到目前为止,我已经有过使用COM +技术的经验来构建3层应用程序。 这是一项巨大而先进的技术,支持许多有趣的概念。 它只适用于在LAN上运行的应用程序。

现在我打算建立3层系统,仍然基于D7。不同之处在于它应该在互联网上运行。客户将分散在世界各地。 根据我在这种情况下的经验,我不会依赖com +。 Com +基本上需要稳定的连接,配置必须打开相当广泛的端口的防火墙服务器并不容易(即使你缩小它)。

所以问题是。什么体系结构(Web服务,服务或其他)在生产中适合您?我想我想拥有一个侦听一个tcp端口的服务。我可以在其中保存可用于打开会话的会话客户端参数。此外,某种内置加密技术也是一种优势。

感谢您的帮助!

3 个答案:

答案 0 :(得分:7)

我们使用RemObjects SDK作为我们的服务,我们对质量非常满意! 您可以使用TCP +二进制消息(高速),可选加密和压缩。但也可以使用HTTP + SOAP(或XML或其他),或TCP + SOAP等。 它非常易于使用,而且物有所值(价格不是很贵)!

BTW:Data Abstract基于SDK,两者都来自RemObjects.com。

答案 1 :(得分:6)

SOAP或REST WebServices受到广泛支持,并且(SOAP几乎总是,REST绝对总是)基于HTTP,因此是防火墙友好的,可以使用SSL加密。 Delphi 7可以运行SOAP,但是做自己的REST也不是那么困难。

另一个选项是第三方库,如Data Abstract,它可能对Multi-Tier提供更好的开箱即用支持,但您可能会将自己锁定在更多技术中。

说过:我在生产中没有丰富的经验。

答案 2 :(得分:2)

您可以查看我们的ORM框架,该框架通过多种协议实现n层客户端 - 服务器架构,包括HTTP / 1.1。

因此,它可以帮助您使用ORM方法和n层/ SOA架构在Internet上构建客户端 - 服务器应用程序。

SOA(面向服务的体系结构)可以使用in an ORM Client-Server approach

查看文档can be downloaded as pdf files。在SAD文档的第一部分中,有一些页面突出了所有这些架构方面:

  • MVC和Multi-Tier架构;
  • 为什么ORM(具有高级RTTI) - 为什么它不仅仅是数据库上的一层;
  • 为什么是客户端/服务器ORM;
  • 以SOA方法编写RESTful服务;
  • ORM和SQL(通过SQLite3虚拟表,访问BLOB的自定义函数)。

它是开源的,从Delphi 6到XE,完整的Unicode(即使在Delphi 7上,因为它使用内部UTF-8编码,如JSON)。因此,当您升级到较新的Delphi版本时,您的代码仍然有效。可能有用。