s+s architecture overview
DESCRIPTION
This is a talk I give to explain S+S and provide architectural guidance on how to understand and build S+S solutions.TRANSCRIPT
1
An Architectural Overview of Software + Services
David SolivanArchitect EvangelistMicrosoft [email protected] alias: mrbeaudreauxhttp://www.youtube.com/dsolivanGamertag: MagicalSollyBlog: http://blogs.msdn.com/beaudreaux
Some Recent History
In the beginning…centralization.
Some Recent History
Some Recent History
Some Recent History
Then we realized distribution was best.
Some Recent History
Some Recent History
Some Recent History
The we saw that what we really needed was centralization.
Some Recent History
Some Recent History
Why The Back and Forth???Security & Privacy
Customizability
Visibility & Control
Data accessibility
Global reach
Ease of provisioning
Business agility
Deployability & manageability
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
Trend 6: Mobile Computing
Industry Trends
SOA: Service Oriented Architecture Service Composition
Web 2.0Network Effect
SaaS: Software as a Service Service Delivery
RIA: Rich Internet ApplicationsExperience
Software + Services
Cloud ComputingService Utility
Industry Trends
Is this just a Microsoft thing?
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
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.
Demo: FedEx QuickShip
Taking Advantage of these Trends
Taking Advantage of these Trends
How do these industry trends map to architectural patterns?
What kind of applications are possible using the Software + Services
paradigm?Can Software + Services take
advantage of existing investments?
Taking Advantage of these Trends
A set of architectural principles for understanding the Software + Services
paradigm
Foundation
Foundation
Physical, DedicatedSingle service on a dedicated hardwarePhysical, SharedMultiple services on a dedicated hardwarePhysical, HPCPhysical hardware supporting HPC scenarioVirtual, SingleSingle instance virtual imageVirtual, SharedMultiple instance virtual image
Self-Hosted vs. Vendor Hosted
Self-Hosted vs. Vendor Hosted
Self-HostedYou manage and pay for your own datacenter
Vendor HostedYou pay for a vendor to host your applications
Self-Hosted vs. Vendor Hosted
Vendor InvestmentsVendors investing heavily in multi-site datacenters
Self-Hosted vs. Vendor Hosted
Microsoft Data Center (Chicago, IL) $500m investment, 500,000 sq ft, container based
Self-Hosted vs. Vendor Hosted
CostInitial investment, maintenance, and depreciation
Self-Hosted vs. Vendor Hosted
Power ConsiderationsRising energy costs and sustainability considerations
Self-Hosted vs. Vendor Hosted
Operational RequirementsHelpdesk, backups, networking, upgrades
Self-Hosted vs. Vendor Hosted
Security and Data ProtectionStorage, transmission, identity, and regulatory issues
Self-Hosted vs. Vendor Hosted
Hardware AdvancementsVirtualization, Multicore, Performance Tuning
Architectural Principles for Software + Services
FoundationSelf Hosted Vendor Hosted
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Infrastructure Services
Infrastructure Services
Identity and Access
Directory Based AuthenticationUsername / Password based
Claims Based AuthenticationSecure token or other claims based
Role Based AuthorizationRole-checking and authorization
Infrastructure Services
Messaging
Service BusAsynchronous, reliable messaging, publish/subscribe model
Peer to PeerNode registration, directory, presence awareness
Infrastructure Services
Storage
TraditionalFileshare, flat, page-based
RelationalHosted relational database, familiar, transactional, finite
UnstructuredKey/value Pair, no atomicity, infinitely scalable
Infrastructure Services
Workflow
Event BasedTriggered based on events (e.g. document upload)
High ThroughputLow latency, high volume (e.g. trading confirmations)
Architectural Principles for Software + Services
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
Application Services
Application ServicesCollaboration
SearchText Search, Image Search, Indexing
SocialSocial Graphs, Profiles
ContentIndexing, Retrieval, Conflict Management
Application ServicesMonetization
TransactionPay for each transaction
SubscriptionPay per month/period
LicensingPay per user/machine
AdvertisingAdvert funded model
Application ServicesComposition
Service CompositionComposition, brokering results, aggregation
LOB IntegrationService wrapping of mainframe and other LOB applications
Application ServicesBusiness Intelligence
DashboardExposed, pre-defined KPIs
ReportingCustom queries and reports
Architectural Principles for Software + Services
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
Application ServicesApplication
Business Logic (Rules)
Entities (Schema)
Workflow (Process)
Architectural Principles for Software + Services
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
Workflow (Processes)
Application ServicesWeb Presentation
StaticStatic content, HTML etc
DynamicAsynchronous interaction, AJAX etc.
RichRich Internet Applications, high visuals, limited offline support
StreamingOptimized for content delivery, videos etc.
Architectural Principles for Software + Services
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application ServicesWeb Delivery
Static Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
Workflow (Processes)
Application ServicesProgrammatic Access
Web ServicesSOAP based, WS-I compliant, WS-*
RESTCRUD access to services via HTML
RSSSyndication services for subscriptions
Application ServicesProgrammatic Access
VoiceXMLMobile Application Speech API
SIPSession Initiation Protocol – IM Clients
SMTPEmail inbound and outbound delivery
SMSMobile inbound and outbound text messaging
Architectural Principles for Software + Services
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application ServicesExposed APIs
Web Services REST RSS VoiceXML
Web DeliveryStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Client Software
Client Software
Web BasedConsumer of web based content, HTML etc
RIAConsumer of Rich Content through Browser Add-In
Browser Based
Client Software
Mobile ClientWeb BasedMobile consumer of web based content, HTML etc
RIAMobile consumer of Rich Content through Browser Add-In
Client ApplicationLocally installed and run applications
Client Software
Mobile ClientOfficeMobile based Email and Office Applications
SMS / IMText messaging and IM using Mobile Device
SpeechSpeech enabled interface
Client Software
OfficeOffice Suite, including Email and RSS reader capability
Client ApplicationRich (Smart) client applications installed locally on machine
Client PC
Client Software
GadgetsLocally installed, desktop based
Instant MessagingLocally installed Instant Messaging client
Client PC
Client Software
DevicesDedicated devices
ConsolesGames Consoles
Embedded
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Architectural Principles for Software + Services
Architectural Principles for Software + Services
Architectural Principles for Software + Services
Now that I understand the principles, how should I think about my own architectural
designs?
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Simple Web Site
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Simple Blog
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Simple Wiki
Architectural Principles for Software + Services
How about the trends you mentioned earlier?
Architectural Principles for Software + Services
Trend 1: Service Oriented Architecture (SOA)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 1: SOA) – Self Hosted Services
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 1: SOA) – Integrating LOB Applications
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 1: SOA) – Expanding using OBA
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 1: SOA) – Self Hosted Services
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 1: SOA) – Self Hosted Services using ESB
Architectural Principles for Software + Services
Internet Service Bus
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 1: SOA) – Self Hosted Services using ISB
Architectural Principles for Software + Services
Trend 2: Software as a Service (SaaS)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 2: SaaS) – Web Based SaaS Provider
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 2: SaaS) – Web Based SaaS Provider w/ API
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 2: SaaS) – Web Based SaaS Provider w/ Offline
Architectural Principles for Software + Services
Trend 3: Web 2.0
Nico Nico Douga
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 3: Web 2.0) – Nico Nico Douga
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 3: Web 2.0) – Nico Nico Douga
Architectural Principles for Software + Services
Trend 4: Rich Internet Applications
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 4: RIA) - Purchasing Capability
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 4: RIA) - Purchasing Capability + RIA
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
(Trend 4: RIA) - Purchasing Capability + Mobile RIA
Architectural Principles for Software + Services
How about Microsoft’s own products?
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Exchange Lifecycle (Exchange 4.0, Outlook 97)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Exchange Lifecycle (Exchange 5.0, Outlook XP)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Exchange Lifecycle (Exchange 2003, Outlook 2003)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Exchange Lifecycle (Exchange 2003, Outlook 2003)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Exchange Lifecycle (Exchange 2007, Outlook 2007)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Exchange Lifecycle (Hosted Exchange, Outlook 2007)
Architectural Principles for Software + Services
A “middle out” architecture
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Architectural Principles for Software + Services
A “middle out” architecture
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Architectural Principles for Software + Services
A “middle out” architecture
Contracts and SLAs
Contracts and SLAs
What kind of contracts and SLAs do you need to be thinking about?
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Simple Web Site
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Simple Web Site (Internal Contract and SLA)
Cont
ract
s and
SLA
s
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Cont
ract
s and
SLA
sSimple Web Site (External Contract and SLA)
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Cont
ract
s and
SLA
s
Using ISB (Mixed Contract and SLA)
Provisioning
Provisioning
What is important from a provisioning perspective?
Provisioning
How are you going to manage your application “as one” in a mixed hosted
environment?
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Cont
ract
s and
SLA
sProvisioning, M
anagement & M
onitoring
Using ISB (Provisioning Considerations)
Implementing Software + Services
Implementing Software + Services
Three steps for implementing Software + Services using the principles and patterns
introduced in this deck
Implementing Software + Services
Step 1: Get the right people involved
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Implementing Software + ServicesCo
ntra
cts a
nd S
LAs
Provisioning, Managem
ent & Monitoring
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Cont
ract
s and
SLA
sProvisioning, M
anagement & M
onitoring
Implementing Software + Services
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)
Ente
rpris
e Ar
chite
ct a
nd C
IO Data Center Operations
Implementing Software + Services
Step 2: Map to technologies
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Implementing Software + Services
IE8 Silverlight Windows Mobile 6 Live
MsgrWindow
s CE
XBOX 360
IIS 7 SL Streaming WCF
.NET Framework
MOSS 2007BTS AdaptersMOSS 2007
BDC
AD / ADFS
SQL Server Reporting Services
AdCent
er.NET Framework
3rd PartyBizTalk 2006 R2
Vista
ILM CardSpace
BizTalk / BizTalk.Ne
tPeer Fx IIS 7
SQL Server
SSDSWindows
WFMOSS 2007
Windows WFBizTalk Server
2006
Windows Server 2008 WS 2008 HPC
Windows Server 2008 Hyper-V
Office
WPF
Implementing Software + Services
Step 3: If you are dealing with repeatable architectural designs, build assets using
Software Factories approach
Infrastructure Services
FoundationSelf Hosted Vendor Hosted
Application Services
BrowserClient Software
HTML RIA
MobileWeb RIA Client SMS Speech
Client PCClient Office Gadgets IM
EmbeddedDevices Consoles
Programmatic AccessWeb Services REST RSS VoiceXML
Web PresentationStatic Dynamic Rich Streaming
ApplicationEntities (Schema)Business Logic (Rules)
CollaborationSearch ContentSocial
MonetizationTx Subs License Advert
CompositionService Int LOB Int
Business IntelligenceDashboards Reporting
Identity & AccessDirectory RBAC
MessagingService Bus P2P
StorageTraditional UnstructuredRelational
WorkflowEvent based High Throughput
ComputePhysical, Dedicated Physical, Shared Physical, HPC Virtual, Single Virtual, Scalable
Claims
SMTP SMSSIP
Workflow (Processes)
Implementing Software + Services
Implementing Software + Services
Implementing Software + Services
Purchasing Site 1 Purchasing Site 2
Purchasing Site 3 Purchasing Site 4
136
© 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.