Restlet bridges ADO.NET Data Services and Java September 28, 2009
Posted by Jerome Louvel in Microsoft, Restlet, Restlet General.8 comments
After a successful collaboration in February with Microsoft, we continued to explore the interoperability opportunities between Microsoft and Java technologies, leveraging REST and Restlet. Today, we are happy to announce the result of several months of hard work: a new interoperability bridge between Java and ADO.NET Data Services!
Microsoft’s strategy
In order to understand how central the Web and REST are becoming for Microsoft, it is enlightening to discover their new strategy elaborated by Ray Ozzie, Microsoft’s Chief Software Architect. It is called Software + Services and recognizes the ubiquity of the Web and the need to mix both locally running software and cloud computing services in a unified way.
From vision to reality, there is often a long way to go, but this time Microsoft is serious about the Web and genuinely embracing REST. For a few years now, they have been progressively building on their strategy, through Windows Azure, a comprehensive cloud computing platform, and through online extensions to their classic products like Office Live, XBox Live or Windows Live.
ADO.NET Data Services
One of the key technologies they leverage to achieve their plans was launched in 2007 under the code name “Astoria”. It drew much attention in the REST community at this time as it was, with Ruby on Rails’s Active Resource technology, the sole way to automatically expose a data models as RESTful Web services.
Since then, it has matured and became an actively maintained technology called ADO.NET Data Services. You can read an overview paper on MSDN and browse their extensive technical documentation for details about their REST API which leverages AtomPub.
Interoperability with Java
As RESTful Web services, you could use any HTTP toolkit to access them, to the exception of the authentication step which relies on a custom scheme, quite similar to the one used by Amazon for its Web services. However, you are not very productive this way, especially when you know that ADO.NET Data Services describe themselves through extensive metadata.
So far, beside client toolkits for Microsoft technologies such as .NET and Silverlight, only the PHP language had an easy solution to interact with those services. Today, with the release of Restlet 2.0 M5, we are proud to announce a similar offer for Java developers, cleanly leveraging the Restlet Framework.
With the support from Microsoft and especially Stève Sfartz, Architect Lead at Microsoft France, we built a high level client that is able to generate client Java classes from exposed metadata and to easily manipulate the remote entities as if they were local. The current feature scope covers most of the use cases, but keep in mind that we don’t cover all the available features available yet.
This new Restlet extension has been extensively covered by Jean-Christophe Cimetiere, Sr. Technical Evangelist from Microsoft Corp Interoperability team, in this new blog post.
Extension documentation
In order to briefly illustrate how the extension works, you can read the dedicated extension page in the Restlet user guide. It shows some simple code to access to a data service, one provided for the Open Government Data Initiative (OGDI), a recent effort launched by Microsoft to expose government data sources as RESTful Web services.
In addition, to the regular Javadocs of the extension, a complete tutorial is also available on the wiki to get you started in minutes with a detailed example. Now, if you have a .NET developer friend, you could ping him and set-up a plug scenario!
Launch coverage
- Infoworld – Java developers get .Net data link
- eWeek – Microsoft, Noelios Bridge Java, .NET with REST
- Stève Sfartz – Extension Restlet pour ADO.NET Data Services (French)
- Mike Flasko – Restlet [...] Now with ADO.NET Data Services Support
- The H Open – REST-based bridge connects Java and .NET
- Visual Studio Mag. – Bridge Connects Java to ADO.NET Data Services
- OakLeaf Systems – Live Windows Azure Apps, Tools and Test Harnesses
- LeMagIT – Noelios utilise REST pour relier les données .Net et Java
- hwsw – Híd a Java és a .NET között (Hungarian)
- IDG.se – Microsoft kopplar ihop Java med Dotnet (Swedish)
- heise – REST-basierte Brücke verbindet Java mit .NET (Dutch)
- Programmez! – Un pont d’interopérabilité [...] (French)
- Le Journal du Net – Le français Noelios relie Java et .Net (French)
- dot net pro – Brücke zwischen Java und .NET (Dutch)
- Peter Galli – New Bridge Broadens Java and .NET Interoperability
- InfoQ – RESTFul Bridge Between Java And .NET Released
- Dave Bost – Interoperability and Open Source efforts at Microsoft
- NetworkWorld – Microsoft, Noelios release new bridge [...]
- SearchSOA – Restlet framework wrestles RESTful Web applications
- RedmondDeveloper – A Dose of Java for ADO.NET Data Services
- Application Servers – Restlet compatible ADO.NET
- Java Posse – Episode 282
- Fryan Valdez – Java Extension for ADO.NET Data Services
Restlet 2.0 M5 now available September 28, 2009
Posted by Jerome Louvel in Restlet, Restlet Releases.11 comments
We have just reached a new milestone on our exciting Restlet 2.0 roadmap! Our main focus was stability and refactoring after the major goals achieved in Restlet 2.0 M4, for example with the automated editions support and some deep API changes.
Summary of the main changes
- About 20 bugs were fixed, including a long standing one related to the integration of Restlet with Tomcat and a blocking issue under Macintosh.
- Most dependencies were updated to their latest version: Grizzly 1.9.18b, Jetty 7.0 RC6 and so on.
- For better API organization, we moved Message, Request and Response classes from the org.restlet.data to the org.restlet package as they are core artifacts of the API used in Uniform interface. We also moved Template and Variable classes from “org.restlet.util” to “org.restlet.routing” package.
- In order to support both inbound and outbound routing and filtering of calls for Restlet applications, we have added two properties: “inboundRoot : Restlet” and “outboundRoot : Restlet” to the Application class and deprecated the “root : Restlet” property. This will allow you to easily provide features such as preemptive authentication with the recently added ClientResource class.
- The ServerResource class has been refactored for a cleaner integration between annotation-based and method-based call processing.
- A new extension for Microsoft ADO.NET Data Services (previously known as “project Astoria”) was added. It provides a high-level client API based on the ClientResource class that lets you access remote Data Services hosted in an ASP.NET servers or on the Windows Azure cloud computing platform. The extension contains both a code generator for the representation beans and a runtime layer. This extension is in the “org.restlet.ext.dataservices” package and depends on “org.restlet.ext.atom” and “org.restlet.ext.xml” extensions.”
- The JAXB extension now has its helper to support transparent conversions
Direct contributors
- Bob Resendes
- Bruno Harbulot
- Carsten Lohmann
- Denys Hryvastov
- Dustin Jenkins
- Evgeny Shepelyuk
- Fabian Mandelbaum
- Guido Schmidt
- John Logsdon
- Marcelo Ochoa
- Olivier Bruchez
- Patrick Logan
- Philippe Mougin
- Remi Dewitte
- Rhett Sutphin
- Rob Heittman
- Sanjay Acharya
- Tal Liron
Thanks to all others who helped us in various ways!
Additonal resources
Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
Download links:
http://www.restlet.org/downloads/testing
Maven repositories:
http://maven.restlet.org is updated on the 1st and 15th of each month
http://maven.noelios.com is updated daily with new artifacts (access reserved to subscribers)



