gpt4 book ai didi

delphi - 实现远程事件驱动系统需要哪些元素? - 需要概述

转载 作者:行者123 更新时间:2023-12-03 15:49:01 25 4
gpt4 key购买 nike

我正在尝试设计一个事件驱动的系统,其中系统的元素通过生成由系统的其他组件响应的事件来进行通信。这些组件的目的是相互独立——或者尽可能地使它们独立。该系统最初将在Windows 7上实现,并用Delphi编写。生成的事件将由Delphi 代码生成。我了解如何在单台机器上实现所描述类型的系统。

我希望设计该系统,使其可以轻松部署在不同的机器架构上,特别是在分布式架构上运行不同的组件,这可能与 Windows 7 不同。系统不需要进行通信与自身外部的任何系统。

我尝试调查我需要考虑的架构,并研究了下面提到的问题。这些似乎表明利用命名管道作为硬件间通信的机制。作为这些调查的结果,我勾勒出以下内容来描述我的系统 - 该图的第一部分是我正在开发的系统;第二部分是我推断出 future 可能的实现所需的内容。 Design sketch

这导致以下几点:

  1. 可以通过命名管道传递事件吗?
  2. 这是解决此问题的适当且合理的结构吗?
  3. 有更好的选择吗?
  4. 我忘记了什么(在这个粒度级别)?

How is event driven programming implemented? How do I send a string from one instance of my Delphi program to another?

编辑:

我没有充分考虑“@我给出垃圾答案”回复所产生的观点。我对他的观点的初步回应是:

  1. 同步 v 异步 - 大部分是异步
  2. 事件将始终位于 FIFO 队列中。
  3. 连接丢失 - 并不是非常重要 - 我可以不严格地处理这个问题。
  4. 无界队列是处理传递事件的完美方式(如果可以的话) - 不会产生大量事件。

最佳答案

为了获得最大的部署灵 active (独立于操作系统),我建议查看在 Java 平台上运行的流行开源消息代理。使用标准协议(protocol)。它们与 Delphi 和其他编程语言很好地集成,可以与 Web 应用程序一起使用,并且拥有大量的安装用户群和活跃的社区。

它们非常容易在几分钟内安装和配置,并且可以使用 Delphi 的免费/商业客户端。

一些例子是:

我还推荐 Martin Fowler 的《企业集成模式》一书作为概述和介绍,其中有许多简单的方法来处理特定问题。

<小时/>

请注意,我是企业消息系统商业 Delphi 客户端的开发人员,例如 xmlBlaster 、RabbitMQ、Amazon Simple Queue Service 以及上面提到的三个代理。

关于delphi - 实现远程事件驱动系统需要哪些元素? - 需要概述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4811734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com