Mein Auftraggeber ist bundesweiter Marktführer im Bereich IT-Lösungen für Kommunen. Ich war in der Abteilung Einwohnermeldewesen tätig. Die dort erstellten Einwohnermeldeverfahren helfen die Meldebehörden bei ihren vielfältigen melderechtlichen Aufgaben wie z.B. Erstellung von An- und Abmeldebescheinigungen, Verwaltung der Anträge von hoheitlichen Dokumenten (Personalausweise, Pässe, usw.) bei der Bundesdruckerei und noch weitere diverse Bürger-Dienstleistungen. Zusätzlich besitzt die Software Schnittstellen für u.a. Datenübermittlungen, Bestandsauswertungen und Druckdienste. Die Personendaten in den Gemeinde-Melderegistern werden kontinuierlich in das Landesregister exportiert. Über Online-Auskunftssystemen können Auskünfte aus dem Landesregister sowohl an andere Behörden, wie die Polizei, als auch an private Stellen, wie Anwälte und Ärzte, erteilt werden.
An den einzelnen Systemen arbeiteten ca. 70 Entwickler, die auf 10 Teams aufgeteilt waren. Mein Team enthielt 9 Entwickler. Es wurde agil mit Scrum gearbeitet. Backlog, Sprints und User Stories wurden mit Jira verwaltet. Da in meinem Team auch Remote-Entwickler waren, fanden die Meetings über Skype statt. Die Kommunikation lief über Telefon, HipChat und Fastviewer. Die Komplette Dokumentation wurde in Confluence gehalten.
Die einzelnen Systeme sind JEE basierende Applikationen, die zuerst im JBoss Application Server 5 liefen bevor sie auf die JBoss EAP 7 migriert wurden. Die Web-Anwendungen wurden in Tomcat 9 deployed. Die Business-Logik in der Service-Schicht wurde als EJB3 Komponenten implementiert. Die Persistenz-schicht bestand aus EJB3-DAOs und JPA-Entitäten. Als Build-Tool kam Maven und als Versionskontrollsystem Git zum Einsatz. Vor der Migration wurde noch Subversion verwendet. Jenkins diente als CI-Tool. Die erzeugten und heruntergeladenen Artefakte wurden in einem lokalen Nexus-Repository abgelegt. Die Daten wurden, abhängig von Kunden und Umgebungen, entweder in Oracle oder in MS-SQL-SERVER Datenbanken gehalten. IntelliJ IDEA wurde als Entwicklungsumgebung und Upsource als Code-Review-Tool eingesetzt.
Neben vielen anderen User Stories haben wir in meinem Team an folgenden Haupt-Themen gearbeitet:
Erstellung von Abmeldebescheinigungen.
Erweiterung der Online-Webauskunft mit Such-Reports für Keine Treffer, Trefferlisten und Personendetails.
Behandlung von Personen-Mehrfachfällen.
Implementierung einer Schnittstelle für Wahlvorbereitungen. Die für Wahlen benötigten Personendaten zum Erstellen von z.B. Wahlscheinen, werden vom Wahlmodul abgefragt und kontinuierlich aktualisiert.
Bei der Erstellung von Zertifikaten, mit denen die mit anderen Behörden, wie die Bundesdruckerei, ausgetauschten Daten verschlüsselt und signiert werden, wurde die BouncyCastle Bibliothek durch den internen JDK Security Provider ersetzt.
Bei der Migration auf EAP 7, Integration von Docker als Testumgebung sowohl am Entwickler-Arbeitsplatz als auch auf Jenkins-Umgebungen. Dabei mussten mehrere Docker-Images sowohl für die eingesetzten Datenbanken Oracle und MS-SQL als auch für die in EAP 7 und Tomcat 9 deployten Anwendungen erzeugt werden. Da für eine Testumgebung meistens mindestens die drei Images JBoss, Tomcat und eine DB benötigt werden, wurde Docker-Compose für die Verwaltung der Image-Netzwerke verwendet. Sehr viele Tests liefen nicht mehr in den neuen Testumgebungen und mussten deshalb angepasst oder neu geschrieben werden.
Fachlichkeit
Vorgehensmodell
Middleware
Datenbanken
VCS
Technologien Entwicklung
Tools
Mein Auftraggeber ist eines der führenden deutschen Touristikunternehmen. Das gesamte Sortiment der großen Reiseveranstalter – Zugriff u.a. über AMADEUS, GALILEO und WORLDSPAN - wird angeboten und reicht von Urlaubsreisen, Flug-, Schiff- und Bahntickets über individuell ausgearbeitete Reisen bis zu Eintrittskarten und Reiseversicherungen.
Bei der Inhouse von meinem Auftraggeber entwickelten Anwendung handelt es sich um ein System, an dem mehr als 50 Entwickler, die in mehreren Teams organisiert sind, agil arbeiten. Allein mein Team besteht aus 12 Entwicklern. Die Anwendung ist mit bis zu 30 EARs, die in JBOSS deployed werden, sehr groß und umfangreich und sowohl fachlich als auch technisch sehr herausfordernd.
Von außen können die Reisebüros und die Kunden über TOMAs (Touristik MAske) und IBEs (Internet Booking Engine) auf die angebotenen Services zugreifen (Buchungen, Reservierungen, etc.). Inhouse wird ein Eclipse RCP-Client verwendet.
Die Middleware besteht aus dem JBOSS Application Server, in dem EJB3 Komponenten und JPA/Hibernate Entitäten deployed werden. Persistiert wird in einer Oracle 11g Datenbank.
Der Code, der den Architektur-Rahmen für die einzelnen Service-Komponenten darstellt, wird mit MagicDraw automatisch generiert. Dabei werden auch Handler-Klassen generiert, die mit der Business Logik manuell gefüllt werden müssen. Um das bisherige Schichtenmodell und somit die Anzahl der Aufrufe und die Gesamtperformance des Systems zu optimieren, wurde eine neue Architektur entworfen, auf die nun die Implementierungen von allen neu entwickelten Services basieren. Mit der Umstellung der alten Services wurde auch schon begonnen. Das langfristige Ziel ist die Abschaffung der automatischen Code-Generierung mit MagicDraw.
Meine Haupttätigkeiten:
Es wird agil gearbeitet. Für CI werden die Tools Ant, Maven und Jenkins eingesetzt. Mit Nexus werden die internen Maven-Repositories verwaltet. Subversion (danach Git) kommt als Versionskontrollsystem zum Einsatz.
Technologie:
Fachlichkeit der Touristik-Industrie, Windows 7, Cygwin, JBoss Application Server, Tomcat, Oracle 11g, Eclipse (Oomph), MagicDraw, Oracle SQL Developer, SQL, JSE, JEE, EJB3, JPA/Hibernate, JUnit, Mockito, Ant, Maven, Jenkins, Nexus, Sonar, Subversion, Git, Subclipse, TortoisesSVN.
Es handelt sich um den gleichen Auftraggeber wie beim vorherigen Auftrag aber um eine andere Abteilung und ein anderes Projekt. Ich war diesmal in der Abteilung R&D tätig. Es ging sich um eine große Applikation zur Verwaltung von Einsätzen. Die Applikation wird hauptsächlich von der Polizei, der Feuerwehr und den Rettungsdiensten verwendet und ist weltweit im Einsatz. Sie besteht aus Drei Hauptteilen: Eine komplexe Web Start Frontend Klient-Applikation, die mit Java Swings implementiert wurde und auf Drei Monitore läuft, eine Tomcat Catalina Servlet Engine, in der ein Teil der Business Logik ausgeführt und über Servlets angesprochen wird und eine Runtime-Applikation, die komplett in der TCL-Skriptsprache geschrieben wurde und den zweiten Teil der Business-Logik ausführt. Es wurde agil im Rahmen eines ca. 10-köpfigen (nur Entwickler) Scrum Teams entwickelt. Bei den Stories handelte es sich um Erweiterungen, Refaktorisierungen und Bugfixing. Neben der Refaktorisierung und des Bugfixings habe ich im Rahmen dieses Projektes folgende Erweiterungen übernommen:
Technologien:
Windows 7, JAVA SE 7, Oracle 11g, Oracle SQL Developer 4.0.1, Tomcat 7, Eclipse (Kepler), Servlets 3.0, Oracle JDBC Implementation (ojdbc6), HikariCP 2.3, Java Swings (u.a. Substance L&F), Log4j 2.0, Apache HttpClient 3.1, Apache Commons, JMS(ActiveMQ 5.9.1), Tests(Junit 4, JayWay Rest-Assured 2.4), Build Management(Ant 1.8, Gradle 1.12), Continuous Integration (TeamCity, Artifactory, Sonar), Skriptsprache TCL, Scrum(RTC), SVN (Tortoises), Zugriff auf Linux-Test-VMs(Putty, FileZilla).
Mein Auftraggeber ist führender Anbieter für innovative Produkte, Technologien und Lösungen in den Gebieten Industrie, Energie, Gesundheit und Infrastruktur-Lösungen. Ich war im Bereich IT tätig. Es ging um die Neu-Implementierung und Erweiterung einer unternehmensinternen web-basierten Anwendung für die Verwaltung von Kunden-Projekten, die weltweit in allen Filialen des Unternehmens im Einsatz ist. In meinem Team ging es hauptsächlich um die Präsentationsschicht.
Die GUI wurde mit JSF, Jboss Seam und Jboss RichFaces (AJAX) entwickelt. Über die GUI konnten interne Personen (Vertragspartner, etc.) im ActiveDirectory des Unternehmens gesucht oder externe Partner im System neu angelegt werden. Neben der Verwaltung der Vertragspartner konnten auch unterschiedliche Finanzierungsquellen und die einzelnen Arbeitspakete des Projektes angelegt und verwaltet werden. Dazu kommen noch zahlreiche globale Parameter wie Projektname, Projektbeschreibung, Vertragstyp, Laufzeit, Währung etc., die für jedes Projekt festgelegt werden müssen. Da die Auswahl der einzelnen Parameter die Anzeige beeinflusst, war es notwendig, die Anwendung sehr dynamisch über AJAX zu gestalten.
Technologien:
Windows 7, JAVA SE 6 , JAVA EE 5, SAP NetWeaver, Eclipse, Jboss, JDBC, JSF, RichFaces, Ajax, Jboss Seam, MS SQL Server, DBVisualiser.
Mein Auftraggeber gehört zu den größten Internet-, Buch- und Medien-Handelsunternehmen in Europa. Ich bin im Bereich IT / E-Commerce (Applikationsentwicklung und Systembetrieb der Shopsysteme und der zentralen Medien- und Produktdatenbank) tätig. In dieser Abteilung werden neue Softwarekomponenten für Anwendungssysteme im JAVA-Umfeld implementiert und die bestehenden JEE-basierten Applikationen optimiert und weiterentwickelt. Dabei werden sämtliche Tätigkeiten wie technische Konzeption (Analyse, Design), Umsetzung, Tests, Fehleranalyse, Bugfixing und Dokumentation in einem Software-Entwicklungsteam im Rahmen eines agilen Entwicklungsprozesses (SCRUM) durchgeführt.
Die Daten zu den in den Online-Shops angebotenen Artikel werden sowohl von internen Systemen als auch von zahlreichen externen Zulieferern zur Verfügung gestellt, und zwar in unterschiedlichen Formaten wie XML (u.a. auch ONIX), CSV, etc.. Die Lieferung ist entweder Datei-basiert über FTP oder über Remote-JMS (MQSeries). Die sequentielle Prozessierung der Artikel-Daten findet in mehreren Modulen statt und wird parallel von mehreren Threads ausgeführt.
Im ersten Modul in der Kette, das Import-Modul, laufen mehrere Prozesse wie Daten-Bereinigung, -Filterung, -Zersplitterung und -Transformation über die Daten bevor sie in den Import-Bereich des Systems in mehreren relationalen Tabellen (DB2) importiert werden. Über lokales JMS wird das nächste Modul über die Ankunft von neuen oder ggf. die Änderung von vorhandenen Daten benachrichtigt.
An der Reihe ist nun ein Normierungs-Modul, in dem mehrere Konvertierungen stattfinden, um die Daten der unterschiedlichen Zulieferern, die im Import-Bereich in unterschiedlichen Formaten vorliegen, in ein einheitliches internes Format zu bringen und sie somit für die Prozessierung im Anwendungskern vorbereiten. Die normierten Daten werden auch in mehreren relationalen Tabellen (DB2) gespeichert. Über lokales JMS wird wiederum das nächste Modul über die Ankunft von neuen oder ggf. die Änderung von vorhandenen Daten benachrichtigt.
Das nächste Modul stellt den Kern der Anwendung. Hier laufen komplexe Prozessierungen der Daten (Business-Logik). Das Modul besteht aus mehreren Schritten (Steps), die sequentiell hintereinander ausgeführt werden und anhand von mehreren berechneten Parametern wie Preise, Verfügbarkeit, etc. darüber entscheiden welche Artikel für den Verkauf freigegeben werden sollen und welche nicht. Die Ergebnisse werden im Kern-Bereich der Anwendung in mehreren relationalen Tabellen (DB2) gespeichert.
Über lokales JMS wird nun das letzte Modul in der Kette, das Export-Modul, darüber informiert, dass neue oder ggf. Änderungen zu vorhandenen Artikel-Daten (z.B. Preise, Verfügbarkeit, Ausverkauf, etc.) vorliegen. Dieser sorgt dann dafür, dass die freigegebenen Artikel in die Shop-DB (Oracle) gelangen, damit sie von den Shop-Anwendungen auffindbar sind und für den Verkauf in den Online-Shops ausgelesen und angezeigt werden. Die Daten werden aber auch in andere sowohl interne als auch externe Ziele exportiert.
Aufgaben:
Windows XP/7, FileZilla (FTP), Putty(SSH), Eclipse IDE (Helios/Juno), JAVA SE 6 , JAVA EE 5, JAMon (Java Application Monitor), Subversion (Subclipse, TortoiseSVN), JBoss Application Server, DB2, Oracle, H2 Database (Lokale Tests), NoSQL (MongoDB für Medien), FlyWay (Datenbankmigrationen), DBVisualizer, Hibernate, Spring, JPA, EJB3, JMS (HornetQ), Apache Camel, Ning (Kompression), SOAP (SoapUI, Axis), REST(Resteasy, Jackson), XML (Castor, StAX, JAXB), Logging (log4j, slf4j), Apache Commons, Guava (Google Core Libraries for Java), JSF (MyFaces, Facelets, RichFaces, Tomahawk), JBoss SEAM, Tests (Cactus, Junit, Mockito, DBUnit), Continuous Integration (Ant, Maven, Ivy, Nexus, Jenkins, Cargo), JRebel.
Mein Auftraggeber ist im Energiebereich tätig. Er stellt elektronische Geräte (Energie-Manager) her, mit denen unterschiedliche Energiequellen wie Brennstoffzellen, Photovoltaik-Anlagen, Wind-Anlagen, Diesel-Generatoren, Batterien, etc. gesteuert werden können. Die bei den Kunden installierten Geräte erfassen kontinuierlich anhand von Sensoren verschiedene Größen wie Temperatur, Spannung, Strom, usw. von diesen Anlagen. Diese Werte werden in bestimmten Zeitabständen an eine Zentrale Anwendung, die bei meinem Auftraggeber läuft, als TCP/IP Pakete gesendet. Meine Aufgabe bestand darin, für diese zentrale Anwendung Analyse, Design und Implementierung durchzuführen.
Die Anwendung besteht aus fünf großen Modulen:
Technologien:
Windows XP/7, Linux, Eclipse IDE, JAVA 1.6, ANT, Junit, Subversion, JAVA EE 1.5, JPA/EJB3, MySql,TCP/IP, HTTP/HTTPS, Servlets, JSP, JSF(Sun Mojarra), Apache MyFaces (Tomahawk), JBoss RichFaces (Ajax), JBoss Netty (Socktes, TCP, UDP), JFreeChart, Eclipse BIRT, Jboss Application Server, Java-Swings.
Es handelte sich um ein NPS-System (Net Promoter Score), das von meinem Auftraggeber und seine Tochtergesellschaften eingesetzt wird, um die emotionale Bindung und Zufriedenheit Ihrer Kunden zu messen. Über eine Datenzubereitungsschnittstelle bekommt das System die notwendigen Informationen über die zu befragenden Kunden eingeliefert und leitet die für die erste Befragung notwendigen Daten an einem Call Center und danach für die zweite Befragung an einem Innen- oder Außendienstmitarbeiter weiter. Dort werden die Kunden angerufen und befragt. Die Ergebnisse werden an das NPS-System zurückgeliefert. Nach einer Kampagne, die in der Regel zwei Monate dauert, werden die Ergebnisse vom System ausgewertet und in Form von Graphiken und Statistiken dargestellt. Die Analyse dieser Ergebnisse zeigen die Schwachstellen in der Organisation und helfen somit dem Unternehmen, seine Leistungen und Services zu verbessern.
Technologien:
Windows 2000/XP, WSAD (Websphere Application Developer mit integriertem Eclipse), J2EE, JAVA, ANT, JUnit, JavaScript, JSP, Servlets, Oracle, Oracle SQL Developer, DBVisualizer, HTML, XML, XMLSchema, XPath, XSLT, XMLSpy, XMLBeans, JAXB, Scrum.
Entwicklung im Team eines aufwendigen und sehr anspruchsvollen J2EE-Systems, das die Erstellung von projektbezogenen Workflows zur Bewertung von Kunden erlaubt. Um externe Datenquellen, hauptsächlich Auskunfteien, deren Informationen für das Beurteilen der Kunden relevant sind, an das System zu binden, wurde auch ein Gateway (eine Art einheitliche Schnittstelle) als Web Service implementiert. Durch das Plug-In Konzept konnte jede beliebige Auskunftei ohne großen Implementierungsaufwand über diese Schnittstelle an das Hauptsystem angebunden werden. Ich selber habe die Anbindungen der deutschen Auskunfteien Schufa und Deutsche Bank und der Kreditversicherung Euler Hermes übernommen. In Belgien waren es die Auskunfteien NBB und Graydon und in der Schweiz Teledata und NewZek. Die Daten, die mit den Auskunfteien ausgetauscht wurden, waren in den meisten Fällen mit für den Kunden erstellten Zertifikaten signiert und verschlüsselt oder eines von den beiden. Verschiedene Protokolle wie HTTP/HTTPS, SOAP über HTTP/HTTPS, SOAP über JMS, JavaMail (S/MIME) kamen zum Einsatz.
Die projektspezifischen Workflows zum Bewerten der Kunden bestanden neben den Auskunftei-Knoten meistens auch aus anderen Service-Knoten wie Scorecard- und Entscheidungsbäume-Knoten, die Mandanten-spezifisch sind. Eine komplexe Swing-Anwendung wurde entwickelt, mit der die Workflows erstellt, getestet und gewartet werden konnten.
Eine meiner Hauptaufgaben war aber auch die Administration der Entwicklungs-Datenbankserver, hauptsächlich Oracle, aber auch DB2 und MS-SQL-Server, unter denen die Entwicklungsdatenbanken liefen, und die Pflege der Datenbankskripte, sowie die Implementierung von Datenbanktools, zum Beispiel zum Komprimieren und archivieren der Daten, so dass das hohe Wachstum des Datenvolumens in der DB, das bei manchen Kunden zum Überlaufen der Tablespaces geführt hatte, ein Ende gesetzt wurde.
Technologien:
Windows 2000/XP, Linux, Solaris, Eclipse, Client/Server(2-tier), J2EE(3-tier), JAVA, JAVA Swings, ANT, JUnit, Oracle, Oracle SQL Developer, DBVisualizer, Toad, DB2, MS SQL, XML, XMLSchema, XPath, JAXB, TCP/IP, HTTP/HTTPS (SSL), JMS (ActiveMQ), SOAP, RMI, JavaMail, S/MIME (Verschlüsselung und Signierung von Emails), JSP, Servlets, Encryption/Decryption/Signing, EJB, Web Services mit AXIS, Hibernate, Tomcat, JBoss, WebLogic, WebSphere, Perforce, Subversion.
Entwurf, Spezifikation und Implementierung einer auf J2EE basierenden Plattform und eines Transport- und Kommunikations-Layers, das sowohl auf RMI als auch auf SOAP basierte Windows, Eclipse, J2EE, JAVA, JAVA Swings, Oracle, SOAP, RMI, EJB, Web Services mit AXIS, Tomcat, JBoss, CVS.
Entwicklung einer eProcessing-Plattform und einige darauf basierende Online Shops. Für den Entwurf von Workflows und die Verwaltung von Online Shops wurde eine komplexe grafische Benutzeroberfläche (GUI) implementiert, die auf JAVA
Swings und JDBC basierte.
Technologien:
Windows, Borland JBuilder, JAVA, JAVA Swings, JDBC, Oracle, Apache Web Server, HTML, XML, CVS.
Erstellung von EDV-Programmen mit mathematischen Verfahren für betriebswirtschaftliche Aufgaben und Erbringung der damit verbundenen Beratungsleistungen.
Technologien:
Windows 95/98/NT, Borland C++, C++, OWL.
IT-Consulant (Java/JEE): Beratung und Entwicklung von auf Java/JEE basierenden Enterprise Systemen.
Entwicklungsumgebungen:
Application Server:
Web container:
Entwicklungsmethoden:
Java Technologien:
Protokolle:
Datenbanktools:
Versionskontrollsysteme:
Sonstige Tools
Mein Auftraggeber ist bundesweiter Marktführer im Bereich IT-Lösungen für Kommunen. Ich war in der Abteilung Einwohnermeldewesen tätig. Die dort erstellten Einwohnermeldeverfahren helfen die Meldebehörden bei ihren vielfältigen melderechtlichen Aufgaben wie z.B. Erstellung von An- und Abmeldebescheinigungen, Verwaltung der Anträge von hoheitlichen Dokumenten (Personalausweise, Pässe, usw.) bei der Bundesdruckerei und noch weitere diverse Bürger-Dienstleistungen. Zusätzlich besitzt die Software Schnittstellen für u.a. Datenübermittlungen, Bestandsauswertungen und Druckdienste. Die Personendaten in den Gemeinde-Melderegistern werden kontinuierlich in das Landesregister exportiert. Über Online-Auskunftssystemen können Auskünfte aus dem Landesregister sowohl an andere Behörden, wie die Polizei, als auch an private Stellen, wie Anwälte und Ärzte, erteilt werden.
An den einzelnen Systemen arbeiteten ca. 70 Entwickler, die auf 10 Teams aufgeteilt waren. Mein Team enthielt 9 Entwickler. Es wurde agil mit Scrum gearbeitet. Backlog, Sprints und User Stories wurden mit Jira verwaltet. Da in meinem Team auch Remote-Entwickler waren, fanden die Meetings über Skype statt. Die Kommunikation lief über Telefon, HipChat und Fastviewer. Die Komplette Dokumentation wurde in Confluence gehalten.
Die einzelnen Systeme sind JEE basierende Applikationen, die zuerst im JBoss Application Server 5 liefen bevor sie auf die JBoss EAP 7 migriert wurden. Die Web-Anwendungen wurden in Tomcat 9 deployed. Die Business-Logik in der Service-Schicht wurde als EJB3 Komponenten implementiert. Die Persistenz-schicht bestand aus EJB3-DAOs und JPA-Entitäten. Als Build-Tool kam Maven und als Versionskontrollsystem Git zum Einsatz. Vor der Migration wurde noch Subversion verwendet. Jenkins diente als CI-Tool. Die erzeugten und heruntergeladenen Artefakte wurden in einem lokalen Nexus-Repository abgelegt. Die Daten wurden, abhängig von Kunden und Umgebungen, entweder in Oracle oder in MS-SQL-SERVER Datenbanken gehalten. IntelliJ IDEA wurde als Entwicklungsumgebung und Upsource als Code-Review-Tool eingesetzt.
Neben vielen anderen User Stories haben wir in meinem Team an folgenden Haupt-Themen gearbeitet:
Erstellung von Abmeldebescheinigungen.
Erweiterung der Online-Webauskunft mit Such-Reports für Keine Treffer, Trefferlisten und Personendetails.
Behandlung von Personen-Mehrfachfällen.
Implementierung einer Schnittstelle für Wahlvorbereitungen. Die für Wahlen benötigten Personendaten zum Erstellen von z.B. Wahlscheinen, werden vom Wahlmodul abgefragt und kontinuierlich aktualisiert.
Bei der Erstellung von Zertifikaten, mit denen die mit anderen Behörden, wie die Bundesdruckerei, ausgetauschten Daten verschlüsselt und signiert werden, wurde die BouncyCastle Bibliothek durch den internen JDK Security Provider ersetzt.
Bei der Migration auf EAP 7, Integration von Docker als Testumgebung sowohl am Entwickler-Arbeitsplatz als auch auf Jenkins-Umgebungen. Dabei mussten mehrere Docker-Images sowohl für die eingesetzten Datenbanken Oracle und MS-SQL als auch für die in EAP 7 und Tomcat 9 deployten Anwendungen erzeugt werden. Da für eine Testumgebung meistens mindestens die drei Images JBoss, Tomcat und eine DB benötigt werden, wurde Docker-Compose für die Verwaltung der Image-Netzwerke verwendet. Sehr viele Tests liefen nicht mehr in den neuen Testumgebungen und mussten deshalb angepasst oder neu geschrieben werden.
Fachlichkeit
Vorgehensmodell
Middleware
Datenbanken
VCS
Technologien Entwicklung
Tools
Mein Auftraggeber ist eines der führenden deutschen Touristikunternehmen. Das gesamte Sortiment der großen Reiseveranstalter – Zugriff u.a. über AMADEUS, GALILEO und WORLDSPAN - wird angeboten und reicht von Urlaubsreisen, Flug-, Schiff- und Bahntickets über individuell ausgearbeitete Reisen bis zu Eintrittskarten und Reiseversicherungen.
Bei der Inhouse von meinem Auftraggeber entwickelten Anwendung handelt es sich um ein System, an dem mehr als 50 Entwickler, die in mehreren Teams organisiert sind, agil arbeiten. Allein mein Team besteht aus 12 Entwicklern. Die Anwendung ist mit bis zu 30 EARs, die in JBOSS deployed werden, sehr groß und umfangreich und sowohl fachlich als auch technisch sehr herausfordernd.
Von außen können die Reisebüros und die Kunden über TOMAs (Touristik MAske) und IBEs (Internet Booking Engine) auf die angebotenen Services zugreifen (Buchungen, Reservierungen, etc.). Inhouse wird ein Eclipse RCP-Client verwendet.
Die Middleware besteht aus dem JBOSS Application Server, in dem EJB3 Komponenten und JPA/Hibernate Entitäten deployed werden. Persistiert wird in einer Oracle 11g Datenbank.
Der Code, der den Architektur-Rahmen für die einzelnen Service-Komponenten darstellt, wird mit MagicDraw automatisch generiert. Dabei werden auch Handler-Klassen generiert, die mit der Business Logik manuell gefüllt werden müssen. Um das bisherige Schichtenmodell und somit die Anzahl der Aufrufe und die Gesamtperformance des Systems zu optimieren, wurde eine neue Architektur entworfen, auf die nun die Implementierungen von allen neu entwickelten Services basieren. Mit der Umstellung der alten Services wurde auch schon begonnen. Das langfristige Ziel ist die Abschaffung der automatischen Code-Generierung mit MagicDraw.
Meine Haupttätigkeiten:
Es wird agil gearbeitet. Für CI werden die Tools Ant, Maven und Jenkins eingesetzt. Mit Nexus werden die internen Maven-Repositories verwaltet. Subversion (danach Git) kommt als Versionskontrollsystem zum Einsatz.
Technologie:
Fachlichkeit der Touristik-Industrie, Windows 7, Cygwin, JBoss Application Server, Tomcat, Oracle 11g, Eclipse (Oomph), MagicDraw, Oracle SQL Developer, SQL, JSE, JEE, EJB3, JPA/Hibernate, JUnit, Mockito, Ant, Maven, Jenkins, Nexus, Sonar, Subversion, Git, Subclipse, TortoisesSVN.
Es handelt sich um den gleichen Auftraggeber wie beim vorherigen Auftrag aber um eine andere Abteilung und ein anderes Projekt. Ich war diesmal in der Abteilung R&D tätig. Es ging sich um eine große Applikation zur Verwaltung von Einsätzen. Die Applikation wird hauptsächlich von der Polizei, der Feuerwehr und den Rettungsdiensten verwendet und ist weltweit im Einsatz. Sie besteht aus Drei Hauptteilen: Eine komplexe Web Start Frontend Klient-Applikation, die mit Java Swings implementiert wurde und auf Drei Monitore läuft, eine Tomcat Catalina Servlet Engine, in der ein Teil der Business Logik ausgeführt und über Servlets angesprochen wird und eine Runtime-Applikation, die komplett in der TCL-Skriptsprache geschrieben wurde und den zweiten Teil der Business-Logik ausführt. Es wurde agil im Rahmen eines ca. 10-köpfigen (nur Entwickler) Scrum Teams entwickelt. Bei den Stories handelte es sich um Erweiterungen, Refaktorisierungen und Bugfixing. Neben der Refaktorisierung und des Bugfixings habe ich im Rahmen dieses Projektes folgende Erweiterungen übernommen:
Technologien:
Windows 7, JAVA SE 7, Oracle 11g, Oracle SQL Developer 4.0.1, Tomcat 7, Eclipse (Kepler), Servlets 3.0, Oracle JDBC Implementation (ojdbc6), HikariCP 2.3, Java Swings (u.a. Substance L&F), Log4j 2.0, Apache HttpClient 3.1, Apache Commons, JMS(ActiveMQ 5.9.1), Tests(Junit 4, JayWay Rest-Assured 2.4), Build Management(Ant 1.8, Gradle 1.12), Continuous Integration (TeamCity, Artifactory, Sonar), Skriptsprache TCL, Scrum(RTC), SVN (Tortoises), Zugriff auf Linux-Test-VMs(Putty, FileZilla).
Mein Auftraggeber ist führender Anbieter für innovative Produkte, Technologien und Lösungen in den Gebieten Industrie, Energie, Gesundheit und Infrastruktur-Lösungen. Ich war im Bereich IT tätig. Es ging um die Neu-Implementierung und Erweiterung einer unternehmensinternen web-basierten Anwendung für die Verwaltung von Kunden-Projekten, die weltweit in allen Filialen des Unternehmens im Einsatz ist. In meinem Team ging es hauptsächlich um die Präsentationsschicht.
Die GUI wurde mit JSF, Jboss Seam und Jboss RichFaces (AJAX) entwickelt. Über die GUI konnten interne Personen (Vertragspartner, etc.) im ActiveDirectory des Unternehmens gesucht oder externe Partner im System neu angelegt werden. Neben der Verwaltung der Vertragspartner konnten auch unterschiedliche Finanzierungsquellen und die einzelnen Arbeitspakete des Projektes angelegt und verwaltet werden. Dazu kommen noch zahlreiche globale Parameter wie Projektname, Projektbeschreibung, Vertragstyp, Laufzeit, Währung etc., die für jedes Projekt festgelegt werden müssen. Da die Auswahl der einzelnen Parameter die Anzeige beeinflusst, war es notwendig, die Anwendung sehr dynamisch über AJAX zu gestalten.
Technologien:
Windows 7, JAVA SE 6 , JAVA EE 5, SAP NetWeaver, Eclipse, Jboss, JDBC, JSF, RichFaces, Ajax, Jboss Seam, MS SQL Server, DBVisualiser.
Mein Auftraggeber gehört zu den größten Internet-, Buch- und Medien-Handelsunternehmen in Europa. Ich bin im Bereich IT / E-Commerce (Applikationsentwicklung und Systembetrieb der Shopsysteme und der zentralen Medien- und Produktdatenbank) tätig. In dieser Abteilung werden neue Softwarekomponenten für Anwendungssysteme im JAVA-Umfeld implementiert und die bestehenden JEE-basierten Applikationen optimiert und weiterentwickelt. Dabei werden sämtliche Tätigkeiten wie technische Konzeption (Analyse, Design), Umsetzung, Tests, Fehleranalyse, Bugfixing und Dokumentation in einem Software-Entwicklungsteam im Rahmen eines agilen Entwicklungsprozesses (SCRUM) durchgeführt.
Die Daten zu den in den Online-Shops angebotenen Artikel werden sowohl von internen Systemen als auch von zahlreichen externen Zulieferern zur Verfügung gestellt, und zwar in unterschiedlichen Formaten wie XML (u.a. auch ONIX), CSV, etc.. Die Lieferung ist entweder Datei-basiert über FTP oder über Remote-JMS (MQSeries). Die sequentielle Prozessierung der Artikel-Daten findet in mehreren Modulen statt und wird parallel von mehreren Threads ausgeführt.
Im ersten Modul in der Kette, das Import-Modul, laufen mehrere Prozesse wie Daten-Bereinigung, -Filterung, -Zersplitterung und -Transformation über die Daten bevor sie in den Import-Bereich des Systems in mehreren relationalen Tabellen (DB2) importiert werden. Über lokales JMS wird das nächste Modul über die Ankunft von neuen oder ggf. die Änderung von vorhandenen Daten benachrichtigt.
An der Reihe ist nun ein Normierungs-Modul, in dem mehrere Konvertierungen stattfinden, um die Daten der unterschiedlichen Zulieferern, die im Import-Bereich in unterschiedlichen Formaten vorliegen, in ein einheitliches internes Format zu bringen und sie somit für die Prozessierung im Anwendungskern vorbereiten. Die normierten Daten werden auch in mehreren relationalen Tabellen (DB2) gespeichert. Über lokales JMS wird wiederum das nächste Modul über die Ankunft von neuen oder ggf. die Änderung von vorhandenen Daten benachrichtigt.
Das nächste Modul stellt den Kern der Anwendung. Hier laufen komplexe Prozessierungen der Daten (Business-Logik). Das Modul besteht aus mehreren Schritten (Steps), die sequentiell hintereinander ausgeführt werden und anhand von mehreren berechneten Parametern wie Preise, Verfügbarkeit, etc. darüber entscheiden welche Artikel für den Verkauf freigegeben werden sollen und welche nicht. Die Ergebnisse werden im Kern-Bereich der Anwendung in mehreren relationalen Tabellen (DB2) gespeichert.
Über lokales JMS wird nun das letzte Modul in der Kette, das Export-Modul, darüber informiert, dass neue oder ggf. Änderungen zu vorhandenen Artikel-Daten (z.B. Preise, Verfügbarkeit, Ausverkauf, etc.) vorliegen. Dieser sorgt dann dafür, dass die freigegebenen Artikel in die Shop-DB (Oracle) gelangen, damit sie von den Shop-Anwendungen auffindbar sind und für den Verkauf in den Online-Shops ausgelesen und angezeigt werden. Die Daten werden aber auch in andere sowohl interne als auch externe Ziele exportiert.
Aufgaben:
Windows XP/7, FileZilla (FTP), Putty(SSH), Eclipse IDE (Helios/Juno), JAVA SE 6 , JAVA EE 5, JAMon (Java Application Monitor), Subversion (Subclipse, TortoiseSVN), JBoss Application Server, DB2, Oracle, H2 Database (Lokale Tests), NoSQL (MongoDB für Medien), FlyWay (Datenbankmigrationen), DBVisualizer, Hibernate, Spring, JPA, EJB3, JMS (HornetQ), Apache Camel, Ning (Kompression), SOAP (SoapUI, Axis), REST(Resteasy, Jackson), XML (Castor, StAX, JAXB), Logging (log4j, slf4j), Apache Commons, Guava (Google Core Libraries for Java), JSF (MyFaces, Facelets, RichFaces, Tomahawk), JBoss SEAM, Tests (Cactus, Junit, Mockito, DBUnit), Continuous Integration (Ant, Maven, Ivy, Nexus, Jenkins, Cargo), JRebel.
Mein Auftraggeber ist im Energiebereich tätig. Er stellt elektronische Geräte (Energie-Manager) her, mit denen unterschiedliche Energiequellen wie Brennstoffzellen, Photovoltaik-Anlagen, Wind-Anlagen, Diesel-Generatoren, Batterien, etc. gesteuert werden können. Die bei den Kunden installierten Geräte erfassen kontinuierlich anhand von Sensoren verschiedene Größen wie Temperatur, Spannung, Strom, usw. von diesen Anlagen. Diese Werte werden in bestimmten Zeitabständen an eine Zentrale Anwendung, die bei meinem Auftraggeber läuft, als TCP/IP Pakete gesendet. Meine Aufgabe bestand darin, für diese zentrale Anwendung Analyse, Design und Implementierung durchzuführen.
Die Anwendung besteht aus fünf großen Modulen:
Technologien:
Windows XP/7, Linux, Eclipse IDE, JAVA 1.6, ANT, Junit, Subversion, JAVA EE 1.5, JPA/EJB3, MySql,TCP/IP, HTTP/HTTPS, Servlets, JSP, JSF(Sun Mojarra), Apache MyFaces (Tomahawk), JBoss RichFaces (Ajax), JBoss Netty (Socktes, TCP, UDP), JFreeChart, Eclipse BIRT, Jboss Application Server, Java-Swings.
Es handelte sich um ein NPS-System (Net Promoter Score), das von meinem Auftraggeber und seine Tochtergesellschaften eingesetzt wird, um die emotionale Bindung und Zufriedenheit Ihrer Kunden zu messen. Über eine Datenzubereitungsschnittstelle bekommt das System die notwendigen Informationen über die zu befragenden Kunden eingeliefert und leitet die für die erste Befragung notwendigen Daten an einem Call Center und danach für die zweite Befragung an einem Innen- oder Außendienstmitarbeiter weiter. Dort werden die Kunden angerufen und befragt. Die Ergebnisse werden an das NPS-System zurückgeliefert. Nach einer Kampagne, die in der Regel zwei Monate dauert, werden die Ergebnisse vom System ausgewertet und in Form von Graphiken und Statistiken dargestellt. Die Analyse dieser Ergebnisse zeigen die Schwachstellen in der Organisation und helfen somit dem Unternehmen, seine Leistungen und Services zu verbessern.
Technologien:
Windows 2000/XP, WSAD (Websphere Application Developer mit integriertem Eclipse), J2EE, JAVA, ANT, JUnit, JavaScript, JSP, Servlets, Oracle, Oracle SQL Developer, DBVisualizer, HTML, XML, XMLSchema, XPath, XSLT, XMLSpy, XMLBeans, JAXB, Scrum.
Entwicklung im Team eines aufwendigen und sehr anspruchsvollen J2EE-Systems, das die Erstellung von projektbezogenen Workflows zur Bewertung von Kunden erlaubt. Um externe Datenquellen, hauptsächlich Auskunfteien, deren Informationen für das Beurteilen der Kunden relevant sind, an das System zu binden, wurde auch ein Gateway (eine Art einheitliche Schnittstelle) als Web Service implementiert. Durch das Plug-In Konzept konnte jede beliebige Auskunftei ohne großen Implementierungsaufwand über diese Schnittstelle an das Hauptsystem angebunden werden. Ich selber habe die Anbindungen der deutschen Auskunfteien Schufa und Deutsche Bank und der Kreditversicherung Euler Hermes übernommen. In Belgien waren es die Auskunfteien NBB und Graydon und in der Schweiz Teledata und NewZek. Die Daten, die mit den Auskunfteien ausgetauscht wurden, waren in den meisten Fällen mit für den Kunden erstellten Zertifikaten signiert und verschlüsselt oder eines von den beiden. Verschiedene Protokolle wie HTTP/HTTPS, SOAP über HTTP/HTTPS, SOAP über JMS, JavaMail (S/MIME) kamen zum Einsatz.
Die projektspezifischen Workflows zum Bewerten der Kunden bestanden neben den Auskunftei-Knoten meistens auch aus anderen Service-Knoten wie Scorecard- und Entscheidungsbäume-Knoten, die Mandanten-spezifisch sind. Eine komplexe Swing-Anwendung wurde entwickelt, mit der die Workflows erstellt, getestet und gewartet werden konnten.
Eine meiner Hauptaufgaben war aber auch die Administration der Entwicklungs-Datenbankserver, hauptsächlich Oracle, aber auch DB2 und MS-SQL-Server, unter denen die Entwicklungsdatenbanken liefen, und die Pflege der Datenbankskripte, sowie die Implementierung von Datenbanktools, zum Beispiel zum Komprimieren und archivieren der Daten, so dass das hohe Wachstum des Datenvolumens in der DB, das bei manchen Kunden zum Überlaufen der Tablespaces geführt hatte, ein Ende gesetzt wurde.
Technologien:
Windows 2000/XP, Linux, Solaris, Eclipse, Client/Server(2-tier), J2EE(3-tier), JAVA, JAVA Swings, ANT, JUnit, Oracle, Oracle SQL Developer, DBVisualizer, Toad, DB2, MS SQL, XML, XMLSchema, XPath, JAXB, TCP/IP, HTTP/HTTPS (SSL), JMS (ActiveMQ), SOAP, RMI, JavaMail, S/MIME (Verschlüsselung und Signierung von Emails), JSP, Servlets, Encryption/Decryption/Signing, EJB, Web Services mit AXIS, Hibernate, Tomcat, JBoss, WebLogic, WebSphere, Perforce, Subversion.
Entwurf, Spezifikation und Implementierung einer auf J2EE basierenden Plattform und eines Transport- und Kommunikations-Layers, das sowohl auf RMI als auch auf SOAP basierte Windows, Eclipse, J2EE, JAVA, JAVA Swings, Oracle, SOAP, RMI, EJB, Web Services mit AXIS, Tomcat, JBoss, CVS.
Entwicklung einer eProcessing-Plattform und einige darauf basierende Online Shops. Für den Entwurf von Workflows und die Verwaltung von Online Shops wurde eine komplexe grafische Benutzeroberfläche (GUI) implementiert, die auf JAVA
Swings und JDBC basierte.
Technologien:
Windows, Borland JBuilder, JAVA, JAVA Swings, JDBC, Oracle, Apache Web Server, HTML, XML, CVS.
Erstellung von EDV-Programmen mit mathematischen Verfahren für betriebswirtschaftliche Aufgaben und Erbringung der damit verbundenen Beratungsleistungen.
Technologien:
Windows 95/98/NT, Borland C++, C++, OWL.
IT-Consulant (Java/JEE): Beratung und Entwicklung von auf Java/JEE basierenden Enterprise Systemen.
Entwicklungsumgebungen:
Application Server:
Web container:
Entwicklungsmethoden:
Java Technologien:
Protokolle:
Datenbanktools:
Versionskontrollsysteme:
Sonstige Tools
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.