440 likes | 554 Views
TECHNOLOGIE - FORUM 10. März 2006. AGENDA. PROGRAMMIERFABRIK News (Seyruck) Erfahrungen mit Open Source Tools für die Entwicklung und den Betrieb von J2EE-Anwendungen (Wolfinger) Kegeln (alle). PROGRAMMIERFABRIK News. Verstärkte Kooperation mit BI-Marktführer SAS
E N D
AGENDA • PROGRAMMIERFABRIK News (Seyruck) • Erfahrungen mit Open Source Tools für die Entwicklung und den Betrieb von J2EE-Anwendungen (Wolfinger) • Kegeln (alle)
PROGRAMMIERFABRIK News • Verstärkte Kooperation mit BI-Marktführer SAS • Neuer Vertriebsleiter für BI: Dirk H. Janssen • Verstärkte Pressearbeit • Kamingespräch am 14.03.2006 • Weiterer Kompetenzaufbau
PROGRAMMIERFABRIK News • Firmenseminar – Projekt-Management 29. bis 30. Juni 2006 in Traunkirchen
PROGRAMMIERFABRIK News • Aktueller Personalbedarf: • PowerBuilder für Linz • BI (DataStage) für Wien • .NET-Entwickler (HMI) für Linz • C++ für Linz • Gupta für OÖ • Zope / Python (CMS) für Linz
PROGRAMMIERFABRIK News • Fokus auf J2EE-Entwicklung mit OS Tools • Verstärkte Pressearbeit • Teilnahme an der ITnT mit der Open Source Experts Group der WKO
Erfahrungen mit Open Source Tools für die Entwicklung und den Betrieb von J2EE-Anwendungen Uwe Wolfinger
AGENDA • ELDA • JBoss • PostgreSQL • Eclipse und Plugins (cvs, maven, xdoclet) • Hibernate • Clustering mit Apache/JBoss • Datenbank Clustering • Einsatz von ecard-Signatur/Bürgerkarte
ELDA Elektronischer Datenaustausch mit den österreichischen Sozialversicherungsträgern
Meldungen erstellen(verarbeiten) Partner Einheitlicher Datensatz Datensammelsystem: Entgegennahme, Prüfung, Rückmeldung, Protokollierung, technischer Support Datendreh- scheibe HVB BM Finanzen SV-Träger Automatisierte Verarbeitung
Dienstgeber, Stb Krankenanstalten An-, Ab- und Änderungsmeldung, Beitragsnachweisung, Lohnzettel, Hospizkarenz. Arbeits- und Entgeltbe-stätigung für Krankengeld und Wochengeld Kostenüber- nahme Aufnahmen und Entlassungen Ambulanzgebühr Ärzte Abrechnung Rotes Kreuz, Arbeiter- Samariter-Bund und Taxis Arztabrechnung Abrechnung Heilbehelfe und Hilfsmittel Transporteure Sonstige VP
ELDA Menge 2005 ca. 28.000.000 Meldungen
ELDA Erfassung Offene HTTPS/FTP/Modem Schnittstelle für: • ELDA Client für Windows • Lohnsoftware • Ärztesoftware • ELDA Online Formulare • ...
JBoss • Erste JBoss Version: 1999 • Unternehmensgründung (JBossGroup): 2001 • Gründung einer AG (JBossInc.): 2004 • Headquarter in Atlanta und in der Schweiz • 42% verwenden JBoss für die Entwicklung (2003) • Seit 2004 Nummer 1 im Produktionseinsatz (lt. Gartner) • Diverse Produktaquisitionenund Erweiterungen: • ApacheTomcat • Hibernate • JBossjBPM • JBossCache • JBossEclipseIDE • JBossPortal (JSR-168 konform)
JBoss • 6 Millionen Downloads 2004 • 500 contributors, 25 coredevelopers • LGPL Lizenz • Ab JBoss 4.x Sun Zertifiziert • Coredevelopers werden finanziert über: • Dokumentation • Wartungsverträge • Schulungen • Partnerverträge • Einfache Handhabung: Unzip and Run
Verwendete Features • Tomcat Clustering • Farm Deployment • JCA Datasources/Pooling • Scheduling • Logging • JAAS
PostgreSQL • POSTGRES, Version 4.2, entwickelt an der University of California in Berkeley, Computer Science Department • Pionier im DB Bereich • Unterstützt SQL:2003 • Derzeit am höchsten entwickelte Open Source DB • Unterstützt: data types, functions, operators, aggregate functions, index methods, procedural languages
PostgreSQL • Installation: Dauer ca. 10min • Menge (z.b. in ELDA)? • Tabellen mit 20-30Mio Einträgen kein Problem • DB Größe von 40GB kein Problem • Backup im laufenden Betrieb möglich
Eclipse und Plugins (CVS) • Concurrent Versioning System • Verwendet Delta Codierung • Optimistisches System • Arbeitsweise: • Auschecken (Repository) - kein Locking! • Bearbeiten • Einchecken • evtl. Konflikte auflösen (Merge)
Eclipse und Plugins (Maven) • Build Tool • Bindet ANT ein • Definiert Artefakte und Repositories • ermöglicht Versionierung • Baut diese zusammen (z.b. zu einem EAR) • Führt Tasks aus (z.b. Genierung einer Projekt Web Site)
Eclipse und Plugins (xDoclet) • Erstellen des Beans • Erstellen eines Remote Interface • Erstellen eines Home Interface • Erstellen eines EJB Deployment Descriptors(ejb-jar.xml) • Home Interface angeben <home>bondsCalculator.BondsHome</home> • Remote Interface angeben <remote>bondsCalculator.Bonds</remote> • EJB Klasse angeben<ejb-class>bondsCalculator.BondsBean</ejb-class> • Session Typ angeben <session-type>Stateful</session-type> • Erstellen eines weblogicDescriptors(weblogic-ejb-jar.xml) • Definieren des JNDI Namens <jndi-name>Bonds</jndi-name> • Viel Aufwand • Mit Ausnahme der Business Logic selbst, könnte alles generiert werden
Eclipse und Plugins (xDoclet) • Definition in Header durch spezielle Tags • Ähnlich JavaDoc(@param, @return, @throws, …) • Generiert • Local und Remote Interfaces • Local und Remote Home • Deployment Descriptoren • Hersteller Spezifische Deployment Descriptoren • PrimaryKey Klasse • Hibernate Business Objects • und vieles mehr …
Eclipse und Plugins (xDoclet) • Vorteile: • Deployment Descriptoren sind immer up2date • Codeänderungen sind nur an einer Stelle notwendig • Durch automatische Generierung von Code spart man sich viel Zeit • Funktionsweise • Xdoclet funktioniert nur in Zusammenhang mit ANT • Eigener Ant Task
Eclipse und Plugins (xDoclet) • Beispiel Hibernate Definition: /** * @return Returns the name. * @hibernate.property * column="name" * not-null="true" * length="64" */ public String getName() { return name; }
Hibernate • OR Mapping Framework • Zu jeder Tabelle existiert eine hbm.xml Datei • Tabellen können Verknüpft werden • HQL bietet Zugriff auf Objekte • Transaktionsverwaltung
Hibernate • Beispiel Hibernate xDoclet Definition: /** * @return Returns the name. * @hibernate.property * column="name" * not-null="true" * length="64" */ public String getName() { return name; }
Hibernate • Beispiel Hibernate Abfrage: session = getSession(); Object o = session.createCriteria(clazz) .add(criterion) .addOrder(order) .setMaxResults(1) .uniqueResult(); session = getNewSession(); transaction = session.beginTransaction(); session.saveOrUpdate(Object); session.flush(); transaction.commit();
Clustering mit Apache/JBoss Apache mod_jk JBoss J G r o u p s JBoss J G r o u p s
Clustering mit Apache/JBoss mod_jk.conf <IfModule mod_jk.c> JkWorkersFile /etc/apache2/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel info JkMount /elda-admin/*.do elda_admin_balancer </IfModule>
Clustering mit Apache/JBoss workers.properties worker.list=elda_admin_balancer worker.maintain=60 worker.hselde1.host=157.177.192.61 worker.hselde1.port=8009 worker.hselde1.type=ajp13 worker.hselde1.socket_timeout=5 worker.hselde1.socket_keepalive=1 worker.hselde1.lbfactor=50 worker.hselde1.cachesize=1 worker.hselde1.cache_timeout=0 worker.hselde1.local_worker=0 worker.hselde1.sticky_sessions=1 worker.elda_admin_balancer.type=lb worker.elda_admin_balancer.balanced_workers=hselde1 worker.elda_admin_balancer.sticky_sessions=1 worker.elda_admin_balancer.local_worker_only=0
Clustering mit Apache/JBoss Tomcat • jvmRoute Eintrag im server.xml benennt den Knoten • <distributable/> im web.xml ermöglicht Session Replication
Datenbank Clustering HA-JDBC: • Proxy JDBC Treiber • Alle JDBC Datenbanken • High-availability/Fault Tolerance: Knoten können im Betrieb verloren gehen bzw. hinzugefügt werden • Auto-Sync von neuen bzw. verlorengegangenen Knoten • Live activation/deactivation: z.b. um Wartungen durchzuführen • Write all/Read One: Performanceverbesserung beim Lesen
Datenbank Clustering JBoss H A J D B C J G r o u p s JBoss J G r o u p s H A J D B C DB1 DB2
Signatur/Bürgerkarte Client • eCard kann optional und gratis mit einer sogenannten Verwaltungssignatur ausgestattet werden • Tool zur Anwendung der Signatur: • BDC Hotsign • itSolution TrustDesk • Dank Rahmenvertrag Bund gratis
Signatur/Bürgerkarte Server • MOA Tools: Gratissoftware des Bundes zur serverseitigen Verifizierung und Anbringung von Amtssignaturen • Module: • MOA–ID, MOA-wID: Identifikation • MOA–SS: Server-Signatur • Amtssignatur • MOA–SP: Signaturprüfung • MOA–ZS: Elektronische Zustellung • Ersetzt RSa, RSb
Signatur/Bürgerkarte Beispiel: Meldebestätigung, Unbedenklichkeitsbescheinigung
Signatur/Bürgerkarte Beispiel: Versichertendatenauszug
Fazit • Open Source • Einsatz im Hochleistungsbereich möglich • Tools bieten das, was man braucht, nicht, was man meint zu brauchen • Lizenzkosten • Signatur • Mit der eCard hat jeder einen Hochsicherheitsschlüssel gratis zur Verfügung (MOA-ID) • Arbeiten mit Signaturen wird durch MOA Tools und BKU einfach möglich