If the reliability of your server-based application is a concern, then the Byzantine fault-tolerant features provided by FARGOS/SolidState may be the solution for which you have been looking. Although an organization may not have attempted the in-house development of client/server or peer-to-peer applications, their web site actually implements the server-side component of a popular client/server application. Since the World Wide Web is familiar to many individuals, it is used as the backdrop for the explanation below; however, FARGOS/SolidState is applicable to a wide variety of distributed, transaction-oriented applications.
If you are not concerned about the reliability of your web site, maybe you should read this discussion regarding problems faced by web sites.
The table below describes the various levels of reliability that can be achieved by an application.
|Level||Minimum Machines Required||Comments||No reliability||1||This is the most typical type of application: if something goes wrong, the application fails to operate correctly.|
|Highly-available||2||This is the most common level of reliability actually achieved by vendors of "reliable" systems. Some vendors incorrectly claim their product to be fault-tolerant, when it is merely highly-available.|
|Fault-tolerant||3||An important, but much rarer level of reliability in which a well-behaved fault can be tolerated without affecting the correct operation of the system and is very rare compared to highly-available system.|
|Byzantine fault-tolerant||4||An extremely rare level of reliability in which an arbitrary, potentially malicious, fault can be tolerated without affecting the correct operation of the system.|
Without requiring any details about the internals of an application, one can determine the minimum possible reliability achieveable merely by counting machines. For example, if the application runs on a two machines, the redundancy is being used to achieve, at best, high-availability.
Highly available systems provide a means to return the system to an operational state within a period of time shorter than that required to repair the fault in question; however, they do not guarantee that work in progress at the time the fault occurred will be preserved. A much smaller set of products actually provide fault-tolerance, which means that a particular, expected fault can be handled with no visible impact on correctness. Most systems that manage to implement fault-tolerance assume that the underlying system will fail in a clean fashion.
FARGOS/SolidState does not make such simple assumptions because it supports Byzantine fault-tolerance. Among others, this permits toleration of faults introduced by a maliciously malfunctioning server. Such an event could occur in a variety of ways. These include:
Much of the end-user e-commerce on the Internet takes place over HTTP-based connections. The more sophisticated sites allow a customer to browse an online catalog of items, select desired items and place an order. This entire process may involve a significant investment of time on the part of the customer, depending on a variety of factors, such as:
In most situations, it is not until the customer actually places the order that the merchant is able to profit from the customer's shopping experience. Thus, anything that gets in the way of a successful conclusion to the order process places this revenue at risk.
Because HTTP is inherently a stateless protocol, most web-based shopping applications are designed in such a fashion so as to be able to tolerate the crash of the customer's web browser (the necessary state is retained on the user's computer via a cookie). Ironically, while crashes of a component that is not under the control of a merchant are tolerated, a similar failure of the merchant's web server(s) and back-office systems would result in a loss of the customer's pending order. Depending on the uniqueness of the site's offerings, the customer may be disinclined to redo his shopping and could take his business elsewhere. The removal of distance as a barrier is one of the Internet's great benefits, but the same ease with which customers can visit a web site also works to make it easy for them to shop elsewhere. FARGOS/SolidState's Byzantine fault-tolerant web server infrastructure provides an easy-to-use facility that gracefully handles failures of a merchant's web server or other back-office components. Toleration of such faults preserves the investment of effort made by customers when shopping at a given site and retains the revenue streams that otherwise would have been lost.
Byzantine Fault-Tolerant HTTP Services using FARGOS/VISTA
A self-contained, working demonstration of a typical e-commerce shopping cart application, which was built with FARGOS/SolidState, is available from the downloads page. No skills other than the ability to browse a particular URL and to kill a process on your system are required to experiment with the demonstration.
Arbitrary inquiries may also be sent directly to firstname.lastname@example.org.