For years, many companies including Microsoft have invested significantly in the open, interoperable use of XML and Web Services toward enabling programmatic interconnection between processes, services and sites across the internet.And that investment is bearing fruit as professional developers serving enterprises use powerful tools such as the .NET family of products toward decidedly embracing SOA.The shift from monolithic toward composite applications has progressively become a reality in the enterprise, as we turn data center-based systems into a programmatic “mesh ”.But in the wild world of the web, composite applications have taken a notably different path – the most popular form these days being the mashup.Although arguably far less powerful than going the WS route, mashups demonstrate how quickly a “mesh” can form when the process of wiring together components is made easy for the “scripting-level” developers.These higher-level developers and integrators are critical to the development ecosystem: they exist in far greater numbers than formally trained programming professionals, and more often than not they possess key domain expertise – rapidly bridging technological capabilities into real world, valuable solutions.
Clearly as the flexibility and potential of “mashing up” and recombining application components gets closer to someone who understands the user’s needs, the value to that user increases.
And this is where my head has been at the past several months.I’ve been wondering, “what would it take to enable users themselves to wire-the-web”?If you happened to read my post about Simple Sharing Extensions last fall, you’re already likely aware of my optimism about the potential of using RSS as a DNA of sorts to enable “mesh” information sharing scenarios at a grassroots level on the internet.I believe RSS has the potential to be the “UNIX pipe of the internet”, and that one of the simplest and most pervasive “mesh” needs that many of us have is to provide connections for things such as contacts, calendar entries, messages, files and the like.About a month ago, while putting together a presentation that included the obligatory March Of History related to the emergence and significance of the GUI, I was struck with a fairly stark realization.In the PC world, whose pre-GUI history was experienced through various flavors of MS-DOS, one of the greatest user benefits first delivered pervasively by the GUI was the radical concept of running multiple applications simultaneously and, more importantly, using them concurrently and inter-operably.Through rigorous style guidelines and standards controls made available to application developers, suddenly users had the power to interact in ways that bridged divergent applications.
And what was the most fundamental technology enabling “mash-ups” of desktop applications?
The clipboard. And a set of common clipboard data formats.
Before the clipboard, individual applications (such as Lotus 1-2-3 with its Copy and Move operations) enabled intra-application data transfer – in a world largely designed around a single running application.But the advent of the multi-application user environment, combined with the simplicity of the Select/Cut/Copy/Paste/Clear model, suddenly empowered the user in ways they hadn’t previously experienced.
In its simplest form, the clipboard enabled the user to simply grasp the concept of moving a copy of the information from one application to another (i.e. by value).In its most advanced form, the clipboard enabled users to set up “publish and subscribe” relationships among applications – dynamically interconnecting a “publisher” with a “subscriber” (i.e. by reference).You can see an early such PC application mashup in one of my old posts.
So … I started to think:
The world of the Web today is enabled by the power of a simple user model – Address/Go or Link, Back, Forward, Home.And certain “in-page” models have emerged from the ether: clicking the logo in the upper-left is Home, search in the upper-right, Legal/Corporate/Privacy/etc at the bottom.How we interact with shopping carts is now fairly standard.
But each site is still in many ways like a standalone application.Data inside of one site is contained within a silo.Sure, we can cut and paste text string fragments from here to there, but the excitement on the web these days is all about “structured data” such as Contacts and Profiles, Events and Calendars, and Shopping Carts and Receipts, etc.And in most cases, the structured form of this data, which could be externalized as an XML item or a microformat, generally isn’t.It’s trapped inside the page, relegated to a pretty rendering.
So, where’s the clipboard of the web?
Where’s the user model that would enable a user to copy and paste structured information from one website to another?
Where’s the user model that would enable a user to copy and paste structured information from a website to an application running on a PC or other kind of device, or vice-versa?
And finally, where’s the user model that would enable a user to “wire the web”, by enabling publish-and-subscribe scenarios web-to-web, or web-to-PC?
Just think about that last scenario. It’s a mess today.Let’s look at the most adopted form of wiring-the-web today: RSS feeds for blogs.
There are three classes of generally available weblog feed readers:1. PC-based aggregators such as NewsGator or NetNewsWire2. Web-based aggregators such as Bloglines or live.com3. Browser-based aggregators such as Internet
Explorer or Firefox
Many blog sites are prepared to publish content through feeds.But how do they suggest to the user that they establish a subscription within their preferred blog aggregator?In the case of #3 above, browser designers have (thankfully) agreed upon a simple technique wherein a special icon “lights up” when a page contains feeds to which you can subscribe. And what of the promise beyond weblogs for feed-based publish and subscribe? Today’s user experience is certainly constraining what might be.
After thinking about this for a while … I had an idea .
The idea was based on using a simple and consistent user model to wire-the-web that would assist individuals in creating their own mesh of interconnections – both web-to-web and web-to-PC.
Simply stated, I’d like to extend the clipboard user model to the web.
A few weeks ago, I approached my brother Jack – who leads a Concept Development team in my group at Microsoft – and visually sketched out and storyboarded some end-to-end user scenarios that I wanted to try to accomplish.The scenarios were all centered on this new clipboard user model.
The team took me up on the challenge, and in a few short weeks had accomplished all of the scenarios, and more.And they did it using techniques that are incredibly simple, and which work securely and are browser independent.Today at O’Reilly’s Emerging Technology Conference, I’m sharing this new concept – through a brief demo and through hallway discussion.
I call this new concept Live Clipboard, because we view “live” efforts as those providing users with seamless end-to-end scenarios that “just work” by weaving together the best of software and the best of services.The Concept Development team has created a screencast of a Live Clipboard demo, and a simple web page-based demo that you can play with.Hopefully this will convey more vividly some of what I’ve attempted to explain above.There are quite a few key influencers attending ETech, and it’s my aspiration that many of them, and many of you, will embrace this nascent technique, and “make it real” by working with us.