2012/02/03

Scaffolding

From riding a dromedary near the pyramids in Giza, Egypt, we move across the Mediterranean Sea and to the time when this sea was called Mare Nostrum (our sea). You guessed it, we are going to Rome, Italy!

The ancient Romans were very keen on the following architectural structure.

That is called a free standing arch. The Colloseum is full of them. So are the aqueducts that provided the Roman cities with water. In fact, every self respecting emperor or general of any worth had one of these erected in his name. We know those today as triumph arches.

It is impossible to build one. Really. Without the middle stone (called keystone), the structure is not stable and will collapse, but obviously you can not put the keystone in before everything else is in place. Try it yourself, it is impossible.

What the Romans figured out (so did the Egyptians when building the pyramids in fact) is that the impossible can be made possible if you use scaffolding. Today you can't see the pile of sand (or beams of wood) that supported the structure while it was being build. But it was there.

Right, before everybody thinks I've gone completely nuts and have started calling myself Julius Caesar ... what does this have to do with NetKernel?

Everything is a resource. You've heard that so often that by now you probably ignore it. But there are resources and resources. In the book I use the example of the data encrypted steganographically in an image of the National Art Gallery in Kuala Lumpur.

Do I know how to get that image? No. Do I know how to decrypt it? No. What I do know is how my request should look and what representation I expect. And NetKernel allows me to build a system based on that. As a scaffold I can use a file containing fixed data while I study the api of the gallery in Kuala Lumpur. Or maybe somebody else can do the studying for me. Maybe the whole api has yet to be developed. Whatever, NetKernel doesn't care! When the time comes, you put the keystone in (= let the requests resolve to the real application), check it, remove the scaffold and lo and behold ... a free standing arch!

Same procedure goes for databases. Every new day brings a new database engine. While that has obvious benefits (keeps Oracle on its toes for one) it also makes choosing hard and customers may change their minds overnight (and a couple of times). Doesn't matter. I once build a very successful application where the customer didn't even realize I wasn't using the database at all. Once I realized it - using a database - was going to be a performance nightmare, I swapped out the database and swapped in a filebased system. The requests didn't change, nor did the results, NetKernel doesn't care. The performance went to subsecond responses. Everybody happy.

So, the lesson for today is that you should learn from history. Scaffolding is an age old trick and NetKernel allows you to use it. Do so!

All that remains for me to say is ... Ave!