Newsletter

Email:


Name (optional):


Archiv (ab 2010)

Anmeldung

Anmeldung mit Xing

Anmeldung ohne Xing

Alle Veranstaltungen kostenlos

Verlosung nur an angemeldete Gäste

Silber-Sponsoren

Don't get lost in data, get information

ABIT GmbH - Beratung - Software -  Seminare - Veranstaltungen - NewsCreating digital success. | ecx.io

Oracle University - Offizieller Anbieter von Schulungen und Zertifizierungen zu Oracle Technologie

Wir unterstützen...

Elterninitiative Kinderkrebsklinik e.V

Kinderkrebsklinik e.V

Sponsoren

Wir danken unseren Sponsoren:

Permanente Sponsoren

Uni Düsseldorf
(Raum und Beamer)


(Preise)


(Organisation und Marketing)


(Preise)


(Preise)

Mitgliedschaften

java.net Member

Events

Nachlese: Der perfekte Match: Mit Docker Java Microservices produzieren
Written by Philip Höfges   
Friday, 31 October 2014 13:12

Mit einer Zuschauerzahl von über 100 Personen konnten wir an diesem Abend Peter Roßbach begrüßen. Das zentrale Thema dieses Abends ist Docker. Wie man an Peter Roßbachs T-Shirt sehen kann, geht es scheinbar um Wale, die Container transportieren. Dem ist auch fast so. Der Redner stellt vor, dass Administration und Entwicklung gleichzeitig beherrscht werden sollten. Wer beides kann, habe einen klaren Startvorteil. Allerdings stimmen Anspruch und die Realität oft nicht überein. Die meisten sind nur eines von Beidem. Das erzeugt Organisationsprobleme: Es muss immer eine Absprache zwischen beiden Parteien geben. Dieses Problem lässt sich auch auf den Arbeitsalltag übertragen: In der Regel gewinnt ja die Arbeit, die Freizeit kommt meistens zu kurz. Es ist der Traum eines jeden Arbeiters, die perfekte Balance zwischen Beidem zu finden. Hier kommt Docker ins Spiel, welches eine Möglichkeit ist, sich das Leben zu vereinfachen.

„Build, Ship and Run, any app, anywhere!“. So lautet das Mantra von Docker. Und das nicht ohne Grund. Jeder ist in der Lage mit einfachen Handgriffen bei Docker mitzumachen und es zu nutzen. Docker funktioniert ähnlich wie z.B. Github: Man kann Daten teilen. Der wesentliche Unterschied besteht aber darin, dass man auch lauffähige Programme teilen kann. Wie der erste Teil des Mantras sagt, kann sich etwas zusammenbauen, es teilen und sofort starten.

Doch wie funktioniert Docker eigentlich? Peter Roßbach zeigt, dass ein visualisierter Kernel benutzt wird. Solange also dieser Kernel unterstützt wird, solange läuft Docker auf auf jeder Linux-Distribution. Tolle Sache! Docker selbst ist ein Modul, welches über ein Bridge eine Netzwerkverbindung aufbaut. Sogar als VM unter dem Namen Boot2Docker ist es verfügbar. Es kann leicht mit ein bisschen Shell-Magie installiert und eingerichtet werden. Sobald die Vorbereitungen abgeschlossen sind, kann Docker gestartet werden. In einer Übersicht als Graph, stellt Peter Roßbach die wichtigsten Befehle für den Umgang mit Docker dar. Er sagt, diese seien wichtig und müssten zwingend gelernt werden. Weiterhin formuliert er einige Grundregeln für die Arbeit mit Docker: Diese können auch als Grundregeln der Programmierung benutzt werden. Wer mit Docker arbeitet, verbessert auch durchgehend sein Wissen. Es werden immer wieder Grundkenntnisse im Umgang benötigt und auch weiterführendes Wissen wird ständig vermittelt.

Im zweiten Teil des Vortrags stellt Peter Roßbach Microservice vor. Was ist Microservice? Microservice sagt, dass die Entwicklung möglichst einfach sein soll. Dabei hilft Docker, denn Docker vereinfacht die Built-Prozesse sehr, so dass jeder in der Lage ist, mit Docker Microservices selbst zu erstellen. Davon lebt Docker. Vom Teilen von Software. Es ist wie ein eigenes Ökosystem, welches ständig im Wachstum ist. Inzwischen existiert sogar ein eigenes Betriebssystem auf der Basis von Docker: CoreOS. Auch in zukünftigen Windows-Versionen soll Docker als Freeware bereits integriert sein. Zudem gibt es bereits einige sehr prominente Kunden, die Docker benutzen: Spotify, Netflix, Zalando und Ebay, um nur ein paar zu nennen.

Peter Roßbach stellt Bilder seines eigenen Schiffs vor, welches er aus LEGO-Steinen gebaut hat. Auf diesem Schiff liegen einige Container. Anhand dessen kann man sehen, dass lernen niemals aufhört. Entwickler müssen ständig bereit sein, etwas neues zu lernen. Dazu fällt ein weiterer, zentraler Satz: „Perfekt ist die Symbiose aus effektiv und effizient.“ Dem gibt es wohl nichts hinzuzufügen. Zum Schluss gibt Peter Roßbach noch die Möglichkeit, seine verwendeten Folien herunterzuladen. Getreu dem Motto: „Build, Ship and Run, any app, anywhere!“

 
Nächster Vortrag: Spannende Erweiterungen der Java EE Plattform durch Innovationstechnologien von Oracle (26.11.)
Written by Lukas Ladenberger   
Friday, 12 September 2014 09:53

Achtung: Der Vortrag findet an einem Mittwoch statt! Da es an diesem Abend zwei Vorträge gibt, starten wir etwas früher: 18:00 Türen auf, 18:30 Erster Vortrag.

Die Vereinfachung der Java EE API für Zugriff auf Container-Services und die Erweiterung des Umfangs dieses Services hat dazu geführt, dass die Entwicklung von HTML5-basierten Enterprise-Anwendungen mit Java EE 7 so einfach geworden ist, wie noch nie. Es gibt aber konkurrierende serverseitige JavaScript Technologien und Frameworks wie NodeJS, Express und Meteor, die auf ein asynchrones und event-driven Programmiermodell aufbauen und zunehmend an Popularität in Entwicklerkreisen gewinnen. Mit dem neuen Open-Source Framework Avatar stellt Oracle eine Plattform bereit, die die Vorteile von Java EE und der serverseitigen reaktiven JavaScript-Programmierung vereinigt. Avatar ist ein End-to-End JavaScript Framework für HTML5-Anwendungen, das intelligent die Features von Nashorn (Implementierung von JavaScript auf der JVM) und Avatar.js (Implementierung von NodeJS auf Nashorn) nutzt und neben einer Out-of-the-Box Unterstützung von REST, WebSocket und Server-Sent-Event den Zugriff vom serverseitigen JavaScript auf hochskalierbare und leistungsstarke Java-Bibliotheken und Java EE Dienste ermöglicht. Das Framework wird vorgestellt und mit einigen Beispielen auf GlassFish und WebLogic begleitet.

Im zweiten Teil beschäftigen wir uns mit der nahtlosen Erweiterung der Java EE Plattform mit einem In-Memory Data-Grid und den Vorteilen und Synergie-Effekten, die sich daraus ergeben. Dazu gehören die Nutzung von praktisch unbeschränkten Heaps mit Anwendungs-Objekten im Terabyte-Bereich, unschlagbare Skalierung und Antwortzeiten durch intelligente Cash-Cluster und hoch-parallelisierte Massendatenverarbeitung. Einige Demos werden auf einem hybrid konfigurierten WebLogic/Coherence Cluster vorgeführt.

Dozenten:

Peter Doschkinow arbeitet als Senior Java Architekt bei Oracle und unterstützt die Java Community in Deutschland. Er beschäftigt sich mit Web- und Java-Technologien und Frameworks, Web Services und Business Integration. Vor seiner Tätigkeit bei Oracle hat er wertvolle Erfahrungen als Java Architekt und Berater bei Sun Microsystems gesammelt.

Michael Bräuer ist für die ORACLE Deutschland B.V. & Co. KG in der Business Unit Server Technologies Fusion Middleware tätig. Zu seinen Schwerpunktthemen gehören serverseitige Java-Entwicklung und der Oracle WebLogic Server.

 
Nachlese: Neo4j und die wunderbare Welt der Graphen
Written by Philip Höfges   
Monday, 22 September 2014 07:34

>> Video

Auch bei diesem Rheinjug-Tag haben sich wieder zahlreiche Menschen in der Heinrich-Heine-Universität versammelt, um einem Vortrag zu lauschen. Das Thema diesmal ist die Welt der Graphen. Gehalten wird der Vortrag von Michael Hunger, einem renommierten Mitarbeiter bei Neo Technology.

Michael Hunger gibt zunächst eine Einleitung zum Thema Graphen. Was sind Graphen eigentlich? Die Antwort ist, dass alles ein Graph ist. In der heutigen Gesellschaft ist jeder Mensch mit anderen vernetzt. Soziale Netzwerke sind nicht mehr wegzudenken. Aber wie sollte man diese vielen, vielen Daten verarbeiten? Die ersten Graphen stammen aus Schweden. Man hat sich überlegt, wie man die Daten geschickt verarbeiten kann. Die Graphen sind geboren. Ein weiteres Beispiel dafür ist die Logistik. Wie kann man verschieden Menschen verschiedene Informationen zukommen lassen? Wo ist die Ware? Wer transportiert sie? All dies lässt sich mit Graphen schnell und effizient lösen. Wie kommen Menschen von A nach B? Heutzutage mit Navigationssystemen. Auch diese sind nichts anderes als Graphen. Es wäre viel zu aufwendig, dies mit Datenbanken lösen zu wollen. Graphen schaffen hier sehr gute Abhilfe.

Nach Erklärung weiterer Beispiele, erklärt Michael Hunger wie Vorüberlegungen schon in Form von Graphen durchgeführt werden. Man stellt sich bereits Fakten in Form von Knoten vor und überlegt sich, wie jede Information mit einer anderen verbunden ist. Dadurch entsteht eine übersichtliche Darstellung von Informationen. Diese Darstellung ist formfrei und kann von jedem Benutzer selbst gewählt werden. Jeder Knoten kann alles sein, jede Art von Zustand.

Wieder zurück zu den sozialen Netzwerken. Eine Person gilt als sportbegeistert. Jedoch speichert das Netzwerk Informationen, z.B. auf welchen Seiten sich bewegt wird. Man glaubt also einer „sportbegeisterten“ Person dies garnicht, wenn mitgeschnitten wird, dass diese Person sich nicht auf Sportseiten herumtreibt. Genau deswegen sind die Beziehungen gewichtet. Man kann zum Beispiel den Zustand von Gefühlen gewichten. Liebe ist zum Beispiel nicht notwendigerweise bidirektional. Das heißt, das die Liebe auf die eine oder andere Seite gewichtet ist. Außerdem kann jeder Knoten mit unendlich vielen anderen Knoten verbunden sein. Jeder Mensch kann Gefühle für beliebig viele andere Menschen haben. Auch die Selbstliebe ist in einem Graphen gestattet, da jeder Knoten mit sich selbst verbunden sein kann.

Anschließend leitet Michael Hunger zum Kern des Vortrags über. Es gibt verschiedene Arten von Informationsdarstellung. Eine dieser Arten sind die Graphen, insbesondere die Darstellung mit Hilfe von Neo4j. Was macht Graphen gegenüber relationalen Modellen aus? Während relationale Modell eine Join-Tabelle aufbauen, die zwischen Knoten vermittelt, liefern Graphen eine eigene Datenstruktur dazu mit. Dadurch fällt die aufwendige Berechnung von Schlüsseln schlicht weg. Außerdem ist die Laufzeit bei Graphen nicht quadratisch, sondern linear. Um dies zu verdeutlichen, zeigt Michael Hunger ein einfaches Beispiel: Über wie viele Ecken kennt man andere Menschen? Graphen lieferen eine sehr schnelle Antwort, die sich auch bei wesentlich mehr Datensätzen nicht ändert, während das relationale Modell immer bei mehr Daten langsamer wird. Aber warum ist das so? Weil Graphen sich auf die nähere Umgebung des Zielknotens beschränkt und nicht die gesamte Datenbank durchsuchen - das spart Zeit.

Wie sieht das Ganze in Neo4j aus? Neo4j ist skalierbar, schemafrei, deklarativ und perfekt bei für stark vernetzte Daten. Die entsprechende Anfragesprache ist leicht zu lesen und beispielsweise SQL sehr ähnlich. Anhand einer sehr guten Demonstration zeigt Michael Hunger, wie das ganze durchgeführt wird. Der wesentliche Unterschied zu relationalen Modell ist die schnelle Abfrage von benachbarten Knoten. Durch simples Anklicken des Knotens kann dem Umkreis eingesehen werden.

Am Ende der Demonstration fasst Michael Hunger die geschilderten Resultate nochmals sehr übersichtlich zusammen: Alles kann ein als Knoten dargestellt werden, jeder Knoten kann mit unendlich vielen anderen Knoten verbunden sein und jedes Programm kann als Baum und somit als Graph dargestellt werden. Damit beendet Michael Hunger und dem Applaus der Zuhörer seinen Vortrag.

 
Nachlese: Sagt mein Profiler die Wahrheit?
Written by Philip Höfges   
Friday, 22 August 2014 09:22

>> Folien auf Speakerdeck

>> Video

Trotz der langen Sommerpause fanden sich über 80 interessierte Zuhörer im Hörsaal 5B ein, um dem Vortrag von Fabian Lange zum Thema „Profiling“ zu lauschen. Der Web- und Performance-Spezialist von codecentric gewinnt, trotz leichter technischer Schwierigkeiten mit dem Mikrofon, mit einem Beispielprogramm, welches Zeichenketten erzeugen soll. Bei zwei verschiedenen Durchläufen bricht das Programm aber an zwei unterschiedlichen Stellen ab. Wie kommt so etwas zustande? Und wie findet der Kopf vor dem Bildschirm dies heraus? Genaue dafür wurde Profiler entwickelt.

In Java gibt es einige Werkzeuge, wie Mission Control, die die JVM nutzen und Profiling betreiben. Fabian Lange stellt diese in einer kurzen Historie vor und nutzt ein Zitat von Heisenberg, um zu verdeutlichen, dass jede Messung den Code beeinflusst. Zur Veranschaulichung dieser These beschreibt er einige Fehlerquellen beim Profiling:

Der so genannte „Overhead“ ist nicht präzise angegeben. Man kann nicht genau sagen, dass ein Analyseprogramm beispielsweise einen Overhead von zehn Prozent hat, ohne zu wissen, wie lange das zu analysierende Programm eigentlich braucht. Oftmals ist sogar der Speicher sehr knapp, was dazu führt, dass die Daten, die bei der Analyse gesammelt wurden, nicht gespeichert und somit ausgewertet werden können. Ein weiteres Problem stellt die Genauigkeit dar. Wie kann sagen, etwas sei genau? Es gibt Werte, die man nicht mit dem Begriff der Genauigkeit angeben kann, da sie nicht messbar sind. Beispielsweise kann man sich zwar die Zeit am Telefon ansagen lassen, die Zeit, welche man braucht, um einen Knopf an der Mikrowelle nach Beenden des Gesprächs zu drücken ist dabei nicht messbar. Weiterhin nennt Fabian Lange das Problem der Zeitangabe. Man muss zwischen CPU-Zeit und realer Zeit differenzieren. Realzeit lässt sich zwar sehr präzise messen, z.B. mit einer Uhr an der Wand, aber die Zeit, die eine CPU für eine Instruktion braucht, ist nur zwar genau feststellbar. Und was macht man mit großen Datenmengen? Fabian Lange vertritt die Ansicht, dass es wesentlich sinnvoller ist, sich auf kleine Daten, welche schneller auswertbar sind, zu verlassen, als in einem riesigen Paket von Daten zu suchen.

Im Profiling gibt es zwei klassiche Herangehensweisen: Das Sampling und die Instrumentierung. Während beim Sampling in regelmäßigen Abständen der Zustand des Programms eingefangen wird, verändert der Benutzer bei der Instrumentierung den zu messenden Code zu Einfügen von Zusatzcode, um an genau diesen Stellen das Programm zu messen. Zur Veranschaulichung hat Fabian Lange selbstgeschriebene Beispiele vorbereitet. Anhand derer kann man sehr deutlich sehen, dass Sampling zwar die Laufzeit des Programms nicht erhöht, jedoch nicht so viele Daten liefert wie die Instrumentierung.

Anhand einer Demonstration mit dem Tool „Hprof“ stellt Fabian Lange anschließend die Unterschiede zwischen den verschieden Version von Java heraus. Trotz eines identischen Programms liefern die Versionen 6, 7 und 8 von Java bei der Auswertung der Profiling-Daten unterschiedliche Ergebnisse.

In einer Zusammenfassung zeigt Fabian Lange, was für den Zuschauer hängen bleiben sollte. Die zentrale Aussage ist, dass Profiling keine Garantie bietet. Der Profiler kann nicht immer genau festhalten, an welcher Stelle des Programms der Fehler auftritt. Die letztendliche Verbesserung muss vom Anwender kommen. Zusammenfassend ist die Frage, ob ein Profiler die Wahrheit sagt, mit „Nein“ zu beantwortet.

Im Anschluss an den Vortrag wurde bei Freibier sehr angeregt über das Thema diskutiert.

 
More Articles...