Remoting zwischen Mono + Linux und.net + Windows

Größe: px
Ab Seite anzeigen:

Download "Remoting zwischen Mono + Linux und.net + Windows"

Transkript

1 Remoting zwischen Mono + Linux und.net + Windows Dieter Bremes 4. Juni 2005 Lizenzbestimmungen Dieser Beitrag ist unter der UVM Lizenz (unveränderte Inhalte) <http://www.uvm. nrw.de/kunden/uvm/www.nsf/0/ecd5adafff804489c1256d dd5?opendocument> lizensiert. Zusammenfassung Das Open-Source-Projekt Mono bietet dem Linux-Programmierer ähnliche Vorteile wie Java, neben einer umfassenden Infrastruktur mit einheitlichen Lösungsmustern vor allem Plattformunabhängigkeit und Sicherheit, ist aber technisch einfacher und sprachunabhängig..net ist Microsofts Implementierung derselben Standards und setzt bei der Windows- Programmierung neue Produktivitätsmaßstäbe. Der Einsatz von Mono und.net schafft deshalb ideale Voraussetzungen, um verteilte Programme in den üblichen heterogenen IT-Welten zu realisieren - beispielsweise mit Linux-Servern und Windows-Clients. Die Kommunikation zwischen den Programmteilen kann so die Nachteile anderer Standards wie Web Services oder COR- BA vermeiden und das sogenannte Remoting einsetzen: Eine in die Plattform integrierte und leicht erweiterbare Infrastruktur, die beliebige Datentypen zwischen beliebigen Plattform-Implementierungen performant überträgt. Nach einer kurzen Einführung in die technischen Grundlagen des Remoting demonstriert dieser Vortrag anhand praktischer Beispiele, mit welcher Performance beim Remoting zwischen einem Server mit Linux und Mono sowie seinen Clients mit Windows und.net zu rechnen ist. Er zeigt außerdem Tuning-Möglichkeiten und zieht einen Vergleich zu Alternativen wie Web Services und Terminal Servern. Etwas Grundwissen zu.net, TCP/IP und verteilten Anwendungen wäre optimal, die technischen Grundlagen des Remoting werden erläutert.

2 1 Remoting zwischen Mono und Linux sowie.net und Windows Das Open-Source-Projekt Mono bietet dem Linux-Programmierer ähnliche Vorteile wie Java: neben der Produktivitätssteigerung durch eine umfassende Infrastruktur mit einheitlichen Lösungsmustern vor allem Plattformunabhängigkeit und Sicherheit; es ist aber technisch einfacher und sprachunabhängig..net ist Microsofts Implementierung derselben Infrastruktur und setzt bei der Windows- Programmierung neue Produktivitätsmaßstäbe. Der Einsatz von Mono und.net schafft deshalb ideale Voraussetzungen, um verteilte Programme in den üblichen heterogenen IT-Welten zu realisieren - beispielsweise mit Linux- Servern und Windows-Clients. Die Kommunikation zwischen den Programmteilen kann so die Nachteile anderer Standards wie Web Services oder CORBA vermeiden und das sogenannte Remoting einsetzen: Eine in die Plattform integrierte und leicht erweiterbare Infrastruktur, die beliebige Datentypen zwischen beliebigen Plattform-Implementierungen performant überträgt. Nach einer kurzen Einführung in Mono und die technischen Grundlagen des Remoting demonstriert dieser Vortrag anhand praktischer Beispiele, mit welcher Performance beim Remoting zwischen einem Server mit Linux und Mono sowie seinen Clients mit Windows und.net zu rechnen ist. Er zeigt außerdem Tuning-Möglichkeiten und zieht einen Vergleich zu Alternativen wie Web Services und Terminal Servern. 1.1 Was ist Mono? Die Frage Was ist Mono? beantwortet das Projekt am besten selber; von der Mono-Website (www.monoproject. com/main Page): Mono is a platform for running and developing modern applications, based on the ECMA/ISO Standards. Mono can run existing programs targeting the.net or Java frameworks. Mono is an open source effort led by Novell and is the foundation for many new applications. Hinter Mono steht also ein Java-ähnliches Plattformkonzept - man schreibt Programme für die Plattform und nicht mehr für ein bestimmtes Betriebssystem oder eine bestimmte Hardware-Architektur: write once, run everywhere. Für diesen Zweck bietet Mono eine Laufzeitumgebung, eine Klassenbibliothek und einen Compiler für die neue Sprache C#. Ein großer Teil dieser Implementierung beruht auf entsprechenden ECMA- und ISO-Standards, die auch die Grundlage von Microsofts.NET bilden. Das Mono-Projekt wurde im Jahr 2001 von Miguel de Icaza gegründet, in der Linux-Welt als Vater des Gnome-Projekts und Gründer der Firma Ximian bekannt. Im Jahr 2004 erschien

3 die Version 1.0 des Projekts, aktuell (Mai 2005) sind die Versionen (Stable) sowie (Development) und für September 2005 ist die Version 1.2 geplant. Mono bietet eine vollständige Programmier-Infrastruktur für Fat Clients und Web-Anwendungen. Es enthält dazu neben entsprechenden Oberflächenelementen beispielsweise auch eine Unterstützung für Datenzugriff und -darstellung. Seine Klassenbibliothek und Laufzeitumgebung übernehmen darüber hinaus Aufgaben wie Threading und Sicherheit und definieren auch das vollständige und damit sprachunabhägige Typsystem der Plattform. Mono-Binaries sind unter <http://www.mono-project. com/downloads> für SUSE- und Redhat-Linux sowie für OS X und Windows erhältlich; durch den ebenfalls verfügbaren Quelltext lässt sich Mono außerdem für andere Betriebssysteme, wie FreeBSD, übersetzen. 1.2 Warum Mono? Sowohl als Anstoß für die Entwicklung als auch bei der Argumentation zum Einsatz von Mono kristallisieren sich drei Gründe heraus: produktiveres Entwickeln, Plattformunabhängigkeit und erhöhte Sicherheit. Bestehende Lösungsansätze wie Java, GTK und QT bieten oft nicht die gewünschten Vorteile - und schließlich profitieren nicht nur in der Natur alle Beteiligten von konkurrierenden Alternativen. Sehr prägnant beschreibt der Vater des Mono-Projekts seine Motivation: Life is too short for debugging C code! Und schließlich soll Mono nicht nur die Entwicklung unter Linux angenehmer machen - hinter allen Überlegungen steht natürlich auch das Ziel, Linux auf den Desktop zu bringen Produktiveres Entwickeln Mono ermöglicht produktiveres Entwickeln durch die standardisierte Infrastruktur, die Sprachunabhängigkeit und Komponentenunterstützung, das vereinfachte Erstellen von Webseiten und Web Services sowie das Ende der DLL-Hell (DLL = Dynamic Link Library, entspricht Shared Object unter Linux). Die standardisierte Infrastruktur bietet zum einen Funktionalität, die in anderen Bibliotheken nicht enthalten ist - beispielsweise XML-Unterstützung oder moderne Sicherheits- Features. Sie befreit zum anderen vom Zwang, sich betriebssystemspezifische Details merken zu müssen, wie die unterschiedliche GUI-Programmierung unter Windows, OS X und Linux. Mono unterstützt verschiedene Compiler und bietet dadurch Sprachunabhängigkeit. Diese erhöht vor allem das Angebot an Komponenten und anderen Bibliotheken, denn der Anbieter muss nicht mehr Bindungen oder sogar Implementierungen für einzelne Sprachen liefern. Sie vereinfacht außerdem, sich in beliebige Mono-Programme einzuarbeiten - die

4 benutzte Infrastruktur mit ihrem Objektmodell bleibt ja gleich, und es ändert sich nur die Syntax wie geschweifte Klammern oder Semikolons. Weil Mono auch die Infrastruktur für Webseiten und Web Services enthält, muss man sich für solche Anwendungen weder in neue Lösungsmuster einarbeiten, noch sich mit den Details von HTTP und HTML auseinandersetzen. Unter Mono kann man problemlos verschiedene Versionen einer Bibliothek (.DLL bzw..so) installieren. Welche Bibliotheksversion ein Programm verwendet, lässt sich sowohl beim Übersetzen des Programms als auch später durch den Administrator konfigurieren. Die insbesondere unter Windows gefürchtete DLL-Hell, die durch unbeabsichtigtes Überschreiben einer von anderen Programmen genutzten Bibliothek entsteht, ist damit Geschichte Plattformunabhängigkeit Die Plattformunabhängigkeit ergibt sich aus der von Mono-Compilern generierten plattformunabhängigen Zwischensprache (Intermediate Language), die erst zur Ausführungszeit in eine maschinenspezifische Sprache übersetzt wird (just-in-time kompiliert). Mono- Programme laufen also auf jedem Betriebssystem, für das eine entsprechende Laufzeitumgebung existiert. Die Laufzeitumgebung ist entweder Mono selber oder das dazu kompatible.net von Microsoft. Mono-Programme laufen damit auf Linux, OS X und Windows; durch den frei verfügbaren Quelltext lässt sich Mono außerdem für andere Betriebssysteme übersetzen Erhöhte Sicherheit Mono bietet erhöhte Sicherheit vor allem durch Programmausführung in einer virtuellen Maschine, durch automatische Speicherverwaltung und durch das neue Konzept der Codezugriffssicherheit. Jedes Mono-Programm läuft innerhalb einer virtuellen Maschine - durch dieses Sandbox- Prinzip kann Code nicht direkt auf Betriebssystem oder Hardware zugreifen. Zusätzlich schützt die automatische Speicherverwaltung sowohl vor ungewollten Speicherlecks und daraus resultierender Programm-Instabilität als auch vor böswilligen Buffer-Overrun-Angriffen. Schließlich bietet Mono als Ergänzung der bekannten rollenbasierten Sicherheit ein völlig neues Sicherheitskonzept: die Codezugriffssicherheit (Code Access Security). Dieses Konzept knüpft bestimmte Rechte an den Code selber - unabhängig von den Rechten des angemeldeten Benutzers. Dadurch hat beispielsweise Code, der aus dem Internet kommt, automatisch nur stark eingeschränkte Rechte - selbst wenn der Benutzer als root bzw. Administrator angemeldet ist. Rechte und Codegruppenzugehörigkeit lassen sich sehr feingranular konfigurieren, insbesondere kann der Administrator entsprechende Festlegungen auch später noch ändern.

5 1.3 Was ist Remoting? Remoting ist der Begriff für jede Kommunikation zwischen Programmteilen in Mono - auch für die Intra-Prozess-Kommunikation. Um maximale Sicherheit bei bester Performance zu erreichen, verwendet Mono innerhalb eines Prozesses sogenannte Anwendungsdomänen (Application Domains). Diese Anwendungsdomänen schirmen Programmteile ähnlich voneinander ab wie eine Prozessgrenze, kosten aber weniger Performance bei der Datenübertragung und weniger Ressourcen. Während das Remoting innerhalb eines Prozesses hauptsächlich bei Web-Anwendungen auftritt, ist es beim Datenaustausch zwischen Mono-Anwendungen über Prozess- oder Rechnergrenzen die Regel. In jedem Fall geschieht es völlig automatisch. Im Gegensatz zu den meisten anderen Kommunikationslösungen ist Remoting sehr gut konfigurierbar und erweiterbar. So lässt sich beispielsweise festlegen, ob die Daten per TCP, HTTP oder über ein anderes Protokoll übertragen werden sollen. Ebenso kann man das Datenformat und Zusatzfunktionalität wie Kompression und Verschlüsselung frei bestimmen. Verglichen mit Web Services bietet Remoting neben den schon genannten Freiheiten insbesondere eine höhere Performance und es ist nicht auf XML-Datentypen beschränkt. Dafür fehlt die Plattformunabhängigkeit - um beispielsweise mit einem C-Programm über Rechnergrenzen zu kommunizieren bietet sich also nach wie vor ein Web Service an. 1.4 Wie funktioniert Remoting? Sobald zwei Anwendungsdomänen miteinander Daten austauschen, beginnt automatisch das Remoting. Die folgenden Abschnitte beschreiben die zentralen Bestandteile der dabei verwendete Infrastruktur sowie die gängigsten Konfigurationsmöglichkeiten Formatierer und Kanäle Die Remoting-Infrastruktur serialisiert zunächst mit sogenannten Formatierern die zu übertragenden Daten. Sie benutzt dazu normalerweise einen der beiden eingebauten Formatierer, die wahlweise das standardisierte SOAP-Format oder ein kompakteres Binärformat erzeugen. Danach erfolgt die eigentliche Datenübertragung über sogenannte Kanäle; Mono bringt dazu einen HTTP- und einen TCP-Kanal für die entsprechenden Netzwerkprotokolle mit. Schließlich stellt die Remoting-Infrastruktur auf Empfängerseite automatisch die Ausgangsdaten wieder her. Welche Formatierer und Kanäle verwendet werden sollen, konfiguriert man über XML- Dateien. Außerdem lassen sich eigene Formatierer und Kanäle einbinden, um beispielsweise Verschlüsselung zu realisieren oder einen Message Queue Server einzubinden.

6 1.4.2 Übertragen als Wert oder als Referenz Ähnlich wie der Datentransport lässt sich auch das Verhalten der zu übertragenden Objekte bzw. Klassen konfigurieren. Zum einen kann man Objekte als Wert übertragen (Marshal-byvalue, MBV) oder als Referenz (Marshal-by-reference, MBR). Beim Übertragen als Wert wird normalerweise das gesamte Objekt kopiert, einschließlich privater Felder. Dazu muss die zugrunde liegende Klasse entweder mit dem Attribut SerializableAttribute gekennzeichnet sein oder die Schnittstelle ISerializable implementieren, außerdem lassen sich Felder auch explizit vom Serialisieren ausschließen. Diese Übertragungsvariante ist sinnvoll, wenn danach viele Mitgliedszugriffe erfolgen; große Objekte zu kopieren belastet natürlich Rechner und Netzwerk. Die zweite Übertragungsvariante, das Übertragen als Referenz, kopiert nicht das Objekt selber sondern nur die Parameter- und Rückgabewerte entsprechender Mitgliedsaufrufe. Dieses Paradigma ist beispielsweise von Microsofts COM / DCOM (Distributed Component Object Model), von Java RMI (Remote Method Invocation) oder von Web Services bekannt. Damit eine Klasse an dieser Übertragungsvariante teilnehmen kann, muss sie von MarshalByRefObject abgeleitet sein - die Remoting-Infrastruktur generiert dann automatisch Proxies. Diese Variante bildet den Normalfall der Übertragung, für die Parameterwerte selber gelten natürlich die Regeln des Übertragens als Wert Aktivierungsverfahren Für Objekte, die als Referenz übertragen werden sollen, kann man verschiedene Aktivierungsverfahren wählen. So kann entweder der Client (Client-activated-object, CAO) oder der Server (Server-activated-object, SAO) das Objekt aktivieren. Beim Konstruktor-Aufruf eines Client-aktivierten Objekts entsteht dieses sofort auf dem Server, außerdem wird am Client ein entsprechender Proxy mit Referenz auf das Objekt erzeugt - aus diesem Vorgehen resultiert natürlich ein Round-trip zwischen Client und Server. Weil das Objekt dem erzeugenden Client exklusiv zur Verfügung steht und seinen Zustand auch über mehrere Methodenaufrufe erhält, bieten Client-aktivierte Objekte ein von lokalen Objekten gewohntes Programmiermodell. Dazu gehört auch, dass der Client beliebige Konstruktoren aufrufen kann. Weil Client-aktivierte Objekte zustandsbehaftet sind, eignen sie sich nicht für Server-Farmen und schränken dadurch die Skalierbarkeit der Anwendung ein. Bei Server-aktivierten Objekten entscheidet der Server, wann das Objekt tatsächlich erzeugt wird - dementsprechend entsteht die Instanz nicht beim Konstruktor-Aufruf, sondern erst beim Zugriff auf eine Methode oder Eigenschaft. Außerdem ruft der Server immer nur den Standardkonstruktor auf. Server-aktivierte Objekte existieren wiederum in zwei Varianten: Singleton-Objekte und Single-call-Objekte. Von einem Singleton-Objekt existiert immer nur eine Instanz, die sich alle Clients teilen - mit ähnlichen Vor- und Nachteilen wie bei den Client-aktivierten Objekten. Dagegen erfolgt jeder Methoden- oder Eigenschaftszugriff auf ein Single-call-Objekt

7 über eine eigene Instanz. Das hört sich zwar sehr nach Ressourcenverschwendung an, ist tatsächlich aber das am besten skalierende Verfahren. Denn weil die Objekte nicht zustandsbehaftet sind, kann der Server zum einen Objekte recyceln (Object-pooling). Zum anderen ist die Sitzung nicht an einen bestimmten Server gebunden, jeder Zugriff kann problemlos von einem anderen Server erledigt werden Lebensdauerverwaltung Während Single-call-Objekte per Definition sofort freigegeben bzw. recycled werden, ist für die Lebensdauerverwaltung von Client-aktivierten und Singleton-Objekten ein sogenannter Lease Manager zuständig. Dieser begrenzt die Lebensdauer (Lease) normalerweise auf fünf Minuten bzw. zwei Minuten nach jedem Zugriff. Beide Werte lassen sich konfigurieren; zusätzlich kann man sogenannte Sponsoren einrichten, die der Lease Manager konsultiert, bevor er ein Objekt freigibt. In keinem Fall sollte man im Client-Code aber davon ausgehen, dass ein als Referenz übertragenes Objekt beim nächsten Aufruf noch existiert Konfiguration In den meisten Fällen werden Client und Server durch je eine XML-Datei konfiguriert; Kanal, Formatierer und ähnliche Festlegungen müssen natürlich in beiden übereinstimmen. Diese Art der Konfiguration hat zum einen den Vorteil, dass man eine Anwendung nicht neu kompilieren muss, um beispielsweise Verschlüsselung hinzuzufügen oder einen anderen Server anzusprechen. Ein weiterer Vorteil besteht darin, dass die Programmlogik nicht durch Infrastruktur-Code verwässert wird. In komplexeren Problemszenarien wird man statt Konfigurationsdateien oft die verschiedenen Methoden der Activator-Klasse benutzen müssen. Das ist beispielsweise nötig, um Server dynamisch einzubinden oder um den Clients ein bestimmtes, vorkonfiguriertes Objekt zu übergeben Host-Anwendungen Prinzipiell kann jede ausführbare Datei als Remoting-Server dienen. Zusätzliche Anforderungen, wie Sicherheit und Skalierbarkeit, machen aber im allgemeinen eine sogenannte Host-Anwendung nötig. Die Host-Anwendung bildet den von außen ansprechbaren Teil des Servers, die eigentliche Funktionalität steckt dabei in einer Bibliothek. Als Host-Anwendung eignet sich prinzipiell jede ausführbare Datei, diese Variante wird man aber nur zu Testzwecken während der Entwicklungsphase nutzen.

8 Ein Dienst bzw. Dämon bildet die zweite Variante der Host-Anwendung; sein einziger Vorteil gegenüber anderen ausführbaren Dateien liegt aber darin, dass kein Benutzer angemeldet sein muss. Erst die dritte Variante der Host-Anwendung, ein Web- oder Anwendungs-Server, erfüllt zusätzliche Anforderungen nach Sicherheit und Skalierbarkeit. Unter Windows dienen dazu die integrierten IIS (Internet Information Services), eventuell In Kombination mit den Enterprise Services. Für Linux-Server bietet sich der Apache- sowie der Mono Application Server an; beide sind zusätzlich für Windows verfügbar. Je nach Host-Anwendung kann diese zusätzliche Funktionalität bieten, wie Load-balancing oder verteilte Transaktionen. Andererseits kann eine Host-Anwendung auch Einschränkungen mit sich bringen, so unterstützen die IIS nur den HTTP-Kanal. 1.5 Remoting im Test Im Server-Bereich hat Linux bereits deutlich an Boden gewonnen; während es dort inzwischen auch Windows-basierte Server verdrängt, dominiert dieses Betriebssystem auf absehbare Zeit noch den Desktop- bzw. Client-Bereich. Für verteilte Programme bietet sich in diesem Szenario natürlich eine Mono- und.net-basierte Lösung an: man muss sich nur in eine Plattform einarbeiten und kann deren spezialisiertes und entsprechend performantes Kommunikationsverfahren nutzen. Gegen den Einsatz von Mono auf dem Client spricht heute vor allem noch die nicht abgeschlossene Entwicklung der GUI-Bibliotheken und der Entwicklungswerkzeuge. Den besten Eindruck vom Nutzen einer Lösung mit Mono auf dem Linux-Server und.net auf den Windows-Clients verschafft ein Test, der zum einen ihre Performance mit der einer reinen, Windows-basierten.NET-Lösung vergleicht. Zum anderen sollte dieser Test einen Vergleich mit der Standardlösung beim Verbinden von Plattformen, einem Web Service, bieten Test-Aufbau Der Server des Test-Aufbaus besteht Software-seitig zum einen aus einer Bibliothek, deren sechs Methoden verschiedene Datenmengen und -arten senden und empfangen. Übertragen werden dabei zwei verschiedene Tabellen aus Microsofts Northwind-Beispieldatenbank in DataSet-Instanzen mit einem Umfang von bzw Zeichen netto sowie eine benutzerdefinierte Objektliste mit Zeichen netto. Weil Methoden zum Senden und Empfangen vorhanden sind, lässt sich sowohl das Remoting vom Server zum Client als auch die umgekehrte Richtung testen. Den zweiten Teil des Servers bildet ein einfaches Kommandozeilenprogramm als Host- Anwendung. Es unterstützt zum einen die performanteste Kommunikationsvariante, also TCP-Kanal und Binärformatierer. Um vergleichsweise die Performance eines Web Service zu simulieren, unterstützt die Host-Anwendung außerdem das Remoting mit HTTP-Kanal und

9 SOAP-Formatierer - denn in die Performance eines richtigen Web Service würde natürlich auch die des Web Servers eingehen. Den Client bildet ebenfalls ein Kommandozeilenprogramm, das beim Aufruf der Server- Methoden die benötigte Zeitspanne misst und in einer Datei protokolliert. Dabei lässt sich konfigurieren, wie oft jede Methode nacheinander aufgerufen wird und welche Wartezeit zwischen diesen Aufrufen vergehen soll. Außerdem kann man diese Aufruf-Folgen über einen einstellbaren Zeitraum wiederholen, um beispielsweise Speicherproblemen auf die Spur zu kommen. Gemessen wird zur Vereinfachung des Test-Aufbaus nur die reine Zeit, nicht die Netzwerk-, CPU- und Speicherbelastung. Außerdem erfolgt der Test nur mit einem Client. Der Server wird beim Test zunächst unter Windows 2000 und.net 1.1 ausgeführt. Vergleichsmessungen erfolgen dann mit derselben Hardware unter SUSE Linux 9.2 sowohl mit Mono als auch mit Mono Der Client läuft immer unter Windows 2000 und.net 1.1. Client- und Server-Rechner sind miteinander über einen Switch ohne externe Netzwerkbelastung verbunden. Client- und Server-Programme werden unter Windows 2000 und Visual Studio.NET 2003 kompiliert, der Mono-Compiler geht also nicht in das Ergebnis ein Test-Ergebnisse Die Test-Ergebnisse sind in Abbildung 1 bis 3 zusammengefasst. Dabei zeigt Abbildung 1 den Vergleich zwischen Remoting und Web Services. Ein Web Service, simuliert durch HTTP-Kanal und SOAP-Formatierer, kann demnach durchaus 50 % Performanceverlust gegenüber der Remoting-Variante (TCP-Kanal und Binärformatierer) verursachen.

10 Abbildung 1: Remoting- gegen Web Service -Performance In Abbildung 2 ist das Zusammenspiel von.net 1.1 unter Windows und Mono (in SUSE Linux 9.2 enthalten) unter Linux zu sehen; als Vergleichskriterium dient hier wie in Abbildung 1 eine reine.net-lösung mit TCP-Kanal und Binärformatierer. Die Get-Methoden, also die Übertragung vom Server zum Client, sind 30 % bis 50 % langsamer als bei einer reinen.net-lösung, liegen aber zumindest noch im Performance-Bereich der Web Service -Lösung. Dagegen schleppen die Take-Methoden einen Overhead von rund 200 Millisekunden mit sich - diese Zeitspanne würde reichen, um die gesamte Orders- Tabelle zu übertragen. Abbildung 2: Mono gegen.net 1.1-Performance Erfreulicherweise zeigt Abbildung 3 enorme Entwicklungsfortschritte bei Mono in der (bis Anfang Mai 2005) aktuellen Development-Version Die Performance-Unterschiede bei den Get-Methoden sind auf rund 10 % geschrumpft und die Performance der Take-Methoden ist jetzt wenigstens besser als die der Web Service -Lösung.

11 Abbildung 3: Mono gegen.net 1.1-Performance Dieser Test kann natürlich nur als Gerüst und Anregung für eigene Tests dienen, in denen man seine Lösung und mögliche Alternativen möglichst genau nachbildet. Beispielsweise könnte man durch neugierige Firewalls gezwungen sein, den HTTP- statt den TCP-Kanal zu benutzen - wie weit senkt das die Performance der Anwendung? Relativ statische Daten könnte man auch komprimieren; das liegt insbesondere bei DataSet-Instanzen nahe, die auch über den Binärformatierer ein unnötig geschwätziges Serialisierungsformat erzeugen - ist die gesparte Bandbreite die zusätzliche Prozessorbelastung wert? 1.6 Alternativen zum Remoting zwischen Mono und Linux sowie.net und Windows Die folgenden Abschnitte beschreiben kurz bestehende Alternativen zum Remoting zwischen Mono und Linux sowie.net und Windows. Betrachtungsschwerpunkt ist dabei, inwieweit die Lösung zur Überwindung von Plattformgrenzen beiträgt - auch im Hinblick auf den Lernaufwand Java Als Alternative bietet sich zunächst natürlich eine Java-Lösung an, diese Plattform verfolgt ja exakt das gleiche Ziel wiemono und.net. Dementsprechend hat auch diese Lösung den Vorteil, dass der Entwickler sich nicht in unterschiedliche Paradigmen, Objektmodelle und Infrastrukturen verschiedener Server- und Client-Plattformeneinarbeiten muss. Client-seitig kranken Java-Lösungen aber immer noch an der fehlenden RAD-Unterstützung (Rapid Application Development); VEP (The Eclipse Visual Editor Project) bietet hier nur

12 einen Anfang, und die Datenbindung fehlt immer noch. Außerdem erfordert die generell höhere Komplexität einer Java-Lösung einen entsprechend höheren Einarbeitungs- und Implementierungsaufwand. Die meisten Unternehmen haben sich aber ohnehin schon grundsätzlich für oder gegen Java entschieden, so dass diese Alternative meistens keine Rolle mehr spielt Web Service Die Alternative Web Service hilft dagegen nur, Plattformgrenzen zu überwinden. Der Entwickler muss sich also trotzdem in verschiedene Plattformen einarbeiten, dazu kommt der im Test demonstrierte Performance-Verlust sowie die Einschränkung auf XML-Datentypen. Außerdem ist die Definition der entsprechenden Standards noch nicht abgeschlossen, beispielsweise fehlen Festlegungen zu Transaktionsbehandlung und Verschlüsselung Web Anwendung Eine Web Anwendung ist von Hause aus plattformübergreifend nutzbar - von Browser- Inkompatibilitäten abgesehen. Außerdem ist sie skalierbar und erledigt ihr Rollout sozusagen selber, ein weiterer nicht zu unterschätzender Vorteil. Trotzdem finden Server- und Client-Entwicklung auch in aktuellen Implementierungen wie ASP.NET noch in völlig unterschiedlichen Welten statt, mit entsprechendem Lernaufwand für den Programmierer. KO-Kriterium ist aber meistens die fehlende Funktionalität und Performance interaktiver Oberflächen, praktisch realisierbar sind zur Zeit nur relativ einfache Eingabefenster. Diese Einschränkungen werden in Zukunft sicher durch Standards wie XForms und SVG entfallen, zur Zeit unterstützt sie aber noch keiner der üblichen Webbrowser Terminal Server Je nach Sichtweise ändert sich für den Entwickler durch den Einsatz eines Terminal Servers alles oder auch nichts: ein verteiltes Programm ist nicht mehr nötig, ebensowenig die Überwindung einer Plattformgrenze - beides erledigt der Terminal Server bzw. seine Client- Software. Nachteilig sind an dieser eher administrations- als architekturbasierten Lösung neben der Abhängigkeit von einem bestimmten Hersteller vor allem die erhöhten Hardware-Kosten durch die größere Serverlast sowie die begrenzte Skalierbarkeit einer Zweischichtanwendung. Zum anderen besteht das Problem, auf jedem Client spezielle Software installieren zu müssen. Im Allgemeinen verwendet man Terminal Server deshalb nur für standardisierte Arbeitsplätze, wo Diskless-Workstations durch gesparten Administrationsaufwand die erhöhten Serverkosten wettmachen. Ein weiterer Anwendungsfall besteht in Not- und Übergangslösungen

13 - z. B. um bei der Linux-Migration ein Windows-Programm, das nicht unter einem Emulator wie Wine läuft, trotzdem auf einem Linux-Client nutzen zu können. 1.7 Fazit Mono und.net sind inzwischen zum ernsthaften Java-Konkurrenten geworden, wobei die Kombination aus Mono und.net durch geringen Lernaufwand und hohe GUI-Produktivität punkten kann. Die anderen Alternativen für plattformübergreifende Programme eignen sich entweder nur für bestimmte Anwendungsfälle, bieten nur Teillösungen oder erfordern die Einarbeitung in mehrere Plattformen. Der Test zeigt, dass auch die Performance einer verteilten Anwendung mit Linux-Server und Windows-Clients vom Einsatz von Mono und.net profitiert - ein Web Service wäre wesentlich langsamer. Ebenso zeigt der Test, dass auch in der aktuellen Mono-Version noch Überraschungen lauern, die man beim Lösungsdesign berücksichtigen sollte. Und schließlich wird deutlich, dass Mono mit jedem Release noch besser wird - die Entwickler empfehlen übrigens inzwischen den Einsatz der Develpoment-Version.

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Ein einfacher Server. .NET Remoting. Klassentypen

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

Mehr

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

AKWi: SOA SOA-Technologiebenchmark Java RMI vs. Microsoft WCF

AKWi: SOA SOA-Technologiebenchmark Java RMI vs. Microsoft WCF AKWi: SOA SOA-Technologiebenchmark Java RMI vs. Microsoft WCF Mathias Slawik, SS 2009 Agenda Technologien Java RMI (Remote Method Invocation) Microsoft WCF (Windows Communication Foundation) Benchmark

Mehr

Einführung in die OPC-Technik

Einführung in die OPC-Technik Einführung in die OPC-Technik Was ist OPC? OPC, als Standartschnittstelle der Zukunft, steht für OLE for Process Control,und basiert auf dem Komponentenmodel der Firma Microsoft,dem Hersteller des Betriebssystems

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

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

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

Mehr

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

DCOM und.net. B. Sc. Tobias Buchloh. Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover

DCOM und.net. B. Sc. Tobias Buchloh. Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover DCOM und.net B. Sc. Tobias Buchloh Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover 2004-12-21 Gliederung Motivation Einordnung (D)COM.NET

Mehr

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel VS12 Slide 1 Verteilte Systeme Vorlesung 12 Sebastian Iwanowski FH Wedel Mögliche Plattformen für Web Services VS12 Slide 2 VS12 Slide 3 Java-Software für verteilte Systeme J2EE: Java 2 Enterprise Edition

Mehr

OPC UA und die SPS als OPC-Server

OPC UA und die SPS als OPC-Server OPC UA und die SPS als OPC-Server Public 01.10.2010 We software We software Automation. Automation. Agenda Firmenportrait Kurz-Einführung zu OPC Kurz-Einführung zu OPC UA (Unified Architecture) OPC UA

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

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

Mehr

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. Inhalt 1 Übersicht 2 Anwendungsbeispiele 3 Einsatzgebiete 4 Systemanforderungen 5 Lizenzierung 6 Installation 7 Key Features 8 Funktionsübersicht (Auszug) 1 Übersicht MIK.bis.webedition ist die Umsetzung

Mehr

CORBA. Systemprogrammierung WS 2006-2007

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

Mehr

GeoShop Netzwerkhandbuch

GeoShop Netzwerkhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 GeoShop Netzwerkhandbuch Zusammenfassung Diese Dokumentation beschreibt die Einbindung des GeoShop in bestehende Netzwerkumgebungen.

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

Datenbank-basierte Webserver

Datenbank-basierte Webserver Datenbank-basierte Webserver Datenbank-Funktion steht im Vordergrund Web-Schnittstelle für Eingabe, Wartung oder Ausgabe von Daten Datenbank läuft im Hintergrund und liefert Daten für bestimmte Seiten

Mehr

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de. 26.11.2000 (c) Michael Behrendt -

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de. 26.11.2000 (c) Michael Behrendt - Herzlich Willkommen! Mit Java ins Web - eine praxisnahe Übersicht 1 Wer bin ich? Michael Behrendt, 21, Nürnberg kurzer Lebenslauf: 1991 Erster Rechner: Commodore C128 1995 Ausbildung zum Datenverarbeitungskaufmann

Mehr

Client/Server-Programmierung

Client/Server-Programmierung lient/server-programmierung WS 2014/2015 etriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, üro: H- 8404 Stand: 15. Oktober 2015 etriebssysteme / verteilte Systeme

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

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

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

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

.NET-Networking 2 Windows Communication Foundation

.NET-Networking 2 Windows Communication Foundation .NET-Networking 2 Windows Communication Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Fabian Raab Institut für Informatik Software & Systems Engineering Agenda Grundproblem Bestandteile

Mehr

7 Dateien und Datenströme (Streams)

7 Dateien und Datenströme (Streams) 7 Dateien und Datenströme (Streams) Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

Mehr

FileMaker Pro 14. Verwenden einer Remotedesktopverbindung mit FileMaker Pro 14

FileMaker Pro 14. Verwenden einer Remotedesktopverbindung mit FileMaker Pro 14 FileMaker Pro 14 Verwenden einer Remotedesktopverbindung mit FileMaker Pro 14 2007-2015 FileMaker, Inc. Alle Rechte vorbehalten. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054,

Mehr

Hyper-V Server 2008 R2

Hyper-V Server 2008 R2 Hyper-V Server 2008 R2 1 Einrichtung und Installation des Hyper-V-Servers 1.1 Download und Installation 4 1.2 Die Administration auf dem Client 9 1.3 Eine VM aufsetzen 16 1.4 Weiterführende Hinweise 22

Mehr

Netzwerk Technologien in LabVIEW

Netzwerk Technologien in LabVIEW Netzwerk Technologien in LabVIEW von Dirk Wieprecht NI Germany Hier sind wir: Agenda Agenda Bedeutung des Ethernet für die Messtechnik Ethernet-basierende Technologien in LabVIEW Low Level- TCP/IP Objekt

Mehr

1 Remotedesktopdienste (ehem. Terminal Services)

1 Remotedesktopdienste (ehem. Terminal Services) Windows Server 2008 (R2): Anwendungsserver 1 Remotedesktopdienste (ehem. Terminal Services) Die Remotedesktopdienste gehören zu den Desktopvirtualisierungsprodukten von Microsoft. Die Remotedesktopdienste

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

Präsentation. homevisu Familie. Peter Beck. Juni 2011. www.p-b-e.de. 2011 p b e Peter Beck 1

Präsentation. homevisu Familie. Peter Beck. Juni 2011. www.p-b-e.de. 2011 p b e Peter Beck 1 Präsentation homevisu Familie Peter Beck Juni 2011 2011 p b e Peter Beck 1 Funktionensumfang Der Funktionsumfang das provisu Framework. Modular und durch Plug-In erweiterbar / anpassbar. Plug-In Schnittstelle

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

Beschreibung Mobile Office

Beschreibung Mobile Office Beschreibung Mobile Office 1. Internet / Netz Zugriff Für die Benutzung von Mobile Office ist lediglich eine Internet oder Corporate Netz Verbindung erforderlich. Nach der Verbindungsherstellung kann über

Mehr

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013 Software Komponenten FS13 Gruppe 03 Horw, 24.05.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Adresse Telefon

Mehr

Mitglied der: KNX Association OPC Foundation BACnet Interest Group Europe. Dokumentversion: 1.0.2

Mitglied der: KNX Association OPC Foundation BACnet Interest Group Europe. Dokumentversion: 1.0.2 Mitglied der: KNX Association OPC Foundation BACnet Interest Group Europe Dokumentversion: 1.0.2 Inhaltsverzeichnis 1. System Überblick 4 2. Windows Firewall Konfiguration 5 2.1. Erlauben von DCOM Kommunikation

Mehr

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Agenda Problemstellung Medizinprodukt App Grundlagen Szenarien (Problemstellungen und Lösungsansätze) 03.06.2013 2 Innovationen

Mehr

R e m o t e A c c e s s. Cyrus Massoumi

R e m o t e A c c e s s. Cyrus Massoumi R e m o t e A c c e s s Präsentation im Seminar Internet-Technologie im Sommersemester 2008 von Cyrus Massoumi I n h a l t Was versteht man unter Remote Access Unsichere Remotezugriffe TELNET Remote Shell

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

Visual Studio LightSwitch 2011

Visual Studio LightSwitch 2011 1 Visual Studio LightSwitch 2011 Vereinfachte Softwareentwicklung im Eiltempo W3L AG info@w3l.de 2012 2 Agenda Motivation Softwareentwicklung im Eiltempo Was ist LightSwitch? Merkmale Zielgruppe LightSwitch

Mehr

Message Oriented Middleware am Beispiel von XMLBlaster

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

Mehr

Uberlegungen Einsatzgebiete Virtualisierungslosungen Fazit Hardwarevirtualisierung. Virtualisierung. Christian Voshage. 11.

Uberlegungen Einsatzgebiete Virtualisierungslosungen Fazit Hardwarevirtualisierung. Virtualisierung. Christian Voshage. 11. slosungen 11. Mai 2009 Inhaltsverzeichnis Uberlegungen slosungen 1 Uberlegungen Grunduberlegungen Vorteile Hardware-Emulation Nachteile 2 Servervirtualisierung Clientvirtualisierung 3 slosungen 4 5 Uberlegungen

Mehr

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Martin Däumler Matthias Werner Lehrstuhl Betriebssysteme Fakultät für Informatik

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Architekturen mobiler Multi Plattform Apps

Architekturen mobiler Multi Plattform Apps Architekturen mobiler Multi Plattform Apps Wolfgang Maison & Felix Willnecker 06. Dezember 2011 1 Warum Multi- Plattform- Architekturen? Markt. Apps für Smartphones gehören zum Standardinventar jeder guten

Mehr

JE Web Services. Hinweise. Beschreibung. Doku.-Version: 1.0 Letzte Änderung: 02.02.2011

JE Web Services. Hinweise. Beschreibung. Doku.-Version: 1.0 Letzte Änderung: 02.02.2011 Beschreibung Hinweise Doku.-Version: 1.0 Letzte Änderung: 02.02.2011 http://www.jacob-computer.de/kontakt.html software@jacob-elektronik.de Inhaltsverzeichnis 1. Inhaltsverzeichnis Hinweise... 1 1. Inhaltsverzeichnis...

Mehr

Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2

Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2 Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2 Basis: HiScout 2.5 Datum: 17.06.2015 14:05 Autor(en): HiScout GmbH Version: 1.1 Status: Freigegeben Dieses Dokument beinhaltet 13 Seiten.

Mehr

Der neue NetMan Neue Chancen! Neue Konzepte! Neue Lösungen!

Der neue NetMan Neue Chancen! Neue Konzepte! Neue Lösungen! Der neue NetMan Neue Chancen! Neue Konzepte! Neue Lösungen! Michael Etscheid 94. Deutscher Bibliothekartag 2005 in Düsseldorf 26/06/2003 NetMan Kernfunktionen NetMan ist die Lösung für Ihr Anwendungsmanagement

Mehr

Versionskontrolle mit Subversion

Versionskontrolle mit Subversion mit im Rahmen der Projektarbeit "Moderne Methoden der Parallelverarbeitung" Michael Süß Universität Kassel http://www.se.e-technik.uni-kassel.de/se/index.php?id=494 Michael Süß, November 23, 2004 mit -

Mehr

Systemvoraussetzungen Across v6 (Stand 03.11.2014)

Systemvoraussetzungen Across v6 (Stand 03.11.2014) (Stand 03.11.2014) Copyright 2014 Across Systems GmbH Der Inhalt dieses Dokuments darf ohne die schriftlich erteilte Genehmigung der Across Systems GmbH weder kopiert noch in sonstiger Art und Weise an

Mehr

SOAP Simple Object Access Protocol

SOAP Simple Object Access Protocol Informatikseminar Tobias Briel Überblick 1. Einführung - was ist? 2. Middlewaretechnologie 3. Aufbau von Nachrichten 4. Vergleiche 5. Beispielanwendung 6. Zusammenfassung 1 Einführung was ist Soap? neue

Mehr

Open Source IDE - eclipse ETIS SS04

Open Source IDE - eclipse ETIS SS04 Open Source IDE - eclipse ETIS SS04 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2 Motivation

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

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001 V3.05.001 MVB3 Admin-Dokumentation Einrichten eines Servers für MVB3 ab Version 3.5 Inhalt Organisatorische Voraussetzungen... 1 Technische Voraussetzungen... 1 Konfiguration des Servers... 1 1. Komponenten

Mehr

Systemvoraussetzungen

Systemvoraussetzungen [Stand: 10.02.2014 Version: 37.0] Hier erhalten Sie eine Übersicht zu den für alle Software-Produkte von ELO Digital Office GmbH. Inhalt 1 ELOprofessional 2011... 5 1.1 Server 2011... 5 1.1.1 Windows...

Mehr

Virtualisierung ein Überblick

Virtualisierung ein Überblick Virtualisierung ein Überblick Frank Hofmann Potsdam 18. April 2007 Frank Hofmann (Potsdam) Virtualisierung ein Überblick 18. April 2007 1 / 33 Gedanken zum Thema Fragen, die sich jeder stellt Virtualisierung

Mehr

Exception Handling, Tracing und Logging

Exception Handling, Tracing und Logging Exception Handling, Tracing und Logging Proseminar Objektorientiertes Programmieren mit.net und C# Tomas Ladek Institut für Informatik Software & Systems Engineering Agenda Exceptions Allgemeines Implementierung

Mehr

Netzwerklizenz: Bitte beachten

Netzwerklizenz: Bitte beachten Netzwerklizenz: Bitte beachten Trimble Navigation Limited Engineering and Construction Division 935 Stewart Drive Sunnyvale, California 94085 U.S.A. +1-408-481-8000 Telefon +1-800-874-6253 (Gebührenfrei

Mehr

Java-Programmierung mit Visual J++ 1.1

Java-Programmierung mit Visual J++ 1.1 Torsten Schlabach Java-Programmierung mit Visual J++ 1.1 Java verstehen und effektiv nutzen ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menio Park, California

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

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel 2.6 Managed Code, Angepasste Java

Mehr

COI-BUSINESSFLOW SOAP-SERVER MODUL INFORMATION

COI-BUSINESSFLOW SOAP-SERVER MODUL INFORMATION COI-BUSINESSFLOW SOAP-SERVER MODUL INFORMATION Präambel Die COI GmbH entwickelt seit 1988 moderne, prozessorientierte Lösungen rund um die Themen Archivierung, Dokumentenmanagement und Workflow. Als kompetenter

Mehr

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05. IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous

Mehr

M@School - Zugriff von zuhause auf die Tauschlaufwerke

M@School - Zugriff von zuhause auf die Tauschlaufwerke Bildung und Sport M@School - Zugriff von zuhause auf die Tauschlaufwerke Inhaltsverzeichnis 1.Einige Infos zum Thema WebDAV...2 1.1 Was steckt hinter WebDAV?...2 1.2 Erweiterung des HTTP-Protokolls...2

Mehr

Einleitung. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Einleitung. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 V. Sieh Einleitung (WS14/15) 1 18 Organisatorisches

Mehr

Marketing Update. Enabler / ENABLER aqua / Maestro II

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

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

eytron VMS Webanwendung Fehlersuche und -Behebung

eytron VMS Webanwendung Fehlersuche und -Behebung eytron VMS Webanwendung Fehlersuche und -Behebung 2009 ABUS Security-Center GmbH & Co. KG, Alle Rechte vorbehalten Diese Anleitung soll Ihnen Unterstützung für den Fall geben, dass die Webanwendung nach

Mehr

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014 Entwicklungsumgebungen Packer, Vagrant, Puppet Alexander Pacnik Mannheim, 10.11.2014 inovex... über inovex und den Referenten 2 Entwicklungsumgebungen... Übersicht Einführung Packer Konfiguration Packer

Mehr

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland 360.NET Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland Was ist.net? Eine Strategie Eine Plattform Eine Laufzeitumgebung Eine Software-Sammlung Ein Set von Services Warum so ein Framework?

Mehr

Windows Desktop Application Monitoring mit AutoIt

Windows Desktop Application Monitoring mit AutoIt Sebastian Lederer dass IT GmbH slederer@dass-it.de Windows Desktop Application Monitoring mit AutoIt Agenda Werbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter

Mehr

WINDOWS APPLIKATIONEN UNTER LINUX/UNIX SECURE REMOTE ACCESS

WINDOWS APPLIKATIONEN UNTER LINUX/UNIX SECURE REMOTE ACCESS WINDOWS APPLIKATIONEN UNTER LINUX/UNIX SECURE REMOTE ACCESS Dipl.-Ing. Swen Baumann Produktmanager, HOB GmbH & Co. KG April 2005 Historie 2004 40 Jahre HOB Es begann mit Mainframes dann kamen die PCs das

Mehr

Herzlich willkommen im Modul Web-Engineering

Herzlich willkommen im Modul Web-Engineering Herbst 2014 Herzlich willkommen im Modul Web-Engineering Wirtschaftsinformatik: 5. Semester Dozenten: Rainer Telesko / Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Martin Hüsler und Rainer Telesko

Mehr

Übungen zur Vorlesung. Betriebssysteme

Übungen zur Vorlesung. Betriebssysteme Übungen zur Vorlesung Betriebssysteme Wintersemester 2015 Patrick Kendzo ppkendzo@gmail.com Inhalt Virtuelle Maschine -Eine kleine Einführung Damn Small Linux (DSL) Embedded Eine Einführung Aufgabe 1:

Mehr

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

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

Mehr

Persona-SVS e-sync auf Windows Terminal Server

Persona-SVS e-sync auf Windows Terminal Server Persona-SVS e-sync auf Windows Terminal Server 2014 by Fraas Software Engineering GmbH Alle Rechte vorbehalten. Fraas Software Engineering GmbH Sauerlacher Straße 26 82515 Wolfratshausen Germany http://www.fraas.de

Mehr

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) 1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein

Mehr

Ajax & GWT. Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina

Ajax & GWT. Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina Ajax & GWT Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina Ajax Technisches Verfahren, bei dem Browser aktualisierte Inhalte nicht mehr synchron

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger Eine erste CORBA Anwendung Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung:

Mehr

Konzepte von Betriebssystem-Komponenten Middleware:.NET Remoting

Konzepte von Betriebssystem-Komponenten Middleware:.NET Remoting Konzepte von Betriebssystem-Komponenten Middleware:.NET Remoting André Frimberger 16.11.2004 1 Was ist.net Remoting?.NET Remoting ist ein Framework aus.net, welches die Interprozesskommunikation zwischen

Mehr

Eine Taxonomie und Bewertung von Cloud Computing Diensten aus Entwicklersicht

Eine Taxonomie und Bewertung von Cloud Computing Diensten aus Entwicklersicht Eine Taxonomie und Bewertung von Cloud Computing Diensten aus Entwicklersicht Universität der Bundeswehr München Mario Golling und Michael Kretzschmar Fakultät für Informatik E-Mail: mario.golling@unibw.de

Mehr

[DIA] Webinterface 2.4

[DIA] Webinterface 2.4 [DIA] Webinterface 2.4 2 Inhalt Inhalt... 2 1. Einleitung... 3 2. Konzept... 4 2.1 Vorteile und Anwendungen des... 4 2.2 Integration in bestehende Systeme und Strukturen... 4 2.3 Verfügbarkeit... 5 3.

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

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