1

我正在考虑重写一个单一的 C/C++ 应用程序(最初它是一个单一的 C++ 可执行文件),并且我正在尝试将我的应用程序设计为更加模块化。我在想我可以将所有模块作为 dll(或 linux 平台上的 .so 对象)交付,并在运行时编写我的应用程序,而不是单个可执行文件。我也在寻求模块化,我正在尽我所能记住速度对于这个应用程序很重要。所以我的设计应该是模块化和性能之间的权衡。

这是一个物联网应用程序,旨在根据车辆的地理定位收集各种数据。在我当前的应用程序中,有 3 个组件:

在此处输入图像描述

  1. AntennaService :这是我的应用程序的主要服务组件。该模块将加载其他模块。在车辆的每一次移动中,它都会查询 ConfigurationDataService 以返回在平面配置文件中索引的最近的地理点。并且在需要时它会触发事件以通过日志服务异步记录。

  2. LogService :一个模块服务,它使用 pub/sub mecansim 根据 Internet 连接在本地或在线异步记录数据。

  3. ConfigurationDataService :这是一个模块服务,可能会被各种其他组件同时调用,这些组件正在查询它要使用的配置。该模块正在读取一些协议缓冲区文件,其中索引了只读配置数据。并且根据其他模块询问的查询条件,在回答之前过滤或计算静态配置数据。

我当时面临的问题是,我没有找到对 ConfigurationDataService 建模以获得快速和最佳响应的最佳方法:它是否应该使用锁定和关键部分来响应对其他模块的并行查询?或者你认为可能有更好的设计。

4

0 回答 0