JasperReports Server это web-приложение на java (spring, hibernate, axis), бегающее на tomcat сервере (по умолчанию — http://localhost:8080/jasperserver/ ) с postgres базой данных. Основная цель — бизнес аналитика, тоесть получение агрегированных данных для отчётности по продажам, пользователям, их поведению.
Как альтернатива вы конечно можете всё написать сами, но готовое решение легче в обучении для далёких от программирования людей. Аналогичные продукты этой многомиллиардной индустрии — CrystalReports, Pentaho, Windward, SpagoBI, SAS, BiRT. Они часто ещё называются складами данных, поскольку у них нет тех требований в скорости ответа как у традиционных баз данных, в то же время они могут хватить петабайты данных за десятки лет, который в определённый момент надо проанализировать по новым правилам.
В качестве источников данных могут выступать:
- любая база данных через JDBC адаптер
- no-sql/масштабируемые хранилища — MongoDB, Redis, Neo4j, hadoop-hive, couchdb, cassandra..
- веб-услуги через XML, JSON
- файлы (xlsx, csv)
- всевозможные продукты — SugarCRM, SAP, Jboss
Как я уже сказал, используется postgres в качестве хранилища, а для гибкого анализа вместо обычных нормализованных схем с JOIN-ами, используется фактологическая схема в виде звезды, которая и хранит всю информацию. Понятно что по одной таблице такие запросы будут быстрей, да и данные особо то не меняются. Аналитики называют такой подход OLAP
iReport
Составление отчёта происходит на основе правил в XML файле (видимо так принято во всём java-мире). Файл это можно написать конечно и вручную, но лучше использовать поставляемый IDE — iReport, где уже есть заготовленные шаблоны.
Доклады можно делать периодически и высылать по почте. Вот так выглядит настройка дизайна отчёта в редакторе:
См. также:
- Цикл статей от Вадима Войтюка об интеграции с java-кодом и о создании xml-шаблона
- Экспорт доклада в PDF с помощью php через SOAP
- Using jasperreports with php