In: Economics
Describe some of the interactions between systems that occur during transaction process
Not so long ago, Transaction Processing Systems were the exclusive domain of mainframe computers. Typical examples of such systems would be Airline Reservation Systems, Banking Systems, or the Accounting System of almost any large company. Because of this, Transaction Processing Systems are mostly unknown to the world of personal computers.
But all of this is about to change drastically, and it's all because of the Internet. Today, many small companies, non-commercial organizations, and even private individuals are discovering applications that can benefit from a Transaction Processing System.
The main problems addressed by Transaction Processing Systems are:
Normal time-sharing systems are usually incapable of handling these problems because of the great number of Users. Spawning a unique process for each User having his own copy of all the data simply creates too much overhead for the Operating System.
The World Wide Web easily reaches large numbers of simultaneous Users. Consequently, Web Servers internally work very similar to traditional Transaction Processing Systems, with the exception that they lack database access and state information pertaining to the individual Users.
Transaction Systems handle errors in a safe and consistent manner, but there are certain errors that can not be avoided (e.g. Network errors or Database deadlocks) so a way must exist to handle them when they occur. It is not possible to simply abort a current process. The consequences to a database left in an inconsistent state could render the entire system unusable.
This is why the term Transaction was introduced. A Transaction runs like a sub-program that modifies the database and the session status, leading from one consistent state to another. A Transaction must be atomic (i.e. either all modifications are done, or none of them). Transaction Systems are designed to guarantee that Transactions are atomic.
The major hurdle to be overcome by programmers of Transaction Processing Systems is to write application programs that meet these objectives. Since a program is not alive and unique for each User, the application data can not rest with the program variables between User interactions. Therefore, application programs must contain special routines to handle Session Data. Programs also have to do a great deal of error handling to make Transactions truly safe.
All of these problems are very similar to the current problems of writing Web Applications (except that CGI makes things worse, since there is no support at all for session-wide data and databases).
heitml solves these problems by adding the missing Transaction functionality to a Web Server. It is a Programming Language that internally handles all Transaction Processing activities in a manner that is invisible to the programmer. This greatly simplifies the task of creating safe, secure, Transaction-oriented Web Applications, and it is the reason why the Internet will become the Transaction Processing environment of the future.