RESTFul Bridge Between Java And .NET Released
Noelios Technologies, the France-based consulting services firm, is shipping a new version of the Restlet open source project, a lightweight REST framework for Java, that includes the Restlet Extension for ADO.NET Data Services. The effort is a collaboration between Microsoft and Noelios Technologies and it makes it easier for Java developers to take advantage of ADO.NET Data Services.
ADO.net Data Services is a framework to enable creation of RESTFul services and clients that consume them. From MSDN,
The ADO.NET Data Services framework consists of a combination of patterns and libraries that enable the creation and consumption of data services for the web. The goal of the ADO.NET Data Services framework is to facilitate the creation of flexible data services that are naturally integrated with the web. As such, ADO.NET Data Services use URIs to point to pieces of data and simple, well-known formats to represent that data, such as JSON and ATOM (XML-based feed format).
Jean-Christophe Cimetiere, a Technical Evangelist at Microsoft wrote an article detailing the collaboration effort, in which he describes how the ADO.net Data Services, formerly known as “Project Astoria”, can be used to expose relational and non-relational data via RESTful services.
In order for the system to understand and leverage semantics over the data that it is surfacing, ADO.NET Data Services models the data exposed through the data service using a model called the Entity Data Model (EDM), an Entity-Relationship derivative. This organizes the data in the form of instances of "entity types", or "entities", and the associations between them.
For relational data, ADO.NET Data Services supports exposing an EDM model created using the ADO.NET Entity Framework. For all other (ie. non relational) data sources or to use additional database access technologies (ex. LINQ to SQL) a mechanism is provided which enables any data source to be modeled as entities and associations (ie. described using an EDM schema) and exposed as a data service.
More information about ADO.NET Data Services can be found here.
From the Restlet website, Restlet is a framework is a framework that helps developing RESTful client and server applications. The Restlet framework consists of a Restlet API that provides the core set of contracts to register a Restlet implementation. These implementations could be open source projects or commercial products. According to Cimetriere,
The Restlet Extension for ADO.NET Data Services provides a high-level client API that extends the Restlet Framework’s core capability by providing access to remote data services that are hosted on ASP.NET servers or the Windows Azure cloud computing platform.
Java developers use the extension’s code generator to create Java classes that correspond to data entities exposed through ADO.NET Data Services. The Java application is then able to access the data via a simple method call. The runtime components in the Restlet engine and the extension take care of the communication between the Java client application and ADO.NET Data Services.
The overall architecture can be described via the following component diagram (source)
Other java interoperability efforts lead by Microsoft include Apache Stonehenge (practical SOA/Web services interoperability across platforms), Azure .NET Services SDK for Java. More information about the Java-.net interoperability efforts can be found at www.interoperabilitybridges.com/projects/tag/Java.aspx.