Alle Artikel in: jStage Platform

Analyse von Nutzeranfragen mit stagemonitor

Stagemonitor ist vor allem dafür bekannt, dass damit die Performance einer Anwendung analysiert werden kann. Es gibt jedoch noch ein weiteres Gebiet, wofür stagemonitor nützlich ist, welches nicht nur Entwickler interessieren dürfte. Es geht darum, ein tieferes Verständnis davon zu bekommen, wie die Anwendung von den Kunden genutzt wird, wo und warum Fehler auftreten, ob Missbrauch mit der Anwendung getrieben wird und vieles mehr. Ein derzeit populäres Vorgehen ist die Analyse von HTTP Anfragen mit dem sogenannten “Elastic Stack” (ehemals ELK Stack). Hierbei werden beispielsweise mit Hilfe von “Logstash” Access Logs vom Apache Server geparsed, ggf. in Redis zwischengespeichert, in Elasticsearch indexiert und mit Kibana visualisiert. Stagemonitor wird direkt in die Anwendung integriert und hat somit direkten Zugriff auf Informationen wie die angefragte URL, die Verarbeitungszeit, aufgetretene Exceptions usw.. Dadurch entfällt der aufwendige Schritt, diese Informationen aus Logdateien zu extrahieren. Die gesammelten Daten über eine HTTP-Anfrage, sogennante “Request Traces”, werden asynchron an Elasticsearch gesendet, sodass die Performance der Anwendung nicht beeinträchtigt wird. Zusätzlich bietet stagemonitor ein bereits vorkonfiguriertes Kibana Dashboard an, mit dem die Anfragen …

jStage PIM - Client - Architekturüberblick

jStage PIM – Client – Architekturüberblick

Schichtentrennung, Modularisierung, Kapselung, Don’t repeat yourself (DRY), … es gibt viele grundlegende Prinzipien, mit denen sich gute Softwarearchitektur beschreiben lässt. In jedem (größeren) Softwareprojekt spielt eine klare Architektur eine wichtige Rolle. Die Gründe hierfür sind beispielsweise Performance, Übersichtlichkeit und Wartbarkeit. Je klarer die Architektur, desto leichter kann neue Funktionalität implementiert werden. Auch die Einarbeitung neuer Mitarbeiter fällt mit einer klaren, strukturierten und nachvollziehbaren Architektur deutlich leichter.  Auch der jStage PIM – Client verfügt über eine solche Architektur, die in dieser Beitragsserie näher betrachtet wird. Systemarchitektur Überblick Abbildung 1 zeigt überblicksartig die Architektur des jStage PIM. Es basiert auf einer klassischen Mehr-Schichten-Architektur mit einer relationalen Datenbank. In den nachfolgenden Kapiteln wird näher auf die einzelnen Schichten sowie auf die verwendeten Technologien eingegangen. Oberfläche / Client Der jStage PIM – Client basiert auf der Eclipse Rich Client Platform (RCP). Hierbei handelt es sich um ein Open Source (Eclipse Public License (EPL)) Framework zum Bau eigener Applikationen. Das RCP-Framework stellt dabei eine große und stabile Grundlage dar, auf Basis derer komplexe Desktop-Anwendungen entwickelt werden können. Die bekannteste RCP-Applikation …

Mehr Überblick im Firmennetzwerk – Zugriffsrechte zentral steuern mit “NAM”

Die Verwaltung eines Firmennetzwerks ist eine anspruchsvolle Aufgabe. Verfügbarkeit, Sicherheit und Datenschutz müssen gewahrt werden, die Administratoren müssen genau steuern und nachvollziehen können, welches Gerät und welcher Benutzer auf welche der im Netzwerk bereitstehenden Ressourcen zugreifen können.

Stage Talk

Hama hat ‘nen Druckknopf – Single Source Publishing bei Hama GmbH & Co KG

Stage Talk zur automatisierten Katalogproduktion bei Hama mit dem jStage Publishing-Modul   Beim Katalog drückt Hama aufs Knöpfchen. Der Zubehörspezialist Hama GmbH & Co KG aus dem bayerischen Monheim produziert sozusagen auf Knopfdruck nun bereits seit über 2 Jahren seine großen Kataloge automatisiert und steuert die komplette Druckorganisation über das Publishing-Modul im jStage PIM-System. Zeit genug, um Rückschau zu halten, wie sich die Einführung des jStage Publishers auf die Marketingprozesse auswirkt – aber auch Zeit genug, einen Blick in die Zukunft zu werfen und zu sehen, wohin die Reise beim Publishing geht. Interview mit Stefan Zinsmeister, Leitung Marketing, von Hama GmbH & Co KG, einem der europäischen Marktführer für elektronisches Zubehör. Hallo Herr Zinsmeister, seit über 2 Jahren produzieren Sie Ihre großen Kataloge automatisiert aus dem jStage PIM-System heraus. Wissen Sie noch, wie es vorher war? Stefan Zinsmeister: Aber natürlich. Die Hama Kataloge waren über Jahrzehnte das zentrale Informations- und Arbeitsinstrument für Mitarbeiter, Händler, Verkäufer und sogar Verbraucher. Mediengestalter und Produktmanager haben Wochen oder gar Monate investiert, damit einmal pro Jahr alles wirklich auf dem …

Technologieupgrade am Beispiel von Java 8

Es gibt viele gute Gründe, eine Java Anwendung auf die aktuelle Sprachversion zu aktualisieren. In größeren Softwareprojekten kann allerdings jedes Technologieupgrade an trivialen Dingen scheitern – Der Spruch “Never touch a running System” ist nicht umsonst so populär. Vor gut einem Jahr haben wir den jStage eShop, unsere E-Commerce-Lösung, auf Java 8 umgestellt. Dieser Erfahrungsbericht zeigt auf, worauf man achten sollte, damit der Wechsel  erfolgreich über die Bühne geht. Java: Sprache und Laufzeitumgebung Mit Java wird sowohl die Programmiersprache Java als auch die Laufzeitumgebung bezeichnet. Mit einer bestimmten Sprachversion entwickelte Anwendungen können nur auf einer Laufzeitumgebung mindestens der gleichen Version betrieben werden. Umgekehrt laufen dagegen ältere Anwendungen fast immer problemlos auf einer neueren Laufzeitumgebung. Dazu gleich mehr. Für uns ergibt sich dadurch die Reihenfolge der Umstellung: Zuerst wird die Laufzeitumgebung aktualisiert, dann die Entwicklung der Anwendung auf Java 8 umgestellt. Umstellung der Laufzeitumgebung Probleme macht in der Regel nicht die eigene Anwendung, sondern die verwendeten Softwarebibliotheken. Kritische Kandidaten sind unter anderem solche, die den Bytecode manipulieren, wie z. B. Javassist (Java Programming Assistant). Hier zahlt …

Technologische Partnerschaft jStage - CCWI

Technologische Partnerschaft jStage – Competence Center Wirtschaftsinformatik

Wir freuen uns, mit dem Competence Center Wirtschaftsinformatik (CCWI) der Hochschule München einen starken Technologie-Partner gewonnen zu haben. Die Struktur des CCWI ist in Abbildung 1 dargestellt. Die iSYS Software GmbH und das CCWI arbeiten bereits seit 2008 erfolgreich zusammen – nun wird diese Partnerschaft auf jStage ausgedehnt. Durch den regen Austausch in den Bereichen  E-Commerce, Social Media & Empfehlungssystemen ist eine Win-Win-Situation gegeben: jStage bleibt am “Puls der Zeit” und kann seinen Kunden aktuelle Lösungen aus der Forschung präsentieren. Das CCWI sieht Bedürfnisse und Schwierigkeiten aus der Praxis und kann Lösungen hierfür erarbeiten. Parallel wird ebenfalls bei Abschlussarbeiten (Bachelor / Master), Projektstudien und Forschungsaufträgen eng zusammengearbeitet. Weiterführende Informationen zum CCWI, seinen aktuellen Forschungsprojekten und Publikationen finden Sie unter: Competence Center Wirtschaftsinformatik

Code Reviews mit Gerrit

Doppelt hält besser – Code Reviews mit Gerrit

Wer hat sich nicht schon mal über Softwarefehler geärgert, sei es am Fahrkartenautomat, bei der Bank oder bei der täglichen Büroarbeit.  Je komplexer eine Software, desto höher ist die Wahrscheinlichkeit, dass diese Fehler beinhaltet, die den Benutzer frustrieren. Dieser Blogbeitrag beschäftigt sich mit einer Möglichkeit, Fehler frühzeitig zu erkennen und somit vor dem Deploy zu beheben: Code Reviews. Code Qualität Bevor wir zu den Code Reviews an sich kommen, ein paar Worte zum Thema “Code Qualität”. Man hört und liest sehr häufig, dass es wichtig und notwendig ist, Quellcode mit hoher Qualität zu schreiben. Doch wieso ist diese hohe Qualität so wichtig, speziell im Umfeld produktiver und profressioneller Software? Wartbarkeit stellt hier ein sehr wichtiges Kriterium dar. Professionelle Software wird meist über viele Jahre hinweg (weiter) entwickelt und gepflegt. Je höher die Qualität, desto leichter ist die Wartbarkeit bzw. das sukkzessive Erweitern der Software. An dieser Stelle kommt ein weiterer wichtiger Faktor ins Spiel: Lesbarkeit des Codes. Dazu gehören speziell die sprechende Benennung von Variablen und Methoden, klare Strukturierung und Kommentare. Je höher die Lesbarkeit, …

Agile Webentwicklung mit Spring Boot und AngularJS

Technologie-Vorträge über aktuelle Kundenprojekte oder rund um die Software-Entwicklung im Allgemeinen sind in der iSYS Software GmbH schon seit langem eine gern gesehene Tradition. In der diesmaligen Veranstaltung von Fabian Trampusch und Najum Ali ging es um Webentwicklung und dabei konkret über den in drei Projekten erfolgreich eingesetzten Technologiestack. Dabei spielen besonders die beiden Frameworks Spring Boot und AngularJS eine große Rolle. Der Fokus dieses Beitrags liegt auf der Erfahrung, die mit diesen beiden Technologien im Zusammenspiel gemacht wurden. Projektanforderung Sowohl für interne als auch für externe Kundenprojekte sind aktuell Webanwendungen der Standard, um fachspezifische Datenpflege zu ermöglichen. Dabei müssen Daten vom Server angefordert werden, welche von Endbenutzern (je nach Recht) manipuliert und wieder gespeichert werden können. Auch wenn sich die fachlichen Anforderungen teilweise sehr unterscheiden, so ist jedoch die technische Handhabung der Daten sehr ähnlich. Für die technische Umsetzung wurden moderne Frameworks eingesetzt, welche ausschließlich unter Opensource-Lizenzen stehen. Diese Frameworks übernehmen einen Großteil der Standardimplementierung einer Webanwendung, sodass sich der Entwickler vielmehr auf die tatsächliche Geschäftslogik konzentrieren kann. Demnach kann man erste Ergebnisse der Anwendung schon nach wenigen Stunden sehen und diese mit dem Kunden in agilen Iterationen abstimmen. Technologiestack mit Spring Boot und AngularJS Der grundlegende Gedanke der Architektur …

Freemarker – In Action

Bei der Erstellung einer webbasierten Software Lösung muss man sich frühzeitig auf eine geeignete Technologie zur Erzeugung der Website (Frontend) festlegen. Dies kann sowohl serverseitig als auch clientseitig geschehen. Dieser Beitrag befasst sich mit der serverseitigen Erzeugung von HTML-Code mithilfe der Template-Engine Freemarker. Natürlich ist eine Kombination beider Verfahren in Zeiten von JavaScript und AJAX nicht unausweichlich.

Performance Monitoring mit stagemonitor während der Entwicklung

Der erste Blogpost über stagemonitor gab einen groben Überblick über die vielseitigen Einsatzzwecke und Funktionen des Open Source Performance Monitoring Tools stagemonitor. In diesem Teil beschäftigen wir uns näher mit dem In Browser Widget, welches bereits während der Entwicklung einer Webanwendung Analysemöglichkeiten bietet und ein konstantes Feedback über die Performance gibt. In vielen Fällen bekommt man oft erst mit, dass eine Webanwendung langsam ist, wenn es eigentlich schon zu spät ist und sich ein verärgerter Kunde über eine langsame Seite beschwert. Gerade bei eCommerce Webseiten führt dies teilweise zu erheblichen wirtschaftlichen Schäden. Nicht nur, dass ein verärgerter Kunde wahrscheinlich nicht nochmals einen langsamen Shop besucht, viele machen ihrem Unmut auch bei Freunden oder in sozialen Netzwerken Luft. Deshalb ist es entscheidend, Performance-Bugs so früh wie möglich im Entwicklungszyklus zu beheben. Das In Browser Widget Stagemonitor bietet mit dem In Browser ein Werkzeug an, mit dem die Performance während der Entwicklung analysiert und optimiert werden kann. Zudem wird der Entwickler auf Probleme hingewiesen, die sonst evtl. erst in der Produktion sichtbar werden. Das In Browser Widget …

jStage-Translation-Management

Schluss mit manuellem Dokumentenversand – Zukunft geht anders

Stage Talk zur Automatisierung von Übersetzungsaufträgen mit dem jStage Translation Manager.   Auch in Zeiten von PIM, MAM und MDM sind in Unternehmen viele Prozesse noch manuell organisiert. Der Zubehörspezialist Hama GmbH & Co KG aus dem bayerischen Monheim löst mit dem neuen Translation Manager im jStage PIM-System einen solchen manuellen Prozess ab und wird künftig die Übersetzungsaufträge an einen externen Dienstleister über das PIM-System organisieren und den kompletten Übersetzungsprozess softwaregestützt durchführen – bis hin zu Auftragscontrolling und Delay-Alert. Interview mit Nadine Saur, Gruppenleiterin Redaktion & Andreas Gröbl, Projekt Manager, von Hama GmbH & Co KG, einem der europäischen Markführer für elektronisches Zubehör. Abb 1: Nadine Saur und Andreas Gröbl von Hama GmbH & Co KG   Stage Talk: Hallo Frau Saur, Hallo Herr Gröbl, Sie stehen kurz vor dem Go Live des Translation Managers. Jetzt ist Schluss mit dem manuellen Versand von Dokumenten mit Übersetzungsvorlagen. Aufbruch in eine neue Zeit? Nadine Saur: Ja, irgendwie schon. Wir sind alle sehr froh über die zeitliche Entlastung, die der Translation Manager mit sich bringt. 17 Sprachen bei ca. …

Demodaten aus Wikipedia mittels Semantic Web

derived from S. Krause | CC Um produktive IT-Systeme stetig erweitern und verbessern zu können, haben sich dedizierte Testumgebungen bisher immer gut bewährt. So können neue Features und eventuelle Fehlerbehebungen in einer isolierten Umgebung getestet werden, bevor diese in den produktiven Betrieb aufgenommen werden. Anforderung Aktuell arbeiten wir an unserem jStage Shopsystem mit diversen Testumgebungen, um die Stabilität unserer Software stetig zu erhöhen und um den Kunden Einblicke in die zukünftigen Vorabversionen gewähren zu können. Für eine noch agilere Entwicklung wurde eine kompakte Testumgebung konzipiert, sodass das gesamte Shopsystem lokal auf dem Rechner eines Entwicklers abläuft. In dieser Testumgebung ist anstatt der Testdatenbank eines Kunden, eine vom Kunden unabhängige Datenbank enthalten. Dadurch fehlt es natürlich auch an Demo- bzw. Testdaten (z.B. Test-Produkte für den Shop). Um eine größere Menge an Artikeln (samt Artikeldaten, Bilder, usw.) nicht per Hand anlegen zu müssen, wurde nach einem automatisierten Prozess gesucht. Lösungsfindung Zunächst habe ich nach frei verfügbaren und geeigneten Datenquellen recherchiert, aus denen die Demo-Artikel letztendlich generiert werden können. Die aktuelle Wahl ist auf Wikipedia und dabei willkürlich auf Motorräder gefallen. Um die Daten natürlich nicht per Hand kopieren zu müssen, wurde die Wikipedia-API evaluiert um die Daten programmatisch abzugreifen. Doch wie …

Versionierung von Datenbanken mit Liquibase

Prozesse innerhalb eines Unternehmens verändern sich im Laufe der Zeit. Es kommen neue Abläufe hinzu, andere werden vereinfacht oder erweitert. Auch Informationen ändern sich. Neue Informationen kommen hinzu, werden umstrukturiert oder anders organisiert. Die Software, die diese Arbeitsprozesse und die Speicherung der Informationen unterstützt ist einem ständigen Wandel unterworfen. Das trifft auch auf viele Projekte bei uns im jStage Team zu. Deshalb haben wir uns mit dem Thema Datenbankversionierung näher beschäftigt, mit dem Ziel unseren Entwicklungprozess dahingehend zu erweitern. Genau wie bei der Verwaltung von Source Code ist es auch auf Datenbankebene wichtig, die gemachten Änderungen zu erfassen und zu versionieren. Diese Versionierung bietet für uns im Entwicklungsprozess folgende Vorteile: Änderungen sind nachvollziehbar Geht man mit Schemaänderungen wie mit Source Code Änderungen um, lässt sich jederzeit feststellen wer eine bestimmte Änderung am Datenmodell zu welcher Zeit vorgenommen hat. Verbindet man die Änderung noch mit der eigentlichen Aufgabe aus dem Issue Tracking System, hat man sogar den fachlichen Bezug. Außerdem kann man jederzeit das versionierte Modell mit der Produktion abgleichen bzw. Änderungen automatisiert einspielen. Erleichtert das …

Performance Monitoring mit stagemonitor

Jedes Software Projekt muss sich früher oder später Gedanken über die Performance machen, um marktfähig zu bleiben und den Erwartungen der Nutzer zu entsprechen. Hierzu ist ein gutes Monitoring Werkzeug unerlässlich. Kommerzielle Lösungen sind teuer und bestehende Open-Source-Projekte sind meistens nicht speziell für Webanwendungen ausgelegt oder tun sich schwer mit dem Monitoring von geclusterten Anwendungen. Genau hier setzt stagemonitor an. Stagemonitor ist eine Open-Source Java Application Performance Monitoring Lösung, welche alle Werkzeuge bietet, die während der Entwicklung, Qualitätssicherung und Produktion nötig sind, um die Performance einer Java Webanwendung überwachen zu können. Stagemonitor ist speziell dafür ausgelegt, aktuelle und historische Metriken von geclusterten Anwendungen zu überwachen. Durch die Plug-In Architektur kann der Funktionsumfang beliebig erweitert werden. Stagemonitor in der Praxis bei Hama GmbH & Co KG Aktuell setzen wir stagemonitor für die Entwicklung und die Überwachung der produktiven Shop-Webseite unseres Kunden Hama GmbH & Co KG ein. Das Beispiel Hama zeigt dabei sehr schön die flexiblen Möglichkeiten von stagemonitor, einzelne Server bis zu komplexen Serverclustern mit verschiedenen Anwendungen zu überwachen. Die folgende Grafik veranschaulicht vereinfacht die …