1 / 28

“Dublin” and .Net Services : Extending On-Premises Applications to the Cloud

TL40. “Dublin” and .Net Services : Extending On-Premises Applications to the Cloud.  Koby Avital Product Unit Manager Microsoft Corporation.  Mauricio Ordonez Group Program Manager Microsoft Corporation. What We Are Covering Today. Introduction The Problem Statement

leal
Download Presentation

“Dublin” and .Net Services : Extending On-Premises Applications to the Cloud

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TL40 “Dublin” and .Net Services: Extending On-Premises Applications to the Cloud  Koby Avital Product Unit Manager Microsoft Corporation  Mauricio Ordonez Group Program Manager Microsoft Corporation

  2. What We Are Covering Today • Introduction • The Problem Statement • The Architectural Pattern • Demo • Recap & Takeaways • Call To Action • Related sessions

  3. Windows Application Server (“Dublin”) Evolution of WAS/IIS and Windows Application Server to run and manage WF and WCF services App 1 Cloud Aware App 2 In the cloud Your App .NET Services Application extension bus A fabric that interconnects distributed applications across organizational and system boundaries. Contract INPUT OUTPUT Imagine that you could … extend your application with pluggable components

  4. Microsoft .NET Services • Interconnects distributed applications across enterprise boundaries • Formerly called “BizTalk. NET" • .NET Services Infrastructure • Service Bus (point to point or pub/sub) • Access Control (claims based) • Workflow (application components) • Reduced infrastructure investment • Built on a large-scale data center fabric • Reliably hosted • Quick provisioning • Scale rapidly and economically

  5. Windows Application Server Extensions(Codename “Dublin”) • Evolution of WAS/IIS and Windows App Server role to run and manage WF and WCF services • Dublin services infrastructure • Hosting • Scale-out • Monitoring • Content-based routing • Persistence • Versioning • App packaging & deployment Visual Studio Oslo Windows Server “Dublin” Administration Tools System Center WF and WCF services .NET Framework IIS/WAS

  6. Problem Statement Contoso, Ltd… • Is a global organization • Has an on boarding process managed on SharePoint • Wants to extend their on boarding application in a non disruptive way. • Wants to easily integrate their on boarding process with a large number of relocation vendors • Wants to automate their relocation process and normalize how vendors bid. Relocation Vendor Contoso - USA Business Logic HR Department (SharePoint) On boarding process SP List

  7. The Application Today Contoso Global Enterprise Contoso’s Vendors Contoso, Ltd - Headquarters Relocation Vendor C Contoso, Ltd - USA Relocation Vendor D . . Contoso, Ltd - India endpoint D Relocation Vendor B Corp. HR Department (SharePoint) Contoso, Ltd - UK Business Logic Relocation Vendor A Inc. OnBoardingWorkflow SP List endpoint C Business Logic event endpoint B endpoint A Client -Browser Client -Browser

  8. Architectural Pattern • Connecting to the Service bus .NET Services Application Extension (In The Cloud) • Pub/Sub model • Access control/ message security Workflow Services Service Bus • Service contracts Subscribes Messaging Fabric Cloud Aware App Updates Your App Event Handler Publisher Application Extension (ISV Hosted – Cloud Aware) WCF Service Access Control Service Publish Windows App Server “Dublin” Subscribes Updates Updates

  9. demo Making Applications Cloud-Aware  Mauricio Ordonez Group Program Manager CSD

  10. Connecting Applications To The Service BusImplementation .NET Services listen Service Bus Relocation Vendor C listen Relocation Vendor B Relocation Vendor A Contoso USA Messaging Fabric Windows Application Server (“Dublin”) HR Department SharePoint RelocationService.xamlx updates listen WCF Service (Relay Binding) OM/ SP Webservices StartRelocation Activity listen publish Publisher (Relay Binding) List SendBid Activity Access Control Service UpdateStatus Activity OnBoardingWF

  11. SharePoint Event Pipeline We Hook Here

  12. SharePoint WorkflowPublisher Publisher Activity Execute Method

  13. SharePoint Workflow 3.0 PublishJob Activity Execute Method privatevoidPublishInfo(object sender, EventArgs e) { // Get field values from the SharePoint item. stringcurrentCity = workflowProperties.Item["Current City"].ToString(); ... • TransportClientEndpointBehavior behavior = new • TransportClientEndpointBehavior(); • behavior.CredentialType = TransportClientCredentialType.X509Certificate; • behavior.Credentials.ClientCertificate.Certificate = certificate; • UriserviceAddress = new • Uri(“sb://servicebus.windows.net/services/contoso/RelocationPublishService”) • ChannelFactory<IRelocationJobPublishingService> cf = new • ChannelFactory<IRelocationJobPublishingService>( • newNetEventRelayBinding(), serviceAddress.ToString()); • cf.Endpoint.Behaviors.Add(behavior); • using (IClientChannel proxy = cf.CreateChannel() asIClientChannel) • { • ((IRelocationJobPublishingService)proxy).InitiateProcess( • workflowProperties.Item.ID, currentCity, newCity, startDate); • } } Svc Bus Credentials Svc Bus Address Event Relay Binding Send Message

  14. Connecting Applications To The Service Bus • Implementation .NET Services Service Bus updates Relocation Vendor C listen Messaging Fabric Contoso USA updates RelocationService.xamlx HR Department SharePoint Relocation Vendor B listen Uri = sb://…/vendorA listen WCF Service (Relay Binding) OM/ SP Webservices Relocation Vendor A publish Publisher (Relay Binding) List SendBid Activity Access Control Service Windows Application Server (“Dublin”) OnBoardingWF updates StartRelocation Activity listen UpdateStatus Activity

  15. Relocation WCF Service Opening a service enpoint on the Service Bus privatestaticvoidStartService() { • TransportClientEndpointBehavior behavior = new • TransportClientEndpointBehavior(); • behavior.CredentialType = TransportClientCredentialType.X509Certificate; • behavior.Credentials.ClientCertificate.Certificate = certificate; • UriserviceAddress = new • Uri(“sb://servicebus.windows.net/services/contoso/RelocationService”) ServiceHost host = newServiceHost(typeof(RelocationService)); • host.AddServiceEndpoint(typeof(IRelocationService), newNetTcpRelayBinding(), • serviceAddress); host.Description.Endpoints[0].Behaviors.Add(behavior); host.Open(); } Svc Bus Credentials Svc Host with Relay Binding

  16. Relocation WCF Service Service operation implementation public class RelocationService : IRelocationService { publicvoidUpdateProcessStatus(intjobID, RelocationStatus status) { PDCContractLibrary.ContosoUSA.Lists lists = newPDCContractLibrary.ContosoUSA.Lists(); lists.Credentials = System.Net.CredentialCache.DefaultCredentials; stringstrBatch = "<Method ID='1' Cmd='Update'>" + "<Field Name='ID'>" + jobID + "</Field>" + "<Field Name='Status'>" + status.ToString()+ "</Field>" + "</Method>"; XmlDocumentxmlDoc = newSystem.Xml.XmlDocument(); XmlElementelBatch = xmlDoc.CreateElement("Batch"); elBatch.InnerXml = strBatch; XmlNodendReturn = lists.UpdateListItems(Constants.SharePointJobListName,elBatch); } } SharePoint API

  17. demo Managing Access Control in the Cloud with WF 4.0 rules  Mauricio Ordonez Group Program Manager CSD

  18. Contoso Headquarters Web App ASP.NET Windows Application Server (“Dublin”) SupervisorService.xamlx listen LogEvent Activity SLA Compliance Rules • Monitoring And SLA Compliance • Implementation revoke RevokeClaims Activity .NET Services Service Bus updates Relocation Vendor C listen Messaging Fabric Vendor C - Rating = 2 Contoso USA updates HR Department SharePoint RelocationService.xamlx Relocation Vendor B listen listen WCF Service (Relay Binding) OM/ SP Webservices Relocation Vendor A publish Publisher (Relay Binding) List SendBid Activity Access Control Service Windows Application Server (“Dublin”) OnBoardingWF updates StartRelocation Activity publish listen UpdateStatus Activity

  19. Supervisor Service Listen / publish monitoring events Listen to monitoring events TransportClientEndpointBehavior behavior = newTransportClientEndpointBehavior(); ServiceHost host = newServiceHost(typeof(MonitoringService)); UriserviceAddress = newUri(“sb://servicebus.windows.net/services/contoso/SupervisorService“); host.AddServiceEndpoint(typeof(IMonitoringService), newNetEventRelayBinding(), address); host.Description.Endpoints[0].Behaviors.Add(behavior); host.Open(); Publish monitoring event TransportClientEndpointBehavior behavior = newTransportClientEndpointBehavior(); ChannelFactory<IMonitoringService> cf = newChannelFactory<IMonitoringService>( newNetEventRelayBinding(), serviceAddress.ToString()); cf.Endpoint.Behaviors.Add(behavior); IMonitoringService channel = cf.CreateChannel(); channel.PublishEvent(mEvent);

  20. Supervisor Service 4.0 Workflow

  21. Supervisor ServiceRevokeClaim Activity Execute method protectedoverridevoid Execute(ActivityExecutionContext context) { RelocationEventrelocationEvent = this.relocationEvent.Get(context); X509CertificateCredential credential = newX509CertificateCredential(certificate); IdentityManagementClientidentityManagementClient = new IdentityManagementClient(credential); • Scopescope = identityManagementClient.GetScope("ServiceBus”,"http://servicebus.windows.net/services/contoso/"); • List<AccessRule> rules =scope.GetRules(); foreach (AccessRule rule in rules) { SimpleAccessRulesRule = rule asSimpleAccessRule; • if (sRule != null && sRule.InClaim.Value == relocationEvent.VendorAccount) { scope.SetRuleStatus(sRule, false); } } } Access Control Service Client API Disable Rule

  22. Recap and Takeaways • Design your application for extensibility using event-based architecture • Publish events to the Service Bus and communicate seamlessly, securely, and reliably across enterprise boundaries • Outsource authentication, authorization and identity management by leveraging Access Control in the cloud • Host your WF/WCF Services on “Dublin” and take advantage of enterprise-ready features

  23. Call To Action And Related Sessions • Download Microsoft .NET Services SDK and get an account at http://portal.ex.azure.microsoft.com/sdk.aspx • Use “Dublin” and WCF/WF 4.0 in your PDC Goods. • Apply the architectural pattern according to your application needs. • Related Sessions • A Lap around Cloud Services • Service Bus Services: Connectivity, Messaging, Events, and Discovery • .NET Services: Access Control in the Cloud • Architecture of the Building Block Services • “Dublin”: Hosting and Managing Workflows and Services in Windows Application Server • WCF 4.0: Building WCF Services with WF in Microsoft.NET 4.0

  24. Evals & Recordings Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com

  25. Q&A Please use the microphones provided

  26. © 2008 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.

More Related