Friday, March 23, 2007

[Arch] Blog Discussing SOA and EDA

I recently came across the Blog of Jack van Hoof. This Blog deals with architecture aspects of SOA (service oriented architectures) and EDA (event driven architecture). Apparently in this Blog some interesting aspects particularly also in the relation of these concepts are discussed. Could bring some new ideas for modern system architecture.

For starters there is an article named "How EDA extends SOA and why it is important ".

Wednesday, March 21, 2007

[Pub] Apache Velocity

Java Template Engines

In the current magazine I discuss Java-based template engines. One of the earliest tools in this category was Webmacro. However, the problem at the time was, that Webmacro was published under Gnu Public License, which obviously makes it unusable for many (if not most) projects, even open source projects. So a team of developers started Apache Velocity. Meanwhile also a new project Freemarker offers interesting functionality in the open source Java domain.

Templating is an alternative approach for code generation opposed to methods like JSP or XSLT. Generally spoken, templates define the fixed structure of the (textual) output and the parts that should be replaced during runtime. To give an example:

This is a template written in Velocity Template Language (VTL): First, "static" information, i.e., text is sent to output without change. Variables can be declared using the $variable syntax. These variables are exchanged at runtime with the desired values. The exchange of information between the Java class and the template engine happens using a context. In the Java class objects can be put into the context and in the template these objects can be accessed.

In the first simple examples: $firstname, this object is a String. The next example: $person illustrates a more complex example: Person is actually a Java class and in the template instance variables or methods can be accessed.

Finally simple logic can be performed, typically to iterate lists using the #foreach commands or checking conditions using #if.

The Java code to work with Velocity is fairly simple:

After initialisation, the Velocity context can be used to exchange data between application and template. Generally arbitrary objects can be put into the context. Calling the mergeTemplate method eventually renders the result.

Advantages of Template Engines and Application Scenarios
Template engines like Velocity can be used for various code-generation scenarios; typical examples are HTML, SQL and Java code generation. Thus Velocity is used in O/R mapping tools, UML tools for code generation and so on. A significant advantage of template-based HTML generation is, that cooperation of developer and designer is easier compared to XSLT-based approaches. However languages like XSLT are more powerful when the data and generated output is less structured.

Also the "learning curve" of tools like Velocity is very smooth, so results can be produced quickly. My suggestion is to get an overview on these technologies when a decision for code-generation tools is required in a project.

Webmacro, Velocity and Freemarker?
All three projects have a significant user community. My impression is, that the community is most active in Velocity and Freemarker. These two projects have a similar, but in details different approach that is worth evaluating. E.g., Freemarker apparently has better support for rendering XML data using templates, Velocity seems to have a larger user-base on the other hand.

For more details check out the article (German).

Thursday, March 15, 2007

[Event] Open Source Contest: New BLOG

For the Austrian Open Source Contest (as presented in this recent post) we initiated a new Blog. This Blog is dedicated to publish project ideas we received so far. Everyone can contribute here sharing new ideas or discussing the already available ones. Particularly potential participates are encouraged to search for interesting topics, discuss them!

When the discussion process is finished, a jury will select the projects from this list and present and will try to match the projects with the participates.

Occasionally also other information about the OSS contest might be published on that Blog, so please stay tuned and register the RSS/Atom Feeds!

Monday, March 12, 2007

[Event] Open Source Contest

This Posting announces an Open Source Software Contest and is directed to developers, artists and companies in Austria, hence the language is German. We will however report from various activities and the outcome also in english.
Die Österreichische Computergesellschaft OCG veranstaltet gemeinsam mit dem Verband österreichischer Software Industrie VÖSI sowie der Wirtschaftskammer Österreich unterstützt von einer Vielzahl an Sponsoren einen Open Source Contest.

Die Idee ist, junge Programmierer und Künstler, die im Open Source Umfeld interessiert sind mit der Open Source Community sowie der Wirtschaft, die in diesem Bereich arbeitet zusammenzubringen. Dabei werden Projektideen erarbeitet die von den Entwicklern bzw. Künstlern umzusetzen sind. Die besten Arbeiten werden dann prämiert und im Rahmen der Woche der Informatik Ende September bei einer gemeinsamen Feier vorgestellt und mit Preisen überhäuft :-)

Die Veranstalter addressieren explizit nicht nur Entwickler, sondern wollen auch zu künstlerischen sowie anderen Beiträgen zu Open Source Projekten animieren. Viele Open Source Projekte benötigen bspw. Lokalisierung, besser Dokumentation, Multimedialen Inhalt wie Icons, Logos, Musik oder Videos (bspw. Spiele) usw. Die Kreativität soll hier nicht eingeschränkt werden.

Es werden alle "jungen Talente" bis 27 angesprochen, egal ob sie Schüler einer AHS, HTL, ... sind, oder Studenten oder einfach gerne Entwickeln oder künstlerisch tätig sind. Ebenso ist die Open Source Community, sowie Firmen im OS Umfeld angesprochen mit Projektideen, oder Sponsoring (Geld, Sachspenden) das Projekt zu unterstützen und somit auch potentielle Talente für die eigenen Projekte kennenzulernen.

Der genaue Zeitplan wird demnächst auf der Webseite des OSS Contest veröffentlich, sowie auch hier angekündigt (also am besten den Newsfeed abonnieren!), ebenso die Sponsoren und Mitveranstalter.

Allen Interessenten möchte ich folgende Resourcen empfehlen:
Alle Interessenten (Teilnehmer) würden wir ersuchen ihr Interesse mit dem Formular auf der Webseite zu bekunden!

Friday, March 09, 2007

[Tech] Event Driven Architecture Standards

Event Driven Architectures (EDAs) are a important and rather recent trend in enterprise application design. However there is apparently still a lack on common standards in this field. It seems, that this discussion is just starting to move on.

Covington created a compilation of current EDA and ESP related standards available on

While reading through the standards my suspicion that there is a lack of a clear separation of events is still missing and leads to confusions. People tend to mix up events in sense of user interface events and business events that are in scope of esp and cep processing engines.