Herzlich willkommen auf dem Blog der exensio GmbH

exensio ist ein unabhängiges Software-Unternehmen von erfahrenen IT Beratern und Architekten. Zu unseren Kunden zählen namhafte deutsche Großunternehmen.

exensio verbessert das Kommunikations- und Informationsmanagement von Unternehmen. Auf Basis sinnvoller und zweckmäßiger Technologien erarbeiten wir flexible und übergreifende Lösungen für webbasierte Informationssysteme. Abhängig von den Kundenanforderungen realisieren wir Web Applikationen sowie Lösungen auf Basis von Web Content Management- und Portalsystemen. Integrativ, wirtschaftlich und anwenderfreundlich!

Hier gelangen Sie zur exensio GmbH.

Donnerstag, 26. Februar 2015

Migration - Java EE Applikationen, von Oracle WebLogic nach Apache Tomcat


Im Laufe der Jahre wurden für unsere Kunden aus der Pharmabranche neben Großprojekten auch viele kleine und mittlere Java EE Anwendungen umgesetzt. Diese werden produktiv mit komplexen WebLogic Server-Clustern betrieben.
Dieser Blogpost beschäftigt sich mit einigen Problematiken in der genannten Situation, den Anforderungen und mit der technischen Umsetzung.

Problematik und der Wunsch nach einem Plattformumzug


Im Vergleich zu Apache Tomcat ist Oracle WebLogic ein Applikationsserver mit einem großen Funktionsumfang und hohem Konfigurationsaufwand. Insbesondere für kleine und mittlere Applikationen sind die beiden folgenden wirtschaftlichen Faktoren interessant:
  • Lizenzkosten: Während bei WebLogic Servern Lizenzkosten für Development-, QA-, Test- und Produktionsumgebung zu zahlen sind, ist Tomcat ein Open-Source Produkt und damit überall kostenfrei verfügbar.
  • Wartungsaufwände: Das Deployment, die Bereitstellung und Zuweisung von System-Ressourcen und die Vorgehensweise bei der Konfiguration ist bei WebLogic in der Regel umfangreicher, aber gleichzeitig auch komplexer und zeitintensiver als bei Tomcat.
Für unsere Kunden waren wir die Problemstellungen angegangen und haben dabei für jedes einzelne Projekt die Machbarkeit eines Umzuges geprüft, Lösungsvarianten bewertet und ggf. umgesetzt.

Anforderungen


Die wohl größte Anforderung an die Migration waren WebLogic-Container spezifische Implementierungen und Konfigurationen. Während die Konfigurationen mit überschaubaren Aufwänden angepasst werden konnten, mussten für die Container-spezifischen Implementierungen einige Code-Änderungen eingebaut werden.
Eine Anwendung ist auch dann nur Bedingt für eine Migration geeignet, falls sie z.B. EJBs verwendet. Tomcat selbst ist ein schlanker Servlet-Container ohne EJB-Unterstützung. Damit EJBs auch unter Tomcat funktionieren, muss mindestens eine weitere Komponente, wie Apache TomEE, aufgesetzt werden.

Technische Umsetzung


Viele der migrierten Applikationen nutzen eine SSO-Lösung unter Verwendung des Microsoft IIS Server und bieten gleichzeitig eine explizite Login-Seite. Das heißt Nutzer der Anwendungen müssen im Normal-fall kein Passwort eingeben, um sich beim System anzumelden.

Der IIS Server nimmt die Requests entgegen und leitet die Informationen über den aktuell angemeldeten Windows-User an den Servlet-Container weiter. Falls diese Informationen aus irgendeinem Grund nicht weitergeleitet werden können, so wird der Nutzer auf eine Login-Seite weitergeleitet. Dort kann er sich mit seinem vertrauten Windows-Login und Passwort anmelden.

Damit der geschilderte Vorgang auch unter Tomcat funktioniert, müssen in den Anwendungen vorhandene Implementierungen überarbeitet. Dazu gehören z.B. die Erweiterung des Spring Security Moduls mit Anbindung des Windows Active Directory Services.
Die WebLogic Login API für die Authentifizierung mit Login/Password wurde ebenfalls durch äquivalente Funktionen mit Spring Security ersetzt.

Die Art und Weise zur Bereitstellung von JNDI-Ressourcen für die Anwendung, wie beispielsweise die DataSource oder die MailSession, mussten für Tomcat angepasst werden.
Des Weiteren müssen auf die Unterschiede in der Bereitstellung des JDBC-Treibers und Java Mail Abhängigkeiten beachtet werden. So dürfen Anwendungen, die eine Tomcat Mail-Session verwenden, keine mail.jar und activation.jar im Verzeichnis WEB-INF/lib enthalten. Stattdessen sollten die Bibliotheken in das Verzeichnis $CATALINA_HOME/lib kopiert werden.

Fazit

Auch wenn die zu migrierenden Anwendungen einige Container-spezifische Abhängigkeiten enthalten, kann es unter Umständen Sinn machen, eine Anpassung (nicht nur Migration) durchzuführen.

Die Kunden sparen nicht nur Betriebskosten durch entfallende Lizenzkosten. Durch einheitliche, projektübergreifende Konfigurationen und Deploymentprozesse lassen sich auch Synergieeffekte erzielen. Auch die größere Unabhängigkeit von einem einzelnen Plattform-Hersteller kann als Vorteil gewertet werden.


Freitag, 13. Februar 2015

Analyse von Suchanfragen mit Elasticsearch, Logstash und Kibana

Für einen unserer Kunden haben wir ein Portal erstellt, das eine Suchemaschine nutzt. Im Laufe der Zeit sammelten sich einige Anforderungen des Kunden an, die sich auf die Suchmaschine und die Ergebnisse auswirkten. Es wurden z.B. alle Suchergebnisse nach dem Erstellungsdatum sortiert oder bestimmte Dokumententypen wurden standardmäßig aus der Suche ausgeschlossen. Zur Verbesserung der Qualität der Suchergebnisse haben wir die Verwendung der Suche und der Filter analysiert. Alle Suchanfragen wurden bisher schon in einer Log-Datei erfasst und können damit nachträglich analysiert werden. Um unserem Kunden zu zeigen, welches Potential in einer statistischen Auswertung steckt, haben wir mit Elasticsearch, Logstash und Kibana 4 (dem sogenannten ELK-Stack) eine einfache Visualisierung der Suchanfragen erstellt.

Der erste Schritt ist Logstash so zu konfigurieren, dass es die Suchbegriffe aus den vorhandenen Log-Dateien extrahiert. In der Log-Datei wird die Solr-Query in URL-Form gespeichert. Mit dem urldecode- und dem kv-Filter von Logstash kann der Query-Teil einer URL zerlegt werden. Anschließend können mit den Filtern mutate und ruby die Suchbegriffe normalisiert und sortiert werden. Das ist hilfreich um unterschiedliche Suchbegriffe wie "2012 Reisekosten" und "reisekosten 2012" als eine Suche nach dem gleichen Begriff zu erkennen.

Logstash legt die Suchanfragen als Dokumente in Elasticsearch ab. Mit Kibana wird daraus ein ansehnliches Dashboard, das es einem einfach macht nach bestimmten Kriterien zu filtern. So kann z.B. der Zeitbereich interaktiv gewählt werden und alle Auswertungen aktualisieren sich sofort. Außerdem können alle Suchbegriffe angezeigt werden, bei denen ein bestimmter Filter in der Suche aktiviert war.


Kibana Dashboard
Zu sehen sind von links nach rechts:
Suchanfragen pro Tag, Dauer bis Suchanfrage beantwortet wurde
Häufigste Suchbegriffe, Verteilung der Suchanfragen auf Tageszeit, Gesamtzahl der Suchanfragen

Kibana 4 unterstützt außerdem Sub-Aggregationen, um z.B. die 5 häufigsten Suchbegriffe für einen Filter anzuzeigen. Auf den folgenden Grafiken sind für jeden der 20 häufigsten Filter jeweils die 5 häufigsten Suchbegriffe als unterschiedlich farbige Teile der Balken dargestellt. Es lässt sich ohne weitere Analyse feststellen, dass die drei häufigsten Filter signifikant oft mit nur einem einzigen Suchbegriff zusammen verwendet werden.


Kibana Visualisierung der häufigsten Filter mit den jeweils 5 häufigsten Suchbegriffen als Segmente der Balken

Als Tooltip werden Details zu den einzelnen Segmenten der Balken angezeigt. In diesem Fall einer der 5 häufigsten Suchbegriffe die zusammen mit dem beliebtesten Filter verwendet wurden.

Bewegt man die Maus über einen Suchbegriff, wird anschaulich gezeigt, bei welchen Filtern dieser unter den Top 5 ist
Mit Statistiken dieser Art kann sich der Kunde schnell einen Überblick verschaffen, wie die Suche benutzt wird, welche Begriffe häufig gesucht werden oder welche Filter nie verwendet werden. Durch die Verwendung von Elasticsearch, Logstash und Kibana ist es möglich, die Statistik ständig mit aktuellen Daten zu erweitern. So kann ohne weiteren Aufwand beobachtet werden, ob Änderungen an der Suche die gewünschten Auswirkungen zeigen.

Dienstag, 27. Januar 2015

Rückblick auf die Industriemesse i+e 2015 in Freiburg

Nach 2013 war es dieses Jahr wieder soweit. Wir haben auf der Industriemesse i+e 2015 in Freiburg zum zweiten Mal ausgestellt. In Freiburg präsentierten über 350 Aussteller – 20 davon aus dem benachbarten Elsass – vom 14. bis 16. Januar
2015 ihre Produkte und Dienstleistungen auf einer Ausstellungsfläche von rund 6.000 qm.

Weitere Informationen zu dieser Messe finden sich unter www.ie-messe.de Auf unserem Stand A108 im Foyer der Halle 2 des Freiburger Messegeländes zeigten wir einen aktuellen Ausschnitt aus unserem umfassenden Leistungsportfolio.

Des Weiteren konnte ich dieses Jahr einen Vortrag mit dem Titel: "Ist Big-Data-Technologie auch bei kleinen Datenmengen sinnvoll einsetzbar?" halten. In diesem habe ich verschiedene Anwendungsszenarien für Elasticsearch, die auch bei kleinen Datenmengen greifen, aufgezeigt. Als reale Beispiele seien hier Business Analytics, Competitive Intelligence, Logfile Analyse genannt. Der Vortrag findet sich unten.

Dienstag, 30. Dezember 2014

Unsere HTML5 basierte Weihnachtskarte

Es ist schon erstaunlich, was man inzwischen alles mit HTML5 realisieren kann. Unten (und damit sie nicht in Vergessenheit gerät :-)) unsere elektronische Weihnachtskarte von diesem Jahr.

Montag, 15. Dezember 2014

Eindrücke von der GGX in London

Vom 11. bis 12.12. konnte ich an der Groovy & Grails Exchange in London teilnehmen. Im Vergleich zum Jahr 2012 hatte das Programm weniger Besucher angezogen und bei den Keynotes blieben einige Stühle leer. Dies hatte aber nichts mit der Qualität des Programm zu tun. Es waren fast alle Core-Entwickler von Groovy und Grails mit Vorträgen präsent.

Den Reigen eröffnete Guillaume Laforge, der die aktuelle Groovy Version vorstellte und auf die Roadmap für die Zukunft einging. Neben Anpassungen für Java8 sind in der Version 2.3 vor allen Dingen die Themen Traits sowie die schnelle Implementierung des JSON-Parsers erwähnenswert.

Anschließend gab es über den Tag verteilt zwei parallele Session mit verschiedenen Themengebieten. Besonders interessant fand ich den Vortrag von Geb-Lead Marcin Erdmann über das Betreuen von Open-Source-Projekten. Er zeigte auf, dass ein erfolgreiches Open-Source-Projekt viel mehr erfordert wie das reine Programmieren. Die Details können im aufgezeichneten Video entnommen werden.

Bei der Panel-Diskussion am Ende des ersten Tages stellten sich die Kern-Entwickler den Fragen des Plenums. Es wurde unter anderem darüber diskutiert, warum die Frameworks Geb und Spock noch nicht in der Version 1.0 vorliegen. Beide Frameworks sind seit Jahren stabil und können nach mehrheitlicher Meinung schon längst im Status eines Major-Releases sein. Dieser psychologische Schritt würde einen zusätzlichen Schub für Groovy und die Frameworks selbst bedeuten, da damit auch der Einsatz in Unternehmen einfacher zu vertreten sein wird. Wir dürfen gespannt sein, ob sich in den nächsten zwei Monaten hierzu etwas tut.

Der zweite Tag wurde von Graeme Rocher mit seiner Keynote zu Grails 3.0 eröffnet. Vermutlich schon im Januar 2015 wird der erste Meilenstein verfügbar sein. Das neue Grails-Release wird eng mit Springboot verzahnt sein und damit auch die dort verfügbaren Features einfach einbinden können. Eine weitere große Umstellung wird das Build-System sein, das zukünftig auf Gradle basieren wird. Damit dürfte eine Integration mit Entwicklungsumgebungen deutlich einfacher sein.

Ein weiteres Highlight am zweiten Tag war das testgetriebene Vorgehen beim Entwicklen einer Springboot-Applikation mit dem Einsatz des Test-Frameworks Cucumber. Hierbei wurde innerhalb von 45 Minuten eine kleine auf Springboot basierende Anwendung entwickelt.

Ich konnte während der zwei Tage in London wieder einige noch nicht bekannte Dinge aus dem Groovy-Öko-System aufschnappen, die sich in dem ein oder anderen Projekt sinnvoll einsetzen lassen werden.

Montag, 24. November 2014

Präparate Datenbank erzeugt IFA Preismeldungen

Quelle: IFA GmbH
exensio hat für einen namhaften Pharmahersteller eine Software Lösung zur Verwaltung von vertrieblichen und medizinischen Daten seiner Präparate umgesetzt. Diese Präparate-Datenbank (PIM System), die schon seit mehreren Jahren erfolgreich in Betrieb ist, wurde dieses Jahr um den IFA Preismelde- Workflow erweitert.

Die IFA (Informationsstelle für Arzneispezialitäten) erhebt und pflegt Information zu Arzneimitteln und apothekenüblichen Waren. Sie vergibt dabei die sogenannten PZN (Pharmazentralnummer), die einen Artikel eindeutig kennzeichnet. Hersteller können die Neuaufnahme sowie Änderungen der Daten an die IFA mitteilen. Hierfür existiert ein Verfahren basierend auf sogenannten EAD Dateien, die zur IFA geschickt und dort verarbeitet werden. Zurück kommt eine Bestätigung ggf. mit Korrekturen.

Preisänderungen  sind insbesondere für Generika Anbieter kritisch, da sie für den Absatz ein sehr entscheidendes Kriterium sind. Ein stabiler Workflow zur Durchführung und Übertragung der Preisänderungen ist daher erfolgskritisch.

Die Präparate-Datenbank von exensio ist nun in der Lage, basierend auf Preisanpassungen aus SAP, die durch einen SOX konformen Prozess freigegeben wurden, entsprechende IFA Meldungen automatisch zu erzeugen. Die von der IFA vorgegebenen EAD Dateien werden pro Firma des Konzerns automatisch erzeugt und rechtzeitig vor Ablauf der Einreichungsfrist an die IFA per Email verschickt.

Die IFA wiederum schickt eine Bestätigungs-Email mit Datei als Anhang zurück. Die Datei wird automatisiert in der Präparate Datenbank eingelesen und die Daten werden mit den an die IFA gesendeten Werten abgeglichen. Bei Übereinstimmung werden die geänderten Preise als von der IFA bestätigt übernommen. Bei Abweichungen werden entsprechende Warnmeldungen und Alerts erzeugt, um Folgeaktivitäten auszulösen. Alle Informationen werden an SAP zurückgespielt, um dort den fachlichen Workflow schließen zu können.

Fazit

Mit der Automatisierung gewinnt der komplette Ablauf eine hohe Sicherheit. Manuelle Schritte und damit potentielle Fehlerquellen entfallen. Die Präparate-Datenbank als Lieferant hochwertiger produktbezogener Informationen für alle Informations-Kanäle liefert damit garantiert korrekte Preisinformationen – ob in geschlossene Bereiche im Internet oder andere Intranet-Systeme.