Web 2.0 and Social Networking—what do those two technologies have in common? When looking at them independently, and from a purely technical point of view, you might think they don't have a lot in common. However, merge the concepts of two of the hottest technical advances to come around in a while, and you have the power to change the world. Not all at once, as change happens over time, but they do provide a framework and the opportunities for major change, which is a first step and much of what we discuss in this book.
Initial impressions are important. When you pick up a book like this and start to browse the contents in the bookstore, as the reader, you probably have some high expectations. Education is probably the top requirement that you expect from a technical book like this. However, at what level? Are you looking for an overview, a strategy, a design, or perhaps hands-on, do-it-yourself steps?
I struggle with what makes the most sense and what will provide you with the most value. This book attempts to give you some advice on all these levels; however, there is a fair amount of focus toward a hands-on approach. My hope is that you can use this book as a reference that provides some concrete guidelines for creating and then implementing a strategy for Web 2.0 and Social Networking integration within your group or organization.
Much of the focus in the Web 2.0 and Social Networking space has been toward customer interaction; that is, how to draw in or collaborate better with customers through blogs, forums, or Facebook and MySpace pages, how to increase brand or product awareness or drive sales with viral marketing campaigns, or how to increase customer satisfaction using Ajax so that pages are updated almost automatically. In this book, we look at these ideas and more. However, we also turn our focus inward to the enterprise to see how we can use new strategies and technologies to increase productivity, collaboration, knowledge management, and creativity of our employees and partners.
The term Web 2.0 was coined by Tim O'Reilly, founder and CEO of O'Reilly Media, Inc., and the term became better known across the industry after the O'Reilly Media Web 2.0 conference in 2004. The idea of Web 2.0 definitely has some technical aspects, with the implementation and innovation of new technologies and standards within the web platform. However, much of the focus of Web 2.0 is on new business models. Whereas the focus of Web 1.0 was on delivering products, Web 2.0 had created a paradigm shift to delivering services that can be used and combined with other services in new ways. Another key aspect is the growth of interactivity with end users in new ways, enabling users to drive what is important or of the most value.
Figure 1.1 illustrates the concept of Web 1.0, where there is a strict producer/consumer approach to delivering web content. The webmaster or content creators build and maintain the website for consumption by end users. The relationship is strictly unidirectional in this model, fixed and targeted based on assumptions made by the webmaster and content team.
Figure 1.1 Web 1.0 paradigm
In contrast to this approach, in the Web 2.0 model, users actively participate and contribute to a website. This bidirectional approach enables users to interact with the site and each other in ways that provide for and foster a collective community. Users can create, edit, rate, and tag content at will, which provides other users with new information and guides the relevance of what is important to the overall community.
In addition to providing the underlying ability for communities to build momentum, obtain critical mass, and contribute to ongoing collaboration, services can be provided in the form of application programming interfaces (APIs), Representational State Transfer (REST) services, or Really Simple Syndication (RSS) feeds, which enable end users to merge and view data in ways that haven't even been imagined (see Figure 1.2).
Figure 1.2 Web 2.0 paradigm
Web 2.0 is not only about providing data in new ways, it is also about improving the user interface and enabling end users to view data quicker and in more dynamic ways through richer user interfaces using Ajax and other technologies.
Rich User Experience within the Browser
Although not always the case, the goal is to take advantage of the browser as the universal client and provide a richer interactive experience to the end user. Two core technologies that help provide this experience are Ajax and REST. There are lots of other frameworks technologies in this category that can also provide a browser-based rich user experience, such as Adobe® Flex® and Macromedia® Flash®. In addition, there are non-browser-based approaches, such as using an Eclipse framework based approach such as Lotus® Expeditor.
The key in Ajax is the term asynchronous, which enables the browser to provide services and features in simple but exciting ways. Ajax provides a new paradigm for interacting with the browser. Essentially, the browser can be updated in an asynchronous manner, which means that there need to be no more full-page refreshes that are so common with the Web. Take, for example, a simple stock ticker or some fluid piece of data. With the pre-Web 2.0 approach, the entire screen needs to be refreshed to update a potentially small piece of data. With Ajax and Web 2.0, that small piece of data can be retrieved behind the scenes at regular intervals and updated while users focus elsewhere on the page (see Figure 1.3).
Figure 1.3 Ajax interaction model
The purpose of all of this is to provide much more dynamic web pages that not only respond quicker to user action, but that actually assist the user in working with the web page. Simple Ajax patterns include the following:
- Type Assist: This enables a user to type into a text box while the system tries to figure out what word or phrase the user is looking for. As the user types, the text box continues to change with different values that can assist the user in getting the right value.
- Form Assist: Another scenario is the concept of updating a list of options based on an earlier choice. Consider, for example, a user trying to fill out a form on the screen. Choosing one option from a list or drop-down box might trigger different options to appear, change, or prefill with additional values based on that choice.
- Page Fragment Updates: Again, like in the stock ticker example, data can be retrieved behind the scenes and update small fragments of a page without requiring a full refresh of the page.
- Sliding Palettes: This pattern is where a window appears or slides out on top of the page. This allows the user to choose from a picklist or set of displayed options.
More advanced examples of using Ajax are more obvious, where large sections of the page are updated based on options chosen. One example is a customer service type of application where the user can look up customer and order detail information in a single interface. A detailed example of this is in Chapter 3, "Ajax, Portlets, and Patterns." It has been said that the use of Ajax is nontrivial, which means that although it is simple to add basic examples to your web pages, more advanced works require advanced skills and additional design work to obtain good results. The results of this effort can be impressive as web pages become truly interactive for the end users.