46
Interoperability Build Apps using Eclipse, Java, PHP and Ruby using Microsoft Software and Services Vijay Rajagopalan Principal Architect Microsoft Corporation

Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Embed Size (px)

DESCRIPTION

Come hear how Microsoft has delivered multiple technologies that focus on interoperability with non-Microsoft and Open Source technologies. Learn how to use the Eclipse tools today to build Silverlight applications that run on PCs and Macs, how to develop using combinations of Java, Ruby and PHP in addition to the standard Microsoft languages, and how Microsoft's commitment to openness with the Azure Services Platform and the use of claims-based identity supports heterogeneous identity systems.

Citation preview

Page 1: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

InteroperabilityBuild Apps using Eclipse, Java, PHP and Ruby using Microsoft Software and ServicesVijay RajagopalanPrincipal ArchitectMicrosoft Corporation

Page 2: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

AgendaMicrosoft’s approach to InteroperabilityBridging Open Source and Microsoft S+S(RIA, Identity and Cloud Computing)

Eclipse Tools for SilverlightJava Interoperability Interoperability in Mac Platform

Enabling RIA experience on PHP ApplicationsEnable Claims based AuthN/AuthZ on cross language web applicationsAzure Services Platform SDK for Java and Ruby

Eclipse Tooling experience for Windows AzureConnecting on-premise Java apps thru Service Bus

Page 3: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

IT Landscape is Changing

3

Disaster Recover

yDistributed Developme

nt

Software as a Service

Client device proliferation

Legacy systems

Increasing Need for

InteroperabilityRegulation

s

Green IT

Page 4: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

A World of Choice with Interoperability

Firefox, Open Office, Star Office, Microsoft Office, Adobe Photoshop, Symantec, Norton,

Opera, .NET…

JBoss, Apache, Zend, SugarCRM, Oracle, SAP,

Microsoft BizTalk, .NET, BEA, …

4

Client Applications

Storage

Systems Vendors

Processors

Networking Vendors

Operating Systems and Middleware

Databases

ServerApplications

Page 5: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Promote interoperability

through new and existing standards

Work jointly with partners,

competitors and the open source

community

Deliver interoperability in Microsoft products and technologies

Customer Input and Feedback

?

Products Collaboration

Standards Developer Resources

Microsoft’s Multifaceted Approach to InteroperabilityWorking openly with others to foster choice and innovation

5

Make it easier to develop products

that interoperate with Microsoft

solutions

Page 6: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

A Multi-Faceted Approach

6

ProductsDeliver

interoperability in Microsoft products and technologies

Customer Input and Feedback

Interoperability in core business products

Page 7: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

A Multi-Faceted Approach

7

Collaboration

Customer Input and Feedback

Work jointly with partners and

competitors to resolve

interoperability challenges

Vendors in your data center and on your

desktop

Page 8: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

A Multi-Faceted Approach

8

StandardsCustomer Input and Feedback

Promote interoperability

through new and existing standards

?

Participation in over 150 standards bodies

Software technologiesHardware technologiesInternet and Web servicesConsumer electronicsVertical industry standards

Page 9: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

A Multi-Faceted Approach

9

Developer ResourcesCustomer Input and Feedback

Make it easier to develop products

that interoperate with Microsoft

solutions

Resources to jumpstart innovation

Technology licensingTechnical documentationInteroperability labsCommunity forumsCustomer technical collaboration agreements

Page 10: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Silverlight Interoperability

Page 11: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

BackgroundCross platform and 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 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 and FirefoxExpanded .NET Framework Language support

VB, C#, Managed JavaScript, IronPython, IronRuby

Page 12: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Eclipse Tools for SilverlightEclipse 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 SoyatecFunded by Microsoft

Page 13: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Why eclipse4SL?

Common Project System

.NET Developer

Web Designe

r

Eclipse Developer

•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

Studio

Page 14: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

High level ArchitectureEclipse IDE

Developer Environment

Silverlight 2 Developer Runtime

or Silverlight 2

Runtime

Silverlight 2SDK

MSBuild 3.5 TasksClient & Server Librairies

Documentation & Reference

.NET Framework

.NET 2.0 SP1 + SP2 (MSBuild 2.0)

.NET 3.0 SP1 + SP2

.NET 3.5 (MSBuild 3.5)

eclipse Ganymede

Java Runtime

eclipse4SLEmbedded Web Server

Page 15: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

eclipse4SL: Key FeaturesIncreased Interoperability

Help Java

Developers build

Silverlight

applications

Eclipse Project System

Compiler for

deployment

packaging of

applications

XAML Editor & Preview

Code hinting and code completion

Enabling interoperability scenario for development

teams working in heterogeneous environments

Page 16: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Interoperability with Java based Web Services

Code 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/ 

Page 17: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Eclipse4SL on Windows

Demo

Page 18: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Customer Feedback

Page 19: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Eclipse Tools for Silverlight on Mac

Announcing…

Page 20: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Eclipse Tools for Silverlight on Mac OS

Page 21: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Silverlight Mac Experience

Demo

Page 22: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Extending Silverlight to PHP Applications

Silverlight 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>

Page 23: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Project: www.eclipse4sl.org

Page 24: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Azure Services Platform Interoperability

Page 25: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Our Approach to Azure Services

Extend Your Existing Investments Familiar tools, languages, & frameworks with .NET & Visual

StudioProvides the choice to build on-premises, cloud, or hybrid

solutionsIntegrate with existing assets such as AD & premises

applications

Base it on Internet StandardsMultiple protocol support including HTTP, REST, SOAP,

AtomPubBroad investment in open, community-based access to Azure

services

Provide a Flexible Services Platform with Internet ScaleSimple scenarios are simple – complex scenarios are possible

Services hosted in Microsoft’s data centersDesigned for high availability & scalability

Page 26: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Azure and Interoperability

Azure™ Services Platformhttp:// Services Web

SOAPPlain Old

XMLREST

(XML, JSON,AtomPub)

Page 27: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Azure™ Services Platform

Azure Services Platform Overview

Page 28: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Windows

Mobile

Windows

Vista/XP

Windows

Server

.NET Services

Windows Azure

Live Services

Applications

Applications

SQL Services

Others

Service Bus

Access Control ?

Workflow

.NET ServicesInfrastructure in the cloud

Page 29: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

The Service BusThe problem: Exposing internal applications on the Internet isn’t easy

Network address translation (NAT) and firewalls get in the way

The solutionService 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

Page 30: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Access ControlService BusWorkflow

Service BusRegistry

Endpoints

Organization Y

Organization X

Application Application

Service Bus

2) Discover endpoints

1) Register endpoints3) Access

application

Page 31: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Coming Soon

Your Software

Application

Your CloudApplication

Azure Services

XML

SOAP

REST

Azure Services Platform

Developers

End Users

XML

SOAP

REST

Java & Ruby SDKs for .NET Services

.NET SDKs

Enabling Interoperability between heterogeneous systems

Page 32: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Cross Platform SDK for .NET ServicesGoals of these community-based projects

 Java SDK for .NET ServicesContributors: Schakra Inc, Microsoft Sample ScenarioSupply 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 

 

Ruby SDK for .NET ServicesContributors: Thoughtworks, MicrosoftSample ScenarioClassifieds 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

 

Future support for PHP & Python

Enable Java, Ruby developers to leverage the Microsoft .NET Services extend their Java and Ruby applications by using the Microsoft cloud servicesplatform to build, deploy and manage reliable, Internet-scale applications

Open source software development kits (SDKs) including:

a set of libraries, tools, Prescriptive guidance

sample applications enhance productivity for Java

and Ruby developers

Page 33: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Java SDK for .NET ServicesHigh 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

Page 34: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

More information at www. dotnetservicesruby.com

Ruby SDK for .NET Services

Open source project The Ruby SDK for .NET Services is an open source project that helps Ruby programs communicate with Microsoft .NET Services using plain HTTP.

Page 35: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

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.

Sample scenario: Classifieds ApplicationThis 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.

Ruby SDK for .NET ServicesContributors: Thoughtworks Inc Microsoft  Project website: www.dotnetservicesruby.com

Ruby SDK for .NET Services

Page 36: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Scenario: Retailer provides a catalog to an end user based on products available in the warehouse

Interoperability : The App is developed in Java and leverages the Access Control and Service Bus features of .NET Services to enable the application functionality

ADMIN USER WAREHOUSE

RETAIL USER RETAILERView Products and Place Order

Add Product

PlaceOrder

MULTICAST ENDPOINT

Multicast message informing addition of a new product

Multicast message informing addition of a new product

Java SDK for .NET ServicesSupply Chain Management Sample

Page 37: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Connecting .NET Services from heterogeneous Apps

demo

Page 38: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Windows Azure BasicsThe goal of Windows Azure is to provide a platform that is scalable and availableWindows Azure can potentially provide various kinds of Windows-based environmentsMarch 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 Azure

Page 39: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Fabric

Compute Storage

Application

Windows Azure Fabric

Windows Azure Compute Service A closer look

VM

Web Role Worker Role

Agent

Agent

main(){ … }

Load Balanc

er

HTTPIIS

ASP.NET, WCF, etc.

Page 40: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Windows Azure Compute ServicePoints of interestThe VMs are provided by a cloud-optimized

hypervisorThey run 64-bit Windows Server 2008The operating system can be updated while the app is running

For developers:It’s mostly standard .NET

A few things require accessing the Windows Azure Agent, e.g., logging

A desktop replica of Windows Azure in the cloud is provided for development

Called the Development Fabric

Page 41: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Windows Azure – PHP Tooling from Eclipse

demo

Page 42: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Call to ActionPoints of interest

Microsoft’s approach to InteroperabilityOpenSource Interoperability Bridges on RIA, SOA, Identity,Web2.0, S+S and Document formatsTake advantage of Technical Bridges and ContributeMore details at microsoft.com/interop

Page 43: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Q & A

Page 44: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

Please Complete an Evaluation FormYour feedback is important!

Evaluation forms can be found on each chairTemp Staff at the back of the room have additional evaluation form copies

Page 45: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 46: Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!