Monday, May 02, 2005

Don Box and HailStorm

The other day I stumbled on an interesting post by Don Box. In it, he discusses noticing his old HailStorm (a.k.a., ".Net My Services") reference manual. Don, I am not sure why that old book is in your living room? Mine is on a shelf in my basement, along with all my old .NET books...

Don's claim is that "the technology never saw the light of day". While it is true that Microsoft never shipped the system (at least not yet anyway), I wonder if others are successfully shipping the essence of HailStorm?

For the duration of this post, and for the entire comment stream, lets for a minute, forget the over-sensationalized past. Forget that Microsoft was involved in the design, development, and marketing of this system. Forget that many believed that Microsoft was attempting to associate HailStorm with a global identity system, and that some within Microsoft believed that Microsoft should house all of the data exposed by HailStorm in it's own data centers. I am asking you to put this behind you, and instead, lets just look at the essence of HailStorm, and decide if some of these ideas are shipping, or should be shipping.

As I look back on HailStorm, and try to distill it into some of its core concepts, I come up with the following list:

  • Network Centric, Extensible Data Model, for Everyday Data

  • Data Decoupled from Applications

  • Anytime, Anyplace, and from Any Device Access

  • Identity Centric Data Access


HailStorm was based on an XML data model. The system defined several core data types (calendar events, address book entries, bookmarks, profiles, etc.). Each core type had a set of required elements and attributes, and allowed for arbitrary extensions in both the element and attribute dimension, as long as those extensions are defined within a unique XML namespace. HailStorm had the notion of an <address/> type which defined a set of base properties associated with an address. Anyone could easily extend an address by including arbitrary, well formed XML from an arbitrary namespace. The data model was simple to use, simple to extend, and simple to process. There was no need to buy proprietary tools to crack, parse, manipulate, re-transmit, or re-purpose any type.

Looking at HailStorm through this facet, there are clear similarities between it, and RSS 2.0 and Atom. These two core systems are very powerful. Their ease of use, their simple extensibility, their inherent network centricity have unleashed many clever and useful applications.

Both of these systems specify a very simple container model, in both systems we see a variety of "everyday types including events, people and their properties, rich categorization, etc.

When Don claims that "the technology never saw the light of day", I agree with him that as a whole, HailStorm was never released, but that the essence of HailStorm, in this dimension is alive and well.

HailStorm embraced the idea of decoupling the data from the application. The idea was to allow a variety of applications to process an manipulate your calendar data, your address book, your email, your favorite web sites, your travel preferences and itineraries, etc. This is not a new, novel idea, but was certainly something that was important and core to the system. Simple applications that we were trying to enable included the ability to overlay your personal calendar with the calendar of your favorite band, or your favorite sports team, or your spouse, etc. We wanted to enable a unified "address book" where your contacts could be used across applications written by any vendor.

In keeping with our RSS/Atom theme, I wonder if these two systems have similar goals? Isn't it true that we all love this idea of decoupling data from applications? That we are able to use applications like bloglines, newsgator, or a host of other aggregators/notifiers to keep track and reuse all that is going on out there? What would the blogsphere be like without this technology? What would it be like if you could only read blogger blogs on blogspot? Or read Don's stuff on pluralsight? Or read Jon Udell on infoworld? I think that we can all agree that this theme that was central to the vision of HailStorm is extremely valuable, and has certainly "seen the light of day". In fact, I think we can all also agree that we would rather see more information work like this...

HailStorm embraced the idea of accessing your data anytime, anywhere, and from any device. In fact, during our first public demonstration of the system, we showed read/write HailStorm access from:

  • Solaris written in Java

  • Linux written in perl

  • Windows written in perl, javascript, C

  • Palm VII (written in I forget, sorry, I think C)


I don't remember if we demonstrated Windows access from .NET, but for sure, that would have worked too.

In our system, if you had a crude XML parser, and if you had an ability to send/receive HTTP, you could interact with HailStorm. We did not force you to purchase any special tools, install complex DLL's or type libraries, generate proxy classes through a WSDL parser, etc. HailStorm was based on an approachable protocol that was easy to understand and use from any platform and from any device.

Looking at both Atom publishing protocol for updates, and A9's OpenSearch API for query is an interesting excercise. These systems all are designed to provide an approachable, read/write API that will work from any network capable device, without the need for a proprietary runtime or tool suite. These systems put you, the developer first. I would argue, and I think most of you would agree, that uniform access, any time, any place, and from any device, independent of any proprietary runtime stack is exactly what it takes for an information access protocol to succeed. Has this technology shipped? For sure, in pockets of the broader industry, this approach is thriving. In other areas, the illusion of openness is there, but the reality is that expensive and complex proprietary tools act as your gateway...

The final facet of HailStorm, is the idea of identity centric information access. In HailStorm, the model was based on an identity space where an identity could represent a person, an organization, a group, etc. Given an identity, you could determine where to send messages to interact what information related to that identity. Both the identity space and the services bound to that identity were fully federated. We did this so for instance, the calendar information for Callie could be served by servers at Microsoft, Yahoo, Google, etc. So that the travel data for Nikki could be served by Expedia, American Express, or Cisco... Our system was based on a discoverable, distributed directory known as the myServices service designed to answer these simple queries.

Architecturally, HailStorm provided a level playing field where service providers could compete for a customer's business, and where because of all the facets listed above, a customer had complete freedom to move from provider to provider, with no impact on applications running on her behalf.

Let us look back one more time on the central concepts, or the essence of HailStorm:

  • Network Centric, Extensible Data Model, for Everyday Data

  • Data Decoupled from Applications

  • Anytime, Anyplace, and from Any Device Access

  • Identity Centric Data Access


I believe that there are systems out there today that are based in large part on a similar set of core concepts. My feeling is that the various RSS/Atom based systems share these core concepts and are therefore very similar, and more importantly, that a vibrant, open and accessible, developer friendly eco-system is forming around these systems...

32 Comments:

Anonymous paulste said...

I don't remember if we demonstrated Windows access from .NET, but for sure, that would have worked too.

Yes Mark, we did show a .NET version of this in the demos. We had a stripped-down "native" version and a class library on top of it.

FWIW it sure seems like RSS + Atom + Script + GMail perhaps sure feels an awful lot like HS.

May 11, 2005 7:20 PM  
Blogger Mark Lucovsky, Software Engineer said...

OK, Thanks for reminding me paul. We did do a .NET version as well. How corporate of us :)

Interesting that you see the same similarities that I see...

May 11, 2005 8:57 PM  
Anonymous paulste said...

Oh, and now dodgeball for MyAlerts/MyPresence? Also an SMS presence we never did quite figure out in HS. When do I get my Google calendar?

May 12, 2005 4:13 PM  
Anonymous stevelun said...

Don't forget the macos x/freebsd version of the demo. :)

May 18, 2005 11:51 PM  
Anonymous Anonymous said...

I think you are underestimating your effort at Hailstorm. The key, at least to me, would be the common storage of everyday data in a non-application-specific way.

It has not happened yet. It is extremely important -- the biggest thing I can think of happening to software since at least the seventies -- and pushing its adoption is an enormous undertaking. We will have schema wars, but once you get common data models for everyday items that are extensible, and pressure for common data models for more domain specific data, we can really begin to do some interesting things.
Yes, it looks a little bit like RSS+ATOM+Script+GMail, but only when every viable application is working with the same cloud of data does the beauty really come out.

May 20, 2005 7:07 AM  
Anonymous Anonymous said...

Oh, we did ship the Alerts stuff -- MSN Alerts (and .NET Alerts) was just about the only service we actually "finished" of Hailstorm and continued to ship. It's a webservice that outside agencies were able to tie to.

May 20, 2005 7:51 AM  
Blogger Mark Lucovsky, Software Engineer said...

You say that to you, the key was the common storage of the every day data. I agree with your thinking at the highest possible level, BUT thinking in terms of common storage, when you really mean common storage is the fatal mistake that Microsoft continues to make in this space. Instead, it is much better, in my opinion, to take your same line of thinking and say that the key is common access to the everyday data. Know what I mean here?

If we had this, and IF the access mechanism was approachable, used the common data model, was designed for the network, etc., this would provide us all with the illusion of a common storage layer without forcing the cost and complexity, world wide grand unification of storage, etc.

The HSDL protocol where we specified exactly this type of information access layer was a shot at this... I see some of the emerging work in A9's open search protocol as an attempt at query unification, and in Atom's publishing API as an attempt in the update side. Given that both of these work within the framework of the Atom and RSS data and container models, I think we are moving in a good direction.

Contrast this approach with the approach taken by Microsoft with the WinFS project where the sole focus has been on unification of the actual bits being stored, a complimentary and proprietary data model, and a .NET centric proprietary API. This is something that is very difficult to pull off, and we can perhaps assume that it is because of this difficulty that Microsoft was forced to remove this key component from Longhorn?

May 20, 2005 9:06 AM  
Anonymous Anonymous said...

Mark,
First of all, let me just say that I think it is pretty damn cool that the architect of Hailstorm is so accesible here, and I think RSS is in a lot of ways responsible for that.
I agree that it is common access, not common storage. The big problem is getting the whole ball rolling, and perhaps a simplified, easy approach is the best way to do that. Perhaps a clear thinking behemoth like google or MS can do the heavy lifting. I do not know the answer.
Focusing on common access, you run into a directory problem, and it is very hard to guarantee that every action hits every piece of data that it is supposed to. It is a very big undertaking. I think it is unclear how it will shakeout, but I think MS attempts on the client and LAN wil be helpful to the other aspects of getting the common access to everyday data ball rolling, and when it happens we will see something kind of like what was being hyped with the dot com stuff.

May 20, 2005 10:44 AM  
Anonymous Anonymous said...

Mark,

Even though you are the author of these ideas, they are intellectual property of MS. As an ex employee of MS, you should be discrete about unpublished IP materials from an ex-employer.

May 20, 2005 10:50 AM  
Anonymous Anonymous said...

> This is something that is very difficult to pull off, and we can perhaps assume that it is because of this difficulty that Microsoft was forced to remove this key component from Longhorn?

I think WinFS was implemented in managed code - it was too slow.

They are reimplementing it in C.

May 20, 2005 10:52 AM  
Blogger Mark Lucovsky, Software Engineer said...

"As an ex employee of MS, you should be discrete about unpublished IP materials from an ex-employer."

Everything we have discussed in this thread has been Published in the form of freely available books, widely read press articles, and Microsoft's own public web site. This thread contains absolutely NO unpublished IP.

Don started this topic when he stumbled on his old .NET My Services book which describes all of the Schemas, the Principles of Operation, the directory scheme, the security model, and the HSDL access layer.

A similar level of detail is available on MSDN describing WinFS from a developers perspective. Take a look at WinFS A Developers Perspective

May 20, 2005 11:08 AM  
Blogger chaudes said...

This post has been removed by a blog administrator.

May 20, 2005 11:22 AM  
Blogger Mark Lucovsky, Software Engineer said...

Sorry about those comments from chaudes. Looks like its been taken care of.

May 20, 2005 11:33 AM  
Anonymous dB. said...

I wonder if others are successfully shipping the essence of HailStorm?

You have a very valid point here. Hailstorm was no rocket science, but it was trying to be everything at once. I also remember how hard it was to push back on that HS thing that nobody has ever even seen and more importantly couldn't see what it practically did.

So others are building it by patching bits and pieces instead. Google is in the read stage with RSS with releasing everything RSS planned in a couple of weeks. When Google moves into the write stage ... it will become Hailstorm. Are they building an operating system?! :)

May 20, 2005 3:37 PM  
Anonymous shaunco said...

"The .NET My Services MyServices service serves as a directory service to find other .NET My Services services". :-) Our choice of marketing names certainly didn't help advance the cause of this promising technology either. Good write up Mark...

May 23, 2005 10:36 AM  
Blogger herestomwiththeweather said...

Before there was Hailstorm, there were companies like Yodlee. As early as 1999, Yodlee naively made efforts to get big (mostly financial) companies to migrate existing datafeeds to use standard XML. Their problem, of course, is that they were working with big companies, and although it is not said often enough, any real progress will never be made by big companies but are generally grassroots efforts.

May 24, 2005 9:39 AM  
Anonymous Anonymous said...

.net alerts did not really take off that well

a - required passport
b - run by MSN
c - too much outsourced service elements (which have recently been absorbed)
d - did i say required passport and run by MSN?

May 26, 2005 10:45 PM  
Anonymous Anonymous said...

Ok I don't get it. The network centric open standards stuff not tied to a proprietary stack I can understand. But where's the data model? Where's the federated identity?

June 01, 2005 4:22 PM  
Anonymous Anonymous said...

federation only works .. well it doesnt

OASIS can't even agree on basic schema or it's scope.

At the end of the day you can do alot more for less. Overloaded encapsulation is heavy lifting that could be moved to other components of the stack.

June 06, 2005 9:25 PM  
Anonymous Anonymous said...

If the information offered needs to be paid for, then the web services movement grinds to a halt.


I can't even do a Google web search via web services. They have an API but there's limited usage for each token last I checked. Even RSS is often just teasers for the full article (with ads).


Web services have business problems. When you find a way to sell them profitably I'll tip my hat to you.

June 21, 2005 8:35 PM  
Anonymous Bill Appleton said...

Hi Mark,

We work quite a bit with salesforce.com. Many aspects of their sforce architecture remind me of Hailstorm. They have the closets thing I've found to a service enabled developer platform these days.


Best,

Bill Appleton
CTO
DreamFactory Software
billappleton@dreamfactory.com

July 16, 2005 12:35 AM  
Blogger trinity31marquis said...

This post has been removed by a blog administrator.

August 20, 2005 12:25 PM  
Blogger tweedledeetweedledum said...

This post has been removed by a blog administrator.

September 30, 2005 11:13 PM  
Blogger tweedledeetweedledum said...

This post has been removed by a blog administrator.

October 01, 2005 3:52 AM  
Blogger tweedledeetweedledum said...

This post has been removed by a blog administrator.

October 01, 2005 8:06 AM  
Blogger John Whited said...

As the first dev hire for Hailstorm I did most of the demos shown at Hailstorm's first SDR.

The original demo for the Palm VII device was written in C using CodeWarrior.

It was a poor performer as I recall due to the poor bandwidth of the device, WAP gateway, and various encoding tricks we had to do just to get an http post outside of Palm's service infrastructure.

I believe there's a quote here I'm forgetting that caused a little bit of controversy at the time.

April 26, 2006 8:59 AM  
Blogger MathMidget said...

I'm afraid that Microsoft's need to have central control around both file-formats, file-transfer, and ultimately the source-code will lead to their ultimate downfall.
The people at google are on the right track. Sure, they aren't 100% open source, but they also aren't using a monopoly to exploit the masses with expensive, poorly designed software.
There is just something about the OpenSource community, that keeps it from designing poorly made, "clunky," or otherwise innefficient software. This "Something" just isn't something that the great people at "Micro$oft" can understand, fathom, or realize, and it seems (From your description) to be the creation of projects such as Hailstorm.
Maybe it just is me, but the moment Google releases an OS, I'll guarentee you that I'll begin reformatting my HDD to install it, becuase I can vouch for their creativity, effectiveness, and metaphorical "Agility."

August 30, 2006 4:34 PM  
Blogger goodman said...

We will feel that all our efforts put into this writing about data have not gone to vain if you get some benefit from reading it. Do wish you were benefited.

October 04, 2006 12:20 AM  
Blogger Ayisha said...

nice site for more books I have some more gifts..



Reference books

Books

Kitaben

books

knowledge

liberary

Reference Books

tutorials

rapidshare tutorials

rapidshare books

MZWorld

Upload Books

MZWorld Library

Books Forum

May 11, 2007 5:23 AM  
Blogger art said...

Hi,

This article is good and informative.

Software Development Company

October 04, 2007 3:00 AM  
Blogger Celia said...

These articles are fantastic; the information you show us is interesting for everybody and is really good written. It’s just great!! Do you want to know something more? Read it...:Great investment opportunity in Costa Rica: condos resort, destin beach, destin condos. Visit us for more info at: http://www.jaco-bay.com/

October 07, 2007 3:03 PM  
Blogger milf said...

black mold exposureblack mold symptoms of exposurewrought iron garden gatesiron garden gates find them herefine thin hair hairstylessearch hair styles for fine thin hairnight vision binocularsbuy night vision binocularslipitor reactionslipitor allergic reactionsluxury beach resort in the philippines

afordable beach resorts in the philippineshomeopathy for eczema.baby eczema.save big with great mineral makeup bargainsmineral makeup wholesalersprodam iphone Apple prodam iphone prahacect iphone manualmanual for P 168 iphonefero 52 binocularsnight vision Fero 52 binocularsThe best night vision binoculars here

night vision binoculars bargainsfree photo albums computer programsfree software to make photo albumsfree tax formsprintable tax forms for free craftmatic air bedcraftmatic air bed adjustable info hereboyd air bedboyd night air bed lowest pricefind air beds in wisconsinbest air beds in wisconsincloud air beds

best cloud inflatable air bedssealy air beds portableportables air bedsrv luggage racksaluminum made rv luggage racksair bed raisedbest form raised air bedsaircraft support equipmentsbest support equipments for aircraftsbed air informercialsbest informercials bed airmattress sized air beds

bestair bed mattress antique doorknobsantique doorknob identification tipsdvd player troubleshootingtroubleshooting with the dvd playerflat panel television lcd vs plasmaflat panel lcd television versus plasma pic the bestThe causes of economic recessionwhat are the causes of economic recessionadjustable bed air foam The best bed air foam

hoof prints antique equestrian printsantique hoof prints equestrian printsBuy air bedadjustablebuy the best adjustable air bedsair beds canadian storesCanadian stores for air beds

migraine causemigraine treatments floridaflorida headache clinicdrying dessicantair drying dessicantdessicant air dryerpediatric asthmaasthma specialistasthma children specialistcarpet cleaning dallas txcarpet cleaners dallascarpet cleaning dallas

May 17, 2008 2:32 PM  

Post a Comment

<< Home