Monthly Archives: November 2017

  • 0

Warum JEE meist nur die zweitbeste Lösung ist …

In unserem aktuellen Projekt ist die Kundenvorgabe, die Implementierung mit JEE-Standards vorzunehmen.
Es handelt sich um einen Microservice, welcher „stateless“ Informationen aus einer relationalen Datenbank und einem nachgelagerten REST-Service zusammenstellt.
Als Plattform dient JBoss 6.3. Laut Spezifikation unterstützt dieser die JEE 6 vollständig.
Die Projektanforderungen enthalten zunächst keine Besonderheiten, so dass das Projekt zuversichtlich mit diesen Rahmenbedingungen begonnen wird.
Während der Implementierung ergeben sich allerdings verschiedene Notwendigkeiten zur Optimierung:

  • Asynchroner REST-Zugriff (JAX-RS 2.0):

Beim Zugriff auf den nachgelagerten REST-Service stellt sich heraus, dass dieser ein Bottleneck darstellt. Hier muss also ein Cache aufgebaut werden.
Der aus dem REST-Service abgerufene Wert, eine Logo-URL, ist für die Grundfunktionalität verzichtbar, so dass ein asynchroner Zugriff für den Cache-Aufbau verwendet werden kann.
Der erste Aufruf geht also auf einen Standard-Wert, nachfolgende Aufrufe können auf den mittlerweile aufgebauten Cache zugreifen.
JEE 7 ermöglicht asynchrone REST-Aufrufe. Durch Konfiguration des JBoss kann diese JEE7-Funktionalität bereit gestellt werden.
https://dzone.com/articles/jax-rs-20-asynchronous-server-and-client )

  • Löschen eines Objektes

Beim Löschen eines Objektes aus der DB stellt sich heraus, dass der remove()-Aufruf nicht greift, da das Objekt nicht mehr in einem DB-Session-Kontext verankert ist.
JPA hat hier deutliche Einschänkungen gegenüber Hibernate (s.a. https://stackoverflow.com/questions/912659/what-is-the-proper-way-to-re-attach-detached-objects-in-hibernate).
Abhilfe: JPQL-Query. Das ist nach JPA 1.x möglich, führt aber an dem gesamten Konzept des O/R-Mappings vorbei, da SQL (-ähnlicher) Code im Quellcode auftaucht.

  • Löschen von Attributen aus der JSON-Response

Das explizite Parsen von JSON mit dem Jackson Object Mapper aus ist im Projekt gar kein Problem, Annotations wie @JsonIgnore werden problemlos verarbeitet.
Beim der deklarativen Verwendung von JAX-RS wird das Rückgabeobjekt zwar zunächst einwandfrei als JSON zurückgegeben – aber die Annotations werden ignoriert.
Nach einer mehrstündigen Debug-Session (s.a. http://docs.jboss.org/resteasy/docs/2.3.7.Final/userguide/html_single/index.html)
stellt sich heraus, dass JBoss intern Jackson 1 und nicht Jackson 2 verwendet. Dies lässt die Wahl, entweder a.) alle JSON-Annotations auf Jackson 1 zurückzudrehen, b.) jeweils beide Annotations zu verwenden, c.) Den JBoss mit ca. 10-20 Zeilen so zu konfigurieren, dass Jackson 2 als Mapper verwendet wird oder d.) mit 3 Zeilen die Konvertierung Objekt -> JSON-String explizit beim Aufruf auszuprogrammieren. Um weitere Stunden der Konfiguration zu sparen, sind wir bei Option d.) gelandet, nicht schön, aber aus meiner Sicht angemessen, um nicht weitere Stunden zu investieren, um 3 Zeilen Code einzusparen.

Heraus kommt also ein Projekt, welches sehr spezifisch auf die Zielplattform ausprogrammiert wird. Der Vorteil ist, dass alle Anpassungen durchaus im JEE-Standard lauffähig sind.
Aber bereits der fehlende Standard für die JSON-Annotations in JEE 7(!) führt dazu, dass eine Abhängigkeit in eine konkretes Framework in das Projekt hineinwächst.
Dies gilt aber generell bei der Umsetzung von JEE-Projekten: Der Standard hängt mehrere Jahre hinterher. Getreu der 80/20 Regel stößt man im Projekt aber immer wieder auf Aufgaben, die mit aktuellen Frameworks schnell und unkompliziert zu lösen sind. Hier muss sich das Team entscheiden:

I. Werden Abhängigkeiten auf spezifische Versionen eines Frameworks in Kauf genommen?
II. werden die Möglichkeiten des Application Servers genutzt?
III. Oder wird die nötige Funktionalität des Frameworks nachprogrammiert.

Vor dieser Entscheidung stehen bereits mittelgroße Projekte, und die saubere Lösung III. wird aus nachvollziehbaren Gründen sehr selten in Erwägung gezogen.
Damit ist die lupenreine Verwendung des JEE-Standards für „real-life“ Projekte nur eine Illusion. Möchte man sich nicht an einen Hersteller binden, so ist I. der Weg für eine halbwegs zukunftssichere Lösung.

Ist die Entscheidung I. getroffen, aktuelle Frameworks im Projekt zu verwenden, ist der Weg zu Spring und Hibernate in der aktuellen Version nicht mehr weit.
Damit verwendet man die Vorreiter der nächsten und übernächsten JEE-Version bereits heute.
Mit dem aktuellen Trend zu Microservices wird die Gefahr von Versionskonflikten außerdem „by design“ noch vermindert.
JEE bleibt damit interessant für weniger komplexe Aufgaben, die maximal portierbar bleiben sollen.
Sobald aber agile Projekte mit unbekannter Komplexität angegangen werden, ist meiner Erfahrung nach das Risiko größer, die Nachteile beider Welten im Projekt zu vereinen.

 

Autor:
Wolff Holtmann

 

 

 

Sie erreichen Herrn Wolff Holtmann per E-Mail: wolff.holtmann@consiness.com


  • 0

Identity Management
 

Lernen Sie SAP Identity Management kennen – mit consiness und der Rapid Deployment Solution für SAP IDM 8.0+.

Spielen sie mit dem Gedanken die Nutzerverwaltung in Ihrer Systemlandschaft zentral, transparent und gleichzeitig effizient zu gestalten? Über 1500 Kunden weltweit nutzen inzwischen die Identity Management Lösung der SAP, um den Lebenszyklus von Nutzern einheitlich über Systemgrenzen hinweg abzubilden. Nicht selten schrecken hohe initiale Kosten und Unsicherheit von der Einführung moderner und effektiver Software ab, so dass sich über die Zeit undurchsichtige Insellösungen etablieren.

Die neue Rapid Deployment Solution 2.8 ermöglicht es Unternehmen, mit vergleichsweise geringem Aufwand eine Erstimplementierung für ein zentrales Identitätsmanagement durchzuführen. Das bewährte Konfigurationspaket wurde nach einer langen Wartezeit auf die aktuelle Version IDM 8.0 portiert. Neben den zahlreichen Funktionen und Werkzeugen, die für den produktiven Betrieb essentiell sind, bietet das Paket als Highlight erweiterte Möglichkeiten, SAP HANA und Success Factors zu integrieren. Eine Auswahl der Features:

  • Erweiterte Repository-Typen für bessere Systemintegration
  • Erweiterte Integration von SAP HANA und Success Factors
  • Erweitertes Datenmodell für Identitäten und Rollen (systemspezifische Attribute)
  • Umfangreiche Formulare und Admin-Tools inkl. Massenadministration
  • Up- & Download Tools für Business-Rollen und Texte
  • Erweiterte (E-Mail)-Notifications
  • Verbesserte Integration der Provisionierung mit SAP Access Control
  • Vorgefertigte Reporting und Reconciliation-Analysen

Das Paket richtet sich vorrangig an Unternehmen, die schnell und günstig erste Erfolge mit IDM erzielen wollen. Je nach Ausgangslage kann ein Proof of Concept in 1-3 Monaten bei Ihrem Unternehmen implementiert werden. Weiterhin ist SAP IDM für reine SAP-Szenarien lizenzkostenfrei!

Überlegen Sie SAP Identity Management 8 bei sich einzuführen? Die Berater der Consiness betreuen Sie gern umfassend in der Strategie, Planung und Umsetzung in den Bereichen Berechtigungs- und Identitätsmanagement.

 

 

 

 

 

Autor:
Hendrik Winkler

Sie erreichen Herr Hendrik Winkler per E-Mail: hendrik.winkler@consiness.com


  • 0

Unsere Persönlichkeiten
Pourang Khadivi

Senior SAP GRC IDM- und AC-Berater

Herr Pourang Khadivi verfügt über 17 Jahre berufliche Erfahrung im Bereich IT, davon 9 Jahre als zertifizierter SAP Berater. Der Tätigkeitsschwerpunkt liegt dabei in der Gestaltung von revisionssicheren betriebswirtschaftlichen Prozessen mit Fokus auf Zugriffsdesign und Zugriffsmanagement konform mit internen und externen Regularien (BilMoG, SoX, Datenschutz, etc.).

Pourang Khadivi beherrscht das SAP-Berechtigungskonzept in ERP-, BW- und HCM-Systemen. Über zahlreiche Projekte war er federführend sowohl fachlich als auch technisch tätig. Dabei verfügt er über Branchenerfahrung aus der Energie-, Logistik-, Automotiv-, Banken- und Stahl-Industrie.

Er kennt die Grenzen des SAP Standards und kann diese selbstständig durch kundenspezifische ABAP-basierte Lösungen, entsprechend den Anforderungen erweitern. Seine Kompetenz geht über die klassischen PFCG-Berechtigungen hinaus. So kann er zum Beispiel diverse Implementierungserfolge im Umfeld der HR Strukturelle Berechtigung oder BW-Analyseberechtigung vorweisen.

In den letzten 7 Jahren ist er hauptsächlich als SAP GRC IDM- und AC-Berater tätig und hat sich dabei auf SAP GRC Access Control als Berater und Entwickler spezialisiert. Dabei kann er den gesamten Entwicklungszyklus eines solchen Projektes selbstständig koordinieren und abwickeln.

Im SAP GRC Access Control Umfeld ist er an der Konzeption und Entwicklung der größten europäische Installation beteiligt. Er beherrscht alle Komponenten (User Access Management, Business Role Management, Risk Analysis and Remediation, Super User Privilege Management, Password Selfservice) des SAP Produkts. Sein Beratungsumfang umfasst die Integration von ganzen SAP und Non-SAP-Landschaften in das SAP GRC, Automatisierung und Dezentralisierung von Abläufen durch Workflows (MSMP / BRF+), Aufbau von SOD-Regeln und eine adäquate Control Organisation zur Mitigation und Bereinigung von Risikoverletzungen und die ständige Optimierung der Prozesse im Sinne von Transparenz, Effizienz und Compliance.

Projekte dieser Art stehen in einem Spannungsfeld vieler interner und externer Beteiligten und müssen die regulatorischen Anforderungen in einem angemessenen Zeit- und Budgetrahmen nachhaltig implementieren. Herr Khadivi verfügt neben seiner fachlichen und technischen Knowhow auch über die nötige Moderations-, Kommunikationsfähigkeiten, um selbstständig Workshops und Termine vorzubereiten und durchzuführen. Dies bildet die beste Grundlage für die Zusammenarbeit für Projekte im Umfeld SAP GRC, Identity Management und Berechtigungswesen.

Privat ist Pourang Khadivi Familienvater, liebt das Kochen und interessiert sich für elektronische Musikproduktion und Politik.

 

Sie erreichen Herrn Pourang Khadivi per Mail: pourang.khadivi@consiness.de


  • 0

Unsere Persönlichkeiten
Frank Gilow

Senior Projektmanager, Interim Manager und Projektsanierer

Herr Frank Gilow hat in den mehr als 30 Jahren Erfahrungen auf allen Ebenen der IT gesammelt. Ob als Softwareentwickler, Projektleiter, Prozessberater oder als Interim Manger in der Operation oder dem Support, als Projektsanierer oder Technologieberater.

Als Diplom-Kaufmann und in langjähriger Funktion als Geschäftsführer oder Vorstand in IT- und Beratungsunternehmen kennt er viele kaufmännische Aufgabenstellungen auch aus der operativen Sicht des Tagesgeschäftes.

Seine ausgeprägte soziale Kompetenz wir von allen Kunden hervorgehoben und ermöglicht ihm die Kommunikation auf allen beteiligten Unternehmensebenen von der Arbeitsebene bis zum Vorstand.

In der Kommunikation kann er komplexe technische Sachverhalte klar, einfach und strukturiert seinen Zuhörern vermitteln.

Er verfügt über tiefere Kenntnisse in den folgenden Branchen: Chemische Industrie, Petrochemie, Elektroindustrie, Dienstleistungsindustrie, Energieversorger, Entsorgungsunternehmen, Handel, Konsumgüterindustrie, Seeverkehre/Reederein, Transport und Logistikdienstleistungen, Automobilindustrie, Krankenhäuser, Luftfahrt

Privat ist Frank Gilow ein Familienmensch, der sich in seiner Freizeit mit Kochen und Soul-Musik beschäftigt. Als ehemaliger Tauchlehrer treibt es ihn in seinen Urlauben zu den Spots unter Wasser.

 

 

Sie erreichen Herr Frank Gilow per E-Mail: frank.gilow@consiness.de