1 / 53

Oslo, Microsoft’s vision for the future of Modelling (Extra Content)

Oslo, Microsoft’s vision for the future of Modelling (Extra Content). Robert Hogg Architect Black Marble. Robert Hogg. FBCS, CEng Senior Architect Black Marble LTD. Agenda. The “Oslo” Back Story A Lap around “Oslo” The Repository M IntelliPad Quadrant

liliha
Download Presentation

Oslo, Microsoft’s vision for the future of Modelling (Extra Content)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oslo, Microsoft’s vision for the future of Modelling(Extra Content) Robert Hogg Architect Black Marble

  2. Robert Hogg FBCS, CEng Senior Architect Black Marble LTD

  3. Agenda • The “Oslo” Back Story • A Lap around “Oslo” • The Repository • M • IntelliPad • Quadrant • Demos @ the 3.00pm interactive session

  4. The “Oslo” Back Story

  5. Modelling • A Model is used to describe an abstract entity • We are not discussing Object Modelling • Think relational Modelling

  6. 3 Dubs ( a quick spin )

  7. 3 Dubs • WCF 4.0 • WF 4.0 • “Dublin” Application Server

  8. WCF 4.0 • Services can be declared using XAML • You can create a service with zero lines of code • Much tighter integration with WF • Tighter integration with Dublin

  9. WF 4.0 • Core WF class library has been re-written • Flowchart workflow model • 10x – 100x performance increased • XAML has been greatly improved • XAML is now default authoring mode • Designers have been re-written to use WPF • 10x easier to add activity designers • You may love it, you may hate it • Designer re-hosting is 10x easier

  10. Windows Application Server Extensions(Codename “Dublin”) • Evolution of WAS/IIS and Windows App Server role to run and manage WF and WCF services • Initial release is a web download • Ships soon after VS10 Visual Studio Oslo Windows Server “Dublin” Administration Tools System Center WF and WCF services .NET Framework IIS/WAS

  11. Dublin Dublin adds “It just works!” Dublin enhances Windows/IIS/.NET 4.0 Quadrant Visual Studio IIS Manager Model Deployment to Dublin WF and WCF Project Templates WF and WCF Management Modules App Server SCOM Pack Management APIs (PowerShell command-lets) IIS/WAS Hosting Persistence Monitoring Messaging Discovery & Control Scale-out & Reliability Application Monitoring Versioning, Partitioning, Routing System Center WF and WCF Frameworks Durable Timer Service Discovery Service SQL Persistence Provider WF SQL Tracking Provider WCF SQL Tracking Behaviors Forwarding Service Runtime Databases Persistence schema Monitoring schema Windows Application Server Role

  12. Dublin vs. BizTalk

  13. A LAP AROUND “OSLO”

  14. A DESCRIPTION OF A GIVEN DOMAIN What is a Model? DRAWINGS Models used to communicate with others Examples: Dataflow, Use Case, … MODEL-ASSISTED Models used to understand or manipulate code Examples: Static Structure, Sequence, … MODEL-DRIVEN Models executed by runtimes directly Examples: HTML, CSS, XAML, BPEL, …

  15. Model-driven Platform DECLARATIVE CONTENT .NET 3.0 wpf:ContentControl wf:StateMachine Web Services xsd:schema wsdl:definitions .NET 1.0 app.config [YourAttributeHere] COM (+) [Transaction] midl.exe TIME

  16. Model-driven Applications Textual domain specific language (CAML) Visual designer (SharePoint Designer) Application definition stored in database Textual domain specific language (X++) Visual designer (MorphX) Application definition stored in database

  17. Why is this happening? TRANSPARENCY Better understanding of your application FLEXIBLITY Faster changes to your application PRODUCTIVITY “More essence, less ceremony”

  18. The Application Lifecycle • Business Analysts • Define business process ( Word, Visio ) • Architects • Define systems (Word, Visual Studio ) • Developers • Develop systems (Visual Studio) • IT • Manage systems (System Centre)

  19. Application Development Reqs Business Process Application Service Level Agreement BA IT Dev Architect

  20. THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS What is "Oslo"? “M” Modelling language “Quadrant” Modelling tool Repository Model store

  21. Key "Oslo" Concepts VISUAL DSLs TEXTUALDSLs MODELS RUNTIMES

  22. "Oslo" Architecture “QUADRANT” RUNTIMES [Your Textual DSL] [Your Visual DSL] EDITOR FRAMEWORK LANGUAGE FRAMEWORK Composition [Your Runtime] Generic Viewers MSchema “Dublin” Dataflow MGrammar ASP.NET MGraph XML, Custom Formats, … WF WCF REPOSITORY SQL SERVER REPOSITORY SQL SERVER SQL/EDM ADO .NET Windows Other ISV Runtimes REPOSITORY SQL SERVER [Your Models] [Your Models] [Your Models] Base Models Base Models OTHER TOOLS (VSTS, EXCEL, …) XML, Custom Formats, … .Net Models “M” Runtime “M” Runtime Repository Models

  23. The REPOSITORY

  24. Repository • A single location for definitions • A single location for information • Relationships defined across traditional boundaries • End to End tracking Schema Instance Schema Instance Instance

  25. Repository Capabilities • Repository features are built on SQL Server • Repository install also turns on useful features, e.g. replication and mirroring Repository catalog, secure views, auditing,versioning, claims-based security, glob/loc, etc. Repository Features system catalog, Change Data Capture,replication, SSIS, mirroring, security, etc. SQL Server Features

  26. Structural Models • Database structure is used to define models • E.g. WCF artefacts are represented as tables in the repository database • Service contracts • Operation contracts • Endpoints • Bindings

  27. Repository Database Content • Tables in the Repository database represent different technologies • Currently included: • Common language runtime • Windows Communication Foundation • Windows Workflow Foundation • Identity

  28. System.ServiceModel partial structure

  29. Instance Models • Data is used to define models • Rows are inserted in structural model tables • A service application can be modelled by • Adding a service contract • Adding service operations • Adding endpoints and bindings

  30. Federating Systems • The repository MAY at some point in the future be federated across other data stores such as • Team Foundation Server (TFS) in Visual Studio Team System • Various stores in System Center • And more • Imagine the possibilities

  31. Repository • Repository is optimized for many reads, few writes • Contains models for “Oslo” app domains • Can be extended with M • Models can be deployed, secured and versioned

  32. The modelling Language

  33. Why “DM”? • Interacting with Oslo content needs to be simple and natural • Textural based modelling language

  34. What Is “M”? • “M” is a language for defining domain models and textual domain-specific languages (DSLs) • M domain models define schema and query over structured data • Values, Constraints, and Views • Natural projection to SQL • M DSLs define projections from Unicode text to structured data • Rule-based transformation • Grammar-driven text editor integration

  35. The "M" Language DSL DSLX DSLY Point.m Domain Model DomainX.m Domain Model DomainY.m Domain Model PointLanguage.mg Domain Grammar DomainX.mg Domain Grammar DomainY.mg Domain Grammar "M" Domain-specific data models • type Point { • X : Integer; • Y : Integer; • } MSchema Domain-specific grammars • language PointLanguage { • syntax Main = h:Integer "," v:Integer • => Point { X { h }, Y { v }};} MGrammar Abstract data model • Point { X { 100 }, Y { 200 } } MGraph

  36. // Module: Used to scope model definitions moduleTest.TimeReport { // Type: Defines employee data structure type Employee { Id : Integer32 FirstName : Text wherevalue.Count <= 100; LastName : Text wherevalue.Count <= 100; } // Extent: Contains zero or more employees Employees : Employee*; } “M” Language Example • MSchema is used to model data structures, storage, views and constraints

  37. Using “M” to Model a Database // Module: Used to scope model definitions module Test.TimeReport { // Type: Defines employee data structure type Employee { FirstName : Text where value.Count <= 100; LastName : Text where value.Count <= 100; } // Extent: Contains zero or more employees Employees : Employee*; } • create table • [Test.TimeReport].[Employees] • ( • [FirstName] nvarchar(100) not null, • [LastName] nvarchar(100) not null, • ); • go • Once they’re in the database, it’s just SQL • “TSQL can be used to create repository structure or standard database structure • Repository TSQL is more complex Compile

  38. M Tool Chain M.exe Domain Model Compiler MX.exe Domain Model Loader ModelA.m ModelB.m ModelC.m ModelABC.mx SQL Server M Framework M Framework

  39. What “M” Is Not • An object-oriented language • No polymorphism, virtual dispatch • “Is-a” determined based on structural subtyping, not stipulation • A data access technology • M domain models compile down to T-SQL • Tool chain supports course-grained loading/unloading of schemas and values – not an OLTP solution • A replacement for T-SQL • Far less expansive feature set • Tool chain supports linking/invoking T-SQL

  40. IntelliPAD

  41. IntelliPad Editing Tool • Simple text based code editor • Supports “M” languages • Provides instant feedback of code compilation • Great for learning “M” languages • Visual Studio can also be used for “M” • Most likely scenario in real projects

  42. M: Visual Studio

  43. QUADRANT

  44. What is "Quadrant"? • Graphical tool used for managing instance models • Targeted at architects and business analysts • Uses “Office Style” ribbon toolbar • Loads model definitions from repository database • Allows management of instances • Changes are saved to database immediately

  45. Quadrant Modelling Tool

  46. "Quadrant" Architecture SERVICES SHELL AND SURFACE COMPOSITION ENGINE Nesting Sizing Layout Snapping Core Services Undo/Redo Commands Drag/Drop Selection Activation Error Handling General Services Search Validation Annotations Relationship Highlighting DATAFLOW ENGINE Caching, Virtualization, Change tracking, and Notification Target Data View State Configuration REPOSITORY

  47. Development Domains VISUAL DSLs TEXTUALDSLs RUNTIMES “Quadrant” Web Editor “MWeb” ASP.NET WEB “Quadrant” Service Editor “MService” WCF/WF (“Dublin”) SERVICES “Quadrant” Entity Editor “MEntity” EF ENTITIES “Quadrant” Schema Editor “MSchema” SQL DATABASE “Quadrant” My Configured Editor My DSL My Runtime CUSTOM

  48. Oslo Scenario: Modelling an application • Design • “M” is used to define the application database structure • The “M” model is imported to Repository database • The application is modelled in Quadrant • Implementation • The “M” model is used to create the runtime database • Visual Studio is used to develop runtime components • Deployment • Quadrant could be used to deploy the application • RunTime • “Dublin” could be used to deploy the application

  49. What is in it for the Enterprise? Tooling Sharing a common Repository Modelling layer Service Model Visual and Textual DSL Delivery and Hosting

  50. Summary

More Related