InetSoft Product How-To: Custom Report Repository Protocol

The repository server is the main component on the server that performs most of the report generation inside the viewers. The repository uses one of the RMI, HTTP, CORBA or SOAP protocols. A repository proxy class may be implemented to provide support for a different protocol.

The third-party protocol support is mainly for communications between a custom implemented viewer and a repository server. For a Servlet-based Web Viewer, the repository already resides on the server machine and there is no need to use a protocol to communicate between the servlet and a repository.

To incorporate a different protocol, you need to follow these steps:

1. Create a Repository Client Proxy.

The proxy should implement the RepletRepository interface. In each method, it should forward the request (method parameters) to the server and pass the result back.

public class RepositoryProxy implements RepletRepository {
public RepositoryProxy(…) {
// establish connection to the server
// using the third-party protocol
}
 
public Object create(String name, Object ticket)
throws RemoteException, RepletException {
// call the server to perform a create()
// return the result from the server
}
}
custom marketing management report

2. Create a Repository Server. The server exposes methods to be called by the proxy using the same protocol. It can use the Replet Engine as the implementation of the repository.

public RepositoryServer2 {
public RepositoryServer2() {
engine = new RepletEngine();
engine.init();
// register with protocol as needed...
}
 
// The signature of this method is protocol-dependent.
// We use the same signature as the RepletRepository for
// convenience. This is the method the client proxy
// calls through the protocol
public Object create(String name, Object ticket) {
return engine.create(name, ticket);
}
}

3. Create a proxy repository in the client and pass it to the viewer:

RepositoryProxy proxy = new RepositoryProxy(…); 
Viewer viewer = new Viewer(proxy); 

Depending on the protocol selected for the proxy and server, the implementation needs to convert the Java object parameters and return values to the data structures supported by the protocol. All objects used in the RepletRepository methods are serializable. Therefore, the easiest way to convert the parameters is to serialize the objects into bytes, pass them across the protocol as raw data and convert them back to Java objects at the receiving end.

view demo icon
View a 2-minute demonstration of InetSoft's easy, agile, and robust BI software.

Summary of Browsing Reports from a Web Browser

InetSoft provides the Web Viewer for browsing reports from a client: The Web Viewer is based on HTML, CSS and JavaScript. It can be used with Firefox 2.x and later, Netscape 6.x and later, and Internet Explorer 6.x and later.

The viewer is different from the previewer provided in the Report Designer. The viewer is designed from the ground up to browse interactive reports. In addition to displaying the contents of a report, it also handles the rich set of user interactions supported by the replet environment and provides advanced searching and navigation functions.

Differences in browsers have little effect on the report developer.

Previous: Report Viewing Interactivity