April 2007 - Posts
I caught up with Pablo Castro, who announced Codename Astoria - Data Services for the Web earlier today at MIX07.
Here's the video of our chat together.
In the meantime, there have been a number of blog posts commenting on the Astoria announcement via TechMeme:
John Musser at ProgrammableWeb.com:
"Although it’s an early experimental release, it’s quite an interesting approach using a very RESTful set of patterns and infrastructure for web data services."
Michael Coté of Redmonk:
"If you’re interested in REST, SOA (hopefully, of the REST type), SaaS, or (though I shudder to type it) “the semantic web,” take a look at Astoria yourself. Like I said, it’s all at the “labs”/”project” stage now. But, that means there’s a chance to get in there and influence what the final release turns out to be. Does the interface and use model “work”? Do you like it?"
"They've totally gone to town on URIs and HTTP access - very much leaning towards REST. What's exposed is proper web stuff. There's a fair bit of innovation there that looks useful, it'll be interesting to see what RESTafarian gurus make of it. So the insides will be good for MS-heads - great, anything that encourages building web-friendly services has to be a good thing."
"Combine REST with a conceptual model and well you get Data 2.0.
Astoria leverages REST + Entity Data Model to expose data to the web.
Pablo Castro has announced a very cool project, Microsoft Codename "Astoria": Data Services for the Web.
You build data-aware web applications (are there web devs that don't?)
You are interested in data access over the web (data over the web is what makes the web interesting)
You have been asking: "What is the programming model for data over web?" (I have)
You want more that simple file storage in the sky - you want relational data in the cloud you can program against - read and write (every developer I've spoken to wants this)
You like REST ('nuff said)
Codename "Astoria" is the project I was working on before I left Microsoft. Astoria was probably the single hardest reason for me to leave as the momentum of the project was really picking up speed and the potential of Astoria was being grokked by a number of teams inside Microsoft. So to see Pablo's presentation today at MIX07 was nothing short of glorious.
On to "What is Astoria?"
Astoria is the cloudiest city in North America. Astoria is also the codename for an incubation project started some months ago attempting to answer the following questions: if you could provide a dead-simple way of programming against a relational data store that resides on the internet, what should the programming model look like? Could it be simpler than SOAP-based data access programming?
There are two parts (well, more - but we'll start with two) to the Astoria story.
The first part is the more traditional Microsoft CTP thing. What the downloadable bits allow you to do is to very rapidly provide a REST-based API - URLs- to an existing SQL Server database. That's right - REST to SQL in a jiffy! You download the bits for Visual Studio Orcas, do a couple of wizzy things and before you know it you have your data available through http. If you want, can then apply your own security model, constraints, etc. Downloads info and links here.
The second part is what I consider to be the coolest thing in data over web the today. The Microsoft team has deployed an online implementation of Astoria here, providing some sample read-only datasets for you to play with. There are plans to allow anyone to define their own data model and then have your data stored the same way as read-write, but it's not there today, and when that goes online it'll be for experimental use only, not the real-deal, yet.
There are currently four datasets for you to play with:
Northwind Data Service
Northwind is a classic database example, so we had to make it part of the sample set for the Astoria online service.
AdventureWorks Data Service
AdventureWorks is the new sample database that comes with Microsoft SQL Server 2005 and has a rich schema and a lot of data.
Encarta Data Service
The Microsoft® Encarta® team was nice enough to let us use a subset of their Encarta Encyclopedia article base and expose it as a data service.
TagSpace Data Service
The folks at Microsoft TagSpace were also kind enough to let us borrow their data (without user information, of course); this data service exposes the Tags, Tagged Items, Bookmarks and the relationships between them.
Let's look at the TagSpace Data Service as an example. Here's the entry point (data service root): http://astoria.sandbox.live.com/tagspace/tagspace.rse
What you see returned are the entities you can begin to browse though as an XML payload back (you can request JSON or simple RDF too): The three entities: Tags, TaggedItems and UserBookmarks.
<?xml version="1.0" encoding="utf-8" ?>
- <DataService xml:base="http://astoria.sandbox.live.com/tagspace/tagspace.rse">
- <TagSpaceEntities uri=".">
<Tags href="Tags" />
<TaggedItems href="TaggedItems" />
<UserBookmarks href="UserBookmarks" />
So, let's look at the all the tags. Simple add "/tags" to the end of the entry point URL: http://astoria.sandbox.live.com/tagspace/tagspace.rse/tags
One of the tags listed in the XML playload returned is vista:
- <Tag uri="Tags[vista]">
<CreatedDate>11/6/2006 11:40:31 AM</CreatedDate>
<TaggedItems href="Tags[vista]/TaggedItems" />
Now let's replace "/tags" with "/Tags[vista]/TaggedItems" in the URL to get all the items tagged with 'vista': http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems
Now we see all the the items tagged 'vista'. In the payload back, we see that 'TaggedItem' is another entity that is made up of a number of elements: the item ID (in this case '2'), the item title, the item description and the url to the item:
- <TaggedItem uri="TaggedItems">
<Title>How do I change Windows Vista Media Center's Record folder...</Title>
<Description>Well, currently I installed Windows Vista Ultimate on my PC. I have two harddrives, a 80gig, and a...</Description>
Now I know the ID (the 'key') of a specific item, I can ask just for that item back by replacing "/Tags[vista]/TaggedItems" with TaggedItems" in the URL hitting the data service: http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems
The underlining technology that allows the data to be viewed at entities is the ADO.NET Entity Framework, so the data model you are traversing is an Entity Data Model (the EDM consists of the high-level constructs “entities” and “associations”). The cool thing is, as a consumer of the data for your app (or as a human navigating through the URLs), you don't need to anything installed, you just hit the URLS and off you go. The payload returns enough information for you to then start navigating the data model and the data itself and use the data it for your apps.
The are a number of other very cool aspects to all this, and more detail is avaiable to read through in this .doc - Using Microsoft Codename Astoria, but to summarise just a few point here:
The data service is reachable over regular HTTP requests, and standard HTTP verbs such as GET, POST, PUT and DELETE are used to perform operations against the service.
The URL-based query syntax supports a number of operators. Examples:
/Customers[City eq 'London']
/Customers[City ne 'London']
/Orders[OrderDate gt '1998-5-1']
Greater than or equal
/Orders[Freight gteq 800]
/Orders[Freight lt 1]
Less than or equal
/Orders[OrderDate lteq '1999-5-4']
There are plenty more operators too. You can also create new entities using HTTP POST request and delete entites using HTTP DELETE against the URLs and manage associations between entities through URIs.
Powerful stuff, but to point out here: the team is looking for feedback. It's actually pretty unusual to have a project reveal so much at this early stage of a technology's development, but the team was itching to get feedback as early as possible in the design process.
If you are at MIX07, Pablo is repeating his session on Wedesday May 2, 11:30 AM - 12:45 PM, Lando 4201.
Can't wait for the team to update the service so we can start hosting our own data up there too...
Update - 11:19pm
I caught up with Pablo and video'd our chat together. Also, blog reactions so far have been positive. New post here.
I've just sat through Ray Ozzie keynote here at MIX07, his first public speaking engagement to a dev audeince since joining Microsoft, where he made a few interesting announcements relating to Silverlight.
I won't repeat all the details here since Ryan Stewart seems to be totally on the ball in having the scoop right away. To summarise:
"First, Microsoft is announcing that the CLR will be a part of Silverlight. Two, they are also announcing a Dynamic Language Runtime (DLR) which is open source and will allow developers to write dynamic languages to be compiled into .NET bytecode. The DLR will be open sourced under the Microsoft Public License. Third, Windows Live will provide Silverlight developers a way to deploy applications on their service by implementing a hosted solution around Windows Live."
Hosting a solution on Windows Live? That's right...More on the Windows Live Hosting news:
"Finally, one of the interesting announcements is that Microsoft is going to provide a hosting service to budding Silverlight developers via the Windows Live property. The serivce gives 4 gb of space to anyone building and deploying Sliverlight applications. This means you can store Slverlight movies and applications on the Windows Live service and then deploy those on your blog or web page."
That's very interesting news but I can't find the link to Windows Live Hosting to check it out for myself.
In the meantime, Joshua Allen has also posted more details and links to the announcements themselves.
Microsoft has also just launched Silverlight.net and updated microsoft.com/silverlight.
Also announced: Expression Studio is now shipping.
Silverlight Streaming is the name of the Windows Live hosting service for Silverlight content and apps - silverlight.live.com
Dan Farber has a good summary
of Ray Ozzie's talk this morning. In a nutshell: software + services model. Services being Windows Live APIs plus content + app hosting service for Silverlight apps, Silverlight Streaming.
I've just upgraded my blogware from CS 2.1 to Community Server 2007 after seeing Scott's post, so please bear with me as I get a few things sorted out.
I'll be heading down to MIX07 tomorrow. Let me know if you want to hook up (ping me at )
There will be a torrent of Microsoft product announcements over the next few days - Sam Sethi has made a number of predictions on what some of these will be.
One of the sessions I'll be looking forward to is Pablo Castro's talk that Sam picked up on (I used to work with Pablo in Microsoft's Data Programmability team). If you are going to MIX07, DO NOT miss this:
Accessing Data Services in the Cloud
Speaker(s): Pablo Castro - Microsoft
Come learn about new Microsoft technologies that enable you to make your data available over the Web through a simple REST interface and using open formats such as plan XML, JSON or even RDF. We also discuss the underlying entity framework that makes it easy to model, publish, and program against your data over the Web.
Good thing I held on to those MSFT stocks - Microsoft grew more than a whole of Google's sales this last quarter:
"Of course, even Microsoft's growth pales in comparison to Google's, which posted a 66% rise in sales in the quarter, from $1.5 billion to $2.5 billion. But Google is still, of course, a much smaller business, and it's worth noting that the $1 billion that it added to its sales is a fraction of the $3.5 billion that Microsoft added. To put it another way, the increase in Microsoft's sales during the quarter is greater than Google's total sales - by far ($3.5 billion vs. $2.5 billion)."
I haven't had a chance to blog this before today since I've been on vacation for a few days...but...
Ted Haeger has joined Bungee Labs this week to revv-up our developer community efforts. Ted's been with Novell for the 9(.6) years doing a bunch of cool stuff over there, including the Novell Open Audio podcast series. He knows a load about building technical communities, knows his beans when it comes open source and will be running our developer programs, including our evangelism team. Congrats to Ted!!
Talking of which....we're now hiring for technical evangelists at Bungee Labs. Here's the short and sweet job description.
Bungee Labs Evangelists
Do you want to play your part in changing the face of the web development industry, forever?
Do you love to help fellow developers learn how they can use latest technologies to build a outstanding web experiences for their customers? Are you a webtech addict - always learning - hacking up demos and simply compelled to pass on your knowledge? Are you a passionate communicator (online and offline) that can enthuse AND connect on a deeply technical level?
If so, join our team - we’re looking for seriously smart senior and mid-level Bungee Labs Evangelists to help drive the adoption of Bungee Connect through engagement with the developer community.
If you're interested, send a mail with links to hacks you’ve created, to your blog, an online resume or any other stuff that shows you’re perfect for this role to:
I've had a hectic but thrilling 2007 so far.
This past week I've had some time to unwind and enjoy my family, cricket and a more recent passion of mine, photography.
Near Salt Lake City is a weird but beautiful spot called Saltair. Here's one of the pics I took there.
Then we headed off to Barbados for a few days to watch some of the cricket world cup (more pics here) and bumped into the game's more colourful characters at the England vs. West Indies match:
Great game by the way.
And then finally we got down to some pure relaxation (pics here and here):
Now back, refreshed, and ready to go...
We've been dying to share these videos with you - the team has now posted up a series of screencasts showing Bungee Connect in action (see links below).
If you want to jump straight to the action, I suggest watching one of the tutorials first to see the user interaction with Bungee Builder (the IDE inside Bungee Connect). Once you've seen those, you can then go through the intros that explain some of the key concepts behind what you see in those tutorials. Enjoy!!
Introduction to Bungee Concepts I
Introduction to Bungee Builder
Introduction to Bungee Concepts II
Classic Hello World
Here's a screenshot of the Bungee Builder (the IDE within Bungee Connect):
Quick post following our first day at Web 2.0 Expo. Went very well I thought. The team got everything up and running back at base and here on the floor before the avalanche of attendess came though the doors.
Got loads of interest and demand for beta access sign-ups for Bungee Connect. I'm doing some handcam video shooting and have uploaded a video to YouTube - it includes a flavour of the positive reactions we're getting from developers who are getting a chance to play with Bungee Connect at our booth. More to come...
Also, getting more coverage on our announcement yesterday from ComputerWorld and PCWorld:
"The Expo will showcase an impressive lineup of Silicon Valley luminaries, including Amazon.com CEO Jeff Bezos and Google CEO Eric Schmidt. The show is also being used as a launching pad for countless startups that are hoping to grab a piece of the media spotlight at the show.
Bungee Labs is one of them. The Salt Lake City-based startup will unveil Bungee Connect, an online, SaaS-based collaborative environment that allows developers and designers to quickly create Web-based applications using technologies like SOAP and Ajax, and tie them to third-party platform companies like Google, Microsoft, Amazon.com, and eBay.
"Companies these days have private Web services they use internally and public Web services for things like supply chain that are accessible to outside development communities, but integrating those Web services is hard," said Lyle Ball, vice president of marketing at Bungee. Bungee's Connect environment, which is free to developers, will make those interactions more fluid, with access to toolkits and tools for state management, and publishing and hosting Web applications developed in the collaborative environment.
The company sees the new services as a kind of "development as a service" offering and plans to make money using a utility computing model for applications that are developed and hosted on Bungee Connect, Ball said."
At last, I can tell you more about what Bungee Labs has been up to...
We've just announced details about Bungee Connect, a 100% on-demand web development and deployment environment that will be going into Beta phase in May.
Over the next three days at the Web 2.0 Expo 2007 and on bungeeconnect.com we'll be providing a lot more detail on exactly what Bungee Connect is, how it works and why we think it will be a big deal when we go live.
So before I go on, let me quote a couple of people who have already seen Bungee Connect in action behind closed doors. The following are from tonight's two press releases (1 and 2)
First off, Dion Hinchcliffe:
“Ajax is just the beginning of the RIA story and Bungee Labs provides the rest of the solution with a web-based IDE, on-demand scalable deployment, a well-designed community model and a built-in component ecosystem with real-world licensing options,” said Dion Hinchcliffe, ZDNet blogger; President/CTO, Hinchcliffe & Co.; and editor in chief, AjaxWorld Magazine. “Bungee Connect is a surprisingly complete one-stop shop for the RIA development, deployment and operations lifecycle.”
Next, Dana Gardner:
“Given the current disjointed state of tools, testing and deployment models, most developers find creating rich internet applications (RIAs) to be complex, time-consuming and expensive,” said Dana Gardner, Principal Analyst, Interarbor Solutions. “By combining development, testing and deployment functions into an integrated, low-cost-of-entry service approach, Bungee Connect both broadens the numbers of developers that can produce web applications as well as slashes the barriers of entry for creating innovative ecommerce services and web-based businesses."
The Bungee Labs team has been working very closely with the Amazon team (and others API providers) the last few months to make sure Amazon's web services "just work" with Bungee Connect. Jeff Barr, Senior Evangelist for Amazon's Web Services:
“Bungee Labs’ decision to make their development environment integrate seamlessly with Amazon Web Services is great news for our developer community,” said Jeff Barr, Senior Evangelist for Amazon Web Services. “AWS developers can now use Bungee Connect to directly access our services, which means they can build Web-Scale applications in an easy to use, browser-based development environment.”
Another provider of web APIs, Salesforce.com has also been working closely with the Bungee Labs engineers. This time a quote from Adam Gross, Vice President, Developer Marketing, Salesforce.com:
“Salesforce.com has demonstrated that the innovation and ideas of the consumer Internet are at the core of the next generation of business applications. Bungee Connect together with Salesforce.com’s Apex platform makes it easier for developers to create mashups for their businesses, and in doing so hastens the transition from traditional enterprise software to the new on-demand model of building and deploying applications.”
So, what is Bungee Connect? Well, it's a lot of things:
- Bungee Connect is a completely web-based integrated development environment (IDE) for building and deploying rich Ajax web applications, from simple web apps to seriously sophisticated Ajax applications. No install for developers, no installation of delivery infrastructure, and no client install for end users.
- Bungee Connect is for developers, not for consumers. Yes, it provides a huge amount of automated support for the integration of SOAP and REST-based web services, Ajax app development and state management. You can develop sophisticated apps that integrate powerful (as well as simple) web services plus develop your own logic without having to write a line of code. It massivley reduces complexity. But, nonetheless, it is for developers, not consumers.
- Bungee Connect provides a completely integrated means of deploying apps to the live web. No FTP. No separation between your dev, staging, production and live environment. No local set-up on your machine. No bits to install anywhere. No web servers, no app servers, no stacks, nor libraries to install, patch or manage. No 'Yak shaving'. It's all taken care of for you. You develop your app through the browser, then deploy your app through the browser and map the app to your domain / URL (or embed the app in your site) - It's your app. Oh, and you get IE, Firefox and Safari cross-browser compat taken care of too - you build your app once and it just works in these three browsers. Sweet.
- Bungee Connect includes a whole code share and team collaboration concept. You can keep your code proprietary, or you can share it with other Bungee Connect developers in your workgroup or with the wider Bungee Connect developer community. There's a lot more to this than I can cover here and I'll be writing a lot more on this soon, but I like how Mat Asay described the community aspect as a 'Sourceforge for the 21st Century'.
- Bungee Connect allows developers to leverage the world of web APIs. We've been working with the API engineering and evangelist teams at Amazon, Ebay, Google, Microsoft Windows Live, PayPal, RealNetworks, Salesforce.com and Yahoo! to ensure Bungee Connect works sweetly with the multitude of their rich APIs (both WS* and RESTful). The aim is to ensure Bungee Connect can work with any web service that you choose and by working with these teams and their APIs in developing Bungee Connect, we've got a great test-bed to make sure we can achieve this goal.
- Bungee Connect is No Fee for the developer to use in developing and testing Bungee-powered apps. You only pay once you've deployed your app commercially or unrestricted. We expect this to be US$1 per computer-network-interaction-hour, billed monthly. Again, more on this later.
And there's so much more. Tomorrow, anyone attending Web 2.0 Expo will be able to get hands on with Bungee Connect. We've got a booth with PCs (Windows, Macs and Linux) with the browser open (IE, Firefox and Safari) where you run through some tutorials and judge for yourself if you think we're all smoking crack (see pics below - no crack, just the booths). We'll also be updating the site with screencasts and plenty more details and Martin will be presenting and demo'ing with Brad on Wednesday morning. And by then I'm sure David might have something more to say too...
To underline a couple of points here: we're not live yet. We go into Beta in May and are looking for web developers who ideally already have experience in progamming against the APIs of the companies I mentioned earlier. So sign up if that sounds like you...
Update 2 (4/18/07)
On Monday night I met up with some colleagues from my old Microsoft team (Data Programmability) for a Software Design Review (SDR) on Tuesday along with a few others external to Microsoft - Dion Hinchcliffe, Phil Wainewright, John Musser, Michael Coté and Danny Ayers.
An SDR is part of a product's (or technology's) design process at Microsoft where external customers / subject matter experts are invited to preview (usually under NDA) designs, prototypes or early builds and provide feedback on those. It is an opportunity for the product teams to hear directly from the attendees on those designs and validate direction at a phase that is early enough to make 'course corrections'. I wish I could tell you what we were invited to preview, or even hint, but I (and the others) are sworn to secrecy :-). For now anyway. But rest assured, it's v.cool stuff. As soon as allowed I'll share my thoughts.
With the SDR wrapped up, I set off for a marathon drive from Seattle to my new home in Utah on Wednesday morning. What a drive. I wanted to make this trip by road to get a sense of perspective on the distance between these two points and get a sense of what was 'in between' these areas. For example, I know a lot of people who visit London and have only used the tube to get from A to B. I think they are missing out on the experience and the understanding of how two points relate. It's the same thing here. I won't do it every time, but just once for the experience. It also solved the practical matter of getting my car over to Utah. It was a long trip, broken down with an overnight stay in Boise, totaling over 900 miles in 24 hours.
Sunrise in Idaho was quite amazing. Pics obviously don't do it justice (taken on smartpone), but gives you an idea...
I got in the office yesterday morning, where the Bungee team is putting final touches on our prep for Web 2.0 Expo. I'll be heading to San Francisco Sunday afternoon / early evening.
I've not seen this Channel 9 video yet, but plan to - it's a interview (part 2 of 2) with MSDN team members discussing Korby's baby, the MSDN Wiki:
"Don't know about you people, but I look at community involvement as being a great thing for everybody. However, I'm not the one who has to take responsibility for opening up a site to modifications from the general public. When we see these projects, it's easy to forget the kind of risks that are being taken on behalf of the employees who drive the efforts.
This interview reminded me of what those risks can be."
(Example community content here).
Apparently, Microsoft is dead. Again.
Don doesn't think so. And, you know, he's got a point:
"For the record, Microsoft is growing revenues at over $4 Billion a year and is on track for $50 Billion this year. If that is dead I know a lot of companies that would like to be so dead."
Scott, I'm sorry, but this looks like old skool FUD dressed up as transparency.
Tell me how I'm wrong :-)
More Posts Next page »