birt in enterprise architekturen - oio · birt - business intelligence reporting tools • birt:...

24
BIRT in Enterprise Architekturen Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Tobias Kieninger Java, XML und Open Source seit 1998 ) Competence Center) ) Object Rangers ) Schulungen, Coaching, Unterstützung laufender Schlüsselfertige Realisierung ) Software Factory ) © 2009 Orientation in Objects GmbH 2 BIRT in Enterprise Architekturen Weiterbildungsberatung, Train & Solve-Programme Methoden, Standards und Tools für die Entwicklung von offenen, unternehmens- weiten Systemen Java Projekte Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing von Java Software Individualsoftware Pilot- und Migrationsprojekte Sanierung von Software Software Wartung

Upload: others

Post on 01-Jun-2020

37 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

1

BIRT in Enterprise Architekturen

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Tobias Kieninger

Java, XML und Open Source seit 1998

) Competence Center)) Object Rangers )

• Schulungen, Coaching, • Unterstützung laufender• Schlüsselfertige RealisierungJ S f

) Software Factory )

© 2009 Orientation in Objects GmbH

2

BIRT in Enterprise Architekturen

Weiterbildungsberatung, Train & Solve-Programme

• Methoden, Standards und Tools für die Entwicklung von offenen, unternehmens-weiten Systemen

Java Projekte

• Perfect Match• Rent-a-team• Coaching on the project• Inhouse Outsourcing

von Java Software

• Individualsoftware• Pilot- und Migrationsprojekte• Sanierung von Software• Software Wartung

Page 2: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

2

Tobias Kieninger

Beratung

Projekte

Im a pogramar

Iam a programer

I'm a programor

I write code

© 2009 Orientation in Objects GmbH

3

BIRT in Enterprise Architekturen

Training

Gliederung

• Jump in! • Web(frameworks)• Application Server• Application Server

© 2009 Orientation in Objects GmbH

4

BIRT in Enterprise Architekturen

Page 3: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

3

Reporting im Alltag - Gestern und Heute

© 2009 Orientation in Objects GmbH

5

BIRT in Enterprise Architekturen

BIRT - Business Intelligence Reporting Tools

• BIRT: Business Intelligence and Reporting Tools– Toplevel Eclipse Projekt– Initiale Sourcen von ActuateInitiale Sourcen von Actuate

• Homepage: http://www.eclipse.org/birt

• Version– 1.0 Juni 2005

© 2009 Orientation in Objects GmbH

6

BIRT in Enterprise Architekturen

6

– 2.1.2 Februar 2007– 2.2.2 März 2008– 2.3.2 Februar 2009

Page 4: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

4

BIRT Designer

© 2009 Orientation in Objects GmbH

7

BIRT in Enterprise Architekturen

Eclipse Report Designer

BIRT API Übersicht

Report Engine

Data

Generation Presentation

Report Design Engine

ReportD t

HTMLPDFPrintXML…

Transform ChartingEclipseDTPODA

ChartDesigner

EclipseWTP

© 2009 Orientation in Objects GmbH

8

BIRT in Enterprise Architekturen

DataXMLReportDesign

Document

Page 5: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

5

• Birt Runtime als eigener Download• Enthält

ReportEngine

Birt Engine API

– ReportEngine– birt.war– WebViewerExample– ...

Report Engine

© 2009 Orientation in Objects GmbH

9

BIRT in Enterprise Architekturen

BIRT als OSGi Container

• Läuft in Eclipse Umgebung– OSGi framework– Ohne UI KomponentenOhne UI Komponenten

• Configuration• Libraries• Plugins

© 2009 Orientation in Objects GmbH

10

BIRT in Enterprise Architekturen

Page 6: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

6

Technologien auf der Birt Reise (Auswahl)

Webapppp

Rich Client

JEE

Spring

RCP

Swing

Standalone

SpringMVC

GWT JSF

EJB

© 2009 Orientation in Objects GmbH

11

BIRT in Enterprise Architekturen

RelationaleDB

WebservicesXML

EJB

Webapp

JEE Architekturen

HTML PDF Excel Word Powerpnt

Rich Client Standalone

XML ...

...Webapp

Spring

JEE...

Rich Client Standalone

Spring

Standalone

Spring

© 2009 Orientation in Objects GmbH

12

BIRT in Enterprise Architekturen

Relational Webservices XML ...

Page 7: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

7

BIRT Web Integration

HTML PDF Excel Word Powerpnt XML ...

Webapp Webapp

Webviewer

Webapp

BirtServlet +Taglibs

ContainerReport Engine

Webapp

ReportService

© 2009 Orientation in Objects GmbH

13

BIRT in Enterprise Architekturen

Datasource

Report Engine

BIRT Rich Client Integration

HTML PDF Excel Word Powerpnt XML ...

Swing App Swing AppRCP App Swing App

Report Engine

Report Engine

Swing App

ReportService

Container

RCP App

WebviewerPlugIn

© 2009 Orientation in Objects GmbH

14

BIRT in Enterprise Architekturen

Datasource

Report Engine

Page 8: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

8

Gliederung

• Jump in!• Web(frameworks)• Application Server

• Webviewer• Frameworks

• Application Server

Webviewer

© 2009 Orientation in Objects GmbH

15

BIRT in Enterprise Architekturen

BIRT Web Viewer

• Generierung des Reports in verschiedenen Ausgabeformaten• Export zu CSV• Rendert auch Bilder und Charts• Rendert auch Bilder und Charts• Inhaltsverzeichnis• Parameter

© 2009 Orientation in Objects GmbH

16

BIRT in Enterprise Architekturen

16

Page 9: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

9

Deployment des Web Viewers

• Simples Deployment– birt.war in ServletEngine deployen– Reports und Resourcen hineinkopierenReports und Resourcen hineinkopieren– Datenbanktreiber nicht vergessen

• Bemerkenswerte Verzeichnisse– Logging– Scriptlib – webcontent/birt

WEB INF/lib

© 2009 Orientation in Objects GmbH

17

BIRT in Enterprise Architekturen

17

– WEB-INF/lib– WEB-INF/platform

Konfiguration in der WEB.XML

• Auszug Konfigurationsvariablen– BIRT_VIEWER_WORKING_FOLDER– BIRT VIEWER IMAGE DIRBIRT_VIEWER_IMAGE_DIR– BIRT_VIEWER_LOG_DIR – BIRT_VIEWER_LOG_LEVEL– ...

• Vorsicht, möglicher Stolperstein

...<context param>

© 2009 Orientation in Objects GmbH

18

BIRT in Enterprise Architekturen

18

<context-param><param-name>BIRT_VIEWER_LOG_DIR</param-name><param-value>logs</param-value>

</context-param>

...

Page 10: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

10

Webviewer Servlets

http://server/myapp/frameset?opt1=val1&opt2=val2http://server/myapp/run?option1=value1&option2=value2http://server/myapp/preview?option1=value1&option2=value2p y pp p p p

• Frameset– Vollwertiger Reportviewer– Menue, Inhaltsverzeichnis, Export, ...

• RunB i h h M

© 2009 Orientation in Objects GmbH

19

BIRT in Enterprise Architekturen

– Bericht ohne Menue

• Preview– Rendern von rptdocument Dateien– Kein AJAX

Auswahl möglicher Parameter

http://server/myapp/frameset?__format=html&__report=MyReport.rptdesign&myParam=value1

• __format – Ausgabeformat (html, pdf, ...)• __report – Pfad zu .rptdesign• __document – Pfad .rptdocument• Parametername=Wert• ...

© 2009 Orientation in Objects GmbH

20

BIRT in Enterprise Architekturen

20

Page 11: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

11

Gliederung

• Jump in!• Web(frameworks)• Application Server

• Webviewer• Frameworks

• Application Server

WebappBirt Servlet

+Taglib

© 2009 Orientation in Objects GmbH

21

BIRT in Enterprise Architekturen

Integration als Servlet

• Report Engine starten/stoppen ist zeitintensiv• Integration als Singleton während Webanwendungsstart• Konfiguration via web xml• Konfiguration via web.xml

– Servlets und Parameter

© 2009 Orientation in Objects GmbH

22

BIRT in Enterprise Architekturen

MyWebapp

BirtServlet +Taglibs

Page 12: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

12

BIRT Taglibs

• <birt:viewer/>– Reportviewer vgl. Webviewer– Menue Inhaltsverzeichnis ExportMenue, Inhaltsverzeichnis, Export, ...– Viel AJAX

• <birt:report/>– Bericht ohne Menue– Ausgabe in <div> oder <iframe>

© 2009 Orientation in Objects GmbH

23

BIRT in Enterprise Architekturen

<birt:report id="r1" reportDesign="report1.rptdesign"format="html" reportContainer="div">

<birt:param name="param1" value="someValue"/></birt:report>

Ein paar Themen nicht vergessen - Security

http://myserver/run?__report=Gehaltsrg.rptdesign&user=tkiening

• ParameterinjectionParameterinjection– Reportparameter – Ausführen beliebiger Reports

• Reportdesign öffentlich– Aktive Suche nach Schwachstellen möglich– DB Kennwort in rptdesign?

© 2009 Orientation in Objects GmbH

24

BIRT in Enterprise Architekturen

• Birt Security ist großes Thema– Report Security– Column Security– Row Security

Page 13: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

13

Gliederung

• Jump in!• Web(frameworks)• Application Server• Application Server

Ser ice

© 2009 Orientation in Objects GmbH

25

BIRT in Enterprise Architekturen

Report Engine

ServiceContainer

OSGi Platform

Starten von BIRT via OSGi Platform

OSGi Platform

Startup(config);Shutdown();createFactoryObject(...)

PlugInPlugInPlugInPlugIns

EngineConfig

PlatformContext

© 2009 Orientation in Objects GmbH

26

BIRT in Enterprise Architekturen

Page 14: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

14

Config die uns betrifft...

• EngineConfig– Logging: BIRT verwendet java.util.logging– ClasspathClasspath– Resource Home– ... (und mehr)

• IPlatformContext– Default: PlatformFileContext– PlatformServletContext für Webanwendungen

EngineConfig

PlatformContext

© 2009 Orientation in Objects GmbH

27

BIRT in Enterprise Architekturen

EngineConfig config = new EngineConfig( );config.setBIRTHome("c:/birt-runtime/ReportEngine"); config.setLogConfig("c:/temp", Level.FINE);config.setResourcePath("c:/myproject/resources");

...

OSGi Platform

Starten der ReportEngine / DesignEngine

OSGi Platform

ReportEngineFactory

DesignEngineFactory DesignEngine

ReportEngine

PlugInPlugInPlugInPlugIns

© 2009 Orientation in Objects GmbH

28

BIRT in Enterprise Architekturen

Page 15: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

15

HelloWorld BIRT ReportEngine

EngineConfig config = new EngineConfig();IReportEngineFactory factory;IReportEngine engine;

config.setBIRTHome("C:/birt-runtime-2_3_1/ReportEngine");

Platform.startup( config );

factory= (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);

© 2009 Orientation in Objects GmbH

29

BIRT in Enterprise Architekturen

engine = factory.createReportEngine( config );

Report Engine API

Report Engine

DataPreviewTaskReportDesign File

GetParameterDefinitionTask

RunTask

RunAndRenderTask

Design File

PDF,HTML,

...

© 2009 Orientation in Objects GmbH

30

BIRT in Enterprise Architekturen

DataExtractionTask

RenderTask

ReportDocument

Page 16: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

16

Beispiel Report RunTask

IReportRunnable design;IRunTask runTask;

design = engine.openReportDesign("c:/work/report.rptdesign");

runTask = engine.createRunTask(design); runTask.run("c:/work/report.rptdocument");

runTask.close();

© 2009 Orientation in Objects GmbH

31

BIRT in Enterprise Architekturen

Report Engine

RunTaskReport

Design FileReport

Document

Wo sind wir bei Spring?

© 2009 Orientation in Objects GmbH

32

BIRT in Enterprise Architekturen

http://www.flickr.com/photos/chefranden/528886535/

Page 17: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

17

Quellen im Netz

• BIRT Support seitens Spring nicht absehbar (laut JIRA)– http://jira.springframework.org/browse/SPR-1220

• Eclipse BIRT in Spring web applications (29.08.2006)– Weblog Silvester Van der Bijl

• http://blog.xebia.com/2006/08/29/reporting-the-eclipse-way/

• Using BIRT as View in Spring (24.11.2006)– Weblog Luca Masini

• http://jroller.com/masini/entry/using_birt_as_view_in

© 2009 Orientation in Objects GmbH

33

BIRT in Enterprise Architekturen

• Integrate BIRT with Spring in a Web application (13.03.2007)– Weblog Jose Noheda

• http://internna.blogspot.com/2007/03/integrating-birt-with-spring-in-web.html

public class MyServiceImpl {

i t St i Att ib

Spring Basics I - Klassen und Objekte

private String someAttrib;

@Autowiredprivate MyDao myDao;

public void setSomeAttrib (String someAttrib) { this.someAttrib = someAttrib; }

}

M S i I l

© 2009 Orientation in Objects GmbH

34

BIRT in Enterprise Architekturen

...}

MyServiceImpl

MyDaoImpl

Page 18: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

18

Spring Basics II - Die Konfiguration

<bean id="myService" class="de.oio.fspring.MyService"><property name="someAttrib" value="TextTextText" />...

</bean>

<bean id="myDao" class="de.oio.fspring.MyDaoImpl"><property ... />

</bean>

M S i I l

© 2009 Orientation in Objects GmbH

35

BIRT in Enterprise Architekturen

MyServiceImpl

MyDaoImpl

Spring Advanced - Das Interface FactoryBean

• Komplexes Erzeugen von Beans• Fabrik Muster• Interface• Interface

– Class getObjectType()– Object getObject()– boolean isSingleton()

MyServiceImpl

MyDaoImplMyDaoFactory erstellt

Erhält Referenz von Spring

© 2009 Orientation in Objects GmbH

36

BIRT in Enterprise Architekturen

<bean id="myDao" class="de.oio.fspring.MyDaoFactory"><property ... />

</bean>

Page 19: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

19

BirtEngineFactory und Konfiguration

BirtEngineFactoryReportEngine

Service1

Service2 g y

EngineConfig

p gService2

Controller

PDFRenderContext

© 2009 Orientation in Objects GmbH

37

BIRT in Enterprise Architekturen

EngineConfigFactoryHTMLRenderContext

Konfiguration Spring BirtEngineFactory

<bean id="reportEngine" class="de.oio.BirtEngineFactory"init-method="start" destroy-method="shutdown">

<property name="engineConfig" ref="birtConfig" />p p y g g g /</bean>

<bean id="birtConfig" class="de.oio.EngineConfigFactory"><property name="birtHome" value="${birt.home}" /><property name="logdir" value="${birt.logdir}" />...

© 2009 Orientation in Objects GmbH

38

BIRT in Enterprise Architekturen

...</bean>

Page 20: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

20

Konfiguration der RenderContext

<bean id="pdfRC" class="org.eclipse.birt.report.engine.api.HTMLRenderContext"><property name="supportedImageFormats"

value="JPG;PNG;BMP;SVG" /></bean>

<bean id="htmlRC" class="org.eclipse.birt.report.engine.api.HTMLRenderContext"><property name="supportedImageFormats"

value="JPG;PNG;BMP" /><property name="imageDirectory"

value="${eclipse.images.dir}" />

© 2009 Orientation in Objects GmbH

39

BIRT in Enterprise Architekturen

...

</bean>

RunAndRender im Service

public class MyReportServiceImpl implements MyReportService {

private IReportEngine reportEngine;private Map renderContext;

public byte[] erstellePdf() {...reportDesign = reportEngine.openReportDesign(inputStream);task = reportEngine.createRunAndRenderTask(reportDesign);...renderOptions.setOutputFormat("pdf");renderOptions.setOutputStream(out);...

© 2009 Orientation in Objects GmbH

40

BIRT in Enterprise Architekturen

...task.setAppContext(renderContext);task.setRenderOption(renderOptions);task.run();

return out.toByteArray();

}

Page 21: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

21

BIRT Appserver Integration - Ist nicht einfach

© 2009 Orientation in Objects GmbH

41

BIRT in Enterprise Architekturen

Themen rund um EJB Container

• Aus J2EE– Filehandles sind böse– Eigene Threads sind böseEigene Threads sind böse– Classloadergeschichten sind böse

• Kein standardisierter Weg für OSGi Container

• Appserver auf dem Markt unterscheiden sich stark

© 2009 Orientation in Objects GmbH

42

BIRT in Enterprise Architekturen

Page 22: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

22

Birt Anbindung im JavaEE Appserver

• Vorschlag: Eine Report Engine je Container• Möglichkeiten des Containers identifizieren• Start von Birt mit containereigenen Mechanismen• Start von Birt mit containereigenen Mechanismen

– JMX, JNDI, Listener, ...– JBoss Birt Integration als ServiceArchive

• Kapselung des Reporting via Service

Application Server

© 2009 Orientation in Objects GmbH

43

BIRT in Enterprise Architekturen

EJB

Application Server

JMX Wrapper

EJBReport Engine

JMX

JMX

JMX

ReportS

ervice

Fazit / Ausblick

• Webviewer: Schnell und einfach • Webanwendung: Volle Integration mit Servlet, JSP oder mehr• Spring: Nicht intrinsisch aber leicht möglich• Spring: Nicht intrinsisch, aber leicht möglich• EJB: Je Container unterschiedlich

• Einige „neue“ Server basieren auf OSGi– JBoss 5– Glassfish V3

© 2009 Orientation in Objects GmbH

44

BIRT in Enterprise Architekturen

Page 23: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

23

Literaturhinweise

• BIRT: A Field Guide to Reporting• Broschiert: 704 Seiten • Addison WesleyAddison Wesley• Erscheinungsdat: 26. Oktober 2006• Sprache: Englisch • ISBN: 0321442598

• Integrating and Extending BIRT• Broschiert: 608 Seiten

© 2009 Orientation in Objects GmbH

45

BIRT in Enterprise Architekturen

• Addison Wesley• Erscheinungsdat: 22. November 2006• Sprache: Englisch • ISBN: 0321443853

Vielen Dank für IhreAufmerksamkeit !

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Page 24: BIRT in Enterprise Architekturen - OIO · BIRT - Business Intelligence Reporting Tools • BIRT: Business Intelligence and Reporting Tools ... BIRT Web Integration HTML PDF Excel

24

? ??? ?

???

Fragen ?

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

??

Mehr von OIO zum Thema...

• Schulung: Eclipse BIRT– http://www.oio.de/seminar/open-source/eclipse-birt-reporting-schulung.htm

• Vortrag: Reporting mit Eclipse BIRT– http://www.oio.de/m/konf/wjax2006/ReportingMitEclipseBIRT-final.pdf

• Projektreferenz: Vertragszentrierte Unternehmenssteuerung– http://www.oio.de/java-projekt-referenz-spring-eclipse-vertragsmanagement.htm

© 2009 Orientation in Objects GmbH

48

BIRT in Enterprise Architekturen