Transaction Processing Systems

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:

  • the need to handle hundreds, even thousands of simultaneous Users
  • the need to allow many Users to work on the same set of data, with immediate updating
  • the need to handle errors in a safe and consistent manner
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.

  • heitml connects the Web Server and the Database system. Used in conjunction with a suitable database system, heitml coordinates Transactions and takes care of all error handling chores. heitml automatically takes care of data related to an individual User's session and reloads it into the appropriate Server task/thread.
  • heitml hides all Transaction Processing activity from the User, so session variables (and everything reachable on the heap) stay persistent between page accesses. In actual practice, heitml accomplishes this through the use of its own internal garbage collection procedures to determine which data is needed, and saves it until the next page request.

This page was dynamically generated by the web application development tool RADpage of H.E.I.
© 1996-2014 H.E.I. All Rights Reserved.



Homepage
Intro/Features
  Browser RAD
  Components
  for Designers
  for Programmers
  for ISPs
  heitml Technology
    Web Server Approach
    Transaction Processing
    Features Apache
  Script Library
  Compatibility
  Quick Summary
Component Guide
Programming
User Guide
FAQ
Mailinglist
Discussion Group
Services
Pricing/Register
Download
Frame
 
Contact
 
 
 
Search: