Das Umfeld


[_HOME_] ... [Übergeordnete Seite]  ... [Vorherige Seite] ... [Nächste Seite]


Übersicht:


Motivation

Java Computing - Ein neues Paradigma

Die Java-Technologie, welche gerade einmal um die 1000 Tage alt ist, hat sich schon heute einen festen Platz im Interesse einer rasch und ständig zunehmenden Menge von Entwicklern gesichert. Erst 1995 begann Java sich in Form von winkenden Dukes als sogenannte Applets, die im lokalen Web-Browser ablaufen und in die Web-Pages eingebettet werden, der Welt vorzustellen.

Schon ein Jahr später konnte Java seine Bedeutung auf der Client-Seite festigen. Eigenständige und größere Java Applikationen entstanden. Begriffe wie JDBC, RMI, CORBA und JavaBeans, etc. beschreiben die Vielfältigkeit der Einsatzmöglichkeiten von Java.

Heute gibt es schätzungsweise 2.500.000 professionelle Java-Entwickler, wobei die Dunkelziffer noch recht hoch sein sollte. Allein das Java Development-Kit JDK1.1 wurde 70.000.000 mal von SUN's Homepage bis zum März 1998 aus dem Internet geladen. Zudem haben über 200 Universitäten Java in ihre Vorlesungsveranstaltungen aufgenommen - wie auch schon die FH Wedel. Dadurch wird die Java-Technologie, womit nicht allein die Programmiersprache Java gemeint sein soll, mit Sicherheit schnell ihren Kinderschuhen entwachsen sein und einen festen und erstzunehmenden Platz in den verschiedensten und mitunter auch kritischen Bereichen (wie z.B. unternehmenskritische Applikationen der Informationsverarbeitung) einnehmen.

5thwave.gif (66429 Byte)

Java auf der Serverseite

Wie zuvor geschildet hat Java im Web-Browser das Licht der Welt erblickt und wird uns zielstrebig fortschreitend auch vermehrt auf der Serverseite begegnen.

Die Motivation einen Webserver in Java zu implementieren, entspringt mit Sicherheit nicht dem Wunsch alten Source-Code in eine neue Programmiersprache zu übertragen. Auch dann nicht, wenn sich die Eigenschaften der Programmiersprache Java so einladend und verlockend anhören, wie es oft zitiert wird: "Java is a small, simple, safe, object-oriented, interpreted or dynamically optimized, byte coded, architecture neutral, garbage collected, multithreaded programming language with a strongly typed exception handling mechanism for writing distributed dynamically extensible programs."

Dennoch ist mit dem Stichwort "Source-Code-Portierung" ein wesentlicher Faktor für die Motivation gegeben, einen Webserver in Java zu implementieren.

"Write Once Run Anywhere" ist im Kontext von Java zu einem geflügelten Wort geworden. Das zukünftige Betriebssystem unter dem der Web-Server laufen soll, verliert mehr und mher an Bedeutung. Die alleinige Voraussetzung für die Installation des Servers ist das Vorhandensein einer "Virtuellen Java Maschine". Schon das ist heute in hohem Maße gewährleistet. Eine Unabhängigkeit von einem Betriebssystem ist mit Sicherheit ein entscheidener Vorteil eines Java basierten Servers, wie auch für jede andere Anwendung auch.

"Wiederverwendung von Code bzw. Bibliotheken" wird von Java in einem hohen Maße unterstützt. Das Java Server Toolkit (bzw. das Java Servlet API) stellen  umfangreiche Bibliotheken für die Entwicklung zur Verfügung, die eine Programmierung auf sehr hohem Niveau mit kurzen Entwicklungszyklen zuläßt. Die Produktivitätssteigerung innerhalb der Entwicklung werden teilweise geschätzt auf über 30 %. Die Beispiele , die im Rahmen des gesamten Beitrags dieses Projektes gegeben werden, dürften dies bestätigen.

Java läßt genügend Spielraum für die "dynamische Erweiterung von Funktionalitäten" der Server Anwendung und trägt zu Performance-Steigerungen bei: Servlets verdrängen CGI-Skripte auf der Serverseite (Performance Steigerung durch Vermeidung von Context-Switching). Durch Einführung von JavaServerPages (JSP) wird die dynamische Generierung von HTML-Seiten performanter. JavaBeans mit umfangreichen Funktionen können in eine Web-Page eingebaut werden. All diese hier nur kurz angerissenen Komponenten sollten genügend Beweggründe geben, auch den eigentlichen Server in Java zu implementieren.

JSP_01.gif (12894 Byte)
(Beispiel für Zusammenarbeit verschiedener Java Funktionalitäten)

Ein weiterer Aspekt für die Implementation eines Servers in Java ist die Interoperabilität. Java ermöglicht es Objekte hinzuzufügen oder zu entfernen, während der Server läuft. Dieses Merkmal wird besonders deutlich in der kurzen Diskussion eines Java basierenden Domain Name Servers, die als "Exkurs" in dieser Ausarbeitung enthalten ist. Aber auch für einen HTML-Web-Server ist dies ein interessanter Aspekt (z.B. Veränderungen der Schnittstelle zu Datenbanken ist während der Laufzeit möglich.).

Auch im Bereich "Sicherheit im Netz" wird man seitens Java in hohem Maße unterstützt werden. Dieser Bereich wurde von SUN schon immer seriös und ersthaft verfolgt und wird auch derzeit noch verbessert und erweitert werden. Die genaue Beantwortung der Frage, ob  nun ein Java basierter Webserver wirklich sicherer sein soll als ein herkömmlicher Server, würde hier aber den Rahmen der Recherchen und Ausarbeitungen sprengen.

Bei der heute schon sehr hohen Aktivität im Internet, die in den nächsten Jahren mit Sicherheit noch exponentiell steigen wird, dürfen "Performance-Aspekte" eines Servers nicht vernachlässigt werden. Javaprogramme sind von Natur aus keine "reine" compilierten Programmodule, es wird vielmehr von der verarbeitenden Virtuellen Java Maschine (VJM) ein Byte-Code interpretiert und zur Ausführung gebracht. Interpreter-Systeme haben den berechtigten Ruf, um ein Vielfaches langsamer zu sein im Vergleich zu Compilern. Doch auch hier wird im Hause SUN intensiv an Verbesserungen gearbeitet und es werden neue Technologien entwickelt, die diesen Nachteil mehr als nur kompensieren. Die bisherigen Anstrengungen gibt die folgende Grafik wieder: Performance Steigerungen werden durch Native Threading und Just-In-Time Compilation erreicht. Weitere Verbesserungen dürfte der HotSpot Compiler mit sich bringen, den SUN derzeit entwickelt und voraussichtlich kommerziell vertreiben wird. Der HotSpot Compiler optimiert den zur Ausführung zu bringenden Code, in dem er "on-the-fly" den Byte-Code hinsichtlich Optimierungskriterien hin untersucht. Weiterhin verbessert er die Synchronisierung von Threads und macht den Garbage Collector performanter. Daraus werden kürzere Anlaufzeiten und geringerer Speicherbedarf der Applikationen ermöglicht.

perf.gif (17064 Byte)
(Bisherige Performance Steigerungen von Java)

[Seitenanfang]


Enterprise IT-Architekturen im Wandel

Die IT-Architekturen von heute weisen teilweise folgende Mängel auf:

Wie könnte es in der Zunkunft aussehen?

"Lightbulbs will even have Internet adresses (IP's) one day." George Colony, President of Forrester Research, Cambridge, Mass (29.3.96)

Mit Sicherheit wird die Erfüllung der obigen Aussage noch ein wenig auf sich warten lassen. Dennoch zeichnet sich ein neuer Trend ab. Während heute das Betriebssystem zusammen mit den erforderlichen Applikationen für jeden lokalen PC gekauft und gewartet werden müssen (man denke hier an den Aufwand, der allein bei einem Versionsupdate einer Anwendung entsteht), wird es durch Java ermöglicht, die Applikationen zusammen mit den Daten wieder ins Netz zu verlagern. Dies ermöglicht den Vorteil einer zentralen Daten- wie auch Applikationshaltung. Mit Hilfe eines "Netzcomputers" (NC) hat man an einem beliebigen Ort Zugriff auf alle notwendigen Programme und Daten. Der Hardwareaufwand bei den lokalen PC's kann wieder reduziert werden. ("The network is the computer").

[Seitenanfang]


Bedeutung von JAVA für SUN im Wettbewerb auf dem Markt

"...Java has evolved into a major challenger to Microsoft's Windows family of PC operating systems - faster even than DOS or Windows rose to challenge traditional mainframes ... Java is also well on its way to becoming the most important Internet standard" (Brent Schlender, FORTUNE Magazine, 11.11.96)

Welche Unternehmung im Bereich Soft- und Hardwareentwicklung würde sich nicht die "perfekte Welt" so vorstellen, wie dies in der folgenden Abbildung aus Sicht von SUN skizziert ist:

PerfektWorld.gif (18932 Byte)

Die folgende Abbildung gibt die "wahre" Welt schon etwas realitätsnäher wieder:

RealWorld.gif (39135 Byte)

Was die obige Abbildung jedoch nicht wiedergibt, ist die hohe Dominanz eines anderen Betriebssystem-Herstelles im heutigen Wettbewerb. Duch Java verspricht sich SUN eine höhere "Homogenisierung" des Wettbewerbes, der dadurch wieder ein hohes Maß an Fairness zurückgewinnt.

Heute ist JavaSoft noch ein Technologielieferant für OEM-Applikationen. JavaSoft stellt seine neue Technologie geradezu zum Nulltarif zur Verfügung. Dies geschieht mit Sicherheit nicht aus reinen sozialen Gesichtspunkten. Durch Java beginnt ein Wandel in den IT-Technologien und SUN wird sich mit Sicherheit im zukünftigen Markt, als Lieferant von Software und Hardware Produkten, ein "großes Stück vom Kuchen" sichern können.

Im zukünftigen Markt ist die einzige wirkliche offene Plattform 100% Pure Jave von kritischer Bedeutung. Java fließt in die unternehmensweite IT ein und bringt eine reichhaltige GUI, solide Security und Komponenten für transaktionsorientierten Anwendungen mit, wobei es demnächst auch keinen "Trade-Off" mehr zwischen Portabilität und Laufzeitverhalten geben wird. Verstärkt wird es auch eine Zunahme von Java-enabled Consumer Geräten geben. In diesem Bereich wie auch bei der  Hardware und Software im Bereich Server wird SUN den notwendigen "Return-On-Investment" finden.

[Seitenanfang]


Vorteile von JAVA für Entwickler von Unternehmensanwendungen und Informationssystemen

Das Internet ist Synonym für ein Offenes System. Das im Internet gebräuchliche Protokoll TCP/IP bietet eine Möglichkeit zur universellen Verbindung. Verschiedene auf TCP/IP basierende Dienste wie bspw. SMTP, NNTP, FTP, ... sind offen und frei zugänglich. Durch HTML wird ein offener Standard für das Layout geschaffen. Java, last but not liest, steht eindeutig für universielle Software.

"It's probably fair to say that the Macintosh is not the No. 2 platform anymore - Java is." Brad Silverberg, Microsoft Vice President.

Java bietet die Möglichkeit sich vom jeweiligen proprietären Betriebssystem unabhängig machen zu können. Diese Unabhängigkeit dürfte für viele Softwareentwickler von hoher Bedeutung sein. Es löst die Fesseln und bietet Freiraum für neue Ideen und Innovationen.

"It only took 1 & 1/2 years for Java to become the No. 2 desktop computing platform. Imagine what it might do in another year" John Swansen, writing for "Windows Watcher".

Die Schnelligkeit mit der Java sich verbreitet, wird sich in Zukunft wohl auch in den Entwicklungszeiten von Softwareprojekten wiederspiegeln. Durch die Objektorientierung und durch den Verzicht auf Sprachkonstrukte, die in anderen OO-Sprachen zwar durchaus ihre Berechtigung haben, jedoch mitunter leider mehr zur Verwirrung als zur Vereinfachung beitragen, soll es einfacher sein, saubere Programme in kürzeren Zeiten entwicklen und schreiben zu können, als bisher.

[Seitenanfang]


Die Rolle von JAVA im Bereich Intranet-Extranet-Internet

Kaum jemand macht sich heute noch Gedanken über den Ursprung des Internets. In den letzten Jahren hat die Anzahl der Internet-Benutzer exponentiell zugenommen und der Trend weißt auch weiterhin in diese Richtung. Das Internet ist publikumsreif geworden für kommerzielle Anwendungen.

Für jede größere Unternehmung ist es daher schon fast zur Pflicht geworden, im Internet präsent zu sein. Zunächst vielleicht nur durch eine "einfache" Web-Site, die die Unternehmung beschreibt und eine Möglichkeit zur Kontaktaufnahme bietet. Dies schöpft aber die Möglichkeiten, die das Internet bietet, nur zu einem äußerst geringen Teil aus. Viele Informationsflüsse und Transaktionen zwischen der Unternehmung und einem ihrer Kunden, wie z.B. das Bestellwesen können ins Internet verlegt werden.

In zunehmenden Maße wird die Internet-Technologie für ein lokales "Intranet" eingesetzt, um die in internen Informationsflüsse und Transaktionender Unternehmung übersichtlicher machen zu können. Eine Koppelung des "Intranet" mit dem "Internet", hier als "Extranet" bezeichnet, läßt nun interne und externe Informationsanforderungen bzw. Transaktionen miteinander in einer einheitlichen Technologie kombinieren.

Extranet.gif (80545 Byte)

In diesem Kontext ist es daher auch von entscheidener Bedeutung, daß die zur Unterstützung erforderlichen Systeme

sind.

Ein auf Java basierender Web-Server sollte hier die entscheidenen Merkmale aufweisen können. Seinen Standort und seine Interaktionen mit den weiteren Java Features wie JHTML (prinzipiell Servles), Servlets, JavaBeans und  JDBC mit Zugriff auf ein Datenbankmanagementsystem gibt die folgende Abbildung wieder:

ThreeTier.gif (31109 Byte)

[Seitenanfang]


[_HOME_] ... [Übergeordnete Seite]  ... [Vorherige Seite] ... [Nächste Seite]