简体   繁体   English

在网络上为业务定义实时

[英]Define realtime on the web for business

It drives me nuts to hear business proponents using the term realtime for web-based systems. 对于基于Web的系统,使用“实时”一词会让我发疯,无法听取业务支持者的话。 I'm becoming the crazy in the room, chanting, "There is no such thing as realtime on the web! We're in banking, not the rocket launch/ship navigation/airplane autopilot business!" 我在房间里变得疯狂起来,高呼:“网络上没有实时性!我们在银行业务,而不是火箭发射/船舶导航/飞机自动驾驶业务!”

Anyone have anything better for performance specifications than realtime, or its horrible hybrid, near-realtime? 在性能规格方面,有人能比实时或其可怕的混合实时性能更好吗?

In the banking industry most of the time "real time" means the opposite of "end-of-day". 在银行业中,大多数时候,“实时”与“日终”相反。

Because there was no such thing as internet/intranet/LANs/WANs in the old days, all balancing is done at "end-of-day". 因为在过去没有Internet / Intranet / LAN / WAN这样的事物,所以所有的平衡都在“一天结束”时完成。 Transactions done in one branch with a certain bank account are oblivious of the transactions done in another; 在一个分支机构中使用某个银行帐户进行的交易将忽略在另一个分支机构中进行的交易; all of the balance resolution will occur during end of day. 所有余额结算将在一天结束时进行。 When mainframes came in the same rule applied: resolutions are done by computer by a long-running-process usually run between 9PM and 12 midnight. 当大型机采用相同的规则时:解析是由计算机通过长时间运行的进程来完成的,该进程通常在晚上9点至午夜12点之间运行。

This is the reason behind terms such as "current balance" and "available balance", eg, available balance is what has been determined by the end-of-day process as an account's balance for the previous day; 这就是诸如“当前余额”和“可用余额”之类的术语背后的原因,例如,可用余额是由日末流程确定为前一天的帐户余额的; current balance is what it's supposed to be, but you can't touch it yet since the bank is not sure if you've made some transaction somewhere else. 当前的余额应该是应该的,但是您不能触摸它,因为银行不确定您是否在其他地方进行过交易。

With the advent of ATMs, the internet, and other interconnectivity technologies, "real time" balance resolution is now possible: a withdrawal, an online transaction, a purchase debit, etc will immediately be reflected in the customers' bank accounts without the need to wait for end-of-day processing. 随着ATM,互联网和其他互连技术的出现,“实时”余额解析现在成为可能:提款,在线交易,购买借记等将立即反映在客户的银行帐户中,而无需等待收尾处理。

Immediate? 即时? Instant? 瞬间? Live (no, wait, Microsoft owns that word these days, don't they?)? Live(不,等等,微软最近拥有这个词了,不是吗?)?

More seriously, "realtime" is probably not confusing for anyone who doesn't have a process-control / embedded-system background. 更严重的是,对于没有流程控制/嵌入式系统背景的人来说,“实时”可能不会使他们感到困惑。 Have a comforting beverage and worry about other things. 喝点令人放松的饮料,并担心其他事情。

Real-time means one thing to an embedded programmer. 对于嵌入式程序员来说,实时意味着一件事情。 It means something else to a normal person. 这对普通人来说意味着其他。 If my online balance always matches my ATM/bank-teller's balance, I would call that pretty real-time. 如果我的在线余额始终与我的ATM /银行柜员的余额匹配,我会称其为实时。 If I can transfer money between accounts, refresh the screen, and immediately see the completed transfer, I would call that real-time. 如果我可以在帐户之间进行转帐,刷新屏幕并立即看到完成的转帐,我会称之为实时。

If you web backend just prints out orders for human intervention, or dumps user-commands in a file for offline batch processing, that would not be realtime. 如果您的Web后端只是打印出人工干预的命令,或者将用户命令转储到文件中以进行脱机批处理,那将不是实时的。

Real time means that as you have a set of tasks that executes in order to execute a task, if one task takes more then the defined time to finish, the whole process fails and probably the system crashes. 实时意味着您要执行一组任务才能执行一个任务,如果一个任务花费的时间超过了定义的时间,则整个过程将失败,并且可能导致系统崩溃。 For example, the application used to control the Mars exploratory vehicle is considered to be an real-time application, even that a command triggered on earth needs 8 minutes to achieves the vehicle and the images of the vehicke cameras takes more 8 minutes to reach the earth. 例如,用于控制火星探测飞行器的应用程序被视为实时应用程序,即使在地球上触发的命令需要8分钟才能达到飞行器,而车辆摄像头的图像也需要8分钟才能到达地球。 So even with a 16 minutes latency between taking the action and seeing the result it can be defined as real-time, because if it takes more than the 16 minutes planned delay, there is a huge risk that the vehicle could collide with a rock or fall into a depression. 因此,即使在采取行动与看到结果之间有16分钟的延迟,也可以将其定义为实时的,因为如果花费的时间超过计划的16分钟,则存在很大的风险,即车辆可能会与岩石或岩石碰撞。陷入萧条。

Back to your example, I don't see a ATM machine, or the above mentioned balances as real-time, they could be Online or Updated but not Real-Time as the system you not crash if takes more time then expected to complete a withdraw at a ATM. 回到您的示例,我看不到ATM机,或者上述余额是实时的,它们可能是“在线”或“已更新”,但不是实时的,因为如果花费更多的时间才能完成系统的安装,您不会崩溃的系统在ATM上取款。

Inline? 排队? As in actions happen inline with your actions as opposed to out-of-band or end of the day batch jobs. 作为的行为与你的行动直列发生,而不是出带外或一天批处理作业结束。

How do you define "real-time" for embedded systems? 您如何为嵌入式系统定义“实时”? I would say that a decent definition is "a system which is able to process and respond to inputs faster than the average time between inputs." 我会说,一个体面的定义是“一个系统,它能够比输入之间的平均时间更快地处理和响应输入。” In other words, a system that will never fall behind in processing compared to the systems which are feeding it data. 换句话说,与正在馈送数据的系统相比,该系统永远不会落后于处理。 Using this definition everything on the web is a real-time system, since web servers that fall behind tend to be inaccessable (ie. the slashdot effect). 使用此定义,Web上的所有内容都是实时系统,因为落后的Web服务器往往无法访问(即,斜线效果)。

It's a marketing term that means "really fast", like maybe < 1 second. 这是一个营销术语,意思是“非常快”,例如,可能不到1秒。

Obviously it can't mean the same thing as when people talk about real-time embedded systems, real-time operating systems, etc. The web is too big and heterogeneous for that. 显然,这与人们谈论实时嵌入式系统,实时操作系统等并不意味着同一件事。为此,网络太大且种类繁多。

One definition of a real time system ( from the safety critical systems world ) is a system whose correctness depends on the timeliness of its responses. 实时系统的一种定义(来自安全关键系统领域)是一种系统,其正确性取决于其响应的及时性。

That would apply equally well for a real-time web trading system - the stock values go stale in seconds as for an embedded avionics fly-by-wire system with millisecond correctness requirements. 这对于实时网络交易系统同样适用-股票价值在几秒钟内就过时了,就像具有毫秒级正确性要求的嵌入式航空电子电传系统一样。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Web API业务层架构及其职责 - Web API Business Layer Architecture and its responsibilities Web API /业务逻辑层体系结构 - Web API / Business Logic Layer Architecture Windows客户端和Web客户端-相同的业务层和数据层 - Windows client and Web client - same business tier and data tier Web API:如何在controller和业务逻辑之间传递数据 - Web API: how to pass data between controller and business logic 架构 Web 应用程序中的服务层与业务层? - Service Layer vs Business Layer in architecting web applications? 是否有在Web应用程序中访问业务逻辑服务的最佳实践? - Is there a best practice for accessing business logic services in a web app? 为了不破坏 SRP,您是否在单独的类中定义应用程序的每个业务逻辑 function? - Do you define each business logic function of an application in separate classes in order to not break SRP? 新Web API和现有ASP .NET网站解决方案的通用业务层 - Common Business Layer for a new Web API and existing ASP .NET Web site Solution 与用户进行大量交互的数据分析Web应用程序应保留业务逻辑的位置 - Where to keep the business logic for a data analysis web app with lot of user interaction 为什么我分离关注数据库/业务对象/ Web服务,让我编写更多代码? - why my separation of concerns Database/Business objects/Web service, makes me write more code?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM