InetSoft Product Information:

Delegate Design Pattern

The delegate design pattern is similar to proxy and is sometimes treated as the same process. However, since InetSoft enterprise products use delegate in a very different fashion, we separate it out for more clarity. A delegate is an object that performs certain functions on behalf of other objects. It can be used to dynamically change the behavior of an object. This property makes it a perfect solution for adaptable Application Program Interface(API). The logging service of InetSoft Enterprise products uses the delegate pattern to allow dynamic redirection of logging messages.
Learn about the top 10 features of embedded business intelligence.

Facade Design Pattern

The facade design pattern uses a single class to encapsulate the functionality of multiple children classes. By reducing the number of classes and hiding the intricacy of the inner workings of these classes, it becomes easier to use the overall system. We use the facade design pattern in several classes. The most obvious is the web-based report viewing system.

All DHTML related functionality, including HTML page generation, DHTML widget and action handling, resource loading and replet execution are encapsulated behind one servlet. The internal classes used to support this functionality are hidden from users. This design allows very easy installation and configuration of the Web server. Instead of installing multiple HTML files, images, servlets and JavaScript files, a single servlet handles everything related to DHTML tasks.

BI Demo Register

Interpreter Design Pattern

The interpreter design pattern models a parsing tree of an expression or programming language. It is an executable representation of the expression. After an interpreter object is built for an expression, the interpreter can be executed to evaluate the expression. The internal hierarchy of the expression is captured in the interpreter object tree.

InetSoft Enterprise products use the interpreter pattern to represent search conditions. Each condition is a combination of comparison or logic expressions. After a search condition object is created, it can be applied to a page to evaluate the page elements to check if the condition is met.

Composite Design Pattern

A composite object is an object that is composed of multiple instances of other objects. All objects share a common composite interface. The common interface allows the user of the objects to treat a composite object in the same way as a single object.

We use the composite pattern in the replet command class. All replet command classes share the same interface. A command object can be a concrete implementation of a command, or can be composed of several other commands.

Command Design Pattern

A command is an object that encapsulates the execution of a command. It often serves as the generic API for adding user-defined actions to an existing system. The InetSoft Enterprise products scheduling service uses the command pattern to allow any user defined actions to be scheduled. With this generic API, the scheduler can be used for scheduling tasks other than report generation.

Read how InetSoft was rated #3 for implementation in G2 Crowd's user survey-based index.