530 likes | 739 Views
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
E N D
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 • Demos @ the 3.00pm interactive session
Modelling • A Model is used to describe an abstract entity • We are not discussing Object Modelling • Think relational Modelling
3 Dubs • WCF 4.0 • WF 4.0 • “Dublin” Application Server
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
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
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
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
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, …
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
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
Why is this happening? TRANSPARENCY Better understanding of your application FLEXIBLITY Faster changes to your application PRODUCTIVITY “More essence, less ceremony”
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)
Application Development Reqs Business Process Application Service Level Agreement BA IT Dev Architect
THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS What is "Oslo"? “M” Modelling language “Quadrant” Modelling tool Repository Model store
Key "Oslo" Concepts VISUAL DSLs TEXTUALDSLs MODELS RUNTIMES
"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
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
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
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
Repository Database Content • Tables in the Repository database represent different technologies • Currently included: • Common language runtime • Windows Communication Foundation • Windows Workflow Foundation • Identity
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
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
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
Why “DM”? • Interacting with Oslo content needs to be simple and natural • Textural based modelling language
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
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
// 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
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
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
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
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
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
"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
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
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
What is in it for the Enterprise? Tooling Sharing a common Repository Modelling layer Service Model Visual and Textual DSL Delivery and Hosting