Blog

Alle Beiträge von Simon Zambrovski

HttpUnit und CAS Login

HttpUnit ist eine Testkomponente, die zwar in die Jahre gekommen ist, aber keineswegs ihre Aktualität verloren hat. Sie besticht durch ihre Einfachheit und erlaubt das Testen von einfachen Webseiten, komplexeren Pageflows oder Web Services. In einem Szenario, in dem ein System mit Central Authentication Service (CAS) geschützt ist, muss man mittels HttpUnit zunächst eine CAS-Authentifikation implementieren. Davon handelt dieser Beitrag.
weiterlesen

Persistenz, Transaktionsgrenzen und Optimistische Locking-Strategie

Die erste Regel der verteilten Systeme lautet: verteile nicht die Systeme. In der Tat kann die Architektur eines monolithischen Systems auf wesentliche komplexe Fragestellungen verzichten, die in der Architektur des verteilten Systems eine entscheidende Rolle spielen. Manche funktionale Anforderungen lassen sich jedoch nur sehr schwer in einem monolithischen System realisieren, so dass eine verteilte mehrschichtige Anwendung mit einem Server und einem (Rich-) Client entsteht. Eine mögliche, nicht seltene Variante ist die Bereitstellung von Funktionalität über eine Serviceschicht, die vom Client aus benutzt wird. Der Entwurf von funktionalen Service-Schnittstellen ist ein wichtiger Schritt in der Entwicklung der Mehrschichtanwendung. Auch für den Aufbau der serviceorientierten Architektur ist die Frage des Schneidens der Services von zentraler Bedeutung. Es ist ein Balanceakt zwischen fein- und grobgranular, zustandslos und zustandbehaftet, synchron und asynchron, transaktional und fire-and-forget.

Architektur

Ein nicht-untypisches Design einer Mehrschichtapplikation ist mit einem Boundary-Control-Entity Architekturpattern beschrieben.
weiterlesen

Von Säften, Attrappen und Eclipse RCP

Wer schon mal einen Rich Client als Präsentationsschicht einer Enterprise Java Anwendung gebaut hat, kennt es: Um die Remoting-Technologie zu verstecken, baut man Business Delegates. Damit diese nicht unübersichtlich werden, lässt man sie die gleichen Geschäftsschnittstellen implementieren wie die Serverkomponenten. Da bietet es sich an, über den Einsatz eines clientseitigen Dependency Injection Frameworks nachzudenken, das die Injektion der Business Delegates in die Client-Komponenten übernehmen kann. Google Guice ist ein sehr populäres und einfach zu bedienendes Framework, welches diese Aufgabe übernehmen kann. Dazu muss man lediglich konfigurieren, welche Implementierung Guice bei Bedarf eines Interfaces injizieren muss.
weiterlesen

Spring-Applikation in einem JEE Server (JBoss AS5)

Spring ist ein modernes Baukastenframework, das als Alternative zum JEE-Stack entstand und für ähnliche Problemklassen eingesetzt wird. Üblicherweise werden Spring-Anwendungen auf Apache Tomcat ausgeliefert, was auch eine gute Idee ist. Versucht man nämlich, Spring auf einem vollwertigen JEE-Server einzusetzen, muss mit einigen Überraschungen gerechnet werden. Im Folgenden werden die Anpassungen beschrieben, die nötig sind, um eine Anwendung auf dem JBoss-Applikationsserver zum Laufen zu bringen.
weiterlesen

ExtVal für Bean Validation mit JSR-303 und Apache Ivy

Die Spezifikation „JSR 303: Bean Validation“ kümmert sich um die einheitliche Validierung von Eingabedaten. Trotz der in der Spezifikation beschriebenen Möglichkeiten ist es in manchen Fällen notwendig, von der Referenzimplementierung (Hibernate Validator) abzuweichen.
weiterlesen