Interoperability - Build Mission Critical Applications in PHP, Java, Eclipse & Ruby using Microsoft Software  + ServicesVijay RajagopalanPrincipal ArchitectMicrosoft Corporation
Microsoft’s Multifaceted Approach to Interoperability -Working openly with others to foster choice and innovation?CollaborationProductsWork jointly with partners, competitors and the open source communityDeliver interoperability in Microsoft products and technologiesStandardsDeveloper ResourcesPromote interoperability through new and existing standardsMake it easier to develop products that interoperate with Microsoft solutionsCustomer Input and Feedback2
Handling Today’s Situations – Winning TrustFinally! Sliverlight with Eclipse”Microsoft ships Cross Platform SDKs for AzureMicrosoft launches PHP Tools for Windows AzureH4ck3rz, March 2009 SD Times, May 2009IT World, Oct 2008 Eclipse for SilverlightAzure Services  PlatformWindows Azure
Silverlight Interoperability
BackgroundCross Platform & browser RIA FrameworkSilverlight XAML vocabulary published under Open Specification Promise(OSP) Silverlight Control Pack released under OSI approved MS-PL license on CodeplexGrowing Tooling Support from PartnersCaptaris 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 & FirefoxExpanded .NET Framework Language supportVB, C#, Managed JavaScript, IronPython, IronRuby
Eclipse Tools for SilverlightEclipse Tools for Silverlight  (“eclipse4SL” )-  A plug-in that enables the development of Silverlight applications within the Eclipse development environmentEclipse Developers…+Open Source Project www.eclipse4sl.orgDeveloped by SoyatecFunded by Microsoft
Why eclipse4SL?Allows Eclipse developers to build RIA with Silverlight
Solves Toughest interoperability issues between Silverlight & Java Web Services
Allows Collaboration between  Web Designers,  .NET Developers, and Eclipse Developers (Java, PHP, ..)
Eclipse
Microsoft Visual Studio
Microsoft Expression StudioEclipse DeveloperCommon Project System.NET DeveloperWeb Designer
High level Architecture -Developer EnvironmentEclipse IDESilverlight 2 DeveloperRuntimeor Silverlight 2RuntimeSilverlight 2SDKMSBuild 3.5 TasksClient & Server LibrairiesDocumentation & Referenceeclipse4SLEmbedded Web ServereclipseGanymedeJava Runtime.NET Framework.NET 3.5  (MSBuild 3.5).NET 3.0 SP1 + SP2.NET 2.0 SP1 + SP2 (MSBuild 2.0)
eclipse4SL: key featuresEnabling interoperability scenario for development teams working in heterogeneous environments
Interoperability with Java based Web ServicesCode Patterns & Interop GuidancePrescriptive 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/ 
Eclipse4SL on WindowsDemo
Customer Feedback
Eclipse Tools for Silverlight on Mac OS
Extending Silverlight to PHP ApplicationsSilverlight Mediawiki ExtensionBase Sytax<silverlight[attributes]>filename.xap</silverlight >Attribute Referencewidth= % (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>
    Project: www.eclipse4sl.org
Azure Services Platform Interoperability
Azure Services Platform OverviewAzure™ Services Platform
REST(XML, JSON,AtomPub)http://Plain Old XMLServices WebSOAPAzure™ Services PlatformAzure & Interoperability
What is                                            ?It is an operating system for the cloudIt is designed for utility computingIt has four primary features:Service managementComputeStorageDeveloper experience
March Community Technology Preview (CTP) supports  .NET Full Trust  provides developers with a level of flexibility on Windows AzureFastCGI allows developers to deploy and run web applications written with 3rd party programming languages on Windows AzureGeolocation provides developers with the ability to specify a data center location for their applications and data on Windows AzureUse PHP while realizing the benefits of Windows AzureAutomated service managementYou define the rules and provide your codeThe platform follows the rules: deploys, monitors,  and manages your serviceA powerful service hosting environmentAll of the hardware: servers; load balancers; …Scalable, available cloud storage (via REST)Blobs, tables, queues, …Developer Experience: Simulated cloud environment                                   + PHP
                                            + FastCGIWindows Azure now supportsThe FastCGI modulePHP enabled via xcopy deploy of PHP runtime binariesAnd, the IIS7 URL rewrite module to enable friendly URL’s with PHP apps
                                              + FastCGI w/simulated load-balancing in dev environment123
Windows Azure Compute Service A closer lookWeb RoleWorker Rolemain(){  …  }  HTTPASP.NET, WCF, etc.IISLoad BalancerAgentAgentWindows Azure FabricApplicationStorage ComputeFabricVM…
PHP SDK for Windows AzureLogical architecture OverviewEnables PHP developers to take advantage of the Microsoft Cloud Services Platform  – Windows Azure.  FeaturesPHP classes for Windows Azure Blobs, Tables & Queues (for CRUD operations)Helper Classes for HTTP transport, AuhN/AuthZ, REST & Error ManagementManageability, Instrumentation & Logging supportProject site: http://www.codeplex.com/PHPAzureContribution to Zend Framework enabling speed dial to Windows Azure PHP developersReleased under “bsd” licenseYour PHP applicationXMLRESTComputeStorageManageDeployement scenariosPHP RuntimeAny internet connected ServerPHP RuntimeRESTRESTComputeStorageManage
Windows Azure – PHP Tooling from Eclipsedemo
Azure Services Platform OverviewAzure™ Services Platform
.NET ServicesInfrastructure in the cloudAccess ControlService BusWorkflow.NET ServicesSQL ServicesApplicationsLive ServicesWindows Azure?ApplicationsWindowsMobileWindowsVista/XPWindowsServerOthers
The Service BusThe problem: Exposing internal applications on the Internet isn’t easyNetwork address translation (NAT) and firewalls get in the wayThe solution:Service Bus provides a cloud-based intermediary between clients and internal applicationsIt also provides a service registry that clients can use to find the services they need
Service Bus2) Discover endpointsRegistry1) Register endpoints3) Access applicationEndpointsApplicationApplicationOrganization XOrganization YAccess ControlService BusWorkflowService Bus
Enabling Interoperability between heterogeneous systemsAzure Services PlatformAzure ServicesSOAPSOAPYour CloudApplicationRESTRESTXMLXMLEnd UsersJava  & Ruby SDKs for .NET Services.NET SDKsComing SoonYour  Software ApplicationDevelopers
Cross Platform SDK for .NET ServicesGoals of these community-based projectsOpen source software development kits (SDKs) including:a set of libraries, tools, Prescriptive guidance

Vijay Oscon

  • 1.
    Interoperability - BuildMission Critical Applications in PHP, Java, Eclipse & Ruby using Microsoft Software + ServicesVijay RajagopalanPrincipal ArchitectMicrosoft Corporation
  • 2.
    Microsoft’s Multifaceted Approachto Interoperability -Working openly with others to foster choice and innovation?CollaborationProductsWork jointly with partners, competitors and the open source communityDeliver interoperability in Microsoft products and technologiesStandardsDeveloper ResourcesPromote interoperability through new and existing standardsMake it easier to develop products that interoperate with Microsoft solutionsCustomer Input and Feedback2
  • 3.
    Handling Today’s Situations– Winning TrustFinally! Sliverlight with Eclipse”Microsoft ships Cross Platform SDKs for AzureMicrosoft launches PHP Tools for Windows AzureH4ck3rz, March 2009 SD Times, May 2009IT World, Oct 2008 Eclipse for SilverlightAzure Services PlatformWindows Azure
  • 4.
  • 5.
    BackgroundCross Platform &browser RIA FrameworkSilverlight XAML vocabulary published under Open Specification Promise(OSP) Silverlight Control Pack released under OSI approved MS-PL license on CodeplexGrowing Tooling Support from PartnersCaptaris 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 & FirefoxExpanded .NET Framework Language supportVB, C#, Managed JavaScript, IronPython, IronRuby
  • 6.
    Eclipse Tools forSilverlightEclipse Tools for Silverlight (“eclipse4SL” )- A plug-in that enables the development of Silverlight applications within the Eclipse development environmentEclipse Developers…+Open Source Project www.eclipse4sl.orgDeveloped by SoyatecFunded by Microsoft
  • 7.
    Why eclipse4SL?Allows Eclipsedevelopers to build RIA with Silverlight
  • 8.
    Solves Toughest interoperabilityissues between Silverlight & Java Web Services
  • 9.
    Allows Collaboration between Web Designers, .NET Developers, and Eclipse Developers (Java, PHP, ..)
  • 10.
  • 11.
  • 12.
    Microsoft Expression StudioEclipseDeveloperCommon Project System.NET DeveloperWeb Designer
  • 13.
    High level Architecture-Developer EnvironmentEclipse IDESilverlight 2 DeveloperRuntimeor Silverlight 2RuntimeSilverlight 2SDKMSBuild 3.5 TasksClient & Server LibrairiesDocumentation & Referenceeclipse4SLEmbedded Web ServereclipseGanymedeJava 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 featuresEnablinginteroperability scenario for development teams working in heterogeneous environments
  • 15.
    Interoperability with Javabased Web ServicesCode Patterns & Interop GuidancePrescriptive 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/ 
  • 16.
  • 17.
  • 18.
    Eclipse Tools forSilverlight on Mac OS
  • 19.
    Extending Silverlight toPHP ApplicationsSilverlight Mediawiki ExtensionBase Sytax<silverlight[attributes]>filename.xap</silverlight >Attribute Referencewidth= % (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>
  • 20.
    Project: www.eclipse4sl.org
  • 21.
    Azure Services PlatformInteroperability
  • 22.
    Azure Services PlatformOverviewAzure™ Services Platform
  • 23.
    REST(XML, JSON,AtomPub)http://Plain OldXMLServices WebSOAPAzure™ Services PlatformAzure & Interoperability
  • 24.
    What is ?It is an operating system for the cloudIt is designed for utility computingIt has four primary features:Service managementComputeStorageDeveloper experience
  • 25.
    March Community TechnologyPreview (CTP) supports .NET Full Trust provides developers with a level of flexibility on Windows AzureFastCGI allows developers to deploy and run web applications written with 3rd party programming languages on Windows AzureGeolocation provides developers with the ability to specify a data center location for their applications and data on Windows AzureUse PHP while realizing the benefits of Windows AzureAutomated service managementYou define the rules and provide your codeThe platform follows the rules: deploys, monitors, and manages your serviceA powerful service hosting environmentAll of the hardware: servers; load balancers; …Scalable, available cloud storage (via REST)Blobs, tables, queues, …Developer Experience: Simulated cloud environment + PHP
  • 26.
    + FastCGIWindows Azure now supportsThe FastCGI modulePHP enabled via xcopy deploy of PHP runtime binariesAnd, the IIS7 URL rewrite module to enable friendly URL’s with PHP apps
  • 27.
    + FastCGI w/simulated load-balancing in dev environment123
  • 28.
    Windows Azure ComputeService A closer lookWeb RoleWorker Rolemain(){ … } HTTPASP.NET, WCF, etc.IISLoad BalancerAgentAgentWindows Azure FabricApplicationStorage ComputeFabricVM…
  • 29.
    PHP SDK forWindows AzureLogical architecture OverviewEnables PHP developers to take advantage of the Microsoft Cloud Services Platform  – Windows Azure.  FeaturesPHP classes for Windows Azure Blobs, Tables & Queues (for CRUD operations)Helper Classes for HTTP transport, AuhN/AuthZ, REST & Error ManagementManageability, Instrumentation & Logging supportProject site: http://www.codeplex.com/PHPAzureContribution to Zend Framework enabling speed dial to Windows Azure PHP developersReleased under “bsd” licenseYour PHP applicationXMLRESTComputeStorageManageDeployement scenariosPHP RuntimeAny internet connected ServerPHP RuntimeRESTRESTComputeStorageManage
  • 30.
    Windows Azure –PHP Tooling from Eclipsedemo
  • 31.
    Azure Services PlatformOverviewAzure™ Services Platform
  • 32.
    .NET ServicesInfrastructure inthe cloudAccess ControlService BusWorkflow.NET ServicesSQL ServicesApplicationsLive ServicesWindows Azure?ApplicationsWindowsMobileWindowsVista/XPWindowsServerOthers
  • 33.
    The Service BusTheproblem: Exposing internal applications on the Internet isn’t easyNetwork address translation (NAT) and firewalls get in the wayThe solution:Service Bus provides a cloud-based intermediary between clients and internal applicationsIt also provides a service registry that clients can use to find the services they need
  • 34.
    Service Bus2) DiscoverendpointsRegistry1) Register endpoints3) Access applicationEndpointsApplicationApplicationOrganization XOrganization YAccess ControlService BusWorkflowService Bus
  • 35.
    Enabling Interoperability betweenheterogeneous systemsAzure Services PlatformAzure ServicesSOAPSOAPYour CloudApplicationRESTRESTXMLXMLEnd UsersJava & Ruby SDKs for .NET Services.NET SDKsComing SoonYour Software ApplicationDevelopers
  • 36.
    Cross Platform SDKfor .NET ServicesGoals of these community-based projectsOpen source software development kits (SDKs) including:a set of libraries, tools, Prescriptive guidance

Editor's Notes

  • #3 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.
  • #8 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
  • #18 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.
  • #19 We target a lot of different kinds of developers…
  • #27 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.
  • #31 Take your application to the next level
  • #32 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.
  • #33 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.
  • #34 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