F.6 .NET-Architektur

Werbung
F.6 .NET-Architektur
F.6 .NET-Architektur
F.6 .NET-Architektur
1 Motivation & 1. Ziel (2)
■ Lösung (2)
1 Motivation & 1. Ziel
◆ Ausführung in einem Adressraum + Software-Schutzkonzept
➤ Java (Sun, 1995)
■ Ziel: Effiziente Ausführung sehr vieler Anwendungen
◆ Probleme
➤ Microsoft & Sun
◆ Ausführung in Prozessen ist zu teuer
➤ Ressourcen pro Prozess
➤ Sprachabhängigkeit
➤ Umschaltung zwischen Prozessen
➤ Konzept für mehrere unabhängige Anwendungen in einer JVM
➤ Interprozesskommunikation
◆ gute Ideen
➤ Objektorientierung + Typisierung
■ Lösung (1)
◆ Ausführung in einem Adressraum
➤ CICS (IBM, 1969)
➤ Bytecode mit voller Typinformation
➤ kontrollierte Code-Ausführung + Garbage Collection
◆ Probleme
➤ kein Schutz zwischen Anwendungen
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.15
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
OOVS
OOVS
➤ Fehler in einer Anwendung können Gesamtsystem gefährden
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.16
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
F.6 .NET-Architektur
F.6 .NET-Architektur
2 Motivation & 2. Ziel (2)
3 .NET-Framework — Überblick
■ Web-Anwendungen
■ Sicht des Anwendungsentwicklers
◆ sichere, effiziente Ausführung von Web-Services
◆ Softwareentwicklungsumgebung (Visual Studio .NET) mit umfangreicher
Unterstützung durch Klassenbliotheken
➤ vergleichbar zu Java
◆ flexible Ausführung von Software in heterogenen, verteilten Systemen
■ Lösung
■ Systemarchitektur- und Betriebssystemsicht
◆ Lösung 2 von 1. Ziel
◆ Architektur einer Programmiersprachen-unabhängigen
Ausführungsplattform
◆ Hardware-Plattform-unabhängiger Code
◆ Middleware-Unterstützung für Ausführung und Kommunikation
➤ Common Language Infrastrucure (CLI)
➤ Java und EJB
◆ konkrete Ausführungsumgebung für Windows-Anwendungen:
Betriebssystem innerhalb des Betriebssystems
➤ Common Language Runtime (CLR)
◆ Probleme
➤ Microsoft & Sun
➤ nur Java
➤ Ausführung mehrerer Programme für verschiedene Benutzer
➤ nur bedingter Schutz (durch Typisierung) innerhalb einer JVM,
➤ Ressourcenverwaltung
➤ Gewährleistung von Sicherheit
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.17
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
OOVS
OOVS
aber keine Ressorcenkontrolle
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.18
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
F.6 .NET-Architektur
F.6 .NET-Architektur
4 Sprachunterstützung
5 Common Language Infrastructur — CLI
■ Programme werden in Zwischencode übersetzt
■ definiert die Regeln für die sprach-unabhängige Zusammenarbeit
zwischen Anwendungen bzw. Software-Komponenten
➤ Microsoft Intermediate Language (MSIL)
➤ Common Type System (CTS)
➤ ähnlich zu Java-Bytecode
• welche Datentypen gibt es und wie werden sie behandelt
■ MSIL wurde sprachunabhängig entworfen
➤ Instruktionssatz (MSIL)
➤ nicht auf Java beschränkt
• 220 Befehle, ausgerichtet auf JIT - nicht auf Interpretation
➤ nicht nur objektorientierte Sprachen
➤ Thread-Aufbau
■ Microsoft und Drittanbieter bieten Unterstützung für über 20 Sprachen an
➤ Aufbau von ladbaren Software-Modulen (Assemblies)
➤ C++
• vergleichbar mit jar-Dateien
➤ C# (C++-Derivat mit Ideen aus Java)
➤ Laufzeitunterstützung durch die CLR
➤ Visual Basic
• Laufzeitprüfung für statisch nicht prüfbare Dinge
➤ JavaScript
➤ J# (= Java 1.1.4)
➤ Perl
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.19
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
OOVS
OOVS
➤ COBOL, Smalltalk, APL, Pascal, …
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.20
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
F.6 .NET-Architektur
F.6 .NET-Architektur
6 Common Language Runtime
7 Assemblies
■ Plattform zur kontrollierten Ausführung verschiedener .net-Anwendungen
innerhalb eines Windows-Prozesses
■ Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für .NET
➤ Portable Execution (PE) Files
◆ weitgehend vergleichbar mit Funktion der JVM
■ Metadaten (Manifest) zur Selbstbeschreibung
➤ jeweils nur typ-konforme Operationen erlaubt
➤ Name, Version, Authentisierungsinformation
➤ kein Zugriff auf "fremde" Daten (anderer Funktionen/Objekte)
➤ enthaltene Dateien, Typinformationen
➤ Arraygrenzen-Überprüfung
➤ Liste referenzierter Assemblies
➤ keine Freigabe von noch-referenzierten Objekten
■ statische Assemblies
➤ eingeschränkter Zugriff auf Systemschnittstelle
■ dynamische Assemblies
■ MSIL-Code wird vor der ersten Ausführung überprüft (Verifier) und in
Maschinencode übersetzt (JIT-Compiler)
◆ zur Laufzeit von anderen .NET-Anwendungen erzeugte Assemblies
➤ z. B. zur Template-basierten Codegenerierung in
Entwicklungsumgebungen
■ CLR wird für beim Laden von .NET-Anwendungen (spezielle .exe/.dllDateien) automatisch gestartet
➤ CLR läuft in einem Windows-Prozess ab
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.21
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
OOVS
OOVS
➤ CLR bearbeitet Managed Code
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.22
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
F.6 .NET-Architektur
F.6 .NET-Architektur
8 Virtual Execution System — VES
9 CLR-Domains
■ Teil der CLR
■ eine .NET-CLR wird in einem virtuellen Adressraum ausgeführt
➤ keine Hardware-Kapselung innherhalb der CLR
■ Class Loader
■ Software-Kapselung der Ausführung von Assemblies
■ Verifier
➤ kein direkter Zugriff auf Assemblies anderer Domains möglich
■ Domain-Konzept
➤ CLR verhindert Übergabe von Objekt-Referenzen zwischen Domains
➤ Kapselung der Ausführung von Assemblies
➤ Interaktion nur über speziell gesicherten Inter-Domain-
■ Thread-Unterstützung
Kommunikationsmechanismus möglich
■ Sicherheits-Management
■ eigene Domains werden erzeugt wenn
■ Garbage Collection
➤ Code mit anderen Sicherheits-Einstellungen/Zugriffsrechten geladen wird
■ …
➤ Isolation zwischen Code-Teilen explizit gewünscht wird
➤ Code unabhängig voneinander terminieren können soll
■ Terminierung von Domains
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.23
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
OOVS
OOVS
➤ kontrollierte Freigabe aller belegten Ressourcen
Objektorientierte Konzepte in Verteilten Systemen und Betriebssystemen
 • Universität Erlangen-Nürnberg • Informatik 4, 2003
F-MS.fm 2003-01-29 11.04
F.24
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
Herunterladen