Artikel

Die dritte Sonnenfinsternis

Während die nächste natürliche, totale Sonnenfinsternis erst im April 2005 auftritt, wirft die softwaretechnische bereits ihren Schatten. Nach weit über einem Jahr, neun Milestones und einigen Release Candidates dürfte die Eclipse-Entwicklermannschaft mit einer neuen Version die Gesichter mancher Konkurrenten verfinstern. Obwohl die Version 2.1 für viele Entwickler bereits kaum mehr Wünsche offen ließ, legt Eclipse 3 die eigene Messlatte wieder ein Stückchen höher. Lohnt sich das Upgrade/der Einstieg?

Das nächste Spiel ist immer das schwerste

Dass das nächste Spiel immer das schwerste ist, gilt auch dann, wenn man gar nicht selbst mitspielt, sondern bloß tippen soll, wie’s ausgeht. Immerhin kann durch die Programmierung einer Tippspiel-Anwendung wenigstens der organisatorische Aufwand eines Tippspielverwalters in Grenzen gehalten werden. Und man kann – ganz nebenbei – auch eine Menge dabei lernen.

Das Runde muss ins Eckige

Nachdem in den beiden vorangegangenen Teilen der Artikelserie zunächst architektonische Überlegungen angestellt und dann die Realisierung der Präsentationsschicht beleuchtet wurde, geht es dieses Mal um die immer wiederkehrende Frage, mit welcher Technologie der objektrelationale Sprung beim Zugriff auf die Datenbank am besten gemeistert werden kann. Hierzu werden die wichtigsten zur Wahl stehenden Alternativen vorgestellt, um anschließend die Umsetzung im Tippspiel-Projekt anhand der gewählten Technologie zu erläutern.

Flex royale

Webanwendungen lassen hinsichtlich Bedienkomfort, Usability und Reichhaltigkeit heute oftmals zu wünschen übrig. HTML als Ausgabemedium ist und war ein Format zur Darstellung von strukturierten Textinformationen und war nie dafür gedacht, eine Applikationsmetapher für Webanwendungen in Browser Clients abzubilden. Macromedias Presentation Server Flex stellt erstmals einen Weg zur serverseitigen Erstellung von Rich Internet-Anwendungen dar, der sich problemlos in J2EE-Server und -Architekturen einbetten lassen soll.

Verborgene Schätze

Bei Jakarta Commons handelt es sich um eines der Unterprojekte von Apache Jakarta. Es beherbergt eine Sammlung von nützlichen Bibliotheken und Komponenten, die das Leben eines Java-Programmierers erheblich erleichtern können. Für die erklärten Feinde des neu erfundenen Rades soll dieser Artikel einen kleinen Überblick über die verborgenen Apache-Schätze geben, die häufig im Glanze der großen Projekte vergessen werden. Im zweiten Teil werden ausgewählte Bibliotheken im Detail vorgestellt.

Die schnellste Datenbank der Welt

Normalerweise denkt man bei Datenbanken an große Server mit gigantischen Festplatten. Was passiert, wenn man die Daten im RAM hält und regelmäßig serialisisert? Eigentlich müsste man dann doch viel schnelleren Zugriff auf die Daten erreichen können

Verbindungsabbruch

Eine Abarbeitung von aus der Datenbank ausgelesenen Werten ohne geöffnete Datenbankverbindung ist über JDBC ResultSets nicht möglich. RowSets bieten dem JDBC-Programmierer an dieser Stelle mehr Flexibilität sowie die Möglichkeit, SELECT-Ergebnisse Bean-basiert zu verarbeiten.

Castor-Transport

Seit jeher steht Java als plattformunabhängige Programmiersprache zwischen den Welten der verschiedenen Computersysteme. Aber gerade diese Tatsache hat dazu beigetragen, dass eine Reihe von übergreifenden Standards geschaffen wurden, um sich mehr und mehr von der Plattformbindung zu lösen. Wer in seinen Java-Projekten auf XML, SQL oder LDAP setzt, findet in Castor ein Data-Bind ing-Framework, das alle Anforderungen dieser Bereiche vereint und ein optimales Zusammenspiel mit der Programmiersprache Java garantiert. Der folgende Artikel bietet eine einfache und verständliche Einführung in die Anwendung des Frameworks Castor.

Erkannt und zugelassen

Mit dem Java Authentication and Authorization Service hat ein neues API seinen Weg in das aktuelle Release der Java 2 Standard Edition (J2SE) gefunden. Was dieses API leistet und wie es sich mit dem praktischen Einsatz verhält, wird im Rahmen des Artikels untersucht.

Mobiler Promille-Rechner

Die Entwickler mobiler Anwendungen sind nicht länger auf Windows CE- und PalmOS-PDAs angewiesen. Mit J2ME hat Sun einen Standard für eingebettete Systeme wie Handys und PDAs definiert; damit wird eine Programmierung dieser Geräte mit Java ermöglicht. Am Beispiel eines Promille-Rechners wird dieser Artikel die Entwicklung einer J2ME-Anwendung Schritt für Schritt erklären, wobei auch auf individuelle Probleme der Geräte eingegangen wird.

JDO praktisch

Nachdem im letzten Java Magazin viel Theorie über das OR-Mapping getrieben wurde, folgt nun die Praxis. Sehr interessant sind die Spezialisierungen der einzelnen Produkte, denn es sind durchaus gewisse Polarisierungen im Kreise der Wettbewerber erkennbar. Ein Streifzug über den JDO-Marktplatz unter den Blickwinkeln JDO-Support, Flexibilität, Mapping, Abfragen, Performance und Integration soll helfen, den nötigen Durchblick zu erhalten.

Generation MDA

In diesem Artikel wird gezeigt, wie durch die Kombination von MDA-konformer Softwareentwicklung und dem Einsatz von Generierungstechnologie die Entwicklung von Softwaresystemen erleichtert und beschleunigt werden kann. Gerd Wüthrich hat bereits im Artikel Der Klassen-Klon [1] einen Ansatz vorgestellt, wie mit Hilfe von XML-codierten Informationen und der XSLT-Transformation Java-Code generiert werden kann. Dabei wurden bereits die Vorteile, die durch den Einsatz von Generatoren entstehen, dargestellt. Den Nutzen von MDA-konformer Softwareentwicklung hat Philip Stube in seinem Artikel Einführung in die Model Driven Architecture (MDA) ausführlich erklärt [2].

Fährtenleser

SOAP (Simple Object Access Protocol) bietet mit einem neuen Kommunikationsprotokoll eine Lösung für eine vereinfachte Kommunikation im Web. Das Protokoll wird als zusätzliche Schicht auf einem Transportlayer wie z.B. TCP, UDP oder HTTP aufgesetzt und bietet dadurch alle Möglichkeiten der systemübergreifenden Kommunikation durch Botschaften. Bislang One-Way-Connection, versucht SOAP-RP diese Begrenzung aufzuheben und bietet nun auch so genannte Reverse-Channels zur Rückmeldung von Ereignissen und Antworten aller Art an den Sender der Botschaft.

Entwurfsmuster für XML und XSLT

In der objektorientierten Softwareentwicklung sind Entwurfsmuster ein beliebtes Hilfsmittel. Ihr Einsatz erleichtert die Lösung von Problemen durch Kategorisierung, abstrakte Beschreibungen und Implementierungsbeispiele. Für XML und XSLT wurden ebenfalls Muster gefunden und beschrieben.

Alberne Klammern?

Pascal is for building pyramids – imposing, breathtaking structures built by armies pushing heavy blocks into place. Lisp is for building organisms … – Alan Perlis

Die Programmiersprache Lisp hat die letzten 40 Jahre dynamisch gemeistert und darf als ausgereift bezeichnet werden. Lisp-Code kann sowohl interpretiert als auch kompiliert werden, was neben einer bequemen, inkrementellen Entwicklung auch eine vernünftige Ausführungsgeschwindigkeit ermöglicht. Lisp ist sehr viel weiter verbreitet als man denkt: Vom Finanzbereich bis zum Telekommunikationsanbieter findet man Erfolgsstorys von Lisp [Erfolg]. Die bekannteste dürfte wohl der Artikel des Lisp-Gurus Paul Graham [Viaweb] sein, der seinen (in Lisp programmierten) eCommerce Store Viaweb für $50 Millionen an Yahoo verkaufen konnte.

Die Verpuppung

Bereits bei der Vorstellung von Cocoon 1.8 Java Magazin war ein zweiter Entwicklungszweig innerhalb des Apache Open Source-Projekts Cocoon vorhanden. Der geistige Vater von Cocoon, Stefano Mazzocchi, begann die Version 2.0 von Cocoon im November 1999. Mit der Freigabe der Version 2.0 Ende letzten Jahres liegt nun eine stabile und leistungsfähige XML-Lösungsplattform vor. Das Cocoon-Projekt hat beschlossen nur noch diesen neuen Entwicklungszweig weiterzuführen, daher wird keine Versionsnummer im Namen geführt. Dieser 2-teilige Artikel stellt die neue Version von Cocoon vor und demonstriert anhand von einigen Beispielen die Einsatzmöglichkeiten. Der erste Teil stellt eine einführende Übersicht dar, der zweite wird sich tiefer mit den zugrundeliegenden Technologien beschäftigen.

Die Verpuppung

In Teil 1 unseres Artikels [1] stellten wir die neue Version von Cocoon [2] vor und demonstrierten anhand von einigen Beispielen die vielfältigen Einsatzmöglichkeiten dieser Open Source-Lösung. In diesem Teil werden wir zusätzliche Konzepte und Komponenten vorstellen, die es erlauben, Cocoon auch für komplexere Anwendungen zu verwenden. Einen Ausblick auf weitere Einsatzgebiete für Cocoon soll diesen Teil abrunden.

Kistenwelt

Mit einem DOM- oder JDOM-Parser lassen sich bekanntlich XML-Dokumente sehr bequem einlesen, jedoch zu einem gewissen Preis: Die Bequemlichkeit ist mit Behäbigkeit und Heap-Belastung zu bezahlen. Grund ist die gelieferte Baumstruktur, die oft nur genutzt wird, um an die darin enthaltenen Informationen zu kommen. Abhilfe verspricht, die Applikation direkt auf ein API von niedrigem Abstraktionsniveau (SAX2, kXML, …) aufzusetzen. Allerdings lässt sich eine gute Lösung ohne einige systematische Kenntnisse nicht während einer Tasse Kaffee in die Tasten klopfen. Hier will ich etwas Nachhilfe bieten: Ich zeige an einem Beispiel, wie man sowohl für das SAX2-API wie auch für das kXML-API geradlinig zu gut strukturiertem Code für das XML-Parsing gelangt, der sich zudem leicht um Code zur Verarbeitung der gelesenen Informationen anreichern lässt.

Das N im I/O

Mit der Java 2 Standard Edition (J2SE) 1.4. stehen dem Softwareentwickler neue Möglichkeiten zur Verfügung, wenn es um I/O-Zugriffe und Netzwerkfunktionen geht. Seit geraumer Zeit wird die Java-Plattform als Basis für Serversysteme genutzt, jedoch gab es immer wieder Stimmen, die mangelnde Skalierung und Performance beklagten und Erweiterungen im Java I/O forderten. Mit dem neuen Release hat Sun auf die Kritik reagiert und ein neues I/O-Modul in die Java-Plattform aufgenommen. Dieser Artikel zeigt anhand eines einfachen Programmbeispiels die neuen Konzepte der Netzwerkprogrammierung und einen Vergleich zur herkömmlichen Vorgehensweise.

Power aus der Turbine

Das Apache-Projekt Turbine [1] hat sich mittlerweile zu einem professionell einsetzbaren Framework zum Erstellen komplexer Web-Applikationen entwickelt. Im praktischen Umfeld erprobt, stellt es dem Java-Entwickler eine Vielzahl verschiedener Tools, Techniken und Frameworks zur Verfügung. Model View Controller (MVC)-basiert, bietet es eine interessante Alternative für Datenbankanwendungen mit HTML-Präsentationsschicht.