Building Components And Services For The Programmable Web
Nikhil Kothari Software Architect, UI Framework Microsoft Corporation

Programmable Web
Consuming – Building mash-ups Enabling – Authoring gadgets, and services

Demo: musicMix Application
Implemented using ASP.NET “Atlas”

Web 2.0
Wikipedia: “… second phase of architecture and application development for the World Wide Web” A buzzword to incorporate whatever is new and popular on the Web

AJAX APIs Feeds Folksonomy Gadgets Identity JSON Mash-up Perpetual Beta Podcasts Programmable Web REST RIA RSS Semantic Web Social Web SOAP Syndication Tagging Web Services Web Standards Wikis

What Is The Programmable Web
Transformation of the Web from content publishing medium into a platform
Each application is a component in this platform Enable sharing and unlocking user and application data Via services and APIs, data formats and schemas

Applications and Scenarios
Mash-ups Services (REST, SOAP, RSS, …) Shared components (eg. Gadgets) Shared data formats (eg. Live Clipboard)

Consuming the Programmable Web
Mash-ups Applications that re-mix or aggregate data from one or more services to create new enduser experiences and scenarios How do they work?
Link to one another via shared data semantics Bring and co-relate data for end-users into one location

Why build mash-ups?
Leverage the power of the Web platform Create rich and immersive user experiences Meet a new bar of growing user expectations

musicMix Application

A look at the existing application…

musicMix Mash-up
Create an enhanced and engaging music experience


The Canonical Mash-up
My Application

UI + Logic (HTML + Script)

Pages Config

Bridge Proxy (Script)


External Service

Initiate Request

Cache Lookup

Create Service Request

Invoke Service

Process Service Response

Update Display

Consuming The Programmable Web

musicMix Mash-up - iTunes Top Selling Albums - Similar Albums from Amazon - Artist Links from MSN Search

Enabling the Programmable Web
Gadgets and Services
A gadget is an uber-service
Not just raw data, but UI, Logic and Personalization as well A face for your data and services Hosted by Windows Live, Sidebar, … Mini-mashups; typically consume data/services themselves

Why build gadgets?
Stickyness and propagation of brand Reach end-users with services, not just applications Create new linking opportunities

Enabling The Programmable Web

musicMix Media Player Gadget and PlayList REST service

Enabling the Programmable Web
Live Clipboard A clipboard model for Web applications
Web to Web and Web to/from Desktop Cross-browser, cross-platform Structured data sharing across apps based on shared/common data formats

Enable end-users to mash up data to their individual needs
User-initiated copy/paste of data

Enabling The Programmable Web

PlayList copy/paste via Live Clipboard

Related MIX Content
Sessions on post show DVD
NGW014: Developing a Better User Experience with “Atlas” NGW052: Designing a Better User Experience with AJAX and “Atlas” NGW038: Overview of Gadgets NGW054: Building an Application from Scratch with ASP.NET 2.0 NGW002: Building Components and Services for the Programmable Web NGW058: Wiring the Web

Labs @ the Sandbox MIX Chat this afternoon

Resources And References
Mash-up and API Gallery

ASP.NET “Atlas”


Call To Action
The transformation continues…
Technologies and business models are evolving New services are becoming available Experiment and participate

Download and try ASP.NET “Atlas”
March ’06 Go Live Build Released Simplifies development of mash-ups, gadgets, and client applications Stop by to talk to the team Send us feedback Participate in the Mash It Up With Atlas Contest

© 2006 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

This session explores the programmable Web, and how ASP.NET “Atlas” enables applications to easily participate in this new platform via mash-ups and other forms of data sharing. The presentation explores key mash-up concepts, and demonstrates leveraging data from services such as MSN Search, and Amazon Web Services in a reusable and component oriented fashion. Secondly, it demonstrates how an application can expose data via services, APIs and reach end-users with its services via Windows Live Gadgets. Finally it provides a glimpse of enabling user-driven mash-ups and copy/paste of structured data by implementing a clipboard model for the Web.