Upload
alyson-holland
View
222
Download
0
Embed Size (px)
Citation preview
.NET .NET EnterpriseEnterpriseArchitectureArchitecture
Michael PlattMichael PlattArchitect EmeritusArchitect EmeritusPlatform Strategy GroupPlatform Strategy GroupMicrosoft CorporationMicrosoft Corporation
Agenda Agenda
Enterprise ArchitectureEnterprise Architecture Microsoft .NET Enterprise ArchitectureMicrosoft .NET Enterprise Architecture
Michael Platt: Architect Emeritus, Platform Michael Platt: Architect Emeritus, Platform Strategy GroupStrategy Group
Microsoft .NET Patterns Microsoft .NET Patterns Lars Laakes: Product Manager, patterns & Lars Laakes: Product Manager, patterns &
practices practices
Microsoft OTG perspective - Enterprise Microsoft OTG perspective - Enterprise Architecture & PatternsArchitecture & Patterns Bryan Krieger, Director, OTG – Technology Bryan Krieger, Director, OTG – Technology
Integration and PlanningIntegration and Planning
Enterprise IT TodayEnterprise IT Today
Managing ever-increasing complexityManaging ever-increasing complexity Modeling business processesModeling business processes
Managing costsManaging costs Smart infrastructures make for simple Smart infrastructures make for simple
solutionssolutions Minimize development costMinimize development cost
Enhancing business agilityEnhancing business agility Minimize “Time to Market”Minimize “Time to Market” Integration by designIntegration by design
The Agile OrganizationThe Agile Organization
BillingBilling
CustomerCustomerSystemsSystems
Product 3Product 3
Product 2Product 2
Product 1Product 1
Core ProductCore Product
FBT PAY GNTS
TRDS
Client
Customs
RREIPS Integrated A/C
Refunds
RBADef
PaymentsExcise
CR
PKI
ECI ADD AWA ELS
Client StaffRemote
StaffTAX
AGENTS
GCI
Call Centres
WOC
CCD
TASS
StaffPhone
ComplianceStaff
BOA
Ref material
Bus. Intel
NTS A/c
BEP
CDCCCWMS
BANK
DDDR
1
Data…….
Penalty
Business
IVR
1
IT TodayIT Today
How do you How do you minimize total minimize total
cost ?cost ?
How do you How do you manage manage
complexity?complexity?
How do you How do you integrate what I have integrate what I have
today/tomorrow?today/tomorrow?
How do you align How do you align business and IT? business and IT?
(Sarbanes-Oxley)(Sarbanes-Oxley)
How do you align How do you align business and IT? business and IT?
(Sarbanes-Oxley)(Sarbanes-Oxley)
ModelsModels
Patterns, Models, ArchitecturesPatterns, Models, Architectures
PatternsPatterns
ConceptualConceptualConceptualConceptual
LogicalLogicalLogicalLogical
ImplementationImplementationImplementationImplementation
ArchitectureArchitecture
IT Space IT Space COBITCOBIT
IPIP
TechTech
ProcessProcess
TechTechPeoplePeople ToolsTools
ModelsModels
SDLCSDLC
Ops & Admin
Ops & Admin
Architectural ModelsArchitectural Models
ZachmannZachmannBATIBATI
DADIDADI
LayersLayers
BusinessBusiness ApplicationApplication TechnicalTechnical InformationInformation
ConceptualConceptual RTERTE SOASOA Web ServicesWeb Services KMKM
LogicalLogical B2B etcB2B etc OO, UML OO, UML DiagramDiagram
N TierN Tier InformationInformation
& Schema& Schema
PhysicalPhysical Business Business TransactionTransaction
CodeCode Products & Products & HardwareHardware
DataData
Architectural ModelsArchitectural Models
Making EA ActionableMaking EA Actionable
Business principles and goalsBusiness principles and goals EA project officeEA project office 8 concrete steps to an implemented EA8 concrete steps to an implemented EA
As is/To beAs is/To be EA generationEA generation
Governance and MeasurementGovernance and Measurement
EA is an element of IT not a solutionEA is an element of IT not a solution
PatternsPatterns
Lars LaakesLars LaakesProduct ManagerProduct Managerpatterns & practices patterns & practices Microsoft CorporationMicrosoft Corporation
Singleton PatternSingleton Pattern
Context:Context: Control access to a class by controlling its Control access to a class by controlling its
instantiation processinstantiation process
Problem:Problem: Certain types of data need to be globally Certain types of data need to be globally
accessed and maintainedaccessed and maintained This data is often unique in the systemThis data is often unique in the system E.G. counter classE.G. counter class
Singleton PatternSingleton Pattern
Solution:Solution:public class Counterpublic class Counter{{
private static Counter _instance = null;private static Counter _instance = null;private Counter() {}private Counter() {}public static Counter getInstance() public static Counter getInstance() {{
if (_instance==null) if (_instance==null) {{
_instance = new Counter();_instance = new Counter();}}return _instance;return _instance;
}}
//... functions provided by Counter //... functions provided by Counter }}
Layered Architecture PatternLayered Architecture Pattern
Context:Context: You are designing a complex enterprise You are designing a complex enterprise
application composed of a large number of application composed of a large number of components across multiple levels of components across multiple levels of abstractionabstraction
Problem:Problem: How do you structure an application to How do you structure an application to
support such operational requirements support such operational requirements such as maintainability, reusability, such as maintainability, reusability, scalability, robustness and security?scalability, robustness and security?
Layered Architecture PatternLayered Architecture Pattern
User Interface Components
User Process Components
Service Interfaces
BusinessWorkflows
BusinessComponents
BusinessEntities
Data Access LogicComponents
Service Agents
Data Source Service
Se
cu
rity
Op
era
tio
na
l M
an
ag
em
en
t
Co
mm
un
ica
tio
n
Example: Struts vs. ASP.NETExample: Struts vs. ASP.NET
J2EE Web Presentation PatternsJ2EE Web Presentation Patterns Model View ControllerModel View Controller Front ControllerFront Controller View DispatcherView Dispatcher Service To WorkerService To Worker View HelperView Helper Intercepting FilterIntercepting Filter
Example: Struts vs. ASP.NETExample: Struts vs. ASP.NET
Reuse Design Decisions: StrutsReuse Design Decisions: Struts Struts contains:Struts contains:
Front ControllerFront Controller Tag LibrariesTag Libraries Model View ControllerModel View Controller
Web Presentation PatternsWeb Presentation PatternsDesignDesign
MVC
Front Controller
Page Cache Intercepting Filter
ImplementingMVC
with ASP.NET ImplementingFront Controller with ASP.NET
ImplementingIntercepting Filter
with ASP.NET
ImplementingPage Cache
with ASP.NET
Page Controller
ImplementingPage Controller with ASP.NET
Implementation
Example: Struts vs. ASP.NETExample: Struts vs. ASP.NET
ConclusionConclusion ASP.NET – Range of sound solutions, ASP.NET – Range of sound solutions,
simple to complexsimple to complex Struts – Excessive complexity for many Struts – Excessive complexity for many
solutionssolutions
Packaged Packaged SoftwareSoftware
Custom SoftwareCustom Software HardwareHardware
Engineered SolutionEngineered Solution
Patterns and SolutionsPatterns and Solutions
Business RequirementsBusiness Requirements
PatternsPatterns
Packaged Packaged SoftwareSoftware
Custom SoftwareCustom Software HardwareHardware
Organizing Our ThinkingOrganizing Our Thinking
DesignDesign
ArchitectureArchitecture
Impl.Impl.
DataData AppApp DeployDeploy InfrastructureInfrastructure
ArchitectureArchitecture
DesignDesign
ImplementationImplementation
InfrastructureInfrastructureDeploymentDeploymentApplicationApplicationDataData
The Pattern GraphThe Pattern Graph
ArchitectureArchitecture
DesignDesign
ImplementationImplementation
InfrastructureInfrastructureDeploymentDeploymentApplicationApplicationDataData
Patterns – Solutions LanguagePatterns – Solutions Language
ThreeLayered
Application
Layered Application
Simple Web
Complex Web
Rich Client
Ext. Enterprise
4-Tier3-Tier
TieredDistribution
LayeredServices
Application
ArchitectureArchitectureApplicationApplicationApplicationApplication InfrastructureInfrastructureInfrastructureInfrastructureDeploymentDeploymentDeploymentDeployment
Tiered DistributionTiered Distribution
ScalabilityScalability AvailabilityAvailability PerformancePerformance SecureSecure
Tiered DistributionTiered Distribution
ScalabilityScalability AvailabilityAvailability PerformancePerformance SecureSecure
Discrete Logical Discrete Logical Layers Data & Layers Data & Functional AnalysisFunctional Analysis
Design Flexibility Design Flexibility MaintainabilityMaintainability Loose CouplingLoose Coupling
Discrete Logical Discrete Logical Layers Data & Layers Data & Functional AnalysisFunctional Analysis
Design Flexibility Design Flexibility MaintainabilityMaintainability Loose CouplingLoose Coupling
Complex Web AppComplex Web App
SecuritySecurity Component ReuseComponent Reuse ManageabilityManageability Performance TradeoffPerformance Tradeoff
Complex Web AppComplex Web App
SecuritySecurity Component ReuseComponent Reuse ManageabilityManageability Performance TradeoffPerformance Tradeoff
DD AA DD II
AA
DD
II
DesignDesignApplicationApplicationApplicationApplication InfrastructureInfrastructureInfrastructureInfrastructureDeploymentDeploymentDeploymentDeployment
ClustersClusters ZonesZones Policies Policies ProtocolsProtocols LinksLinks
ClustersClusters ZonesZones Policies Policies ProtocolsProtocols LinksLinks
Design Classes & Design Classes & Mechanisms – eg:Mechanisms – eg:
SecuritySecurity CommunicationCommunication Data AccessData Access Exception Exception HandlingHandling LoggingLogging
Design Classes & Design Classes & Mechanisms – eg:Mechanisms – eg:
SecuritySecurity CommunicationCommunication Data AccessData Access Exception Exception HandlingHandling LoggingLogging
Runtime DependenciesRuntime Dependencies
Map Processes to Map Processes to ProcessorsProcessors
Runtime DependenciesRuntime Dependencies
Map Processes to Map Processes to ProcessorsProcessors
DD AA DD II
AA
DD
II
ImplementationImplementationApplicationApplicationApplicationApplication InfrastructureInfrastructureInfrastructureInfrastructureDeploymentDeploymentDeploymentDeployment
Hardware Spec & Configuration IP Addressees Ports Server & Files Names
Hardware Spec & Configuration IP Addressees Ports Server & Files Names
Implementation Implementation Classes & Classes & MechanismsMechanisms
Product usage – eg: Product usage – eg: .NET remoting.NET remoting
Implementation Implementation Classes & Classes & MechanismsMechanisms
Product usage – eg: Product usage – eg: .NET remoting.NET remoting
Configuration Configuration Dependencies Dependencies
Distribution Manifest – Distribution Manifest – Components, Machines, Components, Machines, Files…Files…
Configuration Configuration Dependencies Dependencies
Distribution Manifest – Distribution Manifest – Components, Machines, Components, Machines, Files…Files…
DD AA DD II
AA
DD
II
ArchitectureArchitecture
DesignDesign
ImplementationImplementation
DataData ApplicationApplication DeploymentDeployment InfrastructureInfrastructure
The Pattern Graph - ClustersThe Pattern Graph - Clusters
ComponentsComponents
PresentationPresentation
FrameworkFramework
SecuritySecurity
Smart ClientSmart Client
ConclusionConclusion
Patterns are a problem/solution pair Patterns are a problem/solution pair in a contextin a context
Patterns are an effective way to Patterns are an effective way to convey guidanceconvey guidance
Patterns are ‘first class citizens’ Patterns are ‘first class citizens’ when architecting systemswhen architecting systems
We are building a pattern graph for We are building a pattern graph for business applications using business applications using Microsoft technologiesMicrosoft technologies
Microsoft’s application Microsoft’s application architecture model and architecture model and patternspatterns
Bryan KriegerBryan KriegerDirectorDirectorOTG – Technology Integration and OTG – Technology Integration and PlanningPlanningMicrosoft CorporationMicrosoft Corporation
Sydney
Chofu & Otemachi
Les UlisTVP
Dublin Benelux
Madrid
Dubai
Singapore
Johannesburg
Sao Paulo
72,000 mailboxes
Microsoft OperationsMicrosoft Operations
Canyon ParkRedmond
Los ColinasCharlotte
ChicagoMilan
Stockholm
Munich
400+ supported MS sites worldwide
4.5M+ e-mail messages per day internally
50K employees
150,000+ PCs >7,000
servers
Single Instance SAP
Silicon Valley
IT ChallengesIT Challenges
Security and privacySecurity and privacy Controlling IT spendControlling IT spend ManageabilityManageability ProductivityProductivity End User education and trainingEnd User education and training
OTG Application LandscapeOTG Application Landscape
Diverse business unit needsDiverse business unit needs Federated IT modelFederated IT model Centralized core systemsCentralized core systems
SAPSAP SiebelSiebel Data warehouseData warehouse
Large number of internal applicationsLarge number of internal applications
OTG ViewpointOTG Viewpoint
Architecture technology and planningArchitecture technology and planning Application architectureApplication architecture Infrastructure architectureInfrastructure architecture Technology integrationTechnology integration
Provides Provides GuidanceGuidance PrinciplesPrinciples ReviewReview
Why OTG Likes ThisWhy OTG Likes This
Microsoft can now deliver this to ITMicrosoft can now deliver this to IT Allows IT to focus more on business Allows IT to focus more on business
instead of technologyinstead of technology Loosely coupled services Loosely coupled services Streamline and promote common Streamline and promote common
architecture, componentsarchitecture, components
Microsoft ConfidentialMicrosoft Confidential© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.