Die Gruppierung mehrerer Server zu einem Cluster ist eine wichtige Eigenschaft eines Java-EE-Servers für den Betrieb kritischer Geschäftsanwendungen. Dies gewährleistet zum einen eine hohe Verfügbarkeit und zum anderen die Skalierbarkeit der Anwendung bei wachsender Last.
Der Artikel gibt einen Überblick über die Clustering-Funktionalitäten des JBoss Ap- plication Server (AS) in der Version 7 und zeigt anhand einer Beispielanwendung, wie man eine Java-EE-Anwendung cluster- fähig implementiert und einen einfachen Cluster betreibt. Er bietet darüber hinaus einen Ausblick auf die Nutzung des Domain Mode zum dynamischen Skalieren und zum Verwalten einer Cluster-Umgebung.
Need(le) for Speed - Effective Unit Testing for Java EE
JavaAktuell - Hochverfügbarkeit mit dem JBoss AS 7
1. Javaaktuell
2-2013 | Sommer | www. ijug.eu
Praxis. Wissen. Networking. Das Magazin für Entwickler
Javaaktuell
Java verbreitet sich überall
Ausblicke
JDeveloper 12c, Seite 8
D: 4,90 EUR A: 5,60 EUR CH: 9,80 CHF Benelux: 5,80 EUR ISSN 2191-6977
Android goes Gradle, Seite 29
Hochverfügbarkeit
JBoss AS7, Seite 21
Web-Entwicklung
Play!, Seite 32
Linked Data, Seite 38
Java und Oracle
iii iii
iii
Continous Integration, Seite 59
iii
iJUG
Verbund
ru ck
rd
02
e
nd
4 191978 304903
S o
2. I nha l t
3 Editorial 59 Drillinge − bei der Geburt getrennt. 66 DevFest Vienna 2012
Wolfgang Taschner Wie PL/SQL, Apex und Continuous Dominik Dorn
Integration wieder zusammenfinden
Markus Heinisch
5 Das Java-Tagebuch
25 Unsere Inserenten
Andreas Badelt
62 Datenschutz-konformes
Social Sharing mit Liferay
8 Oracle JDeveloper 12c – ein Ausblick 28 Die iJUG-Mitglieder auf einen Blick
Michael Jerger
Frank Nimphius
65 Unbekannte Kostbarkeiten des SDK 37 Impressum
13 Asynchrone Datenabfragen Heute: Der ZIP-File-System-Provider
mit DataFX Bernd Müller
Hendrik Ebbers
17 Stolperfallen bei der
Software-Architektur
Frank Pientka
21 Hochverfügbarkeit
mit dem JBoss AS 7
Heinz Wilming und Immanuel Sims
29 Android goes Gradle
Heiko Maaß
32 Web-Apps mit „Play!“ entwickeln –
nichts leichter als das!
Andreas Koop
Lastverteilung zum Erreichen der Hochverfügbarkeit, Seite 20
38 Linked-Data-Praxis:
Daten bereitstellen und verwerten
Angelo Veltens
42 Vagrant: Continuous Delivery
ganz einfach
Sebastian Laag
45 Cobol und Java:
Zwei Sprachen kommen sich näher
Rolf Becking
48 Continuous Bugfixing in großen
Projekten
Jürgen Nicolai
Build-Kreislauf beim Continuous Integration, Seite 59
53 „Wir sollten das Oracle-Bashing
unterlassen …“
Interview mit Falk Hartmann,
Dies ist ein Sonderdruck aus der Java aktuell. Er enthält einen ausgewähl-
Java UserGroup Saxony
ten Artikel aus der Ausgabe 02/2013. Das Veröffentlichen des PDFs bzw.
die Verteilung eines Ausdrucks davon ist lizenzfrei erlaubt.
54 Pragmatisches Testen mit System
Martin Böhm Weitere Informationen unter www.ijug.eu
4 |
3. iiiiii
iii
www.ijug.eu
iii
Hochverfügbarkeit mit dem JBoss AS 7
Heinz Wilming und Immanuel Sims, akquinet AG
Die Gruppierung mehrerer Server zu einem Cluster ist eine wichtige Eigenschaft eines Java-EE-Servers für
den Betrieb kritischer Geschäftsanwendungen. Dies gewährleistet zum einen eine hohe Verfügbarkeit und
zum anderen die Skalierbarkeit der Anwendung bei wachsender Last.
erst bei einer Störung auf einen anderen
ausweicht. Das ist notwendig, da die Sit-
zungsdaten eines Klienten nicht zwischen
den beteiligten Servern repliziert werden.
Die Assoziation der Sitzung eines Klienten
mit dem jeweiligen Server wird als „sticky
session“ bezeichnet. Stürzt ein Server ab,
gehen alle transienten Daten verloren. Der
Klient wird allerdings mit der nächsten An-
frage auf einen anderen Server umgeleitet
(Failover) und könnte auf Basis eines ge-
meinsamen persistenten Datenbestands
weiterarbeiten. Dieser Ansatz lässt sich
relativ leicht umsetzen und ist effizient. Je-
doch können mitunter wichtige Daten ver-
lorengehen. Für einen Webshop würde ein
verlorener Warenkorb bedeuten, dass der
Kunde verärgert ist und die ausgewählten
Artikel nicht kaufen wird.
Damit auch transiente Sitzungsdaten
Abbildung 1: Einfache Cluster-Topologie mit Lastverteilung nach einem Ausfall für die Klienten verfüg-
bar sind, müssen sie auf anderen Servern
des Clusters verfügbar sein. Dazu sind die
Sitzungsdaten beispielsweise einer HTTP-
Der Artikel gibt einen Überblick über die bleibt. JBoss AS 7 bietet hier die Möglich- Session oder einer zustandsbehafteten EJB-
Clustering-Funktionalitäten des JBoss Ap- keit, verschiedene Server zu einem Cluster Komponente über einen Cache zwischen
plication Server (AS) in der Version 7 und zu kombinieren und die interne Server- den jeweiligen Server-Instanzen zu vertei-
zeigt anhand einer Beispielanwendung, Topologie vor den Klienten zu verbergen. len (siehe Abbildung 2). Bei diesem Aufbau
wie man eine Java-EE-Anwendung cluster- Hochverfügbarkeit einer Anwendung müssen die Server-Instanzen eines Clusters
fähig implementiert und einen einfachen kann dabei in unterschiedlichen Ausprä- untereinander kommunizieren und Kennt-
Cluster betreibt. Er bietet darüber hinaus gungen erreicht werden. Für eine Web-An- nis über die Cluster-Topologie haben, um
einen Ausblick auf die Nutzung des Domain wendung wäre es beispielsweise möglich, die jeweiligen Sitzungsdaten zu replizieren.
Mode zum dynamischen Skalieren und zum die Anfragen über einen Load-Balancer an Die Ausfallsicherheit wird hierbei zulasten
Verwalten einer Cluster-Umgebung. die einzelnen Server-Instanzen des Clus- der Skalierbarkeit erhöht, da jeder Server
ters zu verteilen (siehe Abbildung 1). neben seinen eigenen Daten aus Redun-
Einführung Bei dieser Topologie werden die Server danzgründen auch die Sitzungsdaten an-
Da verschiedene Ausfälle, etwa bei der unabhängig voneinander betrieben und derer Server des Clusters vorhält.
Stromversorgung oder der Hardware, auf haben keinerlei Kenntnis davon, dass sie
längere Zeit nicht vermeidbar sind, ist es gemeinsam in einem Cluster arbeiten. Das Verwendete Technologien
meist notwendig, Software redundant setzt voraus, dass der eingesetzte Load- Um Hochverfügbarkeit zu unterstützen,
auszulegen, damit bei einer Störung das Balancer Anfragen eines Klienten immer müssen die Daten innerhalb des Clusters
System in bestimmtem Umfang verfügbar an den gleichen Server weiterleitet und repliziert werden, damit die Sitzungsdaten
Java aktuell 2-2013 | 21
4. Hochve r fü g b a r ke it
auf mehreren Server-Instanzen redundant verteilung und Failover für eine Web-An- Cluster-Topologie wird einem entfernten
vorgehalten sind. Bei einem Server-Ausfall wendung um. Die „mod_cluster“-Module EJB-Klienten nach einer initialen Verbin-
kann der Klient dann auf einen anderen bieten in Verbindung mit JBoss AS 7 einige dung mitgeteilt. Weitere EJB-Aufrufe sind
Server des Clusters umgeleitet werden, Vorteile, da dieser ein Subsystem für die In- ab diesem Zeitpunkt bereits ohne zusätz-
ohne dass dieser hiervon Kenntnis nimmt. tegration von „mod_cluster“ enthält. Die- liche Konfiguration standardmäßig per
Im JBoss AS 7 wird dazu der verteilte Cache ses bietet unter anderem die Möglichkeit, Zufalls-Algorithmus an die Server-Instan-
Infinispan [1] als Fundament für die Repli- verschiedene Metriken für eine intelligen- zen verteilt. Werden die Sitzungsdaten ei-
kation der Sitzungsdaten verwendet. In- te Lastverteilung der Anfragen auf Seiten ner zustandsbehafteten EJB-Komponente
nerhalb einer Java-EE-Anwendung sind des HTTP-Servers mit einzubeziehen. Die repliziert, erfolgt im Fehlerfall ein trans-
transiente Zustände auf mehreren Ebenen Lastkennzahl wird serverseitig berechnet parentes Failover. Zur Erhöhung der Aus-
zu verwalten, beispielsweise die Daten und berücksichtigt Faktoren wie zum Bei- fallsicherheit sollten jedoch mehrere an-
einer HTTP-Session oder der Zustand ei- spiel die Anzahl aktiver HTTP-Sessions, die fängliche Verbindungen konfiguriert sein,
ner EJB-Komponente. Dementsprechend CPU-Auslastung oder den Speicherver- da ansonsten bei einem Ausfall der initia-
enthält der JBoss AS 7 vier vorkonfigurier- brauch des Servers. Ein weiterer Vorteil ist, len Server-Instanz die Cluster-Topologie
te sogenannte „Cache-Container“ für die dass die Server-Instanzen im Gegensatz zu nicht übertragen werden kann.
Replikation der Daten: „mod_jk“ dynamisch über IP-Multicast er-
kannt und eingebunden werden. Cluster-fähige Anwendung
web Lastverteilung und Failover für ent- Damit eine Java-EE-Anwendung in einem
Replikation von HTTP-Session-Daten fernte EJB-Klienten werden von der JBoss- Cluster betrieben werden kann, muss sie
sfsb EJB-Client-Bibliothek [5] unterstützt. Die entsprechend konfiguriert sein. Erst dann
Replikation der Verbindungs- und Sit-
zungsdaten von Stateful-Session-Beans
hibernate
Second-Level-Cache für JPA/Hibernate
cluster
Replikation allgemeiner Objekte in ei-
nem Cluster
Um tatsächlich Daten zwischen den ein-
zelnen Server-Instanzen zu übertragen,
benutzt Infinispan „JGroups“ [2] als grund-
legendes Subsystem. Dies ist ein Frame-
work für die Kommunikation innerhalb
einer Gruppe von verteilten Knoten. Es
stellt Operationen zur Verfügung, um neue
Knoten zu einem Cluster hinzuzufügen,
Knoten explizit zu entfernen sowie fehler-
hafte Knoten zu erkennen und automa-
tisch auszusortieren. JGroups unterstützt
verschiedene Netzwerk-Protokolle, um
den Anforderungen des jeweiligen Netzes
gerecht zu werden.
JBoss AS 7 beinhaltet zwei vorkonfigu-
rierte Protokoll-Stacks für eine verlässliche Abbildung 2: Cluster-Topologie mit Failover und Lastverteilung
Kommunikation zwischen den Server-
Instanzen des Clusters: einen UDP-basier-
ten (Standard) und einen TCP-basierten
Protokoll-Stack. Beide Stacks verwenden
IP-Multicasts zum Auffinden anderer Ser-
ver-Instanzen. Zum Verteilen von Informa- @org.jboss.ejb3.annotation.Clustered <web-app>
@Stateful <distributable/>
tionen hingegen verwendet lediglich der
public class ClusteredStatefulBean { </web-app>
UDP-basierte Stack IP-Multicasts. ...
}
Lastverteilung und Failover
Beispielsweise die Apache-Module „mod_
jk“ [3] oder „mod_cluster“ [4] setzen Last- Listing 1 Listing 2
22 |
5. iii
iii
iii
www.ijug.eu
iii
stehen die Dienste des Applikationsser- sein. Da innerhalb einer Domäne mehrere
vers für den Betrieb eines Clusters, wie die Server-Instanzen verwaltet werden kön-
Cache-Container zur Replikation der Daten nen und auch zur Laufzeit Server-Instan- <domain xmlns=“urn:jboss:domain:1.3“>
...
oder die Gruppenkommunikation über zen einer Servergruppe hinzugefügt und
<server-groups>
JGroups, der Anwendung zur Verfügung. entfernt werden, ist der Domain Mode ide-
Enterprise-JavaBeans sind die Kern- al zur Verwaltung eines Clusters geeignet. <socket-binding-group ref=“ha-sockets“ />
Komponenten einer Java-EE-Anwendung. Eine Domäne kann aus mehreren phy- </server-group>
EJB-Komponenten bieten unter anderem sischen oder virtuellen Hosts bestehen. </server-groups>
deklaratives Transaktions- und Sicherheits- Jeder Host benötigt einen Host-Controller, </domain>
Management. Um eine EJB-Komponente der den Lebenszyklus der Server-Instanzen
in einem Cluster zu betreiben, muss dieses verwaltet. Die gesamte Domäne wird von
dem Server durch eine Annotation oder einem Domain-Controller verwaltet und Listing 3
per XML-Deployment-Deskriptor mitge- stellt die Schnittstelle für Verwaltungsauf-
teilt werden. Listing 1 zeigt, wie beispiels- gaben zur Verfügung (siehe Abbildung 3).
weise eine Stateful-Session-Bean aussieht. Die Controller und die Server-Instan- <host name=“master“ xmlns=“urn:jboss:domain:1.3“>
Es ist jedoch zu beachten, dass bei einer zen von jedem Host sind separate JVM- ...
<domain-controller>
Stateful-Session-Bean die Replikation mit Prozesse. Es gibt zusätzlich noch einen
<local/>
einem zusätzlichen Aufwand verbunden Prozess-Controller. Dieser ist ebenfalls ein </domain-controller>
ist. Da bei der Replikation die Komponen- separater JVM-Prozess, der dafür verant- ...
te serialisiert werden muss, wird sie zuvor wortlich ist, den Lebenszyklus des Host- </host>
passiviert. Das bedeutet, dass die Kompo- Controller-Prozesses zu überwachen. Aus
nente vor jedem Replikationsvorgang pas- Gründen der Ausfallsicherheit und um die Listing 4
siviert und entsprechend vor dem näch- Verwaltungsaufgaben von den Server-
sten Aufruf wieder aktiviert werden muss. Instanzen der Domäne zu trennen, ist es
Dies übernimmt der Applikationsserver. empfehlenswert, den Domain-Controller ./domain.sh
Der Entwickler sollte sich der hinzugefüg- auf einem gesonderten Host zu betreiben.
ten Komplexität bewusst sein, da die Per- Für die Konfiguration einer Domäne -Djboss.bind.address.management=10.0.0.1
formanz beeinträchtigt wird. sind die beiden Dateien „domain.xml“ und
Auch Stateless-Session-Beans können „host.xml“ aus dem Verzeichnis „$JBOSS_ Listing 5
mit den Annotation „@Clustered“ versehen HOME/domain/configuration“ relevant.
sein. Es ist zwar kein Zustand im Cluster zu „domain.xml“ enthält die Konfigura-
replizieren, jedoch können dann die Aufru- tionsrichtlinien der Domäne. Der Domain- <host name=“server1“ xmlns=“urn:jboss:domain:1.3“>
fe entfernter Klienten dynamisch auf den Controller verwaltet die Datei zentral und ...
gesamten Cluster verteilt werden. der Host-Controller verteilt die Konfigu- </host>
Bei Web-Anwendungen muss eben- ration an die Server-Instanzen. Die Konfi-
so kenntlich sein, dass die HTTP-Sessions guration enthält die Servergruppen, ver- Listing 6
repliziert werden sollen. Das wird dem schiedene Profile, Socket-Binding-Groups
Applikationsserver durch das Element sowie die Zuordnung von jeweils einem
„<distributable/>“ in der Datei „web.xml“ Konfigurationsprofil und einer Socket-Bin- <host name=”server1” xmlns=”urn:jboss:domain:1.3”>
mitgeteilt (siehe Listing 2). ding-Group zu einer Servergruppe. ...
Host- und Domain-Controller sind je- <domain-controller>
Der Domain Mode weils über die Datei „host.xml“ konfigu- <remote host=”${jboss.domain.master.address}”
Der Domain Mode ist eine Betriebsart des riert. Die Konfiguration umfasst, welche port=”9999” username=”domainadmin” security-
realm=”ManagementRealm”/>
JBoss AS 7. Er ermöglicht eine zentralisier- Server auf einem lokalen Host existieren,
</domain-controller>
te Verwaltung mehrerer Server-Instanzen. wie der Domain-Controller erreicht wird ...
Das umfasst die Konfiguration, die Bereit- und welcher Host-Controller die Rolle des </host>
stellung von Anwendungen sowie das Domain-Controllers übernimmt.
Starten und Stoppen von Server-Instan- Um einen Domain-Controller aufzuset- Listing 7
zen. Dazu werden die einzelnen Server je- zen, richtet man als Erstes eine JBoss-AS-
weils einer Servergruppe zugeordnet. 7-Distribution ein und legt dort einen Ma-
...
Alle Server einer Servergruppe unterlie- nagement-Benutzer an. Dieser dient den <server-identities>
gen denselben Konfigurations-Richtlinien Host-Controllern zur Authentifizierung
und betreiben die gleichen Anwendun- und kann mithilfe des Skripts add-user. </server-identities>
gen. Die Konfigurationen können bei Be- sh angelegt werden. Wichtig ist, dass der ...
darf auch mit individuellen, umgebungs- Benutzer dem „ManagementRealm“ zuge-
spezifischen Eigenschaften parametrisiert ordnet wird und zur Anmeldung an einem Listing 8
Java aktuell 2-2013 | 23
6. Hochve r fü g b a r ke it
... Für den Domain-Controller kann die vor- der Default-Wert der Hostname des Ser-
<servers> konfigurierte Datei „host-master.xml“ be- vers (siehe Listing 6). Die Konfiguration in
<server name=“server-one“ group=“cluster-ha“ /> nutzt werden. Diese beinhaltet die not- Listing 7 spezifiziert, wie der Domain-Con-
</servers>
wendige Konfiguration für den Host, wie troller erreichbar ist. Der Benutzername ist
...
zum Beispiel das physikalische Network- der zuvor erstellte Management-Benutzer.
Binding der Management-Schnittstellen Außerdem ist das Base64-kodierte Pass-
Listing 9 oder die JVM-Konfiguration. Mit dieser wort bekanntzugeben (siehe Listing 8).
Konfiguration wird ein Host- zum Do- Als letzter Schritt können nun die tat-
main-Controller (siehe Listing 4). Dieser sächlichen Server-Instanzen hinzugefügt
./domain.sh kann mit dem Skript „domain.sh“ aus dem werden (siehe Listing 9). Dabei wird eine
„bin“-Verzeichnis gestartet werden (siehe Server-Instanz immer genau einer Server-
-Djboss.domain.master.address=10.0.0.1 Listing 5). gruppe der Domäne zugeordnet. Ein Host
-Djboss.bind.address=10.0.0.2
Dem Domain-Controller können nun wird ebenfalls mit dem Skript „domain.sh“
-Djboss.bind.address.management=10.0.0.2
beliebig viele Hosts hinzugefügt werden. aus dem bin-Verzeichnis gestartet (siehe
In unserem Beispiel kommt die vorkon- Listing 10).
Listing 10 figurierte Datei „slave-host.xml“ für die
Konfiguration des Host-Controllers zur Eine Beispiel-Anwendung
Anwendung. Diese Datei ist ebenfalls im Die Anwendung unter [6] ist mit dem Kom-
Verzeichnis der Domain-Konfiguration mando „mvn package“ konstruiert und das
./jboss-cli.sh --connect 10.0.0.1:9999 der JBoss-AS-7-Distribution enthalten. Es resultierende Web-Archiv im Applikations-
[domain@10.0.0.1:9999 /] deploy ./cluster-example-1.0-
muss ein eindeutiger Name für jeden Host Server bereitgestellt. Die Anwendung be-
SNAPSHOT.war --server-groups=cluster-ha
in der Domäne gewählt werden, damit es steht aus einer Stateful-Session-Bean, die
nicht zu Konflikten kommt. Andernfalls ist bei jedem Aufruf einen Zähler inkremen-
Listing 11
Domain-Controller berechtigt ist. Das Pass-
wort des neuen Benutzers wird zusätzlich
Base64-kodiert ausgegeben. Dieser Wert
ist später für die Authentifizierung des
Host-Controllers erforderlich.
Der JBoss AS 7 ist bereits für den Betrieb
eines Clusters vorkonfiguriert und bietet
entsprechende Konfigurations-Profile an.
Für kleinere Cluster-Topologien genügt es
zunächst, am Ende der „domain.xml“-Datei
eine Servergruppe zu konfigurieren (siehe
Listing 3).
Jede Servergruppe benötigt einen ein-
deutigen Namen und muss einem Profil
der Domain-Konfiguration zugeordnet
werden. Die Standard-Konfiguration ent-
hält vier vorkonfigurierte Profile:
default
Java-EE-Web-Profil plus einige Erweite-
rungen wie RESTful-Web-Services
full
Java-EE-Full-Profil und alle Server-Fä-
higkeiten ohne Clustering
ha
Standard-Profil mit Clustering-Fähigkei-
ten
full-ha
Vollständiges Profil mit Clustering-Fä-
higkeiten Abbildung 3: Verwaltung einer Cluster-Topologie im Domain Mode
24 |
7. iii iii
iii
www.ijug.eu
iii
dieses Spannungsfeld eingehen und Clus-
ter-Topologien diskutieren, die auch die
Anforderungen an Rechenleistung und
Verfügbarkeit gleichermaßen berücksich-
tigen.
Weiterführende Links
[1] http://www.jboss.org/infinispan
[2] http://www.jgroups.org
[3] http://tomcat.apache.org/connectors-doc
[4] http://www.jboss.org/mod_cluster
[5] https://github.com/jbossas/jboss-ejb-client
[6] https://github.com/akquinet/jbosscc-as7-
examples/tree/master/cluster-example
Heinz Wilming
heinz.wilming@akquinet.de
Abbildung 4: Die Management-Konsole von „mod_cluster“
tiert, und aus einer Stateless-Session-Bean, Die Anwendung kann entweder über
die den Namen des ausführenden Servers die Web-Konsole des Domain-Controllers
zurückgibt. Beide Session-Beans können oder über das Command Line Interface
über eine JSF-Seite aufgerufen werden. (CLI) bereitgestellt werden. Das CLI wird per
Auf der „mod_cluster“-Projektseite [4] Skript aus dem bin-Verzeichnis des JBoss AS
lässt sich eine Binär-Distribution des Apa- gestartet (siehe Listing 11). Die Anwendung
che-Web-Servers mit „mod_cluster“ her- ist danach über „http://127.0.0.1:6666/clus-
unterladen. Diese ist vorkonfiguriert und ter” verfügbar. Die Anfragen werden über
muss lediglich mit „/opt/jboss/httpd/sbin/ den Cluster verteilt und bei einem Ausfall Heinz Wilming ist Leiter des JBoss Competence Center der akqui-
apache-ctl start“ im „root“-Verzeichnis erfolgt ein Failover. net AG. Er beschäftigt sich dort mit Technologien und Architek-
turen für verteilte Anwendungen. Sein Fokus liegt dabei auf der
entpackt und gestartet werden. Wenn der
Java-EE-Plattform und den Open-Source-Technologien.
Cluster bereits gestartet ist, sind die regist- Fazit
rierten Server unter „http://127.0.0.1:6666/ JBoss AS 7 bietet ausgereifte Technologi-
mod_cluster_manager” sichtbar (siehe Ab- en, um kritische Java-EE-Anwendungen
bildung 4). hochverfügbar auf Ebene der Middleware
zu betreiben. Die enthaltenen Profile sind
bereits für kleinere Cluster-Topologien ent- Immanuel Sims
sprechend konfiguriert. Der Domain Mode immanuel.sims@akquinet.de
des Applikationsservers verwaltet komfor-
Unsere Inserenten tabel mehrere Server-Instanzen. Jedoch
birgt ein Cluster eine enorme Komplexität,
aformatik Training und Consulting die Detailkenntnisse der grundlegenden
GmbH & Co. KG S. 3 Technologien „JGroups“ und „Infinispan“
www.aformatik.de erfordert. Für geschäftskritische Anwen-
dungen ist daher der Einsatz der offiziellen
DOAG Deutsche ORACLE-
Anwendergruppe e.V. U2 Produkte von Red Hat zu empfehlen. Diese
www.doag.org sind ebenfalls Open-Source-Software, ba-
sierend auf den Community-Produkten.
Trivadis GmbH U4 Darüber hinaus ist zu beachten, dass Immanuel Sims ist als Werkstudent bei der akquinet AG tätig. Er
www.trivadis.com eine hohe Verfügbarkeit die Skalierbar- studiert Informatik an der Humboldt Universität in Berlin und hat
keit einer Anwendung einschränken kann. sich intensiv mit dem Thema „Clustering“ im Kontext des JBoss AS
In der nächsten Ausgabe werden wir auf 7 beschäftigt.
Java aktuell 2-2013 | 25
8. Javaaktuell www.ijug.eu
2-2013 | Sommer | www. ijug.eu
JETZT
ABO
Praxis. Wissen. Networking. Das Magazin für Entwickler
Javaaktuell
Java verbreitet sich überall
BESTE
LLEN
Ausblicke
JDeveloper 12c, Seite 8
D: 4,90 EUR A: 5,60 EUR CH: 9,80 CHF Benelux: 5,80 EUR ISSN 2191-6977
Android goes Gradle, Seite 29
Hochverfügbarkeit
JBoss AS7, Seite 21
Sichern Sie sich
4 Ausgaben für 18 EUR
Web-Entwicklung
Play!, Seite 32
Linked Data, Seite 38
Java und Oracle
Continous Integration, Seite 59
Für Oracle-Anwender und Interessierte gibt es das Java aktuell
Abonnement auch mit zusätzlich sechs Ausgaben im Jahr der
iii iii
Fachzeitschrift DOAG News und vier Ausgaben im Jahr Busi-
iii iii
02
iJUG
4 191978 304903
Verbund ness News zusammen für 70 EUR. Weitere Informationen unter
www.doag.org/shop/
DOAG 2013 Development 19. Juni 2013, Bonn
FAXEN SIE DAS AUSGEFÜLLTE FORMULAR AN
0700 11 36 24 39
Eine Konferenz für den Erfahrungsaustausch von Software-Entwicklern ODER BESTELLEN SIE ONLINE
go.ijug.eu/go/abo
FRÜH Interessenverbund der Java User Groups e.V.
BIS 2 BUCH
Tempelhofer Weg 64
Themen: DB Programmierung: PL/SQL, APEX, Spatial
2. MA ER 12347 Berlin
BPM & Software-Architektur I 2013
Java & Open Source + + + AUSFÜLLEN + + + AUSSCHNEIDEN + + + ABSCHICKEN + + + AUSFÜLLEN + + + AUSSCHNEIDEN + + + ABSCHICKEN + + + AUSFÜLLEN
Forms, Reports, ADF und BI Publisher
Ja, ich bestelle das Abo Java aktuell – das IJUG-Magazin: 4 Ausgaben zu 18 EUR/Jahr
Ja, ich bestelle den kostenfreien Newsletter: Java aktuell – der iJUG-Newsletter
ANSCHRIFT GGF. ABWEICHENDE RECHNUNGSANSCHRIFT
Im Fokus:
Name, Vorname Straße, Hausnummer
Agile and Beyond – Projektmanagement
in der Oracle-Software-Entwicklung
Firma PLZ, Ort
Wohin geht die Reise? (Part Two) Abteilung E-Mail
Straße, Hausnummer Telefonnummer
PLZ, Ort Die allgemeinen Geschäftsbedingungen* erkenne ich an, Datum, Unterschrift
*Allgemeine Geschäftsbedingungen:
Zum Preis von 18 Euro (inkl. MwSt.) pro Kalenderjahr erhalten Sie vier Ausgaben der Zeitschrift “Java aktuell - das iJUG-Magazin“ direkt nach Erscheinen per Post zugeschickt. Die Abonnementgebühr wird jeweils im
http://development.doag.org
Januar für ein Jahr fällig. Sie erhalten eine entsprechende Rechung. Abonnementverträge, die während eines Jahres beginnen, werden mit 4,90 Euro (inkl. MwSt.) je volles Quartal berechnet. Das Abonnement verlän-
gert sich automatisch um ein weiteres Jahr, wenn es nicht bis zum 31. Oktober eines Jahres schriftlich gekündigt wird. Die Wiederrufsfrist beträgt 14 Tage ab Vertragserklärung in Textform ohne Angabe von Gründen.