Architectural Principles for Software + Services

67 %
33 %
Information about Architectural Principles for Software + Services
Technology

Published on January 5, 2009

Author: simonguest

Source: slideshare.net

Description

An overview of some of the architectural principles and patterns for Software + Services, presented at the SAF (Strategic Architect Forum) in 2008.

 

Architectural Principles for Software + Services Simon Guest Senior Director Platform Architecture Team Microsoft Corporation

Industry Trends

Industry Trends Trend 1: Service Oriented Architecture (SOA)

Industry Trends

Industry Trends Trend 2: Software as a Service (SaaS)

Industry Trends

Industry Trends Trend 3: Web 2.0

Industry Trends

Industry Trends Trend 4: Rich Internet Applications (RIA)

Industry Trends

Industry Trends Trend 5: Cloud Computing

Industry Trends

Industry Trends What common architectural principles apply across all of these trends?

Heads in the Cloud, Feet on the Ground

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

Heads in the Cloud, Feet on the Ground Economy of Scale Low High Control High Low Application runs on-premises 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)

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud Application runs on-premises 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)

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud Application runs on-premises 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) Build vs. Buy Build Buy

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud “ Packaged” Application An application that I buy “off the shelf” and run myself “ Home Built” Application An application that I develop and run myself 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 Cloud Platform An application that I develop myself, that I run in the cloud “ Software as a Service” A hosted application that I buy from a vendor Build vs. Buy Build Buy

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud Build vs. Buy Build Buy “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” Cloud Platform “ Software as a Service”

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud “ Too costly to run this myself, but I’ve made too many customizations” “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” Cloud Platform “ Software as a Service” Build vs. Buy Build Buy Clinical Trial Molecule Research HR System Email CRM ERP

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud “ 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” Cloud Platform “ Software as a Service” Build vs. Buy Build Buy Clinical Trial Molecule Research HR System Email CRM ERP

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud “ 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” Cloud Platform “ Software as a Service” Build vs. Buy Build Buy Clinical Trial Molecule Research HR System Email CRM ERP

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud “ I wish I had access to cheaper compute and storage when I need it” “ Packaged” Application “ Home Built” Application Hosted “ Home Built” Hosted “ Packaged” Cloud Platform “ Software as a Service” Build vs. Buy Build Buy Clinical Trial Molecule Research Email CRM ERP HR System

Heads in the Cloud, Feet on the Ground On Premises vs. Cloud On Premises Cloud “ 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” Cloud Platform “ Software as a Service” Build vs. Buy Build Buy Clinical Trial Molecule Research Email CRM ERP HR System

Architectural Principles for Software + Services

Architectural Principles for Software + Services

Architectural Principles for Software + Services 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

Architectural Principles for Software + Services

Architectural Principles for Software + Services

Architectural Principles for Software + Services File Fileshare, flat, page-based Relational Hosted relational database, familiar, transactional, finite Unstructured Key/value Pair, no atomicity, infinitely scalable

Architectural Principles for Software + Services

Architectural Principles for Software + Services Service Bus Asynchronous, reliable messaging, publish/subscribe model Peer to Peer Node registration, directory, presence awareness

Architectural Principles for Software + Services

Architectural Principles for Software + Services Authentication Username / Password or claims based Role Based Authorization Role-checking and authorization

Architectural Principles for Software + Services

Architectural Principles for Software + Services Event Based Triggered based on events (e.g. document upload) High Throughput Low latency, high volume (e.g. trading confirmations)

Architectural Principles for Software + Services

Architectural Principles for Software + Services

Architectural Principles for Software + Services Search Text Search, Image Search, Indexing Social Social Graphs, Profiles Content Management Indexing, Retrieval, Conflict Management

Architectural Principles for Software + Services

Architectural Principles for Software + Services Transaction Pay for each transaction Subscription Pay per month/period Licensing Pay per user/machine Advertising Advert funded model

Architectural Principles for Software + Services

Architectural Principles for Software + Services Service Composition Composition, brokering results, aggregation Line of Business Integration Service wrapping of mainframe and other LOB applications

Architectural Principles for Software + Services

Architectural Principles for Software + Services Business Logic (Rules) Entities (Schema) Workflow (Process)

Architectural Principles for Software + Services

Architectural Principles for Software + Services 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.

Architectural Principles for Software + Services

Architectural Principles for Software + Services Web Services SOAP based, WS-I compliant, WS-* REST CRUD access to services via HTML RSS Syndication services for subscriptions

Architectural Principles for Software + Services VoiceXML Mobile Application Speech API SIP Session Initiation Protocol – IM Clients SMTP Email inbound and outbound delivery SMS Mobile inbound and outbound text messaging

Architectural Principles for Software + Services

Architectural Principles for Software + Services

Architectural Principles for Software + Services 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

Architectural Principles for Software + Services

Architectural Principles for Software + Services 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

Architectural Principles for Software + Services

Architectural Principles for Software + Services Devices Dedicated devices Consoles Games Consoles

Architectural Principles for Software + Services

Architectural Principles for Software + Services

Architectural Principles for Software + Services What type of architectural patterns can we show using these principles?

Static Web Site, On Premise

Static Web Site, On Premise (Add Content Mgt)

Static Web Site, On Premise (Add Search/Social)

Static Web Site, On Premise (Add Ad Service)

Static Web Site, On Premise (Move to Hoster)

Static Web Site, On Premise (Add AJAX)

Static Web Site, On Premise (Add Mobile RSS)

Architectural Principles for Software + Services How about the trends we talked about earlier?

Architectural Principles for Software + Services Trend 1: Service Oriented Architecture (SOA)

Trend 1: SOA - Single Service, On Premise

Trend 1: SOA - Single Service, On Premise

Trend 1: SOA - Single Service, On Premise

Trend 1: SOA - Single Service, On Premise

Trend 1: SOA - Single Service, On Premise

Trend 1: SOA - Single Service, On Premise

Trend 1: SOA - Single Service, On Premise

Trend 1: SOA - Single Service, On Premise

Architectural Principles for Software + Services Trend 2: Software as a Service (SaaS)

Trend 2: SaaS – Web Based SaaS Provider

Trend 2: SaaS – Web Based SaaS Provider

Trend 2: SaaS – Web Based SaaS Provider

Architectural Principles for Software + Services Trend 3: Web 2.0

Trend 3: Web 2.0 – Social Networking Site

Trend 3: Web 2.0 – Social Networking Site

Architectural Principles for Software + Services Trend 4: Rich Internet Applications

Trend 4: RIA – eCommerce Site

Trend 4: RIA – eCommerce Site

Trend 4: RIA – eCommerce Site

Trend 4: RIA – eCommerce Site

Architectural Principles for Software + Services Trend 5: Cloud Computing

Trend 5: Cloud Computing – Backup Provider

Trend 5: Cloud Computing – Backup Provider

Trend 5: Cloud Computing – Backup Provider

Trend 5: Cloud Computing – Backup Provider

Architectural Principles for Software + Services How about Microsoft’s own products?

Exchange Lifecycle (Exchange 4.0, Outlook 97)

Exchange Lifecycle (Exchange 5.0, Outlook 97)

Exchange Lifecycle (Exchange 5.0 SP1, Outlook XP)

Exchange Lifecycle (Exchange 2003, Outlook 2003)

Exchange Lifecycle (Exchange 2007, Outlook 2007)

Exchange Lifecycle (Hosted Exchange, Outlook 2007)

Architectural Challenges

Architectural Challenges Challenge 1 - Identity

Challenge 1 - Identity

Challenge 1 - Identity

Challenge 1 - Identity Accessing Hosted Assets with Internal Credentials AuthN and AuthZ across FW Credential Storage

Accessing Hosted Assets with Internal Credentials

AuthN and AuthZ across FW

Credential Storage

Challenge 1 - Identity

Architectural Challenges Challenge 2 – Data

Challenge 2 - Data

Challenge 2 - Data Import and Export of Data Privacy of External Data Reporting and Analytics

Import and Export of Data

Privacy of External Data

Reporting and Analytics

Architectural Challenges Challenge 3 – Management

Challenge 3 - Management

Challenge 3 - Management Holistic View of Application? Integration into existing System Management solutions? Contracts and SLAs

Holistic View of Application?

Integration into existing System Management solutions?

Contracts and SLAs

Software + Services – Next Steps

Software + Services – Next Steps Step 1 – Understand many successful applications are a combination of Software + Services

Software + Services – Next Steps Step 2 – Use the “principles” to visualize, decompose and recompose existing applications

Software + Services – Next Steps Step 3 – Understand the Technology Mappings

Software + Services – Next Steps IE8 Windows Mobile 7 XBOX 360 IIS 7 SL Streaming WCF .NET Framework MOSS 2007 BTS Adapters MOSS 2007 BDC AD / ADFS .NET Services Ad Center .NET Framework 3 rd Party BizTalk 2006 R2 ILM .NET Services BizTalk / BizTalk.Net Live Services IIS 7 SQL Server SQL Services Windows WF MOSS 2007 .NET Services Windows WF BizTalk Server .NET Services Windows Server 2008 WS 2008 HPC Windows Server 2008 Hyper-V Office WPF Vista OC Win Embed .NET CF Windows Azure

Software + Services – Next Steps Step 4 – Blueprints for repeatable patterns

Software + Services – Next Steps

Software + Services – Next Steps

Software + Services – Next Steps Step 5 – Get the right people involved

Software + Services – 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

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

Add a comment

Related presentations

Related pages

Chapter 2: Key Principles of Software Architecture

... Key Principles of Software Architecture. ... about the key design principles and guidelines for software ... based applications and services.
Read more

21 principles of enterprise architecture for the financial ...

This principle means "service ... specific software solutions. Principle 12. Easy ... Principle 16. Enterprise architecture ...
Read more

Software Architecture | Overview

Software architecture serves as the ... The SEI helps advance software engineering principles and practices and ... Software Architecture; Service ...
Read more

Chapter 3: Architectural Patterns and Styles

... see "An Introduction to Software Architecture" at http://www ... the principle of using a software system that can ... use of software services.
Read more

Architecture Principles - JOSSO 2 - Processing ...

Architecture principles are a ... architecture. Architecture principles can ... systems software. Implications: This principle will ...
Read more

Architectural Principles | The IT Manager (ITMGR.org)

... on any list of architectural principles. ... principle plays out as modularity in software ... Architecture –>>Architectural Principles
Read more

23. Architecture Principles - JOSSO 2 - Processing ...

Architecture Principles ... The architecture is based on a design of services which ... operating systems software. Implications: This principle will ...
Read more

Service-oriented architecture - Wikipedia, the free ...

A service-oriented architecture (SOA) is an architectural pattern in computer software design in which application components provide services to other ...
Read more

SEI Training | Software Architecture: Principles and Practices

This course is based on the book Software Architecture in Practices, ... Software Architecture: Principles and Practices. ... Services. Engage with Us;
Read more