45
EMEA

EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

Embed Size (px)

Citation preview

Page 1: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA

Page 2: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA

22

Aligning design, development and Aligning design, development and operational constraints in building operational constraints in building complex IT systems.complex IT systems.

Gianpaolo CarraroArchitect Developer and Platform GroupMicrosoft Europe, Middle East and Africa

Page 3: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA33

"What do you mean it doesn't run in production? It runs fine on my machine?!"

— Anonymous developer

Page 4: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA44

Aligning constraints issues (example)Aligning constraints issues (example)

Develop software componentsMeet functional requirements

Maintain servers and networkMeet operational requirements

Application Development Team

System Infrastructure Team

Tension

Deployment

They talk about:

Components

Services

Layers

They talk about:

Components

Services

Layers

They talk about:

Clusters, Farms

Firewalls

Load Balancing

They talk about:

Clusters, Farms

Firewalls

Load Balancing

Page 5: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA55

SummarySummary

Building Service Oriented Applications is complex

Complexity is added due to interaction of (often) independent teams.

Modeling languages and visual tools: have to potential to greatly reduce complexity highly facilitate the alignment of design,

development and operational constraints in building complex IT systems

Page 6: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA66

Building Service Oriented Applications is complex

Page 7: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA77

Automate 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

New Business RequirementsNew Business Requirements

Page 8: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA88

New Application ArchitectureNew Application ArchitectureAutomate business processesAutomate business processesImprove ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to marketValue chains with partnersValue chains with partnersCustomer and supplier self serviceCustomer and supplier self serviceService oriented architectureService oriented architecture

Web Services, messaging, contractsWeb Services, messaging, contractsSecuritySecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Page 9: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA99

Evolving Platform TechnologyEvolving Platform TechnologyAutomate business processesAutomate business processesImprove ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to marketValue chains with partnersValue chains with partnersCustomer and supplier self serviceCustomer and supplier self serviceService oriented architectureService oriented architectureMessaging and protocolsMessaging and protocolsSecuritySecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Application Servers and standardsApplication Servers and standardsSchemas and databasesSchemas and databasesCode and attributesCode and attributesConfiguration filesConfiguration filesProject structuresProject structuresPhysical server configurationsPhysical server configurations

Page 10: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1010

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 marketService oriented architectureService oriented architectureWeb Services, messaging, contractsWeb Services, messaging, contractsSecuritySecurityCaching 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

??

Page 11: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1111

Where Does Complexity Arise?Where Does Complexity 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 12: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1212

Abstraction Decreases ComplexityAbstraction Decreases 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 13: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1313

DomainDomain SpecificSpecific Modeling Language Modeling Language(a definition)(a definition)

Domain Specific AbstractionsNarrow ScopeGraphicalHighly ExpressiveCoarse-grained abstractionsMay be translated into

General purpose programming languages Specific framework completion Other modeling languages

Page 14: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1414

A “case study” building a “connected” system using with Web Services

Page 15: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1515

Where Does Complexity Arise?Where Does Complexity 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 Concepts

ActivitiesMessagesSecurityReuseComponentsProtocols

High Level Concepts

ActivitiesMessagesSecurityReuseComponentsProtocols

«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 16: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1616

.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 …

Page 17: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1717

.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 ViewReplaced By A Holistic View

Web Service Interaction DSL

Page 18: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1818

Need A Designer InfrastructureNeed A Designer Infrastructure

For a specific aspect of overall development Define a metamodel for the

abstractions Define a graphical notation Define a synchronization engine

Page 19: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA1919

Simplify 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 be a be a separate separate modeling modeling languagelanguage

Mappings are Mappings are defined defined between between modeling modeling languageslanguages

Page 20: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2020

What’s Inside A Viewpoint?What’s Inside A 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 21: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2121

What’s Inside A Viewpoint?What’s Inside A 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 22: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2222

Example 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 23: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2323

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

Network Topology& Operating Systems

Hardware

SystemDefinition

ModelApplication

Hosts

Applications

Page 24: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2424

Whidbey Solutions…Whidbey Solutions…

A logical data center designer

An application designer

ApplicationHosts

Applications

A system hosting designer

SystemDefinition

Model

Page 25: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2525

Introducing codename Whitehorse

Page 26: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2626

A DSL In Use TodayA DSL In Use Today Number 1 Design tool in the market!

Page 27: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2727

Page 28: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2828

Page 29: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA2929

Page 30: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3030

Page 31: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3131

Demo (movie)Demo (movie)

From PDC Session: TLS345(available at http://sitestream.microsoft.com/pdc2003)

Page 32: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3232

Patterns, Aspects And Transforms Patterns, Aspects And Transforms

Web Interaction Patterns Service Interface Gateway Façade

Logical System Architecture Patterns MSA Patterns

IDC, EDC Layered Architecture Patterns

Aspects Transactions Security

Transformations Validate against deployment infrastructure Transform into implementation artifacts

Page 33: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3333

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 34: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3434

PatternsPatterns

Physical architectureLogical architecture

Page 35: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3535

Deployment patternsDeployment patterns

Architecture

Design

Implementation

InfrastructureDeploymentApplicationData

Simple WebSimple Web

Complex WebComplex Web

Rich clientRich client

Extended enterpriseExtended enterprise

4-Tier4-Tier3-Tier3-Tier

TieredTiereddistributiondistribution

LayeredLayeredservicesservices

applicationapplication

Layered applicationLayered applicationLayered applicationLayered application

Three-Three-layeredlayered

applicationapplication

Page 36: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3636

Deployment PlanDeployment PlanSolution: Simple Web ApplicationSolution: Simple Web Application

BCClients DACUIPUIC Data Sources

Web Clients Web Application Farm Database Clusters

Page 37: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3737

Solution: Extended Enterprise ApplicationSolution: Extended Enterprise Application

BCClients DACUIPUIC Data Sources

Web Clients Web Farm Database ClustersApplication Farm

SASI

Deployment PlanDeployment Plan

Page 38: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3838

Solution: Smart Client ApplicationSolution: Smart Client ApplicationDeployment PlanDeployment Plan

BC DACUIPUIC Data Sources

Smart Clients Web Farm Database ClustersApplication Farm

SASI

Page 39: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA3939

Aspect Weaving – Instrumentation Aspect Weaving – 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 40: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA4040

Making Use Of MetadataMaking Use Of Metadata

Metadata collected in DSLs can be made available across the life cycle Source control systems Debuggers Testing Tools Compilers and language editors

Page 41: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA4141

Enterprise Design ToolsEnterprise Design Tools

Build an initial set of model-driven development tools supporting DSLs Focused on specific development tasks With hi-fidelity, continuously synchronized mappings to code or other models

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

Goal: Simplify design and deployment of SOA’s

Page 42: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA4242

DSL’s SupportedDSL’s Supported

Rich support for designing and constructing connected applications from Web services

Designing WS for operational deployment Logical infrastructure requirements considered

early – inform and constrain developers Verify application settings against logical

infrastructure

Page 43: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA4343

ReviewReview

Modeling languages can help reduce complexity Domain-specific abstractions Holistic view of scattered concepts

Modeling languages create “the link” among (i.e. align) constraints

Extensibility is very important Implementing DSLs can be made effective

with the right underlying engine Microsoft is working to improve Web service

design and deployment scenarios

Page 44: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA4444

Further InformationFurther Information

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

Page 45: EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group

EMEAEMEA

Please complete your sessionfeedback form

THANK YOU

Please complete your sessionfeedback form

THANK YOU