Distributing an application enables you to select which parts of an application should be grouped together logically and where these groups should run. You distribute an application by creating more than one entry in the GROUPS section of the UBBCONFIG file, and by dividing application resources or tasks among the groups. Creating groups of servers enable you to partition a very large application into its component business applications and, in turn, to partition each of these applications into logical components of manageable size and optimal location.
A distributed application include characteristics like: Enlarging the client and/or server model, - Establishing multiple server groups, - Enabling transparent access to BEA TUXEDO services, - Allowing data-dependent partitioning of data, - Enabling management of multiple resources, - Supporting a networked model
Some of the advantages of distributed applications are:
Scalability: The load an application can sustain can be increased by placing extra server processes in a group; adding machines to the application and redistributing the groups across the machines; replicating a group onto other machines within the application and using load balancing; segmenting a database and using data-dependent routing to reach the groups dealing with these separate database segments.
Ease of development/maintainability: The separation of the business application logic into services or components that communicate through well-defined messages or interfaces allows both development and maintenance to be similarly separated and so simplified.
Resilience: When multiple machines are in use and one fails, the remainder can continue operation. Similarly, when multiple server processes are within a group and one fails, the others are present to perform work. Finally, if a machine should break, but there are multiple machines within the application, these other machines can be used to perform the work of the application.
Coordination of autonomous actions: If you have separate applications, you can coordinate autonomous actions among the applications. You can coordinate autonomous actions as a single logical unit of work. Autonomous actions are actions that involve multiple server groups and/or multiple resource manager interfaces.