Microsoft is taking a multifaceted approach to interoperability including collaboration with partners, developing interoperable products/technologies, promoting standards, and providing developer resources. This includes tools like Eclipse for Silverlight which allows Eclipse developers to build applications with Silverlight, and SDKs for Azure that enable PHP, Java and Ruby developers to leverage Microsoft cloud services. Customer feedback has been positive for these cross-platform tools and Microsoft is continuing work on interoperability bridges between technologies like RIA, SOA, identity and web services.
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
Vijay Oscon
1. Interoperability - Build Mission Critical Applications in PHP, Java, Eclipse & Ruby using Microsoft Software + Services Vijay Rajagopalan Principal Architect Microsoft Corporation
2. Microsoft’s Multifaceted Approach to Interoperability - Working openly with others to foster choice and innovation ? Collaboration Products Work jointly with partners, competitors and the open source community Deliver interoperability in Microsoft products and technologies Standards Developer Resources Promote interoperability through new and existing standards Make it easier to develop products that interoperate with Microsoft solutions Customer Input and Feedback 2
3. Handling Today’s Situations – Winning Trust Finally! Sliverlight with Eclipse” Microsoft ships Cross Platform SDKs for Azure Microsoft launches PHP Tools for Windows Azure H4ck3rz, March 2009 SD Times, May 2009 IT World, Oct 2008 Eclipse for Silverlight Azure Services Platform Windows Azure
5. Background Cross Platform & browser RIA Framework Silverlight XAML vocabulary published under Open Specification Promise(OSP) Silverlight Control Pack released under OSI approved MS-PL license on Codeplex Growing Tooling Support from Partners Captaris Inc., Telerik Inc., ComponentOne LLC, Infragistics, Software FX Inc., Intersoft Solutions Corp., Developer Express Inc., K2, Gizmox and RemObjects Software LLC Moonlight effort to support Linux & Firefox Expanded .NET Framework Language support VB, C#, Managed JavaScript, IronPython, IronRuby
6. Eclipse Tools for Silverlight Eclipse Tools for Silverlight (“eclipse4SL” )- A plug-in that enables the development of Silverlight applications within the Eclipse development environment Eclipse Developers … + Open Source Project www.eclipse4sl.org Developed by Soyatec Funded by Microsoft
13. High level Architecture - Developer Environment Eclipse IDE Silverlight 2 DeveloperRuntime or Silverlight 2 Runtime Silverlight 2 SDK MSBuild 3.5 Tasks Client & Server Librairies Documentation & Reference eclipse4SL Embedded Web Server eclipseGanymede Java Runtime .NET Framework .NET 3.5 (MSBuild 3.5) .NET 3.0 SP1 + SP2 .NET 2.0 SP1 + SP2 (MSBuild 2.0)
14. eclipse4SL: key features Enabling interoperability scenario for development teams working in heterogeneous environments
15. Interoperability with Java based Web Services Code Patterns & Interop Guidance Prescriptive Guidance for connecting Siverlight with Java web services (JAX & REST.) http://www.sl4eclipse.org/documentation/userdoc/html/webservice/restlet/ http://www.sl4eclipse.org/documentation/userdoc/html/webservice/cxf/
19. Extending Silverlight to PHP Applications Silverlight Mediawiki Extension Base Sytax <silverlight[attributes]>filename.xap</silverlight > Attribute Reference width= % (Modify the width of the object) Height=% (Modify the height of the object) Example <silverlight width="800" height="400">http://www.eclipse4sl.org/demo/Test.xap</silverlight>
23. REST (XML, JSON, AtomPub) http:// Plain Old XML Services Web SOAP Azure™ Services Platform Azure & Interoperability
24. What is ? It is an operating system for the cloud It is designed for utility computing It has four primary features: Service management Compute Storage Developer experience
25. March Community Technology Preview (CTP) supports .NET Full Trust provides developers with a level of flexibility on Windows Azure FastCGI allows developers to deploy and run web applications written with 3rd party programming languages on Windows Azure Geolocation provides developers with the ability to specify a data center location for their applications and data on Windows Azure Use PHP while realizing the benefits of Windows Azure Automated service management You define the rules and provide your code The platform follows the rules: deploys, monitors, and manages your service A powerful service hosting environment All of the hardware: servers; load balancers; … Scalable, available cloud storage (via REST) Blobs, tables, queues, … Developer Experience: Simulated cloud environment + PHP
26. + FastCGI Windows Azure now supports The FastCGI module PHP enabled via xcopy deploy of PHP runtime binaries And, the IIS7 URL rewrite module to enable friendly URL’s with PHP apps
27. + FastCGI w/simulated load-balancing in dev environment 1 2 3
28. Windows Azure Compute Service A closer look Web Role Worker Role main() { … } HTTP ASP.NET, WCF, etc. IIS Load Balancer Agent Agent Windows Azure Fabric Application Storage Compute Fabric VM …
29. PHP SDK for Windows Azure Logical architecture Overview Enables PHP developers to take advantage of the Microsoft Cloud Services Platform – Windows Azure. Features PHP classes for Windows Azure Blobs, Tables & Queues (for CRUD operations) Helper Classes for HTTP transport, AuhN/AuthZ, REST & Error Management Manageability, Instrumentation & Logging support Project site: http://www.codeplex.com/PHPAzure Contribution to Zend Framework enabling speed dial to Windows Azure PHP developers Released under “bsd” license Your PHP application XML REST Compute Storage Manage Deployement scenarios PHP Runtime Any internet connected Server PHP Runtime REST REST Compute Storage Manage
32. .NET ServicesInfrastructure in the cloud Access Control Service Bus Workflow .NET Services SQL Services Applications Live Services Windows Azure ? Applications Windows Mobile Windows Vista/XP Windows Server Others
33. The Service Bus The problem: Exposing internal applications on the Internet isn’t easy Network address translation (NAT) and firewalls get in the way The solution: Service Bus provides a cloud-based intermediary between clients and internal applications It also provides a service registry that clients can use to find the services they need
34. Service Bus 2) Discover endpoints Registry 1) Register endpoints 3) Access application Endpoints Application Application Organization X Organization Y Access Control Service Bus Workflow Service Bus
35. Enabling Interoperability between heterogeneous systems Azure Services Platform Azure Services SOAP SOAP Your Cloud Application REST REST XML XML End Users Java & Ruby SDKs for .NET Services .NET SDKs Coming Soon Your Software Application Developers
39. platform to build, deploy and manage reliable, Internet-scale applications Ruby SDK for .NET Services Contributors: Thoughtworks, Microsoft Sample Scenario Classifieds Application (Ruby) This scenario presents a simple classified advertisement system that can be used to post, browse, or search for ads. This sample shows how to use the .NET Services from Ruby with the Ruby SDK. www.dotnetservicesruby.com Java SDK for .NET Services Contributors: Schakra Inc, Microsoft Sample Scenario Supply Chain Management (Java) Supply Chain Management (SCM) is a general scenario where a retailer provides a products catalog to end users based on products in a warehouse. The sample illustrates the usage and interaction of the Java SDK with Microsoft .NET Services. www.jdotnetservices.com
40. Java SDK for .NET Services High level Architecture Open source project offers Java libraries, samples and guidance help Java developers to build applications using the Microsoft .NET Services. Architecture: Java SDK leverages Metro, an open source web services stack (part of the GlassFish project supported by Sun Microsystems). Metro includes WSIT, which provides support for the core WS-* standards and an enhanced support for interoperability with the Windows Communication Foundation and the .NET Framework.
41. Ruby SDK for .NET Services The Ruby SDK for .NET Services is an open source project that helps Ruby programs communicate with Microsoft .NET Services using plain HTTP. Specifically the SDK includes set of REST libraries, tools, prescriptive patterns & guidance and sample applications that will enhance productivity for Ruby developers. Developers will be able to leverage the .NET Services to extend their Ruby applications by using the Microsoft cloud services platform to build, deploy and manage reliable, Internet-scale applications. Ruby SDK for .NET Services Contributors: Thoughtworks Inc Microsoft Project website: www.dotnetservicesruby.com Sample scenario: Classifieds Application This scenario presents a simple classified advertisement system that can be used to post, browse, or search for ads. This sample shows how to use the .NET Services from Ruby with the Ruby SDK.
42. Call to ActionPoints of interest Microsoft’s approach to Interoperability OpenSource Interoperability Bridges on RIA, SOA, Identity,Web2.0, S+S & Document formats. Take advantage of Opensource Technical Bridges & Contribute More details at www.interopbridges.com www.microsoft.com/interop Round Table Discussion “ Microsoft & PHP” Tomorrow at 1PM Meeting Room C2
There is no one right way to achieve interoperability. Vendors, depending on their market position, product and customer needs, are taking varying approaches to enable greater interoperability with their products. That said, Microsoft is making significant investments and efforts to address this issue. We are taking a multi-faced approach to providing our customers the ability to choose best of breed applications for their business needs. Our goal is to deliberately design interoperability into our products, especially our core business products. Not only has Microsoft taken a leadership role in the standardization of Web Service (WS-*) specifications through the W3C and OASIS, but we’ve provided and incorporated early, complete implementations of these specifications and protocols into almost all of our applicable products. We’ve also worked with other vendors to test the compatibility of these protocol implementations through plugfests. We continue to enhance our products with new capabilities that can help reduce the cost of running a mixed IT environment. Through our work with the IEC Council, IVA and other technical collaborations, we are also building technical bridges—such as plug-ins and translators—that enable an ever-growing number of products to work with Microsoft solutions. Working with other industry members, Microsoft collaborating with, and broadening our relationships with, dozens of technology companies to improve interoperability for our mutual customers. We’re working with the companies whose products are in your data centers and on your desktops—EMC, IBM, Novell, Oracle, SAP, Sun and many others. In addition to partnerships with individual companies, Microsoft is also a member of the Interop Vendor Alliance (IVA), which brings together more than 50 hardware and software vendors. This collaborative industry group develops, tests, publishes and supports interoperable, multi-vendor solutions.Wealso are also actively collaborating with the open source community. We believe both Microsoft and open source software can provide value to our customers, and we want to make it easier for customers to develop and deploy a mix of open source and Microsoft technologies. Today there are more than 80,000 open source projects that run on Windows or are built with our development platform, .NET. We are even releasing our some of our internally developed code to the open source community. Microsoft both competes and partners with traditional commercial vendors, and will continue to do so with open source-based businesses, with a focus on providing value for shared customers. For example, our ongoing working with MySQL to ensure a great experience for .NET developers using Visual Studio and the MySQL database, or our work with SugarCRM to ensure SugarCRM customers have a great experience with Outlook integration. This is the reality in a heterogeneous world.Standards are also central to our interoperability efforts – though, we don’t believe that standards, by themselves, are sufficient to resolve the industry’s interoperability issues. At Microsoft, our belief is that customers are best served when we support open standards, then compete in the marketplace on customer value. Our products support a long list of standards, allowing them to interoperate with other products that also implement those standards. Where we see an unmet need in the market, we work jointly with other industry players to specify new standards that can help resolve the big interoperability issues facing enterprise customers. Each year, Microsoft contributes to, and collaborates with, more than 150 standards organizations.Finally, we are being more open in how we share and provide access to our intellectual property. We’ve taken a number of steps to make it easier for developers to build solutions that work alongside Microsoft products. Through activities such as our technical licensing program, interoperability labs, community support forums, and the publishing of more than 50,000 pages of technical documentation, we are creating more opportunities for people to develop products that complement, sometimes even compete with, Microsoft solutions. This gives our customers more choices for innovation, and a greater range of options for getting even more value from the Microsoft products you already use.Everything begins and ends with our customers. It’s the input and feedback we get from customers that help us set, and if needed reset, our priorities for the product innovations we develop, the collaborations we pursue and the standards we support. It also drives our desire to foster a rich software ecosystem that provides increased opportunity for customers to take advantage of the strengths of Microsoft technologies in a mixed IT environment. Through these combined efforts, we aim to drive greater interoperability and “walk the walk” of our commitment to increased openness.
Allows Eclipse developers to build RIA with SilverlightSolves Toughest interoperability issues between Silverlight & Java Web ServicesAllows Collaboration between Web Designers, .NET Developers, and Eclipse Developers (Java, PHP, ..): EclipseMicrosoft Visual StudioMicrosoft Expression Studio
Much like the .NET Framework provides higher-level class libraries that make developers more productive, .NET Services enables developers to focus on their application logic rather than building and deploying their own cloud-based infrastructure services. While more services are in the works, .NET Services currently includes three core components — Access Control, Service Bus, and Workflow service.
We target a lot of different kinds of developers…
Much like the .NET Framework provides higher-level class libraries that make developers more productive, .NET Services enables developers to focus on their application logic rather than building and deploying their own cloud-based infrastructure services. While more services are in the works, .NET Services currently includes three core components — Access Control, Service Bus, and Workflow service.
Take your application to the next level
The purpose of these projects is to provide open source software development kits (SDKs) which include a set of libraries, tools, prescriptive patterns & guidance and real world sample applications that will enhance productivity for Java and Ruby developers. Developers will be able to leverage the Microsoft .NET Services to extend their Java and Ruby applications by using the Microsoft cloud services platform to build, deploy and manage reliable, Internet-scale applications.
Architecture: Java SDK leverages Metro, an open source web services stack (part of the GlassFish project supported by Sun Microsystems). Metro includes WSIT, which provides support for the core WS-* standards and an enhanced support for interoperability with the Windows Communication Foundation and the .NET Framework.
The Ruby SDK for .NET Services is an open source projects that helps Ruby programs communicate with Microsoft .NET Services using plain HTTP. Specifically the SDK includes set of REST libraries, tools, prescriptive patterns & guidance and sample applications that will enhance productivity for Ruby developers. Developers will be able to leverage the .NET Services to extend their Ruby applications by using the Microsoft cloud services platform to build, deploy and manage reliable, Internet-scale applications.More information at www.dotnetservicesruby.comThe Ruby SDK for .NET Services is an open source projects that helps Ruby programs communicate with Microsoft .NET Services using plain HTTP. Specifically the SDK includes set of REST libraries, tools, prescriptive patterns & guidance and sample applications that will enhance productivity for Ruby developers. Developers will be able to leverage the .NET Services to extend their Ruby applications by using the Microsoft cloud services platform to build, deploy and manage reliable, Internet-scale applications.More information at www.dotnetservicesruby.comArchitecture: The Ruby SDK includes a set of REST libraries, tools, prescriptive patterns & guidance and sample applications that will enhance productivity for Ruby developers.Sample Classifieds Application presents a simple classified advertisement system that can be used to post, browse, or search for ads. This sample shows how to use the .NET Services from Ruby with the Ruby SDK