No such thing as CONTENT

My headline is evidently not true. My point here is to show what happens, when the level of abstraction within a concept is too high. The consequences can be dramatic!

Somehow along the web-sites and portals in our language crept in a concept of CONTENT! This is a general term for almost anything. This is why its semantic value is next to zero.

Let’s start from the concept of book . This is a very general concept of any kind of organised text. As we know this concept has been very useful for centuries. It doesn’t separate the purpose of the text. It can be from science research report to poems. It can contain figures and pictures.

When web browser was created in Cern Switzerland, its usage was to extend classic book by adding navigation to pure hierarchical turning it into intensive network. For the reader this meant a possibility to jump quickly and meaningfully inside the text and return back again. However the technical solution of this jumping problem was not restricted only into the current document but anywhere in the net. This enabled it to be extended and used to collect a “virtual” document with parts with physically distributed locations. All this was fin and exploded the use of browsers as we all today know. The folder structure inside of the web-server looked like this:

The next step was actually the critical one that created a unwanted consequences of this development.

From the beginning of its extended usage there was an eminent demand for bidirectional activity, but this technology was completely designed for one-way traffic only and the return messages where purely navigational addresses what to show next. The protocol was extended to allow simple text fields and returning input from them. In this way an application crept into HTML, but the facilities around we primitive in one word lousy !

At this time client server and OO environments had already develop pretty nice rich user interfaces in distributed environments. Now this browser /HTML stuff forced us back to stone age and the whole development had to be restarted from the very bottom –by the way it has now arrived yet.

This history partly explains why current portal  ( even service portals) looks like a pile of papers rather than an application. In most cases what would be needed is a real application with its layers. Here the issue of client device and GUI are minor details. In this way the full picture is following:

We have two big obstacles to achieve this. The first is still existing poor browsers + HTML and the second is the poor backend systems that don’t meet their current requirements at all.

The ideal portal consists mainly of the blue application, which shows the real business applications’ current state rather than static “documents” and the yellow part is marginal and minimal. Today in most cases the situation is completely other way round.

Let’s take a couple of examples to illustrate this. The first example: You want to show your organisation structure and something of the people holding position in there in your portal. This is clearly a situation where one should go to domain objects instead of starting to write static pages. The next fragment of a domain class model gives you all the information you can need here:

Now your task is to select the information you want to show form these objects and route that to GUI.

Next example is a sales catalogue on a web shop:

The required extract from domain class diagram is the following:

This is the genuine resource of the product and pricing information and this is what should be shown to web-site visitors.

By the way these two class diagrams are examples of those few real domain patterns.

Domain model for Project Management

Here is a new business line domain model for the New Year. This time the core domain model is about Project business. This is a general version. It can be a base model for all kinds of project planning and implementation. Thus is as good for designing and implementing an application as a bridge.

This level of abstraction is very good starting point and should serve well. On the other hand it should be easy to increase the semantic of a specific subset of project management.

This model takes into account the whole life cycle of a project. It assumes a set of template for specialised project types with their particular task types. The business life cycle start from project initialization in proposal state – for instance a sales offer. Then the model gradually catches all the necessary phases. This way for example first a task is added to a project. Then the task is staffed by creating work event for those participating persons’ corresponding roles. This way the planed work immediately shows up in person’s calendar. When the work is being done the person updates the state of the work-event object. No additional time reporting is needed.

Here is a small fragment of a collaboration digram of creating a new Abstract Domain Driven Development project:

2010 in review


Here is one kind of mirror for You my reader from the year 2010.

My best wishes for happy and prosperous year 2011.

-jukka t

The stats helper monkeys at mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Wow.

Crunchy numbers

Featured image

A Boeing 747-400 passenger jet can hold 416 passengers. This blog was viewed about 6,200 times in 2010. That’s about 15 full 747s.


In 2010, there were 21 new posts, growing the total archive of this blog to 35 posts. There were 51 pictures uploaded, taking up a total of 3mb. That’s about 4 pictures per month.

The busiest day of the year was September 16th with 235 views. The most popular post that day was ADDD in nutshell .

Where did they come from?

The top referring sites in 2010 were,,,, and

Some visitors came searching, mostly for hp3000, win3.11, dinosaurus, class diagram for railway reservation system, and jukka tamminen wordpress.

Attractions in 2010

These are the posts and pages that got the most views in 2010.


ADDD in nutshell August 2010
1 comment


Airline business (Business area models:) May 2010


OO domain models for several industries March 2010


Genuine object model: Health care March 2010


The difficult concept of MODEL September 2010