JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
Folien für die Session "Neues Gesicht: Neues und Erwähnenswertes aus JavaServer Faces 2.2" vom Herbstcampus 2013.
Die Beispiele für diese Session sind unter https://github.com/jsflive/jsf22-examples verfügbar.
Das Interesse an Microservice Architekturen scheint ungebrochen. Eine Sonderform sind die sogenannten Self Contained Systems (SCS), als vollumfängliche Microservice Variante (Microservice mit UI).
Im Zuge eines Kundenprojektes hatten wir die Chance eine Portallösung zu entwickeln mit deren Hilfe Self Contained Systems auf einfache Art und Weise integriert werden sollen.
Spannende Aspekte waren dabei der MEAN Stack (MongoDB, Express, Angular, NodeJS) und Microsoft Azure als Cloudplattform.
Dieser Talk zeigt, wie sich diese Aspekte zu einem großen Ganzen zusammengefügt haben und welche Erfahrungen wir auf dem Weg dorthin machen durften.
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendungen realisieren, wenn man weiß, wie. Anhand des Technologie-Stacks JSF 2, CDI, Lombok, HTML5, jQuery und JPA wird eine leichtgewichtige Architektur anhand einer Livedemo vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird und in der Cloud betrieben werden kann.
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)Michael Kurz
Folien zum Vortrag Go Fullstack: Webanwendungen mit Java EE 6 bauen von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mygourmet-ee zu finden.
JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
Folien für die Session "Neues Gesicht: Neues und Erwähnenswertes aus JavaServer Faces 2.2" vom Herbstcampus 2013.
Die Beispiele für diese Session sind unter https://github.com/jsflive/jsf22-examples verfügbar.
Das Interesse an Microservice Architekturen scheint ungebrochen. Eine Sonderform sind die sogenannten Self Contained Systems (SCS), als vollumfängliche Microservice Variante (Microservice mit UI).
Im Zuge eines Kundenprojektes hatten wir die Chance eine Portallösung zu entwickeln mit deren Hilfe Self Contained Systems auf einfache Art und Weise integriert werden sollen.
Spannende Aspekte waren dabei der MEAN Stack (MongoDB, Express, Angular, NodeJS) und Microsoft Azure als Cloudplattform.
Dieser Talk zeigt, wie sich diese Aspekte zu einem großen Ganzen zusammengefügt haben und welche Erfahrungen wir auf dem Weg dorthin machen durften.
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendungen realisieren, wenn man weiß, wie. Anhand des Technologie-Stacks JSF 2, CDI, Lombok, HTML5, jQuery und JPA wird eine leichtgewichtige Architektur anhand einer Livedemo vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird und in der Cloud betrieben werden kann.
Go Fullstack: Webanwendungen mit Java EE 6 bauen (W-JAX 2011)Michael Kurz
Folien zum Vortrag Go Fullstack: Webanwendungen mit Java EE 6 bauen von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mygourmet-ee zu finden.
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...Oliver Hader
Bei der Entwicklung von Web Applikationen führt die zunehmende Verlagerung von ursprünglich serverseitiger Logik in den Web-Browser zu neuen Herausforderungen und neuen Lösungsansätzen. Dieser Beitrag vergleicht das JavaScript Framework AngularJS mit dem noch relativ neuen Web Components Standard unter Einbeziehung des Polymer Frameworks. Zur Bewertung werden alltägliche und durchschnittliche Aufgaben aus der Web- Entwicklung betrachtet und für die beiden zu untersuchenden Projekte bewertet. Der Fokus liegt dabei auch auf Individualisierbarkeit, Verlässlichkeit und Alltagstauglichkeit für Web-Entwickler.
Folien zum Vortrag JSF 2 Kompositkomponenten von Michael Kurz auf der JAX 2012 in Mainz.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive zu finden.
Ein Standard für metadatenbasierte Validierung in allen Layern einer Applikation. Mit diesem Versprechen geht der neue Bean-Validation Standard, auch bekannt als JSR 303, ins Rennen. Von der Wiederverwendbarkeit von bestehenden Constraints zum einfacheren Aufbau eigener Constraints bis hin zur Validierung von Objektgraphen bietet diese Spezifikation einige Mechanismen für metadatenbasierte Validierungen. In einer Feature Tour werden die zentralen Bestandteile der Spezifikation vorgestellt.
In einem zweiten Teil wird die Nutzung von metadatenbasierter Validierung in JEE-Webapplikationen gezeigt. Anhand von kurzen Beispielen wird die Rolle von MyFaces Extensions Validator (aka MyFaces ExtVal) bei der Integration von JSR 303 in JSF-Applikationen veranschaulicht.
Kurzer Überblick und Einführung in das Thema HTML5 Web Components im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
OSMC 2012 | End2End-Monitoring von Webapplikationen mit SAHI by Simon MeggleNETWAYS
Bei modernen Web-Anwendungen sollten nicht nur die am Ergebnis beteiligten Komponenten aus technischer Sicht, sondern auch das Ergebnis aus der Warte des Anwenders überwacht werden.
Mit dem Open-Source-Tool SAHI lassen sich umfangreiche End2End-Checks für Web2.0-Applikationen schnell und komfortabel aufzeichnen und automatisiert abspielen. In diesem Vortrag wird gezeigt, wie SAHI-Tests in ein Nagios-kompatibles Monitoring-System integriert werden können. Ergänzt werden die Checks durch Zeitmessungen für Teilschritte, die Visualisierung der Laufzeiten in RRD-Graphen sowie die automatische Erstellung von Screenshots zur Fehleranalyse.
Speaker: Sven Kölpin
Komponentenbibliotheken wie Primefaces und Richfaces stellen für die Entwicklung von JSF-Anwendungen eine Vielzahl komplexer Komponenten bereit. Aber der ersten Euphorie folgt die Ernüchterung. Und statt der erhofften Vorteile muss man sich mit neuen Problemen befassen. Dabei kann man sich mit HTML5, JavaScript, Composite Components und der Behavior API maßgeschneiderte Erweiterungen für die eigene Anwendung schaffen.
Der Vortrag zeigt wie man für eine JSF-Anwendung dynamische und wiederverwendbare Bausteine für die eigene Anwendung realisieren kann.
JSF und JPA effizient kombinieren (W-JAX 2011)Michael Kurz
Folien zum Vortrag JSF und JPA effizient kombinieren von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mymail-owb zu finden.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSOliver Hader
Kurzer Überblick und Einführung in das Thema WebGL & 3D Darstellung im Browser im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
Echtzeitvisualisierung von Twitter & CoOliver Lemm
The presentation was hold on APEX Connect 2016 in Berlin 26th of april together with Kai Donato. It demonstrates how to use the Twitter streaming api and visualize it by realtime in a graph using VivagraphJS.
JSF 2.x hat mit einem verbesserten GET-Support und View-Parametern inzwischen schon einiges zum Thema RESTful zu bieten. Das Open-Source-Projekt PrettyFaces geht noch einen Schritt weiter, in dem es erlaubt, fast beliebige RESTful URLs zu erzeugen. Zudem bietet PrettyFaces noch weitere hilfreiche Goodies. In dieser Session wird auf die Konfiguration und die Verwendung von PrettyFaces im Detail eingegangen und aufgezeigt, wie sich zudem ganz einfach die SEO-Eigenschaften (Search Engine Optimization) der Applikation verbessern lassen.
Das Model-View-Presenter-Pattern (MVP) wurde von Google für GWT empfohlen. Es schreibt eine strenge Trennung von View und Presenter vor, die vor allem der Testbarkeit dient. Dieser Vorteil kann auch mit GWT genützt werden, um Logik im Presenter in schnellen Unit-Tests zu überprüfen. Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden, hängen aber nicht zwingend mit MVP zusammen, wie im Vortrag gezeigt wird.
Zur Internationalisierung von Anwendungen bietet GWT schnelle, typsichere Konzepte. Es wird ein praxisorientierter Einblick gegeben und auf Stolpersteine hingewiesen.
Außerdem wird im Vortrag gezeigt, wie Performance-Probleme des generierten JavaScript-Codes umgangen werden können.
Ein Prozess lernt laufen – LEGO® MINDSTORMS® Steuerung mit BPMNOliver Hock
Betriebliche Abläufe gehören zum Geschäftsalltag wie LEGO zur Kindheit. Dennoch mangelt es in vielen Unternehmen an der Transparenz und Wiederverwendbarkeit dieser Abläufe. Mit der „Business Process Modeling Notation“ (BPMN) lässt sich dieses Manko beseitigen und Fachabteilungen und Technik wachsen zusammen. Zusätzlich wird die Geschäftswelt ortsübergreifend visualisiert. Als Ergebnis entstehen Diagramme, die als Dokumentation für das Business dienen und Automationsgrundlage der IT sind.
Im Gegensatz hierzu steht das praktische Lernen mit LEGO-Mindstorms. Ein kleiner Roboter wird in mannigfaltigen Ausprägungen zusammengebaut, mit einer Java-API gefüttert und über externe Software gesteuert. Seriell und parallel geschaltete Einzelschritte erwecken unseren beweglichen Freund zum Leben.
In diesem Vortrag wird der Bogen zwischen Prozessen und Robotern gespannt. Bewegungsabläufe werden mit BPMN2 definiert und mittels einer „Business Process Engine“ automatisiert. Es wird die Herangehensweise der Modellierung inklusive BPMN-Basics, Strukturierung von Prozessen sowie Motorik und Sensorik behandelt und während einer Live-Demo veranschaulicht.
Alles in allem ein Thema, welches Programmierer und Tüftler, Profis und Unerfahrene sowie Erwachsene und Kinder gleichermaßen zu begeistern vermag.
Vor- und Nachteile von Web Components mit Polymer gegenüber AngularJS ohne P...Oliver Hader
Bei der Entwicklung von Web Applikationen führt die zunehmende Verlagerung von ursprünglich serverseitiger Logik in den Web-Browser zu neuen Herausforderungen und neuen Lösungsansätzen. Dieser Beitrag vergleicht das JavaScript Framework AngularJS mit dem noch relativ neuen Web Components Standard unter Einbeziehung des Polymer Frameworks. Zur Bewertung werden alltägliche und durchschnittliche Aufgaben aus der Web- Entwicklung betrachtet und für die beiden zu untersuchenden Projekte bewertet. Der Fokus liegt dabei auch auf Individualisierbarkeit, Verlässlichkeit und Alltagstauglichkeit für Web-Entwickler.
Folien zum Vortrag JSF 2 Kompositkomponenten von Michael Kurz auf der JAX 2012 in Mainz.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive zu finden.
Ein Standard für metadatenbasierte Validierung in allen Layern einer Applikation. Mit diesem Versprechen geht der neue Bean-Validation Standard, auch bekannt als JSR 303, ins Rennen. Von der Wiederverwendbarkeit von bestehenden Constraints zum einfacheren Aufbau eigener Constraints bis hin zur Validierung von Objektgraphen bietet diese Spezifikation einige Mechanismen für metadatenbasierte Validierungen. In einer Feature Tour werden die zentralen Bestandteile der Spezifikation vorgestellt.
In einem zweiten Teil wird die Nutzung von metadatenbasierter Validierung in JEE-Webapplikationen gezeigt. Anhand von kurzen Beispielen wird die Rolle von MyFaces Extensions Validator (aka MyFaces ExtVal) bei der Integration von JSR 303 in JSF-Applikationen veranschaulicht.
Kurzer Überblick und Einführung in das Thema HTML5 Web Components im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
OSMC 2012 | End2End-Monitoring von Webapplikationen mit SAHI by Simon MeggleNETWAYS
Bei modernen Web-Anwendungen sollten nicht nur die am Ergebnis beteiligten Komponenten aus technischer Sicht, sondern auch das Ergebnis aus der Warte des Anwenders überwacht werden.
Mit dem Open-Source-Tool SAHI lassen sich umfangreiche End2End-Checks für Web2.0-Applikationen schnell und komfortabel aufzeichnen und automatisiert abspielen. In diesem Vortrag wird gezeigt, wie SAHI-Tests in ein Nagios-kompatibles Monitoring-System integriert werden können. Ergänzt werden die Checks durch Zeitmessungen für Teilschritte, die Visualisierung der Laufzeiten in RRD-Graphen sowie die automatische Erstellung von Screenshots zur Fehleranalyse.
Speaker: Sven Kölpin
Komponentenbibliotheken wie Primefaces und Richfaces stellen für die Entwicklung von JSF-Anwendungen eine Vielzahl komplexer Komponenten bereit. Aber der ersten Euphorie folgt die Ernüchterung. Und statt der erhofften Vorteile muss man sich mit neuen Problemen befassen. Dabei kann man sich mit HTML5, JavaScript, Composite Components und der Behavior API maßgeschneiderte Erweiterungen für die eigene Anwendung schaffen.
Der Vortrag zeigt wie man für eine JSF-Anwendung dynamische und wiederverwendbare Bausteine für die eigene Anwendung realisieren kann.
JSF und JPA effizient kombinieren (W-JAX 2011)Michael Kurz
Folien zum Vortrag JSF und JPA effizient kombinieren von Michael Kurz auf der W-JAX 2011 in München.
Die dazugehörenden Beispiele sind unter https://github.com/jsflive/mymail-owb zu finden.
GWT wird verwendet um moderne, komplexe Rich Internet Applications zu erstellen. Durch die Generierung von JavaScript aus Java Code können alle Vorteile von Java genützt und gleichzeitig die immer größer werdenden Anforderungen der Web-Benutzer in Bezug auf Style, Performance, Interaktion und Browser-Kompatibilität von Webseiten abgedeckt werden. In dem Vortrag wird GWT vorgestellt und auf dessen Einsatz in der Praxis eingegangen.
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSOliver Hader
Kurzer Überblick und Einführung in das Thema WebGL & 3D Darstellung im Browser im Rahmen eines Vortrags am Institut für Informationssysteme der Hochschule Hof - iisys in Kooperation mit der Open Web User Group Oberfranken und dem IT-Cluster Oberfranken. Vortrag vom 30.06.2015
Echtzeitvisualisierung von Twitter & CoOliver Lemm
The presentation was hold on APEX Connect 2016 in Berlin 26th of april together with Kai Donato. It demonstrates how to use the Twitter streaming api and visualize it by realtime in a graph using VivagraphJS.
JSF 2.x hat mit einem verbesserten GET-Support und View-Parametern inzwischen schon einiges zum Thema RESTful zu bieten. Das Open-Source-Projekt PrettyFaces geht noch einen Schritt weiter, in dem es erlaubt, fast beliebige RESTful URLs zu erzeugen. Zudem bietet PrettyFaces noch weitere hilfreiche Goodies. In dieser Session wird auf die Konfiguration und die Verwendung von PrettyFaces im Detail eingegangen und aufgezeigt, wie sich zudem ganz einfach die SEO-Eigenschaften (Search Engine Optimization) der Applikation verbessern lassen.
Das Model-View-Presenter-Pattern (MVP) wurde von Google für GWT empfohlen. Es schreibt eine strenge Trennung von View und Presenter vor, die vor allem der Testbarkeit dient. Dieser Vorteil kann auch mit GWT genützt werden, um Logik im Presenter in schnellen Unit-Tests zu überprüfen. Activities und Places helfen in GWT-Applikationen die Browser-History zu verwenden, hängen aber nicht zwingend mit MVP zusammen, wie im Vortrag gezeigt wird.
Zur Internationalisierung von Anwendungen bietet GWT schnelle, typsichere Konzepte. Es wird ein praxisorientierter Einblick gegeben und auf Stolpersteine hingewiesen.
Außerdem wird im Vortrag gezeigt, wie Performance-Probleme des generierten JavaScript-Codes umgangen werden können.
Ein Prozess lernt laufen – LEGO® MINDSTORMS® Steuerung mit BPMNOliver Hock
Betriebliche Abläufe gehören zum Geschäftsalltag wie LEGO zur Kindheit. Dennoch mangelt es in vielen Unternehmen an der Transparenz und Wiederverwendbarkeit dieser Abläufe. Mit der „Business Process Modeling Notation“ (BPMN) lässt sich dieses Manko beseitigen und Fachabteilungen und Technik wachsen zusammen. Zusätzlich wird die Geschäftswelt ortsübergreifend visualisiert. Als Ergebnis entstehen Diagramme, die als Dokumentation für das Business dienen und Automationsgrundlage der IT sind.
Im Gegensatz hierzu steht das praktische Lernen mit LEGO-Mindstorms. Ein kleiner Roboter wird in mannigfaltigen Ausprägungen zusammengebaut, mit einer Java-API gefüttert und über externe Software gesteuert. Seriell und parallel geschaltete Einzelschritte erwecken unseren beweglichen Freund zum Leben.
In diesem Vortrag wird der Bogen zwischen Prozessen und Robotern gespannt. Bewegungsabläufe werden mit BPMN2 definiert und mittels einer „Business Process Engine“ automatisiert. Es wird die Herangehensweise der Modellierung inklusive BPMN-Basics, Strukturierung von Prozessen sowie Motorik und Sensorik behandelt und während einer Live-Demo veranschaulicht.
Alles in allem ein Thema, welches Programmierer und Tüftler, Profis und Unerfahrene sowie Erwachsene und Kinder gleichermaßen zu begeistern vermag.
The document discusses building resilience into software systems. It defines resilience as the ability to recover from failures or adversity. Complex distributed systems are prone to failures due to their interconnected nature. To maximize availability, systems should be designed to minimize downtime after failures through resilient patterns like asynchronous communications, isolation, and failure containment. The presentation provides examples of how frameworks like Hystrix, Akka, Vertx, and Spring Boot can help implement resilience techniques in Java systems.
Technische Schulden in Architekturen erkennen und beseitigenCarola Lilienthal
Beim Entwurf der Softwarearchitektur zu Beginn eines Projekts bringen die Architekten i.d.R. all ihre Erfahrung und ihr Knowhow ein und stellen eine Architektur-Blaupause für die Entwicklung bereit. Aber während der Implementierung weichen die Entwickler ungewollt mehr und mehr von diesen Vorgaben ab: Einerseits macht der Projektdruck Abweichungen notwendig, andererseits entstehen die Abweichungen ungewollt und unbemerkt. Die Architektur des Systems erodiert und es werden Schritt für Schritt technische Schulden aufgebaut. Wartung und Erweiterung der Software werden immer teurer bis zu dem Punkt, an dem jede Änderung zu einer schmerzhaften Anstrengung wird.
In diesem Vortrag berichte ich von meinen Erfahrungen der letzten zehn Jahre mit der Analyse von Softwarearchitekturen in Java (60 Systeme), C# (10 Systeme), C++(6 Systeme): Die Zuhörer wissen nach meinem Vortrag, welche Fehler sie in ihren Softwareprojekten bei der Umsetzung der Architektur nicht machen sollten, welche Prinzipien Sie einhalten sollen, um technische Schulden nicht entstehen zu lassen, welche Tools helfen, technische Schulden aufzuspüren, und wie technische Schulden abgebaut werden können.
This document discusses various approaches to accessing the sun.misc.Unsafe class from outside of the JDK/JRE, as it is an internal class not intended for public use. It presents several options for retrieving an Unsafe instance, such as directly calling Unsafe.getUnsafe() (which only works inside JDK/JRE), accessing the "theUnsafe" field via reflection, or constructing a new Unsafe instance using a private constructor. However, it notes that none of these options feel quite right as sun.misc.Unsafe is an internal class, and its use is discouraged outside of the JDK/JRE.
Dies sind die Slides von meinem Vortrag auf dem Java Forum Nord 2016 in Hannover. Es geht hierbei stark um die Qualität der Kommunikation und wie jeder einen Anspruch an seine eigene Qualität entwickeln soll.
Was jeder Java-Entwickler über Strings wissen sollteberndmueller
Strings sind wahrscheinlich der am meisten verwendete Datentyp in jeder
Java-Anwendung. Es ist daher nicht überraschend, dass JDK-Ingenieure
versuchen, Strings möglichst gut zu optimieren oder Bücher über
Performanz-Tuning und Testen dem Thema Strings ganze Kapitel widmen.
Jeder Entwickler sollte daher wissen, was Strings sind und wie sie
sinnvoll und effizient eingesetzt werden können.
Dieser Vortrag stellt JDK-Klassen vor, die mit und auf Strings
arbeiten, sowohl auf der API- aber auch auf der
Implementierungsebene. Wir beleuchten internte Strings und die für sie
verwendeten Speicherbereiche, sowie die noch recht unbekannte
"String-Deduplication"-Option des G1-Garbage-Collectors.
Mit Java 9 ändert sich die interne Repräsentation von Strings.
Wir skizzieren diese Änderungen, die nach außen unsichtbar
bleiben.
Anforderungen haben immer Schuld! Schuld an schlechten Tests, Schuld an schlechter Entwicklung, Schuld für viele Änderungen, Schuld an einfach allem. Wie macht man also gutes Anforderungsmanagement und schafft es dadurch noch Komplexität zu reduzieren und so Softwareprojekte einfacher zu gestalten? Wie kriegt man den Kunden dazu seine 1000-seitigen Lastenhefte zu entsorgen und durch etwas Geeigneteres zu ersetzen? Mittels moderner agiler Verfahren und Praktiken. Wie diese genau aussehen, welche Hindernisse auftauchen können und wie diese aus dem Weg geschafft werden können zeigt dieser Vortrag – immer mit dem Fokus auf Einfachheit und Praktikabilität. Der Vortrag ist gerichtet an Projektleiter, Entwickler, Abteilungs-, Team und Bereichsleiter, Scrum Master, Product Owner, Business Analysten.
Björn Müller (CaptainCasa GmbH);Von Java Swing über JavaFX nach HTMLgedoplan
The document discusses the RISC Browser Architecture as a paradigm shift for building user interfaces with HTML. It proposes moving away from traditional frameworks with many elements and attributes towards a microkernel approach based on only rectangles and text input. This reduces complexity and regains control over layout, performance and compatibility. The RISC approach also separates concerns better by decoupling frontend rendering from external libraries or frameworks.
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMNComsysto Reply GmbH
Betriebliche Abläufe gehören zum Geschäftsalltag wie LEGO zur Kindheit. Dennoch mangelt es in vielen Unternehmen an der Transparenz und Wiederverwendbarkeit dieser Abläufe. Mit der Business Process Model and Notation (BPMN) lässt sich dieses Manko beseitigen, und Fachabteilungen und Technik wachsen zusammen. Zusätzlich wird die Geschäftswelt ortsübergreifend visualisiert. Als Ergebnis entstehen Diagramme, die als Dokumentation für das Business dienen und Automatisierungsgrundlage der IT sind.
Im Gegensatz hierzu steht das praktische Lernen mit LEGO Mindstorms. Ein kleiner Roboter wird in mannigfaltigen Ausprägungen zusammengebaut, mit einer Java-API gefüttert und über externe Software gesteuert. Seriell und parallel geschaltete Einzelschritte erwecken unseren beweglichen Freund zum Leben.
In diesem Vortrag wird der Bogen zwischen Prozessen und Robotern gespannt. Bewegungsabläufe werden mit BPMN2 definiert und mittels einer Business Process Engine automatisiert. Es wird die Herangehensweise der Modellierung inklusive BPMN-Basics, Strukturierung von Prozessen sowie Motorik und Sensorik behandelt und während einer Live-Demo veranschaulicht.
Alles in allem ein Thema, das Programmierer und Tüftler, Profis und Unerfahrene sowie Erwachsene und Kinder gleichermaßen zu begeistern vermag.
https://youtu.be/bBJrKY_OBLc
Agil ist klasse. Agile Praktiken, agile Prozesse, agile Organisation, agile Menschen. Aber was bedeutet Agilität wirklich? Wie wird man agil, oder geht das gar nicht, weil der Rahmen nicht passt? Diese Session klärt auf, was Agilität auf welcher Ebene bedeutet. Sie gibt Rat, wie sich ein Team und/oder eine Organisation entwickeln kann und wie bei der Führung oder den Mitarbeitern Bewusstsein geschaffen wird. Besonderes Augenmerk wird auf Hürden und Hindernisse gelegt und wie das Tal der Tränen (das kommen wird) überwunden werden kann.
Java oberflächlich betrachtet - Welche GUI ist die richtige?GFU Cyrus AG
Für die Entwicklung neuer Software gilt es bei der Wahl der Benutzeroberfläche (engl. GUI) einiges zu bedenken: Benutzerfreundlichkeit, technische Zuverlässigkeit, Geschwindigkeit, Verteilbarkeit und nicht zuletzt Wirtschaftlichkeit. Zusätzlich kommen immer komplexere, Desktop-ähnliche Anforderungen auf die GUI-Architektur und -Entwicklung zu.
Herr Weil diskutiert in diesem Treffpunkt die folgenden Fragestellungen und gibt Hilfestellungen für die Wahl der geeigneten Vorgehensweise:
Welche Architekturanteile werden in Java-Anwendungen genutzt?
Webanwendung oder Rich Client?
Wie hält man Rich Clients aktuell?
Welche Web-Techniken wie z.B. AJAX und GWT können sinnvoll eingesetzt werden?
Folien zu unserem Vortrag beim Java Forum Stuttgart 2014
Besuchen Sie uns unter http://www.thecodecampus.de
Müssen Sie auch noch alte servergetriebene Java-Webanwendungen weiterentwickeln und wollen Ihre Kunden dabei den Genuss der Usability moderner Webseiten bieten?
In unserem Talk beim JavaForum Stuttgart 2014 haben wir anhand von Codebeispielen und Erfahrungsberichten gezeigt wie man schrittweise AngularJS in bestehende Anwendungen integriert. Dieser agile Ansatz liefert schnelle Ergebnisse und reduziert die Kosten und Risiken im Vergleich zu einer kompletten Umstellung.
Back to the Frontend – aber nun mit MicroservicesAndré Fleischer
Microservices sind der letzte Schrei! Cross-funktionale Teams bauen geniale Lösungen! Und was hat der Kunde und Anwender davon? Man liest über ROCA, SPA und Webcomponents. Wir zeigen, über welche Fragestellung wir gestolpert sind und wie unsere Lösungen aussehen. Wir stellen Ansätze vor, die bei otto.de und OTTOBrandConnect im Einsatz sind. Dabei gehen wir ein auf teamübergreifende Zusammenarbeit. Zeigen die Auswirkungen auf die Customer Journey. Welche technischen Abhängigkeiten ergeben sich zwischen Teams und Systemen?
Web-APIs sind das aktuelle Trend-Thema in den IT-Abteilungen. Als primärer Kommunikationspartner für Fat, Mobil und Web-Clients sind Web-APIs das Rückgrat moderner verteilter Anwendungen. Sind synchrone Requests via REST und GraphQL oder Push-Notifications via Server-Sent Events und WebSocket die bessere Wahl? Welches Austauschformat sollte man wählen? Wie sieht gutes „Error Handling“ aus? Und was ist mit Themen wie Security und Versionierung? Lebensnahe Beispiele, jede Menge Best-Practices und viel Code, der nahtlos in eigene Projekte übernommen werden kann, bilden die Grundlage für die Session.
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...QAware GmbH
HeisedevSec, Oktober 2022,(Christian Fritz, @chrfritz, Senior Software Engineer @QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
OAuth2 und OpenID Connect (OIDC) sind ausgereifte Standards zur Authentifizierung und Autorisierung. Der Zugriff auf OIDC-geschütze Services ist schnell gebaut: Das Token über eine Lib holen, das dann in den "Authorization"-Header … und fertig.
Doch das ist nur die halbe Miete. Was ist mit:
-dem Legacy Client dessen Backend auf einmal mit OIDC geschützt wird?
-dem Backend for Frontend, das von einer Single Page Applikation genutzt werden soll?
-dem Service, der einen weiteren OIDC geschützten Service abfragen muss?
Für diese und viele Integrationen gibt es offensichtlich nicht "die eine Lösung".
Der Talk zeigt kurz die Grundlagen von OIDC und mögliche Integrations-Pattern für verschiedene Ausgangslagen.
Integrations-Pattern für OpenID ConnectQAware GmbH
CloudLand, Juni/Juli 2022, Christian Fritz (@chrfritz, Senior Software Engineer bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
OAuth2 und OpenID Connect (ODIC) sind ausgereifte Standards zur Authentifizierung und Autorisierung. Der Zugriff auf OIDC geschütze Services ist schnell gebaut: das Token über eine Lib holen, das dann in den “Authorization”-Header und fertig.
Doch das nur die halbe Miete. Was ist mit dem:
* Legacy Client dessen Backend aufeinmal mit OIDC geschützt wird?
* Backend for Frontend das von einer Single Page Applikation genutzt werden soll?
* Service der einen weitern OIDC geschützten Service abfragen muss?
Für diese und viele Integrationen gibt es offensichtlich nicht “die eine Lösung”.
Der Talk geht kurz auf die Grundlagen von OAuth2 und ODIC ein und zeigt dann Anhand verschiedener Ausgangslagen mögliche Integrationspattern. Die Teilnehmer sollen danach in der Lage sein, für die eigene Anwendung das richtige Pattern auswählen zu können.
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
Diese Slides zeigen, wie man Performanceprobleme von Microsoft SharePoint Server 2013 vorbeugt, analysiert und behebt. Die Slides sind im Rahmen einer Veranstalltung der SharePoint Community Mittelland Schweiz entstanden.
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...QAware GmbH
JUG Meetup Nürnberg, Oktober 2022,(Christian Fritz, @chrfritz, Senior Software Engineer @QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
OAuth2 und OpenID Connect (OIDC) sind ausgereifte Standards zur Authentifizierung und Autorisierung. Der Zugriff auf OIDC-geschütze Services ist schnell gebaut: Das Token über eine Lib holen, das dann in den "Authorization"-Header … und fertig.
Doch das ist nur die halbe Miete. Was ist mit:
-dem Legacy Client dessen Backend auf einmal mit OIDC geschützt wird?
-dem Backend for Frontend, das von einer Single Page Applikation genutzt werden soll?
-dem Service, der einen weiteren OIDC geschützten Service abfragen muss?
Für diese und viele Integrationen gibt es offensichtlich nicht "die eine Lösung".
Der Talk zeigt kurz die Grundlagen von OIDC und mögliche Integrations-Pattern für verschiedene Ausgangslagen.
1. Wieviel Client braucht das Web
JSF, Vaadin und AngularJS im Vergleich
Dominik Mathmann, GEDOPLAN GmbH
2. Dominik Mathmann
GEDOPLAN GmbH, Bielefeld
GEDOPLAN IT Consulting
Konzeption, Realisierung von IT-Lösungen
GEDOPLAN IT Training
Seminare in Berlin, Bielefeld, on-site
Vorträge, Veröffentlichungen
Wieviel Client braucht das Web? 2gedoplan.de
3. Ziele / Inhalt
Einführung in die Anwendung / Java EE Backend
Vorstellung der Frameworks
Java Server Faces (JSF)
Vaadin
AngularJS
Check Up
Fazit
Wieviel Client braucht das Web? 3gedoplan.de
4. Einführung in die Anwendung / Java EE Backend
Datenbasis:
Microsoft Northwind
Technische Basis: Java EE 7
Fachobjekte (Customer, Order, …): JPA
DB-Zugriff (CustomerRepository, …): CDI
Services (OrderService, …): EJB mit Role based Security
Wieviel Client braucht das Web? 4gedoplan.de
5. Einführung in die Anwendung / Java EE Backend
Wieviel Client braucht das Web? 5
Browser
JavaServer Faces
Webservice
(JAX-RS)
Vaadin
Services
Respositories
Präsentationsschicht
/ Schnittstellen
Geschäftslogik
Datenbank
JavaEEServer
AngularJS (Browser)
Client
gedoplan.de
6. Java Server Faces (JSF)
Model-View-Controller-Pattern
Im Java-EE-Standard seit 2004
Komponentenmodell für das GUI von Web-Anwendungen
Wieviel Client braucht das Web? 6gedoplan.de
Application-Server
Renderer
Views, xhtml
Browser
Controller, CDI Beans
HTML, JavaScript
Services
8. JSF - Controller
Wieviel Client braucht das Web? 8
@Named
@RequestScoped
public class AuthenticateController {
private String loginname;
private Sring password;
public String login() {
...
return "home";
}
gedoplan.de
9. JSF – Vorgehensweise / Besonderheiten
Model-Controller als Bindeglied zu Views
CDI Beans
Diverse Scopes verfügbar (Request, Session, Flow, View, …)
Einbindung des Backends mittels Injektion
Serverseitige View Definition
Facelets (austauschbar)
Bindung an Model-Controller mit EL
Multipage Navigation mit zentralem Handler, wenn gewünscht
Request / Rendering partiell mit AJAX ( auch SPA möglich)
Wieviel Client braucht das Web? 9gedoplan.de
10. JSF – Vorgehensweise / Besonderheiten
Domänenobjekte können direkt genutzt werden ( DTOs unnötig)
Zentrales Error Handling möglich
I.d.R. zusätzliche Komponentenbibliotheken nötig
Addieren Komplexität
Addieren proprietäre Stile, JS, …
JS im Browser möglich
Nicht speziell unterstützt
Wieviel Client braucht das Web? 10gedoplan.de
11. Vaadin
Open Source Java Framework für Rich-Internet-Applications
Entwickelt von der Firma Vaadin Ltd.
Aufbau der Oberflächen auf Serverseite in Java (ähnlich wie Swing)
JavaScript-Engine im Browser als Thin-Client
Wieviel Client braucht das Web? 11gedoplan.de
Application-Server
Services
Views, Java
Client, Browser
JavaScript
Engine
Widgets
Komponenten
Daten, Java Beans
Synchronisiert
durch Framework
(JSON)
12. Vaadin - UI
Wieviel Client braucht das Web? 12
@CDIUI("login")
public class LoginUi extends UI {
protected void init(VaadinRequest request) {
TextField name = new TextField(…);
PasswordField password = new PasswordField(…);
Button login = new Button(…, e -> {login… });
FormLayout fieldLayout = new FormLayout(name, password, login);
Panel loginPanel = new Panel(…, fieldLayout);
VerticalLayout page = new VerticalLayout();
page.addComponent(loginPanel);
setContent(page);
}
}
gedoplan.de
13. Vaadin – Databinding (optional)
Wieviel Client braucht das Web? 13
public class LoginUi extends UI {
@PropertyId("user")
private TextField loginUser;
@PropertyId("password")
private PasswordField loginPassword;
private LoginBean loginBean = new LoginBean();
protected void init(VaadinRequest request) {
BeanFieldGroup<LoginBean> bfg =
new BeanFieldGroup<>(LoginBean.class);
bfg.buildAndBindMemberFields(this);
bfg.setItemDataSource(loginBean);
}
}
public class LoginBean {
private String user;
private String password;
// Getter + Setter
}
gedoplan.de
14. Vaadin – Vorgehensweise / Besonderheiten
UI-Aufbau durch UI-Klassen
Aggregation von Widget-Objekten
URL-Mapping per Annotation / Servlet
Listener-Konzept
Service-Einbindung mittels Injektion
Direkte Bindung an Domänenobjekte möglich (ohne DTOs)
Clientseitiges Rendering auf Basis serverseitiger Präsentationsdaten
Widgets werden initial in Browser (Tab) geladen
Anschließend nur Aktualisierung von Struktur und Daten
Wieviel Client braucht das Web? 14gedoplan.de
15. Vaadin – Vorgehensweise / Besonderheiten
SPA im Browser-Tab
Navigation zwischen Views mit bookmarkfähigen URLs
Error Handling, Converter etc. können zentral registriert werden
Erweiterbarkeit
über eigene Aggregationen von vorhandenen Komponenten
durch Entwurf zusätzliche GWT-basierter Widgets
mittels Skripting und HTML-Templates
durch Komponentenbibliotheken (teilweise kommerziell)
Wieviel Client braucht das Web? 15gedoplan.de
16. Angular JS
Open Source JavaScript-Webframework
RIA - Rich Internet Application
SPA – Single Page Application
entwickelt von Google
Wieviel Client braucht das Web? 16gedoplan.de
Browser
JAX-RS
Services
Application-Server
Views, html
Controller, JavaScript
JSON
18. Angular – Controller, Navigation
Wieviel Client braucht das Web? 18
angular.module('GedoplanWebClients.login', [])
.controller("login", function (userService,
$translate, $state, $timeout) {
var vm = this;
vm.login = function () {…};
vm.logout = function () {…};
}
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'components/login/login.html',
controller: 'login',
controllerAs: 'vm'
})
gedoplan.de
19. Angular – Vorgehensweise / Besonderheiten
UI-Aufbau durch HTML-Dateien
Verwendung von Expressions
Aggregation durch Directives
Service-Einbindung mittels Schnittstelle (z.B. REST)
DTOs oder JSON-Mapper notwendig
Clientseitiges Rendering auf Basis statischer HTML-Seiten
dynamische Manipulation durch Controller-Bindings
Wieviel Client braucht das Web? 19gedoplan.de
20. Angular – Vorgehensweise / Besonderheiten
SPA
Navigation zwischen Views mit bookmarkfähigen URLs
Zustandstandslos
Erweiterbarkeit
über eigene Aggregationen von vorhandenen Komponenten
durch Angular-spezifische Komponenten
durch JavaScript-Komponenten
Wieviel Client braucht das Web? 20gedoplan.de
22. Technologie-Mix
Wieviel Client braucht das Web? 22
1 2 3
Backend GUI
JSF
Java EE
• HTML-ähnliche Templatesprache, Facelets
• CSS-Kenntnisse in aller Regel notwendig
Vaadin • Java (ähnlich Swing/JavaFX)
• CSS- und JavaScript-Kenntnisse nur optional
und für eigene Komponenten
AngularJS • tiefe Kenntnisse in JavaScript, CSS, HTML nötig
gedoplan.de
23. Trennung Design / Präsentationslogik
Wieviel Client braucht das Web? 23
JSF • JSF-eigene Tags
• Templates
Vaadin • enge Verbindung durch programmatischen Ansatz
• Abstraktion durch Vaadin-Designer (kostenpflichtig)
AngularJS • reine HTML-Templates mit Angular Markup
• Controller der View konfigurierbar
• vollständige Projekt-Trennung möglich
1 2 2
gedoplan.de
24. Erweiterbarkeit
Wieviel Client braucht das Web? 24
JSF • eigene Composite Components
• Komponenten-Frameworks (z.B. PrimeFaces)
Vaadin • Komposition durch Erweiterung der Standardklassen
• eigene Komponenten bspw. durch JavaScript Extensions
AngularJS • beliebige JavaScript-Komponenten (z. B. Bootstrap, JQuery)
1 2 2
gedoplan.de
25. Backend Integration
Wieviel Client braucht das Web? 25
JSF • Controller im Backend-Prozess
• Zugriff auf Services durch CDI Injection
• keine externe Schnittstelle notwendig
Vaadin
AngularJS • Zugriff über externe Schnittstellen
• Datenaustausch z.B. über JAX-RS in JSON
1 1 2
gedoplan.de
26. Investitionssicherheit
Wieviel Client braucht das Web? 26
JSF • Standard Java EE
• Abwärtskompatibel bis Version 1.0
• Ausgenommen: Komponentenframeworks
Vaadin • proprietär
• bei großen Versionssprüngen keine stabile APIAngularJS
1 2 2
gedoplan.de
27. Kommunikation
Wieviel Client braucht das Web? 27
JSF • Format: HTML / XML
• User-Interaktionen lösen Requests aus
Vaadin • Format: JSON (inklusive View-Informationen)
• User-Interaktionen lösen Requests aus
AngularJS • Format: JSON (reine Daten)
• keine Requests bei Validierung und GUI-Logik
1 2 2
gedoplan.de
33. More
http://www.gedoplan-it-training.de
Seminare in Berlin, Bielefeld, Inhouse
http://www.gedoplan-it-consulting.de
Reviews, Coaching, …
https://javaeeblog.wordpress.com/
Blog zum Thema Java EE und Angular
dominik.mathmann@gedoplan.de
@dominikmathmann
Wieviel Client braucht das Web? 33gedoplan.de