Reporting design patterns are an important part of the object-oriented design of InetSoft Enterprise products. The use of design patterns not only facilitates ease of use; it also helps programmers understand the high-level framework behind the object design. This chapter documents the design patterns used in the InetSoft enterprise-specific classes.
The proxy design pattern is used extensively in the design of InetSoft Enterprise products. This pattern is applied to allow the server components to support multiple communication protocols and is used in the clustering of servers for better scalability.
InetSoft Enterprise products support Java RMI communications between client and servers. The client can choose between two varieties of server: RMI and servlet (regular Java class). To the client, both servers share the same API. The details of the protocol are hidden behind the client-side proxies.
In the case of client-side proxy, the proxy serves as an API adapter and protocol handler. The client uses the base interface RepletRepository for all protocols and it is up to each proxy to implement the interface and forward the request to the appropriate server.
Another use of proxy is for transparent load balancing. There are two basic types of load balancing. Client-side load balancing makes the client choose which server to communicate with and balance the load between the servers known to the client. Server-side load balancing hides the fact that there are multiple servers from the client and transparently distributes the requests to available servers.
InetSoft Enterprise products use proxy to build transparent server-side load balancing. By using a proxy to hide the fact that there are multiple servers, the use of load balancing is transparent to the client. The server configuration can be changed without any code modification.
Here are several ways in which InetSoft supports scalability:
Copyright © 2024, InetSoft Technology Corp.