The Bing Search and Decision engine offers a comprehensive Application Programming Interface (API) that enables developers to programmatically submit queries to and retrieve results from the Bing Engine. If you are a PHP developer and looking for a way to easily enable the search feature on your website, you are in luck. Today, we’re pleased to introduce a new Bing Search Library for PHP,available on Codeplex.com, http://bingphp.codeplex.com, under an open source BSD license.
For this project, Microsoft worked with Cal Evans, a seasoned PHP developer. The goal was to build this library following the appropriate PHP conventions and coding styles. So, Cal designed and wrote the code of the library for us, and he has just posted a tutorial with some sample code for PHP developers to quickly get started. Try it!
The Bing Search Library for PHP is a wrapper on top of the Bing API, which provides a simple way to submit queries to and retrieve results from the Bing Engine.
There are many ways to take advantage of the Bing API, since the API offers a choice of protocols from JSON, plain XML, to SOAP. So if you want to dig deeper into the Bing API, start here: http://www.bing.com/developers. In fact readers of this blog might recall the Bing 404 Web Page Error Toolkit for PHP project we presented a few months ago. This project focused on helping PHP developers use Microsoft Bing search engine to manage the 404 error (Page Not Found) on their web sites.
As always, if you have feedback, questions, or feature requests, please join us on the project site: http://bingphp.codeplex.com
Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Strategy Team
Microsoft today announced the availability of two new open source projects that complement technical documentation recently released for Microsoft Outlook Personal Folders (.pst). From the press release:
“Combined, the documentation and tools advance interoperability with data stored in .pst files, reflecting customer requests for greater access to data stored and shared in digital formats generated by Microsoft Outlook and for enhanced data portability.”
The two open source projects, available on Codeplex.com under the Apache 2.0 license are the following:
To get more details about how these two projects came to life and understand what type of scenarios they enable, watch this video with Daniel Ko, development manager in the Outlook team.
If you’re specifically interested about potential scenarios enabled by the SDK, watch this segment of the video:
-- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft
Today at Tek-X during the “Tips & Tricks to get the most of PHP with IIS, and the Windows Azure Cloud” session, Microsoft showcased the new version of the Windows Azure Command-line Tool for PHP available for download under an open source BSD license at: http://azurephptools.codeplex.com/.
Announced in March 2010, the Windows Azure Command-line Tool for PHP enables developers to easily package and deploy new or existing PHP applications to Windows Azure using a simple command-line tool without an Integrated Development Environment (IDE). Developers have an option of deploying to the Development Fabric (a sort of local cloud for development and test) or directly to the Windows Azure Cloud. The new version of the Windows Azure Command-line Tool for PHP supports both Web and Worker service roles allowing developers the freedom to customize their applications to their needs (Web roles are the internet facing applications, and Worker roles are for background tasks).
This project initially was started as the result of feedback we received from PHP developers who are using various IDEs (or none), who told us that a command-line tool would be a great addition to the Windows Azure Tools for Eclipse project.
To get familiar with the tools you can read this post New command-line tool for PHP to deploy applications on Windows Azure or watch this video on Channel9 where I presented the new features and demo how to deploy a PHP application (using WordPress with SQL Server Build) to Windows Azure:
This demo is actually an abstract of the “Welcome to the Cloud: Windows Azure Command-line tools for PHP” webcast I presented last Friday as part of the PHP Architect webcast series. The entire recording will be available soon at: http://www.phparch.com/. Stay tuned!
As always, if you have feedback, questions, or wishes, please join us on the project site: http://azurephptools.codeplex.com/.
Additional links:
· Running WordPress on Windows with SQL Server: http://wordpress.visitmix.com/
Continuing our efforts on improving interoperability between PHP and Microsoft technologies, we have created an example showcasing a new plugin for WordPress that allows WordPress developers to take advantage of the storage capacity of Windows Azure. This plugin enables WordPress to use Windows Azure Storage Service to host media for a WordPress-powered blog.
The plugin, developed by Microsoft, is now available as an open source project from the WordPress repository: http://wordpress.org/extend/plugins/windows-azure-storage/
About Windows Azure Storage and Content Delivery Network (CDN)
Windows Azure Storage enables applications to store and manipulate large objects and files in the cloud via blobs, manipulate service state via tables, and provide reliable delivery of messages using queues. You can read more about Windows Azure Storage here.
If you want to manage your media (images or any file offered for download) in a consistent way and share them across multiple websites then you might want to consider using Windows Azure Storage blobs. Windows Azure includes a service called Windows Azure Content Delivery Network (CDN) which offers developers a solution for delivering high-bandwidth content. Windows Azure CDN has currently 18 locations globally (United States, Europe, Asia, Australia and South America). Windows Azure CDN caches your Windows Azure blobs at strategically placed locations to provide maximum bandwidth for delivering your content to users. The benefit of using a CDN is better performance and experience for users who are farther from the source of the content stored in the Windows Azure Storage blobs. You can read more on the Windows Azure Team Blog and on MSDN
Windows Azure Storage from PHP with a WordPress plug-in.
The Windows Azure Storage plugin for WordPress allows developers running their own instance of WordPress to take advantage of the Windows Azure Storage services, including the Content Delivery Network (CDN) feature. It provides a consistent storage mechanism for WordPress Media in a scale-out architecture where the individual web servers don’t share a disk. Note that this scenario goes beyond WordPress and could also be very compelling any other web application where there’s a need to load balance across a number of web servers without shared disk.
The plugin is a regular WordPress plugin developed in PHP, and can be deployed on any WordPress instance (running on Windows or Linux - requires at least version 2.8.0 and tested up to version 2.8.4). The plugin uses the Windows Azure SDK for PHP to handle the interactions with Windows Azure.
Once the plugin is installed you’ll see it in the WordPress plugins management interface.
Once the plugin is activated and configured, which simply consists of setting your Windows Azure account information and a few options, you can use it directly through the blog post editor:
To include an image in the post, just click on the “Azure” icon. The following screen will pop up:
From here you simply pick the image you want to include.
When the plugin is installed, you can choose to have all media managed through the WordPress Media Management interface or during imports to also go to Windows Azure blob storage. Then it shows up in the regular list of media elements and not just under the Azure button.
Once you have published the post you can see that your image lives on Windows Azure Storage, although your WordPress applications can be hosted anywhere else.
Give it a try!
The plugin is now available from the WordPress repository: http://plugins.svn.wordpress.org/windows-azure-storage/. Register for your Windows Azure account (try for free till July 31, 2010 with the Introductory Special), install the plugin, and get started!
Feel free to share feedback!
Additional links
From the Microsoft Web Platform Team Blog:
“ Today Microsoft is announcing that the Windows Web Application Gallery and Web Platform Installer (Web PI) now supports the download of the new phpBB release, which supports Windows, IIS and SQL Server. Version 3.0.7-PL1 of phpBB takes advantage of a number of features for PHP applications on the Microsoft Web Platform with Windows, IIS and SQL Server including: SQL Server Driver for PHP 1.1, provides key interoperability for PHP applications to use SQL Server for data storage. Released under the OSI approved MS-PL license and available on CodePlex. WinCache Extension for PHP 1.0.1, provides increased performance for PHP applications on Windows and IIS. Released under the BSD license, is available from the PHP Extension Community Library (PECL) website. “
“ Today Microsoft is announcing that the Windows Web Application Gallery and Web Platform Installer (Web PI) now supports the download of the new phpBB release, which supports Windows, IIS and SQL Server.
Version 3.0.7-PL1 of phpBB takes advantage of a number of features for PHP applications on the Microsoft Web Platform with Windows, IIS and SQL Server including:
More on the Microsoft Web Platform Team Blog: Announcing phpBB: Available for the Microsoft Web Platform.
Microsoft has just released the source code of the .NET Framework Client Libraries for OData. The source code is under the Apache 2.0 license and available for download on Codeplex: http://odata.codeplex.com
From Microsoft’s OData/WCF Data Service Team blog:
“This release represents the OData team’s continued commitment to the OData protocol and the ecosystem that has been built around it. We have had requests for assistance in building new client libraries for the OData protocol and we are releasing the source for the .NET Framework and Silverlight client libraries to assist in that process”
This new contribution goes along with the many other OData libraries (like Java, PHP, iPhone) that we’ve released and also strengthens our commitment to enable Data interoperability through the OData protocol.
For more details, please visit www.odata.org.
-- Jean-Christophe Cimetiere, Sr. Technical Evangelist
Today at the http://www.aiimexpo.com/conference-info/sharepoint-2010-summit-aiim-expo, Eric Swift (@eswift), General Manager of SharePoint Marketing announced that Microsoft will be shipping the CMIS Connector for SharePoint as part of the SharePoint Administrator Toolkit by the end of June 2010.
The Content Management Interoperability Services (CMIS) specification defines a means of accessing enterprise content management (ECM) repositories independent of their platform or language. CMIS is on its way right now to OASIS for advancement through its rigorous standards development process. Microsoft, along with IBM, EMC and several other content management vendors developed the specification in response to customer requests for interoperability between multiple document repositories.
For further details on CMIS read the announcement of the CMIS Connector for SharePoint on the Microsoft Enterprise Content Management (ECM) Team Blog.
Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft
Hi, I’m Ashay Chaudhary, Program Manager at Microsoft. Today at DrupalCon SF 2010, we are reaching an important milestone by releasing a Community Technology Preview (CTP) of the new SQL Server Driver for PHP 2.0, which includes support for PHP Data Objects (PDO). Alongside our efforts, the Commerce Guys, a company providing ecommerce solutions with Drupal, is also presenting a beta version of Drupal 7 running on SQL Server using this new PDO Application Programming Interfaces (API) in the SQL Server Driver for PHP 2.0.
The SQL Server Driver for PHP 2.0 with PDO will enable popular PHP applications like Drupal 7 to use the PDO “PHP style” and interoperate smoothly with Microsoft’s SQL Server database.
For PHP developers, this will reduce the complexity of targeting multiple databases and will make it easier to take advantage of SQL Server features (like business intelligence & reporting) as well as SQL Azure features (like exposing OData feeds).
About the SQL Server Driver for PHP 2.0 CTP with PDO
My team and I have been working hard over the past months to introduce PDO into the existing SQL Server Driver for PHP. The decision to add PDO was a direct result of the feedback we received from the PHP community.
The new version now supports the API defined by PDO. Of course, we continue to maintain the existing SQL Server native API. To provide better support and consistency for both API, we are creating a common layer including the core features shared across the two API, as shown on the architecture diagram below:
The SQL Server Driver for PHP 2.0 CTP is available for download at the Microsoft Download Center (installation through Web PI available as well: http://www.microsoft.com/web/drupal/). Don’t be surprised if you don’t find the source yet, we have packaged only the binaries for now. Rest assured that the SQL Server Driver for PHP 2.0 will be available as a shared source project (like current version 1.1) in our next public release. We expect the final version in the second half of this year. Stay tuned!
Porting Drupal 7 to SQL Server using the SQL Server Driver for PHP 2.0
Putting the SQL Server Driver for PHP 2.0 to the test of real world applications is a key aspect of our development process. We started a discussion with the Commerce Guys (a company providing ecommerce solutions with Drupal) who were interested in porting the upcoming version 7 of Drupal to SQL Server, and quickly realized we had a great opportunity to partner with the Drupal community. So Microsoft provided some funding and initial support through technical specifications and early builds of the driver for Commerce Guys, in order for them to independently develop updates to the code for a contributed module for Drupal 7. After initial success with Drupal 7 working with SQL Server, Commerce Guys disclosed that the Views module, one of the most popular contributed modules for Drupal, also works well with SQL Server.
If you happen to be at DrupalCon SF, join us for the “Drupal 7 and Microsoft SQL Server” session (this afternoon at 4:15pm) to see it in action.
For more details about the work Commerce Guys did on Drupal 7, I invite you to read their blog: http://www.commerceguys.com/about/news/
Give it a try, send your feedback
Microsoft is very excited about this new milestone and the early success we’ve seen with Drupal 7. Having reached this important milestone, we are not done yet and continue to polish it up. We plan to ship CTPs on a regular basis, so stay tuned!
Of course, we appreciate feedback, which you can submit by visiting our SQL Server Driver for PHP forum or by visiting SQL Server’s Connect site.
Ashay Chaudhary Program Manager, SQL Server Driver for PHP http://blogs.msdn.com/sqlphp/
This week I was at SugarCon 2010, the CRM conference. SugarCRM, one of my partners in the Interop Vendor Alliance (IVA), is a leading provider of open source customer relationship management (CRM) software. SugarCon, is its global customer, partner and developer conference held April 12-14, at The Palace Hotel in San Francisco, California. Microsoft along with Red Hat, Talend and Zend helped sponsor the conference. The event had a heavy cloud theme this year and the tagline “The Cloud is Open” was used.
SugarCRM has over 6,000 customers and more than half a million users rely on SugarCRM to execute marketing programs, grow sales, retain customers and create custom business applications. There was quite a different mix of people from business to technical there, about 800 attendees or so. There was a good vibe to the show and it had a focus on the attendees and partners. There was lots of interest in different topics; CRM, Social Networking, Open Source, Cloud Computing; private and public … and Microsoft’s presence at the event …. which brings me to why we were there …
The keynote “Open Source and Open Clouds” was presented by SugarCRM CEO Larry Augustin who shared new product announcements and welcomed special guests to the stage to discuss how open source software is driving the next generation of CRM and Cloud services. Rob Craft, Microsoft’s Senior Director, Cloud ISV was one of the guest joining Augustin on stage. Craft shared with attendees how Microsoft is investing strongly in cloud services. “This is a deep, substantive long term investment from Microsoft,” he said. He shared the global presence Azure, being run from six datacenters in San Antonio, Chicago, Dublin, Amsterdam, Singapore and Hong Kong, with other datacenters coming ready too. Microsoft is guaranteeing 99.9 percent uptime for Azure, with customers getting a 10 percent rebate if this falls to over 99 percent uptime or 25 percent if it falls below that figure.
Larry then went on to demonstrate a beta of SugarCRM, a PHP application, running on Windows Azure and calling data from SQL Azure. Dan Moore, Sr. Platform Strategy Advisor, and Bhushan Nene, Principal Architect, from the Cloud ISV Team gave a follow-up session, “Introducing the Windows Azure Platform”, to the keynote with an overview of the benefits of launching cloud applications on Azure. We saw excitement from the conversations we had with several SugarCRM channel partners who attended the sessions and stopped by the booth. The Windows Azure platform is receiving enormous support and excitement throughout their ecosystem!
Along with the keynote and session, we had a booth in the exhibition area which saw quite a bit of traffic as well as a Microsoft Cloud Room where we discussed various benefits to the the Windows Azure platform and interoperating with Microsoft technologies. At the room I presented a session on “Data Tools for Microsoft and SugarCRM” where I showed our new interoperability bridge, SQL Server Reporting Services SDK for PHP: adding business intelligence and reporting features to PHP applications, and showing off an early preview of an IVA lab we will be releasing soon. This lab basically is a demonstration of SugarCRM data being called by SSRS reports using the PHP SDK and displaying results in the SugarCRM reports dashboard. The power of composing rich reports from SugarCRM data plus using the freely available SQL Server Express advanced services from Business Intelligence Studio or Visual Studio is a powerful combination. The picture below gives a glimpse of the demonstration in action. Look out for an announce on this blog shortly!
Other notable highlights of the event …
“A Family Tree for Humanity” where author and population geneticist, Spencer Wells of National Geographic will take us on an epic journey that spans the globe, using DNA to trace the migration routes of our ancient ancestors and revealing the incredible tapestry of human diversity created along the way. I found the science behind it and the presentation fascinating. I would recommend taking a look at the Genographic project.
There was also a rip roaring tech talk by Newsweek reporter Daniel Lyons in “He’s Back! The Real Future of Technology with Fake Steve Jobs”.
Best of all, the SugarCon party on day one was an evening at the acclaimed California Academy of Sciences in Golden Gate Park. If you are a geek and one who loves biology this is a must see destination. We got to wine, dine and party there, a huge plus!
I would like to thank my friends from SugarCRM for welcoming us, especially Jason Nassi, Sr. Director of Product Management, who is my liaison from SugarCRM to the IVA; and Igor Spivak, Director of Product Management, Cloud Services for letting me use the live SugarCRM SQL Azure in my session demo. Thank you guys! I’m looking forward to more great interoperability stories we can tell together.
Jas Sandhu , Interoperability Vendor Alliance manager, @jassand
Wouldn’t it be awesome if PHP developers building reporting applications could use the wider range of ready-to-use tools and services to create, deploy, and manage their reports. Today the SQL Server Reporting Services SDK for PHP turns that scenario into a simple reality enabling PHP developers to easily create reports and integrate them in their web applications.
Announcing the SQL Server Reporting Services SDK (Software Development Kit) for PHP
I’m excited to announce that the first version of the SQL Server Reporting Services SDK for PHP is available today on Codeplex, as an open source project: http://ssrsphp.codeplex.com.
This SDK enables PHP applications to simply utilize SQL Server Reporting Services, Microsoft’s Reporting and Business Intelligence solution. Best of all, these scenarios can be done using the free (as in “free beer”!) SQL Server 2008 Express with Advanced Services edition. This edition includes the SQL Server 2008 Express database engine as well as graphical administration tools and the Reporting Services server components for creating, managing, and deploying tabular, matrix, graphical, and free-form reports (SQL Server 2008 Express Advanced can be downloaded here).
SQL Server Reporting Services SDK for PHP in a nutshell
The SDK offers a simple Application Programming Interface (API) to interoperate with SQL Server Reporting Services. The API provides simple methods to perform the most common operations:
The API is built on top of the SQL Server Reporting Services Web Service API using SOAP as the underlying communication mechanism. PHP applications can then manage reports, parameters, credentials, and output formats with SQL Server 2008 Reporting Services.
The design of the report is created with Business Intelligence Development Studio which comes with SQL Server 2008 Express with Advanced Services. Developers can alter the style of the output formats to fit their needs.
From Reporting Services in SQL Server Express Edition,your access to remote data sources (SQL Server, OLEDB, ODBC, MySQL, Oracle and others) goes through a SQL Server Express instance installed on the same server, using either:
The Hello World demo scenario
Using the SQL Server Reporting Services SDK for PHP, we’ve created a simple scenario showcasing how to manage reports within a PHP application. This sample is part of the package that you download from the project site.
The application displays first the list of reports that are available:
Once the user picks a report, he can select parameters which have been predefined for the report, for example:
For the developer, it’s fairly simple to build such form. It requires only to call the “GetReportParameters” method provided by the SDK and then parse the result and associate the appropriate HTML controls. Here’s a snippet (the full Hello World demo is part of the SDK download):
Finally, when the user validates its choices, the report is generated on the server side and returned to the PHP applications, which does the final processing to display the information in the context of the application. Here the HTML output for our sample report:
Join the conversation
Today, I’m actually presenting the SDK at the Jump In! Developer Web Camp event underway in Zurich. I’m sure I’ll get a lot comments from the PHP experts attending, But what about you: does the SQL Server Reporting Services SDK for PHP respond to your scenarios? Of course, feedback is welcome!
To join the conversation, please visit SQL Server Reporting Services SDK for PHP on Codeplex: http://ssrsphp.codeplex.com.
Claudio Caldato, Senior Program Manager, Interoperability Strategy Team.
I’m writing this from EclipseCon in San Jose, where Shawn Minto, from Tasktop Technologies and I presented the first results of efforts to enhance Eclipse on Windows 7. We are very excited to see this contribution being part of the next release (3.6) of the Eclipse Integrated Development Tool (IDE).
This project was jointly initiated by Microsoft and Tasktop Technologies and announced last October at the Eclipse Summit in Germany. Microsoft is providing funding, technical & architectural assistance and Tasktop is implementing and contributing code. The goal is to improve Eclipse to take advantage of new features in Windows 7. This will empower eclipse developers to be productive and have a compelling experience developing applications using Eclipse on Windows 7. For this first phase, we have been focusing on the user interface components to allow Eclipse developers to take advantage of the new user interface features offered by Windows 7, directly from the Eclipse IDE and from any desktop applications built on top of the Eclipse platform.
For more details, watch this video where Shawn Minto and I discuss the project and show a demo of the results.
New features in next release of Eclipse
In order to include the improvements in the Eclipse development cycle, the features were introduced in the Eclipse Bugzilla as follows:
Let’s take look at some screenshots showing the final results:
Taskbar Jump Lists: in this screenshot, the Mylyn plug-in for Eclipse exposes frequently used features:
Taskbar Progress integration: the new Windows 7 progress bar is integrated in various part of the Eclipse IDE (the progress bar is also part of the application icon in the taskbar and shows progress horizontally across the icon):
Note that these enhancements are made at the Standard Widget Toolkit (SWT) level, which means that developers will see the enhancements in the Eclipse IDE, but they can also take advantage of them in any desktop applications built on top of the Eclipse Rich Client Platform (RCP).
As always, feedback from the developer community about “most wanted” features is very important to us. So if you have ideas, don’t be shy about speaking up—we would love to hear them.
The broader Microsoft and Eclipse picture
The collaboration between Microsoft, the Eclipse Foundation, and the Eclipse community may seem unusual for some people. But let’s be pragmatic, our mutual customers, partners and developers want greater choice and opportunities. We do believe that improving interoperability between our technologies is actually helping all parties. I encourage you to check Mike Milinkovich’s opinion on this as well.
To close, I’d like to give you a quick update on other Eclipse related projects, which we are working on with Soyatec:
Cheers!
--Vijay Rajagopalan, Principal Architect
Microsoft was once again at the Open Source Business Conference (OSBC) held at the Palace Hotel in San Francisco on March 17-18, 2010. As Platinum Sponsors, there was good presence by quite a few softies at the event, as attendees and delivering sessions.
Stuart McKee, Microsoft's National Technology Officer for the United States, delivered a keynote address to attendees titled "Open Source at Microsoft: Meeting customer, developer and partner needs through a diversified ecosystem". McKee talked about the opportunities for open source applications interoperating with Microsoft platforms. From Windows, to SharePoint to Azure, and how increased flexibility and choice for the consumers of these technologies is good for everyone involved. McKee shared how internally Microsoft is changing and responding to a call from customers who demand a diverse ecosystem that includes open source. McKee gave examples of software from Apache, the MySQL database, and PHP all running on Microsoft's Windows Azure cloud platform. Microsoft in recent years has been endorsing open source via efforts such as sponsoring the Apache Foundation. The Microsoft-backed CodePlex Foundation, meanwhile, was set up last year as an effort to enable collaboration between open source communities and software companies. “More than ever, we are continuing to improve interoperability with open source products and platforms in addition to working with customers looking to optimize their mixed IT environments. Interoperability is important not only for the business world, but also for state and local governments. That's because the business of government is really about outcomes, regardless of how solutions are created," McKee said.
Brian Goldfarb, the Director of Developer Platforms at Microsoft, participated on a panel titled "The Web Is the Platform," along with Dion Almaer from Palm and Dave Mcallister at Adobe. Mark Driver from Gartner moderated. It was an interesting discussion with most parties agreeing on the web as a platform that provides opportunity for companies to build business models, use different approaches and how open source plays a very strong part in that vision. Goldfarb shared how the Microsoft /web site for the Microsoft Web platform, features 23 open source applications out of a total of 25 applications. They include software from popular open source companies such as Acquia Drupal, Wordpress, Joomla, Umbraco, DotNetNuke, You can find them and more listed in the gallery.
It was also great to see the folks at Geeknet at the Bird-of-a-Feather (BOF) talking about how Open Source on Windows is steadily climbing. 82% about 350,000 projects are Windows compatible and that is not a small number and fabulous news for those of us working with diverse languages and in mixed environments. These guys know something about the community considering they run sites like SourceForge, Slashdot, ThinkGeek, Ohloh, and freshmeat with over 40 million geeks visiting them.
Other notable presentations …
Tim O’Reilly, who is always fun to listen to, in a thought provoking session title “The Real Open Source Opportunity”, talked about how the future is about data and open access to it. It will be interesting on seeing how all the systems share and make sense of all the signal from the noise. I feel the work we are doing with OData.org and the cloud can play a big role on helping make this happen.
Justin Erenkrantz, the President of the Apache Software Foundation, which we are working on a few things on, gave a presentation on “Writing and Distributing Software "the Apache Way" which should make it’s way up on his talks links soon.
Matt Aslett, Analyst at The 451 Group presented “From Support Services to Software Services – The Evolution of Open Source Business Strategies” around research regarding the best ways to make money from open source software and combining commercial and community interests.Matt, if you’re reading this, it was nice chatting with you at lunch!
Jono Bacon's session 'Unwrapping The Community Manager Talk" was one to catch and I’m looking forward to getting his slides too. At the same time as Jono’s session Matt Asay had a panel session too, and there was some nice rivalry on who would fill their rooms first :) btw Who won? Jono, where are your slides?
It was great to also see partners from the Interop Vendor Alliance, WS02 (nice to see you Jonathan and Devaka!) and Red Hat too!
Tweets about OSBC provide interesting commentary!
I’m looking forward to EclipseCon in Santa Clara next week, where we’ll share some more news around interoperability with open source projects. Maybe I’ll catch you there?
Jas Sandhu , @jassand
I’ve just finished my MIX10 session (“Building PHP Applications using the Windows Azure Platform”) where I announced the new Windows Azure Command-line Tools for PHP Community Technology Preview (CTP). The tools are available under an open source BSD license and can be downloaded at: http://azurephptools.codeplex.com/
In a nutshell, these tools enable developers to easily package and deploy PHP applications to Windows Azure using a simple command-line tool without any Integrated Development Environment (IDE). This project is actually the result of feedback we received from many PHP developers who are using various IDEs (or none), who told us that a command-line tool would be a great addition to the Windows Azure Tools for Eclipse project.
The tools assist with creating new applications or converting existing PHP applications to Windows Azure and by creating the deployment package (.cspkg) and Configuration file (.cscfg). They will let developers deploy to the local Development Fabric or the Windows Azure Cloud for production.
The tools offer a simple command-line interface with a few parameters to customize your deployment:
From the developer point of view this is an easy three step process:
Your PHP application is ready to run on Windows Azure!
To see the tools in action, watch this Channel9 video where I demo how to convert and deploy a simple PHP application to Windows Azure.
Wouldn’t that be cool to have more ways to unlock your data and free it from applications silos? Today at MIX10, we presented about how Open Data Protocol (OData) can contribute to a more programmable web through demos consuming a Netflix OData feed in various scenarios. We also announced a series of new and updated OData SDKs for PHP, Java, Objective C (iPhone & Mac,) and JavaScript (AJAX and Palm WebOS). The SDKs can be found on the www.odata.org website.
OData SDKs for PHP, Java, Objective C (iPhone & Mac,) and JavaScript (AJAX and Palm WebOS).
Today we are announcing a new version of the OData SDK for PHP (previously called Toolkit for PHP with ADO.NET/WCF Data Services). This version includes new features like the capability of handling large result sets of data using an automated paging mechanism and a new sample built on top of an OData feed exposing the Netflix catalog, which we are covering in detail in this blog post. Link for more detail on the OData SDK for PHP.
We also announced today the new OData SDK for Objective C which facilitates the development of applications for iPhone and Mac OS X connecting with OData services. This early version is a Community Technology Preview (CTP) and it supports read operations only and it has been tested on a limited set of scenarios. The download includes a sample iPhone application to browse the new NetFlix OData service hosted in Azure.
Link for more details on the OData SDK for Ojective C Community Technology Preview (CTP)
Finally, Noelios has just updated the Restlet Extension for OData – a set of tools and libraries for Java. Read Jerome Louvel’s post Restlet supports OData, the Open Data Protocol for more details. Noelios has also released a new detailed tutorial for developers who want to access OData services in Java.
The list of OData SDKs is available at http://www.odata.org/developers/odata-sdk.
About Open Data protocol - oData
In essence, the purpose of the OData is to feed the web with more consumable data and give the developers and entrepreneur more power to create new scenarios.
OData enables data integration across a broad range of clients, servers, services, and tools. OData builds on a few conventions, popularized by AtomPub, to using REST-based data services. These services allow resources, identified using Uniform Resource Identifiers (URIs) and defined in an abstract data model, to be read and edited by web clients using simple HTTP messages. For more details, consult the protocol documentation on the OData site where you will also find a list of services and products that are already using OData.Read "Open Data for the Open Web" by Doug Purdy for more perspective on OData.
The Netflix demo scenario
Today at MIX10, Doug Purdy demoed how you can quickly build a simple application consuming OData feeds, with Silverlight and also showed a demo running on the Palm webOS leveraging the OData JavaScript library. We’re following up, using the OData SDK for PHP and the OData feed exposed by Netflix, we’ve built a web application that allows users to search through the Netflix movie archives.
The demo starts with a search form with multiple pull-down menus you can use to narrow the search for titles in the catalog. To keep the demo simple, we limited on purpose the set of the fields that could be used to build an advanced search on the OData service. We actually use only the “Genre” and “Language” options which are prepopulated with values coming from the Netflix OData feed and the “Name” (movie title):
Once the user has selected his criteria and hit search, the PHP application calls the Netflix OData feed through a simple method call, highlighted below:
And then a list of corresponding titles is returned by the Netflix oData feed. The result set is filtered and sorted by the Netflix service; you just have to display the data in a pretty HTML page:
Netflix’s OData backend runs on Windows Azure and SQL Azure to produce the OData feeds. OData being an open specification, there are many ways to build a “data producer”. Here are a few applications and services exposing OData feeds:
The complete list of currently available solutions is here: http://www.odata.org/producers. We clearly expect to see more OData producers coming for various platforms and languages.
How did we build the sample application?
You can watch the following Channel9 video with Claudio Caldato demoing and explaining the PHP sample. Claudio has been instrumental in driving the development of cross platform OData SDKs and building the OData community with Microsoft partners.
Using the oData SDK for PHP to consume an OData feed is really quick and easy. You have to consider two main steps:
1. Generating the proxy classes: the SDK includes a tool that will read the definition of the OData Service and create the corresponding PHP proxy classes. It will create one class per collection that is exposed by the service. You can see here all the collection available in the Netflix service:
2. The next step is to write the code for application logic. Your code will call the PHP proxy classes so that you can easily program against the OData.
The process is very similar with all the oData SDKs whether it is for PHP, Java, Objective C (iPhone & Mac), or JavaScript (AJAX and Palm WebOS). They all work the same way. To summarize, here’s the OData SDK for PHP architecture diagram which shows the key steps and elements:
We’ve been working hard to get OData support on as many platforms as we can so a developer on any platform can both consume and produce these feeds. It’s only the beginning of the journey, and you can expect more to come. Of course, feedback is welcome!
To join the conversation, please visit www.odata.org.
Additional information to bookmark, two MIX10 sessions:
I’m Paul Cotton, Group Manager, Web Services Standards and Partners, in the Interoperability Strategy Team. I’m in charge of a team that works on web services standards and interoperability. My team is involved in W3C, OASIS, WS-I, Apache and ISO/IEC JTC1 and cooperates with the vendor and user communities to advance interoperability of the WS-* specifications. In addition, I am co-chair of the W3C HTML Working Group that is developing the next version of HTML.
The Web has grown significantly over the last decade based largely on the interoperability of the W3C HTML4 Recommendation. HTML forms the backbone of interoperability on the Web and the specification is being evolved at the W3C as part of the HTML5 effort. Along with many other companies and individuals, Microsoft is contributing significant resources and expertise to work with the W3C to ensure the success of the HTML5 efforts (see this blog post [http://blogs.msdn.com/ie/archive/2010/03/09/Working-with-the-HTML5-Community.aspx]).
I had a chance to sit down last week with Philippe Le Hégaret who’s a staff member of the W3C, to discuss Microsoft’s view on HTML5 interoperability and our work in the HTML WG. Please read the minutes of the interview on the W3C blog: “Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group
Paul Cotton
We have just published a new Lab on InteropVendorAlliance.org titled Remote Desktop Interoperability Lab.
This lab explores scenarios for establishing Remote Desktop connections between Macintosh and Windows based machines.
It gives me the opportunity to welcome Aqua Connect to the Interop Vendor Alliance (IVA). Aqua Connect is a leading solution provider of connectivity between Windows and Macintosh. They have been a great partner to work with, and we are excited to show the results of our partnershiop in this lab. A big thank you to Ronnie Exley and the Aqua Connect team for their participation.
The lab demonstrates how to establish remote desktop connections between Macintosh and Windows based machines:
As part of its development of a Mac terminal server, Aqua Connect obtained a license from Microsoft for the Remote Desktop Protocol (RDP, more detail here) and integrated the protocol into their solution. Using the protocol documentation that Microsoft had made publicly available, on its developer website (msdn.microsoft.com), Aqua Connect took advantage of the access Microsoft provided to its Interoperability Lab facilities, as well as key Microsoft RDP engineers, to develop a bridge between Windows and Macintosh systems. The result is that any Windows machine can now connect (with the Remote Desktop Connection client) to a Mac with the Aqua Connect Mac Remote Desktop installed.
Further details on the lab are available on the www.InteropVendorAlliance.org site:
Jas Sandhu, Interoperability Vendor Alliance Manager
@jassand
Recently I’ve been chatting with quite a few developers out there who are looking to get their PHP applications working on the Cloud. Many are exploring different options and trying to navigate all the offerings available. One of your choices may be Windows Azure. Our team, all who actively blog here, in partnership with the product team is working very hard to make Windows Azure the most interoperable cloud platform yet.
Microsoft has built Windows Azure as an open platform which offers choice for developers. You can run multiple languages including .NET, Ruby, Python, Java, or for the purposes of this post, PHP! You also have the option of running tools like Microsoft's Visual Studio or the Open Source based IDE, Eclipse, that simplifies the life of the developer. You can build applications which can run and consume any of the Windows Azure platform offerings and even those from other clouds. There is also the ability to connect to servers that you run yourself, whether under your desk, nearby offices or your datacenter as part of the composite applications built. Windows Azure is standards based, interoperable and supports all the commonly used internet protocols such as HTTP, XML, SOAP and REST. Using these popular protocols we have a commitment to users and their information so as to make data portability real. The image below provides a glimpse of all the parts working together in helping make this real
If you use Eclipse, you’re already most of the way there and I am going to illustrate how you can get some simple PHP code up on the Cloud using the Windows Azure Tools for Eclipse project which was developed with the partnership of Soyatec, an active contributor to the Eclipse community. This project is a feature rich open source PHP application development environment in Eclipse that enables development and deployment of PHP applications to Windows Azure. The windowsazure4e plug-in builds upon the PHP Development Toolkit (PDT) and integrates Web Tools Platform (WTP) to provide a complete toolkit for Windows Azure Web Application development.
Simply the project does a few things that accelerates getting a cloud based project up …
First, make sure you have the prerequisites detailed in this web page which are all publicly available . I would recommend using the the Web Platform Installer to get the free versions of SQL Server 2008 Express and Microsoft Visual Web Developer 2008 Express Edition with SP1. You can find these as choices in the Web Platform tab under Database and Tools in the installer. It’s quick, easy and again free!
These versions will work with the Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010) and will provide the necessary hooks so that your Eclipse IDE can take advantage of the cloud. The same download link also has instructions for making sure you have the right settings for your development system including turning on features usually off by default. There is also a handy MSDN page for getting started with the Windows Azure SDK if you are looking for more details and want to review the documentation. If you plan on deploying on the cloud then you will want to go to the Windows Azure Getting Started page and find the best option for you.
Once you have these in place you can get started with your Eclipse setup. If you haven’t downloaded Eclipse already and since the IDE is built with Java, you will first need to get a current version of the Java Development Kit (JDK) or Java Runtime Engine (JRE), available at the Java download site. Anything v1.5 and above will suffice. Then you can go ahead and download Eclipse. I have had good success with the Galileo version aka PDT 2.1 SR-1 All In Ones / Eclipse PHP Package, available at this link. Test the IDE to make sure it launches and also make sure you have a connection to the internet. If you can hit a web page, you’re pretty much good to go!
Okay, let’s launch the Eclipse IDE and head to the Help menu item and select “Install New Software” as with the image here,
In the Available Software, Click Add... button, this will bring up a pop-up dialog, use http://www.windowsazure4e.org/update for the location and you can enter something descriptive of your choice in the Name field, Windows Azure Tools for Eclipse is used here.
Select All available sites. If the list of categories doesn't contain the entry Windows Azure, you need to restart eclipse. Select Windows Azure PHP Development Toolkit and click Next button.You may also want to select the other check marks if you are interested or you may add them later from the same menus.
In the next dialog, check Windows Azure PHP Development Toolkit and click Next button.
Then read carefully the license agreement. If you accept all conditions, select I accept... option and click Finish button. The IDE will then do some thinking and shortly will start downloading and installing the required jar package. When finished installing, it will pop-up a dialog, click Yes button to restart your Eclipse for the changes to take effect.
To check the plugin installation is successful, you can select Help->About Eclipse. This window will verify that you have the right build of Eclipse for PHP Developers and the Build version you installed with. In the next dialog box, click Installation Details,
select Installed Software option, you will see Windows Azure PHP Development Toolkit in the Name list along with any other options you may have chosen before. See the screenshot below.
Another way to verify this is that there will be Windows Azure menu item, right next to Help, with some tools that help in working with Windows Azure in PHP.
Congratulations you’ve just installed Windows Azure Tools for Eclipse! Now let’s write a PHP application and get it running on the Cloud.
If you haven’t already Created or Assigned a workspace folder for Eclipse do so now. I have created a folder in my user dev hierachy but it can be anywhere on your machine where you have space for your projects.
Now you will want to change the perspective to PHP Windows Azure, by going to Window menu bar itemand then selecting Open Perspective and Other sub item. The PHP perspective is usually set as default and also available from the same menu item. For now just click on Other ….
In Open Perspective panel, select PHP Windows Azure
In the PHP Windows Azure perspective, Create a new PHP Windows Azure Project. By selecting the File from the menu bar and then New, and Windows Azure Web Project
This will launch a new window title PHP Azure Project where you will be able to create and title your new project. Provide a Project Name, I’ve titled mine HelloPHPInfo, as PHP developers you probably know where we’re going with this. You will also want to click the Create new project in workspace dialog button if you haven’t already and make sure the Data Storage Options dialog button is set to None as we’ll not be calling any storage for this example. Then click Finish, if you hit next don’t worry you’ll get some additional info, you can just click Finish or Back.
Before we go on we’ll need to start the Development Fabric if it isn’t already running, right-click its icon in the system tray and select Start Development Fabric Service. To view Development Fabric UI, right-click its icon in the system tray and select Show Development Fabric UI
There should be no WebRole(s) deployed within Development Fabric.
We will now go back to Eclipse and Web Role in local Development Fabric, from Eclipse menu-bar. First go the PHP Explorer tab, pick either of the projects so they are selected (e.g HelloPHPInfo or HelloPHPInfo_WebRole, I picked the latter) and then select the Windows Azure menu bar and the Run in Development Fabric menu item.
The service will then start with a Progress Information/Project in Progress window will show up with some information and then it will launch you default web browser and present the default document index.php on the next available port. By default it will be the URL http://127.0.0.1:81/index.php . It will also open an explorer window for the project you created, in this case HelloPHPInfo. I went into the index.php file in the HelloPHPInfo_WebRole folder and modified the automatically generated file’s <H1> tag and included Hello just to make sure that it’s my version. You can do something familiar. It also runs the phpinfo() command too as you would typically do when checking to see if your PHP installation is configured properly and information like version, the location of your php.ini, as you can see it’s in your Eclipse workspace directory as the other files such as the service definition which we will get a little into later.
If you open the Development Fabric UI from the Windows Azure icon in the systems tray you will find that the tree on the left panel will have Web Role deployment instances set within ServiceConfiguration.csfg showing everything running using the local development fabric on your machine.
Okay we now have our PHP application running on our local developer fabric. Let’s deploy it to the cloud and run this PHP application and service remotely using Windows Azure Storage Account. This is where the Window Azure account you set up comes in. First you will need to create a Windows Azure Service Package. Again go to your project and pick either the project or the webrole (HelloPHPInfo or HelloPHPInfo_WebRole) and then pick the Windows Azure menu, and select Publish Application to Windows Azure Portal menu-item. This action will open a portal to Windows Azure.
We’ll still have the Development Fabric running and it is necessary to cleanup to create a Windows Azure Service Package, select OK button to proceed.
and you soon have a Service Package created with the build results and a Windows Explorer will open the HelloPHPInfo workspace folder and you will see two new additions to the project. The first is a ServiceDefinition.csx folder and the other is a HelloPHPInfo.cspkg service package file.
the tool then opens your default web browser to Windows Live Sign-In in order to access your Windows Azure account. You will want to sign in with the credentials you have created and it will direct you to the Windows Azure Portal.
If you then click the Windows Azure link on the left navigation pane it’ll will expand to give you a + New Service, which when click will allow you to Create a Service. Here you can setup a public service name, I picked HelloPHPInfo, and a Check Availability to see if the name is available. I also selected the first dialog button since I don’t have any hosted services or storage accounts for this project. You may want to do this if you have them and things like custom domains etc. I also selected the Region, to be Anywhere US. You can pick the one that is most applicable to you. All you then have to do is click the Create button on the bottom of the page.
The section of the next page that you will be interested is Hosted Service and you will want to select Deploy to Staging. If you only see the Deploy button for Production, then you want to click on the middle separator bar with the arrow highlighted below.
The next page Staging Deployment, will ask you for the two packages mentioned earlier, you will want to pick the Upload a file from local storage dialog buttons for the Application Package, in this example, HelloPHPInfo.cspkg and for Configuration Settings, ServiceConfiguration.csfg which can both be picked from the workspace folder you set for the project with the Browse buttons. Then set the Service Deployment Name with a label. I have called it HelloPHPInfo. Click Deploy to start the process of copying your files up for deployment on the Windows Azure Cloud.
Wait for a few minutes for the deployment to complete where it may take you to a blank page with something like a button that states “Processing, Please Wait”. Click the Run button on the next page and the WebRole status will change from Stopped to Initializing to Busy.
When the WebRole status is Busy, then the Web Site URL is clickable, if clicked before, it will give a web page that cannot be displayed. The service has also got a unique address for the URL and the Deployment ID. When moved to Production, you will find that the handy or friendly name that you selected earlier is used. In this example the final production URL will be http://HelloPHPInfo.cloudapp.net.
Clicking on the Web Site URL gives the following page which renders exactly as the example we did using the local Development Fabric. There are some noticeable differences though such as the path of the php.ini compared to the local deployment.
Congratulations you are Cloud Computing!
Now you can pretty much deploy any PHP application up to the Window Azure Cloud as in this tutorial. We created a simple PHP Windows Azure Web Project. Built and Ran PHP Windows Azure Web Project within the Development Fabric on our local machine and then we went on to deploy and Run PHP Windows Azure Web Project within the Windows Azure Cloud.
I hope you found this helpful and we look forward to hearing from you on your experiences. Please send feedback!
[UPDATE: 05/24/2010, Two open source projects to facilitate interoperability with Outlook .pst data files]
Customers of Microsoft Office often work in heterogeneous IT environments, so their need for interoperability among disparate business systems is critical. They expect their trusted vendors to work together to make it happen, and Microsoft has demonstrated a strong commitment to the pursuit of interoperability through collaboration with industry players, open access and transparency when it comes to our intellectual property in this area, participating in the creation and maintenance of industry standards, and building our products in a way that makes interoperating with them easier by design.
Ever since we released Microsoft Office 2007 SP2, we have been releasing tools and publishing tens of thousands of pages of documentation to help developers (including competitors) interoperate with the various products in the Office suite. Today we took another big step in our commitment to open access and transparency, delivering some highly anticipated documentation we’ve promised over the past year or so:
This kind of transparency provides exciting possibilities for our customers and partners. We’re proud of the work we’ve done in this area, and you can count on Microsoft to continue its vigorous pursuit of interoperability through a comprehensive approach, of which transparency is one of the keystones.
Paul Lorimer, Group Manager, Microsoft Office Interoperability
Related items:
I wanted to share this Feature Story that we have just posted on the Microsoft News Center:
[…]
Interoperability in the Cloud
Cloud interoperability is specifically about one cloud solution, such as Windows Azure, being able to work with other platforms and other applications, not just other clouds. Customers also want the flexibility to run applications either locally or in the cloud, or on a combination of the two. Microsoft is collaborating with others in the industry and working hard to ensure that the promise of cloud interoperability becomes a reality.
Leading Microsoft’s interoperability efforts are general managers Craig Shank and Jean Paoli. Shank spearheads the company’s interoperability work on global standards and public policy, while Paoli collaborates with Microsoft’s product teams as they map product strategies to customers’ needs.
Shank says one of the main attractions of the cloud is the degree of flexibility and control it gives customers: “There’s a tremendous level of creative energy around cloud services right now — and the industry is exploring new ideas and scenarios together all the time. Our goal is to preserve that flexibility through an open approach to cloud interoperability.”
Adds Paoli, “This means continuing to create software that’s more open from the ground up, building products that support the existing standards, helping customers use Microsoft cloud services together with open source technologies such as PHP and Java, and ensuring that our existing products work with the cloud.”
[..]
Read the complete story: Microsoft Brings Cloud Interoperability Down to Earth
As the Interoperability Executive Customer (IEC) Council moved into its 4th year of existence and embarked on tackling interoperability issues in new areas, we just published a whitepaper(PDF 1.25Mb) listing the discussions and major achievements by the council over the last 3 years.
This is the first time we have gone public with any of the operational details and results achieved by the council.
As a technical lead, running the day to day workings of this council, I will also like to thank all the member organizations, their CIOs and other technical leads and architects for their support and participation in this council. I encourage you to read comments from Council members in the following article: “Microsoft and Customer Executives Team Up to Improve Interoperability”.
These organizations spend a lot of time and effort in attending the meetings and providing us candid feedback on many of our strategies, products and technologies without which the council wouldn’t be able achieve what it has in these past 3 years. The council also sees a lot of engagements from many Microsoft product teams and other employees from various parts of the company but I would especially like to call out and thank Connie Dean, Meghan Raftery and Monty O’Kelley for their contributions over the last 3+ years.
The IEC Council is led by Bob Muglia, President of Server and Tools Business and his direct involvement is a major factor in its successful existence and ability to produce tangible results over the past 3 years. It plays a key role in influencing Microsoft’s overall strategy around interoperability and providing feedback on this important subject. As you will be able to readily recognize, many of the blog posts on this site and our work at www.interoperabilitybridges.com have been highly influenced by discussions taking place within the IEC Council. This is strictly by design.
All the information gathered from the IEC Council process has been categorized into areas of focus called “work streams”. Work stream efforts are led by executives from numerous Microsoft divisions and product teams who interact and partner with council members’ technical architects and CIOs to identify and develop solutions within these specific areas. These are:
We would love to hear some feedback on the topics discussed, results achieved and in general on interoperability issues being addressed through the workings of this council.Looking forward to more productive discussions and positive results from the IEC Council for many more years.
Kamaljit Bath, Principal Program Manager
Zend Technologies Inc. has announced the availability of Zend Framework 1.10, which among other new features includes support for Microsoft Windows Azure cloud services. We’re very excited about this key milestone, which is the result of a fruitful collaboration! This particular project started last year when we announced the Windows Azure SDK for PHP CTP release and upcoming support in Zend Framework. I also want to thank again Maarten Balliauw who has been a key contributor to the initial project.
With the new Zend Framework 1.10, by simply using the new Zend_Service_WindowsAzure component, developers can easily call Windows Azure APIs from their PHP applications and leverage the storage services, including Blob Storage, Table Storage and Queue Service, offering them a way to accelerate web application development and scale up on demand.
With this announcement, PHP Developers now have great choice when it comes to writing web applications targeting Windows Azure. Besides the Windows Azure SDK included in Zend Framework, there is Windows Azure SDK for PHP which is already prepackaged in Windows Azure tools for Eclipse and the more simpler Simple Cloud API.
Jean Paoli, General Manager Interoperability at Microsoft offered a comment about this announcement: “PHP developers find the Windows Azure platform compelling, Microsoft’s decision to contribute PHP-based Windows Azure components to Zend Framework helps demonstrate Microsoft’s commitment to openness and interoperability by providing greater choice and opportunity for Microsoft customers and partners.”
All of this is very well aligned with Windows Azure Interoperability approach www.windowsazure.com/interoperability in particular and the overall interoperability effort Microsoft is conducting around PHP (see http://www.interoperabilitybridges.com/projects/tag/PHP.aspx and http://www.microsoft.com/web/php)
Vijay Rajagopalan, Principal Architect
Do you know PHP and have data in a Microsoft SQL Server database? Well we have an application wizard that will make your lives a little easier. The project, open source and hosted on CodePlex, will help you build a simple CRUD (Create, Read, Update, Delete) application that works against Microsoft SQL Server, SQL Azure and Windows Azure Storage. The application is installable on Windows and supports data navigation, paging, sorting and UI customization using simple CSS.
Here’s what you will need, a working PHP web server, a connection to the internet, a SQL Server 2005 or higher. You can also use the free version. “SQL Server Express” that is available for download and installable as part of the Web Platform Installer. As an added bonus you can also work against your Windows Azure Storage or SQL Azure database. Windows Azure tokens are available by registering for Windows Azure Services and redeemable at http://windows.azure.com
To begin download the wizard, open the.zip and install on your PC. There is a handy deployment guide that helps you get started. You will simply need to set up a database account with a username and password. Install the SQL Server 2005 Native Client DLL and the SQL 2005 PHP Driver 1.1 which will give you a .dll for the appropriate version on PHP you are running (5.2 or 5.3, thread-safe and non). Copy the appropriate .dll to your PHP extension directory (e.g. C:\php\ext) and add a reference to your PHP.ini file (e.g. C:\php\php.ini) to call the .dll, (e.g. extension=php_sqlsrv_xx_yyy.dll)
You will then want to use “SQL Server Management Studio” (ssms.exe) from the Start Menu (All Programs or Programs) or from C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE to create a new user and a database. The tutorials listed below are a quick way to get started
Following the steps above I created a login to my SQL Server, Created a database “sqlcruddemo” and a new table called “customer” and associated a database user “demo” to it. In the table I then created 3 columns. ID, set as a non-null integer and a “Primary Key” plus Firstname and Lastname both as variable character strings of length 50. This is how it looks like from the design tool.
Once you have the database set up you can run the file PhpSiteGenerator.exe either from the “PHP SQL Crud Application Builder” entry in your Start menu or from the Installation folder (typically C:\Program Files\PHP SQL Crud Application Builder). The splash page shows up as below. You will want to enter in the name of the database user you created (e.g. demo) and it’s password. Then click the button “Find Database” where it will bring down entries for the “Database” and “Table” drop down menus. I have selected the entries I created before (database “sqlcruddemo” and table “customer”) and the checkboxes for the columns (ID, Firstname, Lastname)
Hit the “Next” button to get to the second screen where you can set CSS styles for the table of the CRUD application. I decided to change the “.tblHeaderCell” tag, which sets the table headers, with a blue background-color and bold fonts. The CSS in the generated file, “style.css” and the form looks like …
Hitting “Generate Site” will yield the result in the following form, “index.php”, which I have populated entries using the “Create New” button which calls the “create.php” file also displayed in the browser below
You can use these generated helper php files and forms as the building blocks for the database driven application that you would like to write against SQL Server. As you can see most of the PHP code you need to manipulate data from SQL Server has been taken care for you.
Take a look!
Jas Sandhu Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team Twitter@jassand, FriendFeed@jassand
From the Silverlight Team blog: Moonlight 2 is now available
“We are pleased to announce the availability of Moonlight 2, an open source Linux implementation of Silverlight first announced by Microsoft and Novell in September of 2007. Moonlight is the first and only open source project that provides Linux users access to Silverlight content. Microsoft has provided Novell with access to its test suites for Silverlight, and provides Linux end users of Moonlight with free access to the Microsoft Media Pack, a set of licensed media codecs for video and audio. In addition, Microsoft and Novell are also announcing the expansion of their collaboration on Moonlight to include support for Moonlight implementations of Silverlight 3 and Silverlight 4. As part of the companies’ interoperability agreement, Microsoft will deliver new test suites and specifications for Silverlight 3 and 4 to Novell. “
Read the announcement on the the Silverlight Team blog: Moonlight 2 is now available.
Miguel de Icaza from Novell have some details as well:
Releasing Moonlight 2, Roadmap to Moonlight 3 and 4.
Internet Explorer 8 (IE8) shipped with a new feature for web users called Web Slices. You can learn more about web slices here. Essentially it lets you add enhanced links to your favorite bar that allow you to preview snippets of content from websites that you frequently visit without having to open up the page. It’s really useful to do little tasks like check on your web based Inbox, check the weather in cities you live or visit, traffic status, stock tickers, headlines, sports, the list goes on and on and you can check the IE add-on gallery for more examples of useful web slices and for inspiration. [UPDATE: if you’re into sports then check out web slices by Buzztap that showcases a whole bunch to keep you up to date, also see the blog post by Jon Box]
A web slice is content on a web page which a user can subscribe to. The content is then available from a button in the Internet Explorer 8 Favorite's toolbar. When the content is updated, the button glows orange to alert the user that there is new content. When the user clicks the button, they see a drop down window with the updated content of the web slice.
To enable Web Slices on your PHP web site. We have created a project, Web Slices and Accelerators for PHP that lets you get started quickly and the source is available on Codeplex too. The solution contains HTML and PHP samples to create web slices in Wordpress, Wikimedia and Facebook,, all popular php blogging, content and social sites that you may want to have your code interoperate with to get started. Download the package and unzip the file to a directory on your machine.
The code is based on HTML and XML and can be easily integrated into any other web site, framework or platform you may be working with. The markup is displayed in a client web browser and IE8 will discover and update content when it parses the code. Any web server can be used including IIS or Apache on Linux/Windows.
There are three things to mark content as a web slice. You will need specific CSS class names to start with; first, a div marked with a class equal to ‘hslice’; second, the div must have a unique id; third, a child element marked with a class equal to ‘entry-title’.
The HTML tags you use to structure your web slice are immaterial, the important thing is to specify the right CSS class names. We can create a PHP function to output this HTML structure. The function will accept a unique name for the web slice, a title and a string representing the content.
The code will render in your browser and when you hover over it, you will notice a green box around the content as well as a green button shows up next to your Home page button as illustrated below. You will only need to click on any of these buttons to get the dialog box that add this content to your favorites bar.
Another handy feature that web slices have is a built in reader which can display the first item of an RSS feed. The HTML is almost identitcal but instead of specifying an element with a class equal to 'entry-content', you create an anchor tag pointed to the content source. Note that you must specify an attribute rel='feedurl' and pointthe link to the URL of the RSS feed you choose to use.
We can modify our above PHP function to accept another parameter which specifies the feed URL too. Note that this example also includes a parameter for content, which is displayed on the page advertising the web slice. The content from the feed, however, will be the actual content to which a user subscribes to.
The following web slice was created using the above code with our Interoperability Blog RSS feed showing the first item on the list when this post was written.
You may already have content and or feeds on your website that could get a little spotlight today! It will also handy for your website users by using Internet Explorer 8 Web Slices. We hope that you take a look at the sample and please share your feedback!
Happy Coding!
I just flew back from the Microsoft Professional Developers Conference (PDC09) in Los Angeles. What a week, with a lot of announcements, surprises and achievements on multiple fronts. From the interoperability perspective, a lot happened too.
This PDC09 further demonstrates how Microsoft is making interoperability a priority and reality by demonstrating how − as an open platform − Windows Azure offers choices to developers. We’ve been able to show our progress with practical examples (like WordPress), additional technologies to run on Windows Azure (Tomcat, MySQL) and new SDKs/tools (like AppFabric SDK for PHP, Windows Azure Tools for Eclipse version 1.0). We’re on a journey, but it’s a significant milestone!
So let’s recap what happened:
Ray Ozzie’s Keynote: Ray announced more options for developers on Windows Azure with Tomcat(Java), memcached and MySQL. This was illustrated by Matt Mullenwag running a demo of Wordpress running on Windows Azure and followed by Martin Cron from www.ICanHasCheezburger.com who showed their new Wordpress-based blog http://oddlyspecific.com/ which uses an image management plug-in based Windows Azure storage.
Watch this video with Steve Marx (Technical Strategist in the Window Azure team) and Vijay Rajagopalan (Principal Architect in the Interoperability team) for an overview:
Refer to PDC sessions Building Java Applications with Windows Azure and Developing PHP and MySQL Applications with Windows Azure for more details.
-*-
Another interop demo: Domino's Pizza Java Tomcat-based application running on Windows Azure. Domino's Pizza showed up in a short video in the keynote where Jim Vitek, Domino’s Director of eCommerce stated: "We have to buy hosting infrastructure to meet our highest peak which is Super Bowl which is 50 percent above our next highest peak which is a typical Friday night. So there’s a tremendous amount of unused capacity in our hosting infrastructure that Windows Azure allows us to eliminate"Domino’s Pizza was also in Sumit Chawla’s talk at Web 2.0 expo demoing the scenario with Tim Wise from Domino's Pizza. Read this blog post for more details: “Domino’s Demonstrates Tomcat Site on Windows a Azure”. Sumit also made a few interoperability announcements from the #web2e expo floor. Check this PDC09 session as well: Lessons Learned: Migrating Applications to the Windows Azure Platform.
A dedicated Interoperability page on the Windows Azure portal: www.windowsazure.com/interoperability. You’ll find here the overview and links to resources which will enable various developer communities to leverage Windows Azure either as the primary cloud infrastructure or simply to extend their existing applications.
Windows Azure SDKs for PHP and Java and tools for Eclipse version 1.0 released: This release is the culmination our team’s year-long work with our partners for bringing core scenarios to life and a release that many of our customers & open source developers have eagerly been waiting for since our last CTP release at Eclipse Summit Europe. Watch this video with Maarten Balliauw, initiator of the project and Vijay Rajagopalan, for a quick overview:
New Interoperability Bridge: PHP developers get an SDK for the Windows Azure platform AppFabric. Windows Azure platform AppFabric (formerly called .NET Services) includes the Service Bus and Access Control services that provide infrastructure in the cloud to connect applications.
A new SQL CRUD Application Wizard for PHP: This tool enables PHP developers to easily generate PHP code that performs basic Create/Read/Update/Delete operations for Windows Azure Tables SQL Azure and SQL Server
Using Windows Azure Storage from Ruby: We met with Johnny Halife, Principal Architect from Southworks, who has developed a Windows Azure SDK for Ruby. Watch the video for a quick overview:
Apache Stonehenge demoed at PDC09: Kent Brown, product manager for WCF gives us an update and show a demo of the different StockTrader applications working together. Watch the video till the end, Kent unveils the mystery on why the project was called Stonehenge!
In case I missed anything (I’m sure I have) let me know, I’ll update the post.
[Update 11/23]
ASP.NET Ajax Library: the first project to be contributed to the CodePlex Foundation.More information on James Senior's blog: http://www.jamessenior.com/post/News-on-the-ASPNET-Ajax-Library.aspx
Last week we participated in the DII workshop that took place in Brussels.
Attendees included a variety of document-format experts from the ODF and Open XML worlds, including members of SC34 working groups, the OASIS ODF and OIC TCs, ODF and Open XML implementers, public-sector experts in interoperability and archiving, and others.
Dough Mahugh has the summary and nice photos.
A couple weeks ago, Microsoft was at ApacheCon. We reported the progress made on the Stonehenge project and presented the roadmap.
The goal of Apache Stonehenge is to provide a public forum to test the interoperability of WS-* protocols on different vendor stacks and to build sample applications that could provide best practices and coding guidelines for better interoperability. The main sample application, StockTrader has been implemented on .NET (by Microsoft), PHP (by WSO2), WSAS JAVA stack (by WSO2), Metro (by SUN Microsystems), Spring (by SpringSource). The latest version of StockTrader uses the WS-Security and WS-Trust protocols for claims-based authentication scenarios. This allows the end-users to be authenticated through an independent Security Token Service (STS) that is trusted by the bank and to pass that token to the broker to process the transaction.
This week at PDC09, we were demoing the project. I went to see Kent Brown, product manager for WCF and asked him to give us an update and show a demo of the different StockTrader applications working together.
Watch the video till the end, Kent unveils the mystery on why the project was called Stonehenge!
-- Jean-Christophe Cimetiere
Today I presented a session at the Web 2.0 Expo in New York called Cloud Computing with Windows Azure Using Your Preferred Technology. During my talk, I stepped the audience through a series of demonstrations in which non-Microsoft tools and programming technologies, such as PHP or Java, were used natively to create cloud computing solutions with the Windows Azure platform. I also had the exciting opportunity to debut new open source projects:
If you want more detail about these projects, just click the links above. There you’ll find additional information, including videos.
I was very fortunate to have Tim Wise from Dominos Pizza as a guest speaker in my session; he showed how Dominos dealt with the problem of handling peak website loads (like on SuperBowl Sunday) by using Windows Azure for scale-out. What makes the Dominos demo very interesting is that the Dominos web-application is a Java Application running on TomCat. A true testament to the interoperability of the Windows Azure Platform! Read this blog post for more details: “Domino’s Demonstrates Tomcat Site on Windows Azure”
I received some very interesting questions and feedback about these projects from those who attended my talk, so I want to extend a big thanks to everyone for their input. It’s been really nice to be at Web 2.0 and connect with real-world developers building next generation websites and applications.
--Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Team
As many of you know, most large web sites that feature lots of content often experience traffic that is looking for pages that either don’t exist or have been moved. But did you know that the percent of traffic that causes web servers to return a generic 404 error page or sitemap is as much as 2 to 10 percent? That’s an awful lot of viewers experiencing a dead end as a result of nonexistent or relocated pages.
However, the Bing 404 Web Page Error Toolkit for PHP, which was debuted at the Web 2.0 Expo in New York today, helps developers better manage 404 errors by dynamically creating a customizable page that contains error messages and search results that are seeded with relevant keywords from Microsoft’s Bing search engine. This page ultimately helps web site visitors move past the missing page and find the information they need.
The Bing 404 Web Page Error Toolkit for PHP is a customizable PHP application that replaces the default error page on Microsoft IIS or Apache web servers with Bing search results that are based on keywords that have been derived from the URL requested by the user. The toolkit is available on Codeplex as an open source project, and is released under the Microsoft Public License.
Say, for example, a user requests a page with the URL “someURLontheweb.com/interoperability/bridges,” and the URL doesn’t exist. The toolkit dynamically creates a page like this one:
The process works in this way:
You can see an overview of the architecture, the configuration steps, and a quick demo of the toolkit in the following Channel9 video:
The toolkit is very easy to install and use, with very little customization necessary. Feel free to check the project site on Codeplex http://bing404php.codeplex.com. As always your feedback is welcome!
.NET developers—note that a similar kit for ASP.NET is available for ASP.NET here.
—Sumit Chawla, Technical Product Manager/Architect, Microsoft Interoperability Team
You can see an overview of the architecture, the configuration steps, and a quick demo of the wizard in the following Channel9 screencast:
Here’s in a nutshell the logical architecture and flow of the wizard:
You can get more details about the project and download it from here.
--Sumit Chawla, Technical Product Manager/Architect, Microsoft Interoperability Team
I’m pleased to announce a new software development kit (SDK) that helps PHP developers easily leverage the Windows Azure platform AppFabric (formerly called .NET Services). This SDK is the third in a series, the first of which was released a year ago. Equivalent SDKs for Java and Ruby are also available and they have been updated to reflect the latest version of the AppFabric.
The AppFabric SDK for PHP is an open source project developed by Persistent Systems Ltd. and is available today on Codeplex: http://dotnetservicesphp.codeplex.com/. Microsoft is providing funding and architectural guidance for this project.
About the AppFabric
As part of the Windows Azure platform, the AppFabric includes the Service Bus and Access Control services. They are both web-based services that provide infrastructure in the cloud to connect applications. The Service Bus acts as an intermediary between applications and services. For example, developers can use it to bridge on-premise and off-premise applications or create composite applications. The Access Control service enables external users to connect to cloud resources using their external identities. It also enables developers to create user accounts that federate a customer's existing identity management system that uses the Active Directory service, other directory systems, or any standards-based infrastructure. You can learn more on the http://www.microsoft.com/windowsazure/dotnetservices/ pages. I suggest that you start with the video:
“What are the Access Control Service and the Service Bus?”
Understanding the function of the SDK
Before I delve any deeper into the technology behind the SDK, I want to address a question that we on the Interoperability Team are often asked:
“Why would I need a SDK to use the services offered by the Window Azure platform when the platform has been built from the ground up with interoperability in mind?”
Let me be clear: the Windows Azure platform natively supports multiple Internet protocols and standards (such as HTTP, XML, SOAP, REST, and ATOM, to name a few). So it does not require an SDK to build applications. However, the SDKs can boost developers’ productivity and provide guidance on how to use the platform. Think of SDKs as speed-dials to the Windows Azure platform!
Watch the video
To find out more about this project, watch the video with Sumit Chawla, Technical Product Manager/Architect from the Microsoft Interoperability Team. Sumit explains the SDK architecture, provides sample scenarios, and demonstrates the SDK in action with a sample PHP application.
[This video is posted on channel9 as well]
A typical scenario
Let me try to summarize in a diagram a typical scenario using the AppFabric SDK for PHP.
Imagine you want to provide access to an application or service living within the boundary of your enterprise, but you cannot (or don’t want to) open a direct communication to your application. You can use the Service Bus to act as the intermediary and communicate with third parties via buffers of messages. The Access Control service makes it easier to deal with the identities of your users and the associated level of authorization.
In the scenario represented by the diagram below, the PHP application that lives behind an enterprise firewall can share specific services with other applications—whether they run on Windows Azure or on other cloud infrastructures, and using a mix of technologies.
For more details on the SDK, feel free to visit the project site at http://www.dotnetservicesphp.com/, which includes tutorials, sample code, and a demo application that can help you better understand how to use the services in your own application.
Enjoy.
—Jean-Christophe Cimetiere - Sr. Technical Evangelist
We’ve worked very hard to release version 1.0 of three different projects today, all timed to coincide with the availability of the Windows Azure platform, which was also announced today at the Professional Developer Conference in Los Angeles.
This release is the culmination our team’s year-long work with our partners for bringing core PDC09 scenarios to life and a release that many of our customers & open source developers have eagerly been waiting for since our last CTP release at Eclipse Summit Europe. I want to thank our engineering partners Real Dolmen & Soyatec who have done a great job in such a short period of time to complete SDKs & tooling.
The version 1.0 of the tools & SDKs can be downloaded from the below location.
The Eclipse tooling & SDKs are fully compatible with Windows Azure that has just been released, so you can build services & web applications using PHP & Java in Eclipse and deploy them to the cloud today.
I am excited to share some of the new features that we have included in this version of the Windows Azure Tools for Eclipse:
Finally, the many new features of the Windows Azure SDK for Java are showcased in a new tutorial that illustrates how Java developers can take advantage of Window Azure in heterogeneous scenarios, with both on-premise and cloud Java applications. The tutorial is available at: http://www.windowsazure4j.org/learn/setup/
You may also have heard that Microsoft today announced new third-party technologies that can be run inside Windows Azure, including MySQL and Java (we’ll come back to this later!). All of these technologies take advantage of the automated service management capabilities in Windows Azure. These developments further deliver on Microsoft’s strategy to make the Windows Azure platform open and interoperable.
More interoperability treats are going to be announced at PDC, so stay tuned!
-- Vijay Rajagopalan, Principal Architect
Microsoft Silverlight, now at version 3.0, is a great way to create rich web applications that run on Windows, Mac OS and Linux. It provides an engaging, rich, safe, secure, and scalable cross-platform experience. Best of all you can run it off any web server (IIS, Apache for e.g.) and it can be called from any PHP website! Our team has released some helper samples to get you started. You can find the project on the Samples for PHP with Silverlight web page, and the project source can be found on Codeplex. The project includes sample HTML and PHP scripts.
How it works? Silverlight content is embedded into an HTML or PHP web page and in turn is transferred to the client browser where it is displayed by the Silverlight runtime (plugin) installed on the client computer. The architecture is shown on the right.
You will first create a Silverlight application file (.xap). We have provided a sample file, HelloPHPDevelopers.xap within the download or you can also create one for yourself by using another tech bridge we have, Eclipse Tools for Silverlight. Our colleague Steve Sfarz in France has a great post up on his site describing how to get started with it and create your own .xap file. This file is essentially a packaged archive or .zip file (try changing .xap to .zip and browse into it) with a collection of libraries that you have compiled for your application. If you follow the directions on the site you will end up with a button on a form with some custom actions.
You will then copy the .xap file you have created to a directory within your web site where you plan to host the Silverlight content. You will then want to create a custom HTML or PHP page that includes the following code in it’s body
That’s all you need to run the .xap file you created and you can swap it out to any other file Silverlight application you choose to use. If a user does not have the Silverlight plugin installed they will be presented with a 'Get Microsoft Silverlight' image and a link to install the plugin too. You should see an example of this in action right below this paragraph.
To do this dynamically from PHP, you can use the function below. This is handy if you have Silverlight content in more than one place on your website.
That’s all you need to take advantage of Silverlight as a content source for your PHP website. Have fun and share your experience back with us!
While out at Apache Conference last week in Oakland California. We had an opportunity to participate in the Lightning Talks, and it was a real break from the regular conference proceeding and business as per related to our contributions to the Apache Software Foundation.
The Lightning Talks was held during a reception with plenty of popcorn, beer and wine on Thursday evening, November 5. The talks are a lively, spontaneous ApacheCon tradition with speakers getting about 5 minutes to poke at each other, the projects, technology, community etc … and have a bit of fun!
Team Microsoft was led by Kent Brown, Product Manager for Windows Communication Foundation, was our singer, songwriter and guitar player, wrote ‘Incubator Blues’ inspired by his experience participating in the Stonehenge Project and working with the community. He was joined by his backup singers; Peter Galli, our open source community manager; Tanya Young, our chief cat herder at the conference; and me. It was great fun and we hope you enjoy it!
Video courtesy of Mladen Turk from Redhat, thanks!
Incubator Blues Lyrics by Kent Brown to the music of ‘Walkin’ Blues” by Robert Johnson
Woke up one mornin', said I want a project at Apache If you build it they’ll come, a great community! Woke up one mornin', said I want a project at Apache If you build it they’ll come, just how hard can it be?
People tell me, Incubator blues ain't bad It's the worst old feeling, I most ever had People tell me, Incubator blues ain't bad It's the worst old feeling, Lordie most ever had
They said we need a name, one that no one has used Cause if you’re not careful, then you’ll get us all sued! They said we need a name, one that no one has used Cause if you’re not careful, then you’ll get us all sued!
Hoped for volunteers; thought they'd code it for fun But soon found out, nothing’s done without funds! Hoped for volunteers; thought they'd code it for fun But soon found out, nothing’s done without funds!
I posted my spec, said jump on the boat But they said dude here you gotta take a vote. I posted my spec, said jump on the boat But they said dude here you gotta take a vote.
I asked for a server, place to hold all my stuff They said “You want Windows?” well that's gonna be tough I asked for a server, a place to host all my stuff They said “You want Windows?” well that's gonna be tough
Woke up this morning, to release version 22 That's when I knew I had them Incubator blues Woke up this morning, to release version 22 That's when I knew I had them Incubator blues
Old Seb found a problem; somethings wrong with the build Nothing gets by him, that guy is skilled! Old Seb found a problem; somethings wrong with the build Gotta do it again, oh man am I thrilled!
--------
By Jose Thomas
Hi, I’m Jose Thomas, Technical Solutions Director for Strategic Partnerships and Licensing at Microsoft.
Three years ago, Microsoft and Novell announced a partnership that was received with surprise and skepticism by the IT industry and customers alike. (Watch the press release at http://www.moreinterop.com/) What could possibly drive these two companies into a partnership considering the long history of competition behind them? The answer to this question is simple – customers and their complex IT environments.
Over the years, in search of efficiency and competitive advantage, customers started to look at the end promise of mixed source environments without always considering the plumbing that needs to be done to get disparate systems to work as one.
This is where the Microsoft and Novell Technical Collaboration comes into play. Engineers from both companies work side-by-side in our joint Cambridge, MA, lab working to test our interop solutions and ensure that they work better together. And both companies agreed to develop their products on open standards so that customers don’t have to worry about the plumbing. What started off as a lofty goal of four collaboration pillars has now grown to seven and continues to develop.
In this post, I’ll provide an update of the initial four areas that include Virtualization, Standards Based Systems Management, Standards Based Identity and Federation, and Document Format Compatibility. I’ll also review the incremental collaborations that include Moonlight, Linux Management for MS System Center, and Windows Accessibility.
Virtualization
Starting with Virtualization, the two companies agreed to optimize their respective Server OS platforms to take advantage of each other’s virtualization Hyper Visor. This was made possible by a set of VM adapters that were designed to broker communications between the XEN Visor and Windows Hyper V. These Hyper-call adapters, along with drivers for synthetic devices and storage were packaged up together and offered to customer as the Linux Integration Components. The Integration Components could be downloaded and copied into the Guest OS which when rebooted would experience the additional performance of being and enlightened or para-virtualized guest. This was a key differentiator for Novell as SUSE Linux is the only enlightened guest supported on Hyper-V. Most recently, Microsoft has contributed the Integration Components to the community thru a GPL V2 License
In the last six months, we’ve crossed the threshold into the Virtualization V2 solution. The key differentiator here is that SUSE Linux is an enlightened guest on Windows Server 2008 R2 with Live Migration. Now administrators can move Windows or Linux Guest across physical hosts without experiencing any downtime. With Live Migration supporting SUSE Linux, Microsoft and Novell have been able to narrow the perception gap in heterogeneous virtualization between Hyper-V and ESX from Virtualization Competitor, VMware.
Management
On the Management front, the initial agreement was for both companies to adhere to WSMan protocol standards for Systems Management. Both Microsoft System Center Operations Manager and Novell’s Zenworks Management Platform leverage WSMan protocols for server monitoring. But the innovation continued in the form of a Linux Management Pack that Novell release last year for Microsoft’s System Center. Novell’s Linux Management Pack extends the cross platform capabilities of System Center by monitoring seven key services within SUSE Linux. They include Samba, Bind/DNS, DHCP, LDAP, CUPS, Firewall, and NFS. Novell’s Linux management pack is currently only supported for SUSE Linux.
Identity and Federation
The next and most recent technical solution involves the Identity and Federation Pillar. The agreement was for both companies to adhere to WS* for directory and Identity Federation. This has been brought to life thru Microsoft’s AD FS (Active Directory Federation Service) and Novell’s Access Manager. Both of these products communicate thru the WS Federation Protocols include WS Trust and WS Security. Thru this federation model, customers can take advantage of AD based applications like Microsoft SharePoint in E-directory or other LDAP directory environments. We are currently developing a packaged solution that will extend SharePoint to non AD environments thru this AD FS – Access Manger federation model expected to ship in Q2 of CY10.
More Technical Interop Projects
I’ll spend this last section discussing the remaining technical projects which are Document Format Compatibility, MS SilverLight and Moonlight, and Windows Accessibility extended to Linux
As we celebrate the 3rd anniversary, we’re happy to see the technical collaboration between Microsoft and Novell is alive and thriving with most of the key milestones completed, and our teams continuing to collaborate for our customers’ IT future. With over 475 customers who are taking advantage of the benefits, there’s no doubt that these two companies are taking their customers’ needs seriously. The bridge that was built between the two companies, supported by a mutual respect for intellectual property, continues to deliver interoperability solutions that lead the way to the ever-complex, next generation data center.
Jose Thomas, Technical Solutions Director
I, along with other Microsoft colleagues, participated in the ApacheCon 2009 in Oakland, CA this week. This week also marks the 10th Anniversary of the Apache Software Foundation – so congratulations to the ASF and overall Apache community, which has steadily grown and sustained over the past decade!
Microsoft is now actively participating in several Apache projects and becoming part of the core community. ASF President, Justin Erenkrantz, talked about Microsoft’s contributions recently, as well. Peter Galli has also blogged on other activities that we were engaged in at the ApacheCon this year.
I have personally been involved in the Apache Stonehenge incubator project along with my colleague, Kent Brown, and it is good to see all the progress that we have made in the last 1 year. The original goal of Stonehenge was to provide a public forum to test the interoperability of WS-* protocols on different vendor stacks and to build sample applications that could provide best practices and coding guidelines for better interoperability. We are on a good path to achieving many of these goals, with the main sample application, Stock Trader, now having been implemented on .NET (by Microsoft), PHP (by WSO2), WSAS JAVA stack (by WSO2), Metro (by SUN Microsystems), Spring Web Services (by SpringSource).
The Stock Trader application has also been extended to use the WS-Security and WS-Trust protocols now for claims-based authentication scenarios. This allows the end-users’ access to be authenticated through an independent Security Token Service (STS) that is trusted by the bank and to pass that token to the broker to process the transaction.
Moving forward, the Stonehenge dev community wants to focus on building multiple micro-samples each focused on specific set of WS-* protocols. I think this is a great idea because it will allow vendors, developers and customers to quickly test and learn specific protocols of interest to them instead of going thru one big application that covers most of them. It also allows individual developers to work on different samples and turn them around faster. One other idea that is being talked about is having a dashboard available which can show the results of interop tests across different stacks in an easy to understand and consume way. This will be of great interest to our customers who can see the interop testing results across different versions of implementations of WS-* standards by different vendors. Kent Brown, along with Prabath Siriwardena of WSO2, did a technical session on Stonehenge and talked about future plans. There seems to be good consensus building around these future plans for Stonehenge.
In addition to the meetings to discuss the progress of Stonehenge with other contributors to the project, I had the privilege of meeting with the ASF executives and talk about other projects that Microsoft can work on. I look forward to doing more interop work and engagements with the Apache community over the next year. We also showed off several other interop-related projects that Microsoft has been engaged in recently:
The Toolkit for PHP with Virtual Earth aka Bing Maps is one of the useful tools that we announced and on our Interoperability Bridges site. The toolkit provides a set of files that allow you to connect your server running PHP to a set of client web browser files in JQuery, Javascript, JSON that in turn access the Virtual Earth or Bing maps services in the cloud via request/responses. That’s a whole set of technologies working together to ease developing solutions.
The database that connects to PHP can either be either MySQL or Microsoft SQL Server and the kit ships with both of these in two separate downloadable (.zip) hosted on the Codeplex project site. The open source code is also available from this site and contributors welcome to check it out or contribute to it.
This scenario involves PHP using MySQL. In this case I want to be able to create pins on a Bing Map from a simple form on a web page and a database that stores the location. You have the ability of storing it directly into the database via the service with both the latitude and longitude as raw data or you have a provided helper application that will search a common address and store it transparently in the database and render it on a map as well as do some basic input checking.
You will need to have a web server running PHP 5.2 or higher installed, you must have JSON enabled for previous versions. An internet connection and Javascript enabled in your browser will also be necessary. The phpMyAdmin tool will be useful in setting up the initial database schema. The entries would each have a title, description, latitude and longitude and a position ID as a key. This will all be delivered back as JSON through the returnresults.php service included in the solution. Modify the $serverName variable in this file with the database server name. $uid and $pwd will need to be modified appropriately to a valid database user and password. $dbname changed to the correct database where you created the entries earlier. You will now have a service that will retrieve and store the data for your map.
You may want to add some sample values at the beginning so that some new shapes can be rendered by the mapping service. The pushpin shape is handy here and comes as a default in the solution. You can either populate the locations from your database tool or you can use the example below.
It’s a good idea to change the first variables in map.js with the starting location of your map and the zoom value by changing the results below, set for Seattle WA and it’s surroundings. It will give you a nice user experience if you start with a default that shows where there is a good number of pins or your first entry.
Then create a new html file with in the headers
The following statement loads the map from the mapping service, the function is provided in maps.js
Create a placeholder in the body for the rendered map, the following div will do this for you,
Then bring up a form which calls the other functions also located in the file maps.js. The proper way is to use form that calls the FindAndAddPin function by passing a title, description and location. You can also render the map by itself by omitting this form if you don’t want users to be able to modify it. The service will call the mapping service to find the location provided and provide a callback with an array that includes the latitude longitude. This in turn is stored by the SavePushPin function through the returnresults.php service to the local store we created earlier.
For illustration, you can use the alternate form that calls the SavePushPin function directly and it will write the latitude and longitude via service to the database. It will render the location when the map changes in any way and the function MapChangeHandler, receives an event . That handler lives in the GetMap function in reference earlier. Panning and Zooming the mouse will do the trick and update the values.
Save the html file and put it in the same folder or reference it appropriately along with returnresults.php, map.js, map.css and jquery-1.2.6.js included in the solution package you downloaded on your website and view in your browser!
That’s all you will need to display a Bing map on your site with pre-populated locations using a little PHP, JQuery, JSON and HTML!
I’m very happy about today’s announcements at the Eclipse Summit in Ludwigsburg, Germany. Microsoft,Tasktop and Soyatec announced a series of projects to help developers using the Eclipse platform do two things: take advantage of new features in Microsoft® Windows 7 and Window Server 2008 R2 and reinforce Java and PHP interoperability with Windows® Azure and Microsoft® Silverlight.
In the first of the four projects, Microsoft is partnering with Tasktop Technologies, a leading Eclipse-based solutions provider from Canada, to create an Eclipse “next-generation experience” on Windows 7 and Windows Server 2008 R2, which shares the same user interface improvements. Tasktop Technologies will contribute enhancements to the Eclipse IDE, which will be available under the Eclipse Public License in Q1 of 2010.
In addition, Microsoft has collaborated with Soyatec, a France-based IT solutions provider, to develop three solutions:
Microsoft is providing funding and architectural guidance for all four of the projects. Let’s take a look at some of the details.
Eclipse “next-generation experience” on Windows 7
Microsoft and Tasktop will collaborate to extend the Eclipse Rich Client Platform (RCP), and in particular the Standard Widget Toolkit (SWT), to include the mapping of new features offered by Windows 7. This will allow Eclipse developers to take advantage of the new user interface features offered by Windows 7, directly from the Eclipse IDE and from any desktop applications built on top of the Eclipse platform.
Here are a couple of sample features that illustrate what I’m talking about:
Of course, these features and screenshots are the result of early prototyping, so they may not precisely duplicate the features that will be delivered during the first phase of the project. Microsoft and Tasktop Technologies are working together to establish the following list features, which are currently entered as bugs in the Eclipse bugzilla:
These goals mark the beginning of a momentous journey for us. We expect to complete the first phase in Q1 2010.
As always, feedback from the developer community about “most wanted” features is very important to us. So if you have ideas, don’t be shy about speaking up—we would love to hear them. I also encourage you to read Mik Kersten’s blog post (Mik is Tasktop’s CEO and project lead of Mylyn) to get his perspective on the project.
Windows Azure Tools for Eclipse for PHP developers
Microsoft worked with Soyatec on Windows Azure Tools for Eclipse, a project to produce an open source plug-in that enables PHP developers using Eclipse to create web applications that target Windows Azure. Windows Azure Tools for Eclipse provides a series of wizards and utilities that allow developers to write, debug, and configure for and deploy PHP applications to Windows Azure. It is available for download at www.windowsazure4e.org
Architecturally speaking, the plug-in leverages the PHP Development Tools (PDT) framework for enabling PHP developers with integrated developer experiences.
The plug-in also bundles the existing Windows Azure SDK for PHP, which we introduced a few months ago. In a nutshell, this SDK provides a speed dial for PHP developers who use the Windows Azure storage component, making it very easy to use the blob, queue and table data storage features. If you need more details about this SDK, just visit the project site at http://phpazure.codeplex.com/.
In the coming months, we’ll detail many of the additional features you’ll find in the Windows Azure Tools for Eclipse plug-in. For now, you can get a quick overview by watching a video we just recorded with Robert Hess for Channel9:
Windows Azure SDK for Java developers
First let me say that the Storage Explorer is really one of the coolest features of Windows Azure Tools for Eclipse—it allows developers to browse data contained in the Windows Azure storage component, including blobs, tables, and queues. Storage Explorer was developed in Java (like any Eclipse extension), and we realized during the Windows Azure Tools for Eclipse development with Soyatec that abstracting the RESTful communication aspect between the Storage Explorer user interface and the Azure storage component made a lot of sense. So this led us to package the Windows Azure SDK for Java developers as open source, which is available at www.windowsazure4j.org.
The Windows Azure SDK for Java enables developers to easily leverage Azure storage service in their Java applications. The logical architecture is very simple:
The Windows Azure Storage Explorer feature that is part of Windows Azure Tools for Eclipse illustrates perfectly a Java application using the SDK:
Eclipse Tools for Silverlight
The Eclipse Tools for Silverlight (Eclipse4SL) plug-in is an open source, cross-platform plug-in for the Eclipse development environment that enables Eclipse developers to build Silverlight Rich Internet Applications (RIAs).
We have developed subsequent beta versions, including the Mac version, since announcing the Eclipse4SL project in October 2008. So, I’m very excited to announce that Microsoft and Soyatec have released version 1.0 of the Eclipse Tools for Silverlight plug-in, which can be downloaded here: http://www.eclipse4sl.org/
Version 1.0 of Eclipse4SL targets Silverlight 2.0. We are working with Soyatec to add support for subsequent releases of Silverlight (Silverlight 3.0 was released in July). You can find a roadmap of the milestones that we have projected on the project site: http://www.eclipse4sl.org/#roadmap . Video demo walkthrough of the plug-in are available here and here (Mac version).
We are always working hard to find new ways to provide more choice and opportunity for developers in our ongoing journey to foster interoperability between Microsoft products and other technologies. We are hoping that today’s announcements give developers the additional choices and opportunities they’re looking for, and that they amount to yet another reason why choosing Microsoft platforms means keeping all the options open.
[UPDATE: 05/24/2010, Two open source projects to facilitate interoperability with Outlook .pst data files][UPDATE: 02/20/2010, New Office Documentation Now Publicly Available ]
Data portability has become an increasing need for our customers and partners as more information is stored and shared in digital formats. One scenario that has come up recently is how to further improve platform-independent access to email, calendar, contacts, and other data generated by Microsoft Outlook.
On desktops, this data is stored in Outlook Personal Folders, in a format called a .pst file. Developers can already access the data stored in the .pst file, using Messaging API (MAPI) and the Outlook Object Model—a rich set of connections to all of the data stored by Outlook and Exchange Server—but only if Outlook is installed on the desktop.
In order to facilitate interoperability and enable customers and vendors to access the data in .pst files on a variety of platforms, we will be releasing documentation for the .pst file format. This will allow developers to read, create, and interoperate with the data in .pst files in server and client scenarios using the programming language and platform of their choice. The technical documentation will detail how the data is stored, along with guidance for accessing that data from other software applications. It also will highlight the structure of the .pst file, provide details like how to navigate the folder hierarchy, and explain how to access the individual data objects and properties.
This documentation is still in its early stages and work is ongoing. We are engaging directly with industry experts and interested customers to gather feedback on the quality of the technical documentation to ensure that it is clear and useful. When it is complete, it will be released under our Open Specification Promise, which will allow anyone to implement the .pst file format on any platform and in any tool, without concerns about patents, and without the need to contact Microsoft in any way.
Designing our high volume products to enable such data portability is a key commitment under our Interoperability Principles, which we announced in early 2008. We support this commitment through our product features, documented formats, and implementation of standards. The move to open up the portability of data in .pst files is another step in putting these principles in action.
Over the past year, Microsoft Office has taken several steps toward increased openness and document interoperability. We’re proud of the work we’ve done around document interoperability, offering customers a choice of file formats and embracing a comprehensive approach that includes transparency into our engineering methods, collaboration with industry stakeholders, and shared stewardship of industry standards.
We’re excited about the possibilities created for our customers and partners by this kind of effort, and we look forward to continued collaboration with the industry in our pursuit of improved interoperability with Microsoft Office. Stay tuned.
Paul Lorimer, Group Manager, Microsoft Office Interoperability.
Related Items:
ZendCon 2009 just wrapped up on Thursday. It was held at the San Jose McEnery conference center from the 19-22 October 2009. The conference is a great opportunity to catch up on PHP development and deployment. There are intensive tutorials and crash courses where developers can get up to speed quickly and get certified. An Un-Conference runs alongside the main sessions in an informal setting and is mostly presented by the attendees themselves. An exhibit hall has a few partners on display including our Microsoft Website Spark team. There was something for those new to the technology, and plenty to chew on for experts, with plenty of opportunities to network and get to know one another.
ZendCon is put together by Zend Technologies Inc. They are also is known as ‘the PHP Company’ in the industry. The founders, Andi Gutmans (CEO) and Zeev Suraski (CTO) are key contributors to PHP and the creators of the core PHP scripting engine, the Zend Engine as well as the Zend Framework. The company provides important leadership for PHP and other open source communities, and plays a central role in the explosive growth of PHP.The conference also serves as an opportunity for the rest of the contributor community to have a real-world venue to connect, which is an important thing in itself as they usually interact virtually. You get to hear about some of the key developments and trends right from the source and not just as the sessions.
Microsoft has been participating in ZendCon since 2006 and so we weren’t exactly strangers to this community. At this conference however we had some key information that we wanted to share with the community. These projects can be found on our Interoperability Bridges page and are also on this blog. Featuring …
PHP on Windows has come a long way on Windows! At first it was a framework you had to compile from source and run on a web server, it is now installable from many popular ftp/websites like windows.php.net. You can easily get PHP downloaded along with the rest of your favorite apps and tools on your web development stack by using the Microsoft Web Platform Installer. It’s tiny and free! The install for PHP happens in minutes once you pull it down from the web. More and more applications that are frequently being adopted can be found on the Windows Web App Gallery. For example applications such as Drupal, a popular Content Management System and Wordpress, a popular Blog engine are available on there.
Getting PHP on Windows easily installed for development and deployment was one of the most frequently asked question by most PHP developers and administrators I have talked to. Many are shocked when they first download the installer and in a few check boxes have a fully configured PHP environment and application running. You can also modify and create custom deployments of your applications fairly easily and have the same environment running in your staging and production environments in a few mouse clicks too.
The keynotes are a big draw at the event … Andi Gutmans in his kickoff and state of the union keynote, ‘PHP at the Heart of Mainstream IT’, spent some time on the partnership with Microsoft. You can read a little more about what was said on Information Week and Visual Studio Magazine. We were also on a special Keynote Panel, Developing on the Cloud. Vijay Rajagopalan, Principal Architect on the team and a person who is very instrumental in developing some of the technical bridges mentioned in this post participated on behalf of Microsoft. He was joined by a few other cloud players including Wil Sinclair (Zend), Doug Tidwell (IBM), Thorsten von Eicken (RightScale) and Dave Nielsen (CloudCamp). Stephen O'Grady (RedMonk) was the moderator. Most of the panels participants are from the Simple Cloud effort. The questions were mostly taken from the #ZendCon Twitterstream in real-time and that gave a bit of a dynamic feel to the panel and allowed observers to provide live and, most of the time, candid commentary. There was a range of discussion from developer tools and frameworks, to management and security, and to more abstract discussions about the offerings from different vendors in the industry.
Some notable sessions that covered Microsoft and Interoperability topics,
Neat thing about this community of web experts, they share their slides online! You can find them at the ZendCon 2009 and Unconference Joind.in event page.
There was a lot to learn! I had a very pleasant experience at the conference and I’m very glad that I attended. I even bumped into some old friends and made many new ones too. I would like to thank all the folks at Zend Technologies & S+S media for putting the conference together and to the PHP community for the great discussion on technology, the web, PHP and all sorts of geekdom … y’all rulz!
Jas Sandhu Senior Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team Twitter@jassand, FriendFeed@jassand
My last post, Microsoft, Interoperability at XML-in-Practice 2009 mentioned a project called Open Government Data Initiative (OGDI) which complements Data.gov by providing an SDK that allows you to easily access publicly available government data. It’s a pretty useful tool to quickly build applications on top of the datasets. I had a couple of questions on this project and how to interact with the PHP language and I wanted to highlight some simple ways on how you can do so.
The most interesting way you can do so is by using PHP via our Toolkit for PHP with ADO.NET Data Services. This project makes it easier for PHP developer to take advantage of the ADO.NET Data Services, a set of features now available in the .NET framework. It simply exposes data in a RESTful way via proxy classes that are generated by the toolkit at design time by using the metadata that is exposed. Your code at runtime uses these classes to work with the .NET based service over http. You can easily adapt the example given in the toolkit also described by Claudio here, to use the OGDI service.
You will want to install the toolkit as per instructions (/docs folder has a good Users Guide, it’s also available here) by copying all the files and folders into an accessible folder with the proper include_path reference in your php.ini file, as well creating the proper variables and enabling the proper extensions such as php_curl an php_xsl. This stumped quite a few folks as generating proxy classes using the PHPDataSvcUtil.php client will not work otherwise and neither will the proxy, editor or the entity you generate. With that done, you should be able to point to the uri, you want on the OGDI data service (e.g. http://ogdi.cloudapp.net/v1/dc/ ) and with that you can generate your proxy classes or Entity Container. You can find a working example that has a full browser for the data at http://ogdiphpsample.cloudapp.net/ , with source code available that you can reference. There is also an ADO.NET Data Services Client Library that can be found here in which you can build using Visual Studio 2008, Service Pack 1 or later and create a svc proxy using the above method.
The next option is to use the REST Web Services, that let’s you query using PHP and have a return result in either ATOM Publishing Protocols, Javascript Object Notation (JSON) and JSON with Padding (JSONP) which is used in quite a few Web2.0 frameworks. There is also the ability to call using straight Javascript from within your PHP apps. You would ideally however want to create a REST client service class, with a pointer to the URL, typically one of the data services on http://ogdi.cloudapp.net/v1. You will then create a query, using a format, using the methods defined here. After grabbing executing with the proper exception handling and managing the responses for display or processing. You can see an example of the PHP code by using the data catalog. This query for example, will return the Domestic Per Diem Rates for 2009 from the General Services Administration entity container. You can also apply filters to narrow down your result as in the examples above.
There is also the ability to return your data in Geospatial form by using the Keyhole Markup Language (KML) which is compatible with popular mapping tools including Bing Maps and services from Google and yahoo. All you need to do is to append format=kml to your query just like the filters and you will be able to visualize the data that is returned. You will find some good examples of usage in the data catalog mentined earlier. That should add some interesting color to your application along with the other methods mentioned above if the data lends itself to the solution you create.
I have just returned from a busy two days in the Washington DC area for XML-in-Practice 2009. The event was held in the Arlington VA Hilton on September 30 and October 1. The conference’s purpose is to showcase real world applications and solutions that XML has enabled, enhanced and or made possible. The event was put together by the IDEAlliance and in tradition with the XML Conference, the tracks covered a number of different topics with technical depth and explored issues beyond the fundamentals. The tracks included the Electronic Medical Records Summit covering President Obama’s Economic Plan, eGovernment Program , Publishing & Media Program , Applications, Foundations and Interoperability Program, and a Tools Summit. You can also find the Conference Program.
I wore a few hats at the event, I was a member of the Program Advisory Committee, was a co-chair/track leader of the Applications, Foundations and Interoperability Program with G. Ken Holman from Crane Softwrights Ltd. and co-presented a session on Open Government and Interoperability with Dan Kasun who leads our US Developer and Platform Evangelism Public Sector team. The session gave us an opportunity to start a discussion about how Microsoft is participating, sharing our thoughts and work in engaging with Recovery.gov which is built on SharePoint and consumes multiple disparate data sources, interoperates with a number of other technologies, and to share our Open Government Data Initiative (OGDI) which complements Data.gov
Keith Hurwitz, our State and Local Government Evangelism Manager on Dan’s team, also participated in the Demo Jam at the reception hosted by one of our InteropVendorAlliance.org partners Mark Logic using OGDI. He dived deeper into OGDI in a session the next day titled Microsoft’s eGovernment Solutions: Government Transparency and Cloud Computing: Publishing government data in Windows Azure with Microsoft’s Open Government Data Initiative open source toolkit. Keith shared some of the thinking on how it can be used, it’s architecture and demonstrating some good examples, including the OGDI sample site and a visualization by a partner IDV Solutions called Visual Fusion that utilizes the OGDI data. OGDI is a great cloud solution for Government hosted on Windows Azure. It supports calling from a number of different languages including Flash, Java, Silverlight, Google Maps and Bing Maps. It also utilizes some of the Technical Bridges that have been highlighted on this blog including the Toolkit for PHP with ADO.NET Data Services, Open XML Daisy Translator. OGDI has also been used as a demo in our latest technical bridge published, Restlet Extension for ADO.NET Data Services.
I had a great opportunity to learn a bunch of new stuff and I would like to thank the organizers, IDEAlliance, it’s board, the track leaders and members of the advisory committee, our great speakers and to the attendees for the interaction and stimulating conversation. Special thanks to Joy Donat and Ken Holman for cat herding. I look forward to working with you all again at the next event.
Today, Microsoft announced a new XMPP Gateway for Office Communications Server 2007 R2 that enables interoperability with Cisco Jabber/XMPP and Google Talk, along with new licensing options for Office Communications Server customers to connect with AOL and Windows Live (read the details of the announcement).
I had a chance to seat down with Ashima Singhal (Senior Product Manager) and Albert Kooiman (Senior Product Manager) from the Communication Server team to discuss the news focusing on Instant Messaging (IM) interoperability between different networks. Here's what they have to say about how all of this works:
This video is posted on the Channel9 Interoperability topic area: Instant Messaging Interoperability extended through XMPP (Jabber)
Links:
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
Additional readings:
Jean-Christophe Cimetiere - Sr. Technical Evangelist
[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:
Going Forward
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.
Moving forward
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.
[Update - March 16, 2010: the toolkit is now called "OData SDK for PHP", and "ADO.NET Data Services" is now called "WCF Data Services". Check related posts on OData ]
Today, I’m excited to announce that we are releasing a new project that bridges PHP and.NET. More precisely, we are releasing today the Toolkit for PHP with ADO.NET Data Services which makes it easier for PHP developers to take advantage of ADO.NET Data Services, a set of features recently added to the .NET Framework. ADO.NET Data Services offer a simple way to expose any sort of data in a RESTful way. The Toolkit for PHP with ADO.NET Data Services is an open source project funded by Microsoft and developed by Persistent Systems Ltd. and is available today on Codeplex: phpdataservices.codeplex.com
You can see an overview and quick demo of the toolkit in the following Channel9 video with Pablo Castro (software architect of ADO.NET Data Services) and me:
ADO.NET Data Services (formerly known as Project “Astoria”) is a technology used to expose a wide range of data sources through a RESTful service interface. Data sources can be relational databases, XML files, and so on. ADO.NET Data Services defines a flexible addressing and query interface using a URL convention, as well as the usual resource manipulation methods on data sources (it supports the full range of Create/Read/Update/Delete operations).
There is full support for ADO.NET Data Services in Visual Studio 2008 SP1 as well as in the upcoming Visual Studio 2010; this includes direct support for both creating and consuming data services directly from the development environment. You can find more information about ADO.NET Data Services here, (I recommend the “How do I…” videos).
You should consider two aspects of the PHP Toolkit:
In the following steps we assume that you have already created the ADO.NET Data Services on top of the Northwind sample SQL Server database (check this “How do I…” video). The service I created exposes data like this, through a simple URL:
The next step is to use the PHPDataSvcUtil.php utility that is part of the toolkit, and point it to the URL of the Data Service. It will read the Data Service metadata and create the PHP proxy classes (called northwinddb.php in our example):
The code generated (northwinddb.php) looks like this:
At runtime, you simply include in your code the northwinddb.php files and the URL of the data service:
And then you can start writing your PHP code to access the data collections. Note the first highlighted line: it defines the query over the data service. Many options are available, the full description of the query format can be found here.
And here is the result:
I hope you enjoy reading this quick introduction to the Toolkit for PHP with ADO.NET Data Services. Feel free to check the project site on Codeplex phpadodataservices.codeplex.com. As always your feedback is welcomed!
Claudio Caldato, Senior Program Manager, Interoperability Technical Strategy team.
O’Reilly OSCON (Open Source Convention) has been an opportunity for Microsoft to make significant announcements and unveil new projects. For sure, Microsoft’s participation did not go unnoticed :), in fact it has been a busy week for us.
First we announced the release of Linux Device Drivers, to enhance the performance of Linux when virtualized on Windows Server 2008 Hyper-V. The source code has also been submitted to the Linux Community. Read Peter Galli’s post on Port25: Microsoft Releases Device Driver Code to the Linux Community) and check the Channel9 interview.
The next announcement was the Live Services Plug-in for Moodle, a free download released under the General Public License v2 that integrates Microsoft's Live@edu services such as email, calendar, instant messaging and search directly into the Moodle experience. Read more on the “Microsoft On the Issues” blog: Microsoft Develops Plug-in for Moodle to Aid Teachers, Students and check out the Channel9 interview:
Then Vijay Rajagopalan, Principal Architect for Interoperability Technical Strategy team presented a session titled “Interoperability - Build Mission Critical Applications in PHP, Ruby, Java and Eclipse Using Microsoft Software + Services” where he discussed our approach to interoperability & open source and illustrated this with three (Eclipse4SL, PHP Application development in Azure & .NET Services) of the open source initiatives that enabled bridging Microsoft Software + Service & Open Source Technologies. Finally, Vijay unveiled progress made on PHP SDK for Azure & tooling in Eclipse. He has demoed a prototype earlier this year at MIX. This time Vijay showed us how you can do "create, read, update & delete" (CRUD) operations on Azure Storage from the Eclipse IDE, leveraging the PHP SDK for Azure, screenshot below:
Stay tuned, we’ll be able to say more about this in a few weeks.
Vijay’s presentation is available for download (PDF & PPTX).
It’s been an exciting conference, and I hope you can appreciate all the activities and projects that Microsoft is driving to show openness and interoperability in action.
By the way if you want to follow us more closely on these topics, check out OpenAtMicrosoft twitter line.
Jean-Christophe Cimetiere, Sr. Technical Evangelis
Last week I had a chance to attend a live webcast “Connecting PHP to Microsoft Technologies” presented by my colleague Sumit, where he demoed the PHP projects (samples toolkits, frameworks and SDK) that we announced in May (Announcing PHP SDK for Windows Azure… and much more!).
These projects enable PHP developers to easily extent their web applications using some of the Microsoft technologies. Here’s a recap of the current projects:
Sumit also introduced new project during the webcast:
The offline recording is now available for download at http://www.phparch.com/conferences/webcasts (there are a couple minor glitches in the audio, just skip ahead for a few seconds when it happens ;-) and you’ll find bellow a zip containing Sumit’s presentation (PDF and PowerPoint PPTX)
This webcast is part of CodeWorks 09 summer series organized by PHP|Architect website. The series touch a number of PHP related topics including two additional sessions focused on PHP and Microsoft technologies interoperability. Please mark your calendar:
In addition you might want to check out the free May 2009 issue of php | architect magazine which focuses on running PHP on Windows, and additional technical details on how to use some of the Microsoft products with PHP.
Last week under gaze of the Great Pyramids on the Giza Plateau, the only remaining monument of the Seven Wonders of the Ancient World, I was fortunate to participate in the final ceremony of the Imagine Cup 2009 competition, called the World Festival and the announcement of our Interoperability Award winners. Before I go there I wanted to provide a brief recap of the proceedings of the event.
After a long trip for many of the competitors, judges and the Microsoft staff. My role was captain and finals judge for the Interoperability award and that started with a briefing for all participants, the judges and the competitors plus the ability to tour the competition rooms. After the housekeeping was done with, we all filed for a tour and our opening ceremony at the Citadel in Cairo, a major landmark there housing a beautiful and grand Mosque, a fort and museums. We had a great ceremony in the courtyard with a cool breeze that cut the heat and a beautiful sunset.
We then started the proceedings with a bunch of keynotes and the highlight of the evening was definitely the presentation from Ray Ozzie, our chief software architect at Microsoft who pepped up the students about how they can shape the future through technology, innovation, and creativity with his own personal anecdotes of starting in the world of software. Joe Wilson, senior director of Academic Initiatives at Microsoft, then inspired and gave some advice to our students on the competition, and with all our keynoters joining him onstage started the competition off with a grand laser light display that made our historical venue show off grandly.
I had a spectacular set of judges for our award, the judges pictured here with me, from left Tiago Cardoso from Institute for the Development of New Technologies (UniNova) in Portugal, Rob Miles from University of Hull in the UK and Dennis Anderson from Pace University in New York. They all have great credentials, had an eye for interoperability and were very fair in scoring our teams. We all seemed to be very in sync on how we gave out points. They’re also a fun bunch of guys :) The criteria we used and the points percentages was 10% for Architectural Design, 20% for Innovation, 30% for Interoperability, 20% for Coolness and 20% for Presentation.
The final awards were presented at the World Festival by Jon Perera, General Manager for Education Strategy and Audience Marketing, All of these teams have spent numerous hours perfecting their solutions and highlight a disparate set of technologies and multiple platforms to showcase Interoperability.
… and the winners are …
Third Place, winning US$3,000, went to Team ECRAM from Jordan, with their Elder & Children Remote Mobile Application. Their application allowed for a mobile phone to be remotely control by another client, typically another mobile, especially in the use of elder or child care. It was particularly interesting that it came from a real world problem that one of the team members was facing with his grandmother who wanted to place calls and speak to family members but had difficulties using the phone and required the help of her grandchildren. Being a busy student he was not always available and so thought of solving the problem using technology and software. The system utilized multiple different systems including mobile carriers and web services to solve the problem. Here’s a picture of the team speaking to S. Somasegar, senior vice president of Developer Division at Microsoft
Our Second Place, winning US$4,000 went to Team FteamS from Poland, with their Universal Solution for Remote Education, Eduko. These guys were innovative and cool in the use of disparate technologies on multiple platforms and devices to create a system that enabled teachers and students to interact using a virtual whiteboard system that was enabled on the desktop and even projected on any surface. What was particularly interesting was the use of a WII controller as a camera for their custom IR marker. It served as a very captivating presentation tool. The team also were very smart in the use of mobile devices sending things like text and coursework via SMS and MMS. Very little payload for a lot of information, did you know a single MMS message can send 15 pages of documentation? The guys also put together a very well rehearsed presentation with every team member participating and that impressed our judges too.
Our First Place winner, winning the US$8,000 went to Team Proativa from Brazil, with their Virtualized and Social Education system ProLearning which is designed to maximize the experience of distance learning. The use of an immersive virtual reality environment, where students exchange experience and study together the interaction between tutor and pupils dynamic and communal. they utilized social networks to keep students interested in the learning process and engaged continually not just during a lesson. It was a holistic system that facilitated the learning process end to end and that impressed the judges who were all teachers themselves and whom felt they could use it today in their classes. The students had also the capability of using mobile devices to personal and automatically update students on schedules and prompting their network for activities when doing distance learning. It was also novel that they integrated the social networks, mobile devices and voice over IP to get students who were friends or classmates to engage with each other for lessons making the learning experience a team based activity. The main reason that the team won this award however was that they had built a piece of software on the server that brokered different services that didn’t necessarily plug in with each other serving as a technical bridge of sorts. This proved to be the differentiator that help them cinch the award. They had a rousing fanfare by their Brazilian teammates at the finals by being the first prize recipients of the night and helping their country grab the most awards at the competition this year.
Here are the teams videos entries:
First place Proativa Team from Brazil
Second place FteamS from Poland
Third place: ECRAM from Jordan
I would like to thank all the competitors who participated in the awards, their mentors, Academic Developer Evangelists, family and friends. Congratulations to our final three winners on behalf of the judges, the Interoperability Strategy team and all of us at Microsoft. I know a lot of work and sweat went into your entries and I want to share how much we all appreciate your contributions! I hope that you all will join me again next year for the Interoperability Award at Imagine Cup 2010. See you in Poland!
Resources
Jas Sandhu Senior Technical Evangelist, Interoperability Strategy Team Twitter@jassand, FriendFeed@jassand
[Update: Maarten Balliauw has posted some samples. You'll see how easy it is to use the SDK: PHP SDK for Windows Azure - Milestone 2 release]
I am pleased to communicate the availability of July Technology Preview of PHP SDK for Windows Azure. As part of Microsoft’s continued commitment to interoperability, we announced the open source PHP SDK for Windows Azure in May in collaboration with our development partner RealDolmen.
There are two key activities that I am excited about in this release:
We received good feedback in the past couple of months and have addressed a few defects in the blob storage as well.
Submission of PHP SDK for Windows Azure to Zend Framework
Microsoft & RealDolmen have decided to make PHP SDK for Windows Azure available as part of Zend Framework. By extending support for Windows Azure through Zend Framework, millions of PHP developers that use Zend Framework can build web applications seamlessly targeting Windows Azure. Realdolmen has formally submitted the July CTP repository to Zend Framework’s laboratories to begin the review and approval process. Upon approval, Zend Framework will publish a technology preview package of the SDK on the Zend Framework website. We will continue to work closely with Zend to ensure consistency across the standalone and Zend Framework versions of the PHP SDK for Windows Azure.
I worked with Zend when we demonstrated information card interoperability on PHP based web applications through Zend Information card (read this to see it in action) and continue to enjoy the great working experience. I look forward to the release for PHP Support for Windows Azure in Zend Framework.
Support for Table Storage.
The Windows Azure Table service offers structured storage in the form of tables which contain a set of Entities, which contains a set of named Properties. A Few highlights of Windows Azure Table are
The Table service exposes a REST API. The PHP classes for the Table service provide developers with an abstraction upon the REST APIs for CRUD and Query operations. Some of the features supported in this milestone are:
Detailed usage scenarios of Table Storage can be found here
Please note that you need to have the May CTP of Windows Azure to take advantage of the features in this release of PHP SDK for Windows Azure.
- Vijay Rajagopalan
I’m Claudio Caldato, Senior Program Manager in the Interoperability Technical Strategy team here at Microsoft. I’m going to talk about the work Microsoft did with Xandros in response to feedback from Interoperability Executive Customer Council (IEC) member NATO gave us, asking for heterogeneous system management scenarios.
One of my key activities is to follow up on feedback provided by the Interoperability Executive Customer Council. Recently a few members of the council, and in particular NATO, raised the issue of the complexity in managing multiple heterogeneous systems across a large distributed network environment from a single point of access and the need to aggregate status information and alerts to other management applications. This is quite a broad topic, in retrospect!
To narrow down the scope we worked with NATO to define a specific scenario and this scenario formed the basis of the “Multi-Platform System Management” lab. The lab comprised the following Applications and Services
· Microsoft System Center Operations Manager 2007
Because of the heterogeneous nature of the components, we choose to work under the Interop Vendor Alliance (IVA) with Xandros (a fellow IVA member) to create the following architecture:
The goal for the lab was to demonstrate the following functionality:
We were able to build the lab and, in so doing, are able to demonstrate to others how to solve the interoperability challenges that this sort of environment creates. One of these challenges was how to enable the System Center Operations Manager to manage applications running on Sun Solaris machines. The solution to this challenge came from Xandros in the form of the Xandros Bridgways Management Packs. This management pack is engineered to extend the capabilities of the System Center Operations Manager to applications of both Windows and non-Microsoft platforms, providing us with an ideal solution to the problem at hand.
From a technical perspective, the lab included several other very interesting aspects that I encourage you to discover for yourself. These have been documented in the white paper that’s available on the IVA website under the Multi-Platform System Management Lab. The good news is that we were able to successfully address the specific needs expressed by the IEC Council’s feedback. I find it personally rewarding that we’re able to meet the expectations of our customers… particularly, IEC Council member NATO who commented on the outcome of this lab (quote extracted from the white paper):
“NATO employs a diverse set of hardware and software and has to work with vendors that are committed to work on interoperability, said Detlef Janezic, NATO CIS Services Agency (NCSA) when participating in the Interoperability Executive Council sessions in 2008. NCSA mentioned on behalf of NATO some of the interoperability challenges experienced between Microsoft System Center and HP OpenView product lines. Based on these concerns, Microsoft engaged in an initiative geared to resolve the stated interoperability challenges. This solution was presented to NATO on 24 Mar 2009. The initial assessment of NCSA and the NATO C3 Agency (NC3A) on the chosen approach and its implementation is that the presented solution shows great potential. The two NATO agencies very much appreciate these Microsoft efforts and intend to implement & test the provided solution in its IT environment as soon as possible.”
The Interoperability discussion related to system management does not end here. We continue to work with partners like Xandros, whom I’d like to thank for their help and contribution on setting this interoperability lab up.
Claudio Caldato, Senior Program Manager
As the co-owners of the Microsoft portion of the project, Kent Brown and I would like to thank everybody for their support and share our excitement over the future of the Stonehenge project.
There has been a lot of speculation surrounding Microsoft keynoting at JavaOne, and what it could mean to the Java world. Well, now we know that the announcement will be made: Sun has now agreed to participate in the Stonehenge project and will be contributing the Metro-based StockTrader application code. Steven Martin has just posted a note where you’ll find more details on the keynote, and on the new agreement with Sun.
I’d just like to highlight the goals of Stonehenge : “While industry efforts like WS-* make interop possible, it still isn't always obvious or easy to figure out how to configure different products so that they actually interoperate […] Stonehenge will help us complete the “last mile” of interoperability between today’s standards-based infrastructure and tomorrow’s service-based applications.”
I’m really thrilled and looking forward to working with Sun on developing new Stonehenge interoperability scenarios.
Also, as I had hinted in my previous post, the M1 release of Stonehenge incubator project was reached last night. Congratulations to everyone on the Stonehenge team and a warm welcome to our friends from Sun Microssystems.
Additional Stonehenge materials:
[Update 06/09: JavaOne Radio episode (20 min audio) is available: Chris Mellisinos talks to Steven Martin of Microsoft after the Microsoft General Session keynote address at JavaOne ]
At the RSA Conference 2009 in April, Microsoft’s Scott Charney included a video from a project for the Lake Washington School District in his keynote. The project features a very interesting identity interoperability scenario between the Lake Washington School District’s internal Active Directory and Intand’s Tandem for Schools SaaS application. The key challenges were to manage effectively identities while preserving the security of the users and the system.
The project combines Microsoft code name “Geneva” (the “Geneva” Server and Windows CardSpace “Geneva”) and Intand’s PHP-based Tandem for Schools application that uses the Zend Framework’s information card support for interoperability.
The project is based on upon the use of Microsoft code name Geneva Server, Windows CardSpace Geneva and Intand’s PHP application using the Zend Framework’s information card support for interoperability.
To get deeper and learn more about this exciting project, watch these videos:
Finally I wanted to point out other open source interoperability work our team has been contributing to around information cards for heterogeneous web applications. This includes information card support for Java , Ruby on Rails and a generic C module.
A few weeks ago Microsoft’s Kerberos team participated in the Kerberos Interop Workshop organized by the MIT Kerberos Consortium, being hosted here at the Microsoft campus here in Redmond. I had a chance to spend some time with the Microsoft folks (Michiko Short, Jeremy Viegas, Larry Zhu and Yi Zeng from the Microsoft’s Kerberos team) who participated in the event to discuss what happened. We thought it would be interesting to share a quick summary.
This sort of interoperability workshop is an effort to gather developers together in a single location, to actually plug them into a network environment together and help each other work through the interoperability challenges associated with their current development efforts. In attendance were representatives from Cornell University, Centrify, Microsoft, MIT, Safe Mashups, and Sun Microsystems.
A bit of background…
For those of you that aren’t familiar with Kerberos, it is a network authentication protocol developed by MIT as part of a joint project with Digital Equipment Corporation and IBM designed to produce a campus wide distributed computing environment in 1983. Kerberos provides a mutual authentication system, and a high level of encryption, both designed to ensure network and data security. Kerberos was accepted by the Internet Engineering Task Force (IETF) as a standard in 1993. Since its creation Kerberos has become the most widely deployed system for authentication and authorization in modern computing networks.
In September of 2007, MIT founded the MIT Kerberos Consortium to help establish Kerberos as the universal authentication platform for the world’s computer networks and many organizations joined since then (full list here). The consortium hopes that by opening up ongoing development of Kerberos to other interested parties, it will be possible to expand the scope of work being performed, enhance the evolution of Kerberos, and to help engage potential adopters. The MIT Kerberos has also a group on Facebook.
Microsoft’s collaborative efforts regarding MIT and the Kerberos Consortium are nothing new. Microsoft was one of the original sponsors, and is represented on the board of directors by Microsoft’s Director of Development Slava Kavsan. To help standardize the testing processes for Kerberos developers, Microsoft contributed the GSS Monger interoperability testing framework to the consortium. It is now available on Codeplex using MS_PL, as an ongoing open source project.
You may not know, but Microsoft has been using Kerberos as the default authentication package since Windows 2000. You may actually be using Kerberos authentication today in your solutions without even realizing it since it is part of negotiated authentication.
Back to the interoperability plug fest…
How does an interoperability plug fest like this work? Each participant prepares a desired test plan based on their own current projects and challenges, but beyond that the lab is very ad-hoc. All of the participants bring systems with their code/applications to the event; then everybody hooks up to the network and starts testing out scenarios against each other’s applications using MIT realms or Microsoft domains. This collaborative environment allows participants with different implementations of the same standard to test their interoperability in a real world environment, helping to identify and solve the road blocks that might otherwise cause them problems.
One of the scenarios for the plug fest consisted of MIT & Microsoft collaborating on testing efforts for their next release. MIT has developed an implementation of a new Kerberos RFC (jointly defined by MS/MIT, and the IETF standards body). Since it was the first implementation there were no other implementations to be tested against. So, the Microsoft team developed a second implementation for the event for validation/comparison/interoperability testing.
Cornell University came prepared with two scenarios to investigate. The network environment that both scenarios operate under consists of a mixed MIT realm with an Active Directory domain. This results in certain complications when it comes to integrating a Single Sign-on solution. The first of their scenarios was built around integrating CUWebAuth, the open source, Kerberos based, web authentication application they have built, with key IIS services that are connected to a central Active Directory. This integrates single sign-on for Microsoft applications such as Outlook Web Access with other campus web services that require a login. The second of their scenarios centered on integrating WebDav with the Kerberos based login across their network. Complicating matters, the systems used across this network are very diverse and heterogeneous, including desktops running Windows, Linux, and Mac. The Cornell University team has had trouble implementing Kerberos with WebDav on Windows machines that are not part of a domain. Initially, they were uncertain that support for the desired functionality was even possible for Windows based systems. The Microsoft developers attending the plug-fest were able to provide the necessary insights regarding how the problem could be solved on Windows Vista and higher machines.
Peter Bosanko of Cornell University had this to say about the event:
“At the KC Interop we worked side by side with an impressive group of Kerberos experts from MIT and Microsoft. This was extremely fortunate for us because our interoperability issues were all about tying together Microsoft systems with an MIT KDC. By the end of our first day we had already accomplished more than we expected to accomplish over the three day Interop.”
What’s in it for Microsoft and other participants?
Interoperability is a key pillar for the Kerberos team. Knowing that many customers are going to have a heterogeneous environment, ensuring that Microsoft’s implementation of Kerberos works with other implementations is considered a key to success. By getting all the people together at events like this gives developers an opportunity to really dig into how we work together in an efficient way, solving problems in real time. Also it allows us to see how our applications interoperate with all sorts of other systems and applications that we normally don’t get the opportunity to see. Finally, it allows us to help explore, expand on, and develop standards while learning from a diverse group of experts.
We were delighted to see the turnout for this event, and wanted to extend a thank you to the MIT Kerberos Consortium for putting this together, and to the Kerberos team here at Microsoft for sharing it with us. With any luck the collaborative efforts of the participants will enable the ongoing development work on the various Kerberos implementations to proceed unhindered.
[05/18- Update: this translator is highlighted in today's Document Interoperability Inititice (DII) event that just happened in London ]
The OpenXML Document Viewer project idea came from the discussions with the participants of the Document Interoperability Initiative (DII) workshops (in particular last year’s Cambridge event). The point was to find a way to simply be able to view Open XML files as HTML. Following up, Microsoft provided funding to start the Open XML Viewer project, an open source project developed by MindTree Limited. The first beta version was unveiled at the last DII in Brussels, giving a first peak of the viewer (see a demo here).
Today I’m excited to announce the version 1.0 of Open XML Document Viewer. It provides direct translation for Open XML Documents (.DOCX) to HTML, enabling access to the information in the Open XML format from any platform with a Web browser. The project, which already includes a plug-in for Firefox IE7 and IE8 and now also offers a plug-in for Opera, allows users to view Open XML documents (.DOCX) within the browser on Windows and Linux platforms without the need to install Microsoft Office or other productivity products. Check out the demo my colleague Jean-Christophe Cimetiere has recorded to see the Open XML Document Viewer in action from the end user perspective:
For more detail on the supported features go visit the project site http://www.openxmlviewer.com
In principle, the functionality of the viewer is simply to translate OpenXML files into HTML for direct consumption in a web browser.
Here’s a scenario (the sample document is attached):
· You have an Open XML document (.DOCX). Let’s view it in Office Word 2007 first:
· Then, let’s say you email this file to your friend who’s using OpenSUSE Linux. Your friend saves the document on the desktop and drags & drops it into the Opera browser:
· The Open XML Document Viewer kicks off and creates the HTML that’s displayed by the browser:
The experience is similar with Firefox on Linux and and with Internet Explorer 7/8, Firefox 3.0.x, and Opera 9.x on Windows:
Next let’s examine the high level architecture:
The core of the project is the Translation Engine that does most of the work, meaning opening the .DOCX document, reading, mapping and transforming to HTML. The Translation engine is exposed as a client side browser plug-in with support for Firefox, Opera, and Internet Explorer, and as a cross platform command line translator for use in server side applications.
The result is a translator that enables Open XML document (.DOCX) visibility within browser applications without the use of any of the usual office productivity or word processing applications, across multiple platforms and environments, as either a server side application or as a client side end user solution. Developers, Independent Software Vendors (ISVs), Solutions Integrators & Mobile Solution providers can use these tools to enable their customers to view Open XML documents on heterogeneous platforms and browser applications. Be sure to check out the Demo web site. It showcases server side document processing scenarios that represent very typical use cases.
We’re very excited with this new version and look forward to your feedback.
Join us at http://www.codeplex.com/OpenXMLViewer
Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Team
[05/18- Update: Apache POI project is highlighted in today's Document Interoperability Inititice (DII) event that just happened in London ]
When developers are tasked to deal with document file formats it might be challenging to do the right thing if you don’t have a good experience with a particular format, and need to crack it open and understand all the details.
For Java developers and Microsoft Office file formats there’s a very interesting solution with the Apache POI project, which provides a Java API to access Microsoft Office formats. Last year Microsoft and Sourcesence announced that they would collaborate to add support of the Open XML file format to the Apache POI project, and the resulting Open XML support has been integrated as part of POI 3.5 beta 5.
The end result: Good news for Java developers who need to manipulate the Office Open XML files (.XLSX, .DOCX, .PPTX), because it really makes it easier for them to do the job!
To illustrate the point, let me walk you through a demo scenario that uses Apache POI Java Libraries and actually combines it with the PHPExcel project (for PHP developers) and the Open XML Format SDK 2.0 (for .NET developers). My goal is just to give you a sense of the type of scenarios you can easily develop using multiple languages and multiple platforms.
We will make that demo available with more explanation in an article on http://openxmldeveloper.org/. Before we get into the demo itself I want to thank Julien Chable and Maarten Balliauw for their help in building this demo.
For now, let me walk you through the scenario. For the sake of our demonstration we are going to show how raw data can be consumed by a Java web application using the Apache POI, to create an .XLSX file from scratch. How that file can then be accessed and modified by a PHP application (with PHPExcel). And finally how the resulting file can be digitally signed and finalized via the .NET framework using the Open XML Format SDK.
Here’s the data flow:
Step 1 of the scenario starts in the Java Web applications:
Once the “Create Spreadsheet” button is pressed, it creates the files:
And does some processing to inject the initial XML data and formatting. The result looks like this:
Most of the Java code required to do this fits in this code snippet:
Step 2, moving to the PHP application, the UI is similar:
This step adds cell protection, renames the .XLSX file, changes cell formatting, and inserts additional content formatting. The result looks like this:
And the code to accomplish it looks like this:
Step 3, finally, from the ASP.NET web applications using the Open XML Format SDK:
Where the code for adding the digital signature looks like this:
Easy, don’t you think? Stay tuned, as I said earlier, we will follow up on http://openxmldeveloper.org/ with a more detailed article.
Additional background on PHPExcel and the Open XML SDK:
The PHPExcel project is an open source project available on Codeplex. It consists of a set of classes for PHP that enables PHP applications to read and write to various file formats. These formats include HTML, PDF, and the relevant one for our demonstration…Excel 2007’s .XLSX format. This class set supports features such as setting spreadsheet meta data (author, title, description ...), multiple worksheets, different fonts and font styles, cell borders, fills, gradients, and adding images to spreadsheets. In parallel to this project, there is also the sister project PHPPowerPoint, which is intended to operate along similar lines as the PHPExcel application but with a focus on the .PPTX file formats. Both of these projects are built around the OpenXML standard, and the PHP framework. Read this nice article: Use PHP to create Open XML Spreadsheet reports
The Open XML Format SDK provides methods for .NET developers to access and manipulate XML content, including XML data contained in OXML document formatted files. It provides strongly typed part classes to manipulate Open XML documents. The SDK also uses the .NET Framework Language-Integrated Query (LINQ) technology to provide strongly typed object access to the XML content inside the parts of Open XML documents. The April 2009 CTP release also adds support for the validation of Open XML documents.Read Brian Jones' blog to go deep on Open XML SDK.
I’ve just arrived at TechEd India where I’m going to talk about interoperability in my sessions “Build Mission Critical Applications on the Microsoft Platform Using Eclipse, Java & Ruby” and “Developing PHP Applications using Microsoft Software & Services”. In addition to presenting the on-going activities that Microsoft is driving to strengthen interoperability, I’m excited to be able to demo a new set of interoperability projects related to PHP. I’m going to give you a glimpse of these projects in this post for those that are unable to join us in India.
The first PHP interoperability bridge that we’re announcing is the PHP SDK for Windows Azure. This SDK is the result of an open source development project by RealDolmen, for which Microsoft is providing funding. I’d like to personally thank Maarten Balliauw of RealDolmen for his work on the project. The goal of the SDK is to provide high-level abstractions that enable PHP developers to interoperate readily with Windows Azure.
Keep in mind that the Azure Services Platform has been designed to be open, standards-based and interoperable.
The Azure Services Platform’s support for XML, REST and SOAP standards means that any of the Azure services can be called from other platforms and programming languages. To facilitate the interoperability between the Azure Services Platform and non-Microsoft languages and technologies, Microsoft has provided funding for two other SDK projects that support 3rd party programming languages: Java SDK for Microsoft .NET Services and Ruby SDK for Microsoft .NET Services
The PHP SDK for Windows Azure focuses on REST and provides the following core features:
Windows Azure is the foundation of the Azure Services Platform and it includes the services hosting environment for the platform. At MIX 2009, Microsoft announced the inclusion of FastCGI in Windows Azure’s hosting environment. The FastCGI protocol enables developers to run web applications on Windows Azure that were written using 3rd party programming languages including PHP. This opens up new options for PHP developers to deploy their applications. For example, in the context of the PHP SDK for Windows Azure you have the 2 following options for deploying your PHP web applications:
A Technology Preview of the PHP SDK for Windows Azure will be released by RealDolmen under a “BSD” license. This version of the SDK supports interoperability with Windows Azure blog storage. A functionally complete version of the SDK – additionally supporting tables and queues - is expected to be available from the download project site by the fall of 2009. Of course you're welcomed to try out and provide suggestions & feedback to the project by joining the user forum.
The second piece of announcement, I’m excited to make is the launch of a series of third party projects that offer samples and toolkit that enable PHP developers to easily include in their web applications the following Microsoft technologies:
Projects
Features for PHP developers
Embedding Silverlight in PHP
Include Silverlight controls in PHP web applications
Web Slices and Accelerators in PHP
Include IE Webslices & Accelerators in PHP web applications
SQL CRUD Application Wizard for PHP
Automatically generated a simple “Create, Read, Update, Delete (CRUD)” PHP application from a table in SQL Server
Virtual Earth Integration Kit for PHP
Include Microsoft Virtual Earth maps in PHP web applications
Microsoft is providing funding for a series of projects, of which this first batch have been developed by Accenture. The third party projects are available on Codeplex.com under a BSD license:
More to come; stay tuned and once again I encourage you to take a look. Feedback is very welcomed.
When Microsoft decided to participate in the Apache Stonehenge project our goal was to deliver guidance through practical applications that span languages and platforms and demonstrate how to achieve interoperability. As I mentioned a few months ago multiple implementations including .NET, Java, Php, Python & Ruby of the Stonehenge Stocktrader sample application have been committed to the repository (check the code here: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/)
Since then we’ve been working and I’m glad to report that we’ve reached a key milestone: to deploy a first set of these samples and make them work together. The Stonehenge community is currently going through the final testing required for the “M1 release”, and it is taking votes on a release. From a simplified architecture point of view the Stonehenge Stocktrader application is built as follows:
So far we have been focusing on the .NET, PHP, and Java interoperability scenarios, and have deployed the three Stocktrader implementations in multiple configurations. If you want to reproduce the environment, you can get the installation and configuration steps for the .NET, PHP and Java versions at http://cwiki.apache.org/confluence/display/STONEHENGE/Index. The PHP and Java implementations were contributed by WSO2 using their Web Services Frameworks (http://wso2.org/projects).
Then we ran a series of tests mixing and matching the layers from the three implementations, playing with the configurations and leveraging the Web Services standards, including WS-Security, to provide message integrity and security.
In short (that’s only a partial view of the scenarios), the following diagram shows where we were able to achieve interoperability using Web Services (each arrow represents Web Service based dialog):
A detailed “interoperability walkthrough” explaining all the different configurations has been posted at http://cwiki.apache.org/confluence/display/STONEHENGE/Stonehenge+Interoperability+Walk-through
From the end user perspective whichever middle tier layer (Business Services or Order Processing) is activated during the scenario is completely transparent, since each of the implementations executes the same transactions. Even though the most interesting part of the interoperability walkthrough happens at the Web Services standard level, I wanted to give you a sense of how the scenario looks from multiple perspectives. In the following example, we are looking at the “Buy Stocks” transaction in both the .NET & PHP applications (the current Java version does not implement any UI):
Stocktrader .NET
Stocktrader PHP
Buying stocks
Transaction confirmation
Portfolio summary information
This new outcome from the Stonehenge project is very encouraging. With the implementation of the WS-* Standards, we get the benefit of distributed applications and platforms. We recognized that it is not always easy to achieve these goals, but I really feel this type of practical guidance will be helpful for these types of scenarios.
We’re very encouraged by the success of this first step, and we invite you to take a closer look to give comments and feedback. There are lots of roles for you to participate in the project, whether you are a developer or a user: developing code on your preferred platform, suggesting new scenarios and applications that will provide real value to people in your field, or even just looking over the code and documents to see if they address the challenges you might have had developing interoperable services.
We look forward to getting your comments and ideas about how to keep this project moving in a direction that meets real people’s needs.
In support of Microsoft’s ongoing efforts to increase the interoperability of its various technologies, we have partnered with Dialogika to create a translator that converts the Microsoft Office binary file formats (.DOC, .XLS, and .PPT) into the Office Open XML standard format (.DOCX, .XLSX, .PPTX).
A majority of the world’s documents are available in the binary Office formats and, for developers working with these formats (including .DOC, .PPT, and .XLS.), Microsoft published the specifications under the Open Specification Promise (OSP) in June 2008.
A new version of the Binary to Open XML (B2X) Translator has just been released ; this version adds support for PowerPoint (.PPT) and Excel (.XLS) files:
Supported .XLS Features
Supported .PPT Features
(Detailed features http://b2xtranslator.sourceforge.net/architecture.html#mapping )
From an architectural point of view, the translator can be seen as a series of pipelines during which transformation steps are applied to translate from the binary to Open XML format:
(more details on http://b2xtranslator.sourceforge.net/architecture.html )
While it has been possible to manually convert documents between formats by opening the file in the relevant application and saving in the other format, before the release of the translator there was no software tool to automate this task as a stand-alone application, or in a batch mode.
So from the end-user point of view the translator offers two options:
While using Windows’ context menus to translate the files is self-explanatory (right-click, convert to…) doing so from the command line warrants a bit more study. The command line utility consists of three separate executables, one for each file type (ppt2x.exe for spreadsheet, doc2x.exe for document, and xls2x.exe for presentation). The executables use the same command line syntax, and support the usual basic command line options: This includes the input filename, output filename, and the level of debug verbosity. The resulting command is easy to include in automation scripts, and batch processes.
The command-line architecture allows the translators to be integrated into existing systems such as document management systems running on a server.
Using the source of B2X translator (ppt2x.exe, doc2x.exe, xls2x.exe), you can rebuilt them using the .NET Framework on Windows or Mono on Linux, thus ensuring portability across operating systems and platforms.
As an open source project, the Translator is a solid foundation for engineering work around the Office binary format. Dialogika’s development team has put together a few “how to” guides, including the Freeform Shapes in the Office Drawing Format guide, that helps to explain the specification and give some valuable tips. For developers and ISVs the code of this translator can be reused in their own applications enabling a wide range of document interoperability solutions.
We’re excited by this latest release making the translators more functional and addressing practical document conversion scenarios. Of course, there’s still work ahead of us! We are currently in the planning stage for the next version. In addition to the goals outlined above, it is very important to us that the translator adequately addresses practical user scenarios. To this end, we would love to hear feedback on this release as well as your feature requests for the next version. Please provide your feedback on the Sourceforge site.
Service Pack 2 for the 2007 Microsoft Office System that has just been released includes the ability to open, edit and save documents in version 1.1 of the Open Document Format. The Open XML / ODF translator on Sourceforge will continue to be the solution for Office 2003 and Office XP users who wish to Open & Save ODF documents.
The open source Translator project was started in July 2006, when Microsoft worked with partners (Clever Age, Dialogika & Sonata) to demonstrate pragmatic interoperability between Microsoft Office and Open Office documents. Today, after multiple releases of the project with more than 2.5 millions downloads, the translator is a mature project and version 3.0 was released in March 2009 (read the blog post).
Version 3.0 focuses on improving the overall fidelity of the translation between Open XML and ODF as well as the performance. The previous version (2.5) of the Translator introduced ODF compatible “Templates” intended to provide greater visual fidelity during the translation process:
Here’s a demo of the Translator created by my colleague Jean-Christophe Cimetiere with version 2.5, but from the end-user perspective version 3.0 is identical:
From a technical perspective, the translator consists of a set of XSL transformations between the two XML formats (Open XML and ODF), along with some pre- and post-processing to manage the packaging (zip / unzip), and some advanced processing (complex transformations). The following diagram is a high level architecture of the Translator:
The translation engine at the core of the Translator may be used independently and hosted by a back-office server application or incorporated into hosted services or batch processing. In the latter case, Translator includes a command line interface.
As an open source project, the Translator could be a great foundation for engineering work around document interoperability. ISVs can use the code as the basis for additional translators and programs and create a wide range of interoperability solutions that bridge Open XML and ODF. Novell has incorporated the translator into its implementation of OpenOffice for SUSE Linux, and others have taken the translator and integrated it into the Ubuntu Linux Open Office version.
The Open XML / ODF Translator project is hosted on Sourceforge, where you can get the installers (7 languages are supported) as well the source code: http://odf-converter.sourceforge.net/
Well, it came as no surprise that interoperability was a big part of the discussion at MIX09… at the keynote, in the breakouts, on the blogs, on Twitter, etc. Of course interoperability is a key consideration any time that you talk about cloud computing. Let’s be clear: Interoperability between the services platforms, the identity providers, the mashable services, the social networks and so on is now an integral part of the landscape.
MIX is a very special annual conference where Microsoft attempts to bridge the worlds of technology, design, entrepreneurship and business. Zooming into technology, we could draw much more interrelated circles, but my point is not to give a holistic view. Instead, I’ve highlighted a few sessions for you that are going deep into interoperability scenarios.
I’ll start with Vijay Rajagopalan’s session “Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!” where he presented:
Speaking about Azure, from the moment we kicked off our cloud computing effort, openness and interoperability stood at the forefront, we spelled it out clearly with Azure (see http://www.microsoft.com/azure screenshot below), and we mean it as this post illustrates.
The next session I’d recommend is Shaun Hirschman & Michael Joffe’s “Running PHP on Microsoft Servers and Services: Windows + PHP, explore the possible”
As Michael states in the opening, everybody is aware that PHP runs on Windows, but you don’t necessarily know all the legwork the Microsoft has been doing to enhance PHP on Windows, as well as all the interoperability touch points between PHP and Microsoft’s technologies. So in this session you’ll get the big picture. In particular don’t miss these demos:
Finally, I invite you to check out John Shewchuk’s session A Lap around Microsoft .NET Services, where he is doing “something a little wacky” as he said!
John demonstrates interoperability scenarios with .NET Services (which is part of the overall Azure Services platform) combined with different languages and platforms. John’s demos show how to leverage the Access Control Service & the Service Bus, with an application built using Python+JQuery running on the GoogleApp engine and using Yahoo as the OpenId provider. These are great scenarios involving notifications and federated identity across firewalls boundaries and heterogeneous systems.
Further down the talk, I also really liked the Facebook (PHP)/CinemaMIX (ASP.NET) application allowing users to invite friends to share (view/edit) your Netflix video queue. That’s cloud interoperability in action
This is only a short selection of the sessions tackling Interoperability. There are many other interesting sessions to discover, so get lost at http://videos.visitmix.com/MIX09 and have fun!
One more step for the Eclipse Tools for Silverlight (Eclipse4SL) project: the Customer Technology Preview (CTP) of Eclipse4SL with support for Macintosh is being delivered at MIX09, Microsoft’s conference for Web developers, designers, business and digital marketing professionals. With this plug-in, Mac developers using Eclipse can develop Rich Internet Applications (RIAs) using the Silverlight platform.
If you’re new to Eclipse4SL, here’s a quick recap: “The Eclipse tools for Silverlight project, aka eclipse4SL, is an Eclipse plug-in that enables developers to use the Eclipse IDE to create applications that run on the Microsoft Silverlight runtime platform. Announced in October of last year, the project is led by Soyatec, an IT solutions provider based in France & China, and also an Eclipse Foundation member (Yves Yang, Soyatec President). Microsoft provides funding and architectural guidance (in particular my colleagues Vijay Rajagopalan and Stève Sfartz)” (read the full introduction at Eclipse and Silverlight, another interoperability journey has begun)
The CTP not only enables support for the development experience on a Mac but it also includes many new features also available for the Windows version. To get the plug-in go to http://www.eclipse4sl.org/download/.
The demo is also posted on Youtube and MSN Video.
If you are attending MIX09, I encourage you to go to Vijay Rajagopalan’s session “Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!” (Friday, March 20, 10:45 AM-12:00 PM).
Vijay will give an overview of how Microsoft has delivered multiple technologies that focus on interoperability with non-Microsoft and open source technologies.
And of course he will also show the Eclipse Tools for Silverlight along with other interoperability scenarios, like combinations of Java, Ruby and PHP with the Azure Services Platform and the use of claims-based identity in support of heterogeneous identity systems.
Going back to the Eclipse4SL plug-in, let me share a few screenshots showing the new features:
Finally, while the Eclipse4SL plug-in brings Silverlight development capability to Eclipse, it also preserves the project structure to retain compatibility with other Microsoft tools (Visual Studio and Expression Blend) enabling collaboration between Eclipse developers (Java, PHP, etc…), .NET developers, and designers:
Finally, if you have feedback, join the conversation at http://www.eclipse4sl.org/community/
Silverlight is a cross-platform browser plug-in that enables rich media experiences and .NET-based Rich Internet Applications (RIAs) within the browser. While Microsoft creates developer and designers tools, interoperability scenarios using other tools makes sense simply because in many situations there are development teams working in heterogeneous environments. Searching for ways to assist these teams is how Eclipse tools for Silverlight came to life!
The Eclipse tools for Silverlight project, aka eclipse4SL, is an eclipse plug-in that enables Eclipse developers to use the Eclipse IDE to create applications that run on the Microsoft Silverlight runtime platform. Announced in October of last year, the project is led by Soyatec, an IT solutions provider based in France & China, and also an Eclipse Foundation member (Yves Yang, Soyatec President). Microsoft provides funding and architectural guidance (in particular my colleagues Vijay Rajagopalan and Stève Sfartz).
Since the release of a new beta version in December, additional technical content for Java developers has been published on the project site, giving guidance on key interoperability scenario sought by developers: facilitate interoperability between Silverlight clients and REST and SOAP (JAX-WS/CXF) Java web services.
Even though the V1 of the project is not yet complete, Soyatec has done a great job of building the early pieces of this bridge between Eclipse and Silverlight. The interoperability scenarios this project enables are very interesting, as it provides more choices to Java/Eclipse developers and opens up new opportunities for Silverlight adoption.
So if you haven’t had a chance to see the Eclipse tools for Silverlight in action, take a look at this demo. It gives an overview of the developer experience of creating a basic Silverlight application in Eclipse, shows how collaborating with a designer could work, and finally you’ll see a sample Silverlight application talking to a Java web service, from the www.Youtube.com/interopbydesign channel:
If you want to try it for yourself it’s very easy, just follow the step-by-step installation guide on http://www.eclipse4sl.org/download/. The eclipse4SL plug-in can be installed directly from the internet with the Eclipse software update wizard (see screenshot below):
Then you can explore the Hello, world and DataGrid tutorials that my colleague Stève Sfartz has prepared for you. Also you might want to check this tutorial that has just been posted on Devx: Getting Started with Silverlight for Eclipse.
I don’t write a lot of code these days, but from a developer point of view I think it is cool to deliver interoperability at this level, and to extend the Silverlight development experience to Eclipse developers. For a nascent project, the eclipse4SL has been well received by the community and is currently in the top 10 “Top Rated” on www.eclipseplugincentral.com (a portal that helps developers find Eclipse plug-ins):
(Screenshot taken on 02/03/2009)
Of course, if you have feedback, feel free to join the conversation.
Hi, my name is Jas Sandhu and I am an evangelist on the Microsoft Interoperability Strategy Team. I manage our overall Document Interoperability Initiative community outreach, working with Doug Mahugh and many others in the Office team.
On Friday we published Office 2007 SP2 implementation notes for the ECMA-376 1st Edition (aka Open XML).
I invite you to read Doug's post to get more details.
This new drop follows the publication of the ODF 1.1 implementation notes in December. The implementation notes site is http://www.documentinteropinitiative.org/.
This is also an opportunity for me to shed some light on the goals of the Document Interoperability Initiative, which -from the website - are:
We will use this blog to report what's going on regarding these goals and to report more broadly on document format interoperability.
Progress is being made on working together as a community and we are keen to foster such collaborative work. Implementer notes are incredibly useful, but to understand interoperability issues, sometimes it requires stepping back and discussing different approaches with others who save similar goals.
This is what we're doing with the DII workshops that we've been running around the world since last year. The most recent DII workshop took place in Brussels. Some of the organizations that participated include Fraunhofer, Dialogika, SourceSense, Wygwam, RealDolmen, Fedict, IRIS, Getronics, Ovum and Microsoft. You can find more here on the DII website and also on the blog of the some of the participants: Martin Balliauw, Julien Chable. Here's the Network World story about the event. We also produced a 5 minute recap that will give you a good overview of what happened:
I am a Principal Program Manager in Jean Paoli’s Interoperability Technical Strategy Team. Among other things, I am also the lead for Microsoft’s participation in the Apache incubator project, Stonehenge. I am really excited about Microsoft’s participation in this effort and look forward to our continued involvement with it.
As Jean discussed in his post, Microsoft has been working on many open source projects but this is the first time that Microsoft is participating as a code contributor in an Apache project! This has been a very valuable learning experience for us here at Microsoft that will significantly inform and influence many future projects, I am sure.
In November, I wrote on port25 about ApacheCon and the Stonehenge incubator project. Lots of activities have taken place since then around Stonehenge. It was approved as an incubator project within Apache Software Foundation, and WSO2 and Microsoft have already contributed code for a web-services based sample application (called StockTrader) to this effort. Our code can be found here, along with the contributions from WSO2.
We have three committers from Microsoft on the Stonehenge incubator project. Most of the credit must go to Greg Leake, who wrote the original StockTrader application, and Drew Baird, who worked to get it ready for contribution to Stonehenge. Mike Champion is also going to play an active role in this effort, as he mentioned in his recent blog where he describes how “Stonehenge can help wire up the "last mile…"
Projects like Stonehenge are very important to enhance interoperability between different software implementations. Standards organizations do a great job and the roll out of various WS-* standards is a testimonial to the fact that they can work efficiently. But interoperability work doesn’t stop at the end of the standardization process… in fact, that is where it really starts.
It is important for customers and the industry to have multiple implementations of these standards and have the ability to choose the best ones for their scenarios and requirements. This will encourage competition and ensure the production of better quality software in response to market forces. Interoperability work within an open community generates both competition and collaboration. Customers will be able to get working code on multiple platforms and vendors will be able to catch bugs and test interoperability issues in an open manner.
Stonehenge has attracted some very prominent committers so far and I hope that the momentum will be sustained. I am looking forward to seeing code contributions from other folks and seeing the StockTrader sample application enhanced with new features. I also hope that new sample applications will be developed to cover other areas of the WS-* standards that are not best represented by the StockTrader application. I look forward to participating in this discussion with the Stonehenge community.
I also want to thank the folks at WSO2 inc. for their leadership and guidance in driving the Stonehenge project. Congratulations are due to Paul Fremantle, Sanjiva Weeravaran, Jonathan Marsh and their dev team for successfully launching and steering this project so far. We are happy to follow and work with other participants in making it successful.
I would like to hear comments and feedback on the Stonehenge project and also discuss ideas around other interoperability projects of similar nature. Looking forward to the conversation!
I am the General Manager of Interoperability Strategy at Microsoft, and I have been working across the company on many interoperability initiatives. It makes me happy to see so many interoperability projects coming out of Microsoft and, personally, having many of them based on XML makes me doubly happy. So I thought it was the right time to open this blog with the purpose of sharing with you activities that relate to interoperability at Microsoft and to start generating ongoing discussions. Here we will write about interoperability scenarios, the technologies enabling them, and important issues concerning the industry at large.
We recognize that we need to work more at engaging with the community in an open way on interoperability. This means being certain to listen to the community and to have open discussions with you in this blog about interoperability scenarios and technologies.
Interoperability has been a long-time focus area at Microsoft. Being a platform company, Microsoft has engaged in interoperability at many levels: product features, participation in standardization bodies, publishing technologies under open licenses, and working closely with customers, governments and partners to understand the heterogeneous IT landscape and to discuss practical interoperability solutions. These activities were formalized under the Interoperability Principles earlier this year.
My team has built several technical bridges and solutions for various products to enable interoperability with other platforms and applications. These are being run as open source projects and released under a broad BSD license, or other licenses such as MS-PL or Apache, so that our customers and partners can use them in many open and broad reaching scenarios. We have been working with many other teams at Microsoft and with both our customers and the community to develop these projects. We also run interoperability labs and plug-fests to test how Microsoft and Non-Microsoft products interoperate.
Many members of Microsoft, as well as members of my team, such as Vijay Rajagopalan, Sumit Chawla, Kamaljit Bath, Claudio Caldato, and Jean-Christophe Cimetiere will be posting on this blog, I would like to hear your comments and feedback and also welcome open engagement on what Microsoft should be doing for interoperability. I would also like to take this chance to thank the many third party companies and community members who have collaborated with us in our efforts to improve and expand the interoperability of Microsoft technologies, platforms and applications.
Jean Paoli General Manager of Interoperability Strategy