1. What is Web 2.0 ?
Roland Barcia
Senior Software Engineer
barcia@us.ibm.com
Track: Technical/Development
Session 4163A
Matthew Perrins
Senior Certified IT Specialist
matthew_perrins@uk.ibm.com
2. 2
Agenda
What does Web 2.0 mean to the enterprise
What is Ajax
Web 2.0 is more than Ajax
Web Composites
4. 4
Introduction to Web 2.0
Origin of the term was Tim O’Reilly’s article:
http://www.oreillynet.com/lpt/a/6228
It is about design patterns and business models
for the next generation of software
Technology isn’t the point – in many ways, the
technologies involved are overly simplistic,
inefficient, and not new
The key point of Web 2.0 is the social factor – it
is about how people and their actions make the
software better
5. 5
The evolving Web platform
Web 2.0 is about connecting people,
and making technology efficient for people.
Web 1.0 was about connecting computers
and making technology more efficient
for computers.
Web 2.0 changes the way in
which businesses interact
with its customers
Web 2.0:
Is about communities and social networks
Builds contextual relationships and facilitates
knowledge sharing
Is about people and the way they collaborate
6. 6
WEB 2.0 functionality has enabled new ways to use the web with quick
and simple “social tools.” As a result, many entities have been labeled
as WEB 2.0, all with different functionality, utility, and business impact.
Source: Forrester Research, Inc
7. 7
O’Reilly’s view of Web 2.0 Core Competencies of Web 2.0
Companies
Services, not packaged software,
with cost-effective scalability
Control over unique, hard-to-
recreate data sources that get
richer as more people use them
Trusting users as co-developers
Harnessing collective intelligence
Leveraging the long tail through
customer self-service
Software above the level of a
single device
Lightweight user interfaces,
development models, AND
business models
Source: http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
8. 8
Organizations adopting Web 2.0 capabilities will have new
business considerations to address which effect both front-
end functionality and backend architecture.
1. Embrace the Long Tail
Leverage customer self service to reach the
entire web not just the head
2. Data is your Competitive Advantage
Seek to own a unique, hard to recreate source
of data
Data is the new “INTEL INSIDE
3. Allow your users to “Add Value”
Key competitive advantage is the extent in
which users add their own data to your
platform. Don’t restrict your “ architecture”
of participation. Involve users implicitly and
explicitly in adding value to your
applications.
4. Network Effects by default
Set inclusive defaults for aggregating user data
as a side effect of their use of the
application
5. Some Rights Reserved
Limiting re-use prevents experimentation.
Benefits from Web 2.0 come from collective
adoption, not private restriction. Design for
Reliability and “ hack-ability”
6. The Perpetual Beta
Internet applications are no longer software
artifacts, they are ongoing services.
Engage users as real-time testers and user
their feedback as an instrument in
designing the service.
7. Cooperate, Don’t Control
Web 2.0 is a network of cooperating data
services. Offer web services interfaces and
syndication through lightweight
programming models
8. Software Above the Level of a Single
Device
Integrate service across handheld device,
Desktop PC’s and internet servers
Web2.0 - Tim O’Reilly, 2005
9. 9
Enabling Web 2.0 functionality requires additional resiliency
to existing enterprise infrastructure, and can be mitigated
by robust Services Oriented Architecture (SOA)
WEB 2.0
Componentized Interoperable
Modular Scaleable
10. 10
• User-driven
adoption
• Value on demand
• Low cost of entry
• Public infrastructure
Software as a
SERVICE
Service,
not software
COMMUNITY
mechanisms
• Recommendations
• Social networking
features
• Tagging
• User comments
• Community rights
management
Users add
value
The three software patterns driving Web2.0
SIMPLE
user interface
and data
services
• Responsive UIs (AJAX)
• Feeds (Atom, RSS)
• Simple extensions
• Mashups (REST APIs)
Easy to use,
easy to remix
Web2.0
11. 11
Web 2.0 Themes
The Intelligent Web
Harnessing
Collective
Intelligence
Tools: RSS,
AJAX, PHP,
Ruby,
Lightweight
Java
End of the
Software Release
Cycle
SW above a
single device
Data is the
“intel Inside”
Standards: REST,
XHTML, CSS
Techniques:
Mash-up, wiki,
tagging, blogging
Rich user
experiences
Light-weight
programming
models
Web as a
Platform
12. 12
Technology Attributes of Web 2.0
RSS/ATOM allows someone to link not just to a page, but to
subscribe to it, with notification every time that page changes.
Users must be treated as co-developers, in a reflection of open
source development practices. The open source dictum,
"release early and release often
"SQL is the new HTML." Database management is a core
competency of Web 2.0 companies.
XML or JSON data over HTTP, in a lightweight approach
sometimes referred to as REST (Representational State
Transfer) as an alternative to SOAP.
AJAX incorporating: XHTML and CSS, DOM, XML and XSLT;,
XMLHttpRequest and JavaScript allowing information to be
mashed up into new interactive portals."
Feeds
Perpetual Beta
Info-ware
Lightweight
Programming
Model
Rich User
Experience
13. 13
Core Competencies of Web 2.0 Companies
Harnessing the power of the communities
Trusting users as co-developers
Services, not packaged software, with cost-effective scalability
Leveraging the long tail through – Communities and Customer
self-service and ad hoc B2B
Collective
intelligence
Users
Services
Leveraging
Long-Tail
The Web is about content - HTML, forms, images, audio, …
Application interfaces and data surface through Web pages and feeds.
Mashups are an additional, personal approach to integration that builds
on content and complements WS-*.
Content
14. 14
WebSphere Focus – Web Composites
Bridging Web SOA and Enterprise SOA
Enterprise SOA
Web SOA
RSS
Web SOA
Bridge
ATOM
JSON
REST
AJAX
XML
PHP
Enterprise
MASHUPS
FEEDS
.NET
J2EE
WSDL
CICS
WS-*
MOM
SOAP
Ruby
J2SE
JDBC
JMS
16. 16
eBay APIs – Driving volumes of transactions
• eBay Web Services supports some
2.5 billion API calls per month
• Approximately half of all listings on
eBay.com involve eBay Web
Services
• 25,000 outside developers are
using the APIs
• Participating developers have
produced more than 1,600
applications
18. 18
Ajax?
Asynchronous JavaScript + XML
–Jesse James Garrett, Adaptive Path
Supports a rich client interaction model that is intuitive,
responsive, and timely.
– Comparable to desktop applications.
Continuous user interaction with event driven server
processing and dynamic content refresh
– vs. interrupted interaction with request driven server
processing followed by static page refresh.
The next presentation will explain Ajax in detail
21. 21
True AJAX Clients Are (By Design), Server-Neutral
A fundamental reason AJAX has
increased in popularity is that it’s
server-technology neutral through
the use of basic HTTP protocol
Applications has more flexibility to
change out the back-end service
implementation
Browser Platform
(moz,ie,safari,opera…)
Java
PHP
.NET
J2EE
Services
Services
Services
Services
Services
Services
Services
Services
HTTP
“Client”
“Server”
• The nature of PHP makes it a
client in terms of enterprise
applications, but from an AJAX
client perspective it is always a
server technology
22. 22
22
Defining principles of Ajax
The browser hosts an application, not content
The server delivers data, not content
User interaction with the application can be fluid and continuous
Ajax development is real coding and requires discipline
– The Ajax “application” must run without breaking, slowing
down, or generating memory leaks.
– Requires writing high-performance, maintainable code
following the same discipline applied to server resources
23. 23
23
Ajax requests types ?
REST
– An Architectural Style, Not a Standard.
– Client-Server: a pull-based interaction style: consuming components pull representations.
– Stateless: each request from client to server must contain all the information necessary to
understand the request, and cannot take advantage of any stored context on the server.
– Uniform interface: all resources are accessed with a generic interface (e.g., HTTP GET, POST,
PUT, DELETE).
– Named resources - the system is comprised of resources which are named using a URL.
– http://<host>/customer
– GET: Returns list of customers
– POST: Creates Customer Record
– http://<host>/customer/roland
– GET: Returns Roland customer record
– PUT: Updates Roland Record
– DELETE: Delete Roland Record
JSON (JavaScript Object Notation )
Raw XML
SOAP
24. 24
24
JSON
Java Script Object Notation
var myJSONObject = {"bindings": [ {"ircEvent":
"PRIVMSG", "method": "newURI", "regex":
"^http://.*"}, {"ircEvent": "PRIVMSG", "method":
"deleteURI", "regex": "^delete.*"}, {"ircEvent":
"PRIVMSG", "method": "randomURI", "regex":
"^random.*"} ] };
JavaScript equivalent of :
– XML, ValueObject, Cargo Beans
JSON-RPC can be used to send Serialized JavaScript from Browser to
Server.
25. 25
25
Ajax Toolkits
There are a large number of toolkits available 65 and counting…
Toolkits offer a defined JavaScript interface to the DHTML, CSS and DOM of
a browser
There is no defined standard so choosing your toolkit may be important as
more code is developed to these toolkits.
The toolkits are generally server neutral, meaning they can work with a
variety of server side programming frameworks, including :
– PHP, Ruby, WebSphere, .NET
The main toolkits are :
– Dojo
– Zimbra
– Google Widget Library (GWT)
– Yahoo Widgets
– Backbase
– Microsoft Ajax Toolkit
Microsoft have built an Ajax toolkit that is independent of ASP.NET , this
toolkit may gain traction with developers
26. 26
Dojo Toolkit
IBM is supporting the Dojo Toolkit
Good News Ajax works with WebSphere and Portal Server Today
IBM sees this as one of the most flexible of all the toolkits on the current market.
They have evaluated its features :
– Dojo has lots of interesting features but lacks enterprise capabilities like security, NLS etc.
– IBM has successfully included developers as contributors to the project
– IBM will be investigating its inclusion in future product releases from WebSphere and Lotus brands
27. 27
Dojo Browser Toolkit
27
Dojo is an Open Source DHTML toolkit
written in JavaScript. It builds on
several contributed code bases.
– Provides Rich Set of Widgets
– Web UI Framework
– Rich Event handling System
– General Purpose HTML Libraries
– Several other utilities
– Math, XML to JS parsing, etc…
29. 29
Web 2.0
• Not just about Ajax:
• Tagging
• Blogging
• Wikis
• RSS
• Podcasts
30. 30
Tags
Tagging, and the collection of tags that results, called a folksonomy, is about collaborative efforts to
organize information, in which users are encouraged to assign freely chosen keywords, called tags, to
identify Web sites in ways that are meaningful to themselves.
31. 31
Blogs
Blog (a shortened form of the
term Web log) refers to a
personal journal that is shared
on the Web.
Blogs are an excellent venue
for sharing information and
creating connections.
Companies that want to
improve innovation within their
own enterprise are discovering
the value of deploying a blog
server internally.
32. 32
Blogging
Blogs are a great way
to share information
and create
connections
Companies who want
to improve their own
innovation could
benefit from deploying
a blog server internally
This would be linked to
your profile and
communities
33. 33
Wikis
Wiki is as “a type of Web site that
allows users to easily add, remove, or
otherwise edit and change some
available content, sometimes without
the need for registration.
This ease of interaction and
operation makes a wiki an effective
tool for collaborative authoring. The
term wiki can also refer to the
collaborative software itself (a wiki
engine) that facilitates the operation
of such a Web site, or to certain
specific wiki sites.”
34. 34
Atom and RSS
Atom and RSS enable
consumers to subscribe to
content instead of visiting a site
to acquire it, representing a
fundamental shift in how
consumers receive information.
The use of Atom and RSS has
proliferated across major content
providers and corporations and is
the top emerging advertising
tactic among e-marketers.
However, feeds that contain ads
are often shunned by the Web
2.0 community.
35. 35
Podcasts
Podcasting is a method of publishing
multimedia files such as audio or music
video programs to the Internet, so that
users can subscribe to a feed and receive
new files automatically by subscription,
usually at no cost.
Podcasting enables a user to subscribe to
content directly from sources such as IBM
developerWorks onto a computer or
portable multimedia player and listen to it
or view it whenever convenient.
36. 36
Social Networks
A social network, also referred to as a
virtual community, is an online network of
people with common interests. These
interests can be of any type, from people
who share a common health condition
(celiac, diabetic), to people who own
certain makes of antique vehicles
(Studebaker cars, J.C. Higgins bicycles),
to users of IBM products (DB2® 9,
Rational® Application Developer).
Social networking tools such as LinkedIn
enable sharing information with friends
and with friends of friends. Social network
sites such as LinkedIn, MySpace,
Facebook, and Friendster can offer
features such as automatic address book
updates, viewable profiles, and the ability
to form new online social connections.
37. 37
Social Bookmarking
Employees tag and share links behind the firewall, without risk of publicly
revealing trends or topics being investigated
Easy and effective way to identify experts on topics – just follow the tag cloud
There is a strong incentive to contribute because the payback is high – you
get a lot of value from seeing other people’s bookmarks
These are Marty’s
shared bookmarks;
everybody in the
company can see them
From here we can
navigate to related
people and other topics
by clicking on names or
tags
38. 38
Social networks and location information
• Location information
creates many more
possibilities
• Mashups to find where
people are, e.g.
Do I have any reps
currently in Belmont?
In case of emergency,
were are my people
now?
39. 39
Real-time communications
Use chat to get real work done!
• State-of-the-art chat client
• Unified communication services
• Integrate with applications & processes
• Blurred boundaries between work and
home
40. 40
Adding Real-time Business Context
• This example shows a plugin
designed to run business
functions based on a keyword
entered in the chat window
• This example retrieves sales
information from a spreadsheet
• Other examples: search, retrieve
data from an application, post
information to a log, check
status
41. 41
Social Networking and Wisdom of Crowds
Who are you?
Profiles: contact
and organization
information
To what communities
do you belong?
Groups of people with
a common interest or
work objective
What are you reading?
What do you find
valuable?
Social bookmarking,
tagging,
42. 42
Combining communities with real-time
Engage community
members in open
discussion
Broadcast questions,
let experts volunteer to
help
Take polls
43. 43
Broadcast tools
A member of a
community can
broadcast questions
to all other (online)
community members
An invitation is
displayed in a slide-
out window, and
subscribers who are
interested can click a
button to join it
45. 45
45
IBM Web 2.0 Technologies Current Focus Areas
Web 2.0 Technologies
converging on a few key value
proposition
Broad Collaboration
Simplicity & rich(er) internet
experiences
Remixability
– Enabling “applications”
that can be created by
non-professional
programmers
– APIs based on open
(defacto) standards
PHP On Forefront of
Opportunities
– It’s about instant results
– It’s about empowering
line-of-business
professionals
46. 46
46
What is a Situational Application?
A Situational Application is
– rapidly created (<5mins) to address an immediate need of an individual
or community
– typically but not necessarily short-lived (a just-in-time solution)
– informal (lacks product quality look and feel)
– just good enough
A Mashup can be a form of a Situation Application that
– is comprised of 2 or more disparate components that are bound
together through content
– yields a new utility by seamlessly combining content from more than
one data source with behavior to form a new integrated experience
A Mashboard can be a form of a Mashup that
– is typically personalized and unique for an individual yet configurable
– contains a collection of indicators that signal change when the status of
content items of personal interest change
47. 47
47
How would we design
middleware if assume:
• business organizations & relationships
are continually changing - therefore
solutions need are situational
• LOB teams just enough IT savvy to
create their own services/solutions that
drive their part of the business
…applications are disposable
“Situational” Apps
• Built to solve an immediate, specific
business problem
• Blending externalities with business-
private content & services
• Manipulates static & increasingly
dynamic content ミinformation-centric
• Accelerated by community-based
collaborations
Web 2.0 - Rethinking Application Assumptions
51. 51
51
Web 2.0 Mashup Summary
Web 2.0 Technologies enable Enterprise Mashups
Situational Applications and Mashups
– Are not a new category of applications
– Describe a new area of focus for web application development
– Typically ignored under radar of IT departments
– IBM seeks to empower knowledge workers to assembler their own mashups
Assemble
– Subject Matter experts who may not be programmers can
– create web applications to address just-in-time ad-hoc situational needs
– Integrate data and markup using widgets to create new utilities
Wire
– Bind rich content from disparate sources to create new ways to view information
– Add behavior and relationships to disparate widgets to create a rich interactive
application experience
Share
– Leverage QEDWiki to
– Quickly promote your mashup for use by others
– Enable multi-user collaboration on the development of a mashup
53. 53
53
Lotus Connections
Communities
Create, find, join, and work with communities of people who share a common
interest, responsibility, or area of expertise
Blogs
Use a weblog to present your idea and get feedback from others; learn from the
expertise and experience of others who blog
Dogear
Save, organize and share bookmarks; discover bookmarks that have been qualified by
others with similar interests & expertise
Activities
Organize your work, plan next steps, and easily tap your expanding professional
network to help execute your everyday deliverables, faster
Profiles
Quickly find the people you need by searching across your organization using
keywords that help identify expertise, current projects and responsibilities
54. 54
Portal - AJAX based Client Side Aggregation in the Web Browser
Gadgets
Atom / RSS Feeds
REST-accessible Markup Fragments
from WP Portlets or any other URL
WSRP Services
55. 55
Web 2.0 Portal Architecture
WebSphere Portal Foundation
AJAX Feed
Consumer
AJAX Fragment
Consumer
AJAX Programming Model Extensions
(Dojo Framework & Widgets + AJAX.0 + REST accessor JS functions + Semantic Tags + Client Side Click-2-Action)
REST style Portal Services
(Persistence, User Profiles, Portlet Settings, Navigation, Pages, etc)
Feed
Service
HTML+Dojo+JS
Fragments
(from J2EE,.NET,PHP,
HTTP or other Server)
WebSphere Application Server
Classic
JSR 168
Portlets
AJAX enabled
JSR 168
Portlets
WSRP
Consumer
WSRP
Service
56. 56
Competitive View RIA (Rich Internet Applications)
Extend HTML
Replace HTML Replace HTML
Open Standards
Proprietary Proprietary
Any Browser
Flash Plug-In Vista OS / XP?
Evolution
Revolution Revolution
SilverLight
WPF/E
Apollo
57. 57
• Focused on next
• Generation
Internet/Intranet
applications
WebSphere
Web 2.0, Ajax
Portal
Web 2.0
focused
Solutions
Skills:
Solution Designers
Java Programmers
Ajax, Dojo, Eclipse, OSGi
• Technology and Product
Focused across Industry
Channels
WebSphere
SOA
• Strong integration
skills into SOA
required, JMS, WS,
JDBC, etc,
Traditional
WebSphere
Skills
Skills
Lotus
Expeditor 6.1
Sametime 7.5
Notes 8.0
• Focused on solutions that
extend the Lotus Client
family
Desktop / Device
Composites
Composite
Skills
Integration
Skills
Composite
Applications
Integration
Skills