FBCS, CEng Senior Architect Black Marble LTD Robert Hogg
Slide 3
THE OSLO BACK STORY
Slide 4
Slide 5
Slide 6
Slide 7
A LAP AROUND MODELING
Slide 8
What is a Model? A DESCRIPTION OF A GIVEN DOMAIN MODEL-ASSISTED
Models used to understand or manipulate code Examples: Static
Structure, Sequence, DRAWINGS Models used to communicate with
others Examples: Dataflow, Use Case, MODEL-DRIVEN Models executed
by runtimes directly Examples: HTML, CSS, XAML, BPEL,
Slide 9
Model-driven Platform COM (+) midl.exe [Transaction]
DECLARATIVE CONTENT TIME.NET 1.0 [YourAttributeHere] app.config Web
Services wsdl:definitions xsd:schema.NET 3.0 wf:StateMachine
wpf:ContentControl
Slide 10
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
Slide 11
Why is this happening? TRANSPARENCY Better understanding of
your application FLEXIBLITY Faster changes to your application
PRODUCTIVITY More essence, less ceremony
Slide 12
SQL Server SQL Azure Visual StudioQuadrant SQL Server Modeling
Services Entity Framework ADO.NETM/EDM Data Services Data and
Modeling
Slide 13
What is "SMS"? THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS SQL
Server Modeling Services Model store Quadrant Modelling tool M
Modelling language
QUADRANT Composition Generic Viewers Dataflow EDITOR FRAMEWORK
[Your Visual DSL] [Your Textual DSL] MSchema MGrammar MGraph
LANGUAGE FRAMEWORK [Your Models] Base Models M Runtime REPOSITORY
SQL SERVER [Your Models] Base Models M Runtime REPOSITORY SQL
SERVER "SMS" Architecture RUNTIMES [Your Runtime] Dublin ASP.NET WF
WCF SQL/EDM Windows Other ISV Runtimes ADO.NET XML, Custom Formats,
[Your Models].Net Models Repository Models REPOSITORY SQL SERVER
OTHER TOOLS (VSTS, EXCEL, ) XML, Custom Formats,
Slide 16
ONE TRUTH
Slide 17
SQL SERVER MODELING SERVICES
Slide 18
Repository Capabilities Repository features are built on SQL
Server Repository install also turns on useful features, e.g.
replication and mirroring system catalog, Change Data Capture,
replication, SSIS, mirroring, security, etc. SQL Server Features
Repository catalog, secure views, auditing, versioning,
claims-based security, glob/loc, etc. Repository Features
Slide 19
QUADRANT
Slide 20
What is "Quadrant"? Graphical tool used for managing instance
models Targeted at architects and business analysts Loads model
definitions from repository database Allows management of instances
Changes are saved to database immediately
Why M? Interacting with Oslo content needs to be simple and
natural Textural based modelling language
Slide 25
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
Slide 26
codename m: a language for data M EDMX Specification T-SQL
Specification Grammar Specification
Slide 27 Point { X { h }, Y { v }}; } type Point { X : Integer;
Y : Integer; } Point { X { 100 }, Y { 200 } } Point.m Domain Model
Point.m Domain Model DSL Y DomainY.mg Domain Grammar DomainY.mg
Domain Grammar DSL X DomainX.m Domain Model DomainX.m Domain Model
DomainY.m Domain Model DomainY.m Domain Model DomainX.mg Domain
Grammar DomainX.mg Domain Grammar PointLanguage.mg Domain Grammar
PointLanguage.mg Domain Grammar MSchema MGrammar MGraph">
The "M" Language DSL "M""M" Domain-specific grammars Abstract
data model Domain-specific data models language PointLanguage {
syntax Main = h:Integer "," v:Integer => Point { X { h }, Y { v
}}; } type Point { X : Integer; Y : Integer; } Point { X { 100 }, Y
{ 200 } } Point.m Domain Model Point.m Domain Model DSL Y
DomainY.mg Domain Grammar DomainY.mg Domain Grammar DSL X DomainX.m
Domain Model DomainX.m Domain Model DomainY.m Domain Model
DomainY.m Domain Model DomainX.mg Domain Grammar DomainX.mg Domain
Grammar PointLanguage.mg Domain Grammar PointLanguage.mg Domain
Grammar MSchema MGrammar MGraph
Slide 28
M Language Example // Module: Used to scope model definitions
module Test.TimeReport { // Type: Defines employee data structure
type Employee { Id : Integer32 FirstName : Text where
value.Count