Movable data
Today on Scripting News:
Web 2.0 is really simple, it’s RSS 2.0.
Well, not exactly but the web as a platform owes a lot to RSS as the first mainstream example of movable data: a simple and safe way to make human-understandable data available to any computer and application, anywhere. Movable data, with both its technical and social impacts, is more than anything else the roots of the Web 2.0 revolution.
Data interchange has been a serious issue for years: when I started working at networked applications, making web applications talk to legacy applications on the backend was a nightmare. Most of all, C to Java communication was. When we had a hard time keeping our players together we certainly weren’t wondering how to make data available to third parties. So our system used to be closed, always without external access to the database and that meant no hooks for external players.
It’s not just that data has been unreversably mixed to presentation in the early days of the web. And it’s not been a Web thing only. The problem was even threefold:
- Data was never interchangable between different systems, architectures and development platforms
- The concept of data was technical, not data as it was for humans but data as represented in technical projections like memory spaces, language-dependant structures and even SQL databases.
- There was no safe way to make data available to third parties.
It took solving all these three issues to get to the point we are now: structured text-based data was the way to address the first one and XML was the answer. Data was converted back to its human form to make it easy to write software for it. Finally, HTTP and the XML-based RPC APIs made it safe to give external access to the data storage.
Web 2.0 is keeping things simple (like Dave says in the same post) among many other things by making all software speak the same language. The architecture I’m working at now has XML and XML-RPC everywhere, no bit of data gets in or out of any component in the system in any different format or using any other protocol. And even if it is harder to implement (keeping things simple is always hard), it makes everything simpler than ever: any player able to play with movable data is welcome, all platforms and languages are on the same level, no change on any component’s internals impacts on others. We could even change the backend database switching from an SQL engine to a native XML one and no other developer in the team would tell the difference. The API sets the rules of the game.
What’s most fascinating is that in the Web 2.0 arena movable data playes a key role both on the technical side (XML-RPC, SOAs) where it changes the development model and on the human side (RSS, hopefully soon many microcontent formats) where it makes new forms of data consuming available to people, changing the way they interact and inform.
RSS and XML-RPC were the first real world incarnation of these concepts, honor is due. Even if I wouldn’t say that Web 2.0 is RSS 2.0, RSS 2.0 is probably the first and most widely adopted kind of movable data. And movable data is the real revolution.