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

DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

DCOM und .NETDCOM und .NET

B. Sc. Tobias Buchloh

Seminar Software-EntwurfFachgebiet Software Engineering, Institut für Angewandte Informatik

Universität Hannover

2004-12-21

Page 2: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

2Tobias Buchloh: DCOM und .NET

GliederungGliederung

• Motivation

• Einordnung

• (D)COM

• .NET

• COM+

• Vergleich

• Fazit

Page 3: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

3Tobias Buchloh: DCOM und .NET

MotivationMotivation

Presentation

Business Logic

Data

Page 4: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

4Tobias Buchloh: DCOM und .NET

KomponentenKomponenten

komponenteschnittstelle

Eine Komponente ist ein abgeschlossener, binärer Software-Baustein, der eine anwendungsorientierte,

semantisch zusammengehörende Funktionalität besitzt, die nach Außen über Schnittstellen

zur Verfügung gestellt wird.

Lehrbuch der Software-Technik I, Balzert

Eine Komponente ist das, was man einzeln kaufen kannum daraus ein System zu bauen.

Unbekannter Verfasser

Page 5: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

5Tobias Buchloh: DCOM und .NET

Komponenten-basierte EntwicklungKomponenten-basierte Entwicklung

• Komponentenmodelle:– Client:

• JavaBeans von SUN• COM/ActiveX und .NET von Microsoft

– Server:• COM+ von Microsoft• Enterprise JavaBeans von SUN• CORBA von OMG

• Eigenschaften:– Sprachunabhängigkeit– Interoperabilität– Plattformunabhängigkeit– Verteilbarkeit– Versionierbarkeit

• Erst wenig Unterstützung durch Sprachkonstrukte

komponenteschnittstelle

Page 6: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

6Tobias Buchloh: DCOM und .NET

EinordnungEinordnung

OOAD

Design Patterns

Metriken

UML

OOP

Architektur

n-Schichten

Software-EntwurfHilfsmittel

beurteilen

lösen Design-Problemewichtiger Bestandteil

SonderfallClient/Server

entsteht

Programmiertechnik

Teil

J2EE DCOM.NET

implementieren

Page 7: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

7Tobias Buchloh: DCOM und .NET

(D)COM(D)COM

• (Distributed) Component Object Model

• Software-Architektur für verteilte Komponenten

• Binärstandard

• Löst die Probleme– Interoperabilität– Sprachunabhängigkeit– Verteilbarkeit– (Versionierbarkeit)– (Plattformunabhängigkeit)

C++

Visual Basic

Java

Page 8: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

8Tobias Buchloh: DCOM und .NET

(D)COM Einsatz (und Buzzwords)(D)COM Einsatz (und Buzzwords)

• Integraler Bestandteil von Windows

• Komponenten beliebiger Größe– einzelne Widgets– Office-Anwendungen– Datenbanken

• Einsatz in– ActiveX– OLE Automation– DDE

Page 9: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

9Tobias Buchloh: DCOM und .NET

(D)COM Interfaces(D)COM Interfaces

• Typisierung und Zugriff über Interfaces

• Gemeinsames Basisinterface IUnknown

• Identifizierung von Objekten und Interfaces über GUID

• Interfaces ändern sich „nie“

• Sprachenunabhängige Beschreibung über IDL

Page 10: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

10Tobias Buchloh: DCOM und .NET

Interface Definition Language (IDL)Interface Definition Language (IDL)

• sprachenunabhängige Beschreibung– Schnittstellen– Type Libraries

• MIDL-Compiler

Page 11: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

11Tobias Buchloh: DCOM und .NET

Rechner 1 oder Prozess 1 Rechner 2 oder Prozess 2

client tuxITux

OrtstransparenzOrtstransparenz

tuxITux

client

Interceptor

ITux ITuxproxy stub

Page 12: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

12Tobias Buchloh: DCOM und .NET

proxy

ObjekterzeugungObjekterzeugung

• Component Object Library ist Teil des Betriebssystems

• Statische Factory-Methode findet Komponenten, erzeugt Instanzen und sorgt für Interaktion

• Komponenten „leben“ in einem Server– .DLL– .EXE– entfernter Rechner

{FFE43-...-AABE}ITux

{BA0023-...-4DBE}

clientITux

{BA0023-...-4DBE}

Page 13: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

13Tobias Buchloh: DCOM und .NET

Beispiel (Client)Beispiel (Client)

Page 14: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

14Tobias Buchloh: DCOM und .NET

Beispiel (Server)Beispiel (Server)

• Microsoft Visual Studio

• ATL COM AppWizard kümmert sich um:– Applikationsgerüst– IDL– DLL– Registrierung der COM Komponenten– Registrierung der DLL mit RegSrv32

Page 15: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

15Tobias Buchloh: DCOM und .NET

Nachteile von (D)COMNachteile von (D)COM

• Keine direkten Sprachkonstrukte

• Keine einheitliche Fehlerbehandlung

• Keine „Garbage Collection“ (IUnknown)

• Verteilt Quellcode auf viele Dateien– IDL– Header– Implementierung– Type Libraries

• Benötigt System-Registry

• RPC-Schnittstelle hatte massive Sicherheitsprobleme

• DLL Hell

Page 16: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

16Tobias Buchloh: DCOM und .NET

.NET.NET

• (Marketing-)Strategie von Microsoft

• Software verbindet– Informationen– Menschen– Maschinen

• Beinhaltet– .NET Framework– IDE's (Visual Studio .NET 2003)– Server (Windows Server, BizTalk, SQL Server)– Client Software (Windows XP, CE)– Authentisierungsdienste (Passport)

• Ziel: schnelle Entwicklung von vernetzten Anwendungen

Page 17: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

17Tobias Buchloh: DCOM und .NET

.NET Framework.NET Framework

• Version 1.1

• Seit Januar 2002

• Besteht aus:– Common Language Specification (CLS),

Visual Basic, C++, Smalltalk, Java, Scheme, ...– Common Type System (CTS)– Common Intermediate Language (CIL)– Laufzeit-Umgebung (CLR) – Klassenbibliothek (FCL)

• Vereinfacht Entwicklung, Kommunikation und Verteilung von Komponenten-basierten Anwendungen

• Standardisiert durch die ECMA

Page 18: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

18Tobias Buchloh: DCOM und .NET

ProgrammiersprachenProgrammiersprachen

• CTS ermöglicht Programmiersprachen-unabhängige Vererbung / Verwendung

• Alle .NET Programmiersprachen werden ge-„managed“

• Direkte Sprachunterstützung für Komponenten in C# durch explizite:– Properties– Events– Metadaten

• Integrierte Hilfe und Dokumentation

• Kein striktes programmierengegen Interfaces

Page 19: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

19Tobias Buchloh: DCOM und .NET

Verteilte Komponenten in .NETVerteilte Komponenten in .NET

• Benutzt Internet-Standards zur Kommunikation (RPC)– HTTP– XML– SOAP

• Interaktion über verschiedene Plattformen

• Einfaches passieren von Firewalls

• Implementiert durch:– Web Services– .NET-Remoting

XML

XML

Binär

Binär

Presentation

Business Logic

Data

Page 20: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

20Tobias Buchloh: DCOM und .NET

AssembliesAssemblies

• Programme bzw. Komponenten werden in Assemblies ausgeliefert

• .dll oder .exe-Datei

• enthält Typ-Informationen und Metadaten

• Versionierung durch „Strong-Names“

• Gemeinsam genutzte Komponenten im GAC des Systems

• Mehrere Versionen einer Assembly können im selben Adressraum koexistieren

• Keine Registrierung nötig! => Keine DLL Hell

Page 21: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

21Tobias Buchloh: DCOM und .NET

Beispiel (einfacher Web-Service)Beispiel (einfacher Web-Service)

Benötigt Internet-Information-Server (IIS) und Visual Studio .NET

Aufruf über SOAP-Nachrichtan den Web-Server

Umwandlung in SOAP-Datentypenübernimmt IDE

Page 22: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

22Tobias Buchloh: DCOM und .NET

Alternative ImplementierungenAlternative Implementierungen

• Zwei freie Open-Source Projekte:– Mono, http://www.go-mono.com

• Implementierung für Unix• Unterstützt von Novell• CLI, CLR, CTS sind schon brauchbar• Ziel ist die komplette Implementierung der FCL (inkl. System.Windows.Form)

– dotGnu, http://dotgnu.org• Implementierung für Handhelds

• Keins hat den vollen Funktionsumfang

• Patentrechtliche Probleme!

Page 23: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

23Tobias Buchloh: DCOM und .NET

COM+ (Services)COM+ (Services)

• Kann von .NET und COM-Komponenten genutzt werden

• .NET Enterprise Services

• Nachfolger von Microsoft Transaction Server (MTS)

• Bietet verschiedene Lösungen für wiederkehrende Probleme– Transaktionen– Object Pooling– Just-In-Time Object Activation– Security– Event Support– Component Message Queueing– Component Load Balancing

Presentation

Business Logic

Data

Page 24: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

24Tobias Buchloh: DCOM und .NET

Beispiel TransaktionenBeispiel Transaktionen

Page 25: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

25Tobias Buchloh: DCOM und .NET

Showdown der TechnologienShowdown der Technologien

Eigenschaft J2EE DCOM .NETSprachenunabhängigkeit - + +Plattformunabhängigkeit + - -Interoperabilität + + +Verteilbarkeit + + +Versionierbarkeit O O +Einfachheit O - +

Page 26: DCOM und - se.uni-hannover.de · • Löst die Probleme – Interoperabilität – Sprachunabhängigkeit – Verteilbarkeit – (Versionierbarkeit) – (Plattformunabhängigkeit)

26Tobias Buchloh: DCOM und .NET

FazitFazit

• COM und .NET erlauben Komponenten-basierte Programmierung

• (D)COM– Komponenten-„Aufsatz“ für Programmiersprachen– Komplizierte und fehleranfällige Programmierung

• .NET– Gesamtkonzept für Komponenten-basierte Anwendungen– Vereinfacht die Entwicklung und Verteilung– Basiert auf Internet-Standards– Aber (noch) keine Plattformunabhängigkeit– Abhängigkeit von einem Anbieter

• COM+– Bietet fertige Lösungen für wiederkehrende Probleme– Sehr gute Werkzeug-Unterstützung (VS .NET)