magazin Social Media Was Java-Entwickler API JAVA Mag Apache Maven Java EE 6 ausgepackt CD-INHALT wissen sollten»48 Mule ESB 3.0 Die neuen Features»19

Größe: px
Ab Seite anzeigen:

Download "magazin Social Media Was Java-Entwickler API JAVA Mag Apache Maven Java EE 6 ausgepackt CD-INHALT wissen sollten»48 Mule ESB 3.0 Die neuen Features»19"

Transkript

1 JAVA Mag inkl. CD CD-INHALT Mule ESB 3.0 Die neuen Features»19 magazin Java Architekturen SOA Agile Apache Wicket World Wide Wicket Das Tutorial»38 Deutschland 8,50 Österreich 9,80 Schweiz sfr 16, Hazelcast Open Source In-Memory Data Grid» Alle Infos im Heft ab Seite für Softwarearchitekten Video von der W-JAX 2009 in voller Länge HIGHLIGHTS Social Media Was Java-Entwickler API wissen sollten»48 Hazelcast 1.9 Activiti 5.0 Beta WEITERE INHALTE Apache libcloud Apache Commons Lang Apache MyFaces Orchestra Core uvm. Alle CD-Infos ab Seite 3 Apache Maven Dependency-Magie» 100 Java EE 6 ausgepackt Bean Validation» 74 Liferay Portal Grundlagen» 56

2 Enterprise Grid Computing Open Source In-Memory Data Grid Hazelcast Die Skalierbarkeit und Ausfallsicherheit von Anwendungen ist mit steigendem Daten- und Benutzeraufkommen in den letzten Jahren immer relevanter geworden. In diesem Zusammenhang tauchen häufig Begriffe wie Data Grid und Grid Computing auf. Diese stehen im Wesentlichen für die Verteilung von Daten und Verarbeitungsprozessen in einem Cluster. Das leichtgewichtige Open-Source-Framework Hazelcast positioniert sich genau in diesem Problemfeld. von Matthias Ebbing und Christian Lambert Große Geschäftsanwendungen stellen Entwickler immer wieder vor die gleichen Probleme: Wie stelle ich die Antwortzeiten bei hoher Nutzlast sicher? Wie kann ich die zur Verfügung stehenden Ressourcen optimal ausnutzen? Wie verarbeite ich sehr große Datenmengen effizient? Wie erfülle ich meine Service Level Agreements und minimiere die Ausfallzeiten meiner Anwendung? Um diese Anforderungen an hochskalierbare Anwendungen erfüllen zu können, sind generell folgende Aspekte zu beachten: Dynamisches Clustering Ausfallsicherheit und Lastverteilung Partitionierung und Verteilung von Daten Parallele Verarbeitung von Geschäftsprozessen Hazelcast ist ein Open-Source-Java-Framework, das unter der Apache-Lizenz veröffentlicht ist und somit auch in kommerziellen Projekten kostenlos eingesetzt werden kann. Es bietet dem Anwendungsentwickler ein auf die Thematik hochskalierbare Datenverarbeitung passend zugeschnittenes Feature-Set und zeichnet sich insbesondere durch seinen leichtgewichtigen Ansatz und die einfache Benutzbarkeit aus. Hazelcast realisiert ein In-Memory Data Grid mittels eines Peer-to-Peer-Ansatzes. Da durch diese Architektur kein zentraler Master-Knoten existiert, gibt es auch keinen Single Point of Failure. Cluster-Knoten können dynamisch zur Laufzeit hinzugefügt und entfernt werden. Das Backup von Daten im Cluster und die Wiederherstellung dieser Daten im Fehlerfall erfolgt automatisch und bedarf keiner weiteren Programmierung oder Konfiguration. Weiterhin bietet Hazelcast spezialisierte Datentypen von Java-Basistypen wie zum Beispiel Map, Set und Queue, für die eine automatische Datenverteilung im Cluster übernommen wird. Eine Unterstützung für Messaging und Event Handling sowie die einfache Möglichkeit, Verarbeitungsprozesse im Cluster zu verteilen, runden den Funktionsumfang ab. Start Hazelcast kann in seiner aktuellen Version von [1] heruntergeladen werden. Die Sourcen sind unter [2] zu finden. Das Deployment ist denkbar einfach: Das hazelcast.jar muss dem Classpath hinzugefügt werden, weitere Abhängigkeiten zu anderen Bibliotheken bestehen nicht. Somit kann das Framework in jedem Java-Umfeld (Standalone, Spring, JEE etc.) eingesetzt werden. Um einen ersten Eindruck von den Funktionen zu bekommen, empfiehlt es sich, die Beispielanwendung auszuprobieren (run.bat bzw. run.sh). Das Programm besitzt ein Command-Line-Interface, wobei eine Übersicht über alle Kommandos mit help angezeigt wird. Wenn die Beispielanwendung nun parallel in mehreren Shells ausgeführt wird, ist zu erkennen, dass die einzelnen JVM-Instanzen automatisch einen Cluster bilden. Eine besondere Konfiguration ist hierfür nicht notwendig. Standardmäßig erfolgt der Discovery-Prozess mithilfe von Multicast (falls das nicht zur Verfügung steht, kann auch TCP/IP konfiguriert werden). Dabei hat ein Cluster einen Namen und ist durch ein Passwort geschützt. Distributed Map Als einfaches Beispiel soll in unserer Anwendung pro User ein UserState-Objekt (Listing 1) in einer Map abgelegt werden. Um diese von Hazelcast im Cluster verwalten zu lassen, reicht der folgende Aufruf: java.util.map<string, UserState> map = com.hazelcast.core.hazelcast.getmap("userstatemap"); Die erhaltene Map ist vom Typ com.hazelcast.imap, der java.util.concurrent.concurrentmap erweitert. Der Zugriff erfolgt wie bei einer ganz normalen Map: 80 javamagazin

3 Grid Computing Enterprise map.put("user007", userstate); UserState userstate = map.get("user007"); Der wichtige Unterschied zu einer herkömmlichen Hashmap liegt darin, dass Hazelcast die Daten der Map im Cluster verteilt. Datenpartitionierung im Cluster Dabei müssen folgende Aspekte beachtet werden: Gleichmäßige Verteilung der Daten auf die Cluster- Knoten Schneller Zugriff auf die verteilten Daten Kein Datenverlust bei Ausfall von Knoten Datenumverteilung bei Veränderungen des Clusters Wie adressiert Hazelcast diese Anforderungen? Die Daten werden anhand ihres Hash-Werts beziehungsweise bei einer Map anhand des Hash-Werts des jeweiligen Schlüssels, gleichmäßig über die Cluster-Knoten verteilt. Die Implementierung einer sinnvollen Hash-Funktion für Objekte, die man in eine verteilte Datenstruktur einfügen will, ist dementsprechend besonders wichtig. Der schnelle Zugriff auf die Daten ist dadurch gewährleistet, dass Hazelcast für jeden Hash-Wert weiß, auf welchem Cluster-Knoten sich das zugehörige Objekt befindet. Somit ist von jedem Cluster-Knoten ausgehend maximal ein Remote-Zugriff notwendig, um ein gewünschtes Objekt zu erhalten. Die Datensicherheit wird dadurch gewährleistet, dass im Standardfall für jeden Knoten der jeweils nächste Cluster-Knoten ein vollständiges Backup der Daten hält. Falls ein Knoten ausfällt, werden die Daten der übrigen Knoten neu verteilt und gespiegelt. Zu Datenverlusten kann es also nur kommen, wenn zwei aufeinander folgende Knoten gleichzeitig ausfallen. Bei höheren Anforderungen an die Ausfallsicherheit kann eine höhere Anzahl an Backup-Knoten eingestellt werden. Dies hat dann natürlich entsprechende Auswirkungen auf die Performance von Datenänderungen und den Speicherverbrauch. Fällt ein Cluster-Knoten aus oder wird ein neuer Knoten dem Cluster hinzugefügt, dann erfolgt automatisch eine Datenumverteilung, sodass am Ende wieder eine Gleichverteilung der Daten und Datenbackups erreicht wird. Beispiel: Wenn ein aus 10 Knoten bestehender Cluster 10 Millionen Objekte enthält, dann hält jeder Knoten 2 Millionen Objekte: 1 Million eigene und 1 Million als Backup für den Vorgängerknoten. Wenn 10 Knoten dazu geschaltet werden, was zur Laufzeit geschehen kann, werden die Daten ad hoc neu verteilt und jeder Knoten enthält schließlich 1 Million Objekte: eigene und als Backup. Weitere verteilte Datenstrukturen Neben der bereits vorgestellten Map unterstützt Hazelcast noch die verteilten Datenstrukturen MultiMap, Set und List. Eine MultiMap ist eine Map, die mehrere Werte zu einem Key speichern kann. Bei Set und List handelt es sich um Erweiterungen von den aus java.util bekannten Interfaces. Für List gilt hier die Besonderheit, dass indexbasierte Operationen nicht unterstützt werden, da sie im Cluster zu teuer zu realisieren wären. Der Zugriff auf die verteilten Datenstrukturen erfolgt über die zentrale Factory-Klasse com.hazelcast.core.hazelcast. Für jede Datenstruktur gibt es eine entsprechende get-methode, der als einziger Parameter ein Name als Identifier übergeben wird. Falls im Cluster zu diesem Namen bereits eine Instanz der Datenstruktur existiert, wird diese zurückgeliefert, andernfalls wird eine neue erzeugt. Damit die Daten, die in eine solche Datenstruktur eingefügt werden, zwischen den Cluster-Knoten übertragen werden können, müssen sie das Interface java. io.serializable implementieren. Aufgrund der Verteilung der Daten über die Knoten kann jede Operation auf den Datenstrukturen zu einem Remotezugriff führen. Query Gerade bei großen Datenmengen werden effektive Möglichkeiten benötigt, Elemente nach beliebigen Selektionskriterien zu ermitteln. Angenommen, man möchte alle UserStates finden, deren zugehörige User einen Namen haben, der mit M anfängt und die älter als 18 Jahre sind. Bei einem naiven Ansatz würde der ausführende Thread über alle Einträge in der Map iterieren und für den als Value gespeicherten UserState überprüfen, ob die Bedingungen erfüllt sind. Dieses Vorgehen hätte aber zur Folge, dass alle entfernt gespeicherten Einträge übertragen werden müssten, was äußerst ineffizient wäre. Für Listing 1 public class UserState implements Serializable { private String userid; // unique identifier private boolean refreshrequired = false; private List<Notification> notifications = new ArrayList<Notification>(); // Notification implements Serializable private String username; private int userage; // getter/setter // Listing 2 IMap<String, UserState> map = Hazelcast.getMap( userstatemap ); Collection<UserState> values = map.values(new com.hazelcast.query.predicate() public boolean apply(mapentry mapentry) { UserState userstate = (UserState) mapentry.getvalue(); return userstate.getuserage() > 18 && userstate.getusername().startswith( M ); ); ; javamagazin

4 Enterprise Grid Computing eine Notification zu einem UserState-Objekt hinzu. Dabei ist zu beachteten, dass das modifizierte Value-Objekt wieder in die Map zurückgeschrieben werden muss: map.lock(userid); try { UserState userstate = map.get(userid); userstate. addnotification(notification); userstate.setrefreshrequired(true); map.put(userid, userstate); finally { map.unlock(userid); Abb. 1: Monitoring-Tool diese Problematik bietet Hazelcast eine passende Lösung: Jeder Knoten durchsucht seine lokalen Elemente nach Treffern und nur diese werden an den anfragenden Knoten gesendet. Daraus resultieren zwei Vorteile: Zum einen wird das Netzwerk entlastet, da nur die relevanten Einträge übertragen werden. Zum anderen verbessert sich die Antwortzeit, da die Suchanfrage parallel auf allen Knoten ausgeführt wird (Listing 2). Neben der Möglichkeit, die Bedingung wie eben gezeigt zu implementieren, bietet Hazelcast noch die elegante Alternative, SQL-ähnliche Abfragen zu formulieren: Collection<UserState> values = map.values(new com.hazelcast.query.sqlpredicate("username like M% and userage > 18")); Hierbei erfolgt der Zugriff auf die Attribute per Reflection durch Aufruf des zugehörigen Getters, alternativ kann das Attribut auch als public deklariert werden. Eine Weiternavigation über Beziehungen, um dort weitere Kriterien auszuwerten, ist nicht möglich. Um die Suche weiter zu optimieren, können die Einträge wie bei einer relationalen Datenbank indiziert werden. Dabei wird der Performancegewinn bei der Suche durch etwas höhere Kosten bei Schreiboperationen erkauft, da der Index aktualisiert werden muss. Ein Index kann wie folgt zu einem beliebigen Zeitpunkt erzeugt werden: map.addindex("userage", true); Locks Gerade bei verteilten Systemen besteht die Gefahr, dass Daten von verschiedenen Prozessen/Threads gleichzeitig geändert werden, wobei nur die letzte der konkurrierenden Änderungen gespeichert würde, während die anderen verloren gehen. Um diese Lost-Updates zu vermeiden, besteht die Möglichkeit, zu bearbeitende Einträge exklusiv zu sperren. Hier fügen wir beispielsweise Neben der Synchronisation von Datenänderungen ist es wie auch in der Thread-Programmierung innerhalb einer JVM oft nötig, Programmabläufe Cluster-weit zu synchronisieren. Dafür steht eine verteilte Implementierung des java.util.concurrent.locks.lock-interface zur Verfügung. Einen Lock erhält man über den Aufruf Hazelcast.getLock("mylock"). Executor Service Genauso wichtig wie die Verteilung von Daten ist die Verteilung der Verarbeitung im Cluster. Angelehnt an das in Java 1.5 neu eingeführte Executor Framework [3] realisiert Hazelcast einen Distributed Executor Service. Wie im Java Executor Service müssen ausführbare Tasks die Interfaces java.util.concurrent.callable oder java.lang.runnable implementieren, je nachdem, ob ein Rückgabewert benötigt wird oder nicht. Zusätzlich muss ein Hazelcast Task noch Serializable sein, da er potenziell auf einem entfernten Cluster-Knoten ausgeführt wird. Um einen Task, der hier beispielsweise das Vorkommen bestimmter Wörter auf einer Website zählt, auf einem beliebigen Cluster-Knoten auszuführen, werden lediglich folgende Zeilen benötigt: java.util.concurrent.executorservice executorservice = com.hazelcast.core.hazelcast.getexecutorservice(); Future<String> future = executorservice.submit(new CountTask("www.java-magazin.de", "hazelcast")); // Wartezeit überbrücken. Long result = future.get() Hazelcast bietet verschiedene Möglichkeiten für die Ausführung von Tasks: Auf einem Cluster-Knoten, den Hazelcast bestimmt Auf einem, allen oder einem Teil der Cluster-Knoten Auf dem Cluster-Knoten, der einen angegebenen Key besitzt Der letzte Punkt ist hierbei besonders interessant, da er einen neuen Ansatz erlaubt. Statt die Daten an den Ort zu holen, an dem sie verarbeitet werden sollen, schickt man den Verarbeitungsprozess zu den Daten. Das be- 82 javamagazin

5 Grid Computing Enterprise reits genannte Beispiel für das Hinzufügen einer Notification zu einem UserState-Objekt wurde in Listing 3 als Task realisiert. Um diesen Task auf dem Cluster-Knoten auszuführen, der das UserState-Objekt verwaltet, muss er in einen DistributedTask eingepackt werden, der als zusätzlichen Parameter den Schlüsselwert des gewünschten Objekts erhält: Callable<Boolean> task = new AddNotificationTask(notification); executorservice.submit(new DistributedTask<Boolean>(task, notification.getreceiveruserid())); Was bringt diese Änderung im Detail? Die Implementierung führt zu vier Remote-Zugriffen, wenn der Task nicht auf dem Knoten ausgeführt wird, auf dem der Eintrag gespeichert ist, nämlich für die Operationen lock, get, put und unlock auf der Map. Zudem werden bei get und put jeweils das UserState-Objekt und die damit möglicherweise assoziierten Objekte, wie zum Beispiel ein User-Objekt, übertragen. Wird hingegen die Call- Methode auf dem richtigen Knoten ausgeführt, ist lediglich ein Remotecall notwendig, und es muss nur einmal das Notification-Objekt übertragen werden. Der ExecutorService bietet somit eine gute Möglichkeit, die Verarbeitung zu parallelisieren und Netzwerk-Traffic zu minimieren. Events und Messaging Um über Datenänderungen informiert zu werden, können für einzelne Einträge oder ganze Datenstrukturen EventListener registriert werden. Im Fall einer Map ist ein com.hazelcast.core.entrylistener und für Set, List und Queue ein com.hazelcast.core.itemlistener zu verwenden. Der Listener wird bei jeder Änderung benachrichtigt, dabei spielt es keine Rolle, welcher (entfernte) Knoten den Eintrag speichert. Neben den allgemeinen Datenstrukturen bietet Hazelcast auch noch verteilte Queues und Topics, um einen leichtgewichtigen Messaging-Mechanismus zu realisieren. Wie von JMS bekannt, kann man ein Topic definieren, auf das sich beliebige MessageListener an beliebigen Cluster-Knoten registrieren können: ITopic<Serializable> topic = Hazelcast.getTopic("MySampleTopic"); topic.addmessagelistener(new MessageListener<Serializable>() public void onmessage(serializable message) { System.out.println("message received: " + message); ); Das Versenden einer Nachricht geschieht via topic. publish("eine Nachricht"). Hazelcast sieht bislang keine Möglichkeit vor, Nachrichten persistent zu speichern. Insofern ist die Messaging-Unterstützung nicht mit einer vollwertigen JMS-Implementierung zu vergleichen beziehungsweise kann sie nicht ersetzen. Persistenz Bislang wurde gezeigt, wie Hazelcast Daten im Speicher verteilt und verwaltet und wie man diese Daten wiederfindet und effizient verarbeitet. Dabei ging es immer um Daten, die im Speicher gehalten werden. Was passiert aber, wenn der gesamte Cluster ausfällt oder auch nur (weit weniger dramatisch) wegen einer neuen Softwareversion neu gestartet werden soll. Es ist fast immer nötig, wichtige Daten einer Anwendung persistent zu hinterlegen. Hazelcast bietet hierfür die Möglichkeit, mittels selbst implementierter Loader- und Store-Klassen die Einträge einer Map zu speichern. Dazu müssen lediglich die Interfaces com.hazelcast.core.maploader und com.hazelcast. MapStore implementiert werden und in der hazelcast. xml, die die Konfiguration enthält, für die gewünschte Map im map-store-element angegeben werden. Mittels write-delay-seconds kann konfiguriert werden, ob die Schreibvorgänge synchron (write-through) oder alle n Sekunden asynchron (write-behind) erfolgen sollen. Letzteres hat in der Regel einen Performancevorteil, da die Anwendung nicht auf die Persistierung eines Eintrags warten muss und es möglich ist, mehrere Änderungen gesammelt zum Beispiel per Bulk-Insert in eine relationale Datenbank zu schreiben. Der Nachteil des asynchronen Schreibens liegt in der Datensicherheit, da alle Änderungen, die in den Sekunden zwischen den Speichervorgängen erfolgen, verloren gehen können. Da dies aber nur geschehen kann, wenn ein Cluster-Knoten Listing 3 public class AddNotificationTask implements Callable<Boolean>, Serializable { private Notification notification; public AddNotificationTask(Notification notification) { this.notification = public Boolean call() throws Exception { IMap<String, UserState> map = Hazelcast.getMap(Sample.sUserStateMap); String userid = notification.receiveruserid; map.lock(userid); try { UserState userstate = map.get(userid); if (userstate!= null) { userstate.addnotification(notification); userstate.setrefreshrequired(true); map.put(userid, userstate); return Boolean.TRUE; else { return Boolean.FALSE; finally { map.unlock(userid); javamagazin

6 Enterprise Grid Computing und alle seine Backup-Knoten in dieser Zeit ausfallen, ist das Risiko in der Regel akzeptabel. Wenn synchron geschrieben wird, stellt Hazelcast sicher, dass die Änderungen an den persistenten Daten durchgeführt werden, bevor die Daten der Map und die Backup-Einträge aktualisiert werden. Der MapLoader wird immer dann aufgerufen, wenn die Anwendung einen Key anfragt, der noch nicht in der Map enthalten ist. Transaktionen Hazelcast bietet ebenfalls die Möglichkeit, Transaktionen abzubilden. Zum einen existiert ein einfach gehaltenes Transaction-Interface, über das beliebige Aktionen auf den verteilten Datenstrukturen von Hazelcast zu einer Transaktion zusammengefasst werden können. In einem JEE-Kontext kann Hazelcast zum anderen über einen Resource Adapter (JCA) in die eigene Anwendung eingebunden werden und somit an Standard- JTA-Transaktionen teilnehmen. In diesem Kontext darf allerdings nicht vergessen werden, dass durch die Verteilung der Daten schon die Änderung eines Map-Eintrags dazu führen kann, dass mehrere Cluster-Knoten an einer Transaktion beteiligt sind und somit verteilte Transaktionen entstehen, die einen Two-Phase-Commit erforderlich machen. Um diese sehr teuren Operationen zu verhindern, sollte darauf geachtet werden, Transaktionen so klein wie möglich zu halten, falls nicht ganz auf transaktionales Verhalten verzichtet werden kann. Monitoring In der Hazelcast-Distribution ist bereits ein Monitoring-Tool als Webapplikation enthalten, das in einem beliebigen Webcontainer (z. B. Tomcat) deployt werden kann. Nachdem man sich mit dem Cluster-Namen und Passwort sowie IP und Port eines Knotens eingeloggt hat, erhält man eine Übersicht über alle Knoten und Datenstrukturen im Cluster (Abb. 1). Für eine konkrete Alternative Frameworks Sowohl Open Source als auch kommerziell gibt es viele interessante Produkte, die im Bereich Data Grid beziehungsweise Grid Computing angesiedelt sind. Sie alle haben im Kern ein ähnliches Feature-Set, setzen aber teilweise unterschiedliche Schwerpunkte. Hier eine kleine Aufzählung der Bekannteren: OpenSource Apache Hadoop GridGain DAC JBossCache/JGroups/Infinispan Commercial Oracle Coherence GigaSpaces IBM extreme Scale Gemstone Terracotta Datenstruktur werden dann die Größe, die Anzahl der durchgeführten Operationen sowie deren Zeitverbrauch pro Knoten und insgesamt angezeigt. Weitere Features Zu den weiteren Features von Hazelcast zählen u. a. folgende: Hibernate 2nd Level Cache: Entitäten und Suchergebnisse werden verteilt im Cluster gespeichert Http Session Cluster: Verteiltes Speichern der HTTP- Session und Session Failover. Cluster Clients: Java-Clients, die wie jeder Knoten auf den Cluster zugreifen können, aber keine eigenen Daten speichern. Security: Die Kommunikation zwischen Knoten kann auf Socket-Ebene, basierend auf der Java Cryptography Architecture, sowohl symmetrisch als auch asymmetrisch verschlüsselt werden. Fazit Mit Hazelcast liegt eine frei verfügbare Lösung vor, um hochskalierbare verteilte Software zu entwickeln. Es bietet auf Standard-Java-Datentypen basierende verteilte Datenstrukturen, ein an den Executor Service angelehnten Dienst zur Verteilung von Tasks im Cluster sowie eine einfache Pub/Sub-Messaging-Lösung. Durch die Verwendung bekannter Java-Konstrukte ist die Einstiegshürde gering, und da auch Konfiguration und Deployment sehr einfach sind, kann schon nach kurzer Zeit produktiv mit Hazelcast gearbeitet werden. Bestehende Anwendungen lassen sich mit überschaubarem Aufwand skalierbarer gestalten. Neben Hazelcast gibt es noch eine ganze Reihe sowohl kommerzieller als auch Open-Source-Frameworks mit gleichem oder ähnlichem Fokus (Kasten: Alternative Frameworks ). Diese bieten teilweise mehr Features und sind in bestimmten Einsatzgebieten zweifellos überlegen, benötigen allerdings eine meist erheblich höhere Einarbeitungszeit und haben in der Regel auch größeren Einfluss auf die Softwarearchitektur und die Systemlandschaft. Christian Lambert ist Diplom-Informatiker und seit 2000 für die adesso AG tätig. In Kundenprojekten entwickelt er als Berater und Softwarearchitekt große Geschäftsanwendungen basierend auf JEE. Matthias Ebbing arbeitet als Softwarearchitekt für die adesso AG. Seine Schwerpunkte sind modellgetriebene Softwareentwicklung und der Entwurf von Java-basierten Geschäftsanwendungen. Links & Literatur [1] [2] [3] ExecutorService.html 84 javamagazin

Caching. Hintergründe, Patterns &" Best Practices" für Business Anwendungen

Caching. Hintergründe, Patterns & Best Practices für Business Anwendungen Caching Hintergründe, Patterns &" Best Practices" für Business Anwendungen Michael Plöd" Senacor Technologies AG @bitboss Business-Anwendung!= Twitter / Facebook & co. " / kæʃ /" bezeichnet in der EDV

Mehr

JBoss 7 als Plattform für hochverfügbare Anwendungen

JBoss 7 als Plattform für hochverfügbare Anwendungen JBoss 7 als Plattform für hochverfügbare Anwendungen Orientierungspunkt 04/2013 24.05.2013, OIO Dirk Weil, GEDOPLAN GmbH Dirk Weil GEDOPLAN GmbH, Bielefeld Java EE seit 1998 Konzeption und Realisierung

Mehr

EHCache und Terracotta. Jochen Wiedmann, Software AG

EHCache und Terracotta. Jochen Wiedmann, Software AG EH und Terracotta Jochen Wiedmann, Software AG Autor Perl-Contributor DBD::mySQL 2, DBI::Proxy, DBI::Shell, DBD::CSV, Net::Daemon, RPC::Pl(Client Server) (Autor) DBI (Developer) ASF-Member (Apache Software

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

SaaS-Referenzarchitektur. iico-2013-berlin

SaaS-Referenzarchitektur. iico-2013-berlin SaaS-Referenzarchitektur iico-2013-berlin Referent Ertan Özdil Founder / CEO / Shareholder weclapp die Anforderungen 1.000.000 registrierte User 3.000 gleichzeitig aktive user Höchste Performance Hohe

Mehr

AS 7 / EAP 6 - Clustering. heinz.wilming@akquinet.de @akquinet h3p://blog.akquinet.de

AS 7 / EAP 6 - Clustering. heinz.wilming@akquinet.de @akquinet h3p://blog.akquinet.de AS 7 / EAP 6 - Clustering heinz.wilming@akquinet.de @akquinet h3p://blog.akquinet.de Was ist die EAP 6? EAP6!= EAP5 +1 JBoss Enterprise ApplicaBon PlaCorm 6 Stabile und unterstützte Pla>orm Basiert auf

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

Clustering von Application Servern am Beispiel von JBoss 3.2

Clustering von Application Servern am Beispiel von JBoss 3.2 Clustering von Application Servern am Beispiel von JBoss 3.2 Cluster Workshop iternum GmbH Alexanderstraße 7 60489 Frankfurt/Main www.iternum.com Agenda Clustertechnik allgemein Was ist Clustering? Gründe

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Loadbalancing und Clustering mit Tomcat 6

Loadbalancing und Clustering mit Tomcat 6 Loadbalancing und Clustering mit Tomcat 6 Java Forum Stuttgart 3. Juli 2008 Michael Heß ORDIX AG, Paderborn mhe@ordix.de www.ordix.de Agenda Zielsetzung des Vortrags Webserver Integration Loadbalancing

Mehr

Lightweight Java in der Automatisierungstechnik

Lightweight Java in der Automatisierungstechnik Lightweight Java in der Automatisierungstechnik Erfahrungen aus dem Anlagenbau Dr. Markus Eiglsperger eig@zuehlke.com Business Driver im Anlagenbau Kosten Modularisierung Vernetzung Agilität Paradigmenwechsel

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de Fortgeschrittene Servlet- Techniken Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Servlet Initialisierung Attribute und Gültigkeitsbereiche Sessions

Mehr

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring Dennis Schulte / Tobias Flohre Enterprise Java Batch mit Spring Dennis Schulte Düsseldorf @denschu www.github.com/denschu blog.codecentric.de/author/dsc tel +49 (0) 1515 _ 288 2395 dennis.schulte@codecentric.de

Mehr

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht. Technisches Design Inhalt Design Übersicht Menü und DispatcherServlet DWR Servlet Viewer Servlets Controllers Managers Sicherheit Anwendung Architektur Component Diagram Deployment Diagram Komponente Sequence

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Kommunikation ist alles

Kommunikation ist alles Kommunikation in verteilten Systemen mit Kommunikation ist alles >> alexander ziegler In einem verteilten System müssen die Anwendungsbestandteile miteinander interagieren nur so funktioniert ein großes

Mehr

BigTable. 11.12.2012 Else

BigTable. 11.12.2012 Else BigTable 11.12.2012 Else Einführung Distributed Storage System im Einsatz bei Google (2006) speichert strukturierte Daten petabyte-scale, > 1000 Nodes nicht relational, NoSQL setzt auf GFS auf 11.12.2012

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

So (un)sicher ist Mac OS Teamwork: Xcode und CocoaPods. Xtext. GWT Asynchrone Requests richtig handeln. Graphendatenbanken. Die wichtigsten HTML5-APIs

So (un)sicher ist Mac OS Teamwork: Xcode und CocoaPods. Xtext. GWT Asynchrone Requests richtig handeln. Graphendatenbanken. Die wichtigsten HTML5-APIs Alle Infos zur JAX ab S. 39 Deutschland 6,50 Österreich 7,00 Schweiz sfr 13,40 www.entwickler-magazin.de Juli /August 4.2011 März/April 2.2013 0QFO(- t 41. t (SBQIFOEBUFOCBOLFO t 7JSUVBMJTJFSVOH t )5.-

Mehr

RAC auf Sun Cluster 3.0

RAC auf Sun Cluster 3.0 RAC auf Sun Cluster 3.0 Schlüsselworte RAC, OPS, Sun Cluster, Performance, Availability Zusammenfassung Oracle hat mit dem Real Application Cluster (RAC) aus einer Hochverfügbarkeitslösung eine Höchstverfügbarkeitslösung

Mehr

Module für eine Java-Administrationsschulung

Module für eine Java-Administrationsschulung Module für eine Java-Administrationsschulung Schulungsmodule 1 Java Administration allgemein...2 1.1 Java und die Virtual Machine...2 1.2 Java EE Bestandteile...2 1.3 Java Management Extensions...2 1.4

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Aufgabenstellung und Zielsetzung

Aufgabenstellung und Zielsetzung Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Robuste Anwendungen mit Hystrix

Robuste Anwendungen mit Hystrix Robuste Anwendungen mit Hystrix Alexander Schwartz Entwicklertag Frankfurt am 25. Februar 2015 1 AGENDA 1. Anwendungen mit externen Diensten 2. Einbau von Hystrix Schritt für Schritt 3. Anwendungsüberwachung

Mehr

Message Oriented Middleware am Beispiel von XMLBlaster

Message Oriented Middleware am Beispiel von XMLBlaster Message Oriented Middleware am Beispiel von XMLBlaster Vortrag im Seminar XML und intelligente Systeme an der Universität Bielefeld WS 2005/2006 Vortragender: Frederic Siepmann fsiepman@techfak.uni bielefeld.de

Mehr

Rechnernetze Projekt SS 2015

Rechnernetze Projekt SS 2015 30/03/15 Seite 1 Aspektorientierte Programmierung logische Aspekte (Concerns) im Programm separieren Crosscutting Concerns (Ziel: generische Funktionalitäten über mehrere Klassen hinweg zu verwenden -

Mehr

Java Batch Der Standard für's Stapeln

Java Batch Der Standard für's Stapeln Java Batch Der Standard für's Stapeln Berlin Expert Days 18.09.2015 Dirk Weil, GEDOPLAN GmbH Dirk Weil GEDOPLAN GmbH, Bielefeld GEDOPLAN IT Consulting Konzeption und Realisierung von IT-Lösungen GEDOPLAN

Mehr

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013 Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013 Die Herausforderung: Hostanbindung Viele Unternehmen besitzen Mainframe- und Legacy-Anwendungen, so genannte Enterprise Information Systems (EIS),

Mehr

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R2: Administration II

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R2: Administration II Ora Education GmbH www.oraeducation.de info@oraeducation.de Lehrgang: Oracle Application Server 10g R2: Administration II Beschreibung: Die Teilnehmer lernen verschiedene Topologien des Oracle Application

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08 Rapid I/O Toolkit http://projects.spamt.net/riot Alexander Bernauer alex@copton.net 08.12.08 Inhalt Motivation Architektur Beispiel I/O Features Ausblick Motivation Problemstellung Vorgaben Datenverarbeitung

Mehr

Taktgeber aus der Cloud

Taktgeber aus der Cloud azure. Microsoft Azure Scheduler Teil 4: Microsoft Azure Scheduler gezielt einsetzen Quellcode als Download auf Taktgeber aus der Cloud In dieser fünfteiligen Artikelserie beschäftigen wir uns mit der

Mehr

Alternativen zur OpenText Suche. 29. OpenText Web Solutions Anwendertagung Mannheim, 18. Juni 2012 Sebastian Henne

Alternativen zur OpenText Suche. 29. OpenText Web Solutions Anwendertagung Mannheim, 18. Juni 2012 Sebastian Henne Alternativen zur OpenText Suche 29. OpenText Web Solutions Anwendertagung Mannheim, 18. Juni 2012 Sebastian Henne Übersicht Allgemeines zur Suche Die OpenText Common Search Indexierung ohne DeliveryServer

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Version: 2014 Orientation 1.0 in Objects GmbH Der Sprecher Erik Bamberg (OIO) 2 1 s Aufgaben des Cachings Datenbank

Mehr

Investitionsschutz und Innovationsdruck: Wie muss eine zukunftssichere Plattform aussehen?

<Insert Picture Here> Investitionsschutz und Innovationsdruck: Wie muss eine zukunftssichere Plattform aussehen? Investitionsschutz und Innovationsdruck: Wie muss eine zukunftssichere Plattform aussehen? Jürgen Menge TSBU Middleware Oracle Deutschland GmbH Oracle Forms Heute sehr aktive Kundenbasis

Mehr

Java Forum Stuttgart 2008

Java Forum Stuttgart 2008 Professionelle Open Source SOA in 45 Minuten! Java Forum Stuttgart 2008 Dr. Halil-Cem Gürsoy, CDI AG Der Referent Insgesamt ca. 10 Jahre Beratung, davor Forschung Senior Consultant - JEE Evangelist Hauptsächlich

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

HighQSoft GmbH www.highqsoft.de 21.05.2015. AVALON Distributor. Skalierbarkeit und Ausfallsicherheit. Dieter Müller

HighQSoft GmbH www.highqsoft.de 21.05.2015. AVALON Distributor. Skalierbarkeit und Ausfallsicherheit. Dieter Müller Distributor Skalierbarkeit und Ausfallsicherheit Dieter Müller 1 Übersicht 1) Motivation zur Erstelllung des Distributors 2) Anforderungen für die Implementierung 3) Systemarchitektur Distributor 4) Konfiguration

Mehr

Session Storage im Zend Server Cluster Manager

Session Storage im Zend Server Cluster Manager Session Storage im Zend Server Cluster Manager Jan Burkl System Engineer, Zend Technologies Agenda Einführung in Zend Server und ZSCM Überblick über PHP Sessions Zend Session Clustering Session Hochverfügbarkeit

Mehr

MapReduce in der Praxis

MapReduce in der Praxis MapReduce in der Praxis Rolf Daniel Seminar Multicore Programmierung 09.12.2010 1 / 53 Agenda Einleitung 1 Einleitung 2 3 Disco Hadoop BOOM 4 2 / 53 1 Einleitung 2 3 Disco Hadoop BOOM 4 3 / 53 Motivation

Mehr

Überleben im Funkloch

Überleben im Funkloch Überleben im Funkloch Offlinefähige Apps für Android entwickeln Christian Janz (@c_janz ) christian.janz@bridging-it.de Christian Janz Consultant im Bereich Softwareentwicklung Java/JEE bei Bridging IT

Mehr

Schedulingund Thread-Ausführer

Schedulingund Thread-Ausführer Schedulingund Thread-Ausführer Scheduling Ein Scheduler arbeitet Programmstücke nach einer festen Zeitspanne oder zu einer fixen Zeitpunkt wiederholt oder einmal ab. Notwendigkeiten für Scheduling sind

Mehr

PowerBridge MSSQL Beta

PowerBridge MSSQL Beta SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...

Mehr

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit 1 Hochverfügbarkeit Lernziele: Network Load Balancing (NLB) Failover-Servercluster Verwalten der Failover Cluster Rolle Arbeiten mit virtuellen Maschinen Prüfungsanforderungen von Microsoft: Configure

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Dehnbarer Begriff Verteiltes Suchen mit Elasticsearch

Dehnbarer Begriff Verteiltes Suchen mit Elasticsearch Dehnbarer Begriff Verteiltes Suchen mit Elasticsearch Dr. Halil-Cem Gürsoy halil-cem.guersoy@adesso.de www.adesso.de ...über mich 15 Jahre Entwicklung und Beratung 'Software Architect' bei adesso AG, Dortmund

Mehr

Apache Lucene. Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org

Apache Lucene. Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org Apache Lucene Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org 1 Apache Apache Software Foundation Software free of charge Apache Software

Mehr

Oracle Weblogic Administration Grundlagen

Oracle Weblogic Administration Grundlagen Oracle Weblogic Administration Grundlagen Seminarunterlage Version: 1.07 Version 1.07 vom 14. September 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Integrating Architecture Apps for the Enterprise

Integrating Architecture Apps for the Enterprise Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Motivation und Grundkonzept Inhalt Problem Ursache Herausforderung Grundgedanke Architektur

Mehr

Neue Ansätze der Softwarequalitätssicherung

Neue Ansätze der Softwarequalitätssicherung Neue Ansätze der Softwarequalitätssicherung Googles MapReduce-Framework für verteilte Berechnungen am Beispiel von Apache Hadoop Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik

Mehr

TECHNISCHE PRODUKTINFORMATION CARUSO

TECHNISCHE PRODUKTINFORMATION CARUSO 1111 TECHNISCHE PRODUKTINFORMATION CARUSO TECHNISCHE PRODUKTINFORMATION Seite 0/7 Inhalt 1 Systemdefinition............2 2 Technische Details für den Betrieb von CARUSO......2 2.1 Webserver... 2 2.2 Java

Mehr

PDF-AS Webanwendung Dokumentation

PDF-AS Webanwendung Dokumentation Dokumentation PDF-AS Webanwendung Dokumentation Dokumentation zur PDF-AS Webanwendung ab Version 4 Version 0.5, 10.10.2014 Andreas Fitzek andreas.fitzek@egiz.gv.at Tobias Kellner tobias.kellner@egiz.gv.at

Mehr

Hadoop. Simon Prewo. Simon Prewo

Hadoop. Simon Prewo. Simon Prewo Hadoop Simon Prewo Simon Prewo 1 Warum Hadoop? SQL: DB2, Oracle Hadoop? Innerhalb der letzten zwei Jahre hat sich die Datenmenge ca. verzehnfacht Die Klassiker wie DB2, Oracle usw. sind anders konzeptioniert

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

HVS32 Datenbank Archivierungs Dienst

HVS32 Datenbank Archivierungs Dienst HVS32 Datenbank Archivierungs Dienst Features: HVS32 - vollautomatisierte, zeitgesteuerte Datenbank Archivierung Der HVS32- Datenbank Archivierungs Dienst bietet die Möglichkeit zu bestimmen, wann und

Mehr

Hadoop aus IT-Operations Sicht Teil 1 Hadoop-Grundlagen

Hadoop aus IT-Operations Sicht Teil 1 Hadoop-Grundlagen Hadoop aus IT-Operations Sicht Teil 1 Hadoop-Grundlagen Brownbag am Freitag, den 26.07.2013 Daniel Bäurer inovex GmbH Systems Engineer Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und

Mehr

Allgemeines. Architektur der Anwendung. Server starten. Anmeldung

Allgemeines. Architektur der Anwendung. Server starten. Anmeldung Allgemeines Architektur der Anwendung Grundsätzlich führen viele Wege nach Rom bzw. es gibt nicht den einen Weg, wie die gestellte Aufgabe mit Magnolia gelöst werden muss. Es wäre problemlos möglich, eine

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS. Piotr Kasprzak

ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS. Piotr Kasprzak ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS Piotr Kasprzak Agenda Laufzeitumgebung Java EE (J2EE) Motivation APIs / Technologien JBoss Entwicklungsumgebung Eclipse Ausblick Java EE -

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Viele Köche verderben den Brei, oder?

Viele Köche verderben den Brei, oder? JBoss-Features und Tools: JBoss im Cluster von Dirk Weil und Marcus Redeker Viele Köche verderben den Brei, oder? In der letzten Ausgabe des Java Magazins hatten wir unsere Serie über den JBoss Application

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Autonome Koordination verteilter. seine Bedeutung für E-Government

Autonome Koordination verteilter. seine Bedeutung für E-Government Autonome Koordination verteilter Services Ein neues Paradigma und seine Bedeutung für E-Government A.o. Univ. Prof. Dr. DI eva Kühn TU Wien, Institut für Computersprachen Space Based Computing Group 1040

Mehr

Infinispan - NoSQL für den Enterprise Java Alltag

Infinispan - NoSQL für den Enterprise Java Alltag Infinispan - NoSQL für den Enterprise Java Alltag Version: 1.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Gliederung NoSQL und Java EE Infinispan Integrationsszenarien

Mehr

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013 GTUG Java Arbeitskreis Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung September 2013 Jürgen Depping CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Agenda Was ist OmnivoBase?

Mehr

Gerd Wütherich Martin Lippert. OSGi Service Platform by example

Gerd Wütherich Martin Lippert. OSGi Service Platform by example Gerd Wütherich Martin Lippert OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration Ora Education GmbH www.oraeducation.de info@oraeducation.de Lehrgang: Oracle Application Server 10g R3: Administration Beschreibung: Oracle Application Server 10g Release 3 (10.1.3.1.0) bietet eine neue

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

RAID. Name: Artur Neumann

RAID. Name: Artur Neumann Name: Inhaltsverzeichnis 1 Was ist RAID 3 1.1 RAID-Level... 3 2 Wozu RAID 3 3 Wie werden RAID Gruppen verwaltet 3 3.1 Software RAID... 3 3.2 Hardware RAID... 4 4 Die Verschiedenen RAID-Level 4 4.1 RAID

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Storage-Trends am LRZ. Dr. Christoph Biardzki

Storage-Trends am LRZ. Dr. Christoph Biardzki Storage-Trends am LRZ Dr. Christoph Biardzki 1 Über das Leibniz-Rechenzentrum (LRZ) Seit 50 Jahren Rechenzentrum der Bayerischen Akademie der Wissenschaften IT-Dienstleister für Münchner Universitäten

Mehr

Ein einfacher Server. .NET Remoting. Klassentypen

Ein einfacher Server. .NET Remoting. Klassentypen Einführung - eine Klienten-Applikation kann mit einer Komponente interagieren die hinter einer Grenze liegt - Remoting ermöglicht eine Kommunikation von Komponenten Kontext-, Applikationsdomänen- (leichtgewichtiger

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example Gerd Wütherich Nils Hartmann OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Softwareentwicklung in der industriellen Praxis

Softwareentwicklung in der industriellen Praxis Softwareentwicklung in der industriellen Praxis Cloud-Systeme: Besonderheiten bei Programmierung und Betrieb Steffen Gemkow / Paul Fritsche - ObjectFab GmbH 26.11.2012 Simple is beautiful Don t repeat

Mehr

HÄRTUNG VON WEB-APPLIKATIONEN MIT OPEN-SOURCE-SOFTWARE. Münchener Open-Source-Treffen, Florian Maier, 23.05.2014

HÄRTUNG VON WEB-APPLIKATIONEN MIT OPEN-SOURCE-SOFTWARE. Münchener Open-Source-Treffen, Florian Maier, 23.05.2014 HÄRTUNG VON WEB-APPLIKATIONEN MIT OPEN-SOURCE-SOFTWARE Münchener Open-Source-Treffen, Florian Maier, 23.05.2014 ÜBER MICH 34 Jahre, verheiratet Open Source Enthusiast seit 1997 Beruflich seit 2001 Sicherheit,

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Shibboleth-IdP-Clustering Memcached vs. Terracotta

Shibboleth-IdP-Clustering Memcached vs. Terracotta Shibboleth-IdP-Clustering Memcached vs. Terracotta Manuel Haim, Stand 10/2011 (IdP 2.3.2) Einführung: Shibboleth-IdP-Clustering Grundidee: Mehrere Server bilden hochverfügbaren Cluster Die Gesamtlast verteilt

Mehr

Test nichtfunktionaler Anforderungen in der Praxis am Beispiel einer netzzentrierten Anwendung. Test nichtfunktionaler Anforderungen Agenda

Test nichtfunktionaler Anforderungen in der Praxis am Beispiel einer netzzentrierten Anwendung. Test nichtfunktionaler Anforderungen Agenda Test nichtfunktionaler in der Praxis am Beispiel einer netzzentrierten Anwendung Februar 2011 Test nichtfunktionaler Agenda 1. 2. 3. 4. 5. 6. TAV Tagung Februar 2011 Julia Remmert Public Wincor Nixdorf

Mehr

Der Einsatz von CORBA in verteilten EDA-Tools

Der Einsatz von CORBA in verteilten EDA-Tools Der Einsatz von CORBA in verteilten EDA-Tools Frank Grützmacher Technische Universität Ilmenau Fakultät für Elektrotechnik und Informationstechnik Fachgebiet Mikroelektronische Schaltungen und Systeme

Mehr

Grundlagen des Grid Computing

Grundlagen des Grid Computing Grundlagen des Grid Computing Webservices und Grid Computing Globus Toolkit 4 - Grundlagen ICA Joh.. Kepler Universität t Linz Eine Typische Grid-Applikation (Beispiel) VO Management Service Resource Discovery

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Ora Education GmbH. Lehrgang: Oracle WebLogic Server 11g: Advanced Administration

Ora Education GmbH. Lehrgang: Oracle WebLogic Server 11g: Advanced Administration Ora Education GmbH www.oraeducation.de info@oraeducation.de Lehrgang: Oracle WebLogic Server 11g: Advanced Administration Beschreibung: Oracle WebLogic Server ist eine Java EE-Anwendung, welche die Aufgabe

Mehr