Web 2.0 applications have become popular as drivers of new types of Web content, but they have also introduced a new level of interface design in Web development; they are focusing on richer interfaces, user-generated content, and better interworking of Web-based applications. The current foundations of the Web 2.0, however, are strictly imperative in nature, which makes it difficult to develop applications which are robust, interoperable, and backwards compatible. Using a declarative approach for Web 2.0 applications, this new wave of applications can be built on a more robust foundation which is more in line with the Web's style of using declarative methods whenever possible. We show a path how today's imperative Web 2.0 applications can be regarded as a testbed as well as a first implementation for a revised version of Web 2.0 technologies, which will be based on declarative markup rather than imperative code.
What is Web 2.0?
- The Web as a Platform
- Harnessing Collective Intelligence
- Being Data-Centered
- Using Web-Based Applications
- Using Light-Weight Programming Models
- Using Cross-Device Applications
- Providing Rich User Experiences
Web 2.0 Applications
- Web 2.0 applications very often leverage the network effect
- by bringing together previously unconnected things, new value is created
- the value thus often lies in the connections, and not in the connected things
- Formalize and exploit existing structures
- many Web 2.0 applications thrive on representing existing structures
- few Web 2.0 applications are design tools for creating works starting from scratch
- Flickr, LinkedIn, FaceBook, MySpace, YouTube, Wikipedia, del.icio.us, blogs, …
- One universal observation about Web 2.0: context over content
- context formalization, aggregation, and analysis is the hidden core of Web 2.0 applications
- the step to a common context concept has not yet been made
Web 2.0 Technologies
- Dynamic HTML (DHTML) has been around for a long time
- Ajax = DHTML +
- Rich Internet Application (RIA)
- sometimes interpreted as an Ajax-heavy Web-based application
- sometimes interpreted as a non-Web runtime accessing Web data sources
- for the purpose of this talk RIAs are strictly Web-based
- Accessibility and usability problems of RIAs
- how well do an applications work with CSS switched off?
- how well do applications work on limited devices (PDAs, mobile browsers)
Stability of the Web 2.0 Landscape
- Interfaces to services change often and often without warning
- building mashups by cutting&pasting code samples is fun and easy
- maintaining mashups and fixing them when something breaks is hard and happens often
- libraries hiding the browser incompatibilities introduce additional complexities
- The Web 2.0 landscape builds on a tightly coupled foundation
- Web 2.0 applications are tightly coupled with their data model (through an API)
- Tight coupling is less robust than loose coupling
- tight coupling fails completely when components change
- loose coupling degrades gracefully and can recover from errors more easily
- API vs. Documents
- classical distributed systems are build around APIs
- one of the really interesting observations about the Web: No APIs!
- document exchanges are a more loosely coupled way of building systems
- the Web's document exchange model is called Representational State Transfer (REST)
- Real-world examples of document exchanges
just send us a form with all necessary details and we will process it.
- imagine having to know all APIs of all participating business processes
- even if all internal processes change completely, the form still works
- Loose coupling is good but hard
- defining the right
forms (i.e., document models) is challenging
- identify commonly used concepts and define an extensible model
mustUnderstand semantics for required extensions
Reusable Web 2.0 Data
- Web 2.0 applications use custom XML formats
- data exchange between Ajax and server is a closed scenario
- code needs to know the XML structure for building mashups
- Standardizing Web 2.0 data formats is not likely to happen
- applications want to have the freedom to use their own data formats
- applications might not want to fully disclose or expose their data model
- Microformats are one possible way of encoding well-defined semantics
- limited to simple concepts which can be easily embedded in HTML
- Semantic Web technologies are the other end of the spectrum
- complex set of technologies for expressing arbitrary semantics
- high barrier of entry and unlikely to succeed on a large scale
Blog Posts and Link Objects
- Blogs have a number of recurring features
- they are a sequentially ordered series of blog posts
- a blog has an owner and a permanent URI
- posts have a date and content
- posts very often have a number of URIs as part of their content
- Blog posts can be regarded as XLinks (blog links or blinks)
- the complete blog (the collection of all posts) is the blog linkbase
- each post is an XLink with a predefined structure
- post date, post URIs, post content (HTML snippet), …
- advanced blinks could classify referenced URIs (support, criticism, similarity, blog, …)
Blog Post Structure
Context Publishing as Add-On
- No need for all blogs to manage their posts as XLinks
- XLinks are just the way to formalize context across applications
- An added opportunity to make blog data available and usable and useful
- instead of searching for blog posts, you just find them!
- request/response interaction with the context provider (e.g., the blog search engine)
- Context must first be formalized before it can be reused
- individual blogs provide little context (only the blog's posts)
- blog hosting sites provide a lot of context (all hosted blogs)
- blog search engine provide
complete context (all crawled blogs)
- Linkbase is an XML database storing XLink documents
- storage and access is efficient and scalable
- queries can be based on arbitrary structural criteria
- Client-side implementation in a Firefox extension
- for each request, a request to the linkbase is sent
- the linkbase replies with the set of links for that URI (currently no ranking)
- the links are transformed into XUL code
- the XUL code is rendered and displays the links in a sidebar
- Images can also have links associated with them
- annotations to an image as a whole
- annotations to a geometric region of the image (currently only rectangles)
- Image links are just another application of the same concepts
- the client also sends linkbase requests for all images embedded in an HTML page
- image links are transformed to SVG code and displayed as an overlay
- Popular image annotation applications could be opened
- Flickr supports the concept of annotating part of an image
- this annotation is stored in Flickr and can only be viewed in Flickr
- Flickr could provide comprehensive image publishing: image & context
- Declarative Web 2.0 is a goal and not a concrete technology
- Identification of frequently used concepts is hard
- some easy targets, many hard targets
- even for the easy targets, exact semantics may be hard to define
- if there is not incentive to become declarative, only a few will do it
- Web architecture is more fashionable than it used to be
SOA had enough time to prove its disadvantages
- granularity of services will increase
- the need for composable services will increase
- technologies providing easy and robust integration are required
- Atomify the Concepts
- Atom is the next big thing: a unified format for syndication and publishing
- linkbases are accessed using the Atom Publishing Protocol (APP)
- links are published using Atom feeds
- linkbase handling and management could be viewed as context syndication
- And Now for Something Completely Different …
- linking puts things into a logical context
- location puts things into a spatial context
- location is used in many applications, but not as a Web-level concept
location-aware Web is one facet of the
- add location to the Web architecture in URIs, HTTP, and HTML
- D. Connolly. Gleaning Resource Descriptions from Dialects of Languages (GRDDL). World Wide Web Consortium, Candidate Recommendation CR-grddl-20070502, May 2007.
- S. J. DeRose, E. Maler, and D. Orchard. XML Linking Language (XLink) Version 1.0. World Wide Web Consortium, Recommendation REC-xlink-20010627, June 2001.
- R. T. Fielding. Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine, Irvine, California, 2000.
- J. Gregorio and B. de Hóra. The Atom Publishing Protocol. Internet Draft draft-ietf-atompub-protocol-15, May 2007.
- M. Gudgin, M. Hadley, N. Mendelsohn, J.-J. Moreau, H. Frystyk Nielsen, A. Karmarkar, and Y. Lafon. SOAP Version 1.2 Part 1: Messaging Framework (Second Edition). World Wide Web Consortium, Recommendation REC-soap12-part1-20070427, April 2007.
- A. Y. Halevy, N. Ashish, D. Bitton, M. J. Carey, D. Draper, J. Pollock, A. Rosenthal, and V. Sikka. Enterprise Information Integration: Successes, Challenges and Controversies. In: F. Özcan, editor, Proceedings of the ACM SIGMOD 2005 International Conference on Management of Data, pages 778–787, Baltimore, Maryland, June 2005. ACM Press.
- I. Jacobs and N. Walsh. Architecture of the World Wide Web, Volume One. World Wide Web Consortium, Recommendation REC-webarch-20041215, December 2004.
- G. Klyne and J. J. Carroll. Resource Description Framework (RDF): Concepts and Abstract Syntax. World Wide Web Consortium, Recommendation REC-rdf-concepts-20040210, February 2004.
- R. Kumar, J. Novak, P. Raghavan, and A. Tomkins. Structure and Evolution of Blogspace. Communications of the ACM, 47(12):35–39, December 2004.
- D. Lowe and E. Wilde. Improving Web Linking Using XLink. In: Proceedings of Open Publish 2001, Sydney, Australia, July 2001.
- A. van Kesteren. The XMLHttpRequest Object. World Wide Web Consortium, Working Draft WD-XMLHttpRequest-20070618, June 2007.
- E. Wilde. What are you talking about? In: Proceedings of the 2007 IEEE International Conference on Services Computing, Salt Lake City, Utah, July 2007.