This blog post was originally written for YAPS
"Our goal is to promote greater interoperability, opportunity and choice for customers and developers throughout the industry by making our products and by sharing even more information about our technologies" - Steve Ballmer, CEO, Microsoft.
I have written this post in a Question and Answer format so that one can quickly browse through the relevant details as per the requirement. Click on the question to know the Answer!
- Why Interoperability?
- How is Microsoft supporting Interoperability?
- What is Windows Azure™ Platform?
- What are the various Windows Azure™ Platform Products?
- How does Windows Azure™ Platform support Interoperability?
- Does Windows Azure™ make Interoperability easier for developers?
- What are the various tools and SDKs offered by Windows Azure™ to support Interoperability?
"Interoperability... that's what customers do, that's what customers want, that's what customers need" - Ray Ozzie, Chief Software Architect, Microsoft.
According to Microsoft the three driving reasons for Interoperability are:
- OPEN TO CHOICE: Government, developers, and citizens can choose the technologies that work best for them with interoperability.
- OPEN TO INNOVATION: Interoperability drives innovation within a thriving IT industry, creating technologies that improve citizen services and government efficiency.
- OPEN TO OPPORTUNITY: When the IT community collaborates and develops new technologies that work together, new opportunities are created.
How is Microsoft supporting Interoperability?
"Microsoft's role as a key player in interoperability will help remove the main technical barriers to global-government administrative services, reducing cost and time to market" - Ignacio Alamillo, Research Director, Generalitat de Catalunya, Spain
Microsoft has established an Interoperability Bridges & Labs Center, which is dedicated to technical collaborative work, to improve interoperability between Microsoft and non-Microsoft technologies. The vast majority of the projects are Open Source. The Center is run by the Microsoft Interoperability Strategy Group working with the community at large.
What is Windows Azure™ Platform?
The Windows Azure platform is a set of cloud computing services that can be used together or independently that enable:
- - Developers use existing skills and familiar tools to develop cloud applications
- - ISVs and System Integrators rapidly reach market and pay as you go
- - IT Managers gain access to a new set of resources without adding complexity
- - Businesses of all sizes to quickly respond as business needs change
What are the various Windows Azure™ Platform Products?
The three major Windows Azure™ platform products include Windows Azure™, Microsoft® SQL Azure™ and Windows Azure™ AppFabric. They are described below:
- Windows Azure™ is a cloud services operating system that serves as the development, service hosting and service management environment for the Windows Azure platform. Windows Azure provides developers with on-demand compute and storage to host, scale, and manage web applications on the internet through Microsoft® datacenters. Windows Azure is a flexible platform that supports multiple languages and integrates with your existing on-premises environment. To build applications and services on Windows Azure, developers can use their existing Microsoft Visual Studio® expertise. In addition, Windows Azure supports popular standards, protocols and languages including SOAP, REST, XML, Java, PHP and Ruby. Windows Azure is now commercially available in 40 countries.
- Microsoft® SQL Azure™ Database is the secure relational database based on familiar SQL Server technologies that you’ve come to rely on. The difference is that it’s a cloud database running in Microsoft datacenters around the globe. High-availability and fault tolerance are built in – giving you the ability to start small or serve a global customer base immediately.
- Windows Azure™ AppFabric helps developers connect applications and services in the cloud or on-premises. This includes applications running on Windows Azure, Windows Server and a number of other platforms including Java, Ruby, PHP and others. It provides a Service Bus for connectivity across network and organizational boundaries, and Access Control for federated authorization as a service.
How does Windows Azure™ Platform support Interoperability?Microsoft claims that the Windows Azure platform has been built from the ground up with interoperability in mind. It is an open platform, which allows them to use multiples languages (.NET, PHP, Ruby, Python or Java) and development tools (Visual Studio or Eclipse) to build applications which run on Windows Azure and/or consume any of the Windows Azure platform offerings from any other cloud or on premise platform. Windows Azure platform supports multiple Internet protocols including HTTP, XML, SOAP and REST —key pillars of data portability.
Does Windows Azure™ make Interoperability easier for developers?
From the developer’s standpoint, interoperability creates opportunities to combine new Azure cloud-based applications with other platforms. Developers can easily combine applications living on other clouds or on-premise using services offered by the Windows Azure platform. They can also build and enhance applications using their existing skills with the Microsoft Visual Studio development environment and the .NET Framework, or with other development environments like Eclipse. Developers have the choice of several languages for building their applications, including:
- .NET (C# and Visual Basic), C++
- PHP, Ruby, Python
- Plug-in for Eclipse,
- SDKs for Java, PHP, and Ruby.
What are the various tools and SDKs offered by Windows Azure™ to support Interoperability?
In 2009, Microsoft had collaborated with Soyatec, a France-based IT solutions provider, to develop three solutions:
- Windows Azure Tools for Eclipse for PHP developers: www.windowsazure4e.org
- Windows Azure Software Developer Kit (SDK) for Java: www.windowsazure4j.org
- Eclipse Tools for Silverlight: www.eclipse4SL.org
The Windows Azure Command-line Tools for PHP enable developers to easily package and deploy PHP applications to Windows Azure using a simple command-line tool. The tools allow creating new applications or converting existing PHP applications to Windows Azure and by creating the deployment package (.cspkg) and Configuration file (.cscfg).
The Windows Azure Tools for Eclipse plug-in offers PHP developers a series of wizards and utilities allowing to write, debug, configure, and deploy PHP applications to Windows Azure. The plug-in bundles the existing Windows Azure SDK for PHP into the Eclipse PHP project. The plug-in includes a Window Azure storage explorer that allows developers to browse data contained into the Windows Azure tables, blobs, or queues.
The Windows Azure SDK for PHP enables PHP developers to take advantage of the Microsoft Cloud Services Platform -Windows Azure. This includes support for Manageability instrumentation, logging, PHP classes for Azure Blobs, tables and queries, as well as helper classes for HTTP transport, AuhN/AuthZ, REST, and error management.
The Windows Azure SDK for Java gives developers a speed dial to leverage Windows Azure Storage services. This SDK is used in the Windows Azure Tools for Eclipse project to develop the Windows Azure Explorer feature.
The Java AppFabric SDK facilitates cross platform development between Java projects and the Windows Azure AppFabric using the service bus and access control. This SDK enables Java developers to easily leverage Windows Azure and demonstrates the Interoperable nature of the Windows Azure platform. The SDK includes a set of libraries, tools, prescriptive guidances, and sample applications that will enhance productivity for Java developers willing to use the service bus and access control to extend their applications.
The Ruby AppFabric SDK facilitates cross platform development between Ruby projects and the Windows Azure AppFabric using the service bus and access control. This SDK enables Ruby developers to easily leverage Windows Azure and demonstrates the Interoperable nature of the Windows Azure platform. The SDK includes a set of libraries, tools, prescriptive guidances, and sample applications that will enhance productivity for Ruby developers willing to use the service bus and access control to extend their applications.
The PHP AppFabric SDK for Developers is an open source software development kit (SDK) that helps PHP programs communicate with Windows Azure platform AppFabric using RESTful APIs.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.