Srinivas Reddy’s Weblog

My Tech Rants

Understanding Web Science

leave a comment »

Having recently read a great ACM article on Web Science (, I would like to share my related insights.  As a Software developer it made me sit back and think about the implications of Emergent nature of web to application design.  

I would like to use two large applications as the basis for my insights to the topic. One is the recent Eclipse Ganymede release ( and the other is the Goolge Data Api’s (  Both represent a new way of designing (web) applications and both have the emergent nature of the web working in their favor. I believe central to understanding (the computational aspect of) web science is Software as a Service (SaaS) and Component model/repository concepts.

A key part of the success of Eclipse depends on having a extendable plug-in component model (Check link to understand the heart of Eclipse – The evolution of Eclipse from a IDE to a general purpose application platform is phenomenal.  You should check the tool Mylyn to understand more on where Eclipse is going (A quick video intro can be found here –   On the other hand Google Data Api’s show where SaaS as a industry is going. At the heart of Google Data Api’s is the ATOM protocol (Check the blog entry for a quick intro to it – .  Using REST type services (for more on REST – it’s possible for client Applications to create new Mashup applications.

While both applications have a fundamentally different design approach both offers an open API and extensible design.  Looking back in history this is not very different from what Microsoft had done with its Windows component models (COM, OLE…) and API’s.  Other Component technologies (like CORBA, EJB, Web Services,…) have also been used with varying degrees of success. What ‘Web’ has changed is the ability of a lot more people to create content (be it text, photos, music, videos….). A lot of data created is unstructured and does not have designed application/component model behind it (as in Security, modularity,…). A more conventional application development would have had a structured database with designed component model behind it.  Given that we will see even more users creating content on the Web and most likely based on SaaS models, what can we expect in the future?  Due to the Emergent nature of Web most SaaS applications tend to be point solutions (ex: Social networks, Travel site….) with changing business models and user experiences ( historic changes at Facebook are a good example of this). Their mashup nature links them to external services which themselves are evolving. 

So how does one design applications in this environment?  Its here I think lessons can be learnt from the success of Eclipse. While designing applications for Web users in different domains is much more challenging than offering a common toolset for Software Developers, a need for extendable plug-in component model is central. Is the approach taken by Google the right one here? I personally think offering a common Data API is only a partial solution with potential Google lockin.  The solution is probably a combination of Semantic web (defining Domain specific standarised Component models) and Folksonomies (as in end-user driven semantic markup like tagging, bookmarks, ranking,…). But that is a  subject for a future blog :o)


Written by srinivasreddy

July 27, 2008 at 12:17 pm

Posted in 1

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: