首页 > 解决方案 > 寻找合适的术语:审计?可追溯性?记录?

问题描述

我有个问题。我确定人们已经解决了它,但我不知道要搜索的正确术语。我想在这里描述这个问题,也许你可以用术语帮助我。

我们正在构建以批处理方式处理数据的软件,我们希望让用户能够在事后了解为什么以特定方式处理数据。在一个非常基本的层面上,我们处理记录,然后我们有很多条件,并根据条件我们做一些事情。并且用户希望看到类似“因为满足条件 X,所以我们做了 Y”之类的内容。

让我尝试提供一个示例,而不是我们正在处理的实际问题:假设我们正在构建一个新闻网站,并且我们从新闻机构导入文章和图像。现在可能发生的事情有:

用户可能会问的问题:

同样,这个问题域只是一个例子,我只是在寻找正确的搜索词来查找文献中的信息。

我想到了“可追溯性”,但这似乎是特定于作为特定构建一部分的软件工件。

我想到了“审计日志”,但不知道审计日志是否支持回答这类问题。

我想到了“决策制定”,但这似乎是人类在组织软件开发时所做的事情。还有决策支持软件,用于编纂规则。但我们正试图处理我们所拥有的特定输入的此类规则的结果。

标签: design-patternsarchitecture

解决方案


这听起来像是某种logging,尽管instrumentationtracking等可能是其他术语。我不确定是否有一个行业公认的术语,但从技术上讲,这些在实现上都非常相似。

说到日志,我建议区分纯函数和不纯动作,然后只记录不纯动作。结果是可重复执行。在这种情况下,这意味着您可以随时重播发生的所有事情。由此,您可以根据需要生成报告。

这种架构的另一种选择是为您想要报告的那些决策定义一种内部特定于域的语言。例如,您可以将决策与效果分开,使核心引擎返回一个包含所有决策的数据结构。然后,您可以(至少)在同一数据结构上运行两个不同的解释器:一个执行实际工作,一个创建决策报告。

您也可以考虑研究现有的(可能是商业的)基于规则的系统。如果您能找到一个足够接近您的问题的解决方案,您也许可以省去很多工作。


推荐阅读