ArcReady - Architecting Modern Distributed Applications

  • 3,658 views
Uploaded on

Nearly every application we build today has dependencies to other systems. How do we design them to work together to meet our goals? How do we decide what to build and what to buy? Do we host it …

Nearly every application we build today has dependencies to other systems. How do we design them to work together to meet our goals? How do we decide what to build and what to buy? Do we host it ourselves or in the cloud? With a bewildering array of choices, the biggest challenge we face today is how to architect robust applications with the right technologies to meet our user’s needs and integrate nicely into our existing IT ecosystems.

Join our Central Region Architect Evangelists for a great discussion on architecting distributed applications using all the latest technologies and best practices.

Session 1: Blueprints for Success. In this session, we will survey the modern architecture landscape from the ground up, including infrastructure, application, and client solution choices. We’ll discuss how current industry trends are shaping our architectures and present an innovative architecture mapping technique for analyzing our customer’s needs and aligning them to today’s technologies and solution patterns.

Session 2: Making It Real. In this session, we’ll take a look at several case studies to learn how to apply the mapping technique from Session 1 to architect real world solutions that add true business value. We’ll examine applications we use every day and take a walk through a Microsoft reference architecture that explores many of the decisions we face when building modern distributed applications.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,658
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
280
Comments
0
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Goal today is to have a contextual discussion so you understand what is driving our platform efforts. It is an opportune time on two counts First, with Vista and Office now out the door, we’ll start to dial up the discussion of where we are going next. Second, we have some major platform milestones this year so you should understand the principles and overall direction before we get into product specifics. Going to try to lay out the top level principles today of our architectural blueprints strategy 06/05/09 02:59 © 2006 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.

Transcript

  • 1. Architecting Modern Distributed Applications ArcReady:
  • 2. About ArcReady…
    • A forum for aspiring and practicing architects to discuss industry trends
    • An overview of Microsoft’s roadmap as it relates to software architecture
    • A mechanism to solicit your feedback
    • An opportunity to showcase the work you do!
  • 3. About your presenter(s)… Clint Edmonson Architect Evangelist Microsoft Corporation www.notsotrivial.net [email_address] Brian Prince Architect Evangelist Microsoft Corporation www.brianhprince.com [email_address] Larry Clarkin Architect Evangelist Microsoft Corporation www.larryclarkin.com [email_address] Phil Wheat Architect Evangelist Microsoft Corporation blog.austinwheats.com [email_address]
  • 4. Agenda Session 1: Blueprints for Success Break Session 2: Making It Real Drawing for prizes
  • 5. Session 1 Blueprints for Success
  • 6. Industry Trends
  • 7. Industry Trends Trend 1: Service Oriented Architecture (SOA)
  • 8. Industry Trends
  • 9. Industry Trends Trend 2: Software as a Service (SaaS)
  • 10. Industry Trends
  • 11. Industry Trends Trend 3: Web 2.0
  • 12. Industry Trends
  • 13. Industry Trends Trend 4: Rich Internet Applications (RIA)
  • 14. Industry Trends
  • 15. Industry Trends Trend 5: Cloud Computing
  • 16. Industry Trends
  • 17. Industry Trends SOA: Service Oriented Architecture Reuse and Agility Web 2.0 Network Effect SaaS: Software as a Service Flexible pricing and delivery RIA: Rich Internet Applications Experience Software + Services Cloud Computing Service Utility
  • 18. Industry Trends Is this just a Microsoft thing?
  • 19. Industry Trends “ Let me just say it: We want native third-party applications on the iPhone, and we plan to have an SDK in developers' hands in February” - Steve Jobs Apple Reverses on Third-Party iPhone Apps “ But Google's offline approach also is a recognition that Microsoft's right in insisting that not all computing will take place in the Internet cloud. Microsoft's been touting a vision of "software plus services " that relies on Internet-connected desktop apps, and more enterprise software-as-a-service companies, such as CRM vendor RightNow, recognize the need for some client software.” Google CEO Says Software to Play a Bigger Role
  • 20. Industry Trends IBM also introduced Bluehouse, the code name for services … designed to help business partners share contacts, files, project and interact via chat and Web meeting. The model is similar to what Microsoft has been pushing with its software-plus-services strategy developed by Microsoft CTO Ray Ozzie, who created the Notes platform. Microsoft is trying to define a new category with software plus services …it turns out that Microsoft may have a point and, while Salesforce.com would be unlikely to concede this, in fact it provides some supporting evidence. A few years ago Salesforce.com released its Off-line Edition for its popular customer relationship management (CRM) product.
  • 21. Heads in the Cloud, Feet on the Ground
  • 22. Heads in the Cloud, Feet on the Ground When it comes to running applications, organizations today face a tension between control and economy of scale Economy of Scale Low High Control High Low
  • 23. Heads in the Cloud, Feet on the Ground Economy of Scale Low High Control High Low Application runs on-premise Buy my own hardware, and manage my own data center Application runs at a hoster Pay someone to host my application using hardware that I specify Application runs using cloud platform Pay someone to host my application without specifying the hardware (they promise to be “infinitely” scalable) Application is supplied by a vendor Pay for someone’s hosted application. Don’t care about the hardware, as long as it works.
  • 24. Heads in the Cloud, Feet on the Ground Tension between build vs. buy Build vs. Buy Build Buy
  • 25. Heads in the Cloud, Feet on the Ground “ Packaged” Application An application that I buy “off the shelf” and run myself “ Home Built” Application An application that I develop and run myself Build vs. Buy Build Buy Hosted “ Home Built” An application that I develop myself, but run at a hoster Hosted “ Packaged” An application that I buy “off the shelf” and then run at a hoster “ Home Built” using cloud An application that I develop myself, that is hosted using cloud platform “ Packaged” using cloud An application that I buy “off the shelf”, that is hosted using cloud platform “ Software as a Service” A hosted application that I buy from a vendor “ Platform as a Service” A vendor hosted development and runtime environment
  • 26. Big Pharmaceutical Example “ Too costly to run this myself, but I’ve made too many customizations” “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” “ Home Built” using cloud “ Packaged” using cloud “ Software as a Service” “ Platform as a Service” Clinical Trial Molecule Research HR System Email CRM ERP
  • 27. Big Pharmaceutical Example “ CRM and Email are commodity services – They have no customizations, and it’s cheaper for someone else to run these” “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” “ Home Built” using cloud “ Packaged” using cloud “ Software as a Service” “ Platform as a Service” Clinical Trial Molecule Research HR System Email CRM ERP
  • 28. Big Pharmaceutical Example “ I can’t afford to maintain this old HR application written in VB – it’s driving me mad!” “… but due to regulatory issues, I cannot store my HR data off-premise” “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” “ Home Built” using cloud “ Packaged” using cloud “ Software as a Service” “ Platform as a Service” Clinical Trial Molecule Research HR System Email CRM ERP
  • 29. Big Pharmaceutical Example “ I wish I had access to cheaper compute and storage when I need it” “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” “ Home Built” using cloud “ Packaged” using cloud “ Software as a Service” “ Platform as a Service” Clinical Trial Molecule Research Email CRM ERP HR System
  • 30. Big Pharmaceutical Example “ THIS is where I want to spend my IT resources – I’m going to double down on this application!” “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” “ Home Built” using cloud “ Packaged” using cloud “ Software as a Service” “ Platform as a Service” Clinical Trial Molecule Research Email CRM ERP HR System
  • 31. Architectural Blueprints
  • 32. Architectural Blueprints
  • 33. Architectural Blueprints Physical, Dedicated Single service on dedicated hardware Physical, Shared Multiple services sharing same hardware Physical, HPC Physical hardware supporting HPC scenario Virtual, Single Single instance virtual image Virtual, Shared Multiple instance virtual image
  • 34. Architectural Blueprints
  • 35. Architectural Blueprints
  • 36. Architectural Blueprints File Fileshare, flat, page-based Relational Hosted relational database, familiar, transactional, finite Unstructured Key/value Pair, no atomicity, infinitely scalable
  • 37. Architectural Blueprints
  • 38. Architectural Blueprints Service Bus Asynchronous, reliable messaging, publish/subscribe model Peer to Peer Node registration, directory, presence awareness
  • 39. Architectural Blueprints
  • 40. Architectural Blueprints Authentication Username / Password or claims based Role Based Authorization Role-checking and authorization
  • 41. Architectural Blueprints
  • 42. Architectural Blueprints Event Based Triggered based on events (e.g. document upload) High Throughput Low latency, high volume (e.g. trading confirmations)
  • 43. Architectural Blueprints
  • 44. Architectural Blueprints
  • 45. Architectural Blueprints Search Text Search, Image Search, Indexing Social Social Graphs, Profiles Content Management Indexing, Retrieval, Conflict Management
  • 46. Architectural Blueprints
  • 47. Architectural Blueprints Transaction Pay for each transaction Subscription Pay per month/period Licensing Pay per user/machine Advertising Advert funded model
  • 48. Architectural Blueprints
  • 49. Architectural Blueprints Service Composition Composition, brokering results, aggregation Line of Business Integration Service wrapping of mainframe and other LOB applications
  • 50. Architectural Blueprints
  • 51. Architectural Blueprints Business Logic (Rules) Entities (Schema) Workflow (Process)
  • 52. Architectural Blueprints
  • 53. Architectural Blueprints Static Static content, HTML etc Dynamic Asynchronous interaction, AJAX etc. RIA Rich Internet Applications, high visuals, limited offline support Streaming Optimized for content delivery, videos etc.
  • 54. Architectural Blueprints
  • 55. Architectural Blueprints Web Services SOAP based, WS-I compliant, WS-* REST CRUD access to services via HTML RSS Syndication services for subscriptions
  • 56. Architectural Blueprints VoiceXML Mobile Application Speech API SIP Session Initiation Protocol – IM Clients SMTP Email inbound and outbound delivery SMS Mobile inbound and outbound text messaging
  • 57. Architectural Blueprints
  • 58. Architectural Blueprints
  • 59. Architectural Blueprints Browser Consumer of web based content, HTML etc., including RIA plug in Office Office Suite, including Email and RSS reader capability Client Application Rich (Smart) client applications installed locally on machine Gadgets Locally installed, desktop based Instant Messaging Locally installed Instant Messaging client
  • 60. Architectural Blueprints
  • 61. Architectural Blueprints Browser Consumer of web based content, HTML etc., including RIA plug in Office Office Suite, including Email and RSS reader capability Client Application Rich (Smart) client applications installed locally on machine SMS / IM Text messaging and IM using Mobile Device Speech Speech enabled interface
  • 62. Architectural Blueprints
  • 63. Architectural Blueprints Devices Dedicated devices Consoles Games Consoles
  • 64. Architectural Blueprints
  • 65. Architectural Trends
  • 66. Architectural Trends How can we analyze our architectures using these blueprints?
  • 67. Static Web Site, On Premise
  • 68. Static Web Site, On Premise (Add Content Mgt)
  • 69. Static Web Site, On Premise (Add Search/Social)
  • 70. Static Web Site, On Premise (Add Ad Service)
  • 71. Static Web Site, On Premise (Move to Hoster)
  • 72. Static Web Site, On Premise (Add AJAX)
  • 73. Static Web Site, On Premise (Add Mobile RSS)
  • 74. Architectural Trends How about the trends we talked about earlier?
  • 75. Architectural Trends Trend 1: Service Oriented Architecture (SOA)
  • 76. Trend 1: SOA - Single Service, On Premise
  • 77. Trend 1: SOA - Single Service, On Premise
  • 78. Trend 1: SOA - Single Service, On Premise
  • 79. Trend 1: SOA - Single Service, On Premise
  • 80. Trend 1: SOA - Single Service, On Premise
  • 81. Trend 1: SOA - Single Service, On Premise
  • 82. Trend 1: SOA - Single Service, On Premise
  • 83. Trend 1: SOA - Single Service, On Premise
  • 84.  
  • 85. Architectural Trends Trend 2: Software as a Service (SaaS)
  • 86. Trend 2: SaaS – Web Based SaaS Provider
  • 87. Trend 2: SaaS – Web Based SaaS Provider
  • 88. Trend 2: SaaS – Web Based SaaS Provider
  • 89. Architectural Trends Trend 3: Web 2.0
  • 90. Trend 3: Web 2.0 – Social Networking Site
  • 91. Trend 3: Web 2.0 – Social Networking Site
  • 92.  
  • 93. Architectural Trends Trend 4: Rich Internet Applications
  • 94. Trend 4: RIA – eCommerce Site
  • 95. Trend 4: RIA – eCommerce Site
  • 96. Trend 4: RIA – eCommerce Site
  • 97. Trend 4: RIA – eCommerce Site
  • 98.  
  • 99. Architectural Trends Trend 5: Cloud Computing
  • 100. Trend 5: Cloud Computing – Backup Provider
  • 101. Trend 5: Cloud Computing – Backup Provider
  • 102. Trend 5: Cloud Computing – Backup Provider
  • 103. Architectural Trends How about Microsoft’s own products?
  • 104. Windows Live Mesh CTP (Current, Primary)
  • 105. Exchange Lifecycle (Exchange 4.0, Outlook 97)
  • 106. Exchange Lifecycle (Exchange 5.0, Outlook 97)
  • 107. Exchange Lifecycle (Exchange 5.0 SP1, Outlook XP)
  • 108. Exchange Lifecycle (Exchange 2003, Outlook 2003)
  • 109. Exchange Lifecycle (Exchange 2007, Outlook 2007)
  • 110. Exchange Lifecycle (Hosted Exchange, Outlook 2007)
  • 111. Architectural Challenges
  • 112. Big Pharmaceutical Example “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” “ Home Built” using cloud “ Packaged” using cloud “ Software as a Service” “ Platform as a Service” Clinical Trial Molecule Research Email CRM ERP HR System
  • 113. Architectural Challenges Challenge 1 - Identity
  • 114. Challenge 1 - Identity
  • 115. Challenge 1 - Identity
  • 116. Challenge 1 - Identity
    • Accessing Hosted Assets with Internal Credentials
    • AuthN and AuthZ across FW
    • Credential Storage
  • 117. Challenge 1 - Identity
  • 118. Architectural Challenges Challenge 2 – Data
  • 119. Challenge 2 - Data
  • 120. Challenge 2 - Data
    • Import and Export of Data
    • Privacy of External Data
    • Reporting and Analytics
  • 121. Architectural Challenges Challenge 3 – Management
  • 122. Challenge 3 - Management
  • 123. Challenge 3 - Management
    • Holistic View of Application?
    • Integration into existing System Management solutions?
    • Contracts and SLAs
  • 124. Architectural Blueprints – Next Steps
  • 125. Architectural Blueprints – Next Steps Step 1 – Use the “blueprints” to decompose and recompose existing applications
  • 126. Architectural Blueprints – Next Steps Step 2 – Get the right people involved
  • 127. Architectural Blueprints – Next Steps Infrastructure Architect / Data Center Operations Solutions and Infrastructure Architect Solutions Architect and Development Team Solutions Architect and Development Team (inc. Web Design) Solutions Architect and Development Team (inc. Designer) Enterprise Architect and CIO Data Center Operations
  • 128. Architectural Blueprints – Next Steps Step 3 – Understand the Technology Mappings
  • 129. Architectural Blueprints – Next Steps IE8 Windows Mobile 7 XBOX 360 IIS 7 SL Streaming WCF .NET Framework MOSS 2007 BTS Adapters MOSS 2007 BDC AD / ADFS Ad Center .NET Framework 3 rd Party BizTalk 2006 R2 ILM BizTalk / BizTalk.Net Mesh CTP IIS 7 SQL Server SSDS Windows WF MOSS 2007 Windows WF BizTalk Server Windows Server 2008 WS 2008 HPC Windows Server 2008 Hyper-V Office WPF Vista OC Win Embed .NET CF
  • 130. Architectural Blueprints – Next Steps Step 4 – Document repeatable patterns
  • 131. Architectural Blueprints – Next Steps
  • 132. Architectural Blueprints – Next Steps
  • 133. Architectural Blueprints – Next Steps Step 5 –Resources
  • 134. Break Please complete an Eval
  • 135. Session 2 Making it Real
  • 136. Look at Identity
  • 137. Look at Identity Authentication Ÿ Authorization
  • 138. Look at Identity Role Based Access Control Roles -> Rights -> Resources
  • 139. Rights represent actions in the system
  • 140. Rights are grouped into roles
  • 141. Roles are assigned to users
  • 142. User authenticates User Application Username, Pwd
  • 143. System finds all of the users roles, calculates the effective rights User Application Rights Storage Username, Pwd Roles: Operator, Manager Rights: vDash, vOrders, …
  • 144. Attach Principal/Identity to Thread User Application Rights Storage Username, Pwd Roles: Operator, Manager Rights: vDash, vOrders, … P Principal & Identity I
  • 145. Code Checks for Permission Defense in Depth!
  • 146. Evolution of Security Manager
  • 147. Problems with this approach?
  • 148. Companies have lots of applications
  • 149. Each with their own silo of identity data
  • 150. Each system is hardcoded for Az/An
  • 151. Duplicated Code
  • 152. Tedious to implement every time
  • 153. Leads to greater risk as well
  • 154. Many companies have 0 or n directories
  • 155. Username & Password just isn’t enough anymore
  • 156. An array of accounts for users
  • 157. Intracompany ?
  • 158. Doesn’t work in the cloud
  • 159. Hard for calling services
  • 160. Single hop and Impersonation
  • 161. Zermatt
  • 162. Framework for Claims Based Identity
  • 163. Three geeks walk into a bar…
  • 164. What is a Claim? Web Application/Service Username: Brian Roles: Manager, Sales Email: Brian.Prince@microsoft.com IsOfLegalVotingAge: True
  • 165. Your app is no longer concerned with
    • Authentication
    • Storing and securing usernames and pwds
    • Connecting to directories
    • Managing roles/rights/claims
  • 166. Allows for Federation
  • 167. “ A Cloudy World” Example The “Cloud” Big Pharma “on premise” Cloud Storage (new molecule research in purple) Cloud Platform Cloud Compute
    • Big Pharma deploys software to cloud
    employees Clinical trial software Firewall Management IT Directory STS Internet Service Bus (Identity) STS
    • Employees access cloud software
  • 168. “ A Cloudy World” Example The “Cloud” Big Pharma “on premise” employees Clinical trial software Firewall Management IT Directory STS (big pharma data in purple) “ cloud” CRM
    • Employees use “cloud” CRM
    • IT Manages “cloud” CRM
  • 169. “ A Cloudy World” Example The “Cloud” Clinical trial patients Big Pharma “on premise” employees Clinical trial software Firewall Management IT Directory STS Cloud Platform Internet Service Bus (Connectivity) Internet Service Bus (Identity) STS Relay
    • External Patients using Relay to access “on premise” clinical trial software
  • 170. “ A Cloudy World” Example The “Cloud” (big pharma data in purple) (big pharma instance in purple) Clinical trial patients Internet Service Bus (Connectivity) Big Pharma “on premise” Cloud Storage (new molecule research in purple) Internet Service Bus (Identity) STS Relay Cloud Compute Cloud Platform CRM Online Hosted ERP @ Hoster employees Clinical trial software Firewall Management IT Directory STS
  • 171. Claim
    • A piece of your identity
    • A property
    • Come from issuers. You only trust the claim as much as the issuer
  • 172. Zermatt : Claim Object
  • 173. Identity
    • A set of claims that describes a user or entity
  • 174. IClaimsIdentity
  • 175. Security Token
    • A serialized set of claims that are signed by the issuer
    • Presented when system access is requested
    • Found in the SOAP envelope for a web service call
    • Found in the HTTP POST in a web application
  • 176. IClaimsPrincipal
  • 177. Easy Change
  • 178. Sample Code
  • 179. Issuing Authority
    • Many types:
      • Kerberos tickets
      • Certificate authorities
      • X.509 certificates
    • We want one that creates our security tokens.
      • Knows how to issue the right claims for the right user
      • Interacts with AuthN systems, and authenticates the user
  • 180. Security Token Service (STS)
    • A type of Issuer
    • Uses standards
      • WS-MEX
      • WS-Trust
      • Security Assertion Markup Language (SAML)
  • 181. Relying Party (RP)
    • The system that relies on the claim tokens
    • YOUR SYSTEM
  • 182. Basic Scenario – Active Client (WS-Trust) Relying Party (Web Service) Smart Client Trusted Authority (Web Service) Directory/ Credential Store STS 1. Get Policy 3. Send Claims 2. Get Claims Business Rules
  • 183. Basic Scenario – Passive Client (WS-Federation) Relying Party (Web App) Browser Trusted Authority (Web App) Directory/ Credential Store STS 1. HTTP GET 3. HTTP POST 2. Redirect Business Rules
  • 184. Federated Scenario Relying Party (Web Service) Smart Client Trusted Authority (Web Service) Internet Trusted Authority (Web Service) STS Business Rules STS Business Rules 1 2 3 (Java?) (.NET?)
  • 185. Federated Authentication Module
  • 186. Zermatt ASP.NET Controls
  • 187. Wiring Zermatt up to ASP.NET
  • 188. Calling a Claims Aware Service
    • Client side WCF already has everything it needs
  • 189. Wiring Zermatt up to a Service
    • WCF handles SAML tokens out of the box
    • Needs to be configured with a custom binding
    • Zermatt wires in custom behaviors into the WCF config
    • This lets you use the simplified Zermatt claims model instead of the normal WCF model
  • 190. Service Identity Client / UX Data Store User User Service Account SSRS Service Domain Objects Persistence Layer
  • 191. Delegation and ActAs Web Front End Trusted Authority Directory/ Credential Store ID: svcInv STS 3. Get Claims for svcInv ActAs Dieter 2. Dieter 1. Get Claims for Dieter Business Rules Dieter’s Browser ID: Dieter Back End Web Service ID: Dieter 4. svcInv ActAs Dieter
  • 192. Authentication Assurance
  • 193. Zermatt Resources
    • http://connect.microsoft.com/site/sitehome.aspx?SiteID=642
      • Download the whitepaper, bits, and samples
  • 194. Resources… Slide deck: www.slideshare.net/ArcReady
  • 195. © 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.