Calyxo Web-Application Framework

Das Problem

Bereits relativ einfache Web-Anwendungen konfrontieren die Entwickler mit einer Reihe architektur- und technologisch bedingter Probleme. Deren Lösung hat entscheidenden Einfluß auf die Kosten für Entwicklung und Wartung sowie auf die Qualität der resultierenden Anwendung. Es geht hier um nicht weniger als das Gelingen oder Scheitern eines Projekts. Die Entscheidung für den Einsatz eines Frameworks und "die richtige Wahl" spielen daher eine zentrale Rolle.

Die Lösung

Der Schlüssel dazu, die schnell anwachsende Komplexität im Griff zu behalten, liegt darin, auf eine gute Architektur und ein solides Fundament aufzubauen. Genau dies bietet das Calyxo Web-Application Framework.

Calyxo reduziert die Entwicklungs- und Wartungskosten und unterstützt die Erstellung robuster Web-Anwendungen. Calyxo ermöglicht eine "vertikale" Partitionierung, so dass einzelne Module der Anwendung von verschiedenen Teams unabhängig voneinander entwickelt werden können. Calyxo unterstützt die Internationalisierung von Anwendungen auf allen Ebenen.

Auf einen Blick

Open Source keine Lizenzkosten, offener Quellcode
Schlankes Design flache Lernkurve, niedrige Trainingskosten
Offene Architektur vielfältige Anpassungs- und Erweiterungsmöglichkeiten
Modularisierung hohes Maß an Erweiterbarkeit, parallele Entwicklung im Team
MVC Model 2 Trennung von Business-Logik, Präsentation und Steuerung

Insgesamt profitieren Calyxo-Applikationen von verkürzten Entwicklungszeiten, guter Performance, hoher Wartbarkeit und Skalierbarkeit.

Architektur

Calyxo stellt dem Entwicker-Team umfassende Entwurfsmuster in Form leistungsstarker Komponenten bereit. Die moderne Architektur folgt dem Model-View-Controller Paradigma (kurz: MVC) und ermöglicht so eine saubere Schichtung der Anwendung in Geschäftslogik (Model), Präsentation (View) und Steuerung (Controller). Dadurch bleiben auch komplexe Anwendungen übersichtlich, erweiterbar und wartungsfreundlich.

Komponenten

Neben dem zentralen Controller enthält Calyxo Komponenten zur Validierung und zum View-Management.

  • Die Validierung und Präsentation von Benutzereingaben ist essentiell für ein gelungenes Web-Interface. Hierzu gehören die Umwandlung validierter Eingaben in geeignete Datentypen, die Generierung prägnanter Fehlermeldungen, die Markierung fehlerhafter Eingabefelder, die Formatierung der Daten nach den üblichen Standards, usw. Calyxo erlaubt die Formulierung flexibler Validierungsregeln für die Prüfung einzelner Felder sowie feldübergreifender Bedingungen.
  • Um die Konsistenz und Wartbarkeit umfangreicher Web-Anwendungen zu gewährleisten, ist es wichtig, das Duplizierem von Code und Inhalten zu minimieren. Dies gilt insbesondere auch für den View. Calyxo's View-Management steuert die Komposition der zu präsentierenden Seiten aus einzelnen, wiederverwendbaren Fragmenten.

Von Struts zu Calyxo

Die Entwickler von Calyxo blicken auf eine langjährige Erfahrung im Design und in der Implementierung von Web-Applikationen zurück, insbesondere unter Einsatz des weit verbreiteten Struts-Framework der Apache Group. Calyxo zeigt viele Parallelen zu Struts, indem es dessen Stärken übernimmt, zeichnet sich aber insgesamt durch ein schlankeres Design und eine klarere Struktur aus. Als besondere Merkmale verfügt Calyxo über die leistungsstarken Komponenten für die Validierung und das View-Management. Um auch Struts-Anwendungen ohne größeren Migrationsaufwand hiervon profitieren zu lassen, sind diese Komponenten auch als Struts-Plugins verfügbar.

Technologien und Standards

Calyxo setzt ausschließlich auf etablierte Standards und neueste Web-Technologien und trägt damit zu einer langfristigen Investitionssicherung bei. Alle Calyxo-Komponenten werden über XML-Dateien konfiguriert. Mit Calyxo erstellte Anwendungen sind in jedem J2EE-fähigen Application-Server lauffähig.

Interesse?

Das Calyxo Paper verschafft einen technischen Überblick über Calyxo. Weitere Informationen und Details, sowie die Möglichkeit zum Download erhalten Sie auf der Calyxo Web Site.

Die Spezialisten für objektorientierte Software-Entwicklung.