Relational versus XML DB

All the world uses relational databases to store and query each and every item. To me this is like having a hammer that worked nice and now you use it to eat sushi. The alternative of the XML DB has long grown mature and it gets time to use it for what it is good for. A example of missuse of relational databases can be regarde e.g. in HP Operations Manager for Unix aka OMU 8 and below, where policies (configuration for monitoring) is stored in a relational database (Oracle) in many many complex tables. Just use a XML DB for such highly structured document-oriented objects, it is easy to query still but very easy to store and access. My split of when to use a relational DB and when to use a XML DB is exactly that, use XML DB for low-volume complex document-like objects. Clearly if one has a simple object with a fixed schema or mass-data such as measurements or audit logs that go into thousands and millions, not using a relational DB would be silly. Its two different weapons, use them when they are suitable.

A common way to avoid the hassles of relational multi-table splits is to use blobs but that only kills the option to query the inner structure of the object. If one would have used a XML DB document one could still nicely and quite efficiently be able to query inner values using XPath or XQuery!

There are several commercial and open-source Java-based XML DBs available, such as Xindice or eXist. I prefer eXist, it supports all query mechanisms is efficient and has good admin capabilities and can be easily integrated into other software e.g. as a war file.

Presentation JUGS 2008

Posthum, I’d like to mention that I was presenting on this years’ Java Forum Stuttgart 2008 (http://www.java-forum-stuttgart.de) organized by the Java User Group Stuttgart (JUGS) a architecture presentation “SOA oder so – ESB für Querdenker” (Abstract E7). The topic was how to use a enterprise service bus (ESB) to build products in contrast to using them in projects. I mainly reported on experiences we got from the MIDAS architecture including special techniques we use, tips and tricks etc.

There was quite a audience in the room and it was a good experience holding a presentation in front of such a audience. I was though not sure whether it was really interesting the the audience in the end as there was not too much feedback. Check out the slides if you like.

Java SSH libraries

I currently know of the following java-based SSH libraries which offer SSH client, server and terminal services:

We currently use jsch as preferred client SSH library also because we have it in the boat already with ant and it has a good license (LGPL).

ganymed-ssh/trilead-ssh seems to support unix terminal support for ssh, that is that one can write a real ssh shell with the library, this is interesting!

Hi, Welcome!

This is the software architecture blog of Peter Klotz, co-founder of blue elephant systems GmbH. In this weblog I try  to comment on issues and ideas in designing software systems in the Java world, which is where I’m hosted.

All statements made here are personal opinion of mine, if you disagree either go into discussion for the benefit of all readers or shut-up and quit!