Server Report API

InetSoft Enterprise products are based on the report engine from Style Report Pro and share the same Object Oriented design approach. To address the requirements of a distributed computing environment the InetSoft advanced server report API allows a single report to be viewed from any browser.

All user interactions with the report are handled by the report architecture and are transparent to the report developer. This frees the developer from the complexity of diverse environments on the Internet and allows the developer to concentrate on business logic central to the application.

InetSoft Enterprise products are designed as a set of customizable server components to fit into the modern distributed computing architecture. This allows developers to take advantage of the distributed computing environment. A component-based design is required to provide seamless integration and a high level of scalability.

#1 Ranking: Read how InetSoft was rated #1 for user adoption in G2's user survey-based index Read More

The InetSoft server is a collection of server-side components based on the open Java RMI, CORBA and Servlet standards. Components can be tightly integrated into existing applications and servers, and they fully take advantage of services of the underlying distributed platform. Another benefit is the reduced system administration cost. Instead of being managed separately from the existing server, the InetSoft components can become an integrated part of the server and share the same administration procedures.

Low Cost Maintenance

To facilitate low cost maintenance of the server components, we use standard XML to store all structured configuration data and use standard property files to store simple configuration data. An Enterprise Manager servlet provides a web-based interface to the InetSoft environment.

Design patterns are an important part of the object-oriented design of Style Intelligence. The proxy design pattern is used extensively in the design of the 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.

The delegate design pattern is similar to proxy, but Style Intelligence uses delegate in a very different fashion. A delegate is an object that performs certain functions based on the behavior of other objects. 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 working of these classes, it becomes easier to use the overall system.

The interpreter design pattern models a parsing tree of an expression or programming language. Style Intelligence uses the interpreter pattern to represent search conditions. We use the composite pattern in the replet command class. All replet command classes share the same interface. A command is an object that encapsulates the execution of a command. The InetSoft scheduling service uses the command pattern to allow any user-defined actions to be scheduled.

why select InetSoft
“We evaluated many reporting vendors and were most impressed at the speed with which the proof of concept could be developed. We found InetSoft to be the best option to meet our business requirements and integrate with our own technology.”
- John White, Senior Director, Information Technology at Livingston International

What Are the Functions That Should Be Exposed in a Reporting Software API?

A robust reporting software API should expose functions that allow developers to effectively integrate, extend, and customize reporting capabilities within their applications or workflows. Below are the key functions that should be included, grouped by purpose:

1. Data Integration Functions

These functions allow the API to connect to and retrieve data from various sources:

  • Data Connectivity: Functions to connect to databases (SQL, NoSQL), cloud storage (e.g., AWS S3, Google Drive), REST APIs, and data warehouses (e.g., Snowflake, Redshift).
  • Data Querying: Functions to execute SQL or custom queries for data retrieval, including support for parameterized queries.
  • Data Mashup: Support for combining data from multiple sources, transforming it, and ensuring compatibility.
  • Batch and Stream Processing: Real-time or scheduled data extraction options.

2. Report Creation and Customization

These functions provide flexibility for building and personalizing reports:

  • Report Generation: Functions to define, create, and structure new reports programmatically (e.g., selecting columns, grouping, filtering, and sorting).
  • Template Management: APIs to apply pre-designed templates or create new report templates.
  • Visualization Options: Functions to define visualizations like tables, charts, heatmaps, or dashboards.
  • Multi-Format Export: Export functions for popular formats such as PDF, Excel, HTML, CSV, and JSON.
  • Parameterization: Allow developers to specify report parameters dynamically at runtime.

3. Data Transformation

For enhanced report accuracy and customization, the API should include:

  • Data Aggregation: Functions to calculate sums, averages, counts, etc., for grouped data.
  • Data Filtering: Conditional logic to include/exclude data.
  • Calculated Fields: Functions for custom formulas or derived fields.
  • Data Cleansing: Simple transformations like removing duplicates, handling missing values, or formatting strings/dates.

4. Authentication and Security

To ensure safe access to sensitive data and reports:

  • Authentication: Support for OAuth, API keys, or Single Sign-On (SSO) mechanisms.
  • Access Control: Role-based access control to enforce permissions for users and applications.
  • Audit Logging: Functions for tracking API usage and report access.

5. Scheduling and Automation

APIs should allow for scheduled or automated workflows:

  • Scheduled Reports: Functions to set up automatic report generation and distribution (e.g., via email or webhooks).
  • Notifications: Functions to notify users of report availability or delivery.
  • Job Management: Options to track, pause, or stop running report-generation tasks.

6. Data Visualization and Interaction

Interactivity is crucial for modern reporting tools:

  • Dynamic Dashboards: Functions for embedding interactive dashboards into web apps.
  • Drill-Down/Drill-Through: Ability to interactively explore data within reports.
  • Filtering and Search: Functions to dynamically filter data or search within reports.
  • Real-Time Updates: Support for live dashboards with streaming data.

7. User and System Management

Administrative functions for effective API and user management:

  • User Management: Functions to add, modify, or remove API users and set permissions.
  • Report Sharing: APIs to share reports or dashboards securely with other users or teams.
  • System Monitoring: Functions to monitor the health, performance, and uptime of the reporting system.

8. Embedding and Integration

Critical for seamless integration with other platforms:

  • Embedded Reporting: Functions to embed reports or dashboards into third-party applications or websites.
  • Styling and Branding: Options to customize the appearance of embedded reports.
  • Integration Hooks: Support for webhooks, event triggers, or API callbacks to enable integration with other tools.

9. Logging and Debugging

Diagnostic features for troubleshooting and system health:

  • Error Reporting: Functions to log and retrieve error messages.
  • API Usage Metrics: Analytics on API calls, response times, and error rates.

10. Performance Optimization

For high-demand systems with extensive datasets:

  • Caching: Functions to cache query results or reports for faster retrieval.
  • Pagination: Support for retrieving large datasets in manageable chunks.
  • Load Balancing: API functions to distribute reporting workload effectively.

11. Documentation and Testing Support

An effective API should also provide:

  • Self-Descriptive APIs: Functions to retrieve metadata about available reports, data sources, or supported features.
  • Sandbox Environment: A test environment to validate API integrations.
Previous: Report Programming Classes