Client/Server-Programmierung

Ähnliche Dokumente
Client/Server-Programmierung

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

9.3 COM und DCOM (Microsoft )

Verteilte Systeme - Überblick

8.3 COM und DCOM (Microsoft)

Andreas Kosch. Software & Support $ > Verlag GmbH

Einführung: Verteilte Systeme - Remote Method Invocation -

Einleitung Von All-in-one-Software zu Webservices 17

Netzwerkprogrammierung unter Linux und UNIX

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

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

Internettechnologien Vorlesung für Master-Studierende Geoinformatik/-management Sommersemester 2017

Internettechnologien Vorlesung für Master-Studierende Geoinformatik/-management Sommersemester 2016

Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER

Kommunikation in verteilten Anwendungen

Inhaltsverzeichnis. Teil I Grundlagen der Programmarchitektur Vorwort... XIII XV XVI XVI

Architekturen Internet-basierter Informationssysteme

Erstellen von Web-Seiten HTML und mehr...

Vergleich.Net und COM

Internet. HTML Programmierung Grundlagen HTML Programmierung für Fortgeschrittene CGI Programmierung PHP Programmierung Programmieren mit JavaScript

J a v a S e r v l e t s

1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI

Inhalt I. Blick in die Geschichte. .NET für kleine und grosse Applikationen

Softwareentwicklung mit Enterprise JAVA Beans

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

9.5 Microsoft.NET

Verteilte Systeme - Java Networking (Sockets) -

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Java als erste Programmiersprache

Einführung in COM Seite 1

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Microsoft.NET und SunONE

C Architektur (Teil 1)

Enterprise JavaBeans Überblick

Programmieren von UNIX-Netzen

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

Profil Stanislaw Szczepaniak

Gliederung Einleitung Die Interprozess Kommunikation Zusammenfassung Fragen. .NET Remoting. André Frimberger

Java 2, Enterprise Edition Einführung und Überblick

Inhalt. 1. Motivation. 2. COM Architektur. 3. COM Implementierung. 4. Zusammenhang zu ATL. 5. Beispiel COM Client/ Server. 6..

Universität Karlsruhe (TH) Moderne Programmiersysteme am Beispiel von.net

Web-basierte Anwendungssysteme PHP-Einführung

Medien und Webtechnologie

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

Einführung... 1 Anwendungsszenarien multimedialer Client-Server Systeme... 1 Aufbau des Buches... 2 Die Entwicklung des multimedialen Internets...

Verteilte Systeme. SoSe Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 11.

Client/Server-Programmierung

Seminar SS 2000 Enterprise Application Intergration

.NET Networking 1. Proseminar Objektorientiertes Programmieren mit.net und C# Matthias Jaros. Institut für Informatik Software & Systems Engineering

Verteilte Systeme - 1. Übung

Internetanbindung von Datenbanken

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Office in Java. 2. Info-Point Urs Frei

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Java-Bausteine für E-Commerce- Anwendungen

Kommunikationsnetze. 7. Das World Wide Web 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten

Java-Grundkurs für Wirtschaftsinformatiker

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

Praktikum Softwareentwicklung 2

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

Client/Server-Programmierung

Enterprise Application Integration Erfahrungen aus der Praxis

Einführung in die Scriptsprache PHP

Kompendium der Web-Programmierung

FRANZIS PROFESSIONAL SERIES. Herbert Burbiel. SOA & Webservices. ~ in der Praxis. 197 Abbildungen

Berater-Profil Senior Web-Developer (OO-Analyse und -Design) Sun Certified Java Programmer

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

Das Interface-Konzept am Beispiel der Sprache Java

<Insert Picture Here> Einführung in SOA

Online-Publishing mit HTML und CSS für Einsteigerinnen

Transkript:

Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 12. Januar 2018 Betriebssysteme / verteilte Systeme Client/Server-Programmierung (1/15) i

Client/Server-Programmierung WS 2017/2018 8 Weitere Client/Server-Technologien Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 431

8 Weitere Client/Server-Technologien... 8.1 Technologien zur Netzwerkprogrammierung Sockets: plattform- und netzwerkunabhängiges Kommunikations- API (Basis jeglicher Client/Server-Kommunikation) Socket = Abstraktion für Kommunikations-Endpunkt Datagramm- und Stream-Sockets bei Verwendung der IP-Protokolle: direkte Kommunikation über UDP bzw. TCP Java bietet vereinfachtes API zur Socket-Kommunikation Literatur: Folien-Skript Rechnernetze II, Kap. 8.1 W.R. Stevens: Programmieren von UNIX-Netzen, Hanser / Prentice Hall, 1992. T. Langner: Verteilte Anwendungen mit Java, Markt + Technik, 2002. Kap. 3 Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 432

8.1 Technologien zur Netzwerkprogrammierung... Sun RPC: einfache RPC-Implementierung einfache IDL, Bindung i.w. nur für C sehr eingeschränkt (z.b. nur ein Parameter pro Prozedur) Literatur: Folien-Skript Rechnernetze II (WS 08/09), Kap. 9.2 W.R. Stevens: Programmieren von UNIX-Netzen, Hanser / Prentice Hall, 1992. DCE RPC: Weiterentwicklung, Basis von Microsoft DCOM IDL mit Bindung an verschiedene Programmiersprachen Schnittstellen an Objekte statt Maschinen gebunden weltweit eindeutige ID (UUID) für jede Schnittstelle Literatur: A. Tanenbaum, M. van Steen: Verteilte Systeme, Pearson Studium, 2003, Kap. 2.2 Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 433

8 Weitere Client/Server-Technologien... 8.2 Technologien für dynamische WWW-Seiten CGI-Skripten (Common Gateway Interface) ausführbare Programme (in beliebigen Sprachen) werden beim Web-Server für bestimmte URLs registriert bei Aufruf der URL startet Web-Server das CGI-Programm als eigenen Prozeß Standard-Eingabe: Rumpf der HTTP-Anfrage d.h. Anfrage-Parameter bei POST-Methode Standard-Ausgabe: Rumpf der HTTP-Antwort Zusätzliche Information durch Umgebungsvariablen, z.b. QUERY_STRING: Parameterstring in der URL nach dem? Vorläufer von Servlets Literatur: Orfali/Harkey, Kap. 11 Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 434

8.2 Technologien für dynamische WWW-Seiten... PHP (PHP: Hypertext Preprocessor) Skript-Sprache, in HTML-Dokumente eingebettet innerhalb von Tags <?php...?> ab PHP 4 mit objektorientierten Konzepten ähnlich zu JSP, aber interpretierte Abarbeitung Literatur: http://www.php.net/ ASP (Active Server Pages) Integration verschiedener Skript-Sprachen (u.a. VB Script, JScript) in HTML-Dokumente innerhalb von Tags <%... %> (Vorbild für JSP) ASP zunächst interpretiert, bei ASP.NET Vorkompilation des Codes analog zu JSP Literatur: http://www.asp.net/ Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 435

8 Weitere Client/Server-Technologien... 8.3 Microsoft.Net und DCOM Konkurrenz / Analogie zu J2EE von Oracle Das.Net-Framework definiert: einheitliche Laufzeitumgebung für alle Microsoft-Sprachen (z.b. Visual Basic, Visual C++, C#) einheitliche Zwischensprache (CIL) mit JIT-Übersetzung einheitliches Typsystem, Garbage Collection, Threads, Sandboxing, Ausnahmen... gemeinsame Klassenbibliothek (etwa analog zu J2EE) u.a. Realisierung von ASP.Net und ADO.Net (Datenbank-Zugriff, vergleichbar zu JDBC) Zusätzlich: Komponentenmodell, Weiterentwicklung von COM+ COM+ = DCOM + MS Transaction + Message Queue Server Kommunikation: u.a. DCOM, Web Services,.Net-Remoting Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 436

8.3 Microsoft.Net und DCOM... COM / DCOM (Distributed Component Object Model) Sprachunabhängiges Komponentenmodell COM-Schnittstelle: binäres API einer Komponente (Array von Funktionszeigern) identifiziert durch GUID (Globally Unique Identifier) identisch mit UUID von DCE-RPC beschrieben in DCOM IDL unveränderbar, ggf. muß neue Schnittstelle erzeugt werden COM-Objekt: Instanz einer Komponente implementiert eine oder mehrere COM-Schnittstellen Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 437

8.3 Microsoft.Net und DCOM... COM / DCOM (Distributed Component Object Model)... Die Schnittstelle IUnknown: muß von jeder COM-Schnittstelle geerbt werden definiert die Methoden QueryInterface(): liefert zu einer über die GUID gegebene Schnittstelle den Zeiger auf diese Schnittstelle zurück bzw. Fehler, falls Schnittstelle nicht unterstützt wird AddRef()/ Release(): Referenz-Zähler Für jede COM-Komponente muß eine Factory realisiert werden u.a. Methode CreateInstance() zur Erzeugung neuer Komponenten-Instanzen Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 438

8.3 Microsoft.Net und DCOM... COM / DCOM (Distributed Component Object Model)... Aufbau einer COM-Schnittstelle: Client Schnittstellen Zeiger COM Objekt Interner Zeiger auf Methoden Tabelle Zeiger auf Methode 1 Zeiger auf Methode 2 QueryInterface() {... } AddRef() {... } Release() {... } "geerbt" von IUnknown Zeiger auf Methode 3 Zeiger auf Methode 4 sayhello() {... } Zeiger auf Methode 5 saygoodby() {... } Methoden Tabelle Methoden Code Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 439

8.3 Microsoft.Net und DCOM... COM / DCOM (Distributed Component Object Model)... COM-Server: Verpackungseinheit von COM-Komponenten DLL, ausführbare Datei (*.exe), Java-Klasse,... enthält Code einer / mehrerer Komponenten, Factories, Registrierungs- und Verwaltungsinformation COM-Server kann lokalisiert sein: im lokalen Prozeß (realisiert als DLL) in eigenem Prozeß auf dem lokalen Rechner (COM-Server ist ausführbares Programm) in eigenem Prozeß auf entferntem Rechner (bei DCOM) auch Remote-Instantiierung möglich DCOM realisiert Zugriffs- und Ortstransparenz Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 440

8.3 Microsoft.Net und DCOM... Unterschiede zw. COM-Objekten und üblichen Objekten In COM existiert keine Objekt-ID COM-Client erhält Referenz auf eine (zustandslose) Schnittstelle, nicht auf ein Objekt Client kann sich nicht mit bestimmter Instanz einer Komponente verbinden (Problem, falls Instanz Zustand hat) Abhilfe durch COM Monikers In COM gibt es keine Mehrfach-Vererbung von Schnittstellen stattdessen: Komponente bietet mehrere Schnittstellen Wiederverwendung von Komponenten durch Containment/Delegation: Weitergabe von Aufrufen Aggregation: QueryInterface() gibt Schnittstellen der inneren Objekte nach außen bekannt Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 441

8.3 Microsoft.Net und DCOM... Containment/Delegation und Aggregation Containment/Delegation: Aggregation: IUnknown IUnknown A Äußeres Objekt A A Äußeres Objekt A B B B B C C C C QueryInterface() gibt Schnittstel len des äußeren Objekts zurück. Implementierung von A gibt Aufrufe an B bzw. C weiter. QueryInterface() gibt Schnittstel le A des äußeren und Schnitt stellen B und C der inneren Objekte zurück. Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 442

8.3 Microsoft.Net und DCOM... Literatur: Hammerschall, Kap. 10 Orfali / Harkey, Kap. 15 Hofmann / Jobst / Schabenberger, Kap. 3 und 4 http://www.microsoft.com/com/ Betriebssysteme / verteilte Systeme Client/Server-Programmierung (13/15) 443