Data Report and Analysis Tools

Background

This document highlights research that began with spike OLMIS-1513.


Summary

Commercial reporting options are expensive.  The very least that TIBCO’s paid offering would cost is $4,100 per year – and that’s for a wholly unsupported product. Tableau, meanwhile, would likely involve an outlay of over $10,000 for the first year. Although costs vary significantly by licensing scheme, they seem prohibitive in most cases. Even if VillageReach could afford them with our current grant, they seem likely to curtail OpenLMIS’ appeal for use with other endowments. They also inherently conflict with the goals and expectations of most open source projects. 

The Community Edition of JasperReports Server meets our project’s most basic reporting needs free of cost. It’s customizable, capable, and has the benefit of being based on technology already used in previous versions of OpenLMIS. It would thus offer an easy upgrade path to organizations interested in using preexisting OpenLMIS reports within version 3. Furthermore, its use doesn’t preclude later migration to a commercial edition of JasperReports if and when need be. For these reasons, adopting JasperReports Server Community Edition seems like the best option for now.


Details - JasperReports

At the behest of OLMIS-1513, I thoroughly explored JasperReports’ Commercial versions. They’re what TIBCO publishes as an AMI, and what they showcase during demos. They’re feature rich and support everything we could possibly want. Unfortunately, they’re also expensive. The following cost/feature breakdown of various JasperReports options focuses on the features most relevant to OpenLMIS. Costs are approximate and take our non-profit status into account where applicable. Estimated hosting costs assume an annually reserved m3.medium paid for in advance.


Community Edition (Free license; $380/year for hosting)

  • Open source
  • Cascading selects
  • Customizable interface
  • Accessible REST API
  • Limited ability to embed reports in external applications
  • Limited charting, sans maps, courtesy of JFreeChart and shown here.
  • Spring based security with the potential to integrate with OpenLMIS’


Hourly AWS AMI ($4,100 / year for both license and hosting)

The software includes everything in the Community Edition plus:

  • Interactive charts and maps implemented via Highcharts.
  • Significantly better ability to integrate reports into external applications.
  • A drag-and-drop report designer that seems much easier to use than JasperSoft Studio. Whereas the former targets end users, the later is intended for developers.
  • Multi-tenancy – available in the $7,000 / year edition. (Cost includes hosting)

Note that this option is largely unsupported by TIBO. Their site says to “contact Jaspersoft’s sales team for the discounted annual subscription of the hourly offering.” The page includes broken links, though, and seems dated. The sales engineer I spoke with had almost no information about the hourly AMIs, and said they can’t currently be discounted. It was very clear that this isn’t an option he’d promote or help with.

This option has no user limit and may be run using a range of EC2 instances. This is more attractive that TIBCO’s supported AWS offerings, listed below, which are licensed for specific types of EC2 instances.

This page implies that ETL comes standard with the BYOL (Bring Your Own License) option. In fact, however, the licenses discussed below do not include ETL support.


Professional Edition ($13,000 / year license + $380 hosting)

This option includes everything in the Community Edition plus:

* Standard TIBCO support with 12 calls per year.

This is the least expensive option that the sales engineer would meaningfully discuss with me. It allows for as many users as an m3.large can accommodate. Depending on the use case, the sales engineer estimated this at 25 - 50 concurrent users. Running JasperServer Professional Edition on an EC2 instance larger than an m3.large would require a new license agreement with TIBCO.


Enterprise Edition ($20,000 / year license + $380 hosting)

Includes everything in the Professional Edition plus:

  • Multi-tenancy.
  • Audit logging and report-performance analysis.


Enterprise Edition Premium ($30,000 / year + $380 hosting)

Includes everything in the Enterprise Edition plus:

  • A license for running a production environment on up to 4 cores (rather than the 2 cores which come standard with the Professional and Enterprise Editions).
  • Two additional server licenses, intended for development and QA environments, neither of which have user or hardware restrictions.


What we may miss most by using of the Community Edition:

  • The drag-and-drop report designer. It would be great for our end users to have the flexibility to design and customize their own reports. As is, they have to rely on developers who, in turn, rely on JasperSoft Studio. This seems like a clunky tool that tends to produce ugly output.
  • Maps, and the ability to create interactive HTML5 based charts. The VIMS project involved some fancy graphs, and users seem to appreciate them.
  • The ability to incorporate dynamic charts into OpenLMIS. TIBCO’s most feature-rich tool for doing so is Visualize.js, which doesn’t come with the Community Edition. It’s possible, however, that such integration would add minimal value to our end users - and thus be inappropriate. All that really matters is that users can conveniently access the reports they need. JasperReports Server is already designed to allow for such access, and reinventing its functionality within OpenLMIS thus doesn’t seem necessary.

Details – Tableau

After beginning to explore TIBCO’s commercial offerings, I quickly turned my attention to Tableau’s. After all, through the purchase of several Tableau Desktop licenses, we’ve already invested in their ecosystem.

Tableau has a lot to offer. It gives end users the ability to build beautiful and highly interactive charts without the need for relying on developers. Their ecosystem isn’t as mature as TIBCO’s, but feels significantly more modern and refined. It seems to do a better job of offering the features we care about, with the following exceptions:

  • Skinnable UI – Tableau Online/Server isn’t skinnable. It allows charts, though, to be richly embedded within third-party (skinned) applications.
  • Security – One of the few differences between Tableau Online and Server is that the former doesn’t offer as many options for authentication. In terms of single-sign on, Tableau Online is limited to SAML. We’d have to work closely with a Tableau engineer to ensure security related integration between their product and ours. This is something they’d help us setup free of charge, however, regardless of which product we purchase.

The following breakdown of their options focuses on the features most relevant to OpenLMIS. Costs are approximate and take into account our non-profit status.
 

Tableau Public (Free)

This seems fully featured. I didn’t seriously consider the option, however, because it publically exposes all of its hosted reports. This would be a major source of concern and criticism for OpenLMIS.


Tableau Online ($500 per user per year)

Both report authors as well as consumers require licenses. Leveraging a single account to embed reports within third-party webpages simultaneously accessed by multiple users violates Tableau’s EULA. By limiting the number of OpenLMIS users who have access to reports, either within Tableau Online or OpenLMIS, implementers can likely make this an affordable option. I think it would still expose OpenLMIS, however, to severe criticism.


Tableau Server ($10,247 for the first year… details below)

Tableau Server is licensed either by user or per CPU-core. Only the former could possibly make sense for us – the later costs hundreds of thousands of dollars and is intended for a larger user base. Meanwhile, the per-user license scheme requires the purchase of at least ten user licenses. Afterward, licenses can be bought in increments of one.

A ten-user license of Tableau Server would cost us $7,500 for the first year. Optional support and upgrades would cost $1,500 for subsequent years. In either case, additional users would be $750 apiece.

The above costs don’t factor in hosting costs. Unfortunately, Tableau Server only runs on Windows. Given its hardware requirements, we’d likely want at least a t2.2xlarge that, if paid for upfront, would cost about $2,747 per year.

For ten users, Tableau Server would thus cost about $10,247 for the first year.

It’s possible that typical implementations wouldn’t need ten licenses. Implementers could then use Tableau Server’s multi-tenancy feature to share their instance of the service among their implementations. I think that advocating such an approach, though, would needlessly raise OpenLMIS’ barrier to entry. 


Note about ETL

 TIBCO has an ETL related product, but doesn’t include it in the plans discussed above. Meanwhile, Tableau’s ETL support is minimal. I think that this is functionality we can implement on our own, though. It thus needn’t be a deciding factor when weighing reporting solutions.


OpenLMIS: the global initiative for powerful LMIS software