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.