arc400 tools for architects: developing service oriented systems keith short, architect visual...

52
ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Keith Short, Architect Visual Studio, Enterprise Visual Studio, Enterprise Tools Tools Microsoft Corporation Microsoft Corporation

Upload: ami-nichols

Post on 13-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

ARC400 Tools For Architects: Developing Service Oriented Systems

ARC400 Tools For Architects: Developing Service Oriented Systems

Keith Short, ArchitectKeith Short, ArchitectVisual Studio, Enterprise ToolsVisual Studio, Enterprise ToolsMicrosoft CorporationMicrosoft Corporation

Page 2: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Visual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation

Integration Services

Project Management

Pro

cess

an

d A

rch

itect

ure

P

roce

ss a

nd

Arc

hite

ctu

re

Gu

ida

nce

Gu

ida

nce

Vis

ua

l Stu

dio

Ind

ust

ry

Vis

ua

l Stu

dio

Ind

ust

ry

Pa

rtn

ers

Pa

rtn

ers

Dynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client

VS Pro

Class Modeling

Load Testing

Manual Testing

Test Case Management

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Visual Studio

Team DeveloperVisual Studio

Team TestApplication Modeling

Logical Infra. Modeling

Deployment Modeling

Class Modeling

Page 3: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Development TeamsDevelopment Teams

InfrastructureInfrastructureArchitectArchitect

SolutionSolutionArchitectArchitect

Project ManagerProject Manager

DeveloperDeveloper

TesterTester

End UserEnd User

Page 4: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Main PointsMain Points

Building Service Oriented Applications Building Service Oriented Applications can be a complex undertakingcan be a complex undertaking

Improving frameworks and Improving frameworks and languages helpslanguages helps

Modeling languages, tools and Modeling languages, tools and patterns have an important role to playpatterns have an important role to play

We can avoid many past pitfallsWe can avoid many past pitfalls

Page 5: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

AgendaAgenda

Complexity in connected systemsComplexity in connected systems

Using modeling to reduce complexityUsing modeling to reduce complexity

Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations

Scenario 2 – visualizing codeScenario 2 – visualizing code

Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes

Microsoft strategy and tools for Microsoft strategy and tools for Visual Studio 2005Visual Studio 2005

Page 6: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

AgendaAgenda

Complexity in connected systemsComplexity in connected systems

Using modeling to reduce complexityUsing modeling to reduce complexity

Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations

Scenario 2 – visualizing codeScenario 2 – visualizing code

Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes

Microsoft strategy and tools for Visual Microsoft strategy and tools for Visual Studio whidbeyStudio whidbey

Page 7: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

ComplexityComplexityAutomate business processesAutomate business processesValue chains with partnersValue chains with partnersCustomer and supplier self service Customer and supplier self service Improve ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to market

Service oriented architectureService oriented architectureWeb Services, messaging, Web Services, messaging, contractsSecuritycontractsSecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platformsApplication servers & standardsApplication servers & standardsSchemas and databasesSchemas and databasesCode and attributesCode and attributesConfiguration filesConfiguration filesProject structuresProject structuresPhysical server configurationsPhysical server configurations

??New Business

New Business

Requirements

Requirements

New Platform

New Platform

Technology

Technology

Same Old

Same Old

Implementation

Implementation

Approach

Approach

Page 8: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Building Software Today Building Software Today

We still hand-stitch every application We still hand-stitch every application ……

Using low level programming Using low level programming constructs …constructs …

Building every application as if it were Building every application as if it were the first of its kind …the first of its kind …

Page 9: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Synthesis of IdeasSynthesis of Ideas

Raising the level of Abstraction Raising the level of Abstraction Modeling and domain specific languagesModeling and domain specific languages

Patterns and FrameworksPatterns and FrameworksInstitutionalizing best practicesInstitutionalizing best practices

Software Product LinesSoftware Product LinesA context for systematic reuseA context for systematic reuse

Software component assemblySoftware component assemblySpecification of contracts and software Specification of contracts and software supply chainssupply chains

Page 10: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

AgendaAgenda

Complexity in Connected SystemsComplexity in Connected Systems

Using Modeling to Reduce ComplexityUsing Modeling to Reduce Complexity

Scenario 1 - Web Services and Design Scenario 1 - Web Services and Design for Operationsfor Operations

Scenario 2 – Visualizing CodeScenario 2 – Visualizing Code

Scenario 3 – Implementing Scenario 3 – Implementing Business ProcessesBusiness Processes

Microsoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 11: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Abstraction Reduces ComplexityAbstraction Reduces Complexity

Assembler, Pcode, Assembler, Pcode, CLR ILCLR IL

Bytecode or Bytecode or machine machine languageslanguages

Bytecode or Bytecode or machine machine languageslanguages

General Purpose General Purpose AbstractionsAbstractionsGeneral Purpose General Purpose AbstractionsAbstractionsC#, Java, etcC#, Java, etc

Domain Specific Domain Specific AbstractionsAbstractionsDomain Specific Domain Specific AbstractionsAbstractions

Page 12: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Telephone Billing LanguageTelephone Billing Language

call

calendarmonth

CallRecord

call length

base rate: £/s

call length

friend discount rate: £/sstore

friends calls

other calls

-

bill

billing period

store

+-

Page 13: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

C(x) h C(x) t 2m xih = –

Modelling And ProgrammingModelling And Programming

Textual Pictorial

Declarative

Procedural

class Magnox : NuclearPowerStation {

public void dropRods ()

jo biscuits 24 green

pat cakes 32 pink

Employeename

addresspromote

Jobdescription

payassign

0..*

a>b && c==d

call

CallRecord

call length

base rate: £/s

store

<CallRecord>

<caller><number>07713248</number>

Page 14: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

• forms-centred applications

• build GUI from a collection of widgets

• Web database applications

• standard couplings between form and db

• string, textfile processing

• regexps, parsers, …

(a,b,c)= str=~/<([^>]*)>/g;

• COTS applications

• Great Plains, SAP, Baan, …

Where Are DSLs In Use Today?Where Are DSLs In Use Today?

Page 15: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Domain Specific LanguagesDomain Specific Languages

Encapsulate abstractionsEncapsulate abstractionsNarrow scopeNarrow scope

Graphical and/or textualGraphical and/or textual

Highly expressiveHighly expressiveCoarse-grained abstractionsCoarse-grained abstractions

DSL patterns DSL patterns

Must be cheap to implement using Must be cheap to implement using General purpose programming languagesGeneral purpose programming languages

Specific framework completionSpecific framework completion

Other modeling languagesOther modeling languages

Page 16: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Implementing DSLsImplementing DSLs

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

(b)(b)

Model

Application CodeDomain Specific

Framework

PlatformFrameworks

Model

Generated CodeFramework

Pattern Language

Platform

Model

Application CodeDomain Specific

Framework

PlatformFrameworks

Model

Generated CodeFramework

Pattern Language

Platform

Model

Application CodeDomain Specific

Framework

PlatformFrameworks

Model

Generated CodeFramework

Pattern Language

Platform

Model

Application CodeDomain Specific

Framework

PlatformFrameworks

Model

Generated Code

Framework

Platform

(c)(c)

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

(a)(a)

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

(d)(d)

Page 17: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

DSL And Framework PatternDSL And Framework Pattern

CustomCustomPartialPartial

ClassesClassesFrameworkFramework

PartialPartialClassesClasses

FrameworkFrameworkClassesClasses

FrameworkFrameworkConfig FilesConfig Files

Other Other Framework Framework

ArtifactsArtifacts

usesuses

usesuses

completescompletes

FrameworkFrameworkToolsTools

DSLDSLEditorEditor

DSLDSLDefinitionDefinition

generatesgenerates

OtherOtherEditorsEditors

edit / buildedit / build

generatesgenerates

Page 18: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

AgendaAgenda

Complexity in connected systemsComplexity in connected systems

Using modeling to reduce complexityUsing modeling to reduce complexity

Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations

Scenario 2 – visualizing codeScenario 2 – visualizing code

Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes

Microsoft strategy and tools for Visual Microsoft strategy and tools for Visual Studio WhidbeyStudio Whidbey

Page 19: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

.asmx files .asmx code behinds source code Statements and attributes

XML ConfigurationFiles and schemas(e.g. WSDL files)

Project Files and templates

Deployment PoliciesAnd Packages

??

Scattered Concepts …Scattered Concepts …

Page 20: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

IssuesIssues

Concept of Web service is “lost” among Concept of Web service is “lost” among many filesmany files

Developer must keep files in syncDeveloper must keep files in sync

Refactoring engines ignorant of Web Refactoring engines ignorant of Web service conceptsservice concepts

Can not process non-code files like schemas and Can not process non-code files like schemas and config filesconfig files

Debugging, Intellisense, editors all ignorant Debugging, Intellisense, editors all ignorant of Web service conceptsof Web service concepts

Source Control, Work Item, Tests all ignorant Source Control, Work Item, Tests all ignorant of Web Service conceptsof Web Service concepts

Page 21: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

.asmx files .asmx code behinds source code Statements and attributes

XML ConfigurationFiles and schemas(e.g. WSDL files)

Project Files and templates

Deployment PoliciesAnd Packages

…A Holistic View…A Holistic View

Web Service Connectivity DSL

Page 22: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Web Service Connectivity DSLWeb Service Connectivity DSL

Services, Messages, Applications, Endpoints

Services, Messages, Applications, Endpoints

XML, Projects, DBs, Classes, Code

XML, Projects, DBs, Classes, Code

Physical servers & segments

DeploymentUnits

DeploymentUnits

Abstraction/Refinement

packaged into deployed on

Page 23: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

A DSL In Use TodayA DSL In Use Today

Page 24: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation
Page 25: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Web Service Connectivity Web Service Connectivity

PatternsPatternsService InterfaceService Interface

GatewayGateway

FaçadeFaçade

Layered ArchitectureLayered Architecture

AspectsAspectsTransactionsTransactions

SecuritySecurity

TransformationsTransformationsValidate against deployment infrastructureValidate against deployment infrastructure

Transform into implementation artifactsTransform into implementation artifacts

Page 26: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Applying A Service Façade PatternApplying A Service Façade Pattern

Policy Policy ManagementManagement

Customer Customer ManagementManagement

Customer Customer Self-ServiceSelf-Service

Service Facade PatternService Facade Pattern

Facade

Messages

Service

Selected Messages

Project StructuresReferencesDefault XSD schemasSecurity PolicyAccess PolicyPass-thru Logic & Filters

Customer Customer Mgmt Mgmt

FacadeFacade

Page 27: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements

IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements

DevelopmentDevelopment IT OperationsIT Operations

Developers don’t Developers don’t understand understand operations policyoperations policy

Developers don’t Developers don’t understand understand operations policyoperations policy

Plan/DesignPlan/DesignPlan/DesignPlan/Design DevelopmentDevelopmentDevelopmentDevelopment TestingTestingTestingTesting DeploymentDeploymentDeploymentDeployment OperationsOperationsOperationsOperations

Challenges Span The IT LifecycleChallenges Span The IT Lifecycle

Page 28: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

System System DefinitionDefinition

ModelModel(Future)(Future)

DevelopmentDevelopment IT OperationsIT Operations

Plan/DesignPlan/DesignPlan/DesignPlan/Design DevelopmentDevelopmentDevelopmentDevelopment TestingTestingTestingTesting DeploymentDeploymentDeploymentDeployment OperationsOperationsOperationsOperations

IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements

IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements

Developers don’t Developers don’t understand understand operations policyoperations policy

Developers don’t Developers don’t understand understand operations policyoperations policy

Challenges Span The IT LifecycleChallenges Span The IT Lifecycle

Page 29: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Increased communicationIncreased communicationand awarenessand awareness

(Today)(Today)

Plan/DesignPlan/DesignPlan/DesignPlan/Design DevelopmentDevelopmentDevelopmentDevelopment TestingTestingTestingTesting DeploymentDeploymentDeploymentDeployment OperationsOperationsOperationsOperations

IT OperationsIT OperationsDevelopmentDevelopment

IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements

IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements

Developers don’t Developers don’t understand understand operations policyoperations policy

Developers don’t Developers don’t understand understand operations policyoperations policy

Challenges Span The IT LifecycleChallenges Span The IT Lifecycle

Page 30: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Design For OperationsDesign For Operations

Services, Messages, Applications, Endpoints

Services, Messages, Applications, Endpoints

XML, Projects, DBs, Classes, Code

XML, Projects, DBs, Classes, Code

Logical Data Center

Logical Data Center

Physical servers & segments

DeploymentUnits

DeploymentUnits

Abstraction/Refinement

Abstraction/Refinement

Constraints

packaged into deployed on

Page 31: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation
Page 32: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation
Page 33: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation
Page 34: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Logical DataCenterLogical DataCenter

Logical system architecture patternsLogical system architecture patterns““Hardened IIS” – metabase settingsHardened IIS” – metabase settings

MSA patternsMSA patternsIdc, edcIdc, edc

Tiered architecture patternsTiered architecture patterns

AspectsAspectsFirewall settingsFirewall settings

Protocol settingsProtocol settings

TransformationsTransformationsValidate against web service application designValidate against web service application design

Transform into implementation SDMTransform into implementation SDM

Page 35: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

AgendaAgenda

Complexity in connected systemsComplexity in connected systems

Using modeling to reduce complexityUsing modeling to reduce complexity

Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations

Scenario 2 – visualizing codeScenario 2 – visualizing code

Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes

Microsoft strategy and tools for Microsoft strategy and tools for Visual Studio WhidbeyVisual Studio Whidbey

Page 36: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Code VisualizationCode Visualization

Services, Messages, Applications, Endpoints

Services, Messages, Applications, Endpoints

XML, Projects, DBs, Classes, Code

XML, Projects, DBs, Classes, Code

Logical Data Center

Logical Data Center

Physical servers & segments

DeploymentUnits

DeploymentUnits

Abstraction/Refinement

Abstraction/Refinement

Constraints

packaged into deployed on

Page 37: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation
Page 38: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

AgendaAgenda

Complexity in connected systemsComplexity in connected systems

Using modeling to reduce complexityUsing modeling to reduce complexity

Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations

Scenario 2 – visualizing codeScenario 2 – visualizing code

Scenario 3 – implementing Scenario 3 – implementing business processesbusiness processes

Microsoft strategy and tools for Microsoft strategy and tools for Visual Studio WhidbeyVisual Studio Whidbey

Page 39: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

DSL-To-DSL MappingsDSL-To-DSL Mappings

Services, Messages, Applications, Endpoints

Services, Messages, Applications, Endpoints

XML, Projects, DBs, Classes, Code

XML, Projects, DBs, Classes, Code

Logical Data Center

Logical Data Center

Physical servers & segments

DeploymentUnits

DeploymentUnits

Abstraction/Refinement

Abstraction/Refinement

Constraints

packaged into deployed on

Business Processes and Entities

Business Processes and Entities

Abstraction/Refinement

Reconciliation

Page 40: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Business Process ImplementationBusiness Process ImplementationBusiness ProcessBusiness Process

Implementation Implementation PatternsPatterns• Scheduled ProcessScheduled Process• Event-based ProcessEvent-based Process• User ProcessUser Process• Rules ProcessRules Process

Content PatternsContent Patterns• New EmployeeNew Employee• Orders to CashOrders to Cash

Page 41: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

A Software SchemaA Software Schema

Business Business CapabilitiesCapabilities

Business Business CapabilitiesCapabilities

Manual Manual ProceduresProcedures

Manual Manual ProceduresProcedures

TechnologyTechnologyArchitectureArchitecture

TechnologyTechnologyArchitectureArchitecture

ConstraintsConstraints

ReconciliationReconciliation

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical servers Physical servers & segments& segments

DeploymentDeploymentUnitsUnits

DeploymentDeploymentUnitsUnits

Abstraction/Abstraction/RefinementRefinement

ConstraintsConstraints

packaged intopackaged into deployed ondeployed on

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

ReconciliationReconciliation

Abstraction/Abstraction/RefinementRefinement

DSLsDSLsPatternsPatternsProcessesProcessesFrameworksFrameworksComponentsComponentsTransformsTransformsConstraintsConstraintsTest CasesTest Casesetc.etc.

Page 42: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Recipes Build Families Of ApplicationsRecipes Build Families Of Applications

Each Software Schema describes commonalities and variabilitiesEach Software Schema describes commonalities and variabilities

The assets are grouped together and form the software template The assets are grouped together and form the software template within Visual Studiowithin Visual Studio

Variabilities are configured using a variety of mechanisms to Variabilities are configured using a variety of mechanisms to produce a member of the familyproduce a member of the family

Software Schema for .Net eCommerce Software Schema for .Net Marketing Apps

Business Business CapabilitiesCapabilities

Business Business CapabilitiesCapabilities

Manual Manual ProceduresProcedures

Manual Manual ProceduresProcedures

TechnologyTechnologyArchitectureArchitecture

TechnologyTechnologyArchitectureArchitecture

ConstraintsConstraints

ReconciliationReconciliation

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers & servers & segmentssegments

DeploymentDeploymentUnitsUnits

DeploymentDeploymentUnitsUnits

Abstraction/Abstraction/RefinementRefinement

ConstraintsConstraints

packaged intopackaged into deployed ondeployed on

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

ReconciliationReconciliation

Abstraction/Abstraction/RefinementRefinement

Business Business CapabilitiesCapabilities

Business Business CapabilitiesCapabilities

Manual Manual ProceduresProcedures

Manual Manual ProceduresProcedures

TechnologyTechnologyArchitectureArchitecture

TechnologyTechnologyArchitectureArchitecture

ConstraintsConstraints

ReconciliationReconciliation

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers & servers & segmentssegments

DeploymentDeploymentUnitsUnits

DeploymentDeploymentUnitsUnits

Abstraction/Abstraction/RefinementRefinement

ConstraintsConstraints

packaged intopackaged into deployed ondeployed on

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

ReconciliationReconciliation

Abstraction/Abstraction/RefinementRefinement

Page 43: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

AgendaAgenda

Complexity in connected systemsComplexity in connected systems

Using modeling to reduce complexityUsing modeling to reduce complexity

Scenario 1 - web services and design Scenario 1 - web services and design for operationsfor operations

Scenario 2 – visualizing codeScenario 2 – visualizing code

Scenario 3 – implementing business Scenario 3 – implementing business processesprocesses

Microsoft Strategy and Tools for Microsoft Strategy and Tools for Visual Studio WhidbeyVisual Studio Whidbey

Page 44: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

UML And DSLsUML And DSLs

Tools render metamodel as Tools render metamodel as defined by OMGdefined by OMG

Multiple, inter-twined Multiple, inter-twined sub-languages, defined sub-languages, defined by committeeby committee

Extended partially using Extended partially using stereotypes and tagsstereotypes and tags

Syntax and Semantics Syntax and Semantics defined by OMG committeedefined by OMG committee

Limited range of Limited range of diagram stylesdiagram styles

Based on MOF –Based on MOF –implementations in Javaimplementations in Java

Engine can render any Engine can render any metamodel including UMLmetamodel including UML

Each DSL is defined using Each DSL is defined using core model and focused on core model and focused on specific development taskspecific development task

Directly extended with new Directly extended with new types and associationstypes and associations

Syntax and Semantics defined Syntax and Semantics defined by language usersby language users

No limits, though often based No limits, though often based on templateon template

Small core model – Small core model – implementation in CLR implementation in CLR

UML DSL Approach

Page 45: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Visual Studio 2005 Team ArchitectVisual Studio 2005 Team Architect

DSLs for precise developmentDSLs for precise developmentSimplify design and deployment for SOASimplify design and deployment for SOA

Designing and constructing connected Designing and constructing connected applications from Web servicesapplications from Web services

Verify application settings against Verify application settings against logical datacenterlogical datacenter

Code VisualizationCode Visualization

UML tools for documentation UML tools for documentation and drawingand drawing

Page 46: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Need A Designer FrameworkNeed A Designer Framework

For a specific domain it must …For a specific domain it must …Define a metamodel for the abstractionsDefine a metamodel for the abstractions

Define a graphical notationDefine a graphical notation

Define how a synchronization engine Define how a synchronization engine should work with related artifactsshould work with related artifacts

Define constraints between artifactsDefine constraints between artifacts

Be extensibleBe extensible

Page 47: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Making Use Of MetadataMaking Use Of Metadata

Metadata collected in DSLs can be Metadata collected in DSLs can be made available across the life cyclemade available across the life cycle

Source control systemsSource control systems

DebuggersDebuggers

Testing ToolsTesting Tools

Compilers and language editorsCompilers and language editors

Page 48: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Team Architect Key MessagesTeam Architect Key Messages

Reduces complexityReduces complexityVisual design for SOAsVisual design for SOAs

Facilitates communicationFacilitates communicationDesign for operationsDesign for operations

Bridges the communication gap Bridges the communication gap between application development between application development and IT operationsand IT operations

Enables a vibrant partner ecosystemEnables a vibrant partner ecosystemExtensions to the modeling surfaceExtensions to the modeling surface

Page 49: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Further InformationFurther Information

Whitepapers on MSDN, Visual Studio EnterpriseWhitepapers on MSDN, Visual Studio Enterprisehttp://msdn.microsoft.com/vstudio/enterprise http://msdn.microsoft.com/vstudio/enterprise

BlogBloghttp://blogs.msdn.com/keith_shorthttp://blogs.msdn.com/keith_short

Article by Steve Cook from Enterprise Tools Article by Steve Cook from Enterprise Tools Architect TeamArchitect Team

http://www.bptrends.com/publicationfiles/01-04%20COLhttp://www.bptrends.com/publicationfiles/01-04%20COL%20Dom%20Spec%20Modeling%20Frankel-Cook.pdf%20Dom%20Spec%20Modeling%20Frankel-Cook.pdf

Patterns and Practices on MSDNPatterns and Practices on MSDNhttp://msdn.microsoft.com/practices/type/patterns/http://msdn.microsoft.com/practices/type/patterns/

Page 50: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Team System SessionsTeam System SessionsDayDay TimeTime SessionSession TopicTopic

TuesdayTuesday 10:3010:30 DEV200DEV200 General Session: Team SystemGeneral Session: Team System

TuesdayTuesday 12:1512:15 DEVPNL2DEVPNL2 Visual Studio Team System PartnersVisual Studio Team System Partners

TuesdayTuesday 1:301:30 DEV 300DEV 300 Project ManagementProject Management

TuesdayTuesday 1:301:30 ARC 304ARC 304 Bridging the Gap Between IT and Bridging the Gap Between IT and DevDev

TuesdayTuesday 3:153:15 ARC 400ARC 400 Developing SOAsDeveloping SOAs

WednesdayWednesday 8:308:30 DEV 301DEV 301 Software TestingSoftware Testing

ThursdayThursday 1:301:30 DEV 302DEV 302 Advanced DevelopmentAdvanced Development

ThursdayThursday 3:153:15 DEV 303DEV 303 Enterprise-Class Source ControlEnterprise-Class Source Control

FridayFriday 9:009:00 ARC 312ARC 312 Designing for DeploymentDesigning for Deployment

FridayFriday 12:1512:15 DEVPNL5DEVPNL5 Implementing Software ProcessesImplementing Software Processeshttp://msdn.microsoft.com/vstudio/enterprisehttp://msdn.microsoft.com/vstudio/enterprise

Page 51: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

Assess your skillsAssess your skillsTake an eLearning course Take an eLearning course Subscribe to Microsoft TechNet Subscribe to Microsoft TechNet Get the latest information on IT Pro and Developer Books to purchase Get the latest information on IT Pro and Developer Books to purchase online or at your local bookstoreonline or at your local bookstoreFind the course right for you and a Microsoft Certified Partner for Find the course right for you and a Microsoft Certified Partner for Learning Solutions in your areaLearning Solutions in your areaLearn about the Microsoft certifications that can enable and advance Learn about the Microsoft certifications that can enable and advance your careeryour career

www.microsoft.com/learningLearn more; Go FurtherLearn more; Go Further

Knowledge Needed; Knowledge AppliedKnowledge Needed; Knowledge Applied

Page 52: ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation

© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.