COM+ Programming. A Practical Guide Using Visual C++ and ATL

< BACK  NEXT >
[oR]

Enterprise Systems

An enterprise system typically consists of different programs on different computers interacting with each other. It is a large application, at least compared to a single desktop application, and typically integrates with databases. These applications are generally used in large organizations, and are accessed by hundreds of clients simultaneously.

Historically, developing enterprise systems has been a very long and very expensive process. This is primarily because of the requirements developers had to meet. Let s examine some of those requirements.

Security

Almost all enterprise applications care about security issues. Following are some security requirements:

Scalability

An enterprise system has to be designed such that hundreds of clients can access it concurrently, yet each client request should be serviced in a reasonable amount of time. Some requirements are as follows:

Sharing Resources

A resource such as a database table or some in-memory state of a component is often shared among many subsystems of an enterprise system. In such cases, the requirements are as follows:

Transactions

An enterprise application typically deals with multiple databases. A transaction may require more than one database to be updated. However, if the update succeeds on one database and fails on another, the system may get into an inconsistent state. The possibility of this happening is pretty good, considering that the databases may reside at geographically dispersed locations, and given that power and network outages are facts of life.

A transaction must be such that it entirely succeeds or entirely fails. However many different operations the transaction involves, either everything must be updated successfully or nothing should be updated. This all-or-nothing proposition of a transaction is called atomicity.

Besides atomicity, a transaction has to meet three other requirements: consistency, isolation, and durability. These requirements are typically referred to as ACID rules (A = Atomicity, C = Consistency, I = Isolation, and D = Durability).

An enterprise system has to treat various operations across multiple databases as a single transaction and ensure the integrity of the system by meeting the ACID rules.

< BACK  NEXT >

Категории