Isolationsprobleme in Java Transaktionen - Java Spektrum

Größe: px
Ab Seite anzeigen:

Download "Isolationsprobleme in Java Transaktionen - Java Spektrum"

Transkript

1 Isolationsprobleme in Java Transaktionen - Java Spektrum Robert Harbach, Wolfgang Rosenstiel, Wilhelm G. Spruth Abstract Using Threads the Java Virtual Machine (JVM) is able to support several applications in parallel. Since, however, the JVM does not enable real application isolation, hosting several applications in one JVM can be critical if these applications represent transactions. Therefore, the common practice found in most Java application servers implies to run one JVM per application. Due to the fact, that this implies an overhead of computational resources, several, most often proprietary, solutions for application isolation in JVMs have been proposed in the past. This publication outlines isolation properties of a new JVM type, called a JVM Server that is integrated into the Customer Information Control System (CICS) [Ray11]. It implements the OSGi framework [OSG11b] and leads to major improvements in terms of application isolation. However, it is also shown that several known problems remain unsolved. Within this paper, solutions to these isolation exposures are proposed. Some of them are not based on the official Java release; others use existing CICS services for program control and are thus not applicable across the board. Zusammenfassung Die Java Virtual Machine (JVM) ist in der Lage, mit Hilfe von Threads mehrere Anwendungsprogramme gleichzeitig zu betreuen. Dies kann kritisch sein, wenn es sich dabei um Transaktionen handelt, da die JVM keine echte Applikationsisolation ermöglicht. Das Hosting eines einzigen Anwendungsprogramms pro JVM ist deshalb eine übliche Vorgehensweise, was häufig einen ineffizienten Verbrauch von Rechenleistung zur Folge hat. Aus diesem Grund wurden bereits mehrere, meist proprietäre, Lösungen zur Applikationsisolation in JVMs vorgestellt. Diese Veröffentlichung beschreibt die Isolationseigenschaften eines neuen Typs der JVM, welche in das Customer Information Control System (CICS) [Ray11] integriert ist. Sie implementiert das OSGi Framework [OSG11b] und erreicht damit wichtige Verbesserungen. Es wird aber gezeigt, dass viele bekannte Isolationsprobleme weiterhin bestehen. Hierzu werden praktische Lösungsansätze als Abhilfe vorgeschlagen. Einige sind nicht Bestandteil des existierenden Java Standards. Andere nutzen bestehende CICS Services zur Kommunikation zwischen Programmen und sind somit nicht universell einsetzbar. Auf die Notwendigkeit einer langfristigen Lösung wird hingewiesen. 1. Einleitung

2 Unternehmen und staatliche Organisationen verfügen heute über eine komplexe IT Infrastruktur. In großen Unternehmen besteht diese häufig aus Tausenden von Servern, zuständig für Aufgaben wie Sicherung des Netzwerks und der Applikationen, Routing und Switching, sowie das Hosting von (Web-)Applikationen. Dabei erfolgt die zentrale Datenhaltung auf einem oder mehreren Mainframe Servern (deutsche Bezeichnung Großrechner) mit dem z/os Betriebssystem. Es besteht eine kritische Abhängigkeit der Unternehmen von ihren Datenbeständen. Deshalb haben Anwendungsprogramme, welche die Datenbestände einer Organisation abändern, meistens transaktionale Eigenschaften. Ein Anwendungsprogramm ist dann eine Transaktion, wenn es die ACID Eigenschaften (Atomicity, Consistency, Isolation, Durability) erfüllt [Gra93]. Transaktionen werden in den meisten Fällen mittels einer Middleware ausgeführt, die als Transaktionsmonitor oder Transaktions-Server bezeichnet wird. Diese stellt unter anderem mit Hilfe von Scheduling- und Synchronisationsmechanismen sicher, dass jede Transaktion strikt die ACID Eigenschaften implementiert. Zudem stellen die meisten Transaktionsmonitore bestimmte Services zur Kommunikation zwischen Anwendungen zur Verfügung. Darüber hinaus wird die Wiederherstellung des Datenbestands nach fehlerhaft ausgeführten Transaktionen ermöglicht (Stichwort Rollback). Verbreitete Transaktionsserver sind Tuxedo (BEA/Oracle), CICS (IBM), MTS (Microsoft) und SAP R/3. In den letzten 12 Jahren entstanden zusätzlich Web Application Server, welche für Transaktionen in der Programmiersprache Java entwickelt wurden. Beispiele sind Weblogic (BEA/Oracle), WebSphere (IBM) und NetWeaver (SAP) sowie Open Source Produkte wie Geronimo, Glassfish und JBoss. Transaktionen sind häufig unternehmenskritische Anwendungen. Wir bezeichnen damit solche Anwendungen, deren fehlerhafte Ausführung zu nicht tolerierbaren Konsequenzen führt. Ein Beispiel ist ein Rundungsfehler in der letzten Dezimalstelle bei der Ausführung einer finanziellen Transaktion. Falls dieser Fehler auftritt, muss er, notfalls in tagelanger manueller Arbeit, identifiziert und rückgängig gemacht werden. 2. Problemdefinition Ein transaktionales Anwendungsprogramm besteht häufig aus den zwei Komponenten: Präsentationslogik und Geschäftslogik (Business Logic). Während die Geschäftslogik die eigentliche Arbeit verrichtet, dient die Präsentationslogik dazu, die Ergebnisse der Geschäftslogik auf eine attraktive Art auf dem Bildschirm darzustellen. In der populären Model View Controller Triade entspricht das Modell der Geschäftslogik und der View der Präsentationslogik [Moe93]. Seit der Einführung von Java im Jahr 1995 existiert ein Interesse, die Sprache auch für transaktionale Anwendungen einzusetzen. Hierzu erschien 1999 die als Java Enterprise Edition (JEE) bezeichnete Erweiterung. Während Java für die Implementierung der Präsentationslogik seitdem einen Siegeszug angetreten hat, erfolgte der Einsatz für die Geschäftslogik unternehmenskritischer Anwendungen bisher nur sehr zögerlich.

3 Hierfür existieren mehrere Gründe. Ein wichtiger Grund sind unzureichende Eigenschaften, welche die Isolation (I in ACID) der Transaktionen sicherstellen. Isolationsprobleme der JVM sind seit Einführung des JEE-Standards bekannt, siehe z. B.: The existing application isolation mechanisms, such as class loaders, do not guarantee that two arbitrary applications executing in the same instance of the JVM will not interfere with one another. Such interference can occur in many places. For instance, mutable parts of classes can leak object references and can allow one application to prevent the others from invoking certain methods. The internalized strings introduce shared, easy to capture monitors. Sharing event and finalization queues and their associated handling threads can block or hinder the execution of some application. Monopolizing of computational resources, such as heap memory, by one application can starve the others [Cza00]. Oder: Java gives the virtuoso thread programmer considerable freedom, but it also presents many pitfalls for less experienced programmers, who can create complex programs that fail in baffling ways [San04]. 3. Bisherige Lösungsansätze In der Vergangenheit sind eine Reihe von Lösungsvorschlägen entwickelt worden. Diese wurden jedoch häufig wieder verworfen. Die meisten Isolationsprobleme einer JVM basieren auf der Tatsache, dass die JVM über keine Ressourcen-Management Funktionen verfügt. Spezifisch wurde die JVM nicht für den Betrieb mehrerer Applikationen entworfen. Aus diesem Grund läuft in vielen Applikationsservern pro Anwendung eine virtuelle Maschine. Dadurch wird sichergestellt, dass Anwendungen sich gegenseitig nicht beeinflussen. Dieses Vorgehen führt jedoch zu einer ineffizienten Nutzung der Ressourcen, insbesondere im Zusammenhang mit der Erstellung und dem Abbau der einzelnen JVMs. Ein vielversprechender Ansatz zur Lösung der Isolationsprobleme war die Application Isolation API [Jav06]. Obwohl dieser Ansatz die meisten Isolationsprobleme beseitigte, wurde die Application Isolation API bisher in keinem offiziellen Java Release veröffentlicht. Ein weiterer interessanter Ansatz zur Lösung bestehender Isolationsprobleme in JVMs war die Persistent Reusable Java Virtual Machine (PRJVM) [IBM01], die speziell für den CICS Transaktions-Server entwickelt wurde. Die PRJVM implementierte einen Mechanismus für die Wiederherstellung des Status der VM vor etwaigen Programmausführungen. Obwohl dieser Ansatz einen Ausgleich zwischen effizientem Ressourcenverbrauch und Applikationsisolation darstellte, wurde die PRJVM von einer neuen JVM-Implementierung, dem JVM Server, ersetzt. Ein JVM Server ist eine Laufzeitumgebung der JVM innerhalb von CICS, die eine Standard JVM mit einem OSGi Framework enthält. Anwendungen laufen innerhalb dieses Frameworks als so genannte Bundles. Ein Bundle besteht aus einem Java Archive (jar) und einer Inhaltsbeschreibung (MANIFEST.MF).

4 Die vorliegende Veröffentlichung beschreibt im folgenden einige der heute existierenden Isolationsprobleme und diskutiert Lösungsmöglichkeiten. Manche Lösungsansätze benötigen hierzu Funktionen der Middleware, in der die JVM eingesetzt wird, und sind deshalb nicht portierbar. Unsere Untersuchungen basieren auf die Version der JVM, welche in dem JVM Server des CICS Transaction Servers Version 4.2 seit 2011 verfügbar ist. CICS (Customer Information Control System) ist ein Transaktionsmonitor der Firma IBM mit Applikationsserver Funktionalität. Die wichtigsten Gründe für den Einsatz von CICS als Applikationsserver sind, neben seiner weiten Verbreitung in Enterprise Systemen, die zahlreichen verfügbaren Services, die unter anderem Transaktionssicherheit ermöglichen. Darüber hinaus agiert CICS als Middleware und ermöglicht dadurch den Betrieb unterschiedlicher Anwendungen ungeachtet der verwendeten Programmiersprache. Damit ist eine einheitliche Kommunikation zwischen Anwendungen möglich. 4. Java Integration in CICS CICS unterstützt seit 1998 das Hosting von Java Applikationen [IBM11-c]. Typisch basiert die Java Unterstützung auf einem Pool von JVMs. Diese Lösung wird in Zukunft durch den JVM Server ersetzt. Im Folgenden werden die zwei verschiedenen Modelle der Java Unterstützung beschrieben. 4.1 Pooled JVMs Ein Pool von JVMs ist eine Laufzeitumgebung für eine vordefinierte Anzahl an JVMs innerhalb vom CICS. Diese Laufzeitumgebung stellt sicher, dass in jeder JVM nur eine Anwendung, bzw. Transaktion, gleichzeitig aktiv ist. Die JVMs werden von den einzelnen Transaktionen seriell verwendet (siehe Abbildung 1). Abbildung 1: Grafische Darstellung der seriellen Verwendung von Pooled JVMs durch mehrere Transaktionen. Nach [IBM11-b]. Wie in [IBM11-b] beschrieben haben die JVMs innerhalb des Pools drei verschiedene Betriebsmodi: Single Use Neuerstellung der JVM nach erfolgter Transaktion

5 Reusable Wiederverwendung der JVM für mehrere aufeinanderfolgende Transaktionen Resettable (auch Persistent Reusable Virtual Machine genannt, siehe [IBM01]) Wiederherstellung des Zustandes der JVM nach erfolgter Transaktion Auf einem Hochleistungsserver werden mehrere hundert oder tausend Transaktionen pro Sekunde verarbeitet. Trotz der Isolationsvorteile des Single Use Modus, ist dieser für viele Anwendungen nicht geeignet, da die Dauer der Erstellung einer neuen JVMs im hohen Millisekundenbereich angesiedelt ist. Auch der Reusable Modus birgt Nachteile. Beispielsweise kann eine Anwendung durch die Modifikation einer statischen Systemvariable einen direkten Einfluss auf nachfolgende Anwendungen haben, falls diese nicht wieder zurückgesetzt wird. Unter Berücksichtigung der Eigenschaft, dass der Resettable Mechanismus ebenfalls Zeit in Anspruch nimmt, kann auch der Resettable Modus nur bedingt als geeigneter Lösungsansatz der Isolationsprobleme betrachtet werden. Die Ressourcenprobleme in Pooled JVMs werden durch den neuen CICS JVM Server verbessert. 4.2 JVM Server Ein JVM Server ist eine Laufzeitumgebung für die Ausführung von CICS Java Applikationen. Diese beinhaltet nur eine JVM und wird von mehreren Anwendungen parallel verwendet. Zudem enthält der JVM Server ein OSGi Framework (siehe Abbildung 2), welches die Isolation und die Modularität von Anwendungen ermöglicht. Dabei wird die Isolation mit Hilfe von Class Loadern bewerkstelligt, eine Methode, die bereits 1997 von Balfanz und Gong [Bal97] beschrieben wurde und auch in JEE verwendet wird [Chi09]. Dieser Ansatz basiert auf der Eigenschaft, dass Objekte, die von unterschiedlichen Class Loadern erstellt wurden, sich in unterschiedlichen Namensräumen befinden und somit keinerlei Kenntnis voneinander besitzen. Wie jedoch in [Mcg99] beschrieben, besteht kein Schutz gegen eine Überschneidung der Namensräume (siehe Kapitel 5). Abbildung 2: Grafische Darstellung der JVM Server Laufzeitumgebung in CICS

6 Das OSGi Framework kapselt Anwendungen bzw. Funktionen (je nach gewünschter Granularität) in sogenannte Bundles, die laut [IBM11-b] auch als Plain Old Java Objects (POJOs) [Fow00] betrachtet werden können. Ein Bundle hat mehrere Zustände, darunter Uninstalled, Installed, Resolved und Active [OSG11b]. Die Administration der Zustände der Bundles innerhalb einer aktiven JVM erfolgt mit Hilfe des OSGi Frameworks. Dies ermöglicht die Installation einer neuen Anwendung in den JVM Server ohne Neustart der JVM. Im Gegensatz dazu ist bei den meisten Java Applikationsservern ein Neustart für ein erfolgreiches Deployment einer neuen Anwendung notwendig. Die Zustände der Bundles werden in der Regel über ein Interface gesteuert die OSGi Konsole. Im Falle des JVM Servers wird dieses Interface durch den CICS Explorer, eine auf Eclipse basierende Anwendung, repräsentiert. Da jedes Bundle einen eigenen Class Loader besitzt, sind Objekte standardmäßig voneinander isoliert. Diese Art der Isolation ist jedoch unvollständig [Mue05]. Im folgenden Abschnitt wird dies näher erläutert. 5. Offene Isolationsprobleme in JVMs Im Rahmen unserer Untersuchung wurden die Erkenntnisse von Müller [Mue05], sowie Erkenntnisse von Parrend und Frenot [Par09], berücksichtig. [Mue05] zeigte bereits 2005 eine größere Anzahl von JEE Isolationsproblemen auf. [Par09] beschreibt Isolationsprobleme des OSGi Frameworks. Basierend auf den Erkenntnissen von [Mue05] und [Par09] wurde in praktischen Versuchen überprüft, welche bekannten Probleme der JVM und dem OSGi Framework in einen transaktionalen System basierend auf CICS anwendbar sind. Hierfür wurde, wie oben beschrieben, die JVM Server Laufzeitumgebung in CICS verwendet. Im Detail wurden die folgenden Probleme praktisch nachgebildet. Die einzelnen Versuche und Ergebnisse inklusive verwendetem Quellcode sind in [Har12-a] beschrieben. Aus Gründen der Vereinfachung werden im folgenden OSGi Bundles als Anwendungen bzw. als Transaktionen interpretiert. 5.1: Probleme mit Systemklassen Da, wie in [Cza00] beschrieben, Systemklassen nicht repliziert werden und die Class Loader Isolation somit keinen Einfluss auf die Systemklassen hat, sind die bekannten Probleme, die auch Müller in [Mue05] beschrieben hat, wie die Manipulation von statischen Feldern oder der Zugriff auf potentiell gefährliche Methoden von Systemklassen auch im JVM Server nicht behoben. Ändert beispielsweise Klasse A aus Bundle X die Dateitrenner (file separator) Systemeigenschaft mit Hilfe der setproperty Methode der Systemkasse System, so ist diese Änderung global und somit für Klasse B aus Bundle Y sichtbar. Des Weiteren ist es nach wie vor möglich, die gesamte JVM mit Hilfe der Methode exit der Systemklasse System (oder der Methode halt der Systemklasse Runtime) zu beenden. Da jede Anwendung in einer JVM einen Thread repräsentiert (siehe [Lin99]), kann zudem die auch Verwendung einiger Methoden der Systemklasse Thread zu großen Problemen führen. Beispielsweise ist es mit Hilfe der Methode getallstacktraces

7 möglich auf einzelne Threads zuzugreifen und diese mit Hilfe der deprecated Methode suspend zu beenden. Der Zugriff auf Systemklassen und deren Methoden kann aus jeder Klasse (und jedem Bundle) stattfinden; somit repräsentiert jeder einzelne genannte Fall ein Isolationsdefizit. 5.2: Überschneidende Namensräume Aufgrund der Benutzung verschiedener Class Loader und der daraus resultierenden Namensräume, sind einzelne Bundles standardmäßig voneinander isoliert. Bei Verwendung eines Features des OSGi Frameworks, dem so genannten wiring (siehe [OSG11b]), kann Isolationseffekt der Class Loader umgangen werden. Wiring ermöglicht generell die Kommunikation zwischen Bundles. Hierfür kann ein Bundle bestimmte Klassen exportieren und diese dadurch für andere Bundles zur Verfügung stellen. In einigen Fällen führt diese Überschneidung der Namensräume jedoch zu Problemen. Exportiert beispielsweise Bundle A die Klasse A, die von verschiedenen Bundles importiert wird, so wird wie in [Lip08] beschrieben basierend auf dem Delegationsmechanismus (siehe [OSG11b]), der gleiche Class Loader für die Erstellung aller Instanzen (aus allen Bundles) der Klasse A verwendet. Statische Variablen aus Klasse A sind somit für alle Instanzen aus allen Bundles global. Noch gravierender ist der konkurrierende Zugriff zwischen Bundles mit Hilfe von Threads. In diesem Fall werden Synchronisationsprobleme zu Isolationsproblemen, da durch Rata Races Bundles einen undefinierten Einfluss aufeinander haben können und somit gegen die Isolationseigenschaft von Transaktionen verstossen. Der Einsatz von Synchronisationsmechanismen kann in diesem Fall nur bedingt als Lösung angesehen werden, da hängende Threads in synchronisierten Methoden zu mehreren hängenden Bundles und somit zu Anwendungsübergreifenden Deadlocks führen können. Dies repräsentiert erneut ein Isolationsdefizit. 5.3: Das Java Native Interface Wie in [She99] beschrieben, ermöglicht Java die Ausführung von platformabhängigem C/C++ Code. Hierfür stellt die JRE eine Schnittstelle namens Java Native Interface (JNI) zur Verfügung. Mit dessen Hilfe können C/C++ Anwendungen aus eine Java Klassen heraus gestartet werden. Wichtig zu erwähnen ist, dass die gestarteten C Anwendungen Zugriff auf den Stack und den Heap der JVM haben. In diesem Zusammenhang hatte Müller [Mue05] gezeigt, dass Probleme wie Segmentation Faults im platformanhängigen Code durch den Absturz der JVM alle aktiven Anwendungen beeinträchtigen. Der gleiche Effekt trat auch in unserer Testumgebung auf. Darüber hinaus wurde auch gezeigt, dass das JNI die unrechtmäßige Manipulation von privaten Variablen auch im CICS Umfeld ermöglicht. Grund hierfür ist die Eigenschaft der Programmiersprache C, die keine Zugriffsklassen (access modifier) für Variablen vorsieht. Folglich ist die Manipulation einer privaten Variable, abgelegt im Stack, möglich. 5.4: Übermäßiger Ressourcenverbrauch Wie bekannt, besitzt Java keinerlei Funktionen zur Verwaltung der Ressourcen. Aus diesem Grund darf jede Applikation innerhalb einer JVM so viele Ressourcen

8 verbrauchen wie nötig. Ein übermäßiger Ressourcenverbrauch hat jedoch enorme Auswirkungen auf andere Applikationen, die in der gleichen JVM aktiv sind. In diesem Zusammenhang wurden übliche Probleme, unter anderem beschrieben in [Par09], wie Endlosschleifen, rekursive Erstellung von Threads und Memory Leaks im CICS Umfeld untersucht. Darüber hinaus wurde ein OSGi spezifisches Problem nach [Par09], die endlose Registrierung von Services, umgesetzt. Recht trivial aber dennoch gravierend sind Endlosschleifen. Diese konsumieren laut [Par09] viel Rechenleistung und können somit zu einer Verlangsamung anderer Applikationen führen. In unserem Versuchsaufbau führten Endlosschleifen sogar zu einem Neustart der JVM und somit zu einem Abbruch aller aktiven Applikationen. Der Grund hierfür ist eine Vorsichtsmaßnahme des Transaktionsmanagers CICS, welches die Endlosschleife erkennt und dadurch einen kontrollierten Neustart der Applikationen hervorruft. Da die JVM jedoch mehrere Applikationen betreut, führt ein Neustart der JVM zu einem Abbruch aller Java Anwendungen. Ein weiteres Beispiel entnommen aus [Par09] für übermäßigen Ressourcenverbrauch ist die rekursive Erstellung von Threads. Diese führen schnell zu JVM Neustarts. Etwas komplexer aber dennoch problematisch sind so genannte Memory Leaks. Ein Memory Leak ist in der Regel ein Fehler im Programmcode, welcher die automatische Speicherbereinigung, die so genannte garbage collgection, für bestimmte Objekte außer Kraft setzt. Wie in [Nyl99] beschrieben, gehen viele Entwickler aufgrund der garbage collection in JVMs davon aus, dass Java frei von Memory Leaks ist. [Din04] beschreibt jedoch, dass Java Objekte nur gelöscht falls auf diese nicht referenziert wird. In einigen Fällen ist dieses Vorgehen nicht effektiv, da nicht referenzierte Objekte sich dennoch im Heap befinden können. In praktischen Versuchen, dokumentiert in [Har12], wurden Memory Leaks im JVM Server umgesetzt. Die Ergebnisse zeigen, dass auch unter der Kontrolle von CICS, Java Memory Leaks zu Isolationsproblemen führen, da entweder der Speicherbereich verkleinert wird oder, falls die maximale Heap Größe überschritten wird, CICS einen JVM Neustart durchführt. Ein ähnliches Verhalten zeigt der JVM Server auch bei unendlichen Service Registrierungen. Wie in [Par09] beschrieben, kann eine Anwendung eine unendliche Menge an OSGi spezifischen Services registrieren. Dies führt ebenfalls zur Überschreitung des maximalen Speichers und somit zu einem Neustart der JVM. Die Ergebnisse zeigen, dass alle untersuchten Probleme zu Denial of Service führten und somit in JVM Servern gültig sind. 5.5: Probleme mit Activator Klassen Das OSGi Framework beinhaltet sogenannte Activator Klassen (siehe [OSG11b]). Diese werden beim Start und beim Beenden der Bundles aufgerufen und dienen dem Entwickler zur Erstellung von Objekten und deren Bereinigung beim Start bzw. beim Beenden des Bundles. Parrend und Frenot haben in [Par09] mit Hilfe dieser Klassen bei Implementierung einer Endlosschleife und eines hängenden Threads ein Denial of Service Problem hervorgerufen. Dies führte zu einer aufgehängte Administrationsoberfläche. Obwohl diese Klassen in JVM Servern nicht benötigt werden (siehe [IBM11-b]), ist deren Verwendung nicht untersagt. In einem praktischen Beispiel wurde das Problem nach [Par09] reproduziert. Trotz der Tatsache, dass der JVM Server explizit nur über das CICS Explorer Interface administriert wird, erhielten wir ähnliche Resultate wie in [Par09]; sprich eine Aufhängung des CICS Explorers.

9 Somit gelten die Probleme aus [Par09] im Bezug auf Activator Klassen uneingeschränkt auf den JVM Server. 5.6: Unrechtmäßige Kontrolle Wie in [OSG11b] beschrieben stellt das OSGi Framework bestimmte Services für die Verwaltung der Zustände von Bundles zur Verfügung. Mit Hilfe dieser kann ein Bundle andere Bundles steuern und gegebenenfalls deinstallieren. Obwohl diese Funktionalität in vielen Fällen sinnvoll scheint, stellt sie aus Sicht der Anwendungsisolation ein Problem dar. Hinzu kommt das in [Par09] beschriebene Problem bezüglich der Fragment Bundles. Ein Fragment stellt eine nachträgliche Erweiterung eines Bundles nach dessen Deployment dar. Dadurch werden Modifikationen am Bundle ohne größere Probleme bewerkstelligt. Laut [OSG11b] sind Übersetzungsdateien für Applikation einer der hauptsächlichen Anwendungsfälle. Nun kann ein Fragment die Sichtbarkeit von Klassen mit Hilfe der wiring Funktionalität (sprich export einer Klasse) eines Bundles verändern ohne dass dieses davon Kenntnis bekommt. Dies kann zu unerlaubten Überschneidungen der Namensräume führen und stellt somit ebenfalls ein Problem im Bezug auf Applikationsisolation dar. 6. Praktische Lösungsansätze Um Abhilfe unter Einbindung bestehender, real existierender, Möglichkeiten im Bezug auf die offenen Isolationsprobleme zu schaffen, wurden praktische Lösungsansätze untersucht. Diese werden im Folgenden aufgelistet (Details in [Har12-a]). 6.1 Statische Programmanalyse Wie in [Rep04] beschrieben, dient statische Programmanalyse dazu alle möglichen Status eine Applikation ohne spezifische Eingabedaten zu überprüfen. In der Regel werden diese Analysen automatisch mit Hilfe von Tools bewerkstelligt. Im Bezug auf Systemklassen stellt die Application Isolation Utility, beschrieben in [IBM11-a], eine passende Lösung dar. Das Tool untersucht den Programmcode einer Java Anwendung und identifiziert Zugriffe auf Methoden der Systemklassen und statische Variable sowie deren Manipulation. Weitere Tools wie FindBugs (siehe [Aye07]) können zur Identifikation von Endlosschleifen verwendet werden und minimieren das Risiko eines Denial of Service (siehe 5.4). 6.2 Java und OSGi Security Java beinhaltet standardmäßig die Möglichkeit zur Programmkontrolle mit Hilfe des Java Security Managers. Nach Aktivierung laufen alle kritischen Operationen, wie Zugriffe auf Systemklassen, lokale Ressourcen oder Threads unter der Kontrolle des

10 Security Managers. Berechtigungen werden als white list in einer policy file vergeben. Darüber hinaus kann der Security Manager nach Belieben erweitert werden. Dadurch kann der Zugriff auf potentiell schädliche Methoden von Systemklassen wie exit unterbunden werden. Neben dem Standard Java Security Manager enthält der JVM Server aufgrund des OSGi Frameworks einen weiteren Security Layer. Dieser ist im Grunde genommen ein modifizierter Security Manager, der OGSi spezifische Berechtigungen, beispielsweise zur gegenseitigen Kontrolle der Bundles, beinhaltet. Damit können alle Probleme im Bezug auf Systemklassen (siehe 5.1) sowie alle Probleme im Bezug auf unrechtmäßige Kontrolle (siehe 5.6), gelöst werden Monitoring Obwohl die meisten statischen Programmanalyse-Tools offensichtliche Probleme wie Endlosschleifen erkennen, ist das Problem des übermäßigen Ressourcenverbrauchs bei deren Einsatz nicht vollständig gelöst. Probleme wie hängende Threads, Memory Leaks oder simple übermäßige Nutzung des Speichers bleiben offen. Um diesbezüglich dennoch Abhilfe zu schaffen, eigen sich Monitoring Tools, die den Zustand der JVM in Echtzeit überwachen. In unserer Testumgebung auf CICS bewährten sich der JVM Server spezifische Monitor namens Java Health Center (siehe [IBM]). Diese erkannten Memory Leaks und größeren Speicherverbrauch in Echtzeit. Trotz der Tatsache, dass Monitoring manuelle Interaktion voraussetzt, ist diese Lösung als praktischer Lösungsansatz die einzige derzeitige Möglichkeit um Denial of Service spezifische Isolationsdefizite zu beheben. 6.4 CICS Services In einigen Fällen ist es unabdingbar platformabhängigen Code zu verwenden. Da CICS als Middleware zwischen Anwendungen agiert und somit spezifische Services zur Kommunikation zwischen Applikationen ermöglicht, ist die Lösung aller Probleme im Bezug auf das Java Native Interface (siehe 5.3), die Verwendung von CICS Services zur Kommunikation anstatt des JNI. Mit Hilfe dieser Services ist selbst die Kommunikation transaktional und bringt somit einige Vorteile mit sich. 7. Schlussfolgerung und Ausblick Es wurde gezeigt, dass die meisten bekannten Isolationsprobleme auch innerhalb eines transkationsbasierten Enterprise Umfelds gültig sind. Die meisten untersuchten Probleme können jedoch mit Java oder Framework spezifischen Bordmitteln gelöst werden. Ungelöste Probleme wie Endlosschleifen oder hängende Threads können zumindest mit bestimmten Tools identifiziert werden. Allein hängende Threads in Activator Klassen konnten weder behoben noch zur Laufzeit identifiziert werden, da ein hängendes Management Interface, in unserer

11 Testumgebung der CICS Explorer auch das live Monitoring, in unserem Fall das Java Health Center, beeinflusst. Trotz all der Vorteile bringen die Lösungsansätze auch einige Nachteile mit sich. Statische Programmanalyse beispielsweise garantiert nicht die Erkennung potentieller Probleme und kann somit nicht als verlässliche Lösung angesehen werden. Wie in [Her05] gezeigt, kann der Java Security Manager eine Applikation stark verlangsamen; und obwohl keine vergleichbaren Publikationen zum OSGi Security Layer verfügbar sind, kann davon ausgegangen werden, dass diese Verlangsamung auch im Falle des OSGi Security Layers auftreten kann. Auch CICS Services kommen nicht ohne Nachteile, denn sollte eine Anwendungen diese tatsächlich verwenden, ist einer der wichtigsten Vorteile von Java, die Platformunabhängigkeit, nicht mehr gegeben, da stets CICS als Middleware für die Anwendung vorausgesetzt wird. Es bleibt jedoch abzuwarten welche Entwicklungen im Bereich des OSGi Frameworks zukünftig erfolgen werden. Ein spekulativer Ansatz zur Lösung der vorgestellten Defizite wird in einer parallel im Informatik Spektrum erscheinenden Veröffentlichung [Har12-b] beschrieben.[r.h.1] Ein vielversprechender nicht spekulativer Ansatz, erwähnt in einem frühen Entwurf der aktuellen OSGi Framework Spezifikation (siehe [OSG10]), beschreibt die Isolation von Bundles durch Erstellung mehrerer sogenannter Nested Frameworks. Diese sind komplett voneinander isoliert und kommunizieren nur über standardisierte Schnittstellen miteinander und könnten somit unter Umständen als Alternative zum OSGi Security Layer dienen. 1. Literatur [Aye07] N. Ayewah, W. Pugh, J. D. Morgenthaler, J. Penix, Y. Zhou, Evaluating Static Analysis Defect Warnings On Production Software. In: Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, PASTE 07, S. 1 8, New York, NY, USA, ACM. [Bal97] D. Balfanz, L. Gong, Experience with Secure Multi-Processing in Java. Technical report, Department of Computer Science, Princeton University September [Chi09] R. Chinnici, B. Shannon, Java Platform, Enterprise Edition (JavaEE) Specification, v6, October fr-oth-jspec/ [Cza00] G. Czajkowski, Application Isolation in the Java Virtual Machine. In: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. New York : ACM Press, 2000, S

12 [Din04] A. Dingle. Reclaiming Garbage and Education: Java Memory Leaks. J. Comput. Small Coll., 20:8-16, Dezember 2004 [IBM] IBM Corp, IBM Monitoring and Diagnostic Tools for Java - Health Center Version 2.0. Webseite. [IBM01] IBM Corp, New IBM Technology featuring Persistent Reusable Java Virtual Machines, Oktober ibm.com/systems/resources/servers_eserver_zseries_software_java_pdf_prjvm13.pdf [IBM11-a] IBM Corp, CICS Transaction Server for z/os Version 4 Release 2: Upgrading from CICS TS Version 3.1, c/dfheg_pdf.pdf [IBM11-b] IBM Corp, Java Applications in CICS (Version 4 Release 2), pj_pdf.pdf [IBM11-c] IBM Corp, Techreport: History of CICS. Webseite, https://www- 304.ibm.com/support/docview.wss?uid=swg [Gra93] J. Gray, A. Reuter, Transaction Processing. Morgan, Kaufman, 1993 [Fow00] M. Fowler, Webseite, [Fri02] G. Friesen. Java 2 by Example. Que, Indianapolis, IN, 2nd edition, 2002 [Har12-a] R. Harbach, CICS JVM Server Application Isolation. Masterarbeit am Wilhelm-Schickard-Institut für Informatik der Universität Tübingen, März 2012 [Har12-b] R. Harbach, W. Rosenstiel, W. Spruth, Isolation in Java Transaktionen, INFORMATIK SPEKTRUM Veröffentlichung erscheint demnächst. [Her05] A. Herzog, N. Shahmehri, Performance of the Java security manager. Computers & Security, 24(3): , RP pdf [Lin99] T. Lindholm, F. Yellin. The Java Virtual Machine Specification. Addison- Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd ed edition, [Lip08] M. Lippert. Classloading and Type Visibility in OSGi. Presentation slides, ClassloadingTypeVisibilityOSGi.pdf

13 [Mcg99] G. McGraw, E. Felden. Securing Java. John Wiley & Sons, Inc., Januar [Moe93] Hanspeter Mössenböck. Objektorientierte Programmierung. Springer, 1993, ISBN [Mue05] J. Mueller, Anwendungs- und Transaktionsisolation unter Java, Mai [Nyl99] J. Nylund. Memory Leaks in Java Programs. Application Development Trends, Dezember [OSG10] OSGi Alliance, Version 4.3 Core Early Draft 1, April core-4.3-early-draft1.pdf [OSG11b] OSGi Alliance, OSGi Service Platform Core Specification Release 4 Version 4.3, April [Par09] P. Parrend, S. Frénot, Security benchmarks of OSGi platforms: towards Hardened OSGi. Softw. Pract. Exper., 39: , April 2009 [Ray11] C. Rayns, S. Bertram, G. Bogner, C. Carlin, A. Clark, A. Ferrell, G. Keehn, P. Klein, R. Lee, E. Woerner, CICS Transaction Server from Start to Finish. IBM International Technical Support Organization (ITSO), December [Rep04] T. Reps, M. Sagiv, R. Wilhelm, Static Program Analysis via 3-Valued Logic. In Ra jeev Alur and Doron Peled, editors, Computer Aided Verification, volume 3114 of Lecture Notes in Computer Science, S Springer Berlin / Heidelberg, [San04] B. Sandén, Coping with Java Threads. IEEE Computer, Vol. 37, Nr. 4, April 2004, S. 20 [She99] L. Sheng, The Java Native Interface: Programmer s Guide and Specification. Java series. Addison-Wesley, Reading, MA, Alle in digitaler Form verfügbaren Aufsätze sind zusätzlich in einem Mirror unter abrufbar.

Isolation in Java Transaktionen

Isolation in Java Transaktionen Isolation in Java Transaktionen Robert Harbach, Wolfgang Rosenstiel, Wilhelm G. Spruth Wilhelm-Schickard-Institut für Informatik, Eberhard Karls Universität Tübingen robert.harbach@gmail.com, {rosenstiel,

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

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

SpringSource Enterprise & Application Platform: Wo geht die Reise hin?

SpringSource Enterprise & Application Platform: Wo geht die Reise hin? SpringSource Enterprise & Application Platform: Wo geht die Reise hin? Eberhard Wolff Regional Director & Principal Consultant SpringSource Copyright 2007 SpringSource. Copying, publishing or distributing

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

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

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

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com z/os Explorer Agenda Introduction and Background Why do you want z/os Explorer? What does z/os Explorer do? z/os Resource Management

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Oracle Fusion Middleware Ordnung im Ganzen Matthias Weiss Direktor Mittelstand Technologie ORACLE Deutschland B.V. & Co. KG 2 Agenda Begriffe & Ordnung Fusion Middleware Wann, was, warum Beispiel für

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Connection Architecture Teil 3

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Connection Architecture Teil 3 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Connection Architecture Teil 3 CICS Transaction Gateway el0100 copyright W. G. Spruth,

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

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Connection Architecture Teil 4 JCA

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Connection Architecture Teil 4 JCA UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Connection Architecture Teil 4 JCA el0100 copyright W. G. Spruth, wgs 04-09 Enterprise

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

WebSphere Portal 8 Migrationen

WebSphere Portal 8 Migrationen WebSphere Portal 8 Migrationen Enrico Regge IT Specialist reggeenr@de.ibm.com André Hagemeier IT Specialist andre.hagemeier@de.ibm.com 2014 IBM Corporation Agenda Suche & Security Theme WCM Applikationen

Mehr

Java Performance Tuning

Java Performance Tuning Seminarunterlage Version: 5.04 Version 5.04 vom 16. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Implementierung der Jikes Research Virtual Machine

Implementierung der Jikes Research Virtual Machine Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik

Mehr

White Paper - Integration von PRO Tips Recovery Tools in RiZone

White Paper - Integration von PRO Tips Recovery Tools in RiZone White Paper - Integration von PRO Tips Recovery Tools in RiZone Jörg Tonn (Hönigsberg & Düvel Datentechnik) Thorsten Weller Sarah Dietrich Copyright 2010 All rights reserved. Rittal GmbH & Co. KG Auf dem

Mehr

IDS Lizenzierung für IDS und HDR. Primärserver IDS Lizenz HDR Lizenz

IDS Lizenzierung für IDS und HDR. Primärserver IDS Lizenz HDR Lizenz IDS Lizenzierung für IDS und HDR Primärserver IDS Lizenz HDR Lizenz Workgroup V7.3x oder V9.x Required Not Available Primärserver Express V10.0 Workgroup V10.0 Enterprise V7.3x, V9.x or V10.0 IDS Lizenz

Mehr

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Zielsetzung: System Verwendung von Cloud-Systemen für das Hosting von online Spielen (IaaS) Reservieren/Buchen von Resources

Mehr

Dynamische Programmiersprachen. David Schneider david.schneider@hhu.de STUPS - 25.12.02.50

Dynamische Programmiersprachen. David Schneider david.schneider@hhu.de STUPS - 25.12.02.50 Dynamische Programmiersprachen David Schneider david.schneider@hhu.de STUPS - 25.12.02.50 Organisatorisches Aufbau: Vorlesung 2 SWS Übung Kurzreferat Projekt Prüfung Übung wöchentliches Aufgabenblatt in

Mehr

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Übung 8: Semaphore in Java (eigene Implementierung)

Übung 8: Semaphore in Java (eigene Implementierung) Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend

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

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 4. Schnittstellen

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 4. Schnittstellen UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Enterprise Edition Teil 4 Schnittstellen el0100 copyright W. G. Spruth, wgs 04-10

Mehr

Eclipse und Java Einheit 01: Einführung in Eclipse

Eclipse und Java Einheit 01: Einführung in Eclipse Eclipse und Java Einheit 01: Einführung in Eclipse Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Hintergrundwissen

Mehr

EEX Kundeninformation 2007-09-05

EEX Kundeninformation 2007-09-05 EEX Eurex Release 10.0: Dokumentation Windows Server 2003 auf Workstations; Windows Server 2003 Service Pack 2: Information bezüglich Support Sehr geehrte Handelsteilnehmer, Im Rahmen von Eurex Release

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Ist Ihre Mainframe Anwendungs- Umgebung wirklich so effizient, wie Sie denken?

Ist Ihre Mainframe Anwendungs- Umgebung wirklich so effizient, wie Sie denken? Ist Ihre Mainframe Anwendungs- Umgebung wirklich so effizient, wie Sie denken? Cross-Enterprise APM und Application Performance Management 30. Oktober 2012 Agenda Cross-Enterprise APM Mainframe Application

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

.NET und wieder eine Middleware Architektur?

.NET und wieder eine Middleware Architektur? .NET und wieder eine Middleware Architektur? Volker Birk CCC ERFA Ulm vb@ebios.de Volker Birk, vb@ebios.de 1 .NET na und?.net soll die Architektur im Internet werden meint Microsoft. Genau so wie Windows?.NET

Mehr

IT-Monitoring braucht Sicherheit Sicherheit braucht Monitoring. Günther Klix op5 GmbH - Area Manager D/A/CH

IT-Monitoring braucht Sicherheit Sicherheit braucht Monitoring. Günther Klix op5 GmbH - Area Manager D/A/CH IT-Monitoring braucht Sicherheit Sicherheit braucht Monitoring Günther Klix op5 GmbH - Area Manager D/A/CH Technische Anforderungen an IT Immer komplexere & verteiltere Umgebungen zunehmend heterogene

Mehr

Sicherheit in Android

Sicherheit in Android Motivation Aufbau Sicherheit Ausblick Quellen Sicherheit in Android Peter Salchow INF-M2 - Anwendungen 1 Sommersemester 2008 Department Informatik HAW Hamburg 20. Mai 2008 Peter Salchow Sicherheit in Android

Mehr

(Prüfungs-)Aufgaben zum Thema Scheduling

(Prüfungs-)Aufgaben zum Thema Scheduling (Prüfungs-)Aufgaben zum Thema Scheduling 1) Geben Sie die beiden wichtigsten Kriterien bei der Wahl der Größe des Quantums beim Round-Robin-Scheduling an. 2) In welchen Situationen und von welchen (Betriebssystem-)Routinen

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Titelmasterformat durch Klicken bearbeiten

Titelmasterformat durch Klicken bearbeiten Titelmasterformat durch Klicken Titelmasterformat durch Klicken Die neue HDS Panama Serie Enterprise Plattform für den gehobenen Mittelstand Andreas Kustura, Silvio Weber Kramer & Crew GmbH & Co. KG Titelmasterformat

Mehr

Introducing PAThWay. Structured and methodical performance engineering. Isaías A. Comprés Ureña Ventsislav Petkov Michael Firbach Michael Gerndt

Introducing PAThWay. Structured and methodical performance engineering. Isaías A. Comprés Ureña Ventsislav Petkov Michael Firbach Michael Gerndt Introducing PAThWay Structured and methodical performance engineering Isaías A. Comprés Ureña Ventsislav Petkov Michael Firbach Michael Gerndt Technical University of Munich Overview Tuning Challenges

Mehr

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen Sommersemester 2013 Michael Theis, Lehrbeauftragter Java EE Spezifikation definiert ein Programmiermodell für Applikationen die Eigenschaften

Mehr

Architektur iterativ auf Basis von OSGi entwickeln

Architektur iterativ auf Basis von OSGi entwickeln Architektur iterativ auf Basis von OSGi entwickeln Ein Vortrag von Sven Jeppsson (syngenio AG) und Karsten Panier (Signal Iduna Gruppe) 1 Inhalt Motivation Architektur Architektur Evolution OSGi Refactoring

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

Mehr

Webinar: Einführung in ICEfaces

Webinar: Einführung in ICEfaces Webinar: Einführung in ICEfaces präsentiert von VOIP-Audio ist standardmässig aktiviert Alternatives Einwählen: +41 (0) 415 0008 65 ICESOFT TECHNOLOGIES INC ICESOFT Donnerstag, TECHNOLOGIES 26. März 2009

Mehr

VERTRAUENSWÜRDIGE IDENTITÄTEN FÜR DIE CLOUD

VERTRAUENSWÜRDIGE IDENTITÄTEN FÜR DIE CLOUD VERTRAUENSWÜRDIGE IDENTITÄTEN FÜR DIE CLOUD Dr. Detlef Hühnlein, Johannes Schmölz ecsec GmbH, Sudetenstraße 16, D96247 Michelau Zusammenfassung 1 Einleitung che Schwachstellen enthalten. 44 FraunhoferGesellschaft

Mehr

SLA4D-Grid! Einführung, Konzepte und Ergebnisse

SLA4D-Grid! Einführung, Konzepte und Ergebnisse Service Level Agreements for D-Grid SLA4D-Grid! Einführung, Konzepte und Ergebnisse Philipp Wieder, Service Computing, TU Dortmund SLAs in Grid und Cloud Workshop 09. September 2010, Karlsruhe, DE http://www.sla4d-grid.de

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com

BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com Bernd Rücker camunda services GmbH Was ist Prozessautomatisierung? Das Ganze ist ein BPMN Prozess Aber auch (und

Mehr

Employment and Salary Verification in the Internet (PA-PA-US)

Employment and Salary Verification in the Internet (PA-PA-US) Employment and Salary Verification in the Internet (PA-PA-US) HELP.PYUS Release 4.6C Employment and Salary Verification in the Internet (PA-PA-US SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Mehr

Die in diesem Dokument aufgelisteten Anforderungen an das Betriebssystem schließen die aktuellen Patches und Servivepacks ein.

Die in diesem Dokument aufgelisteten Anforderungen an das Betriebssystem schließen die aktuellen Patches und Servivepacks ein. Systemanforderungen Die unten angeführten Systemanforderungen für Quark Publishing Platform sind grundlegende Anforderungen, Ihre Benutzerzahl, Asset-Anzahl und Anzahl der Asset-Versionen beeinflussen

Mehr

Archive / Backup System für OpenVMS

Archive / Backup System für OpenVMS Archive / Backup System für OpenVMS DECUS Symposium 2002 Bonn Vortrag-Nr. 3C04 Günther Fröhlin Compaq Computer Corporation Colorado Springs, USA 1 Highlights V4.0 Auslieferung Januar 2002 Hauptversion

Mehr

Security for Safety in der Industrieautomation Konzepte und Lösungsansätze des IEC 62443

Security for Safety in der Industrieautomation Konzepte und Lösungsansätze des IEC 62443 Security for Safety in der Industrieautomation Konzepte und Lösungsansätze des IEC 62443 Roadshow INDUSTRIAL IT SECURITY Dr. Thomas Störtkuhl 18. Juni 2013 Folie 1 Agenda Einführung: Standard IEC 62443

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Transaction Processing Teil 3

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Transaction Processing Teil 3 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Transaction Processing Teil 3 CICS und Java Standard Edition el0100 copyright W.

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

Oracle Business Process Analysis Suite. Gert Schüßler Principal Sales Consultant

<Insert Picture Here> Oracle Business Process Analysis Suite. Gert Schüßler Principal Sales Consultant Oracle Business Process Analysis Suite Gert Schüßler Principal Sales Consultant 1 Geschäftsprozesse Zerlegung am Beispiel Kreditvergabe Antrag aufnehmen Antrag erfassen Schufa Kunden

Mehr

Business Activity Monitoring Overall, Real Time Monitoring Daniel Jobst, TietoEnator Michael Herr, Deutsche Post SOPSOLUTIONS

Business Activity Monitoring Overall, Real Time Monitoring Daniel Jobst, TietoEnator Michael Herr, Deutsche Post SOPSOLUTIONS Business Activity Monitoring Overall, Real Time Monitoring Daniel Jobst, TietoEnator Michael Herr, Deutsche Post SOPSOLUTIONS CITT Expertengespräch TietoEnator 2006 Page 1 Data Freshness and Overall, Real

Mehr

SE2-10-Entwurfsmuster-2 15

SE2-10-Entwurfsmuster-2 15 Architektur und Skalierbarkeit SE2-10-Entwurfsmuster-2 15 Skalierbarkeit Skalierbarkeit bedeutet die Anpassung einer Software an wachsende Last: Interaktionsfrequenz Nutzerzahl Anpassung durch Hinzufügen

Mehr

Standardsoftware. SAP Basisarchitektur. Prof. Dr. Bernhard Schiefer 2-1

Standardsoftware. SAP Basisarchitektur. Prof. Dr. Bernhard Schiefer 2-1 Standardsoftware SAP Basisarchitektur Prof. Dr. Bernhard Schiefer 2-1 SAP Client/Server Dreistufige Rechnerhierarchie Lesen in der DB und Aktualisierung der Puffer Datenbankänderung Zentrale DB (speichert

Mehr

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf.

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf. 1 The zip archives available at http://www.econ.utah.edu/ ~ ehrbar/l2co.zip or http: //marx.econ.utah.edu/das-kapital/ec5080.zip compiled August 26, 2010 have the following content. (they differ in their

Mehr

Application Performance Management. Auch eine Frage des Netzwerkes?

Application Performance Management. Auch eine Frage des Netzwerkes? Application Performance Management Auch eine Frage des Netzwerkes? Agenda Architektur von Webanwendungen Lange Applikationsantwortzeiten Application Performance Management (APM) Netzwerkbasiertes APM Serverbasiertes

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for

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

Version 2.0. Copyright 2013 DataCore Software Corp. All Rights Reserved.

Version 2.0. Copyright 2013 DataCore Software Corp. All Rights Reserved. Version 2.0 Copyright 2013 DataCore Software Corp. All Rights Reserved. VDI Virtual Desktop Infrastructure Die Desktop-Virtualisierung im Unternehmen ist die konsequente Weiterentwicklung der Server und

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

Cloud Computing. Betriebssicherheit von Cloud Umgebungen C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y

Cloud Computing. Betriebssicherheit von Cloud Umgebungen C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y Cloud Computing Betriebssicherheit von Cloud Umgebungen Urs Zumstein Leiter Performance Care Team Urs.Zumstein@DevoTeam.ch 079 639 42 58 Agenda Definition von Cloud Services Anforderungen an die Betriebssicherheit

Mehr

8.4 Überblick und Vergleich weiterer ERP-Systeme. G Oracle Applications 11 G PeopleSoft 7 G J.D. Edwards One World G BaanERP

8.4 Überblick und Vergleich weiterer ERP-Systeme. G Oracle Applications 11 G PeopleSoft 7 G J.D. Edwards One World G BaanERP 8.4 Überblick und Vergleich weiterer ERP-Systeme G Oracle Applications 11 G PeopleSoft 7 G J.D. Edwards One World G BaanERP Kapitel 8: ERP-Einführung 32 Architektur von Oracle Applications 11 G Logische

Mehr

XML Template Transfer Transfer project templates easily between systems

XML Template Transfer Transfer project templates easily between systems Transfer project templates easily between systems A PLM Consulting Solution Public The consulting solution XML Template Transfer enables you to easily reuse existing project templates in different PPM

Mehr

Algorithms for graph visualization

Algorithms for graph visualization Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

Das Beste aus zwei Welten

Das Beste aus zwei Welten : Das Beste aus zwei Welten Das Beste aus zwei Welten Aufruf von R Funktionen mit PROC IML KSFE 2012 08.03.2012 ist IT Dienstleister für Business Intelligence und Datenanalyse gibt es seit über 20 Jahren

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

SPARC LDom Performance optimieren

SPARC LDom Performance optimieren SPARC LDom Performance optimieren Marcel Hofstetter hofstetter@jomasoft.ch http://www.jomasoftmarcel.blogspot.ch Mitgründer, Geschäftsführer, Enterprise Consultant JomaSoft GmbH 1 Inhalt Wer ist JomaSoft?

Mehr

SARA 1. Project Meeting

SARA 1. Project Meeting SARA 1. Project Meeting Energy Concepts, BMS and Monitoring Integration of Simulation Assisted Control Systems for Innovative Energy Devices Prof. Dr. Ursula Eicker Dr. Jürgen Schumacher Dirk Pietruschka,

Mehr

Distributed testing. Demo Video

Distributed testing. Demo Video distributed testing Das intunify Team An der Entwicklung der Testsystem-Software arbeiten wir als Team von Software-Spezialisten und Designern der soft2tec GmbH in Kooperation mit der Universität Osnabrück.

Mehr

Webcast: Java Nagios Monitoring in der Praxis

Webcast: Java Nagios Monitoring in der Praxis Webcast: Java Nagios Monitoring in der Praxis Jmx4Perl und Jolokia Referent: Dr. Roland Huß Moderation: Gerhard Laußer ConSol* Software GmbH ConSol* Zentrale in München Geschäftsstelle in Düsseldorf, Tochterfirmen

Mehr

Customer-specific software for autonomous driving and driver assistance (ADAS)

Customer-specific software for autonomous driving and driver assistance (ADAS) This press release is approved for publication. Press Release Chemnitz, February 6 th, 2014 Customer-specific software for autonomous driving and driver assistance (ADAS) With the new product line Baselabs

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit Hochschule für Technik und Architektur Chur Dr. Bruno Studer Studienleiter NDS Telecom, FH-Dozent bruno.studer@fh-htachur.ch 1 GSM: 079/610 51 75 Agenda Vorteile von Java und Konvergenz Service Creation

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

Security Technologien in Java EE 6

Security Technologien in Java EE 6 Security Technologien in Java EE 6 Java Forum Stuttgart 2010 Sebastian Glandien Acando GmbH sebastian.glandien@acando.de Agenda I. Einleitung II. Java Authentication SPI for Containers (JSR-196) I. Message

Mehr

Eclipse User Interface Guidelines

Eclipse User Interface Guidelines SS 2009 Softwarequalität 06.05.2009 C. M. Bopda, S. Vaupel {kaymic/vaupel84}@mathematik.uni-marburg.de Motivation (Problem) Motivation (Problem) Eclipse is a universal tool platform - an open, extensible

Mehr

Oracle VM Support und Lizensierung. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best.

Oracle VM Support und Lizensierung. best Open Systems Day April 2010. Unterföhring. Marco Kühn best Systeme GmbH marco.kuehn@best. Oracle VM Support und Lizensierung best Open Systems Day April 2010 Unterföhring Marco Kühn best Systeme GmbH marco.kuehn@best.de Agenda Oracle VM 2.2 Oracle VM 3.0 Oracle DB in virtualisierten Umgebungen

Mehr

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10 Prototypvortrag Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning Projektseminar WS 2009/10 Eugen Fot, Sebastian Kenter, Michael Surmann AG Parallele

Mehr

Softwareanforderungen für Microsoft Dynamics CRM Server 2015

Softwareanforderungen für Microsoft Dynamics CRM Server 2015 Softwareanforderungen für Microsoft Dynamics CRM Server 2015 https://technet.microsoft.com/de-de/library/hh699671.aspx Windows Server-Betriebssystem Microsoft Dynamics CRM Server 2015 kann nur auf Computern

Mehr

Einführung in den NetBeans Profiler

Einführung in den NetBeans Profiler Let s talk about IT Wenn s mal wieder länger dauert Einführung in den NetBeans Profiler Dominik Hofmann 14.01.2010 Themenüberblick Themen Grundlagen und Features des NetBeans Profilers CPU Profiling Memory

Mehr

CC: Herausforderungen Konsequenzen & Aufgaben

CC: Herausforderungen Konsequenzen & Aufgaben KOGIS CC: Herausforderungen Konsequenzen & Aufgaben Aus 5 Jahren Erfahrung geo.admin.ch SATW 10.9.2014 Hanspeter Christ & David Oesch KOGIS CC: Herausforderungen Konsequenzen & Aufgaben Aus 5 Jahren Erfahrung

Mehr

Software-SPS: Software PLC: Vom Industrie-PC fähigen From industrial PCzur to leistungs high-performance Steuerung controller Zur Visualisierung und Bedienung von PCs are used in countless machines and

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

11.10.2010. Eine Einführung - FH Krefeld WS2010-11. NetBeans IDE

11.10.2010. Eine Einführung - FH Krefeld WS2010-11. NetBeans IDE NetBeans IDE 1 Entwicklungsumgebung: komplett in Java geschrieben läuft auf NetBeans Plattform wurde hauptsächlich für die Programmiersprache Java entwickelt unterstützt unter anderem C, C++ und dynamische

Mehr

Herzlich Willkommen. Christian Rudolph IT-Consultant VMware Certified Professional

Herzlich Willkommen. Christian Rudolph IT-Consultant VMware Certified Professional Herzlich Willkommen Christian Rudolph IT-Consultant VMware Certified Professional Agenda VMware Firmenüberblick VMware Produktüberblick VMware Virtualisierungstechnologie VMware Server im Detail VMware

Mehr

A Platform for Complex Event Processing

A Platform for Complex Event Processing A Platform for Complex Event Processing Einführung Business Process Technology Prof. Dr. Mathias Weske Matthias Kunze Nico Herzberg Business Process Technology Seit 2001 Untersuchung realer Probleme des

Mehr

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

Mehr

shype: Hypervisor Security Architecture

shype: Hypervisor Security Architecture BSI Sicherheitskongress 2005 shype: Hypervisor Security Architecture Reiner Sailer Secure Systems Department IBM T. J. Watson Research Center, NY IBM May 2005 2002 IBM Corporation 2005 IBM Corporation

Mehr

- Shared / Multitainant. - Infrastructure as a Service. - Platform as a Service

- Shared / Multitainant. - Infrastructure as a Service. - Platform as a Service 26. Mai 2011 Qualifizierung - Shared / Multitainant - Infrastructure as a Service - Platform as a Service Program Start Minimum 5 VCP, 5 VSPs und Vertrag mit Aggregator über 18.000 oder höheren Punkteplan

Mehr