Understanding Web 2.0
Abstract: Despite its promise to transform how we use the Web, many IT professionals and businesses remain skeptical about Web 2.0's value.
Web 2.0, the second phase in the Web's evolution, is attracting the attention of IT professionals, businesses, and Web users. Web 2.0 is also called the wisdom Web, people-centric Web, participative Web, and read/write Web. Web 2.0 harnesses the Web in a more interactive and collaborative manner, emphasizing peers' social interaction and collective intelligence, and presents new opportunities for leveraging the Web and engaging its users more effectively. Within the last two to three years, Web 2.0, ignited by successful Web 2.0-based social applications such as MySpace, Flickr, and YouTube, has been forging new applications that were previously unimaginable.
Many enterprises are reaping significant benefits from Web 2.0. In a recent McKinsey global survey, more than three-fourths of senior executives participating in the study said that Web 2.0 technologies are strategic and that they plan to increase their investments in Web 2.0 applications ("How Businesses Are Using Web 2.0: A McKinsey Global Survey," McKinsey Quarterly, June 2007; http://www.mckinseyquarterly.com/links/26068). Another survey indicated that enterprises are rapidly adopting Web 2.0—89 percent of the CIOs questioned said they had adopted at least one or more Web 2.0 tools and saw relatively high business value in the technology (G. Oliver Young, "Efficiency Gains and Competitive Pressures Drive Enterprise Web 2.0 Adoption," Mar. 2007, http://www.forrester.com/Research/Document/Excerpt/0,7211,41794,00.html). Realizing Web 2.0's importance, many IT vendors and service providers are positioning their products and services as "Web 2.0 ready" and are bringing new Web 2.0 development tools to market.
Although Web 2.0 technologies are becoming mainstream both in consumer and business contexts, many IT professionals and businesses are skeptical. Web 2.0 is an important phenomenon that shouldn't be ignored as hype or a passing fad. This article will help you to understand Web 2.0 and its potential so you can harness it effectively.
Facets of Web 2.0
Web 2.0 is both a usage and a technology paradigm. It's a collection of technologies, business strategies, and social trends. Web 2.0 is more dynamic and interactive than its predecessor, Web 1.0, letting users both access content from a Web site and contribute to it. Web 2.0 lets users keep up with a site's latest content even without visiting the actual Web page. It also lets developers easily and quickly create new Web applications that draw on data, information, or services available on the Internet.
Web 2.0 isn't just a new version of the same old Web, it's a different thing in several ways. For example, Web 2.0
- facilitates flexible Web design, creative reuse, and updates;
- provides a rich, responsive user interface;
- facilitates collaborative content creation and modification;
- enables the creation of new applications by reusing and combining different applications on the Web or by combining data and information from different sources;
- establishes social networks of people with common interests; and
- supports collaboration and helps gather collective intelligence.
Web 2.0, however, defies a widely agreed-upon, concise definition—perhaps because the underlying phenomenon is huge.
Web 2.0 Technologies and Services
Web 2.0 is an umbrella term encompassing several new Web technologies, which I describe in the following sections.
A blog, short for Web log, is a powerful two-way Web-based communication tool. A blog is a Web site where people can enter their thoughts, ideas, suggestions, and comments. Blog entries, also known as blog posts, are made in journal style and are usually displayed in reverse chronological order. A blog entry might contain text, images, or links to other blogs and Web pages, as well as to other media related to its topic. Most blogs are primarily textual, but some focus on photographs (photoblog or photolog), videos (videoblog or vlog), or audio (podcast). A blog written from a mobile device such as a pocket PC, mobile phone, or PDA is called an mblog, and real-time blogging is known as liveblogging. A blog can be private (internal to an organization) or public (open to anyone).
Blog entries typically consist of a title, body, permalink (permanent link), post date, comments, category or tag, trackback (the ability to notify another blog that you added a post to your blog that's related to a post or comment on its blog), or pingback (the ability to request notification when somebody links to one of your posts).
The blogosphere (or blogsphere) encompasses all blogs as a community or social network. Many blogs are interconnected, some more densely than others, as bloggers who read other blog entries link to them and reference them in their own blogs. Bloggers also post comments on each others' blog entries. A blogroll is a blogger's list of links to other blogs or Web sites that he or she reads.
Blogs have several unique characteristics that together distinguish them from other forms of electronic communications such as email, instant messaging, short message service, and multimedia message service (Robert Scoble and Shel Israel, Naked Conversations: Blogs Are Changing the Way Businesses Talk with Customers, Wiley, 2006). For example, anyone can publish a blog post easily and cheaply through a Web interface, and any reader can place a comment on a blog post. These blog posts and comments are instantly available on the Web.
In addition, blogs are easy to find. You can search for blog posts by various criteria, including subject and author, using blog search engines such as Technorati (http://www.technorati.com) and Feedster (http://www.feedster.com). Some of these search engines can track the interconnections between bloggers and rank blogs depending on how many sites link to them.
Another unique characteristic of blogs is that a blog post can link to other blog posts, so interesting posts travel from site to site. And, through these linked blogs, people with similar interests can build relationships and form communities.
Finally, blog readers can syndicate blogs, so if you subscribe to a blog, you'll know when it's updated, saving you search time. You can subscribe to several blogs, and you can get free "home delivery" of blog entries to your personalized Web page or email software.
Many businesses use blogs to connect and engage with customers, employees, and the general public. Each day, users create 100,000 new blogs and make 1.3 million entries (Dave Sifry, "State of the Blogosphere," Technorati Weblog, Oct. 2006, http://technorati.com/weblog/2006/11/161.html).
Really Simple Syndication
RSS is a family of Web feed formats used for syndicating content from blogs or Web pages. RSS is an XML file that summarizes information items and links to the information sources. It informs users of updates to blogs or Web sites they're interested in. Web or blog RSS feeds are typically linked with the word "subscribe," an orange rectangle, or with the letters XML or RSS in an orange box.
Feed reader or aggregator programs can check a list of feeds on the user's behalf and display any updated articles they find. Popular Web browsers have built-in feed readers or aggregators, and you can easily add feeds to your Web page.
Atom is another syndication specification aimed at resolving issues of multiple incompatible RSS versions.
A wiki is a simple yet powerful Web-based collaborative- authoring (or content-management) system for creating and editing content. It lets anyone add a new article or revise an existing article through a Web browser. Users can also track changes made to an article. The term wiki is derived from the Hawaiian word wikiwiki, which means fast or quick. The user-generated online encyclopedia Wikipedia (http://en.wikipedia.org) is a wiki.
Wiki features include:
- A wiki markup language. "Wikitext" provides a short-hand way of formatting text and linking external documents and contents.
- Simple site structure and navigation. Contributors can create new pages and easily link one page to another. Because a blog site's hierarchy and structure is flat, the navigation is simple.
- Simple templating. When a page of wikitext is requested, wiki software converts the wiki markup to HTML and creates links between pages, and wraps this converted content in a template to provide a consistent look to all pages in the wiki.
- Support for multiple users. Hyperlinks to pages within the wiki are created automatically. Wiki software makes links based on the page's title, so the author doesn't need to use, remember, or type long URLs to link one page to another within a wiki.
- Simple workflow. You can write or edit and publish without editorial oversight or approval. Content in a wiki is managed through change monitoring and the wiki's ability to roll back to a previous version and prevent spam. You can also control user access and privileges, if required.
- A built-in search feature. You can search for specific information or topic within a wiki using associated keywords.
To experience a wiki, visit Wikipedia and write a new article or update an existing article, or use Wikipedia's sandbox.
- asynchronous contribution by a group of people—for example, experts, peers, employees, and users—who might be at different geographical locations;
- excellent means to annotate information or discuss evolving issues;
- higher communication efficiency and productivity compared to "back-and-forth" exchanges of emails;
- support for harnessing the power of diverse individuals to create collaborative works;
- centralized, shared repositories of knowledge and documents for all aspects of a project—planning, development, implementation, maintenance, and management; and
- support for the content to evolve, expand, and improve incrementally over time.
However, wikis have some limitations that need to be addressed, as required, before they can be widely deployed. They include content accuracy, balance, comprehensiveness, consistency, and reliability; issues of legal liability, privacy, reputation, and security; and accountability and controllability.
A Web mashup is a Web page or Web site that combines information and services from multiple sources on the Web. Similar to music mashups, where artists combine, for example, vocals from one song with the music from another, Web mashups combine information and/or complementary functionality from multiple Web sites or Web applications. A Web mashup server lets you connect, collect, and mash up anything on the Web as well as data on some backend systems.
Mashups can be grouped into seven categories: mapping, search, mobile, messaging, sports, shopping, and movies. More than 40 percent of mashups are mapping mashups (Eric van der Vlist and colleagues, Professional Web 2.0 Programming, Wrox, 2006).
HousingMaps (http://www.housingmaps.com) is a typical mashup application. It pulls sales and rental information from the classified advertisement Web site Craigslist (http://www.craigslist.com) and displays the listings on interactive maps pulled from Google Maps. Users can drag the map to see what is available for sale or rent in a given region. Several other new-breed Web applications similarly integrate multiple services under a rich user interface. For instance, Fishing Solutions (http://www.fishingsolutions.com.au) uses Google Maps and information from anglers to help users find fish. Roadwatch (http://www.roadwatch.com.au) shows all the speed cameras in an area or on route to a destination.
It's easier and quicker to create a mashup than to code an application from scratch in a traditional way. This capability is one of Web 2.0's most important and valuable features.
An API is an interface provided by an application that lets users interact with or respond to data or service requests from another program, other applications, or Web sites. APIs facilitate data exchange between applications, allow the creation of new applications, and form the foundation for the "Web as a platform" concept.
For example, Google Maps' API lets developers integrate Google Maps into their Web sites using their own data points. APIs for other services, such as weather or calendar information and search functions, are also available. Amazon's Web site offers several APIs, making it easy for other business Web sites to interact with it. For a directory of categories of APIs available for use, see Webmashup (http://www.webmashup.com/Mashup_APIs/index.html).
In addition to APIs, you can incorporate data feeds into a mashup. Or, at the most basic level, programmers can use screen scraping, a technique for extracting any information, of any type, from any Web page.
- An enhanced user interface. Drawing on data from mostly one source, this type of mashup provides a better interface—for example, a better way to navigate through information, a more responsive interface, or the presentation of more relevant information by displaying only a subset of information that is of particular interest to the user.
- Value-added information by aggregation. By bringing together information from various sources on the Web—both internal and external to an enterprise—into a dashboard-like view, this type of mashup adds value by aggregating the data, making the combined data more relevant.
- Value-added information augmented with an enhanced user interface. This type of mashup aggregates data from different sources and presents the data with a better user interface.
For information on the latest mashups and new Web 2.0 APIs, see ProgrammableWeb (http://www.programmableweb.com).
Developers and enterprises are beginning to use mashups to create new Web applications that provide value-added new features, knit together multiple services, and provide rich user interfaces. Because they are easy to create, even employees who are technically less-savvy can create Web mashups, rather than having to rely on enterprise IT teams.
An enterprise can use mashups internally to collect information from different sources and combine it in intelligent ways to help people make smarter decisions. For example, executives can use mashups to gain a deeper understanding of customers and sales, and thus to make better decisions. Mashups also find application in areas such as payroll, customer relationship management, logistics, procurement, marketing, and e-commerce.
By opening up data and services that mashup creators can use, enterprises can gain strategic advantages. For example, the mashed-up applications can divert new users to their sites, or mashup creators could develop a new Web site that provides better interfaces to an enterprise's existing Web site, which in turn could bring more visitors to the enterprise's site.
Although a mashup makes it easy to draw on multiple data sources or services to create new applications quickly, there are also risks in using someone's mashup service or API, in terms of their continued support, reliability, security, and scalability. Developers and enterprises that deploy and use mashup applications should be aware of the risks and limitations and choose dependable services.
Tags, folksonomy, and tag clouds
Tags are keywords added to articles in blogs or Web pages via social page tag tools such as del.icio.us (http://del.icio.us), Technorati, and Yahoo's My Web. Most blogs and Web publications use tags. Tags are also known as labels, and the process of creating tags is known as tagging.
Folksonomy refers to user-created taxonomies of information. It is an ad hoc classification scheme that Web users create as they surf the Web to categorize the content they find online. It uses collaboratively generated, open-ended tags or labels that categorize content such as Web pages, online photographs, and Web links. A special feature of folksonomies is that they don't have a hierarchy as in professionally developed taxonomies with controlled vocabularies, and hence they're inherently open ended. Folksonomies (such as user-created tags for photos on Flickr and tags for bookmarking in Del.icio.us) can, therefore, respond quickly to changes, innovations, and fads in how users categorize content on the Web.
Social bookmarking is the process by which users bookmark interesting pages and assign tags to each. Users can then share their tagged bookmarks (see, for example, del.icio.us). Social bookmarking is a great way of capturing contextual knowledge.
A tag cloud is a visual depiction of a list of content tags used on a Web site or blog, with some kind of visualization for each tag's popularity level. Generally, more frequently used tags are depicted in a larger font or are emphasized some other way, and the display order is alphabetical, making it easy to find a tag by popularity or place in the alphabet. Selecting a tag within a tag cloud will generally give you a collection of items associated with that tag. You can add a tag cloud to your Web site or blog using free, online services provided by vendors such as ZoomClouds (http://zoomclouds.egrupos.net), or create a tag cloud yourself. Popular Web sites such as Flickr, del.icio.us, and Digg (http://www.digg.com) use tagging and social bookmarking services.
You can use tags and tag clouds to derive inferences from an unstructured data source. For instance, one developer created a Web site that tracks US presidents' state of the union addresses to generate tag clouds (http://chir.ag/phernalia/preztags). By glancing at these tag clouds, you can see how the topics that influenced government policy (or at the least state of the union addresses) have changed over the years. You could deploy similar applications in a range of domains having large unstructured data—business, insurance, law, and more—to draw inferences such as common reasons for claims, most popular goods, common crimes, and popular topics.
AJAX-style programming makes Web pages more responsive by exchanging small amounts of data with the server so that the entire Web page doesn't have to be reloaded each time the user requests a change. An AJAX application eliminates the start-stop-start-stop nature of Web interaction by introducing an intermediary—an AJAX engine—between the user and the server. The AJAX engine both renders the user interface and communicates with the server on the user's behalf. It thus overcomes the page-loading requirements of HTML/HTTP-mediated Web pages and so significantly improves a Web page's interactivity, speed, and usability, making it easier to deploy rich-client Web applications.
For more information, see the AJAX Learning Guide (http://go.techtarget.com/r/1262974/3697538).
Adobe Flex (http://www.adobe.com/products/flex) is an application development solution for creating and delivering cross-platform rich Internet applications (RIAs) on the Web. Flex is based on Flash and provides a standards-based language and programming model that supports common design patterns. It provides a more productive Eclipse-based development environment; dramatically improves application performance; supports new classes of applications, such as those requiring real-time data push; and provides more fine-grained control over an application's look and feel. Flex and Flash have complementary strengths. While Flash helps users create rich interactive content, Flex leverages the development of data-driven RIAs.
Flex lets enterprises create engaging, interactive, expressive, scalable applications that dramatically enhance the user experience by increasing user interactivity with the application. For example, a data visualization application built in Flex can pull data from multiple backend sources and display it visually. A product configuration application can help customers navigate the process of selecting or customizing products online.
Google Web Toolkit
So, GWT overcomes the limitations of writing AJAX applications using a mix of technologies, while offering users the same dynamic, standards-compliant experience.
For more information on GWT and its features, see http://code.google.com/webtoolkit/.
Web 2.0 Development Tools
Several development tools are available for creating blogs, wikis, mashups, and social networks. These tools make adoption of Web 2.0 easier, quicker, and cheaper.
Blog software, also called blogware, is designed for creating and managing blogs. The following are three popular blog software programs:
Movable Type is a proprietary blog publishing system that must be installed on a user's Web server. It supports most blogging features, including user accounts, comments, categories, themes, and trackbacks, and is extensible through a large library of third-party plug-ins. The system is written in Perl and stores the blog's content and associated data within MySQL.
WordPress is a blog hosting provider. The online system lets users create and manage their own blogs without requiring technical knowledge. To set up a blog, a user registers with WordPress and opens a free hosting account. Users don't need to register to read or comment on blogs hosted on the site, unless the blog owner requires it. Most of the site's features are free, but some, such as a CSS editor and domain mapping, are available only to users who pay for them.
Blogger is another blog hosting system. Blogger can host blogs internally (using a blogspot.com address), externally on a user's domain, or on the user's server (through FTP or SFTP). Blogger also supports Google's AdSense service as a simple way of generating revenue from running a blog.
Choosing an appropriate blog software for enterprise applications requires that you consider several factors, as I describe in the "What to Consider When Choosing Blog Software" sidebar.
Wiki software or a wiki engine runs a wiki system. A wiki engine is usually implemented as server-side script that runs on one or more Web servers, with the content generally stored in a relational database management system. MediaWiki and TWiki are two of the more sophisticated open source wiki applications. Commercial wiki engines include Socialtext (http://www.socialtext.com), JotSpot (http://www.jotspot.com), and Atlassian (http://www.atlassian.com). Other popular Wiki engines include MoinMoin (http://moinmoin.wikiwikiWeb.de), PmWiki (http://www.pmwiki.org), and UseModWiki (http://www.usemod.com/cgi-bin/wiki.pl).
Choosing a wiki engine for an application depends on several factors, including the following:
- Editor features—WYSIWYG capabilities, sectional editing, rollback to earlier versions, file upload, image insertion, and so on
- Reader features—table of contents, navigation bar, search, access/usage statistics, article rating, and printable version
- Groupware features—forum, gallery, and message system
- User management—user personal page and personalized toolbar and preferences
- Access controls—user access and privilege controls (important for internal enterprise applications)
- Content import and export—the ability to import content from external files (for example, HTML or a Word document) or to export wiki content in a specified file format
- Extensibility—availability of third-party plug-ins and provisions for creating them, if required
- Portability—support for other formats, so you can export your text to other systems
- Scalability—number of articles, volume of content, and number of users (writers/readers) the wiki can handle
- Hosting platform—where the wiki will be hosted (on a server or a local machine) and whether it will require online access
Several mashup tools are available for creating Web mashups. These include the following:
- Above All Studio, http://www.aboveallsoftware.com/product_studio.asp
- ActionBridge, http://www.nimaya.com/salesforce/index.asp
- Dapper, http://www.dappit.com
- DataMashups, http://DataMashups.com
- JackBuilder, http://jackbe.com/Products/ide.php
- Process Engine, http://www.procession.com/products/process_engine.html
- Ratchet-X Studio, http://www.ratchetsoft.com/
- RSSBus, http://rssbus.com
You can find a review of these tools elsewhere (Dion Hinchcliffe, "Assembling Great Software: A Round-Up of Eight Mashup Tools," 2 Sept. 2006, http://blogs.zdnet.com/Hinchcliffe/?p=63). Many more mashup tools will be commercially available soon.
You can experience the elegance and simplicity of mashups by assembling one yourself at DataMashups, which provides an online service preview that lets you start assembling mashups using a rich palette of preexisting widgets, feeds, data from local and remote SQL databases, and more.
Although Web 2.0 began simply as a consumer phenomenon, attracting numerous users and contributors for social applications such as MySpace, Flickr and YouTube, and the online encyclopedia Wikipedia, it has significantly impacted many other application areas by enabling better, faster, and richer applications, while reducing costs of development and deployment and offering tangible benefits. For example, Web 2.0 can help businesses in product development, market research, competitive intelligence gathering, and revenue generation (for an overview, see San Murugesan, Business Uses of Web 2.0: Potential and Prospects, Cutter Consortium, 2007 (http://cutter.com/cgi-bin/catalog/store.cgi?action=link&sku=RP62BD0701&uid=)). In addition to the wide array of Web 2.0 applications under development (see the "Web 2.0 Resources" sidebar), a growing number of companies are offering innovative new services free online.
Web 2.0 applications, however, pose a new design and development dilemma: fast and easy versus well designed and well engineered. We need to rethink Web application development methods in light of Web 2.0. Addressing the issues of scalability, performance, and security of Web 2.0 applications is another challenge for IT professionals.