37
.NET .NET Enterprise Enterprise Architecture Architecture Michael Platt Michael Platt Architect Emeritus Architect Emeritus Platform Strategy Group Platform Strategy Group Microsoft Corporation Microsoft Corporation

NET Enterprise Architecture Michael Platt Architect Emeritus Platform Strategy Group Microsoft Corporation

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

What is a Pattern?What is a Pattern?

ContextContext

ProblemProblem SolutionSolution

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

Questions?Questions?

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.