Java für das Web – Vaadin best practice

Vaadin ist ein Framework, das die Erstellung von Rich-Internet-Applications mit Java ermöglicht. Damit entsteht eine Brücke von existierenden Softwarearchitekturen und Skills zur nächsten Generation von Unternehmensanwendungen im Web. Das Framework an sich reduziert die Hürde für die ersten Schritte bereits – Projekte steigern ihre Produktivität und Erfolgschance durch die Anwendung einiger Best Practices, die dieser Artikel vorstellt.

Vollständiger Artikel (in Java-Pro): http://java-pro.de/java-fuer-das-web-vaadin-best-practice/

Impulsabend Web-Anwendungen mit Vaadin

Mit Vaadin lassen sich in “pure Java” tolle Web-Anwendungen realisieren. Oliver Damm (akquinet) und Ville Ingmann (Vaadin) begeisterten unsere Gäste am 10.09.2013 mit einem Überblick und den Neuigkeiten von Vaadin 7.1.

Die Folien zu unserem Abend finden sich hier:

Die Sourcen des Beispiels liegen auf Github:
https://github.com/akquinet/vaadin-cdi-mvp

Vaadin unter Last – Teil 3: Ergebnisse der Lasttests (Speicherverhalten)

Wir hatten im ersten Teil einen Lasttest für eine Vaadin-Anwendung aufgebaut. Im zweiten Teil hatten wir das Verhalten dieser Anwendung in Bezug auf Antwortzeit analysiert. In diesem dritten Teil analysieren wir nun Nutzung und Auslastung des Arbeitsspeichers. Auch hier werden wir die Anteile der verschiedenen Komponenten der Anwendung und die Rolle von Vaadin diskutieren.

Weiterlesen

Vaadin unter Last – Teil 2: Ergebnisse der Lasttests (Antwortzeit)

Wir haben im ersten Teil gezeigt, wie ein Lasttest für eine Vaadin-Anwendung mit dem OpenSource-Programm JMeter aufgebaut werden kann. Als Beispiel diente der Officewerker, eine Anwendung zum Office-Management in kleinen Unternehmen oder Teams. Dieser Artikel – wieder auf Basis des Officewerkers – beleuchtet nun eine konkrete Testreihe auf der Cloud-Plattform EC² (Elastic Computing Cloud) von Amazon. Der Fokus liegt dabei auf dem Antwortzeitverhalten bei immer mehr Anfragen – und den entstehenden Bottlenecks. Dabei beleuchten wir vor allem die Rolle von Vaadin.

Weiterlesen

Vortragsfolien: JPA – Der Persistenz-Standard in Java

Am 31.1.2013 präsentierte die akquinet AG gemeinsam mit der Gedoplan GmbH zwei Vorträge zum Thema JPA – der Java Persistenz-Standard. Die Veranstaltung wurde gemeinsam mit der Java User Group Berlin Brandenburg organisiert und fand im Hörsaal der Informatik der FU Berlin statt. Mit ca. 100 Teilnehmern und vielen Fragen an die Experten Michael Bouschen und Dirk Weil bestand ein großes Interesse an dem Thema.

Weiterlesen

Lastverteilung und Failover für entfernte EJB Clients in EAP6 und JBoss AS 7

In den letzten Posts dieser Serie über die Clusterfähigkeiten der JBoss EAP6 und des AS7 ging es um grundlegende Konzepte, Clusterknoten im Domain-Mode verwalten, und skalierbare Hochverfügbarkeitscluster. In diesem Post wird es um den Zugriff von entfernten EJB Clients auf Clustersysteme gehen. Wir werden erklären, wie ein entfernter Java Client transparent auf EJB Komponenten zugreifen kann und dabei sowohl clientseitiges Failover als auch clientseitige Lastverteilung realisiert wird. Darüber hinaus werden wir kurz darstellen wie EJB Komponenten serverseitig konfiguriert werden müssen.

Weiterlesen

Skalierbare Hochverfügbarkeitscluster mit JBoss AS 7 und EAP 6

Übersicht

Im kürzlich erschienenen Blog-Post Clustering im JBoss AS 7/EAP 6 haben wir gezeigt, wie in der neuen EAP 6 und im JBoss AS 7 einfaches Clustering verwendet werden kann. Die EAP 6 ist im Grunde genommen ein AS 7 mit offiziellem RedHat-Support. Der Cluster, den wir in diesem Post verwendet haben, war relativ klein und schlicht. Dieser Post behandelt deutlich komplexere Cluster-Strukturen, wie man diese baut und wie man den neuen Domain-Mode für Cluster verwendet. Es gibt viele Wege größere JBoss Cluster-Umgebungen zu bauen und zu verwalten. Wir werden zwei Möglichkeiten zeigen, um das zu erreichen: Die eine verwendet Separierungstechniken, die auch für ältere JBoss-Versionen verwendet werden können und die andere nutzt ein Infinispan-Feature, das Distribution genannt wird.

Skalierbarkeit vs. Verfügbarkeit

Die größte Schwierigkeit beim Bauen eines Clusters ist es, sowohl hohe Verfügbarkeit als auch Skalierbarkeit zu erreichen.

Verfügbarkeit für einen Cluster bedeutet: Wenn ein Knoten ausfällt werden alle Sessions dieses Knotens nahtlos von einem anderen Knoten übernommen. Dies kann durch Session-Replikation erreicht werden. Session-Replikation ist vorkonfiguriert und aktiviert im ha Profil in der Datei domain.xml. Flache Replikation bedeutet, dass alle Sessions auf alle anderen Knoten kopiert werden: Bei vier Knoten mit je 1 GB Speicher kann der Cluster nur 1 GB Speicher nutzen, weil alle Knoten jeweils Kopien der anderen Knoten speichern. Der Cluster wird also nicht 4 * 1 GB = 4 GB Speicher haben. Wenn man weitere Knoten hinzufügt erhält man nicht mehr Speicher, man verliert sogar Speicher durch den anfallenden Overhead der Replikation. Allerdings erhält man eine höhere Verfügbarkeit und noch wichtiger: mehr Netzwerkverkehr ebenfalls verursacht durch den Overhead der Replikation (alle Änderungen müssen auf alle anderen Knoten verteilt werden). Diese Cluster-Topologie nennen wir vollständige Replikation.
Weiterlesen

Clustering im JBoss AS 7 und EAP 6

Übersicht

Die Möglichkeit verschiedene Server zu einem Cluster zu kombinieren, der seine internen Server vor den Clients verbirgt und eine virtuelle Plattform für eine Anwendung zur Verfügung stellt, ist für Geschäftsanwendungen wichtig. Clustering wird verwendet, um u. a. Folgendes zu erreichen:

  • Hohe Skalierbarkeit, indem dem Cluster günstige Rechnerressourcen auf Nachfrage hinzugefügt werden, oder
  • Hohe Verfügbarkeit, indem ein transparentes Failover verwendet wird, welches Ausfälle der internen Server verbirgt.

Normalerweise beschränken sich hohe Skalierbarkeit und hohe Verfügbarkeit gegenseitig. Es ist aber auch möglich, beides zu erreichen. So kann der JBoss Application Server konfiguriert werden, um beide Eigenschaften zu unterstützen.

Dieser Post ist der erste einer Blogpostserie über Clustering mit dem JBoss AS 7. Hier setzen wir den Fokus auf die grundlegenden Konzepte hinter JBoss AS 7 Clustering und zeigen, wie man eine grundlegende geclusterte Umgebung mit einer einfachen Java EE-Anwendung aufsetzt.

In dieser Serie konzentrieren wir uns auf JBoss AS 7 beziehungsweise die EAP 6, welche die von Red Hat unterstützte Version des JBoss Application Servers ist. Zukünftige Posts werden bestimmte Subsysteme des JBoss AS behandeln, wie HornetQ oder Infinispan.

Weiterlesen