Seminar „Verteilte Systeme“ Thomas Bischoff Microsoft .NET Seminar „Verteilte Systeme“ Thomas Bischoff
Inhaltsübersicht Was ist .NET? Architektur Bestandteile .NET versus J2EE .NET
Inhaltsübersicht Was ist .NET? Architektur Bestandteile .NET versus J2EE .NET
Was ist .NET? Kombination aus: Web Services .NET Enterprise Server .NET Framework Web Services: Informationsfluss durch das Internet Enterprise Server: Zusammenstellung verschiedener Server (SQL,…) Frameworks: Zusammenstellung der Sprachplattform .NET
Inhaltsübersicht Was ist .NET? Architektur Bestandteile .NET versus J2EE .NET
.NET – Architektur .NET
Inhaltsübersicht Was ist .NET? Architektur Bestandteile .NET versus J2EE .NET
Bestandteile - .NET Framework
Framework – Namensräume, Klassen Hierarchische Aufteilung vorgefertigter Methoden, Funktionen sowie Variablen für alle .NET- tauglichen Programmiersprachen Aufteilung nach Anwendungen .NET
Bestandteile – Common Language Runtime Laufzeitsystem für alle von .NET unterstützten Sprachen Speicherverwaltung Prozess – und Threadmanagement Durchsetzung der Sicherheitsmechanismen Auflösen der Bezüge auf andere Komponenten .NET
Laufzeitsystem - Funktionsweise .NET
Laufzeitsystem - Funktionsweise Namespace Calculator { using System; public class Calc { public Calc() {} public int Add( int x, int y) { return x+y; } public static int Main(string[] args) { calc c new Calc(); int ans = c.Add(10, 48); Console.WriteLine("10+48 = {0}.“, ans); return 0; }} Module Module1 Class Calc public Function Add(ByVal x As Integer, ByVal y As Integer) As Integer return x+y End Function EndClass Sub Main() Dim ans As Integer Dim c As New Calc() ans = c.Add(10,48) Console.WriteLine("10+48 = {0}.", ans) End Sub End Module .NET
Laufzeitsystem - Funktionsweise .method public hidebysig instance int32 Add(int32 x, int32 y) il managed { //Code size 8 (0x8) .maxstack 2 .locals ([0] int32 V_0) IL_0000: ldarg.1 IL_0001: ldarg.2 IL_0002: add IL_0003: stloc.0 IL_0004: br.s IL_0006 IL_0006: ldloc.0 IL_0007: ret } //end of method Calc::Add .method public hidebysig instance int32 Add(int32 x, int32 y) il managed { //Code size 11 (0xb) .maxstack 2 .locals init ([0] int32 Add) IL_0000: nop IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: add.ovf IL_0004: stloc.0 IL_0005: nop IL_0006: br.s IL_0008 IL_0008: nop IL_0009: ldloc.0 IL_000a: ret } //end of method Calc::Add .NET
Laufzeitsystem - MSIL Manifest Typ-Metadatei MSIL-Code Resource refernziert andere verwandte Dateien Typ-Metadatei beschreiben alle verwendeten Typen (Klassen, Strukturen, Aufzählungen,…) beschreiben Members der Typen MSIL-Code Resource Bilder,... .NET
Laufzeitsystem - Merkmale Common Type System: Konzept für Datentypen, welches von Programmier- sprachen unabhängig ist JIT- Compiler: übersetzt MSIL- Code in zielmaschinenabhängige Maschinen- sprache Garbage Collector: Speicherverwaltung Ausnahmebearbeitung .NET
Bestandteile – Web Services Bereitstellung von Softwarelösungen via Internet durch Zugriff auf sprachunabhängige Assemblys unter Verwendung von HTTP, HTTP GET, HTTP POST, SOAP Übertragung als XML, früher SDL .NET
Bestandteile – Enterprise Server BizTalk Server 2000: Integrationsserver zum Vereinen verschiedener Standards für den Informationsaustausch Orchestration: Erstellung von Workflows durch Verknüpfung verschiedener Plattformen, Anwendungen und Diensten Messaging: Informationsaustausch zwischen Anwendung und Dienst .NET
Bestandteile – Enterprise Server SQL Server 2000 Exchange 2000 Server Host Integration Server 2000 Internet Security and Acceleration Server 2000 (ISA Server) Datenbankanbindung an das Internet .NET
Inhaltsübersicht Was ist .NET? Architektur Bestandteile .NET versus J2EE .NET
.Net vs. J2EE Komplettprodukt der Firma Microsoft Bestandteile: .NET Framework Laufzeitsystem Enterprise Server Web Service Architektur der Firma Sun, IBM,… Bestandteile: Java Sprachsystem Client – Modell über HTTP Middle-Tier (EJB) Programmer Enterprise API .NET
Laufzeitumgebung .Net vs. J2EE Common Language Runtime Übersetzung des Programmcode in MSIL Übersetzung in ausführbaren Code abhängig von der Zielhardware Java Virtual Machine Übersetzung des Programmcodes in einen Zwischencode Übersetzung erfolgt direkt, ohne Anpassung .NET
Neutralität .Net vs. J2EE gebunden an das Microsoft Betriebssystem .NET Plattform unabhängig, weder an Hard- noch an Software gebunden .NET
Web Services, Zusammenarbeit .Net vs. J2EE offene Standards: XML SOAP HTTP strenge Technologie- unabhängigkeit Standards: IIOP EJB Java-RMI an komplette J2EE- Umgebung gebunden kein einheitlicher Standard in der Implementierung XML Extensible Markup Language SOAP Simple Object Access Protokoll KEINE ARBEIT MIT OBJEKTEN SONDERN ZEICHENKETTEN HTTP HyperText Transfer Protokoll UDDI IIOP Internet InterORB Protokoll Datenaustausch über HTTP verwendet SOAP – eine XML Sprache .NET
Framework - Support .Net vs. J2EE einheitliche Hierarchie in den Namenräumen Arbeiten mit unterschiedlichen Treiberversionen möglich je nach Entwickler unterschiedliche Hierarchien in den Packages .NET
Sprachunterstützung .Net vs. J2EE durch einheitlichen Zwischencode MSIL von Programmier-sprachen unabhängig festgelegt auf Java Interaktion mit C(++) durch JNI (Java native Interface) durch CORBA Implementierung .NET
Austauschbarkeit .Net vs. J2EE durch strenge Reglementierung der Schnittstellen sind Komponenten austauschbar verschiedene J2EE-Systeme müssen durch unterschiedliche Implementierungen oder Zusammen-stellungen nicht zusammen passen .NET
.Net vs. J2EE: Gemeinsamkeiten in Webseite eingebetteter Code Java-Applets Dynamische Webseitengestaltung ASP.NET (Active Server Pages) JSP (Java Server Pages) Idee des Web-Service .NET
.Net vs. J2EE: Gemeinsamkeiten Übersetzung in Zwischencode JVM (Java Virtual Machine) CLR (Common Language Runtime) Sicherheit: Kryptographie Funktionen zur sicheren Datenübermittlung Zugriffsschutz für Codeteile Java: Security Manager .NET: Code Access Security .NET
.Net vs. J2EE: In J2EE fehlende Komponenten Firewall-Funktion Caching von HTML Seiten Programmiertool eCommerce Framework Business to business orchestration Firewall ISA Caching ISA, ASP.NET .NET
Verwendete Literatur TROELSEN, Andrew: C# und die .NET-Plattform, mitp-Verlag Bonn, 1. Auflage 2002 VASTERS, OELLERS, JAVIDI, JUNG, FREIBERGER, DePETRILLO: Microsoft .net Crashkurs, Microsoft Press Deutschland, 2001 LOVISCACH, SCHULZ, VIOLKA: Sunspiration .NET und SunONE im Plattformvergleich, CT magazin für computer technik, H8752, 4/2002 SIERING, Peter: Das Microsoft-Internet .Net und was dranhängt, CT magazin für computer technik, H8752, 4/2002 PROSISE: Entwicklerbuch Microsoft .NET, Microsoft Press Deutschland, 2002 .NET
Verwendete Internetdokumente http://www.dotnetextreme.com/gen.asp http://www.objectwatch.com/FinalJ2EEandDotNet.doc .NET
ENDE Der Vortrag über .Net ist nun zu ende. Ich bedanke mich recht herzlich für Ihre Aufmerksamkeit! Thomas Bischoff .NET