DCOM und .NET - Das Fachgebiet Software Engineering

Werbung
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
COM+
Vergleich
Fazit
Tobias Buchloh: DCOM und .NET
2
Motivation
Presentation
Business Logic
Data
Tobias Buchloh: DCOM und .NET
3
Komponenten
Eine Komponente ist das, was man einzeln kaufen kann
um daraus ein System zu bauen.
Unbekannter Verfasser
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
komponente
schnittstelle
Tobias Buchloh: DCOM und .NET
4
Komponenten-basierte Entwicklung
•
Komponentenmodelle:
komponente
– Client:
schnittstelle
• 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
Tobias Buchloh: DCOM und .NET
5
Einordnung
Design Patterns
lös
en
OOP
De
s
ign
-P
rob
UML
lem
Programmiertechnik
e
Hilfsmittel
OOAD
wichtiger Bestandteil
Software-Entwurf
entsteht
Metriken
be
n
ile
e
t
ur
Architektur
Teil
Sonderfall
Client/Server
n-Schichten
implementieren
J2EE
.NET
Tobias Buchloh: DCOM und .NET
DCOM
6
(D)COM
•
•
•
•
(Distributed) Component Object Model
Software-Architektur für verteilte Komponenten
Binärstandard
Löst die Probleme
C++
– Interoperabilität
– Sprachunabhängigkeit
– Verteilbarkeit
– (Versionierbarkeit)
– (Plattformunabhängigkeit)
Visual Basic
Java
Tobias Buchloh: DCOM und .NET
7
(D)COM Einsatz (und Buzzwords)
•
•
Integraler Bestandteil von Windows
Komponenten beliebiger Größe
– einzelne Widgets
– Office-Anwendungen
– Datenbanken
•
Einsatz in
– ActiveX
– OLE Automation
– DDE
Tobias Buchloh: DCOM und .NET
8
(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
Tobias Buchloh: DCOM und .NET
9
Interface Definition Language (IDL)
•
sprachenunabhängige Beschreibung
– Schnittstellen
– Type Libraries
•
MIDL-Compiler
Tobias Buchloh: DCOM und .NET
10
Ortstransparenz
client
tux
ITux
Rechner 1 oder Prozess 1
Rechner 2 oder Prozess 2
client
tux
ITux
Interceptor
proxy
ITux
stub
ITux
Tobias Buchloh: DCOM und .NET
11
Objekterzeugung
•
•
•
Component Object Library ist Teil des Betriebssystems
Statische Factory-Methode findet Komponenten, erzeugt Instanzen und
sorgt für Interaktion
{FFE43-...-AABE}
Komponenten „leben“ in einem Server
ITux
{BA0023-...-4DBE}
– .DLL
– .EXE
– entfernter Rechner
proxy
client
ITux
{BA0023-...-4DBE}
Tobias Buchloh: DCOM und .NET
12
Beispiel (Client)
Tobias Buchloh: DCOM und .NET
13
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
Tobias Buchloh: DCOM und .NET
14
Nachteile 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
Tobias Buchloh: DCOM und .NET
15
.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
Tobias Buchloh: DCOM und .NET
16
.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
Tobias Buchloh: DCOM und .NET
17
Programmiersprachen
•
•
•
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 programmieren
gegen Interfaces
Tobias Buchloh: DCOM und .NET
18
Verteilte 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
Presentation
XML
Binär
Business Logic
XML
Binär
Data
Tobias Buchloh: DCOM und .NET
19
Assemblies
•
•
•
•
•
•
•
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
Tobias Buchloh: DCOM und .NET
20
Beispiel (einfacher Web-Service)
Umwandlung in SOAP-Datentypen
übernimmt IDE
Aufruf über SOAP-Nachricht
an den Web-Server
Benötigt Internet-Information-Server (IIS) und Visual Studio .NET
Tobias Buchloh: DCOM und .NET
21
Alternative 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!
Tobias Buchloh: DCOM und .NET
22
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
Presentation
– Component Load Balancing
Business Logic
Data
Tobias Buchloh: DCOM und .NET
23
Beispiel Transaktionen
Tobias Buchloh: DCOM und .NET
24
Showdown der Technologien
Eigenschaft
Sprachenunabhängigkeit
Plattformunabhängigkeit
Interoperabilität
Verteilbarkeit
Versionierbarkeit
Einfachheit
J2EE
+
+
+
O
O
DCOM
+
+
+
O
-
Tobias Buchloh: DCOM und .NET
.NET
+
+
+
+
+
25
Fazit
•
•
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)
Tobias Buchloh: DCOM und .NET
26
Herunterladen