In a recent post entitled Dare responds re: open and closed systems Tim Ewald writes

Responding to my statement:

Dare was quick to blame WSDL and XSD, noting that POX/REST/AJAX systems don't have this problem. Certainly the customers I talk to who have done POX/REST systems are moving toward WSDL and XSD because they want metadata about services in order to facilitate reuse. Without it, they don't have a clear picture of what their systems are doing - or how to reuse them in other contexts. For a closed system, lack of descriptive metadata is fine. But if you want something open and reusable across apps, it really helps to have it

he called me on my description open and closed systems:

Interesting. So Yahoo! Web Services, the Flickr API, Bloglines API, del.icio.us API, and every RSS feed on the planet are closed systems that aren't open and reusable?

Yes, Dare, you are right. I concede that these very public APIs are open and reusable. I was really talking about systems *inside* a company (which I meant to imply with my reference to our customers). In many cases, developers start using POX over HTTP to build systems. When people want to re-purpose those services, its hard because they don't have a lot of information about what message formats and exchange patterns they support. In many cases there is no documentation for that, other than the code and, in that sense, those systems are closed. XSD and WSDL help open them up by providing metadata about what those services do. In some cases that metadata is also useful for finding services that do interesting things. For many of our customers, that is the reason they are migrating from existing POX over HTTP systems to SOAP-based Web services.

As part of my day job I'm in the position of having to work on both internal and external web services at the same time. I can totally see how internal services can end up not being documented well especially since they usually are written for one or two specific partners whose questions can be answered over the phone or email. In fact, I've been meaning to add code samples to one of our specs for over six months but have never gotten around to it because there's always a higher priority issue to work on.

On the other hand, an external web service could be accessed by dozens to hundreds of developers, many of whom will be unable to contact the creators of the service. In this case,  the onus is on the creators to either provide excellent documentation or use standard interfaces that are well documented elsewhere if they actually want anyone to use their service. 

In both situations, I wouldn't consider an XSD or WSDL file as being sufficient documentation. They are definitely better than nothing but they are a far cry from providing enough metadata for users of a service to determine how to properly interact with a service especially when dealing with operations that have to be performed in a series of steps (e.g. uploading a photo or enclosure to a user's home directory then attaching it to a subsequent blog entry).

If your organization is having problems with poorly documented internal services then the answer is to document them NOT to rely on WSDL & XSD files as documentation. As David Ing mentioned in a response to Tim's post   

- XSD/WSDL helps automate the contract side but doesn't really reduce documentation when compared to POX/H, in fact sometimes they increase the complexity up a notch too high. The tools aren't up to a state where you can hook up and just go - staring at the wire and talking on the phone are still facts of life in enterprise integrations. That's a side affect of the problem domain rather than the technology.

In summary, there is no substitute for good documentation. Anyone who tells you otherwise is most likely trying to sell you something.


 

Categories: XML Web Services

A number of MSN Spaces users had to deal abusive comments from malicious users impersonating others on their weblogs. This is a problem we are well aware of and are examining various approaches to curtailing.

Recently on I found an entry on Jen's Space entitled Petition where one of our users who's fed up with malicious comments wrote

The following petition was made with regards to suggestions for further upgrades to MSN Spaces as pertains to security.

  1. We would like to see the option to enter any URL in your comment removed and replaced with a field showing the URL of the commenter by default. This field should also be inactive and therefore not available for modification or the changing of the default URL. There have been several cases where individuals have left hateful and slanderous comments on other Spaces using the URL of another member to avoid being identified. This sort of thing should be stopped and we believe that the above recommendation will help.

  2. As with MSN Messenger, the ability to have your Space public and still being able to block certain members from viewing or commenting on your Space would also be beneficial. There have been several members that went Private to avoid people they did not wish viewing or commenting in their Spaces.

If in agreement to the above suggested upgrades to MSN Spaces please sign your names below in the form of a comment so that we can pass this on to the powers that be. I think we can all agree that these two recommendations will help with some of the ridiculous problems that certain members have been forced to deal with.

We've considered both approaches to solving the malicious commenter problem but neither one seems like a complete solution. The main problem with the first request is that it doesn't handle the case where the commenter is a valid Passport user who doesn't have a Space. Unless we prevent people from being able to provide their own URL, name and email address then this solution wouldn't really work. Given that we already get complaints that requiring Passport to post is restrictive, this would seem even more problematic. The second request doesn't really work if the Space is public because all the malicious commenter has to do is sign out and then they have access to the Space even if their Passport account is blocked.

For now, the best solution is to create a private space and add the Passport accounts of the various people you want to access your Space to your permission list. We have excellent documentation about permission settings which should show how to make your space accessible only to specific people in your address book or your MSN Messenger contacts.

In the meantime, rest assured that we are working on solutions to the impersonation problem which allow users to trust that commenters are who they say they are while not limiting the expressivity of people who leave comments in a blog. 

I love the tough problems.


 

Categories: MSN | Social Software

If you are a geek, you may have heard of the Firefox extension called GreaseMonkey which lets you to add bits of DHTML ("user scripts") to any web page to change its design or behavior. This basically enables you to remix the Web and either add features to your favorite web sites or fix broken UI design.

Over the Memorial day weekend, I got the hookup on where to obtain a similar application for Internet Explorer named Trixie. Below are some excerpts from the Trixie website

What is a Trixie script?

Any Greasemonkey script is a Trixie script.  Though, due to differences between Firefox and Internet Explorer, not all Greasemonkey scripts can be executed within IE.  Trixie makes no attempt to allow Greasemonkey scripts to run unaltered, since it is best to have the script author account for the differences and have the script run on both browsers if he/she so chooses.

Refer to the excellent Greasemonkey documentation to learn how to write Greasemonkey/Trixie scripts.  Note that some of the information there won't be applicable to Internet Explorer and Trixie.

Installing Trixie

Trixie requires the Microsoft .NET framework to be installed.

To install Trixie, download and run TrixieSetup  (latest version: 0.2.0).  You should ideally close all instances of Internet Explorer before doing this.  By default, TrixieSetup installs Trixie to your Program Files\Bhelpuri\Trixie directory (you can of course change this location).  It also installs a few scripts to the Program Files\Bhelpuri\Trixie\Scripts directory.

Restart IE after installing Trixie.  Once you have restarted, go to the Tools menu.  You should see a menu item called "Trixie Options".  Selecting that will show you the list of scripts installed and which one's are enabled or disabled.

Once you have installed Trixie, you browse the Web just like you always do.  Trixie works in the background executing the scripts on the designated pages and customizing them to your needs.

I've been using Trixie for the past few days and so far it rocks. I also looked at the code via Reflector and it taught me a thing or two about writing browser plugins with C#. So far my favorite Trixie Script is the one that adds site statistics to an MSN Spaces blog when you view your own space.

It looks like I need to spend some time reading Dive Into Greasemonkey so I can write my own user scripts to fix annoyances in web sites I use frequently. Remix the web, indeed.

Update: It took me a few minutes to figure out why the project was called Trixie. If you're a Speed Racer fan, you probably figured it out after reading the second paragraph of this post. :)


 

Over the past week and a half, I've been fixing bugs in the implementation of newsgroups support in RSS Bandit. Yesterday I celebrated getting the last major networking issue being fixed by posting a somewhat empty message to the microsoft.public.xml newsgroup from RSS Bandit. The main thrust of what's left is for Torsten and I to decide how we want newsgroups to be exposed in the user interface.

It is time to start thinking about another item on the roadmap for our next release. This time I want to focus on what we'll do to better support RSS enclosures and podcasting. If you are unfamiliar with either of these concepts, you should read Dave Winer's blog post Payloads for RSS from 2001 which describes the concept of subscribing to digital media content such as songs and videos as opposed to just text as is common today.  

Although I am not interested in any of the amateur talk radio or audioblogging that is typically associated with podcasting I still think this is a very interesting development that should be supported by RSS Bandit. I would love to be able to subscribe to the G-Unit website and get new songs that have been released to the public or subscribe to the various XBox 360 rumor mills to get new videos of game demos.

Below is a list of features I'd like to see in RSS Bandit.

  1. Ability to download RSS enclosures to a folder of my chosing. This folder can be configured per feed so I can have some stuff go to C:\G-Unit and other stuff go to C:\XBox360.
  2. A list of files currently being downloaded or that have been downloaded.
  3. A download meter to indicate how much of a file has been downloaded.
  4. Ability to add files to my Windows Media Player or iTunes playlist of my choosing on successful download. The level of configurability of this feature will depend on how much work is entailed. :)

If you have any ideas that I have left out or comments about the above list, just go ahead and reply to this post.


 

Categories: RSS Bandit

May 27, 2005
@ 03:52 PM

Of the major online service providers, Yahoo! has always been one of my favorites. I may use the Google search engine to find stuff online or MSN Messenger to chat with friends and coworkers, but I utilize more services from Yahoo! than any Web company. In fact, I'm the main reason that all the Windows machines in the computer labs of the College of Computing at Georgia Tech had the Yahoo! Toolbar installed on them when I was in college.

Now that I work at MSN, I get to work on stuff that makes me as excited about software as I used to be in college when I first marvelled at the utility of Yahoo!'s toolbar. Even better is seeing a lot of the stuff I work on either directly or indirectly, influence one of my favorite online services.

In a recent blog post entitled Not Nerdvana, But Maybe The Suburbs, Stowe Boyd writes

I was out in California on the 12th, getting briefed by the Yahoo Messenger folks about the newest release of their instant messaging suite
....
Note As I sketched in a recent post (Nerdvana: A Better Tool For Communication (I Can Dream, Can't I?)), I would really like a rich client on my desktop that put the buddy list firmly at the center of the universe, and all other stuff -- email, blog posts, to-dos, appointments, geographical location, whatever -- hanging off the buddy list as a collection of attributes. Because people and social relatedness is the center of the universe, not documents, calendars, email, etc.
...
Note the 'contact card' in the screenshow above, where various elements of Jessica's digital relationship to me are displayed. We see various icons, representing ways I can contact her. But better, much better, we see the music she is playing, and new profile info and blog entry.

The contact card is something we pioneered in the most recent release of MSN Messenger. It's illuminating to compare Stowe's screenshot of the Yahoo! Messenger contact card with a screenshot I took last year of the MSN Messenger 7.0 beta contact card.  I totally agree with Stowe Boyd that software should help people better communicate and interact with each other in social contexts. This is something that lots of folks at MSN are passionate about and it is edifying to see our competition follow our lead in this area.

This morning I saw an article in Infoworld titled The battle for the blogosphere which had some interesting comments about competition between Yahoo! and MSN in the blogging arena. Some of the excerpts from the article are

Introduced in beta form just last December, MSN Spaces now hosts over 10 million blogs, an eye-popping adoption rate that has blown past internal Microsoft expectations. "MSN Spaces is the fastest growing service MSN has ever introduced," said Brooke Richardson, lead product manager at MSN communication services.

The significant thing for the blogging market is that Microsoft is doing it its way, designing MSN Spaces to have a central text-blogging core but complemented by and integrated with a suite of MSN online services, such as instant messaging, e-mail, music playlist posting, and photo sharing. Microsoft also built into the service access control features to let users determine who can view their blogs, although they can make their blogs totally open if they want. MSN Spaces will also notify users when blogs from friends have been updated.

In March, Yahoo introduced in limited beta a service called Yahoo 360 whose concept and design are similar to MSN Spaces. This service comes as no surprise, because Yahoo, like Microsoft's MSN, has a wide variety of online services with which to surround its blogging service. As two leading Web portals, MSN and Yahoo have an amount and variety of online services under one roof that few others can rival, and blogging is something they're weaving into their overall fabric.

Later on the in the article, the author takes issue with the lack of customizability of MSN Spaces in comparison to other online services such as Google's Blogger and even mentions Robert Scoble's post from last year, MSN Spaces isn't the blogging service for me. We've gotten a lot of feedback about customizability and we definitely will be looking into how we can offer more flexibility. 

From my perspective, the competition between Yahoo! and MSN around who can build a better social computing experience for end users is a lot more exciting than the competition around search engines that have garnered all the press. This is definitely a fun time to be working at MSN.


 

Categories: MSN

There have been a number of events over the past week that have gotten me thinking about XML Web Services and how the technologies have been handicapped by the complexities of the W3C's XML Schema Definition Language (XSD) and Microsoft & IBM's Web Service Definition Language (WSDL). The events that brought this issue to mind have been

  • Contributing to Mike Champion's efforts in putting together Microsoft's submission to the W3C Workshop on XML Schema 1.0 User Experiences and having to revisit the various interoperability problems caused by the complexity of XSD.

  • A recent paper by Steve Loughran and Edmund Smith entitled Rethinking the Java SOAP Stack which argues that since the complexity of Object<->XML mapping based on XSD/WSDL is too difficult that Java SOAP toolkits should simply work with XML directly instead of doing data binding of XML to objects.

  • A recent post by Steve Maine, who works on the XML Web Services team at Microsoft, entitled Travelling through hyperspace where in response to the various arguments about the complexities of XSD and WSDL he states "WSDL, XSD, and SOAP are facts of life in the web services world"

  • The W3C's creation of the public-web-http-desc@w3.org mailing list to discuss the creation of a web services description format (i.e. a WSDL replacement) for RESTful web services

These are definitely interesting times for XML Web Services. The complexity of the technologies that form the foundations of SOA is now pretty much acknowledged across the industry. At the same time more and more people are taking the idea of building web services using REST very seriously. I suspect that there might be an opportunity here for Microsoft to miss the boat if we aren't careful. 


 

Categories: XML Web Services

May 24, 2005
@ 05:28 PM

Paul Thurrott has an interesting series of articles about MSN's past, present and future. In some ways it could be called How MSN Got It's Groove. 

    1. Part One: Beginnings
    2. Part Two: Fly, Butterfly
    3. Part Three: Services That Communicate

The article does a good job of capturing a bunch of the changes that have happened in the organization over time as well as offers some hints as to some of our future plans. My favorite part of the article is this excerpt from its conclusion.

When I speak with people from the Windows division at Microsoft about new product releases, there's always an unspoken assumption that I won't see these people again for many months or even years. With MSN, it's sort of a running joke that I'll often be speaking with them just days later. They just have so much going on.

And we have a bunch of stuff planned for this year. The recently announced MSN Virtual Earth is just one of many cool things we'll be shipping this year.


 

Categories: MSN

There is an article on PC World entitled Gates Unveils MSN Virtual Earth which describes upcoming releases from MSN that were recently announced by Bill Gates at a recent event. Excerpts from the article are provided below

Microsoft's MSN division will enhance its search engine in the next couple of weeks by adding a local search index for finding business directory listings. Later, the company will supplement this with MSN Virtual Earth, a free new service that will pinpoint places in maps and satellite images.   Local search is a gaping hole in the MSN search engine. All other major search engine providers, including Google, Yahoo, Ask Jeeves, and America Online, have a local search tab on their search Web sites. As part of its local search service, Google also provides maps and satellite images, offering functionality that is similar to what Microsoft is aiming for with MSN Virtual Earth.
...
In addition to complementing MSN's local search index, MSN Virtual Earth will let users overlay maps and satellite photos in order to create hybrid images that combine the best of both mediums, says Stephen Lawler, general manager of Microsoft's MapPoint unit.

MSN Virtual Earth will also be integrated with users' preferred e-mail application and, with a single click, will place links in e-mail messages to maps and images, says Steve Lombardi, a MapPoint program manager. Users will also be able to post images to their MSN Spaces Weblog from within the MSN Virtual Earth interface, Lombardi says.

Users will be encouraged to provide feedback on business directory listings so that the MSN local search service will be able to give users a sense of what a particular area is like, Lawler says.

MSN Virtual Earth uses technology from MapPoint and from Terra Server, a database of satellite images Microsoft has had for about ten years, the officials say.

I was in a meeting with Steve Lombardi and a couple of other folks from the Virtual Earth team a while ago and they definitely have built a compelling product that they are quite passionate about. As mentioned in the article, there are interesting avenues for integration with other MSN properties such as MSN Search and MSN Spaces.

It's great to see the innovation and competition coming out of the online mapping space. 

Update: There is an interview with the Virtual Earth team complete with demos up on Channel 9.


 

Categories: MSN

May 21, 2005
@ 02:35 AM

From Bob Wyman's post Microsoft to support Atom!

Robert Scoble, a Microsoft employee/insider very familiar with Microsoft's plans for syndication, declares in comments on his blog " we are supporting Atom in any aggregator we produce ." Microsoft's example in supporting Atom should be followed by all other aggregator developers in the future and Microsoft should be commended for supporting the adoption of openly defined standards for syndication.

Given that virtually every aggregator in use today and virtually every blog hosting and syndication platform (expect MSN Spaces) already supports both RSS and Atom, it is clear that the heyday for the historical RSS format has passed. RSS is a historical format, Atom represents the future. We don't need two formats -- or twenty... We should consolidate on that format which incorporates the most learning and experience with the syndication problem. That format is Atom V1.0.

I'm surprised that Bob Wyman is crowing at such a non-issue. Supporting both versions of Atom (Atom 0.3 and Atom 1.0) is a must for any information aggregator that wants to be taken seriously. This is all covered in my post from a year and a half ago (damn, has this debate been going on for that long?) entitled Mr. Safe's Guide to the RSS vs. ATOM debate where I wrote

The Safe Syndication Consumer's Perspective
If you plan to consume feeds from a wide variety of sources then one should endeavor to support as many syndication formats as possible. The more formats a feed consumer supports the more content is available for its users.

Based on their current popularity, degree of support and ease of implementation one should consider supporting the major syndication formats in the following order of priority

  1. RSS 0.91/RSS 2.0
  2. RSS 1.0
  3. Atom

RSS 0.91 support is the simplest to implement and most widely supported by websites while Atom is the most difficult to implement being the most complex and will be least supported by websites in the coming years.

The Safe Syndication Producer's Perspective
...
The average user of a news aggregator will not be able to tell the difference between an Atom or RSS feed from their aggregator if it supports both. However users of aggregators that don't support Atom will not be able to subscribe to feeds in that format. In a few years, the differences between RSS and Atom will most likely be the same as those that are different between RSS 1.0 and RSS 0.91/RSS 2.0; only of interest to a handful of XML syndication geeks. Even then the simplest and safest bet would still be to use RSS as a syndication format. This is the same as the fact that even though the W3C has published XHTML 1.0 & XHTML 1.1 and is working on XHTML 2.0, the safest bet to get the widest reach with the least problems is to publish a website in HTML 3.2 or HTML 4.01.

So far this thinking has aligned with the thinking around RSS I have seen at MSN, so it is extremely unlikely that MSN Spaces will do something as disruptive as switching its RSS feeds to Atom feeds or as confusing to end users as providing multiple feeds in different formats.


 

From the RSS feed for the post MSN: RSS Everywhere