实时,近实时和批量的定义是什么?举个例子?

Alb*_*ong 5 etl web-services real-time batch-processing

我想要获得实时,接近实时和批量的良好定义?我不是在谈论同步和异步,虽然对我来说,它们是不同的维度.这就是我的想法

  • 实时是同步Web服务或异步Web服务.
  • 近实时可能是JMS或消息系统或大多数事件驱动的系统.
  • 批处理对我来说更像是一个定时系统,它在唤醒时进行处理.

举几个例子,随意修复我的假设.

and*_*soj 23

https://stackoverflow.com/tags/real-time/info

即时的

实时意味着活动完成的时间是其功能正确性的一部分.例如,sqrt()函数的正确性就像

如果对于所有x> = 0,sqrt(x)= y意味着y ^ 2 == x,则正确实现sqrt()函数.

在此设置中,执行sqrt()过程所需的时间不是其功能正确性的一部分.在某种定性意义上,更快的算法可能更好,但不会更正或更不正确.

假设我们有一个神话函数叫做sqrtrt()平方根的实时版本.想象一下,例如,我们需要计算速度的平方根,以便在防抱死制动系统中正确执行下一个制动应用.在这种情况下,我们可能会说:

如果,则正确实现sqrtrt()函数

  1. 对于所有x> = 0,sqrtrt(x)= y意味着y ^ 2 == x和
  2. sqrtrt() 返回<= 275微秒的结果.

在这种情况下,时间约束不仅仅是性能参数.如果sqrtrt()未能在275微秒内完成,您可能会迟到刹车,触发打滑或降低制动效率,可能导致事故.时间约束是例程功能正确性的一部分.提升几层,你得到一个实时系统(至少部分)由具有及时性作为其功能正确性条件的一部分的活动组成.

近实时

近实时系统是指根据挂钟时间测量的活动完成时间,响应性或感知等待时间是系统质量的重要方面.这个典型的例子是股票代码系统 - 您希望在价格变化后合理地快速获得报价.对于我们大多数非高速交易者而言,这意味着数据可用和我们看到它之间的感知延迟可以忽略不计.

"实时"和"近实时"之间的差异是精度和幅度的差异.实时系统的时间限制范围从微秒到几小时,但这些时间限制往往相当精确.近实时通常意味着较窄的范围 - 在人类感知容差范围内 - 但通常不精确地表达.

我认为近实时系统可以称为实时系统,但它们的时间限制仅仅是概率性的:

股票价格将在交易所变更后500ms内显示给用户,概率p> 0.75.

批量

批处理操作是那些被认为是大块计算任务的操作,只有宏观,人工或过程引起的最后期限.计算的特定上下文通常并不重要,批量计算通常是一个独立的计算任务.实时和近实时任务通常与物理世界紧密耦合,其时间限制来自物理/现实世界交互的需求.相比之下,批量操作可以在任何时间和任何地点计算; 它们的输出仅由定义批次时提供的输入定义.

原帖

我想说实时意味着完成一个操作的时间(而不仅仅是正确的输出)是其正确性的一部分.

近乎实时的是狡猾的词语,因为它们想要与实时相同的东西,但又不想去纪律/努力/成本来保证它.

批量是"接近实时",您可以更加容忍长响应时间.

通常使用这些术语(严重地,恕我直言)来区分人类对延迟/性能的看法.人们认为实时是真实的,例如毫秒或其他东西.近实时通常是几秒或几毫秒.批处理是秒,分钟,小时甚至天的延迟.但我认为这些并不是特别有用的区别.如果您关心及时性,那么有一些学科可以帮助您实现这一目标.