【问题标题】:Task vs Transaction - any practical difference?任务与事务 - 有什么实际区别吗?
【发布时间】:2014-03-26 15:45:30
【问题描述】:

软件工程中的“任务”和“事务”这两个术语有什么实际区别吗?

一些网络搜索会产生过于特定于 CICS 的结果。虽然我关注的领域是数据库管理系统(图形数据库、对象数据库等),但答案越广泛适用越好。

【问题讨论】:

  • 术语任务 AFAIK 不属于数据库术语。另一方面,术语事务与数据库(ACID 等)直接相关
  • 那么这是否意味着两者在各自的系统中存在某种关系,或没有关系,或部分关系?
  • 我见过一层有事务的概念,上层有任务的概念。但是由于中间层,试图找出 1 是否是另一个的包装器是一项艰巨的任务。

标签: design-patterns architecture transactions database object-oriented-database


【解决方案1】:

根据工作领域的经验。

1.交易。表示一系列任务(由工作流定义) 导致一定的最终结果。

2.任务。表示特定事务的阶段。只有在所有事务任务完成后,才认为事务完成。

3.工作流程。定义需要执行的任务序列 完成特定的交易。

【讨论】:

    【解决方案2】:

    “任务”一词广泛适用于软件工程中的许多概念,仅具有以下几个含义:

    1. 在最高层次上,任务就是要完成的事情
    2. 在并发编程中,任务通常是执行单元。无论是进程、线程还是批处理作业中的某个东西。
    3. 特定框架可能使用更专业的术语。例如,在 Seaside Web 框架(用 Smalltalk 编写)中,任务(粗略地说)是一个网站,其行为类似于桌面计算中的向导。

    另一方面,术语“交易”几乎总是传达其数据库语义(除了是针对特定领域的含义,当然,例如会计软件中的金融交易)。因此,事务通常可以启动、提交和中止,有时会重新启动。

    事务可以用于并发编程,就像 (2) 意义上的任务。 典型的例子是Software transactional memory,这种行为是显式的。 GemStone/S OODB 就是这样:一个同时是软件事务内存实现的数据库。在这里,任务和事务实际上是相同的。

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 1970-01-01
      • 2019-10-20
      • 2017-02-10
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      相关资源
      最近更新 更多