There are some fundamental techs to construct a web application.
But before that research, what is so-called 'web application'.
My idea is that :
The kernel value of a web application is to integrate online and offline users, and communicate between clients and servers. So that, there is no limitation to which device that users would like to take: laptops, desktops, cellphones, cars, etc. And also, there is no limitation to which operation systems and browsers that users use it by their own habits: Windows, Linux, Chrome OS, IE, Firefox, etc.
If I think "Hey, just rewrite your own code by JavaScript and PHP....", I was so wrong in this topic. OK! obviously, if Google provide a "web office" for free, it will be a big hit to Microsoft. "Free Word and Excel!" ... Can you image?
"No installation, no need to upgrade" is not enough to attract people to move their feet to your circle, so does "Free".
"Google docs", a good example here, provides some basic document functions to online edit. It also gives chance to invite people to edit the content as a group of co-worker. There will be many web applications that I can image them mostly from the traditional applications we used will be "migrated" to web based application with this kernel value - Groupy!
Let's integrate it:
A web application will put these concepts together
a.) online and offline usage. (asynchronization and synchronization)
b.) client and server.
c.) peer to peer.
A web application may have these functions
a.) groupy
b.) broadcasting