täällä

61
Microsoft FEDERAL ARCHITECT FORUM March 16 th -17 th , 2004

Upload: alistercrowe

Post on 28-Jun-2015

191 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Täällä

Microsoft FEDERAL ARCHITECT FORUM

March 16th-17th, 2004

Page 2: Täällä

Tools for Developing Tools for Developing Service Oriented Service Oriented SolutionsSolutions

Jack Greenfield, ArchitectJack Greenfield, ArchitectVisual Studio, Enterprise ToolsVisual Studio, Enterprise ToolsMicrosoft CorporationMicrosoft Corporation

Page 3: Täällä

SummarySummarySummarySummary

Building Service Oriented Building Service Oriented Applications is a complex Applications is a complex undertakingundertakingWe can improve the underlying We can improve the underlying frameworks and protocols to frameworks and protocols to helphelpBut languages, patterns and But languages, patterns and tools have an important role to tools have an important role to playplayWe can build effective modeling We can build effective modeling tools if we follow some simple tools if we follow some simple rulesrules

Building Service Oriented Building Service Oriented Applications is a complex Applications is a complex undertakingundertakingWe can improve the underlying We can improve the underlying frameworks and protocols to frameworks and protocols to helphelpBut languages, patterns and But languages, patterns and tools have an important role to tools have an important role to playplayWe can build effective modeling We can build effective modeling tools if we follow some simple tools if we follow some simple rulesrules

Page 4: Täällä

AgendaAgendaAgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 5: Täällä

AgendaAgendaAgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 6: Täällä

Automate business processesAutomate business processesSupply chain integrationSupply chain integrationInternal value chain integrationInternal value chain integrationCustomer and supplier self service Customer and supplier self service Lower operating costsLower operating costsCut time to marketCut time to market

New Business New Business RequirementsRequirementsNew Business New Business RequirementsRequirements

Page 7: Täällä

New Application New Application ArchitectureArchitectureNew Application New Application ArchitectureArchitectureAutomate business processesAutomate business processes

Supply chain integrationSupply chain integrationInternal value chain integrationInternal value chain integrationCustomer and supplier self service Customer and supplier self service Lower operating costsLower operating costsCut time to marketCut time to marketService oriented architectureService oriented architecture

Web services, messaging, contractsWeb services, messaging, contractsSecuritySecurityTransactions and state managementTransactions and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Page 8: Täällä

Service oriented architectureService oriented architectureWeb services, messaging, contractsWeb services, messaging, contractsSecuritySecurityTransactions and state managementTransactions and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Evolving Platform Evolving Platform TechnologyTechnologyEvolving Platform Evolving Platform TechnologyTechnologyAutomate business processesAutomate business processes

Supply chain integrationSupply chain integrationInternal value chain integrationInternal value chain integrationCustomer and supplier self service Customer and supplier self service Lower operating costsLower operating costsCut time to marketCut time to market

Service oriented architectureService oriented architectureMessaging and protocolsMessaging and protocolsSecuritySecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Schemas and URLsSchemas and URLsAssemblies and resourcesAssemblies and resourcesProject structureProject structureInstallation and registrationInstallation and registrationServer configurationServer configurationDatabase administrationDatabase administration

Page 9: Täällä

ComplexityComplexityComplexityComplexityAutomate business processesAutomate business processesSupply chain integrationSupply chain integrationInternal value chain integrationInternal value chain integrationCustomer and supplier self service Customer and supplier self service Lower operating costsLower operating costsCut time to marketCut time to market

Service oriented architectureService oriented architectureWeb services, messaging, contractsWeb services, messaging, contractsSecuritySecurityTransactions and state managementTransactions and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Schemas and URLsSchemas and URLsAssemblies and resourcesAssemblies and resourcesProject structureProject structureInstallation and registrationInstallation and registrationServer configurationServer configurationDatabase administrationDatabase administration

??

Page 10: Täällä

Where Does Complexity Where Does Complexity Arise?Arise?Where Does Complexity Where Does Complexity Arise?Arise?

??

package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager;import java.rmi.RemoteException;import java.util.Vector;

package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager;import java.rmi.RemoteException;import java.util.Vector;

High Level ConceptsHigh Level Concepts

«entity»Auction

+ categoryUid : String+ creditCardAccount : String+ creditCardExpiration : Long+ creditCardName : String+ creditCardType : String+ endTime : Long+ itemUid : String+ minimumBidIncrement : Float+ sellerUid : String+ startingPrice : Float+ startTime : Long+ status : String+ timezoneUid : String+ uid : String

+ setValues ( )+ getValues ( )

«entity»Bid

+ amount : Float+ auctionUid : String+ buyerUid : String+ cancelExplanation : String+ date : Long+ status : String+ uid : String

«entity»Seller

«entity»User

+ address : String+ city : String+ country : String+ email : String+ groupId : String+ password : String+ secretNumber : Integer+ state : String+ status : String+ uid : String+ userId : String+ zip : String

«entity»Buyer

«entity»Credit Card

+ accountNumber : String+ cardType : String+ expirationDate : Long+ nameOnCard : String+ uid : String+ userUid : String+ setValues ( )+ getValues ( )

1 1...

0..11

1..*

«derived»

0..1

1

Low-level Implementation languages

Low-level Implementation languages

Page 11: Täällä

AgendaAgendaAgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 12: Täällä

Abstraction Reduces Abstraction Reduces ComplexityComplexityAbstraction Reduces Abstraction Reduces ComplexityComplexity

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 13: Täällä

Frameworks Reduce Frameworks Reduce Translation ComplexityTranslation ComplexityFrameworks Reduce Frameworks Reduce Translation ComplexityTranslation 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

FrameworksFrameworksE.g. ASP.NetE.g. ASP.Net

Domain Specific Domain Specific FrameworksFrameworksDomain Specific Domain Specific FrameworksFrameworks

Page 14: Täällä

AgendaAgendaAgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 15: Täällä

Domain Specific LanguageDomain Specific LanguageDomain Specific LanguageDomain Specific LanguageA language specific to a domainA language specific to a domain

horizontal – e.g.: * GUI * web * business logic * database * deployment

vertical – e.g.: * telephone bills * insurance * plane tickets * hardware construction

PictorialflowchartsUML

TextualC#, JavaOCL

Page 16: Täällä

Domain Specific LanguageDomain Specific LanguageDomain Specific LanguageDomain Specific Language

Domain Specific AbstractionsDomain Specific AbstractionsNarrow ScopeNarrow ScopeGraphicalGraphicalHighly ExpressiveHighly ExpressiveCoarse-grained abstractionsCoarse-grained abstractionsMay be translated into May be translated into

General purpose programming General purpose programming languageslanguagesSpecific framework completionSpecific framework completionOther modeling languagesOther modeling languages

Domain Specific AbstractionsDomain Specific AbstractionsNarrow ScopeNarrow ScopeGraphicalGraphicalHighly ExpressiveHighly ExpressiveCoarse-grained abstractionsCoarse-grained abstractionsMay be translated into May be translated into

General purpose programming General purpose programming languageslanguagesSpecific framework completionSpecific framework completionOther modeling languagesOther modeling languages

Page 17: Täällä

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

Languages : Modelling and Languages : Modelling and ProgrammingProgrammingLanguages : Modelling and Languages : Modelling and ProgrammingProgramming

Textual Pictorial

Descriptive

Prescriptive

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 18: Täällä

Telephone billing schemeTelephone billing schemeTelephone billing schemeTelephone billing scheme

call

calendarmonth

CallRecord

call length

base rate: £/s

call length

friend discount rate: £/sstore

friends calls

other calls

-

bill

billing period

store

+-

Page 19: Täällä

DSLs make problems “Small DSLs make problems “Small Scale”Scale”DSLs make problems “Small DSLs make problems “Small Scale”Scale”

Small scale =Small scale =Not much design atop existing platformNot much design atop existing platform

small team small team

coherent, consistent architecture; low costscoherent, consistent architecture; low costs

early prototypesearly prototypes early feedback to requirements; early proof of early feedback to requirements; early proof of conceptconcept

easy maintenanceeasy maintenance

changes inexpensivechanges inexpensive

Small scale =Small scale =Not much design atop existing platformNot much design atop existing platform

small team small team

coherent, consistent architecture; low costscoherent, consistent architecture; low costs

early prototypesearly prototypes early feedback to requirements; early proof of early feedback to requirements; early proof of conceptconcept

easy maintenanceeasy maintenance

changes inexpensivechanges inexpensive

Page 20: Täällä

Finding prime numbers is Finding prime numbers is Small ScaleSmall Scale … …Finding prime numbers is Finding prime numbers is Small ScaleSmall Scale … …

If we have a computer that can:If we have a computer that can:do multiplication and divisiondo multiplication and divisiondo things repeatedlydo things repeatedly

If we have a computer that can:If we have a computer that can:do multiplication and divisiondo multiplication and divisiondo things repeatedlydo things repeatedly

_*__*__/__/_

_%__%_while (…) {…}while (…) {…}

C, Pascal, Fortran,…

Von Neumann computer with conventional CPU

language:

platform:

Page 21: Täällä

Finding parts lists is Finding parts lists is Small Small ScaleScale … …Finding parts lists is Finding parts lists is Small Small ScaleScale … …

If we have a computer that can:If we have a computer that can:keep large lists of parts & scan them quicklykeep large lists of parts & scan them quicklycombine and filter the lists efficientlycombine and filter the lists efficiently

If we have a computer that can:If we have a computer that can:keep large lists of parts & scan them quicklykeep large lists of parts & scan them quicklycombine and filter the lists efficientlycombine and filter the lists efficiently

CREATE …CREATE …JOIN …… WHERE …

JOIN …… WHERE … SELECT …SELECT …

Relational DatabaseSQL

platform: language:

Page 22: Täällä

Developing a GUI is Developing a GUI is Small Small ScaleScale … …Developing a GUI is Developing a GUI is Small Small ScaleScale … …

If we have a computer that can:If we have a computer that can:display combinations of windows and widgetsdisplay combinations of windows and widgetsshow things and interact with user in themshow things and interact with user in them

If we have a computer that can:If we have a computer that can:display combinations of windows and widgetsdisplay combinations of windows and widgetsshow things and interact with user in themshow things and interact with user in them

Visual programminglanguages

Interactive appplatform

platform:language:

Page 23: Täällä

if we have a if we have a languagelanguage of phone billing of phone billing

and a and a frameworkframework to run it on to run it on

if we have a if we have a languagelanguage of phone billing of phone billing

and a and a frameworkframework to run it on to run it on

Phone bill systems are Phone bill systems are Small Small ScaleScale … …Phone bill systems are Phone bill systems are Small Small ScaleScale … …

call

calendarmonth

CallRecord

call length

base rate: £/s

call length

friend discount rate: £/sstore

friends calls

other calls

-

bill

billing period

store

Telephone Billing Scheme

?

Page 24: Täällä

• 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?Where are DSLs in use today?Where are DSLs in use today?

Page 25: Täällä

Understanding Web Understanding Web ServicesServicesUnderstanding Web Understanding Web ServicesServices

Activities <-> ServicesActivities <-> Services

Web servicesWeb services

MessagesMessages

ContractsContracts

SequencesSequences

SecuritySecurity

ReuseReuse

Wire-level protocolsWire-level protocols

etcetc

Activities <-> ServicesActivities <-> Services

Web servicesWeb services

MessagesMessages

ContractsContracts

SequencesSequences

SecuritySecurity

ReuseReuse

Wire-level protocolsWire-level protocols

etcetc

Page 26: Täällä

Where Does Complexity Where Does Complexity Arise?Arise?Where Does Complexity Where Does Complexity Arise?Arise?

??

package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager;import java.rmi.RemoteException;import java.util.Vector;

package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager;import java.rmi.RemoteException;import java.util.Vector;

High Level ConceptsActivitiesMessagesSecurityReuseServicesContracts

High Level ConceptsActivitiesMessagesSecurityReuseServicesContracts

«entity»Auction

+ categoryUid : String+ creditCardAccount : String+ creditCardExpiration : Long+ creditCardName : String+ creditCardType : String+ endTime : Long+ itemUid : String+ minimumBidIncrement : Float+ sellerUid : String+ startingPrice : Float+ startTime : Long+ status : String+ timezoneUid : String+ uid : String

+ setValues ( )+ getValues ( )

«entity»Bid

+ amount : Float+ auctionUid : String+ buyerUid : String+ cancelExplanation : String+ date : Long+ status : String+ uid : String

«entity»Seller

«entity»User

+ address : String+ city : String+ country : String+ email : String+ groupId : String+ password : String+ secretNumber : Integer+ state : String+ status : String+ uid : String+ userId : String+ zip : String

«entity»Buyer

«entity»Credit Card

+ accountNumber : String+ cardType : String+ expirationDate : Long+ nameOnCard : String+ uid : String+ userUid : String+ setValues ( )+ getValues ( )

1 1...

0..11

1..*

«derived»

0..1

1

Low-level Implementation languagesLow-level Implementation languages

Page 27: Täällä

.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

??

«entity»Auction

+ categoryUid : String+ creditCardAccount : String+ creditCardExpiration : Long+ creditCardName : String+ creditCardType : String+ endTime : Long+ itemUid : String+ minimumBidIncrement : Float+ sellerUid : String+ startingPrice : Float+ startTime : Long+ status : String+ timezoneUid : String+ uid : String

+ setValues ( )+ getValues ( )

«entity»Bid

+ amount : Float+ auctionUid : String+ buyerUid : String+ cancelExplanation : String+ date : Long+ status : String+ uid : String

«entity»Seller

«entity»User

+ address : String+ city : String+ country : String+ email : String+ groupId : String+ password : String+ secretNumber : Integer+ state : String+ status : String+ uid : String+ userId : String+ zip : String

«entity»Buyer

«entity»Credit Card

+ accountNumber : String+ cardType : String+ expirationDate : Long+ nameOnCard : String+ uid : String+ userUid : String+ setValues ( )+ getValues ( )

1 1...

0..11

1..*

«derived»

0..1

1

Scattered Concepts …Scattered Concepts …Scattered Concepts …Scattered Concepts …

Page 28: Täällä

.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

……Replaced By A Holistic Replaced By A Holistic ViewView……Replaced By A Holistic Replaced By A Holistic ViewView

Web Service Interaction DSL

Page 29: Täällä

Need A Designer Need A Designer InfrastructureInfrastructureNeed A Designer Need A Designer InfrastructureInfrastructure

For a specific aspect of overall For a specific aspect of overall developmentdevelopment

Define a metamodel for the Define a metamodel for the abstractionsabstractionsDefine a graphical notationDefine a graphical notationDefine a synchronization engine Define a synchronization engine

For a specific aspect of overall For a specific aspect of overall developmentdevelopment

Define a metamodel for the Define a metamodel for the abstractionsabstractionsDefine a graphical notationDefine a graphical notationDefine a synchronization engine Define a synchronization engine

Page 30: Täällä

Automate business processesAutomate business processesSupply chain integrationSupply chain integrationInternal value chain integrationInternal value chain integrationCustomer and supplier self service Customer and supplier self service Lower operating costsLower operating costsCut time to marketCut time to market

Service oriented architectureService oriented architectureWeb services, messaging, contractsWeb services, messaging, contractsSecuritySecurityTransactions and state managementTransactions and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Schemas and URLsSchemas and URLsAssemblies and resourcesAssemblies and resourcesProject structureProject structureInstallation and registrationInstallation and registrationServer configurationServer configurationDatabase administrationDatabase administration

ComplexityComplexityComplexityComplexity

????

Page 31: Täällä

Simplify Using DSLsSimplify Using DSLsSimplify Using DSLsSimplify Using DSLs

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual ProceduresManual ProceduresManual Procedures

Each work Each work product can product can use a use a custom custom languagelanguage

Mappings are Mappings are defined defined between between languageslanguages

Page 32: Täällä

What’s Inside A What’s Inside A Viewpoint?Viewpoint?What’s Inside A What’s Inside A Viewpoint?Viewpoint?

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual ProceduresManual ProceduresManual Procedures

DSLsDSLsPatternsPatternsProcessesProcessesFrameworksFrameworksComponentsComponentsAspectsAspectsTransformsTransformsConstraintsConstraints

Page 33: Täällä

What’s Inside A What’s Inside A Viewpoint?Viewpoint?What’s Inside A What’s Inside A Viewpoint?Viewpoint?

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual ProceduresManual ProceduresManual Procedures

Page 34: Täällä

AgendaAgendaAgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 35: Täällä

Example 1Example 1Example 1Example 1

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

Page 36: Täällä

Dynamic Systems Initiative Dynamic Systems Initiative (DSI)(DSI)Dynamic Systems Initiative Dynamic Systems Initiative (DSI)(DSI)

Network Topology& Operating Systems

Hardware

SystemDefinition

ModelApplication

Hosts

Applications

Page 37: Täällä

Whidbey Solutions…Whidbey Solutions…Whidbey Solutions…Whidbey Solutions…

A logical data center designer

An application designer

ApplicationHosts

Applications

A system hosting designer

SystemDefinition

Model

Page 38: Täällä

A DSL In Use TodayA DSL In Use TodayA DSL In Use TodayA DSL In Use Today

Page 39: Täällä
Page 40: Täällä
Page 41: Täällä
Page 42: Täällä
Page 43: Täällä

Web Service Interaction Web Service Interaction Web Service Interaction Web Service Interaction PatternsPatterns

Service InterfaceService InterfaceGatewayGatewayFaçadeFaçadeLayered ArchitectureLayered Architecture

AspectsAspectsTransactionsTransactionsSecuritySecurity

TransformationsTransformationsValidate against deployment infrastructureValidate against deployment infrastructureTransform into implementation artifactsTransform into implementation artifacts

PatternsPatternsService InterfaceService InterfaceGatewayGatewayFaçadeFaçadeLayered ArchitectureLayered Architecture

AspectsAspectsTransactionsTransactionsSecuritySecurity

TransformationsTransformationsValidate against deployment infrastructureValidate against deployment infrastructureTransform into implementation artifactsTransform into implementation artifacts

Page 44: Täällä

Logical System ArchitectureLogical System ArchitectureLogical System ArchitectureLogical System ArchitectureLogical System Architecture PatternsLogical System Architecture Patterns

““Hardened IIS” – metabase settingsHardened IIS” – metabase settingsMSA PatternsMSA Patterns

IDC, EDCIDC, EDC

Tiered Architecture PatternsTiered Architecture Patterns

AspectsAspectsFirewall SettingsFirewall SettingsProtocol SettingsProtocol Settings

TransformationsTransformationsValidate against Web service application designValidate against Web service application designTransform into implementation SDMTransform into implementation SDM

Logical System Architecture PatternsLogical System Architecture Patterns““Hardened IIS” – metabase settingsHardened IIS” – metabase settingsMSA PatternsMSA Patterns

IDC, EDCIDC, EDC

Tiered Architecture PatternsTiered Architecture Patterns

AspectsAspectsFirewall SettingsFirewall SettingsProtocol SettingsProtocol Settings

TransformationsTransformationsValidate against Web service application designValidate against Web service application designTransform into implementation SDMTransform into implementation SDM

Page 45: Täällä

Applying A Service Façade Applying A Service Façade PatternPatternApplying A Service Façade Applying A Service Façade PatternPattern

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 46: Täällä
Page 47: Täällä

Aspect Weaving – Aspect Weaving – Instrumentation Instrumentation Aspect Weaving – Aspect Weaving – Instrumentation Instrumentation

Policy Policy ManagementManagement

Customer Customer ManagementManagement

Customer Customer Self-ServiceSelf-Service

Instrumentation AspectInstrumentation Aspect

Framework

Call Structure

Pointcut

Pointcut

Pointcut

Pointcut

Pointcut

Pointcut

Code

Aspect

Aspect

Aspect

Page 48: Täällä

AgendaAgendaAgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Modeling Languages Domain Specific Modeling Languages and Patternsand PatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Modeling Languages Domain Specific Modeling Languages and Patternsand PatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 49: Täällä

Scenario 2 Scenario 2 Scenario 2 Scenario 2

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

Page 50: Täällä

Invoice To PaymentInvoice To PaymentInvoice To PaymentInvoice To PaymentSeller OrgBuyer Org

Buyer’sFinancial ServicesProvider

Accounts PayableSupplier

B3.1 Receive, Process, &File Invoice

B3.2 Process 3-Way Match(PO, Receipt, Invoice)

Invoice (Original)/Debit Memo

Invoice

PO info

Procurement

Purchasing

Logistics and Distribution

WarehouseManagement

Receiving

B3.8 Remit Payment atSettlement Period

AP Clerk POV

B3.3 2-Way Match(Receipt, Invoice)

B3.15 Update VendorMaster (including set-up

customers as vendors forrefunds)

Vendor MasterData Store

Vendorinitiatedbillingprofile

changesB3.13 Receive Vendor

Profile Changes

B3.5 Reject/Dispute Invoice

Invoices (MatchException or

Out ofTolerance)

Out of ToleranceNotification

Remittance Advice & Payment (hardcopy)

B3.4 Invoice Approval

Invoice (&Image)

Data Store

Employee DataStoreApprover(s)

Project Accounting

Project Management

Business Intelligence

Business Intelligence

Manage Tax Compliance

Advisory

Human Resources

Time & ExpenseManagement

B3.7 Pending Invoices

Invoices(blocked -pendingreceipt)

Invoice (Non POtype (e.g. card,

direct order, etc))

Bank

B3.14 AuthorizeVendor Profile Changes

Invoices(cleared)

Invoices (w/inTolerance Match)

B3.6 Contact Supplier &Discuss Dispute/Rejection

Invoices(disputed, rejected)

B3.9 Respond to PaymentInquiry Remittance

Deposit

Vendorprofiledata

Acceptedprofile

changes

EmployeedataEmployee

data

Remittance Advice & Payment Release (electronic)

Vendor updateacknowledgement(approved, denied)

AgreementData Store

Agreement/Contract(negotiated terms, etc)

Vendorchanges

Approvals,rejections

Approval notifications

Requester orBuyer

(whoever owns txn)

Invoice (service based)

PO Change(out of tolerance

accepted)

Notification(rejected)

Invoices (MatchException or

Out ofTolerance)

Invoices (approved)

ReceiptNotice

Receipt Info

Invoice (w/inTolerance Match)

ReceiptedInvoices

ReceiptedInvoices

B3.10 Receive and reviewSummary Statement (card

based programs only)

Monthly Summary Invoice (card based programs only)Payment (to bank)

B3.11 Match SummaryStatement to card receipts/

invoicesstatement

Chargeback (Summary Invoice errors)

B3.12 Authorize/RejectPayment (by line item)

Card based receipts/invoices

statement

Employee

Billing Inquiry and ResponseNegotiation

Payment Inquiry/Invoice Status Response

Invoice Status Response

Financial Management

Electronic FundsProcessing

General Ledger

Capital AssetManagement

Treasury

Invoice,Payment JEs

Capital Goods Line Item Details

Cash DisbursementNeeds

Invoice Details

Remittance Advice & Payment (electronic)

Project Related Invoice Line Items

Tax Liability

Supplier Performance Data,Requester/Buyer

Performance Data,Financial Performance

Data,

Expense ReportExpense Reimbursement

Request

Payment (expense reimbursement)

Notification(accepted,rejected)

Refundchequeor EFT

Accounts Receivable

Refund payment

Credit memo

B3.16 Perform Prepayments

Prepayment

Credit Memo

Initial Prepayment

Dunning Letter

Example KPI’s:% Match (2-way)% Match (3-way)Invoice aging

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

Manage Tax Compliance

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

Buyer Org Perspective: Requisition to PaymentB3. Invoice to Payment (AP)

Acronyms: AP: Accounts Payable, JEs: Journal EntriesPO: Purchase Order, KPI: Key Performance Indicator

Preconditions: A purchase order has been created and sent to the Seller Organization.

A supplier invoice usually triggers the Invoice to Payment process. In process step B3.1, a supplier submits an invoice to the buyer organization, usually after they’ve picked, packed, and shipped product to the buyer (although pre-payments sometimes occur). The invoice is reviewed for accuracy and entered into a payables system for matching purposes. This can also trigger the flow of information to Capital Asset management tracking for depreciationpurposes, Project Accounting for project financials tracking, Tax for compliance reporting, and the General Ledger to account for liability owed. In process step B3.2, the buying organization’s Accounts Payable group/person then canperform a 3-way match between the original PO, the materials Receipt, and the Invoice. Process step B3.3 illustrates how some alternative purchasing models can be accommodated, such as direct orders, employee expense reportsubmission (which requires payment to the employee) or procurement card (like a credit card) based purchases, where a the requisition and PO is entirely bypassed. Process B3.4 allows for these alternative 3-way matching scenarios, as the invoice is approved and verified before payment is made to the vendor. In the event of match exception or out of tolerance scenarios (where amount invoiced is considerably different than expected), Accounts Payable notifiesthe requester of over tolerance (which could trigger a PO change) or rejects (disputes) the invoice (B3.5). In process step B3.6, Accounts Payable (or the Buyer) contacts the Supplier to resolve the rejected invoice. If matching andtolerance proceeds as planned, in process step B3.7 the invoice could be held in a pending state until a settlement period has been reached, optimizing working capital. Payment is then remitted to the supplier either electronically (viaa banking institution) or manually via a cheque-run (step B3.8). The invoice to payment process asserts a tight audit trail, which enables AP to know everything about the invoice and payment, supporting the ability to investigate andrespond to supplier payment issues (process B3.9). As mentioned above with the non-PO purchasing models, process steps B3.10 - B3.12 provide further details around procurement card purchasing verification and paymentprocessing since it evokes a different payment model - to the bank as opposed to the supplier (since payment has already been made). Finally, in steps B3.13 - B3.15 related vendor data maintenance processes are performed, whichplay an important role in ensuring correct and proper payment to suppliers, as well as avoiding late charges resulting from incorrect payments (locations, addresses, bank acct #s, etc).

Core Function/Module

LogicalData Store

Process

Inter-face

RelatedFunction/Module

Productoverlay

Data Flow

CollaborativeB2B Data Flow

B2B Data Flow

Key

start

Page 51: Täällä

How Do We Describe BPs?How Do We Describe BPs?How Do We Describe BPs?How Do We Describe BPs?

Business Process DSLBusiness Process DSLActivitiesActivitiesBusiness EventBusiness EventDependenciesDependenciesBusiness EntitiesBusiness EntitiesDocumentsDocumentsEtc.Etc.

Business Process DSLBusiness Process DSLActivitiesActivitiesBusiness EventBusiness EventDependenciesDependenciesBusiness EntitiesBusiness EntitiesDocumentsDocumentsEtc.Etc.

Page 52: Täällä

Patterns And Transforms Patterns And Transforms Patterns And Transforms Patterns And Transforms

Process PatternsProcess PatternsUser ProcessUser ProcessScheduled ProcessScheduled ProcessCase ProcessCase ProcessRules ProcessRules Process

TransformationsTransformationsTransform into Web service Transform into Web service collaborationscollaborations

Process PatternsProcess PatternsUser ProcessUser ProcessScheduled ProcessScheduled ProcessCase ProcessCase ProcessRules ProcessRules Process

TransformationsTransformationsTransform into Web service Transform into Web service collaborationscollaborations

Page 53: Täällä

Build One Business Process Build One Business Process DSL?DSL?Build One Business Process Build One Business Process DSL?DSL?

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual ProceduresManual ProceduresManual Procedures

Huge Variation

Huge Variation

Few PlatformsFew Platforms

Page 54: Täällä

Building Applications With Building Applications With DSLsDSLsBuilding Applications With Building Applications With DSLsDSLs

Choose a specific aspect of overall Choose a specific aspect of overall developmentdevelopmentDefine a metamodel for the Define a metamodel for the abstractionsabstractions

OR OR extend an existing oneextend an existing one

Define a graphical notation Define a graphical notation Define a synchronization engine Define a synchronization engine Define PatternsDefine PatternsDefine AspectsDefine Aspects

Choose a specific aspect of overall Choose a specific aspect of overall developmentdevelopmentDefine a metamodel for the Define a metamodel for the abstractionsabstractions

OR OR extend an existing oneextend an existing one

Define a graphical notation Define a graphical notation Define a synchronization engine Define a synchronization engine Define PatternsDefine PatternsDefine AspectsDefine Aspects

Page 55: Täällä

AgendaAgendaAgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce Using Abstraction to Reduce ComplexityComplexityDomain Specific Languages and Domain Specific Languages and PatternsPatternsScenario 1 - Web Services & Design Scenario 1 - Web Services & Design for Operationsfor OperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Microsoft Strategy and Tools for Visual Studio WhidbeyStudio Whidbey

Page 56: Täällä

Making Use Of MetadataMaking Use Of MetadataMaking Use Of MetadataMaking Use Of Metadata

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

Source control systemsSource control systemsDebuggersDebuggersTesting ToolsTesting ToolsCompilers and language editorsCompilers and language editors

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

Source control systemsSource control systemsDebuggersDebuggersTesting ToolsTesting ToolsCompilers and language editorsCompilers and language editors

Page 57: Täällä

Enterprise Design ToolsEnterprise Design ToolsEnterprise Design ToolsEnterprise Design Tools

Build an initial set of model-driven development tools supporting DSLsBuild an initial set of model-driven development tools supporting DSLsFocused on specific development tasksFocused on specific development tasksWith hi-fidelity, continuously synchronized mappings to code or other modelsWith hi-fidelity, continuously synchronized mappings to code or other models

Expand and integrate model data throughout life cycle toolsExpand and integrate model data throughout life cycle toolsProductize and promote underlying tool-building frameworks and toolsProductize and promote underlying tool-building frameworks and tools

Build an initial set of model-driven development tools supporting DSLsBuild an initial set of model-driven development tools supporting DSLsFocused on specific development tasksFocused on specific development tasksWith hi-fidelity, continuously synchronized mappings to code or other modelsWith hi-fidelity, continuously synchronized mappings to code or other models

Expand and integrate model data throughout life cycle toolsExpand and integrate model data throughout life cycle toolsProductize and promote underlying tool-building frameworks and toolsProductize and promote underlying tool-building frameworks and tools

Goal: Simplify design and deployment of SOA’s

Page 58: Täällä

DSL’s Supported in DSL’s Supported in WhidbeyWhidbeyDSL’s Supported in DSL’s Supported in WhidbeyWhidbeyRich support for designing and constructing Rich support for designing and constructing

connected applications from Web servicesconnected applications from Web servicesDesigning WS for operational deploymentDesigning WS for operational deployment

Logical infrastructure requirements considered early – Logical infrastructure requirements considered early – inform and constrain developersinform and constrain developersVerify application settings against logical infrastructureVerify application settings against logical infrastructure

Rich support for designing and constructing Rich support for designing and constructing connected applications from Web servicesconnected applications from Web servicesDesigning WS for operational deploymentDesigning WS for operational deployment

Logical infrastructure requirements considered early – Logical infrastructure requirements considered early – inform and constrain developersinform and constrain developersVerify application settings against logical infrastructureVerify application settings against logical infrastructure

Page 59: Täällä

ReviewReviewReviewReview

Domain specific languages can help Domain specific languages can help reduce complexityreduce complexity

Domain-specific abstractionsDomain-specific abstractionsHolistic view of scattered conceptsHolistic view of scattered concepts

Microsoft is working to improve Web Microsoft is working to improve Web service design and deployment service design and deployment scenariosscenariosImplementing DSLs can be made Implementing DSLs can be made effective with the right underlying effective with the right underlying engineengineTool Extensibility is very importantTool Extensibility is very important

Domain specific languages can help Domain specific languages can help reduce complexityreduce complexity

Domain-specific abstractionsDomain-specific abstractionsHolistic view of scattered conceptsHolistic view of scattered concepts

Microsoft is working to improve Web Microsoft is working to improve Web service design and deployment service design and deployment scenariosscenariosImplementing DSLs can be made Implementing DSLs can be made effective with the right underlying effective with the right underlying engineengineTool Extensibility is very importantTool Extensibility is very important

Page 60: Täällä

Further InformationFurther InformationFurther InformationFurther InformationWhitepapers on MSDN, Visual Studio Whitepapers on MSDN, Visual Studio EnterpriseEnterprise

http://msdn.microsoft.com/vstudio/enterprisehttp://msdn.microsoft.com/vstudio/enterprise

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 & Practices on MSDNPatterns & Practices on MSDNhttp://msdn.microsoft.com/practices/type/patterns/http://msdn.microsoft.com/practices/type/patterns/

Software Factories: Assembling Software Factories: Assembling Applications with Languages, Patterns, Applications with Languages, Patterns, Frameworks and ToolsFrameworks and Tools

http://www.amazon.comhttp://www.amazon.com

Whitepapers on MSDN, Visual Studio Whitepapers on MSDN, Visual Studio EnterpriseEnterprise

http://msdn.microsoft.com/vstudio/enterprisehttp://msdn.microsoft.com/vstudio/enterprise

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 & Practices on MSDNPatterns & Practices on MSDNhttp://msdn.microsoft.com/practices/type/patterns/http://msdn.microsoft.com/practices/type/patterns/

Software Factories: Assembling Software Factories: Assembling Applications with Languages, Patterns, Applications with Languages, Patterns, Frameworks and ToolsFrameworks and Tools

http://www.amazon.comhttp://www.amazon.com

Page 61: Täällä

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