Open Source Artikel und Beiträge

Entwicklungs Tools

  • It is quite normal in the IT business that every year one or two new technologies arrive that cause a fundamental hype and that promise to change literally everything. Once the hype wave dimishes it often appears as if the technology could not live up to its hype. With HTML 5 the hype seems to be justified, but for developers a good technology or language is often only as good as their tooling support. In this article we will compare some of the most popular IDEs for HTML 5 development regarding their support for HTML 5, CSS 3 and JavaScript including features like auto-completion, validation and refactoring.

  • Das Eclipse Modeling Project dient der Entwicklung, Förderung und Zusammenführung von MDSD-Technologien innnerhalb der Eclipse-Community. Es besteht aus Modellierungs-Frameworks, Werkzeugen und der Implementierung von Standards.

    Diese Artikel gibt eine Übersicht über das EMP mit Schwerpunkt auf das Thema Modellgetriebene Softwareentwicklung (MDSD).

  • Das Tutorial zeigt, wie man mit The Grinder 3 Testskripte aufzeichnen und abspielen kann sowie die aufgezeichneten Skripte über das Einspielen von Parametern dynamisch gestalten kann.

  • Dieses Tutorial beschreibt die wichtigsten Schritte zur Erstellung einer Cartridge für openArchitectureWare (oAW). Nach einer kurzen Einführung in das Generatorframework wird anhand eines Beispieles Schritt für Schritt gezeigt, welche Bestandteile benötigt werden, um aus einem UML2-Modell Code zu generieren.

  • Die modellgetriebene Softwareentwicklung gewinnt in den letzten Jahren immer mehr an Schwung. Das Open Source Framework für Generatoren namens AndroMDA trägt zu diesem Trend maßgeblich bei. Die enthaltene Plug-in Architektur ermöglicht dem Entwickler eigene Plug-ins (Cartridges) zu entwerfen.

    Ziel dieses Artikels ist es, dem Leser die benötigten Schritte zur Entwicklung einer eigenen Cartridge aufzuzeigen.

  • Moderne Entwicklungsumgebungen wie Eclipse erleichtern dem Entwickler die Arbeit, indem sie Projekte strukturiert darstellen und bei der Navigation Unterstützung bieten. Dennoch sehen sich Entwickler gerade bei großen Projekten häufig mit zu vielen Informationen konfrontiert und verbringen viel Zeit damit, die wichtigen Stellen in einem Projekt im Rahmen einer Aufgabe wiederzufinden.

    Das Eclipse-Plugin Mylar hilft dabei, den Arbeitsalltag eines Entwicklers zu vereinfachen, indem es das Aufgaben-orientierte Arbeiten mit Systemen wie Bugzilla in die Entwicklungsumgebung einbindet und die für die Erledigung von Aufgaben unwichtigen Teile eines Projektes ausblendet.

    Dieser Artikel beschreibt, wie Mylar den Entwickler produktiver arbeiten lässt, indem es ein Aufgaben-basiertes Arbeiten ermöglicht und verhindert, dass der Entwickler mit zu vielen Informationen konfrontiert wird.

  • Ansprechende Java-Clients konnten bisher nur mit Swing entwickelt werden. Das Eclipse-Projekt hat mit SWT die Entwicklung von graphischen Benutzeroberflächen um eine weitere Möglichkeit bereichert. JFC oder SWT heißt jetzt die Frage?

    Dieser Artikel erleichtert dem Leser die Entscheidung, indem er die Gemeinsamkeiten und Unterschiede der beiden Technologien betrachtet.

    Bei der Entwicklung der Eclipse Plattform entschieden sich das Team von OTI (Object Technology International) und IBM gegen die JFC. Statt dessen entschlossen sie sich zum Erstellen der GUI eine eigene API zu entwickeln und diese, ebenso wie die Plattform auch, als Open Source frei zu geben. Diese neue API trägt den Namen Standard Widget Toolkit (SWT) und stellt GUI-Komponenten (Widgets), wie zum Beispiel Buttons, Bäume oder Tabellen über native Komponenten des Betriebssystems zur Verfügung.

  • Bei der Entwicklung mit J2EE werden oft ähnliche oder gar identische Codeblöcke eventuell in abgeleiteter Form an verschiedenen Stellen benötigt. Das Kopieren dieser Blöcke ist zeitintensiv und fehleranfällig, da diese Wiederholungsaufgaben meist mit wenig Sorgfalt ausgeführt werden. Durch den Einsatz geeigneter Codegeneratoren können wiederkehrende Aufgaben automatisiert und Pflege sowie Entwicklungszeit eingespart werden.

    Der vorliegende Artikel beschreibt anhand eines Beispiels wie mit dem OpenSource Codegenerator XDoclet die Entwicklung von Anwendungen erleichtert und beschleunigt werden kann.

  • Der Vortrag zeigt, wie mit Open Source Software ein vollwertiger Integrationsserver realisiert werden kann. Der EJB Server JBoss, das Buildtool Ant und der XSLT Prozessor Saxon bilden die Bausteine für den Server. Eine Livedemo zeigt eine Konfiguration für die Integration eines eBusiness Prozesses.

  • Treat the daily build as the heartbeat of the project. If there's no heartbeat, the project is dead. (James McCarthy)

    It works on my machine

    Software-Projekte, die im Team entwickelt werden, werden mit wachsender Größe und Komplexität zunehmend schwieriger zu verwalten und zu bauen. Durch das ständige Zusammenspiel vieler Entwickler schleichen sich früher oder später zwangsläufig sogenannte Integrationsfehler ein, die sich, je nach dem wann sie bemerkt werden, nur schwer oder gar nicht mehr beseitigen lassen. Sehr häufig werden solche Fehler von dem It works on my machine Phänomen begleitet, da sich in einem Software-Team so gut wie nie zwei vollkommen identisch konfigurierte Entwicklungsrechner antreffen lassen.

    Der vorliegende Artikel stellt die Software Engineering Konzepte daily build, smoke test und continuous integration vor. Anhand des OpenSource Frameworks CruiseControl wird demonstriert, wie sich diese Konzepte in einem Java Entwicklungsumfeld realisieren lassen.

  • Der vorliegende Artikel stellt die Entwicklungsumgebung Eclipse vor und zeigt einige ihrer Vorzüge. Insbesondere werden einzelne Features im Gesamtkontext eines professionellen Entwicklungsprozeß diskutiert.
  • Der vorliegende Artikel liefert eine kurze Übersicht, welche Tools für ein professionelles und effizientes Arbeiten selbst bei kleinen Software-Projekten unverzichtbar sind. Insbesondere wird demonstriert, wie sich im Java Umfeld eine vollständig auf Open Source Technologien basierende Entwicklungslandschaft aufbauen und betreiben läßt. Die hier vorgestellten Erkenntnisse resultieren aus eigener Projekterfahrung sowie aus dem Einsatz bei Kunden.

Webframeworks

  • Unter den zahlreichen Frameworks für Rich Internet Applications (RIAs) auf dem Markt erfreut sich das aus Finnland stammende Vaadin Toolkit [1] zunehmender Beliebtheit. Ein einfaches Programmiermodell zusammen mit einem großen Angebot flexibler UI-Komponenten ermöglichen eine reibungslose und zügige Entwicklung von webbasierten RIA-Anwendungen. Wer unter den angebotenen Komponenten eine bestimmte Funktionalität vermisst, kann für Vaadin sehr leicht eigene Erweiterungen auf Basis des Google Web Toolkits (GWT) entwickeln. Dieser Artikel beschreibt die dazu erforderlichen Schritte und stellt das notwendige Hintergrundwissen bereit. Es wird gezeigt, wie man sich die Möglichkeiten von GWT in Verbindung mit HTML5 zunutze machen kann, um performancekritische Teile seiner Vaadin Applikation zu beschleunigen oder sein Komponentenrepertoire um moderne Funktionen zu erweitern.

    Der folgende Artikel basiert auf der Version 7 des Vaadin Toolkits. Gezeigt wird die Entwicklung einer eigenen Vaadin-Komponente, die bestimmte Features von HTML5 und des Google Web Toolkits verwendet.

    Der Beispielcode für das beschriebene Projekt kann auf GitHub [6] heruntergeladen und ausprobiert werden.

  • Das Google Web Toolkit (GWT) hat im vergangenen Jahr viel Aufmerksamkeit erhalten, denn mit Google AdWords und Google Wave sind die ersten großen GWT-basierten Anwendungen von Google erschienen. Für weiteres Aufsehen haben die Neuerungen in der aktuellen Version 2.0 von GWT selbst gesorgt. Was aber ist GWT? Mit einem optimierenden Compiler und pfiffigen Codegeneratoren werden maßgeschneiderte JavaScript-Anwendungen erstellt, deren Entwicklung findet allerdings in Java statt. Im folgenden Artikel werden die grundlegenden GWT-Konzepte vorgestellt, gefolgt von einem kurzen Überblick über die Neuigkeiten der Version 2.0 und über die Architektur-„Best Practices“.

  • Die Ermittlung der Testabdeckung kann ein wichtiges Instrument sein, um die Qualität einer Anwendung zu überwachen und zu steigern. In diesem Artikel wird gezeigt, wie die Testabdeckung einer Grails Anwendungen ermittelt und über einen Continuous Integration Server bereitgestellt werden kann. Die Abdeckung soll aus Komponenten-, Integrations- und funktionalen Tests resultieren.

  • In den letzten Jahren hat sich die Rich Client Platform (RCP[1]) zu einem etablierten Application Framework entwickelt. Mit der Rich Ajax Platform (RAP[2]) sollen die Vorteile und Konzepte, die RCP auszeichnen nun auch bei der Web-Entwicklung genutzt werden können. RAP greift dabei auf den Extension Point Mechanismus zurück und bietet einige aus der RCP Entwicklung bekannte Extension Points.

    Dieser Artikel behandelt die typischen Problemstellungen, welche einen Entwickler bei der Arbeit mit RAP beschäftigen. Es wird vorausgesetzt, dass sich der Leser bereits mit RCP und RAP beschäftigt hat. Zur Einarbeitung in RAP existieren einige Artikel [3].

  • Der dritte und letzte Teil dieses Artikels befaßt sich mit der Auswahl für ein Framework sowie der Beziehung zwischen Webframeworks und der Java Standard Template Library kurz JSTL.

  • Nachdem die Frage geklärt wurde, wann ein Framework eingesetzt werden soll, hilft Ihnen der zweite Teil bei der Auswahl eines passenden Frameworks.

    Bei den im Folgenden beschriebenen Frameworks handelt es sich ausschließlich um Open Source Frameworks. Eine kommerzielle Verwendung ist in den meisten Fällen durch die Apache oder LGPL Lizenz möglich. Diese Frameworks sind nicht nur aus Kostengründen immer häufiger in kommerziellen Projekten zu finden.

    Ein Framework muss leben, es genügt nicht, dass ein Hersteller von Zeit zu Zeit Updates anbietet. Wichtig für die Entscheidung für ein Framework ist die Gemeinschaft der Entwickler, die das Framework entwickeln und verwenden. Offene Frameworks besitzen meist eine größere Entwicklergemeinde als hochpreisige Produkte.

    Für diesen Artikel wurden die Frameworks kategorisiert und Überschriften zugeordnet. Die einzelnen Kategorien wie MVC oder Templating Framework gehen teilweise ineinander über und sind schwer zu trennen. Besonders das "Schlagwort" MVC beansprucht fast jedes Framework für sich.

  • Das Entwickeln von Web Anwendungen gleicht oft der Programmierung in Maschinensprache. Entwickler müssen sich mit den Tücken und Besonderheiten des Web auseinandersetzen. Die Arbeit mit "Sessions" und "Contexten" läßt nur wenig Raum für die Lösung des eigentlichen Problems. Web Frameworks versprechen Abhilfe - sie verbergen die Niederungen der Web Programmierung und ermöglichen die Entwicklung auf einer höheren abstrakten Ebene.

    Der erste Teil dieses Artikels befaßt sich mit der Motivation für den Einsatz eines Webframeworks. Teil 2 stellt populäre Frameworks wie Struts und Cocoon, Vertreter mit einem unkonventionellem Ansatz wie Tapestry oder Enhydra sowie die Portalframeworks Jahia und Jetspeed vor. Im dritten und letzten Teil gibt es Hinweise und Kriterien, die bei der Entscheidung und Auswahl helfen.

Java EE

  • Viele Unternehmen müssen aufgrund gesetzlicher Vorgaben oder für interne Überprüfungen und Auswertungen jederzeit alle Modifizierungen an ihrer Datenbasis nachvollziehen können. Diese Verfahren werden als Auditierung bzw. im Falle der Vollprotokollierung als Historisierung bezeichnet. Für jeden vergangenen Zeitpunkt ermöglichen sie die Erstellung von Änderungsprotokollen oder gar die Wiederherstellung früherer Stände. Sowohl der Java Persistenz Standard (JPA) als auch das Persistenz-Framework Hibernate bieten verschiedene Möglichkeiten auf interne Ereignisse zu reagieren, um zum Beispiel bei schreibenden Zugriffen den Status von Entitäten zu manipulieren bzw. zu protokollieren oder beim Laden die Daten zu filtern. An mehreren Beispielen sollen in diesem Tutorial die Interceptoren und das Eventsystem von Hibernate sowie die äquivalenten Möglichkeiten in JPA aufgezeigt werden.

  • Das Apache Geronimo Projekt hat das Ziel, einen zertifizierten J2EE Application Server unter der Apache Software License zur Verfügung zu stellen. Dies soll über die Integration verschiedener OpenSource Projekte erreicht werden. Die wesentliche Neuimplementierung stellt der Geronimo Kernel dar, der eine Plug-in Architektur zur Verfügung stellt, mit der verschiedene Komponenten eingebunden werden können. Jede dieser Komponenten deckt einen einzelnen J2EE Spezifikationsbereich ab. Auf diese Weise soll der komplette J2EE Stack bereitgestellt werden. Dieser Artikel begrüßt den neuen Server und stellt ihn seinen Lesern kompakt vor.

  • Die Java Management eXtensions (JMX) erlauben die Überwachung von Java Servern. Im Artikel werden JMX und MBeans anhand von einfachen Codebeispielen beschrieben.
  • Skalierbarkeit ist eine wichtige Anforderung an J2EE Anwendungen. Die J2EE Architektur wirbt mit diesem Schlagwort und bietet mit der Enterprise Edition eine umfangreiche Technologie, die dies verspricht. Wieviele Benutzeranfragen und Transaktionen eine Anwendung sicher und skalierbar bearbeiten kann, können die Spezifikationen allein nicht beantworten. Hier richtet sich der Blick in die Welt der Application Server, die einen entscheidenden Anteil zur Realisierung dieser Anforderungen besteuern und Lösungen versprechen.

    Dieser Artikel ist ein Einstieg in die Welt des EJB Clusterings mit JBoss. Weitere Informationen zum Thema JBoss Clustering finden Sie in der gleichnamigen Dokumentation der JBoss Group.

  • Vortrag zu einem größeren eProcurement Project, welches rein mit Open Source Software realisiert wurde. Der Einsatz und die Aufgaben von JBoss, Apache Cocoon und den Tools ant sowie cvs werden verdeutlicht.

  • Folien zu einem Vortrag über den JBoss Application Server. Die modulare Architektur mit Microkernel und den Java Management Extension JMS werden ebenso wie die Bestandteile beschrieben.

Allgemein

  • Wird für den Einsatz verteilter Transaktionen unbedingt ein Java EE Application Server benötigt? Nicht unbedingt - mit Atomikos Transactions [1] steht ein freier Transaktionsmanager zur Verfügung, dessen Verwendung es ermöglicht, verteilte Transaktionen auf einer leichtgewichtigen Laufzeitumgebung wie z.B. Apache Tomcat zu nutzen. In diesem Artikel / Tutorial wird der Einsatz von Atomikos Transactions in Verbindung mit einer Spring Anwendung demonstriert. Diese Anwendung wird um eine zusätzliche Datenquelle erweitert und hierbei das transaktionale Verhalten so ausgebaut, dass die Datenbankzugriffe über mehrere Datenquellen in einer verteilten Transaktion ablaufen.

  • Im Zeitalter der Webanwendungen ist es dem Anwender ein Bedürfnis, seine Benutzerinformationen und seine Identität sicher zu halten.

    Dennoch liegt es in der Natur des Menschen einen möglichst einfachen und bequemen Mechanismus zu finden, um die gewünschte Sicherheit mit einem möglichst geringem Maß an Aufwand zu erhalten.

    In diesem Zusammenhang kommt der sogenannte CAS (Central Authentification Service) zum tragen. CAS bietet die Möglichkeit, sich an verschiedenste Benutzerdaten Bestände zu binden, um die Erkennung und die Identität des Benutzers zu gewährleisten.

  • "Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren." (Benjamin Franklin)

    Sicherheit ist ein zentrales Thema in der Entwicklung vieler Softwaresysteme. Moderne Softwareentwicklung mit Java zeichnet sich dadurch aus, dass Technologie- und Infrastrukturcode weitgehend von der Business-Logik separiert werden. Das Domain orientierte Design kann somit im Vordergrund stehen und die Software trotzdem um technische Aspekte erweiterbar bleiben. Vorreiter und treibende Kraft auf diesem Gebiet ist das Spring Framework, das mit dem Acegi Security Framework nun über eine Sicherheitslösung verfügt, die diesen Prinzipien folgt.

    Durch den Einsatz des Acegi Security Frameworks kann eine Anwendung entwickelt werden, ohne Sicherheitsaspekte von Anfang an berücksichtigen zu müssen. Die Sicherheit wird anschließend hinzukonfiguriert. Somit bleibt die Anwendung unabhängig von den verwendeten Sicherheitsmechanismen und -technologien.

    Dieser Artikel gibt eine Einführung in das Acegi Framework und beleuchtet dessen Architektur, wobei der Fokus auf der Absicherung auf Methodenebene (z.B. bei Rich Client und Backend Systemen) liegt. Anhand eines Beispiels wird der Einsatz des Frameworks erläutert.

  • Ein Portal ist definiert als eine Applikation, welche basierend auf Webtechnologien einen zentralen Zugriff auf personalisierte Inhalte sowie bedarfsgerecht auf Prozesse bereitstellt.

    Charakterisierend für Portale ist die Verknüpfung und der Datenaustausch zwischen heterogenen Anwendungen über eine Portalplattform.

    Eine manuelle Anmeldung an den in das Portal integrierten Anwendungen ist durch Single-Sign-On nicht mehr notwendig, es gibt einen zentralen Zugriff über eine homogene Benutzungsoberfläche.

    Portale bieten die Möglichkeit, Prozesse und Zusammenarbeit innerhalb heterogener Gruppen zu unterstützen. [1]

    Exemplarisch sollen drei Open Source Portale entlang der Diskussion einiger Kriterien vorgestellt werden.

    Hierzu wurden die Portale Liferay 3.6.1 [2], Apache Jetspeed2 [3] und JBoss Portal 2.2 [4] gewählt.

  • Der Artikel beschreibt die Erweiterung der XML basierten OIO-Homepage um Suchfunktionalität durch die Lucene Searchengine des Jakarta Apache Projektes.

Web Services

  • Web Services sind das Bindeglied zwischen der Java Welt und Microsofts .NET. SOAP ist zu einem Standard für die Kommunikation zwischen verschiedenen Sprachen und Plattformen geworden. Dieser Artikel beschreibt das SOAP Werkzeug Apache AXIS.

  • Eine Axis WSDD Referenz in englischer Sprache

Apache Cocoon

  • Die Model 2 Architektur wird zur Entwicklung der Präsentationsschicht empfohlen und stellt eine Variation des Model-View-Controller Muster dar. Struts und Cocoon besitzen unterschiedliche Ansätze und Möglichkeiten. Nach kurzer Einführung in die Frameworks werden in der Session beide Konzepte verglichen und abgegrenzt. Es werden verschiedene Aspekte wie Design und Einsatztauglichkeit betrachtet.

  • Interview mit Stefano Mazzocci, dem Erfinder von Cocoon. Er spricht über seine Tätigkeit bei der ASF, die Unterschiede zu JSPs bzw. ASP, Model View Controller und die neuste Cocoon Version..
  • Dieses Tutorial beschreibt die Erstellung von eXtensible Server Pages mit Cocoon und XSP. Grundlagen im Umgang und der Konfiguration von Apache Cocoon werden vorausgesetzt.
  • Folien zu einem Vortrag über Apache Cocoon 2 von der JAX 2002 Konferenz in Frankfurt.

  • Folien zu einem Tagesworkshop über die Entwicklung von Web Anwendungen mit dem Publishing Framework Apache Cocoon.

  • Vortrag über die Zukunft der Web Anwendungsentwicklung. Die Bedeutung von XML und XSLT Filtern für Web Anwendungen wird untersucht.

  • Vortragsfolien zu Cocoon Logicsheet für SAP® BAPI. SAP® Anwendung mit HTML und WML sowie über den generischen BAPI Aufruf mit Apache Cocoon.

Zum Geschaeftsbreich Competence Center
Newsletter abonnieren