Upload
darcy-mcdonald
View
218
Download
0
Embed Size (px)
Citation preview
EMEAEMEA
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
EMEAEMEA33
"What do you mean it doesn't run in production? It runs fine on my machine?!"
— Anonymous developer
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
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
EMEAEMEA66
Building Service Oriented Applications is complex
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
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
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
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
??
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
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
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
EMEAEMEA1414
A “case study” building a “connected” system using with Web Services
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
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 …
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
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
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
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
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
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
EMEAEMEA2323
Dynamic Systems Initiative (DSI)Dynamic Systems Initiative (DSI)
Network Topology& Operating Systems
Hardware
SystemDefinition
ModelApplication
Hosts
Applications
EMEAEMEA2424
Whidbey Solutions…Whidbey Solutions…
A logical data center designer
An application designer
ApplicationHosts
Applications
A system hosting designer
SystemDefinition
Model
EMEAEMEA2525
Introducing codename Whitehorse
EMEAEMEA2626
A DSL In Use TodayA DSL In Use Today Number 1 Design tool in the market!
EMEAEMEA2727
EMEAEMEA2828
EMEAEMEA2929
EMEAEMEA3030
EMEAEMEA3131
Demo (movie)Demo (movie)
From PDC Session: TLS345(available at http://sitestream.microsoft.com/pdc2003)
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
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
EMEAEMEA3434
PatternsPatterns
Physical architectureLogical architecture
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
EMEAEMEA3636
Deployment PlanDeployment PlanSolution: Simple Web ApplicationSolution: Simple Web Application
BCClients DACUIPUIC Data Sources
Web Clients Web Application Farm Database Clusters
EMEAEMEA3737
Solution: Extended Enterprise ApplicationSolution: Extended Enterprise Application
BCClients DACUIPUIC Data Sources
Web Clients Web Farm Database ClustersApplication Farm
SASI
Deployment PlanDeployment Plan
EMEAEMEA3838
Solution: Smart Client ApplicationSolution: Smart Client ApplicationDeployment PlanDeployment Plan
BC DACUIPUIC Data Sources
Smart Clients Web Farm Database ClustersApplication Farm
SASI
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
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
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
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
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
EMEAEMEA4444
Further InformationFurther Information
Whitepapers on MSDN, Visual Studio Enterprisehttp://msdn.microsoft.com/vstudio/enterprise
EMEAEMEA
Please complete your sessionfeedback form
THANK YOU
Please complete your sessionfeedback form
THANK YOU