[ Distributed Computing ] [ Distributed Applications ] [ CORBA ] [ Document Object Model (DOM) ]
Client/server computing paradigm came in the 80s in response to the need to share centralized data with a large number of end users, all employing the processing power of increasingly powerful desktop computers. Sophisticated graphical user interfaces has been made possible through utilization of increased processing power on the client computer. It helps to distribute business and application logic to a user's system and to increase the performance potential as processing is being distributed between server and client machines. Thus typical two-tier client/server software architecture partitions functionality in such a manner that the client application performs both business processing and user interface operations. The server in the back-end is used as a data manager, a file server or even database repository.
This design is functional in many business scenarios, but unfortunately the architectural limitations, development pitfalls and lack of support for software reusability have become apparent as days rolled out. Software maintenance in a two-tier architecture is a tedious process. Because the user interface makes direct calls to the database, changes to the database have a widespread impact. Domain-level reuse is nearly impossible due to the tight integration of both business rules with data storage logic or with presentation in some cases.
As a solid remedy for these sorts of inflexibility prevailing in the two-tier model, it was proposed to separate the responsibilities into more than two tiers as divide and conquer policy. The logical separation and loose coupling of tiers isolates each tier from change in the other tiers. Typically a middle tier, which is encapsulating the business logic and application logic, is introduced in between the other two tiers. Services to help support the implementation of middle tier have come to be known as middleware. Thus many of those limitations of two-tiered systems are solved by using multi-tiered, distributed computing systems, such as CORBA. Thus distributed computing is the concept of using multiple-networked computers in cooperation to complete a business process. A well-designed distributed computing system will attempt to place more complex and processor-intensive operations on the faster systems within that network. The WEB is a successful example of a distributed computing system intended largely for human operators. The next logical step is to create a distributed computing system that can interoperate and communicate intelligently without always needing a human to guide its actions.
The idea of middleware has a number of connotations. It is paramount that any software tool touted as middleware increase developer productivity and abstract system complexity. It also allow for clear separation of business logic, aid in supporting reuse and be standards-based apart from exhibiting high reliability and availability. If it is being in an enterprise environment, it has to be highly scalable. Finally a good middleware must support interoperable objects, implemented in different programming languages, residing on different types of platforms, located in a LAN or WAN network. Thus in a distributed object computing setup, a client and server implemented using different object-oriented languages, irrespective of their locations can contact, connect and interoperate to accomplish a business applications. At the moment CORBA is the only one fulfilling the above requirements precisely.