What is a WebApp?
What is a Web Application, and how does it vary from a traditional website? There's a joke in tech, "there is no cloud: there's just somebody else's computer": in other words, you're either using your machine, or someone else's. A traditional website is just you browsing some files (in the HTML format) on someone else's computer. And a Web Application is for things more complex than just reading files: the other computer has to be running an Application (remotely) to serve up some of the stuff you're asking for: like if you need to enter forms and have that do something, do complex lookups (searches of files), or basically do anything more complex than read/write information but interact it with in a more complex way. That's what Web Apps are for.
The very high level view is that you have a server (that has some IP address and domain name). You type in the URL (domain and path information) or click on a link, which gets directed to that server. The server sees that as a request, and it responds by sending a file that a web-browser can understand, parse, and display. Any link, is just a reference to another file to load. This request-response loop is what the http (Hyper Text Transfer Protocol) is all about.
NOTE: The request-response cycle is the whole conceptual foundation of the world wide web:
- Users request either by typing the URL, or clicking on a link or image, and the server responds by sending back the file(s) that they clicked on or requested
- These files are just remote viewing someone else’s drive remotely – with a little formatting (HTML) for presentation
- These files and pictures don’t change, unless someone goes in and edits them (changes them manually)
Now sometimes websites want to do more than just serve static pages. You do things like you want to search a directory or a database, you want to display information conditionally, based on the users preferences or information you know about them, or allow them to enter information (through a form), and so on. That is where Application Servers or Web Applications come in. You need a computer program (Application), that is listening to the requests, and processing them.
Application Servers are far more versatile than just serving static pages and images. With application servers some of things you click on (links) aren't just static files, they are actually programs running on the server, or those links pass information to those programs. This allows those links to do more than a "simple" request (that can only return a static file) -- instead they can do things like a database query (and retrieve information for you based on information you filled out), or they can calculate some results (and do real computer work), or can add information to the server (write information to a database or file) that you gave it, or just automatically logging and remembering user actions on that site (like what they’ve read, or have interest in).
Basically a Web Application allows a program to do anything an Application can do, with the only limitation being that your interface is what you can pass and return from a Web Browser using HTML. So regular web serving is about almost all output, serving pages, and limited input; while Application serving is about many more possibilities that includes real input and bidirectional communication -- making the user experience far more rich and powerful.
I can't stress the differences between web and application serving enough. Traditional Web Serving is about giving people books (many pages) on-line and letting them turn the page, or choose other related topics and so on. The added dynamic nature of static links is an improvement over old style books -- but not about fully utilizing the new medium (the Web). Putting static links on a page requires the web designer to psychically know what the user wants to do, and still the user is only given the ability to mutely point to link and grunt, "me want that one". Application serving allows for many, many more possibilities, and allows the user to offer real input. Users can ask very complex things, and send larger amounts of information back (that will be processed) and allows for far more growth over time. The server can be much more sophisticated and instead of serving static pages (the same pages to everyone), the experience (pages) can be customized for each user based on information leaned about them (by asking, watching their behavior, or based on information they enter). The pages served are more dynamic (they change based on the users needs) and this is analogous to the differences between watching a TV show versus having a video conference and interacting with with whoever is on the other side. Application Servers allow companies to use the new medium (the Web) to it's full advantage.
Application Serving can also save you in design and maintenance time. It allows designers to look for commonality, and instead of serving many near identical duplicates of the same page (that only vary slightly), they can have one page (common format) that fills in all the unique information based on variables, parameters and context. This means less duplication of effort, more code reuse, and higher degrees of consistency.
Lastly application serving allows web site creators a much greater ability to track information, control information, and get input based on browsing habits and so on. With application servers they can audit what the users are doing, where they are going, and how users are using the site. This allows designers the ability to make a better site -- which should result in a better user experience and more payoff for creating the site, which is what the Web is all about.
There's some blurriness in what technical is a Web App, since a web server is running an Application, and there's some automated function in that App, that can do some complex things. And many Web Apps are just serving files (not all of them have complex databases, or are talking to other apps, etc). So people can pick nits and call a WebApp a Website and vise versa. But I don't think it needs to be that hard.
Application Serving is about making the Web a far more useful experience than just stuffing out lots of static pages. Yes, some websites can plug into off-the-shelf apps/utilities to do more than "just" serving files. But basically, Websites are still unidirectional experiences -- you request information, it serves it. Where a WebApp is about making the Web a bidirectional experience -- where you (a business) can be collecting information as well as just spewing it out, and where you not only spew information blindly but instead send out the right information (information more likely to fit the context of what the user wants), and you have programs and databases on the back end doing those calculations.
Networking : Bots, Crawlers and Spiders, oh my! • Cookies • EMail • Network Casting and Subnets • Never trust the Internet • Web Basics • Web Search Basics • What is DNS? •
Tech | Programming : Anti-aliasing • Basics of BASIC • Big or Little Endian • Binary, OCTal, HEXadecimal • Command Line Interface • Databases • Digitized Sound • Enterprise Tools • FUD • Forward Compatibility • Free Features • Hack, Crack or Phreak • Hiring Programmers • History of Visual Basic • How does compression work? • MHz or GHz • RISC or CISC • Raster Images • Software Consultants • Software Development Live Cycle • Synthesized Sound • UNIX • What is MP3? • Why is software so buggy? •