Shared Data and Mobile Data
By Alex Bunardzic under Talk on 02. October 2005I’ve branched off into the new thread (from Should Database Manage The Meaning? thread ) in order to start from a clean slate. The previous thread still has a number of unanswered questions lingering, and I didn’t want to introduce new ones.
What the lively debate in the ‘database and meaning’ thread revealed to me is that a number of people appear steeped in the shared data model/architecture. They’re all talking about multiple applications hitting a single database, and how that peculiar situation dictates stringent demands on what the database must be and how it must behave.
I come from a different world. In my world, the data is not sedentary, it is mobile. It travels places. As such, it is not shared, it gets to be exchanged.
Now, as you will no doubt have no problem imagining, if two or more apps are exchanging data, they don’t care where is that data coming from. Let’s say they all exchange the data using some sort of a schema (XML schema, most likely). What ends up happening is that data starts travelling back and forth (mobile data). The receiving apps have no way of ’sniffing’, or figuring out whether the data that had just arrived is coming from a fuly normalized RDBMS, or from a flat file, or from an email server, or from a legacy data store (Domino), or from some hairy brained hierarchical mainframe database, or what have you.
So, this is the reason why I’m so befuddled upon learning that so many people regard RDBMS as a holly grail. What difference does it make, once the mobile data hit the street?
Laurent Szyster:
Your question underscores one characteristic of RDBMS, they are for computer applications, no for network applications.
Although most RDBMS are today implemented as network servers, they were not designed for network applications. Significantly, data distribution on a network between databases is allways a problem with RDBMS. There are no standard relational database replication protocol and distributing data amongst different databases must be developped as an application in most case, usually with a messaging system.
So, once “the network is the computer”, RDBMS becomes obsolete.
For instance the web is a network application made of simple file server and a simple network protocol. Not relational databases. Web applications usually don’t use RDBMS to manage most of the data served, instead they serve hypertext from a simple file system.
People in the industry are however very reluctant to admit the mismatch of relational databases and network applications.
For instance, RDF stores are actually designed very much like RDBMS, some even are developped “on top” of relational databases. And the latest query language supposed to “light the fire of RDF”, SPARQL, is nothing more a pathetic attempt to provide SQL developers with a familiar face.
To manage that “shared and mobile data” for network applications, I have designed something completely different:
http://laurentszyster.be/blog/pns/
It is a work in progress, but you can allready check it out:
svn://svn.berlios.de/allegra/trunk
http://svn.berlios.de/wsvn/allegra
comment at 02. October 2005
Kevin Smith:
Alex, I completely agree with you, but one big obstacle is legacy stuff: Legacy apps which already have data in rdbms’s. Legacy code. Legacy coding patterns. Legacy frameworks. Traditionally, exchanging data has been quite difficult.
Beyond that, if you expose an rdbms today, people can immediately generate useful and productive reports from it. They can query it. With a custom app that is “willing to” exchange data, there’s a steeper curve for other apps, and unless you have pre-exposed all your data through published api’s, you’ll have to keep extending your code to meet the data exchange needs of other apps. So with today’s technologies and patterns, there are some immediate benefits of the “data is shared” model.
Many developers are so immersed in rdbms’s that they don’t even realize that the concepts of data storage and data exchange are separable. I figure we’re at least a few years away from the point that your “data is mobile” idea is widely accepted in by mainstream (especially corporate) developers.
comment at 03. October 2005
Yes, But What About The Legacy? [@lesscode.org]:
[…] Once again, I need to branch out into a new thread, for the benefit of bringing to everyone’s attention the importance of the legacy stuff. Here is what Kevin Smith wrote in response to my post Shared Data And Mobile Data: Alex, I completely agree with you, but one big obstacle is legacy stuff: Legacy apps which already have data in rdbms’s. Legacy code. Legacy coding patterns. Legacy frameworks. Traditionally, exchanging data has been quite difficult. […]
pingback at 03. October 2005