Täällä

379 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
379
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • The Microsoft Dynamic Systems Initiative, announced earlier this year, is a long term industry initiative to simplify and automate developing, deploying, and operating Connected Systems. Microsoft has already started delivering on this initiative with some of our platform technologies such as Windows 2003 Server, SMS, and the soon-to-be-released MOM. Today we’re describing the next stage in this initiative: the System Definition Model and some new tools that will be introduced in Visual Studio Whidbey. The System Definition Model lies at the heart of DSI. This layered model lets us represent the structure of applications systems, the application hosting environment, the network and operating systems environment, and finally the hardware. Objects in each layer can describe constraints on the layers above or below. A system at one level is then bound to and validated against a system at the level below. TRANSITION In the Whidbey timeframe we’re focusing on the top two layers of the model, the applications layer and the application host layer.
  • In the application layer you describe the structure and behavior of application systems; in the application host layer you describe a model of the application hosts; describing the way you configure hosts such as IIS and SQL Server. At the application level, the design can also be synchronized with code: it can be used to generate skeleton code for the system or can be reverse-engineered from existing projects. This then is the basis of the new designers we’re announcing here at the PDC. We don’t have final names for these yet but, there will be <build> Two new designers at the application level for designing web services applications and configuring these into deployable systems, <build> A new designer at the application host level for describing a logical data center architecture, and <build> A designer that handles the binding and validation of the application design against the data center description. TRANSITION So let’s take a look at these new tools in action
  • © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 05/13/10 08:20
  • Element of composition is the layer A layer is an element that may contain other elements but may not contain other layers Layers are not decomposed into smaller layers Layers completely partition a set of software elements (modules/components/projects) Each partition constitutes a virtual machine Layers interact with other layers according to a strict ordering relationship (allowed-to-use) Usage in layers generally flows downward Relationships Layers may or may not be allowed-to-use the services of another layer Layers may or may not be allowed to contain elements of a specified type Layers may be required to contain an element or elements of a specified type Properties Name, location, template List of elements contained in the layer List of elements allowed to be placed into the layer List of elements required to be in the layer
  • Reminder: the bits we’ve shown are not in the PDC, visit the VS Enterprise booth if you’d like to see more.
  • Täällä

    1. 1. Microsoft FEDERAL ARCHITECT FORUM March 16 th -17 th , 2004
    2. 2. Tools for Developing Service Oriented Solutions Jack Greenfield, Architect Visual Studio, Enterprise Tools Microsoft Corporation
    3. 3. Summary <ul><li>Building Service Oriented Applications is a complex undertaking </li></ul><ul><li>We can improve the underlying frameworks and protocols to help </li></ul><ul><li>But languages, patterns and tools have an important role to play </li></ul><ul><li>We can build effective modeling tools if we follow some simple rules </li></ul>
    4. 4. Agenda <ul><li>Complexity in Connected Systems </li></ul><ul><li>Using Abstraction to Reduce Complexity </li></ul><ul><li>Domain Specific Languages and Patterns </li></ul><ul><li>Scenario 1 - Web Services & Design for Operations </li></ul><ul><li>Scenario 2 – Implementing Business Processes </li></ul><ul><li>Microsoft Strategy and Tools for Visual Studio Whidbey </li></ul>
    5. 5. Agenda <ul><li>Complexity in Connected Systems </li></ul><ul><li>Using Abstraction to Reduce Complexity </li></ul><ul><li>Domain Specific Languages and Patterns </li></ul><ul><li>Scenario 1 - Web Services & Design for Operations </li></ul><ul><li>Scenario 2 – Implementing Business Processes </li></ul><ul><li>Microsoft Strategy and Tools for Visual Studio Whidbey </li></ul>
    6. 6. New Business Requirements <ul><ul><li>Automate business processes </li></ul></ul><ul><ul><li>Supply chain integration </li></ul></ul><ul><ul><li>Internal value chain integration </li></ul></ul><ul><ul><li>Customer and supplier self service </li></ul></ul><ul><ul><li>Lower operating costs </li></ul></ul><ul><ul><li>Cut time to market </li></ul></ul>
    7. 7. New Application Architecture <ul><ul><li>Automate business processes </li></ul></ul><ul><ul><li>Supply chain integration </li></ul></ul><ul><ul><li>Internal value chain integration </li></ul></ul><ul><ul><li>Customer and supplier self service </li></ul></ul><ul><ul><li>Lower operating costs </li></ul></ul><ul><ul><li>Cut time to market </li></ul></ul><ul><ul><li>Service oriented architecture </li></ul></ul><ul><ul><li>Web services, messaging, contracts </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Transactions and state management </li></ul></ul><ul><ul><li>Deployment policies & constraints </li></ul></ul><ul><ul><li>Heterogeneous platforms </li></ul></ul>
    8. 8. Evolving Platform Technology <ul><ul><li>Service oriented architecture </li></ul></ul><ul><ul><li>Web services, messaging, contracts </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Transactions and state management </li></ul></ul><ul><ul><li>Deployment policies & constraints </li></ul></ul><ul><ul><li>Heterogeneous platforms </li></ul></ul><ul><ul><li>Automate business processes </li></ul></ul><ul><ul><li>Supply chain integration </li></ul></ul><ul><ul><li>Internal value chain integration </li></ul></ul><ul><ul><li>Customer and supplier self service </li></ul></ul><ul><ul><li>Lower operating costs </li></ul></ul><ul><ul><li>Cut time to market </li></ul></ul><ul><ul><li>Service oriented architecture </li></ul></ul><ul><ul><li>Messaging and protocols </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Caching and state management </li></ul></ul><ul><ul><li>Deployment policies & constraints </li></ul></ul><ul><ul><li>Heterogeneous platforms </li></ul></ul><ul><ul><li>Schemas and URLs </li></ul></ul><ul><ul><li>Assemblies and resources </li></ul></ul><ul><ul><li>Project structure </li></ul></ul><ul><ul><li>Installation and registration </li></ul></ul><ul><ul><li>Server configuration </li></ul></ul><ul><ul><li>Database administration </li></ul></ul>
    9. 9. Complexity <ul><ul><li>Automate business processes </li></ul></ul><ul><ul><li>Supply chain integration </li></ul></ul><ul><ul><li>Internal value chain integration </li></ul></ul><ul><ul><li>Customer and supplier self service </li></ul></ul><ul><ul><li>Lower operating costs </li></ul></ul><ul><ul><li>Cut time to market </li></ul></ul><ul><ul><li>Service oriented architecture </li></ul></ul><ul><ul><li>Web services, messaging, contracts </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Transactions and state management </li></ul></ul><ul><ul><li>Deployment policies & constraints </li></ul></ul><ul><ul><li>Heterogeneous platforms </li></ul></ul><ul><ul><li>Schemas and URLs </li></ul></ul><ul><ul><li>Assemblies and resources </li></ul></ul><ul><ul><li>Project structure </li></ul></ul><ul><ul><li>Installation and registration </li></ul></ul><ul><ul><li>Server configuration </li></ul></ul><ul><ul><li>Database administration </li></ul></ul>?
    10. 10. Where Does Complexity Arise? ? package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager; import java.rmi.RemoteException; import java.util.Vector; <ul><li>High Level Concepts </li></ul>«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..1 1 1..* «derived» 0..1 1 <ul><li>Low-level Implementation languages </li></ul>
    11. 11. Agenda <ul><li>Complexity in Connected Systems </li></ul><ul><li>Using Abstraction to Reduce Complexity </li></ul><ul><li>Domain Specific Languages and Patterns </li></ul><ul><li>Scenario 1 - Web Services & Design for Operations </li></ul><ul><li>Scenario 2 – Implementing Business Processes </li></ul><ul><li>Microsoft Strategy and Tools for Visual Studio Whidbey </li></ul>
    12. 12. Abstraction Reduces Complexity Assembler, Pcode, CLR IL <ul><li>Bytecode or machine languages </li></ul><ul><li>General Purpose Abstractions </li></ul>C#, Java, etc <ul><li>Domain Specific Abstractions </li></ul>
    13. 13. Frameworks Reduce Translation Complexity Assembler, Pcode, CLR IL <ul><li>Bytecode or machine languages </li></ul><ul><li>General Purpose Abstractions </li></ul>C#, Java, etc <ul><li>Domain Specific Abstractions </li></ul>Frameworks E.g. ASP.Net <ul><li>Domain Specific Frameworks </li></ul>
    14. 14. Agenda <ul><li>Complexity in Connected Systems </li></ul><ul><li>Using Abstraction to Reduce Complexity </li></ul><ul><li>Domain Specific Languages and Patterns </li></ul><ul><li>Scenario 1 - Web Services & Design for Operations </li></ul><ul><li>Scenario 2 – Implementing Business Processes </li></ul><ul><li>Microsoft Strategy and Tools for Visual Studio Whidbey </li></ul>
    15. 15. Domain Specific Language <ul><li>A language specific to a domain </li></ul>horizontal – e.g.: * GUI * web * business logic * database * deployment vertical – e.g.: * telephone bills * insurance * plane tickets * hardware construction Pictorial flowcharts UML Textual C#, Java OCL
    16. 16. Domain Specific Language <ul><li>Domain Specific Abstractions </li></ul><ul><li>Narrow Scope </li></ul><ul><li>Graphical </li></ul><ul><li>Highly Expressive </li></ul><ul><li>Coarse-grained abstractions </li></ul><ul><li>May be translated into </li></ul><ul><ul><li>General purpose programming languages </li></ul></ul><ul><ul><li>Specific framework completion </li></ul></ul><ul><ul><li>Other modeling languages </li></ul></ul>
    17. 17. Languages : Modelling and Programming Textual Pictorial Descriptive Prescriptive class Magnox : NuclearPowerStation { public void dropRods () a>b && c==d <CallRecord> <caller><number>07713248</number>  C(x) h    C(x)  t 2m  x  ih = – jo biscuits 24 green pat cakes 32 pink Employee name address promote Job description pay assign 0..* call Call Record call length  base rate: £/s store
    18. 18. Telephone billing scheme call calendar month Call Record call length  base rate: £/s call length  friend discount rate: £/s store friends calls other calls - bill billing period store   + -
    19. 19. DSLs make problems “Small Scale” <ul><li>Small scale = </li></ul><ul><ul><li>Not much design atop existing platform </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><ul><li>small team </li></ul></ul></ul><ul><ul><ul><ul><li> coherent, consistent architecture; low costs </li></ul></ul></ul></ul><ul><ul><ul><li>early prototypes </li></ul></ul></ul><ul><ul><ul><ul><li> early feedback to requirements; early proof of concept </li></ul></ul></ul></ul><ul><ul><ul><li>easy maintenance </li></ul></ul></ul><ul><ul><ul><li>changes inexpensive </li></ul></ul></ul>
    20. 20. Finding prime numbers is Small Scale … <ul><li>If we have a computer that can: </li></ul><ul><ul><li>do multiplication and division </li></ul></ul><ul><ul><li>do things repeatedly </li></ul></ul>la n g u a g e : platform : _*_ _/_ _%_ while (…) {…} C, Pascal, Fortran,… Von Neumann computer with conventional CPU
    21. 21. Finding parts lists is Small Scale … <ul><li>If we have a computer that can: </li></ul><ul><ul><li>keep large lists of parts & scan them quickly </li></ul></ul><ul><ul><li>combine and filter the lists efficiently </li></ul></ul>CREATE … JOIN … … WHERE … SELECT … platform : language : Relational Database SQL
    22. 22. Developing a GUI is Small Scale … <ul><li>If we have a computer that can: </li></ul><ul><ul><li>display combinations of windows and widgets </li></ul></ul><ul><ul><li>show things and interact with user in them </li></ul></ul>Visual programming languages Interactive app platform platform : language :
    23. 23. <ul><li>if we have a language of phone billing </li></ul><ul><li>and a framework to run it on </li></ul>Phone bill systems are Small Scale … ? call calendar month Call Record call length  base rate: £/s call length  friend discount rate: £/s store friends calls other calls - bill billing period store   Telephone Billing Scheme
    24. 24. Where are DSLs in use today? <ul><li>forms-centred applications </li></ul><ul><li>build GUI from a collection of widgets </li></ul><ul><li>Web database applications </li></ul><ul><li>standard couplings between form and db </li></ul><ul><li>string, textfile processing </li></ul><ul><li>regexps, parsers, … </li></ul>(a,b,c)= str=~/<([^>]*)>/g; <ul><li>COTS applications </li></ul><ul><li>Great Plains, SAP, Baan, … </li></ul>
    25. 25. Understanding Web Services <ul><li>Activities <-> Services </li></ul><ul><li>Web services </li></ul><ul><li>Messages </li></ul><ul><li>Contracts </li></ul><ul><li>Sequences </li></ul><ul><li>Security </li></ul><ul><li>Reuse </li></ul><ul><li>Wire-level protocols </li></ul><ul><li>etc </li></ul>
    26. 26. Where Does Complexity Arise? ? package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager; import java.rmi.RemoteException; import java.util.Vector; <ul><li>High Level Concepts </li></ul><ul><ul><li>Activities </li></ul></ul><ul><ul><li>Messages </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Reuse </li></ul></ul><ul><ul><li>Services </li></ul></ul><ul><ul><li>Contracts </li></ul></ul>«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..1 1 1..* «derived» 0..1 1 <ul><li>Low-level Implementation languages </li></ul>
    27. 27. Scattered Concepts … .asmx files .asmx code behinds source code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And 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..1 1 1..* «derived» 0..1 1
    28. 28. …Replaced By A Holistic View .asmx files .asmx code behinds source code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And Packages Web Service Interaction DSL
    29. 29. Need A Designer Infrastructure <ul><li>For a specific aspect of overall development </li></ul><ul><ul><li>Define a metamodel for the abstractions </li></ul></ul><ul><ul><li>Define a graphical notation </li></ul></ul><ul><ul><li>Define a synchronization engine </li></ul></ul>
    30. 30. Complexity <ul><ul><li>Automate business processes </li></ul></ul><ul><ul><li>Supply chain integration </li></ul></ul><ul><ul><li>Internal value chain integration </li></ul></ul><ul><ul><li>Customer and supplier self service </li></ul></ul><ul><ul><li>Lower operating costs </li></ul></ul><ul><ul><li>Cut time to market </li></ul></ul><ul><ul><li>Service oriented architecture </li></ul></ul><ul><ul><li>Web services, messaging, contracts </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Transactions and state management </li></ul></ul><ul><ul><li>Deployment policies & constraints </li></ul></ul><ul><ul><li>Heterogeneous platforms </li></ul></ul><ul><ul><li>Schemas and URLs </li></ul></ul><ul><ul><li>Assemblies and resources </li></ul></ul><ul><ul><li>Project structure </li></ul></ul><ul><ul><li>Installation and registration </li></ul></ul><ul><ul><li>Server configuration </li></ul></ul><ul><ul><li>Database administration </li></ul></ul>?
    31. 31. Simplify Using DSLs Business IT Strategic Objectives Technology Architecture Business Processes and Entities Logical Data Center Services, Messages, Contracts, Schedules XML, Database, Classes, Code Manual Procedures Assess Design Implement Plan Run Physical servers and segments Each work product can use a custom language Mappings are defined between languages
    32. 32. What’s Inside A Viewpoint? Business IT Strategic Objectives Technology Architecture Business Processes and Entities Logical Data Center Services, Messages, Contracts, Schedules XML, Database, Classes, Code Manual Procedures Assess Design Implement Plan Run Physical servers and segments DSLs Patterns Processes Frameworks Components Aspects Transforms Constraints
    33. 33. What’s Inside A Viewpoint? Business IT Strategic Objectives Technology Architecture Business Processes and Entities Logical Data Center Services, Messages, Contracts, Schedules XML, Database, Classes, Code Manual Procedures Assess Design Implement Plan Run Physical servers and segments
    34. 34. Agenda <ul><li>Complexity in Connected Systems </li></ul><ul><li>Using Abstraction to Reduce Complexity </li></ul><ul><li>Domain Specific Languages and Patterns </li></ul><ul><li>Scenario 1 - Web Services & Design for Operations </li></ul><ul><li>Scenario 2 – Implementing Business Processes </li></ul><ul><li>Microsoft Strategy and Tools for Visual Studio Whidbey </li></ul>
    35. 35. Example 1 Business IT Strategic Objectives Technology Architecture Business Processes and Entities Logical Data Center Physical servers and segments Services, Messages, Contracts, Schedules XML, Database, Classes, Code Manual Procedures Assess Design Implement Plan Run
    36. 36. Dynamic Systems Initiative (DSI) Network Topology & Operating Systems Hardware System Definition Model Application Hosts Applications
    37. 37. Whidbey Solutions… A logical data center designer An application designer A system hosting designer Application Hosts Applications System Definition Model
    38. 38. A DSL In Use Today
    39. 43. Web Service Interaction <ul><li>Patterns </li></ul><ul><ul><li>Service Interface </li></ul></ul><ul><ul><li>Gateway </li></ul></ul><ul><ul><li>Façade </li></ul></ul><ul><ul><li>Layered Architecture </li></ul></ul><ul><li>Aspects </li></ul><ul><ul><li>Transactions </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><li>Transformations </li></ul><ul><ul><li>Validate against deployment infrastructure </li></ul></ul><ul><ul><li>Transform into implementation artifacts </li></ul></ul>
    40. 44. Logical System Architecture <ul><li>Logical System Architecture Patterns </li></ul><ul><ul><li>“ Hardened IIS” – metabase settings </li></ul></ul><ul><ul><li>MSA Patterns </li></ul></ul><ul><ul><ul><li>IDC, EDC </li></ul></ul></ul><ul><ul><li>Tiered Architecture Patterns </li></ul></ul><ul><li>Aspects </li></ul><ul><ul><li>Firewall Settings </li></ul></ul><ul><ul><li>Protocol Settings </li></ul></ul><ul><li>Transformations </li></ul><ul><ul><li>Validate against Web service application design </li></ul></ul><ul><ul><li>Transform into implementation SDM </li></ul></ul>
    41. 45. Applying A Service Façade Pattern Policy Management Customer Management Customer Self-Service Service Selected Messages Project Structures References Default XSD schemas Security Policy Access Policy Pass-thru Logic & Filters Service Facade Pattern Facade Messages Customer Mgmt Facade
    42. 47. Aspect Weaving – Instrumentation Policy Management Customer Management Customer Self-Service Pointcut Pointcut Pointcut Pointcut Pointcut Pointcut Code Aspect Aspect Aspect Instrumentation Aspect Framework Call Structure
    43. 48. Agenda <ul><li>Complexity in Connected Systems </li></ul><ul><li>Using Abstraction to Reduce Complexity </li></ul><ul><li>Domain Specific Modeling Languages and Patterns </li></ul><ul><li>Scenario 1 - Web Services & Design for Operations </li></ul><ul><li>Scenario 2 – Implementing Business Processes </li></ul><ul><li>Microsoft Strategy and Tools for Visual Studio Whidbey </li></ul>
    44. 49. Scenario 2 Business IT Strategic Objectives Technology Architecture Business Processes and Entities Logical Data Center Services, Messages, Contracts, Schedules XML, Database, Classes, Code Manual Procedures Assess Design Implement Plan Run Physical servers and segments
    45. 50. Invoice To Payment
    46. 51. How Do We Describe BPs? <ul><li>Business Process DSL </li></ul><ul><ul><li>Activities </li></ul></ul><ul><ul><li>Business Event </li></ul></ul><ul><ul><li>Dependencies </li></ul></ul><ul><ul><li>Business Entities </li></ul></ul><ul><ul><li>Documents </li></ul></ul><ul><ul><li>Etc. </li></ul></ul>
    47. 52. Patterns And Transforms <ul><li>Process Patterns </li></ul><ul><ul><li>User Process </li></ul></ul><ul><ul><li>Scheduled Process </li></ul></ul><ul><ul><li>Case Process </li></ul></ul><ul><ul><li>Rules Process </li></ul></ul><ul><li>Transformations </li></ul><ul><ul><li>Transform into Web service collaborations </li></ul></ul>
    48. 53. Build One Business Process DSL? Business IT Strategic Objectives Technology Architecture Business Processes and Entities Logical Data Center Services, Messages, Contracts, Schedules XML, Database, Classes, Code Manual Procedures Assess Design Implement Plan Run Physical servers and segments Huge Variation Few Platforms
    49. 54. Building Applications With DSLs <ul><li>Choose a specific aspect of overall development </li></ul><ul><li>Define a metamodel for the abstractions </li></ul><ul><ul><li>OR extend an existing one </li></ul></ul><ul><li>Define a graphical notation </li></ul><ul><li>Define a synchronization engine </li></ul><ul><li>Define Patterns </li></ul><ul><li>Define Aspects </li></ul>
    50. 55. Agenda <ul><li>Complexity in Connected Systems </li></ul><ul><li>Using Abstraction to Reduce Complexity </li></ul><ul><li>Domain Specific Languages and Patterns </li></ul><ul><li>Scenario 1 - Web Services & Design for Operations </li></ul><ul><li>Scenario 2 – Implementing Business Processes </li></ul><ul><li>Microsoft Strategy and Tools for Visual Studio Whidbey </li></ul>
    51. 56. Making Use Of Metadata <ul><li>Metadata collected in DSLs can be made available across the life cycle </li></ul><ul><ul><li>Source control systems </li></ul></ul><ul><ul><li>Debuggers </li></ul></ul><ul><ul><li>Testing Tools </li></ul></ul><ul><ul><li>Compilers and language editors </li></ul></ul>
    52. 57. Enterprise Design Tools <ul><li>Build an initial set of model-driven development tools supporting DSLs </li></ul><ul><ul><li>Focused on specific development tasks </li></ul></ul><ul><ul><li>With hi-fidelity, continuously synchronized mappings to code or other models </li></ul></ul><ul><li>Expand and integrate model data throughout life cycle tools </li></ul><ul><li>Productize and promote underlying tool-building frameworks and tools </li></ul><ul><li>Goal : Simplify design and deployment of SOA’s </li></ul>
    53. 58. DSL’s Supported in Whidbey <ul><li>Rich support for designing and constructing connected applications from Web services </li></ul><ul><li>Designing WS for operational deployment </li></ul><ul><ul><li>Logical infrastructure requirements considered early – inform and constrain developers </li></ul></ul><ul><ul><li>Verify application settings against logical infrastructure </li></ul></ul>
    54. 59. Review <ul><li>Domain specific languages can help reduce complexity </li></ul><ul><ul><li>Domain-specific abstractions </li></ul></ul><ul><ul><li>Holistic view of scattered concepts </li></ul></ul><ul><li>Microsoft is working to improve Web service design and deployment scenarios </li></ul><ul><li>Implementing DSLs can be made effective with the right underlying engine </li></ul><ul><li>Tool Extensibility is very important </li></ul>
    55. 60. Further Information <ul><li>Whitepapers on MSDN, Visual Studio Enterprise </li></ul><ul><ul><li>http://msdn.microsoft.com/vstudio/enterprise </li></ul></ul><ul><li>Article by Steve Cook from Enterprise Tools Architect Team </li></ul><ul><ul><li>http://www.bptrends.com/publicationfiles/01-04%20COL%20Dom%20Spec%20Modeling%20Frankel-Cook.pdf </li></ul></ul><ul><li>Patterns & Practices on MSDN </li></ul><ul><ul><li>http://msdn.microsoft.com/practices/type/patterns/ </li></ul></ul><ul><li>Software Factories: Assembling Applications with Languages, Patterns, Frameworks and Tools </li></ul><ul><ul><li>http://www.amazon.com </li></ul></ul>
    56. 61. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

    ×