5.1. Jasper Report (Deprecated)#
Uygulamalara Jasper Report üzerinden raporlama yeteneği sağlayan uygulamadır.
Yetenekler#
- Senkron rapor çıktıları oluşturulmasını sağlar.
- Asenkron rapor çıktıları oluşturulmasını sağlar.
İstek Yaşam Döngüsü(Request Lifecycle)#
Report instance senkron ve asenkron iş akışlarına sahiptir.
hvl-jasper-report-server için dış uygulama olarak cache için redis ve güvenlik için security instances kullanır.
SECURITY_ENABLED: 'false' olarak işaretlendiğinde akışta client ilk istekleri için token doğrulaması yapılmaz.
CACHE_TYPE: 'simple' olarak ayarlandığında her bir instance inmemory cache kullanımına geçer ve redis bağlantısı aramaz.
Senkron Rapor İsteği (Sync Report Request)#
- İstemci rapor isteğinde bulunur.
- Güvenlik aktif ise token doğrulaması yapılır.
- Cache aktif ise veri cache üzerinden sağlanır.
- İstemcinin talep ettiği rapor TIBCO Jasper Server üzerinden alınır.
- İstemci isteğine dönüş yapılır.
Asenkron Rapor İsteği (Async Report Request)#
- İstemci rapor isteğinde bulunur.
- Güvenlik aktif ise token doğrulaması yapılır.
- İstemcinin rapor talebi RDMS üzerine kayıt edilir.
- hvl-jasper-report-server uygulaması ile birlikte çalışmaya başlayan Quartz Scheduler belirlenen zaman aralığı ile rapor durum kontrolü yapılmasını tetikleyen event gönderir.
- hvl-jasper-report-server bu eventi dinleyerek raporun durumunu TIBCO Jasper Server üzerinden kontrol etmektedir.
- hvl-jasper-report-server rapor hazır durumunu kafka üzerinde bir kuyruğa event(readyReports) olarak gönderir.
- hvl-jasper-report-server hazır olan raporu tibco üzerinden okuyup, file-system support kullanarak belirlenen sisteme yazar
- hvl-jasper-report-server rapor tamamlandı durumunu kafka üzerinde bir kuyruğa(finishedReports) event olarak gönderir.
- Bu işlemlerin ardından istemci kafka üzerinde raporun sonlanma durumunun yazıldığı kuyruğu dinler. Rapor sonlandığında iş mantığı doğrultusunda raporun çıktısını senkron olarak talep edebilir.
hvl-jasper-report-server async işlemleri için güvenlik katmanında async-token-provider kullanmaktadır.