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

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Neues von Oracle Gut zu wissen...

Neues von Oracle Gut zu wissen... Neues von Oracle Gut zu wissen... Lorenz Keller Leiter Systemberatung - Server Technology Customer Center - Nord lorenz.keller@oracle.com The following is intended to outline our

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

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

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

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

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

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

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

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

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

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

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

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

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

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

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Eclipse Runtime (OSGi) als Plattform eines Swing Rich Client Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Zu meiner Person

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Java Applet Alternativen

Java Applet Alternativen White Paper Java Applet Alternativen Version 1.0, 21.01.2014 Tobias Kellner tobias.kellner@egiz.gv.at Zusammenfassung: Aufgrund diverser Meldungen über Sicherheitslücken in Java haben in letzter Zeit Browser-Hersteller

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

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

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

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

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

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

OSGi-basierte Webapplikationen Ein Erfahrungsbericht OSGi-basierte Webapplikationen Ein Erfahrungsbericht Zürich, 18. März 2009 Pascal Nüesch, Software Engineer 1 www.namics.com Zu meiner Person» Lehre als Elektroniker mit Schwerpunkt SW-Entwicklung» Java

Mehr

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt OERA OpenEdge Reference Architecture Mike Fechner PUG Infotag 19. Mai 05 Frankfurt Überblick OERA Separated presentation and integration layers Common business logic with advanced models Data access abstracted

Mehr

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1 Grid-Systeme Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit 07.06.2002 Grid Systeme 1 Gliederung Vorstellung verschiedener Plattformen Globus

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

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation

Mehr

Microsoft Azure Fundamentals MOC 10979

Microsoft Azure Fundamentals MOC 10979 Microsoft Azure Fundamentals MOC 10979 In dem Kurs Microsoft Azure Fundamentals (MOC 10979) erhalten Sie praktische Anleitungen und Praxiserfahrung in der Implementierung von Microsoft Azure. Ihnen werden

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

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

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

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II Marketing Update Enabler / ENABLER aqua / Maestro II Quartal 01/2012 1 Kommentar des Herausgebers Liebe Kunden und Partner, dieser Marketing Update gibt Ihnen einen kurzen Überblick über die aktuell verfügbaren

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

Einführung in z/os und OS/390

Einführung in z/os und OS/390 Einführung in z/os und OS/390 Web-Services und Internet-Anwendungen für Mainframes von Paul Herrmann Wilhelm Gustav Spruth 3., verbesserte und erweiterte Auflage Oldenbourg Verlag München Vorwort VII 1

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

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

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

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

Aspektorientierte Middleware Florian Wagner

Aspektorientierte Middleware Florian Wagner Anwendungen der Aspektorientierung (5) Übersicht Middleware? Middleware-Concerns Java 2 Enterprise Edition AO Implementierung AOP & JBoss 2 mid dle ware (mĭd'l-wâr') n. Software that serves as an intermediary

Mehr

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens W-JAX Keynote 2007 und Neil Bartletts Getting Started with OSGi

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

Eine Einführung. Vortragende(r) FU Institut Berlin für Informatik 14.12.2005. Ingo Mohr

Eine Einführung. Vortragende(r) FU Institut Berlin für Informatik 14.12.2005. Ingo Mohr Rich Client Platform (RCP) Eine Einführung Vortragende(r) Institut für Informatik Ingo Mohr FU Institut Berlin für Informatik 14.12.2005 05. Juni 2008 Inhalt 1. Motivation 2. RCP Konzepte 3. RCP Applikations

Mehr

Jens Zwer. End-to-End Monitoring für Web-, SOA- und Oracle Applikationen

Jens Zwer. End-to-End Monitoring für Web-, SOA- und Oracle Applikationen Jens Zwer Applications & Systems Management Solutions End-to-End Monitoring für Web-, SOA- und Oracle Applikationen Mai 2010 Kosten Online-Applikation vs. Nutzen & Kundenzufriedenheit? Entwicklung Test

Mehr

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Peter Roßbach (Systemarchitekt) Gerd Wütherich (Freier Softwarearchitekt) Martin Lippert (akquinet it-agile GmbH) 2009 by P. Roßbach, G. Wütherich,

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

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

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

Private Cloud Management in der Praxis

Private Cloud Management in der Praxis Private Cloud Management in der Praxis Self Service Portal 2.0 Walter Weinfurter Support Escalation Engineer Microsoft Deutschland GmbH Merkmale von Private Cloud Infrastrukturen Private Cloud = Infrastruktur

Mehr

Protected User-Level DMA in SCI Shared Memory Umgebungen

Protected User-Level DMA in SCI Shared Memory Umgebungen Protected User-Level DMA in SCI Shared Memory Umgebungen Mario Trams University of Technology Chemnitz, Chair of Computer Architecture 6. Halle Chemnitz Seminar zu Parallelverarbeitung und Programmiersprachen

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

Metadata Service Respository (MDS) - Sehen, lernen, verstehen!

Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Carsten Wiesbaum esentri AG Schlüsselworte Metadata Service Repository, MDS, Oracle Fusion Middleware Einleitung Früher oder später wird jeder

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

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

Hybride Cloud-Infrastrukturen Bereitstellung & Verwaltung mit System Center 2012

Hybride Cloud-Infrastrukturen Bereitstellung & Verwaltung mit System Center 2012 Hybride Cloud-Infrastrukturen Bereitstellung & Verwaltung mit System Center 2012 Roj Mircov TSP Datacenter Microsoft Virtualisierung Jörg Ostermann TSP Datacenter Microsoft Virtualisierung 1 AGENDA Virtual

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Scala & Lift. Ferenc Lajko 04.02.2010

Scala & Lift. Ferenc Lajko 04.02.2010 Scala & Lift Ferenc Lajko 04.02.2010 Gliederung 1. Scala 1.1. Allgemein 1.2. Merkmale 1.3. Unterschiede zu Java 1.4. Code-Beispiel 1.5. Vorteile zu anderen Sprachen 2. Lift 2.1. Allgemein 2.2. Idee 2.3.

Mehr

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG Uptime Services AG Brauerstrasse 4 CH-8004 Zürich Tel. +41 44 560 76 00 Fax +41 44 560 76 01 www.uptime.ch ARTS Server 3.5 Produktbeschreibung Uptime Services AG Inhaltsverzeichnis 1 Einleitung... 2 2

Mehr

Azure und die Cloud. Proseminar Objektorientiertes Programmieren mit.net und C# Simon Pigat. Institut für Informatik Software & Systems Engineering

Azure und die Cloud. Proseminar Objektorientiertes Programmieren mit.net und C# Simon Pigat. Institut für Informatik Software & Systems Engineering Azure und die Cloud Proseminar Objektorientiertes Programmieren mit.net und C# Simon Pigat Institut für Informatik Software & Systems Engineering Agenda Was heißt Cloud? IaaS? PaaS? SaaS? Woraus besteht

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

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

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

Wie setzt Swisscom Solaris 11 ein

Wie setzt Swisscom Solaris 11 ein Wie setzt Swisscom Solaris 11 ein Fritz Wittwer Swisscom Enterprise Customers Bern / Schweiz Marcel Hofstetter St. Gallen / Schweiz Schlüsselworte Oracle Solaris 11, Virtualisierung, SPARC, T5, LDom, Solaris

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

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

Complex Event Processing

Complex Event Processing [10] Armin Steudte HAW Hamburg Masterstudiengang Informatik - WS 2011/2012 Agenda Motivation Grundlagen Event Processing Networks Ausblick Quellen 2 Agenda Motivation Grundlagen Event Processing Networks

Mehr

Dirk Reinemann Working Student Sales Consulting

Dirk Reinemann Working Student Sales Consulting JDeveloper 12c in 30 Minutes Dirk Reinemann Working Student Sales Consulting Program Agenda 1. Integrated Development Environment 2. Java Development 3. Web Development 4. Team Development 5. Application

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

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

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform 02 PROFI News

Mehr

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren: Installationshinweise Z250I / Z270I Adapter IR USB Installation hints Z250I / Z270I Adapter IR USB 06/07 (Laden Sie den Treiber vom WEB, entpacken Sie ihn in ein leeres Verzeichnis und geben Sie dieses

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

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

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013 JBoss AS 7 Installation, Konfiguration und Betrieb Alexander Pacnik Karlsruhe, 13.12.2013 Jboss 7 AS... worum es in diesem Vortrag geht. Einführung Installation Konfiguration Management Deployment Betrieb

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

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

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

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

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

Zend PHP Cloud Application Platform

Zend PHP Cloud Application Platform Zend PHP Cloud Application Platform Jan Burkl System Engineer All rights reserved. Zend Technologies, Inc. Zend PHP Cloud App Platform Ist das ein neues Produkt? Nein! Es ist eine neue(re) Art des Arbeitens.

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

Anleitung zum Prüfen von WebDAV

Anleitung zum Prüfen von WebDAV Anleitung zum Prüfen von WebDAV (BDRS Version 8.010.006 oder höher) Dieses Merkblatt beschreibt, wie Sie Ihr System auf die Verwendung von WebDAV überprüfen können. 1. Was ist WebDAV? Bei der Nutzung des

Mehr

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

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Transaction Processing Teil 1 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Transaction Processing Teil 1 EJB Transaktionseigenschaften el0100 copyright W. G.

Mehr

www.informatik-aktuell.de

www.informatik-aktuell.de www.informatik-aktuell.de Connection Session Request Monitoring Microsoft SQL Server Datum: 14.12.2015 Autor: Uwe Ricken (db Berater GmbH) Uwe Ricken db Berater GmbH I am working with IT-systems since

Mehr

New Features Oracle Forms 11g Nichts Neu für Forms?

New Features Oracle Forms 11g Nichts Neu für Forms? New Features Oracle Forms 11g Nichts Neu für Forms? Perry Pakull Technology Manager perry.pakull@trivadis.com Zürich, 20.04.2010 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br.

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

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files 7 Assemblies 8 Virtual Execution System VES Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files Teil der CLR Class Loader Metadaten (Manifest) zur Selbstbeschreibung

Mehr

Business Process- und Workflow- Metamodelle. Konzepte und konkrete Implementierungen

Business Process- und Workflow- Metamodelle. Konzepte und konkrete Implementierungen Business Process- und Workflow- Metamodelle Konzepte und konkrete Implementierungen Inhalt Einführung Metamodelle Business Process Metamodelle Workflow Metamodelle (WPDL, WAMO, FlowMark) Datenmetamodelle

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

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?! MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?! Oliver Steinhauer Sascha Köhler.mobile PROFI Mobile Business Agenda MACHEN SIE IHRE ANWENDUNGEN MOBIL?! HERAUSFORDERUNG Prozesse und Anwendungen A B

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

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

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

Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version. Schimon.Mosessohn@microsoft.

Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version. Schimon.Mosessohn@microsoft. Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version Schimon.Mosessohn@microsoft.com Herzlich Willkommen 1996 2004 2010 2014 Navision 3.7 Microsoft

Mehr