tags:

views:

385

answers:

8

It drives me nuts to hear business proponents using the term realtime for web-based systems. 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?

+1  A: 

Inline? As in actions happen inline with your actions as opposed to out-of-band or end of the day batch jobs.

BCS
+2  A: 

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. 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.

nsanders
+8  A: 

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". 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.

This is the reason behind terms such as "current balance" and "available balance", e.g., 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.

Jon Limjap
+4  A: 

Immediate? Instant? Live (no, wait, Microsoft owns that word these days, don't they?)?

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.

David Singer
+2  A: 

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. 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.

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.

Pedro
A: 

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).

tloach
A: 

It's a marketing term that means "really fast", like maybe < 1 second.

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.

RichAmberale
A: 

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.

Pete Kirkham