Skip to content

1. Introduction to Web 2.0 Technologies

Notes

  • Web 1.0 was the first generation of the World Wide Web, characterized by static web pages and a one-way flow of information from the server to the client.
  • Web 2.0 is the second generation of the World Wide Web, characterized by dynamic web pages and a two-way flow of information between the server and the client.
  • Web 2.0:
    • started by introducing the server-side languages.
    • examples: eBay.com, YouTube.com, Yahoo.com, and Google.com. later: Twitter, Facebook, and LinkedIn…etc.
    • Some of the languages of server-side technology are PHP, Perl, Java, ColdFusion, and ASP.
    • The architecture of the software changed to an n-Tier design.
    • first tier: the client-side (browser): code was executed there (HTML, JavaScript, Java Applet, Flash).
    • second tier: the application server: the web server with a server-side language. examples: Tomact (Apache+Java Server), WebLogic (Web server+Java Server by BEA/Oracle), WebSphere (Web server+Java Server by IBM), ASP (Internet Information Servers or IIS by Microsoft), PHP (Apache + PHP module).
    • third tier: the database server: the database server. examples: MySQL, Oracle, SQL Server, and DB2.
    • The architecture was called 3-Tier or n-Tier when additional systems were involved.

compiled vs interpreted languages

  • Many languages used in server-side programming are interpreted instead of compiled.
  • interpreted:
    • This means that the source code for the application is copied to the server and it can be changed right on the server.
    • The flexibility of scripted applications is in maintainability, readability of the code, and compatibility with server types.
  • compiled:
    • In standard programming for a workstation, the source code is first compiled into machine code and then installed on the workstation.
    • This is why software is deployed as SETUP.EXE, the actual editable code is not provided.
    • Compiled applications can often be optimized for execution, there they are typically faster.
  • PHP allows a special optimization, where a scripted program is compiled when the first user visits the site, then it is not re-compiled until the server is restarted. In some production environments, this is an acceptable arrangement since changes to the code are not made often.

PHP Leads Web 2.0 [^1]

  • Web 2.0 usually includes one or more of these elements:
    • Rich Web Applications (usually built with AJAX).
    • SOA (Service Oriented Architecture).
    • Social Web Elements: comments, likes, etc.
  • Apps are written in a platform-independent manner: application runs on the server and present its interface using standard HTML or XHTML languages (with AJAX) which means:
    • no active distribution or installation
    • user always have the latest version of the app (no needs for updates or bug fixes)
    • subscriptions to services (lock the account when the money runs out)
    • data migration, upgrading are not the concerns of users anymore.
  • big monolithic applications are replaced with smaller service-based Apps.
  • Wikis, podcasts or blogs might be useful tools, but they are not considered mission critical applications. But CRM systems for example, are mission critical.
  • CRM vendors: salesforce.com that provides ASP (application service providing) or software on demand.
  • Two basic principles of Web 2.0 are:
    • the use of open standards
    • its ability to expose the functionality of other applications.
  • PHP stacks:
    • LAMP (Linux, Apache, MySql, PHP).
    • OLAP (Oracle, Linux, Apache, PHP).
    • WAMP (Windows, Apache, MySql, PHP).
  • Emerging companies like MySQL (Databases), SugarCRM (PHP-based CRM) or Zend (PHP programming) are the main technology stakeholders now.

The difference between compiler and interpreter [^2]

  • interpreter:
    • is a program that directly executes instructions written in a programming language.
    • In fact an interpreter could translate the source language in a intermediate form, to speed up execution
    • a language is first compiled in an intermediate form/language and then this intermediate thing is interpreted at run time.
  • compiler is a program that transforms source code in a low(er)-level language.
  • complier or interpreter are not a one single program, instead a combination of programs, eg. both of the has a linker: a program that combines different object files in one file.
  • compiler generates a stand-alone program, while an interpreted program always need the interpreter to run.
  • it is easier to make cross-platform programs with an interpreted programming language.
  • A compiled program is faster to run than an interpreted program, but it takes more time to compile and run a program than to just interpret it.
  • interpreted programs:
    • have more development speed.
    • easier debugging
  • Rasmus Lerdorf created PHP to be easy to use.

Key Differences between Web1.0 and Web2.0

  • differences fall into categories:
    • technological (scripting and presentation technologies used to render the site and allow user interaction);
    • structural (purpose and layout of the site);
    • sociological (notions of friends and groups).
  • Web 2.0 is both a platform on which innovative technologies have been built and a space where users are treated as first class objects.
  • web 2.0 started around 2004.
  • sites created before 2004 and did not change much are considered web 1.0.
  • Some of the important site features that mark out a Web2 site include the following:
    • Users as first class entities in the system, with prominent profile pages.
    • The ability to form connections between users: links, friends, groups…etc.
    • The ability to post content in many forms: photos, blogs, video ..etc.
    • Other more technical features, including a public API to allow third-party enhancements and “mash-ups”, and embedding of various rich content types (e.g. Flash videos), and communication with other users through internal email or IM systems.
    • use AJAX (autonomous Javascript and XML), and dynamic use of XMLHttpRequest.
  • Web 2.0 examples: Facebook, YouTube, Flickr, LiveJournal and MySpace.
  • Web 1.0 examples: Slashdot and Craigslist
  • Web 1.5 (between Web 1.0 and 2.0): Amazon, Digg, Ebay and Friendster.
aspect web 1.0 web 2.0
structure hierarchy social network
front-page static different for each user
crawling easy: no login required hard: crawler must have an account
content update rate predictable intervals unknown, depends on user interactions
page definition single-user writing medium shared space
caching easy hard
page structure all pages are the same different page types: user profiles, content pages ..etc.
user stickiness contains links to external sites site tries to stick you as much as possible
portalization site concentrates on one topic site tries to create as many features to stick user around
Pub/Sub No yes
external extensions No Yes
Public APIs No Yes
AJAX NO Yes
Traffic Measurements easier (clicks, views) more complex (stickiness, interactivity)
ads type pay-per-click pay-per-action
performance and latency spikes may happen, content is public spikes are expected since the signup process make NoOfUsers fixed
provision public traffic can not be provisioned provisioned, eg. limited number of link shares, comments per minute per account
users location scattered around the globe more concentrated (friends are in the same country)
CDN Not Useful Useful (content is trending on one country, country level cdn help in caching )
Metrics NoOf users, servers, protocols Interactivity, Growth patterns,
Real-Time requirements Only for stock Apps important in every App (IM, notifications)
  • beyond web 2.0:
    • Implicit social applications (Skype).
    • P2P (peer to peer).
    • Web 2.0 Electronic Fence: web 2.0 limits communications with real friends who are on other websites.

References

  • [^1] PHP Leads Web 2.0: A Closer Look at the Hidden Drivers and Enablers of the Second Internet Revolution. By Andi Gutmans, Co-Founder and Vice President of Technology, Zend Technologies, Inc. September 2006
  • [^2] The difference between compiler and interpreter https://tomassetti.me/difference-between-compiler-interpreter/
  • [^3] Key Differences between Web1.0 and Web2.0 Graham Cormode and Balachander Krishnamurthy AT&TLabs–Research 180 Park Avenue, Florham Park, NJ {graham,bala}@research.att.com February 13, 2008.