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.

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

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

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

Vorlesung AFCW, Microsoft.NET Wintersemester 2002/03. Völlig neue Systemstruktur als Antwort auf Java

Vorlesung AFCW, Microsoft.NET Wintersemester 2002/03. Völlig neue Systemstruktur als Antwort auf Java .NET Vorlesung Application Frameworks and Componentware Peter Sturm Universität Trier.NET Völlig neue Systemstruktur als Antwort auf Java Assembly = Komponente Zwischensprache (IL = Intermediate Language)

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

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

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

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

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

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

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

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

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

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

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

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes 1 XSS: Cross-Site Scripting 1.) Es gelangen Daten in den Web-Browser, die Steuerungsinformationen

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

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

.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

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

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

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

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

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

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

C++ mit. Microsoft Visual C++ 2008. Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.

C++ mit. Microsoft Visual C++ 2008. Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows. Richard Kaiser C++ mit Microsoft Visual C++ 2008 Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.NET-Programmierung Mit CD-ROM Geleitwort Wenn man heute nach Literatur über Programmiersprachen

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

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2) Referat im Rahmen des Proseminars Internettechnologie WS 2007/2008 Thema: Web Services und serviceorientierte Architekturen (SOA) vorgelegt von: Intelligente Web Services sind für das Informationszeitalter,

Mehr

peer-to-peer Dateisystem Synchronisation

peer-to-peer Dateisystem Synchronisation Ziel Realisierungen Coda Ideen Fazit Literatur peer-to-peer Dateisystem Synchronisation Studiendepartment Informatik Hochschule für Angewandte Wissenschaften Hamburg 30. November 2007 Ziel Realisierungen

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

Systemvoraussetzungen für ConSol*CM Version 6.10.2 Architektur Überblick

Systemvoraussetzungen für ConSol*CM Version 6.10.2 Architektur Überblick Systemvoraussetzungen für ConSol*CM Version 6.10.2 Architektur Überblick ConSol*CM basiert auf einer Java EE Web-Architektur, bestehend aus den folgenden Kern-Komponenten: JEE Application Server für die

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

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

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

Ü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

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

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

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

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

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

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

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

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1 Automatisierte Erstellung von Software-Builds und -dokumentationen Teil 1 Autoren: Hagedorn, Robert; Denninger, Oliver Kontakt: {hagedorn denninger}@fzi.de Web: http://zfs.fzi.de Ort, Datum: Karlsruhe,

Mehr

Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2 Windows Server 2012 Windows Server 2012 R2

Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2 Windows Server 2012 Windows Server 2012 R2 Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2 Windows Server 2012 Windows Server 2012 R2 Basis: HiScout 3.0 Datum: Autor(en): HiScout GmbH Version: 1.3 Status: Freigegeben Dieses Dokument

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

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 WebSphere MQ Teil 3 Trigger el0100 Copyright W. G. Spruth,

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

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

Browser mit SSL und Java, welcher auf praktisch jedem Rechner ebenso wie auf vielen mobilen Geräten bereits vorhanden ist

Browser mit SSL und Java, welcher auf praktisch jedem Rechner ebenso wie auf vielen mobilen Geräten bereits vorhanden ist Collax SSL-VPN Howto Dieses Howto beschreibt wie ein Collax Server innerhalb weniger Schritte als SSL-VPN Gateway eingerichtet werden kann, um Zugriff auf ausgewählte Anwendungen im Unternehmensnetzwerk

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

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler Inhalt Was ist.net Was steckt dahinter Warum ist.net so wie es ist Die Säulen von.net.net Framework 2.0 / VisualStudio 2005 Beispiel Referenzen & Links

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Inhalt und Ziele. Homepage von Anfang an. Herzlich Willkommen! HTML Syntax; grundlegende Grafik- und Bildbearbeitung für das Internet;

Inhalt und Ziele. Homepage von Anfang an. Herzlich Willkommen! HTML Syntax; grundlegende Grafik- und Bildbearbeitung für das Internet; Homepage von Anfang an Herzlich Willkommen! Caroline Morhart-Putz caroline.morhart@wellcomm.at Inhalt und Ziele!! HTML Grundlagen - die Sprache im Netz; HTML Syntax;!! Photoshop - Optimieren von Bildern,

Mehr

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt. Arbeitsblätter Der Windows Small Business Server 2011 MCTS Trainer Vorbereitung zur MCTS Prüfung 70 169 Aufgaben Kapitel 1 1. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

Mehr

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver Eine Firewall für Lexware professional oder premium konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Die Firewall von Windows 7 und Windows 2008 Server... 2 4. Die Firewall

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

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

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

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

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

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

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

Ü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

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

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

Informatives zur CAS genesisworld-administration

Informatives zur CAS genesisworld-administration Informatives zur CAS genesisworld-administration Inhalt dieser Präsentation Loadbalancing mit CAS genesisworld Der CAS Updateservice Einführung in Version x5 Konfigurationsmöglichkeit Sicherheit / Dienstübersicht

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

Office in Java. 2. Info-Point Urs Frei

Office in Java. 2. Info-Point Urs Frei Office in Java 2. Info-Point Urs Frei Problemstellung: Zwei Motivationen Daten direkt im richtigen Format Excel nicht über Zwischenformat csv In Word Bereichte erstellen Office fernsteuern Rechtschreibeprüfung

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

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

Benutzerhandbuch. Neukirchen

Benutzerhandbuch. Neukirchen Benutzerhandbuch Neukirchen August 2015 Kontakt: Kai Hübl Lambertsberg 17 D-34626 Neukirchen kai.huebl@asneg.de Contents 1 Einleitung... 5 1.1 Inhalt... 5 1.2 OPC UA Client Stack... 5 1.3 OPC UA Server

Mehr

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Jörg Rödel Virtualization - Whats out there? Virtualisierung hat bereits längere Geschichte auf x86 Startete mit VMware Setzte

Mehr

Systemanforderungen Verlage & Akzidenzdruck

Systemanforderungen Verlage & Akzidenzdruck OneVision Software AG Inhalt Asura 10.2, Asura Pro 10.2,Garda 10.2...2 PlugBALANCEin 10.2, PlugCROPin 10.2, PlugFITin 10.2, PlugRECOMPOSEin 10.2, PlugSPOTin 10.2,...2 PlugTEXTin 10.2, PlugINKSAVEin 10.2,

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

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

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

Adobe Flex & Grails RIA, REST und XML

Adobe Flex & Grails RIA, REST und XML Adobe Flex & Grails RIA, REST und XML Pascal Schudel Consultant pascal.schudel@trivadis.com Mischa Kölliker Principal Consultant mischa.koelliker@trivadis.com JUGS Zürich, 8. Juli 2010 Basel Bern Lausanne

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

Methoden des Feldbuszugriffs bei PCs unter MS-Windows - ein State-of-the-Art-Report

Methoden des Feldbuszugriffs bei PCs unter MS-Windows - ein State-of-the-Art-Report Methoden des Feldbuszugriffs bei PCs unter MS-Windows - ein State-of-the-Art-Report Prof. Dr.-Ing. Jörg Böttcher, Deggendorf Zusammenfassung Der vorliegende Beitrag gibt einen Überblick über die heute

Mehr

Alexander Schmidt/Andreas Lehr. Windows 7. richtig administrieren. 152 Abbildungen

Alexander Schmidt/Andreas Lehr. Windows 7. richtig administrieren. 152 Abbildungen Alexander Schmidt/Andreas Lehr Windows 7 richtig administrieren 152 Abbildungen Inhaltsverzeichnis 1 Grundlagen, Installation & Rollout 11 1.1 Grundlagen 12 1.1.1 Versionen und Editionen 12 1.1.2 Prüfung

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

KOGIS Checkservice Benutzerhandbuch

KOGIS Checkservice Benutzerhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 KOGIS Checkservice Benutzerhandbuch Zusammenfassung Diese Dokumentation beschreibt die Bedienung des KOGIS Checkservice. 4.2.2015

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

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

8a. Exkurs.NET. 8a.1.NET Architektur

8a. Exkurs.NET. 8a.1.NET Architektur 8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++

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

SPECTRUM 4.0 Netzwerk-Installation

SPECTRUM 4.0 Netzwerk-Installation SPECTRUM 4.0 Netzwerk-Installation Allgemeines zu SPECTRUM 4.0 - Lieferumfang - Lizenzrechner + CodeMeter-Stick - Programmversion - Einzelkomponenten - Begriffe Basisdaten, Projektverzeichnis 1. Einrichten

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

IT Systeme / Mobile Kommunikation HOB privacy-cube - Remote Desktop Zugang über das Internet

IT Systeme / Mobile Kommunikation HOB privacy-cube - Remote Desktop Zugang über das Internet IT Systeme / Mobile Kommunikation HOB privacy-cube - Remote Desktop Zugang über das Internet Seite 1 / 5 HOB privacy-cube Wir können ihnen das Gerät nach ihren Wünschen vorkonfigurieren. Angaben des Herstellers

Mehr

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG 05.07.2012 Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 2 2 Agenda 01 Einführung 02

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

Informationen zur Lizenzierung von Windows Server 2008 R2

Informationen zur Lizenzierung von Windows Server 2008 R2 Informationen zur Lizenzierung von Windows Server 2008 R2 Produktübersicht Windows Server 2008 R2 ist in folgenden Editionen erhältlich: Windows Server 2008 R2 Foundation Jede Lizenz von, Enterprise und

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

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

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

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Neuigkeiten in Microsoft Windows Codename Longhorn. 2006 Egon Pramstrahler - egon@pramstrahler.it

Neuigkeiten in Microsoft Windows Codename Longhorn. 2006 Egon Pramstrahler - egon@pramstrahler.it Neuigkeiten in Microsoft Windows Codename Longhorn Windows Server - Next Generation Derzeit noch Beta Version (aktuelles Build 5308) Weder definitiver Name und Erscheinungstermin sind festgelegt Direkter

Mehr

Durch Standardisierung können Webservices von jedem Cluster verwendet werden, unabhängig von Betriebssystem und verwendeter Sprache.

Durch Standardisierung können Webservices von jedem Cluster verwendet werden, unabhängig von Betriebssystem und verwendeter Sprache. Service Oriented Architecture einfach nutzen RPG in der modernen Software-Architektur Die technologische Entwicklung hat uns ein neues Konzept beschert: SOA Service Oriented Architecture. Dabei handelt

Mehr