Being more and more involved into the Web2.0 world and having the opportunity to collaborate with some of the best minds in this field, I must say that it becomes clearer where the world is going to, Web-wise. I am not saying that I have the complete picture, but it is common to find patterns withing the subject of interest, once you get into this state of mind which I would like to call hackmode. Well, I do fall into hackmode quite often so let me share with you my vision.
In this post, I am going to look at a few of the key aspects of the future of the Web the way I see them now. I am sure that at some point latter, I will stumbles across my ramblings and laugh at myself and my own stupidity and boldness. However, it feels like I a duty I have to bound to, so here I come:
Web1.0 vs. Web2.0
Some may say that the only difference between Web1.0 and Web2.0 is withing the syntactical semantics of both terms. In a sense this is true, since Web2.0 is primary based on Web1.0 technology. Though, philosophically, they mean completely different things. While Web1.0 was all about pages, Web2.0 is about applications. The second implies more interaction then the first. If you think about it ,Web2.0 is a result of the natural progression of the web.
When first Tim Berners-Lee, whom I respect a lot, came up with the hypertext as a model for social interaction, we were bound to pages. I guess at that time the human mind was not capable of perceiving something more that goes beyond the 2-dimensional sheet of paper. Today we still perceive websites as composition of pages, although the rules of has changed slightly in order to fit the rest of the world withing the boundaries of the game. Today, the Web is social interaction tool. It is a tool for collaboration, communication and general interaction. Pages do not fit into the picture any more, they have become redundant. Today, we talk about web applications.
Web Applications are set to work on different terms. They must be interactive enough in order to engage the regular user. They also must be as agile as possible in order to satisfy the never ending market for more. The web has turned into highly demanding industry.
Data, Structure, Content
Throughout the years, we have learned a few important lessons, which were all result of previous mistakes. We’ve learned that software must be composed of modules which fit together like mechanical gears – a model that allow us to build simpler and easier to develop and understand systems, while still being part of huge and complicated structure. We’ve learned that there is a great deal about separating the data, from the logic, from the presentation – something that was brought by the MVC (Modal View Controller) and other design patterns. We’ve learned about semantics and pragmatics, yet we don’t understand all of them, but I guess the time will come when we switch to RDF to OWA.
What I am trying to say is that the simple 2-dimensional page has turned into a well structured data source, a feed. Feeds represent pieces of information which are machine readable and not that human/user friendly. Today we find feeds in a form of RSS and ATOM structured documents, XML and even JSON (JavaScript Object Notation). In the future we are going to see even more of these in addition to a whole range of new Micro-formats, and semantically structured documents.
The separation of the data from the presentation was our first step towards the future. Machine consumable data can be easily processed with computer algorithms and meaning can be extracted. This was not possible with the old Web. Machine readable data is also the core of the Web – the memory of existence.
System Calls, Inter-application/process Communication
There is no need for memory unless we put it into action. Here we define the actuators. System calls, IPC (Inter Process Communications) and RPC (Remote Procedure Call) are terms that we use in general computing and especially Operating Systems. Today, they apply to the web.
I mentioned earlier that the data is separated from the logic, but also the logic is separated from the presentation. The free form of logic that has appeared as a result of this are the client-side and the server-side centric systems. The server-side is responsible for providing the facilities for the client-side, while the client-side provides facilities to the user. IMHO, this delineation between roles of responsibilities may disappear with the time, a trend that we see with the raise of AJAX technology.
It is important to understand that the free form of logic is also in a machine consumable format. We call this API or Application Programmable Interfaces. If you follow the latest trends, you will see that more and more on-line entities provide some sort of interfaces for machine interaction that resemble to a great extend the situation that we have with System Calls, RPC and IPC, which we currently use in modern operating systesms.
Web Operating System (WebOS)
Here we are. When we take the data and put it through the free form of logic we end up with interaction between machines, as we established earlier. Now slam the human interface on the top and the result will be what we reffer today as Operating System. It is a different Operating System though, but also very similar to the OSs that we use today. The main difference is that the WebOS does not have centralized memory, processing and power units. The structure of this OS is dispersed across the boundries of the Web. Every single user, or application is part of this system.
The WebOS is not a graphical interface, neigher it is represented by a single entity such as Microsoft, Yahoo or Google. The WebOS can be accessed streight from your browser, although that may not be always the most convienient way. The WebOS is about putting the people in charge of the technology.
Security
However, keep in mind that humans make mistakes. We make mistakes. This is where all security problems come from and the Web is not immune to them. On the contrary, it is more vulnerable then anything else. This is a subject that, as a security expert, I feel resposible to talk about.
The security principles of the WebOS are very different from those found in traditional operating systems. We no longer have to look at every system as an entity on its own. No! We must look at the Web as a whole. Some times, I get the feeling that old generation of security experts and hackers will never grasp this principles the way the upcomming waves will. Fortunately, whe web has turned many into souldiers that take either side although I hope that the good will preveil.
My projections of the future are probably distorded and very incorrectly put but I do feel that they are right for the time we are currently leaving in. I hope that this article was helpful. If not, well, at least you have a different point of view on the matters.
Just to add.. MVC = Model View Controller and it’s not a design pattern but a paradigm which results in the possibility to build (design) patterns around it – and it is around for generations but hit the webapp community comparably late – sometimes in pretty weird forms like MVC2.0 or WebMVC.
Problem is that its ontologies don’t really fit the requirements of modern web applications so workarounds were build (oh I hate CakePHP sometimes *g*)
The web application is not a desktop application and never will be – and the WebOS is the web itself – including all the problems evolving around it. XSS is not really an issue – and SQLI isn’t either. What should be put in focus is the the design flaws that come packaged with the web itself – beginning with HTTP and ending with application patterns resulting in tools way too powerful so the developers their selves aren’t capable of realizing what monsters the have created. A pretty ‘Oppenheimerish’ situation…