EMEA
2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group Microsoft Europe, Middle East and Africa
EMEA 3 "What do you mean it doesn't run in production? It runs fine on my machine?!" — Anonymous developer
EMEA 4 Aligning constraints issues (example) Develop software components Meet functional requirements Maintain servers and network Meet 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
EMEA 5 Summary 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
EMEA 6 Building Service Oriented Applications is complex
EMEA 7 Automate business processes Value chains with partners Customer and supplier self service Improve ROI of IT Lower operating costs Cut time to market New Business Requirements
EMEA 8 New Application Architecture Automate business processes Improve ROI of IT Lower operating costs Cut time to market Value chains with partners Customer and supplier self service Service oriented architecture Web Services, messaging, contracts Security Caching and state management Deployment policies & constraints Heterogeneous platforms
EMEA 9 Evolving Platform Technology Automate business processes Improve ROI of IT Lower operating costs Cut time to market Value chains with partners Customer and supplier self service Service oriented architecture Messaging and protocols Security Caching and state management Deployment policies & constraints Heterogeneous platforms Application Servers and standards Schemas and databases Code and attributes Configuration files Project structures Physical server configurations
EMEA 10 Complexity Automate business processes Value chains with partners Customer and supplier self service Improve ROI of IT Lower operating costs Cut time to market Service oriented architecture Web Services, messaging, contracts Security Caching and state management Deployment policies & constraints Heterogeneous platforms Application servers & standards Schemas and databases Code and attributes Configuration files Project structures Physical server configurations ? ?
EMEA 11 Where Does Complexity Arise? ? ? package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; import java.util.Vector; package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; import java.util.Vector; High 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 + 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 ( ) * «derived» Low-level Implementation languages
EMEA 12 Abstraction Decreases Complexity Assembler, Pcode, CLR IL Bytecode or machine languages General Purpose Abstractions C#, Java, etc Domain Specific Abstractions Frameworks E.g. ASP.Net Domain Specific Frameworks
EMEA 13 Domain Specific Modeling Language (a definition) Domain Specific Abstractions Narrow Scope Graphical Highly Expressive Coarse-grained abstractions May be translated into General purpose programming languages Specific framework completion Other modeling languages
EMEA 14 A “case study” building a “connected” system using with Web Services
EMEA 15 Where Does Complexity Arise? ? ? package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; import java.util.Vector; package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; import java.util.Vector; High Level Concepts Activities Messages Security Reuse Components Protocols High Level Concepts Activities Messages Security Reuse Components Protocols «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 + 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 ( ) * «derived» Low-level Implementation languages
EMEA 16.asmx files.asmx code behindssource code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And Packages ? ? Scattered Concepts …
EMEA 17.asmx files.asmx code behindssource code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And Packages …Replaced By A Holistic View Web Service Interaction DSL
EMEA 18 Need A Designer Infrastructure For a specific aspect of overall development Define a metamodel for the abstractions Define a graphical notation Define a synchronization engine
EMEA 19 Simplify Using DSLs Assess DesignImplement PlanRun Business IT StrategicObjectivesStrategicObjectives TechnologyArchitectureTechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures Each work product can be a separate modeling language Mappings are defined between modeling languages
EMEA 20 What’s Inside A Viewpoint? Assess DesignImplement PlanRun Business IT StrategicObjectivesStrategicObjectives TechnologyArchitectureTechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures DSLsPatternsProcessesFrameworksComponentsAspectsTransformsConstraints
EMEA 21 What’s Inside A Viewpoint? Assess DesignImplement PlanRun Business IT StrategicObjectivesStrategicObjectives TechnologyArchitectureTechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures
EMEA 22 Example 1 Assess DesignImplement PlanRun Business IT StrategicObjectives TechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures
EMEA 23 Dynamic Systems Initiative (DSI) Network Topology & Operating Systems Hardware System Definition Model Application Hosts Applications
EMEA 24 Whidbey Solutions… A logical data center designer An application designer Application Hosts Applications A system hosting designer System Definition Model
EMEA 25 Introducing codename Whitehorse
EMEA 26 A DSL In Use Today Number 1 Design tool in the market!
EMEA 27
EMEA 28
EMEA 29
EMEA 30
EMEA 31 Demo (movie) From PDC Session: TLS345 ( available at
EMEA 32 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
EMEA 33 Applying A Service Façade Pattern Policy Management Customer Management Customer Self-Service Service Facade Pattern Facade Messages Service Selected Messages Project Structures References Default XSD schemas Security Policy Access Policy Pass-thru Logic & Filters Customer Mgmt Facade
EMEA 34 Patterns Physical architecture Logical architecture
EMEA 35 Deployment patterns Architecture Design Implementation InfrastructureDeploymentApplicationData Simple Web Complex Web Rich client Extended enterprise 4-Tier3-Tier Tiered distribution Layeredservicesapplication Layered application Three-layeredapplication
EMEA 36 Deployment Plan Solution: Simple Web Application BC Clients DAC UIP UIC Data Sources Web Clients Web Application Farm Database Clusters
EMEA 37 Solution: Extended Enterprise Application BC Clients DAC UIP UIC Data Sources Web Clients Web Farm Database Clusters Application Farm SA SI Deployment Plan
EMEA 38 Solution: Smart Client Application Deployment Plan BC DAC UIP UIC Data Sources Smart Clients Web Farm Database Clusters Application Farm SA SI
EMEA 39 Aspect Weaving – Instrumentation Policy Management Customer Management Customer Self-Service Instrumentation Aspect Framework Call Structure Pointcut Code Aspect
EMEA 40 Making 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
EMEA 41 Enterprise 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
EMEA 42 DSL’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
EMEA 43 Review 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
EMEA 44 Further Information Whitepapers on MSDN, Visual Studio Enterprise
EMEA Please complete your session feedback form THANK YOU