[Update: more details from Noelios Technologies as well as a complete tutorial]
Much of the work that we have collaborated on in the past several months has been centered around PHP, but rest assured we have been focused on other technologies as well. Take Java, for example. A big congratulations goes out this week to Noelios Technologies, which just released a new bridge for Java and .NET.
Noelios Technologies 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 extension makes it easier for Java developers to take advantage of ADO.NET Data Services.
Microsoft collaborated with the France-based consulting services firm and provided funding to build this extension to the Restlet Framework. It’s always very exciting for me, as a French citizen living in the United States, to witness French companies like Noelios collaborating with Microsoft to develop new scenarios and bridges between different technologies. Noelios specializes in Web technologies like RESTful Web, Mobile Web, cloud computing, and Semantic Web, and offers commercial licenses and technical support plans for the Restlet Framework to customers around the world.
ADO.NET puts data sources within reach
For those who are relatively new to ADO.NET Data Services, it is a set of recently added .NET Framework features that provides a simple way to expose a wide range of data sources, such as relational databases, XML files, and so on, through a RESTful service interface. Formerly known as “Project Astoria,” ADO.NET Data Services defines a flexible addressing and query interface using a URL convention, and supports the usual resource manipulation methods for data sources, including the full range of Create, Read, Update, and Delete operations.
Microsoft Visual Studio 2008 SP1 and the upcoming Visual Studio 2010 fully support ADO.NET Data Services, including the capability to create and consume data services directly from the development environment. If you want more information about ADO.NET Data Services, look here. I recommend the “How do I…” videos; the links are located on the right side of the page.
A closer look at the Restlet Extension architecture
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.
REST makes it all possible
The Restlet Extension project is a great example of the infinite possibilities that REST affords. Java developers using the Restlet Extension for ADO.NET Data Services can now connect their applications to a .NET platform with relative ease, which means more choices for Java developers and new opportunities for Microsoft.
Looking beyond just the Java-Microsoft bridge, REST is a truly compelling architecture model for enabling interoperability between all kinds of different platforms, regardless whether the applications are run on premise or in the cloud. We’ve recently presented several scenarios that leverage REST (“Viewing government data with Windows Azure and PHP: a cloud operability scenario using REST,” and “A new bridge for PHP developers to .NET through REST: Toolkit for PHP with ADO.NET Data Services”), and we plan to continue sharing similar scenarios between various technologies.
A big thanks to Stève Sfartz, Jerome Louvel and Thierry Boileau
A very big thanks goes out to my French colleague Stève Sfartz in the DPE Division at Microsoft France. Steve was instrumental in initiating and driving the collaboration during the Restlet Extension project. He has been working for quite some time with Noelios Technologies Cofounders Jerome Louvel and Thierry Boileau using the Restlet Framework to illustrate interoperability scenarios between Java and Microsoft technologies using REST.
If you’re interested in being part of or contributing to the Restlet community, visit www.restlet.org/community/.
And if you want more information about Java interoperability, take a look at the list of Java-Microsoft interoperability projects at www.interoperabilitybridges.com/projects/tag/Java.aspx. It includes Apache POI (OpenXML Java API), Apache Stonehenge (practical SOA/Web services interoperability across platforms), Azure .NET Services SDK for Java, and Eclipse Tools for Silverlight.
The Restlet Extension for ADO.NET Data Services represents yet another bridge added to our growing list of interoperability solutions, and we are very happy about this!
—Jean-Christophe Cimetiere, Sr. Technical Evangelist
Zend Technologies today launched the Simple API for Cloud Application Services project, “a new open source initiative that allows developers to use common application services in the cloud, while enabling them to unlock value-added features available from individual providers.”
The initial goal of the project is to provide a set of programming interfaces for PHP developers to facilitate the development of applications that have basic cloud storage needs.
The project’s announcement includes a quote from Microsoft’s Doug Hauger, General Manager Windows Azure: “Microsoft is pleased to continue to work with Zend and join efforts with other contributors to this project. The Simple Cloud API is an example of Microsoft’s continued investment in the openness and interoperability of its platform. We’re excited to see how this project will foster adoption of cloud computing platforms by PHP developers and hope that many of these developers are encouraged to use Windows Azure.”
What is the Simple API for Cloud Application Services
Cloud computing platforms are new technologies and the platform vendors are innovating rapidly in their platforms to address varied customer needs. Some projects do not require the richness provided by vendor-specific APIs and can instead be built with simple APIs that provide an abstraction layer across different platforms. From a developer’s perspective, simple APIs make it easier to write code that remains the same whatever the destination platform.
This project is pragmatic. The first available implementation of the “Simple API for Cloud Application Services” is provided by Zend who will ship the “Zend Cloud” adapters that will target storage services such as:
It encourages PHP developers to explore cloud computing by writing code that leverages commonalities across different platforms’ storage services. As the developers become proficient and learn each platform, they will be further inclined to learn vendor-specific features to take advantage of richer functionality.
Microsoft’s contribution to the project
A few months ago, Microsoft started to work with Real Dolmen on a Windows Azure SDK for PHP developers. This SDK has been submitted to the Zend Framework (see “July CTP of Windows Azure for PHP Released and support in Zend Framework”) and it now forms the basis of Microsoft’s contribution to the Simple Cloud API project.
PHP developers will be able to program against Windows Azure using the Simple Cloud API to access the main features of Window Azure Storage:
For PHP developers who need to use Windows Azure specific features that are not included in the Simple Cloup API (e.g. Windows Azure storage supports transactions unlike some other cloud storage services) they will be able to combine Simple Cloud API code with Windows Azure storage specific code using the dedicated Windows Azure SDK for PHP. The goal is to allow “developers to use common application services in the cloud, while enabling them to unlock value-added features available from individual providers”.
The Channel9 video provides more information on this announcement:
Windows Azure is an open platform. We believe that initiatives like the Simple Cloud API will benefit adoption of cloud computing platforms by developers. The Simple Cloud API gives PHP developers more choices and for Microsoft this is a great opportunity to encourage them to use Windows Azure.
Let’s meet at www.simplecloud.org
Vijay Rajagopalan, Principal Architect, Microsoft Corp.
This week Microsoft is participating in the first Gov 2.0 Summit produced by O'Reilly Media, Inc. and TechWeb in Washington D.C., to explore how technology can enable transparency, collaboration and efficiency in government. Today, we're pleased to present a cloud interoperability scenario which takes advantage of the recently announced Toolkit for PHP with ADO.NET Data Services to view public government data with Windows Azure and PHP.
As you may recall, few weeks ago, Microsoft announced the Toolkit for PHP with ADO.NET Data Services, a new bridge enabling PHP developers to connect to .NET using a RESTful architecture. Today, we've published a cloud interoperability scenario where a Windows Azure application exposes data in a standard way (XML / Atom) and how you can simply “consume” this data from a PHP web application. This scenario takes advantage of the Open Government Data Initiative (OGDI), another piece of Microsoft's Open Government effort, built on the foundation of transparency, choice and interoperability.
A few words about OGDI
The Open Government Data Initiative (OGDI) is a project launched in May by our colleagues from the Microsoft Public Sector Developer Platform Evangelism team
In a nutshell, Open Government Data Initiative (OGDI) is a cloud-based collection of software assets that enables publicly available government data to be easily accessible. Using open standards and application programming interfaces (API), developers and government agencies can retrieve the data programmatically for use in new and innovative online applications, or mashups.
Data and Platform Interoperability scenario in the cloud
Publicly available government data sets have been loaded into Windows Azure Storage, and the OGDI team built a data service that exposes the data through REST web services, returning data by default in the Atom Publishing Protocol format. The OGDI application uses ADO.NET Data Services to expose the data. On the diagram below you see the list of available data sets: http://ogdi.cloudapp.net/v1/dc.
This list is then accessed by the data browser web application built in PHP. To build the PHP applications the Toolkit for PHP with ADO.NET Data Services was used by simply generating the PHP proxy classes that would match the data sets exposed through REST at this URI: http://ogdi.cloudapp.net/v1/dc.
Trying out the sample application
The PHP Data browser sample application is deployed on Windows Azure. Although it is not required and it could be deployed on any PHP compatible hosting environment, this sample application showcases a PHP application running on Azure. You can view or download the source of this sample from the demo site: http://ogdiphpsample.cloudapp.net/
The OGDI Service demonstrates some of the possibilities of the Azure platform and you can try the OGDI interactive SDK http://ogdisdk.cloudapp.net to understand how it works, as it features a similar data browser developed in .NET.
This sample application illustrates how you can simply create applications leveraging data and platform interoperability (PHP & .NET). The Toolkit for PHP with ADO.NET Data Services makes it easier for PHP developers to interoperate with .NET, including Azure which supports multiple internet protocols, including HTTP, REST, SOAP, and XML. This scenario is just one among many we are working on using RESTful architectures. Stay tuned, more to come soon!
Finally, here’s a recap of related resources:
For more information on Microsoft's Open Government efforts and participation at the Government 2.0 Summit, check out: FutureFed, the voice of Microsoft's Federal division.
Jean-Christophe Cimetiere - Sr. Technical Evangelist
Active Directory Federation Services (AD FS) 2.0, formerly known by codename “Geneva” Server, passed SAML 2.0 interoperability testing. You can read more on the Forefront team blog in today’s post: MSFT Identity and Access news: Forefront Identity Manager RC1 and ADFS 2.0 SAML interoperability
Jean-Christophe Cimetiere - Sr. Technical Evangelist