1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle...

19
03.02.2004 Internet Applikationen – Java und .Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. 1 Architektur Moderner Internet Applikationen 22.-24.4.2004 TU Wien/Ausseninstitut Enterprise Computing – Java und .NET DI Christian Donner cd (at) donners.com

Transcript of 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle...

Page 1: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

1

Architektur Moderner

Internet Applikationen

22.-24.4.2004 TU Wien/Ausseninstitut

Enterprise Computing – Java und .NET

DI Christian Donnercd (at) donners.com

Page 2: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

2

Warum der Vergleich Java und .NET?Warum der Vergleich Java und .NET?

Beide Plattformen zusammen teilen sich grob geschätzt wohl 90% Marktanteil im High-End Bereich

Wer eine große Anwendung in Enterprise-Segment entwickeln muß, kommt an dieser Frage nicht vorbei.

Enterprise bedeutet: Multi-tier, verteilt, Legacy-Anbindung, serviceorientiertPHP, Delphi etc. eher im Low-End Bereich angesiedelt

Viele Publikationen zu diesem Thema sind durch Vorurteile oder radikale Positionen verfärbt und liefern wenig Information.

Wir wollen hier, ohne auf Implementierungsdetails einzugehen, einen objektiven und unvoreingenommenen Vergleich vornehmen.

Page 3: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

3

AgendaAgenda

Überblick über beide Plattformen

Technische Unterschiede und Parallelen

Organisatorische und andere Aspekte

Page 4: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

4

Was verstehen wir unter „Java“?Was verstehen wir unter „Java“?

Eine Entwicklungsplattformdie Infrastruktur unter der Anwendung

Eine kontrollierte LaufzeitumgebungSicherheitSkalierbarkeit

Ein Marktingbegriff

Eine wachsened Anzahl von Spezifikationen und StandardsJ2EE bezeichnet die Enterprise-Features

Eine Reihe von Softwareprodukten unterschiedlicher Hersteller

Page 5: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

5

Was verstehen wir unter .NET?Was verstehen wir unter .NET?

Eine Entwicklungsplattformdie Infrastruktur unter der Anwendung

Eine kontrollierte LaufzeitumgebungSicherheit, Skalierbarkeit, Transaction Management, Persistenz

Ein Marktingbegriff

Eher weniger ein Standard oder MarktMono: Open Source Initiative für .Net unter Linux

Ein Softwareprodukt von Microsoft

Page 6: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

6

Was ist .Net noch alles?Was ist .Net noch alles?

Microsoft Marketing verbindet .NET mit vielen anderen Themenz.B. .Net Servers

.NET = Neuer, besser, schöner („brand name“)

Hand in Hand mit .NET geht der Versuch, Web Services als das neue Paradigma für verteilte Anwendungen zu etablieren

Die nächste Version vieler Produkte wird .NET nicht mehr im Namen haben (siehe Windows Server 2003)

Page 7: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

7

Was ist .NET für den Rest der Welt?Was ist .NET für den Rest der Welt?

Eine Entwicklungsplattform mit Klassenbibliotheken und Tools

Java sowohl konzeptuell als auch im Detail sehr ähnlich

Microsofts Version von Java, nur „anders“

Das Zukünftige Windows

Page 8: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

8

Was ist .NET aus der Sicht des Java-Lagers?Was ist .NET aus der Sicht des Java-Lagers?

Microsoft nahm die besten Ansätze von Java und formte daraus .NET

Dahinter verbergen sich die selben Ideen und ähnliche Features, aber eine Menge unterschiedlicher Designentscheidungen im Detail

Manche Bereiche wurden verbessert

.NET ist von Haus aus vollständiger als Java und bedarf nicht der Installation unzähliger Zusatzpakete.

Page 9: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

9

Java aus der Sicht des .Net LagersJava aus der Sicht des .Net Lagers

Eine schwer zu überblickende Sammlung von Standards, die ständig geändert und erweitert wird

Es ist schwer bis unmöglich, zeitgemäße Benutzeroberflächen in Java zu entwicklen

Page 10: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

10

Unterschiedliche PhilosophienUnterschiedliche Philosophien

Java – ein Standard:Eine Sprache, läuft überall

.NET – ein Produkt:Viele Sprachen, läuft nur auf Microsoft Plattform

Der Java-Ansatz über Standardisierung ist in der Praxis nicht ganz so ideal, wie es klingt, denn verschiedene Hersteller interpretieren Standards unterschiedlich. Daher bindet man sich zu einem gewissen Grad an einen Hersteller und verliert dabei an Portabilität.

Sun, Oracle, IBM, BEA

Page 11: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

11

Eine .Net Architektur mit Web ServicesEine .Net Architektur mit Web Services

Page 12: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

12

Eine JavaEine Java//J2EE Architektur mit Web ServicesJ2EE Architektur mit Web Services

Page 13: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

13

Verfügbare ProgrammiersprachenVerfügbare Programmiersprachen

Java Platform:JavaViele andere Sprachen sind verfügbar, aber kaum relevant

.NETVB.NET

Einfach und produktiv

C#.NETNeu, “besser” als Java und C++

J#.NETSchneller Einstieg in .Net für Javaprogrammierer, aber ähnlicher C# als Java

C++.NETAm meisten Kontrolle über die Plattform

Andere Sprachen Dritthersteller implementieren beliebige andere Sprachen (z.B. Cobol.NET)

Page 14: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

14

Unterschiede Java/C#Unterschiede Java/C#

PropertiesJava kennt einen Mechanismus zum Laden von Steuervariablen aus Dateien

DelegatesC# erlaubt den transparenten Aufruf verschiedener Methoden in unterschiedlichen Objekten, sofern sie als „delegate“ angeprochen werden

Value Types (structs)Java kennt nicht die Übergabe von Objekten als Parameter „by value“

UnsignedJava erlaubt nicht die Verwendung des Vorzeichenbits von bytes, shorts, ints und longs

Page 15: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

15

Unterschiede Java/C# (2)Unterschiede Java/C# (2)

Auto-BoxingJava unterstützt erst ab 1.5 die automatische Umwandlung von Primitives in ihre Wrapperklassen (z.B. int -> Integer)

Explicit InterfacesEine Klasse implementiert Methoden eines Interfaces, die aber nicht direkt, sondern nur über das Interface aufgerufen werden dürfen

Page 16: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

16

Page 17: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

17

Page 18: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

18

PerformancePerformance

intmath

longmath

doublemath trig I/O TOTAL

Visual C++ 9.6 18.8 6.4 3.5 10.5 48.8

Visual C# 9.7 23.9 17.7 4.1 9.9 65.3

gcc C 9.8 28.8 9.5 14.9 10.0 73.0

Visual Basic 9.8 23.7 17.7 4.1 30.7 85.9

Visual J# 9.6 23.9 17.5 4.2 35.1 90.4

Java 1.3.1 14.5 29.6 19.0 22.1 12.3 97.6

Java 1.4.2 9.3 20.2 6.5 57.1 10.1 103.1

Python/Psyco 29.7 615.4 100.4 13.1 10.5 769.1

Python 322.4 891.9 405.7 47.1 11.9 1679.0Quelle: Christopher W. Cowell-Shah, Nine Language Performance Round-up (http://www.osnews.com)

Page 19: 1 03.02.2004 Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.

03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.

19

Vielen Dank für Ihre Aufmerksamkeit!