Robert Hogg Black Marble OSLO, MICROSOFT’S...

Preview:

Citation preview

blackmarble

the strategic IT asset for your organisation

OSLO, MICROSOFT’S VISION FOR THE

FUTURE OF MODELING

Robert Hogg

Architect

Black Marble

blackmarble

Robert Hogg

MBCS , CEng

Senior Architect

Black Marble LTD

blackmarble

Agenda

• The “Oslo” Back Story

• 3 Dubs

• A Lap around “Oslo”

• The Repository

• M

• InteliPad

• Quadrant

blackmarble

Modeling

• A Model is used to describe an abstract

entity

• We are not discussing Mathematical

Modeling

blackmarble

the strategic IT asset for your organisation

HTTP://MODELSREMIXED.COM

blackmarble

THE “OSLO” BACK STORY

blackmarble

Oslo – October 2007

• modeling tool

• Repository database

• Process runtime

• BizTalk Server vNext

• Systems Center components

• WCF vNext

• WF vNext

• Visual Studio vNext

• Cloud based services

• Desert topping

• Floor Wax

blackmarble

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)

blackmarble

Application Development

BA

ArchitectDev

IT

Business ProcessReqs

Service Level Agreement

Application

blackmarble

Microsoft’s Vision

blackmarble

3 DUBS ( A QUICK SPIN )

blackmarble

3 Dubs

• WCF 4.0

• WF 4.0

• “Dublin” Application Server

Version Integration

.net 3.0 WCF | WF

.net 3.5 WCF + WF

.net 4.0 WCF/WF

blackmarble

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

blackmarble

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

blackmarble

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 VS10Windows Server

.NET Framework

“Dublin”

Visual

StudioOslo

WF and WCF

services

Administration Tools

Syste

m C

ente

rIIS/WAS

blackmarble

IIS/WAS

Dublin

Quadrant IIS Manager

WF and WCF Frameworks

Persistence

SQL

Persistenc

e Provider

Management APIs (PowerShell command-lets)

WF and WCF Management

Modules

Runtime DatabasesPersistence schema Monitoring schema

Monitoring

WF SQL

Tracking

Provider

WCF SQL

Tracking

Behaviors

Messaging

Forwardin

g Service

Hosting

Durable

Timer

Service

Visual Studio

WF and WCF

Project Templates

Windows Application Server Role

Model Deployment to

Dublin

Discovery

Service

Dublin adds

Dublin enhances

Windows/IIS/.NET 4.0

Scale-out &

Reliability

Discovery &

Control

Application

Monitoring

Versioning,

Partitioning,

Routing

Syste

m C

ente

rA

pp

Se

rve

r S

CO

M P

ac

k

“It just works!”

blackmarble

Dublin vs. BizTalk

BizTalk Dublin

$34,999 per proc ($8,499 Std Edn) Free

Hosts message channels and

orchestrations

Hosts services and workflows

Uses message box for highly

reliable messaging

WS-RM can be used, messages

not persisted

Fully supported for large scale

deployments

Scaled in the same way as IIS

Comprehensive management and

diagnostics tools

Basic management and

diagnostics tools

Latency can be an issue as

messages are persisted

Low latency achieved easily

blackmarble

A LAP AROUND “OSLO”

blackmarble

What is a Model?A DESCRIPTION OF A GIVEN DOMAIN

MODEL-ASSISTEDModels used to understand or manipulate code Examples: Static Structure, Sequence, …

DRAWINGSModels used to communicate with othersExamples: Dataflow, Use Case, …

MODEL-DRIVENModels executed by runtimes directlyExamples: HTML, CSS, XAML, BPEL, …

blackmarble

Model-driven Platform

COM (+)midl.exe

[Transaction]

DECLARATIVE CONTENT

TIME

.NET 1.0[YourAttributeHere]

app.config

Web Serviceswsdl:definitions

xsd:schema

.NET 3.0wf:StateMachine

wpf:ContentControl

blackmarble

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

blackmarble

Why is this happening?

TRANSPARENCYBetter understanding of your application

FLEXIBLITYFaster changes to your application

PRODUCTIVITY“More essence, less ceremony”

blackmarble

What is "Oslo"?THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS

RepositoryModel store

“Quadrant”modelling tool

“M”modelling language

blackmarble

Key "Oslo" Concepts

MODELS

TEXTUAL DSLsVISUAL DSLs

RUNTIMES

blackmarble

[Your Models]

Base Models

“M” Runtime

REPOSITORYSQL SERVER

[Your Models]

Base Models

“M” Runtime

REPOSITORYSQL SERVER

"Oslo" Architecture

RUNTIMES

[Your Runtime]

“Dublin”

ASP.NET

WF

WCF

SQL/EDM

Windows

Other ISV Runtimes

ADO .NET

XML, Custom Formats, …

“QUADRANT”

Composition

Generic Viewers

Dataflow

EDITORFRAMEWORK

[Your Visual DSL] [Your Textual DSL]

MSchema

MGrammar

MGraph

LANGUAGEFRAMEWORK

[Your Models]

.Net Models

Repository Models

REPOSITORYSQL SERVER

OTHER TOOLS

(VSTS, EXCEL, …)

XML, Custom Formats, …

blackmarble

THE REPOSITORY

blackmarble

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

blackmarble

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

blackmarble

Types of Models

• Structural Models

– Model definitions

– Represented by table structure

• Instance Models

– Model instances

– Represented by data in structural model

tables

blackmarble

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

blackmarble

Repository Database Content

• Tables in the Repository

database represent

different technologies

• Currently included:

– Common language runtime

– Windows Communication

Foundation

– Windows Workflow

Foundation

– Identity

blackmarble

System.ServiceModel partial structure

blackmarble

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

blackmarble

Federating Systems

• The repository may 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

blackmarble

Repository Summary

• 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

blackmarble

THE MODELLING LANGUAGE

blackmarble

Why “DM”?

• Interacting with Oslo content needs to be

simple and natural

• Textural based modelling language

blackmarble

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

blackmarble

The "M" Language

DSL

"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 ModelDSLY

DomainY.mg

Domain Grammar

DSLXDomainX.m

Domain Model

DomainY.m

Domain Model

DomainX.mg

Domain GrammarPointLanguage.mg

Domain Grammar

MSchema

MGrammar

MGraph

blackmarble

“M” Language Example// Module: Used to scope model definitions

module Test.TimeReport

{

// Type: Defines employee data structure

type Employee

{

Id : Integer32 = AutoNumber();

FirstName : Text where value.Count <= 100;

LastName : Text where value.Count <= 100;

} where identity (Id);

// Extent: Contains zero or more employees

Employees : Employee*;

}

MSchema is used to model data structures,

storage, views and constraints

blackmarble

Using “M” to Model a Database

• 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

// Module: Used to scope model definitions

module Test.TimeReport

{

// Type: Defines employee data structure

type Employee

{

Id : Integer32 = AutoNumber();

FirstName : Text where value.Count <= 100;

LastName : Text where value.Count <= 100;

} where identity (Id);

// Extent: Contains zero or more employees

Employees : Employee*;

}

create table

[Test.TimeReport].[Employees]

(

[Id] int not null identity,

[FirstName] nvarchar(100) not null,

[LastName] nvarchar(100) not null,

constraint [PK_Employees] primary key clustered ([Id])

);

go

Compile

blackmarble

M Tool Chain

M.exeDomain Model

Compiler

MX.exeDomain Model

Loader

ModelA.m

ModelB.m

ModelC.m ModelABC.

mx

SQL

ServerM

Framework

M

Framework

blackmarble

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

blackmarble

Learning “M”

• Oslo SDK

– Available for download

• The “Oslo” Modelling Language

– Langworthy, Lovering, Box – Addison-Wesley

• Learning MSchema will take a C#

developer about a day

blackmarble

INTELLIPAD

blackmarble

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

blackmarble

the strategic IT asset for your organisation

DEMO

Basic modelling

blackmarble

M: Visual Studio

blackmarble

QUADRANT

blackmarble

What is "Quadrant"?

• Graphical tool used for managing instance models

– Targeted at architects and business analysts

• Uses “Office Style” ribbon toolbar

– Everyone uses office

• Loads model definitions from repository database

– Allows management of instances

– Changes are saved to database immediately

blackmarble

the strategic IT asset for your organisation

DEMO

Quadrant

blackmarble

REPOSITORY

SHELL AND SURFACESERVICES COMPOSITIONENGINE

NestingSizingLayoutSnapping

"Quadrant" Architecture

Core Services

Undo/RedoCommandsDrag/DropSelectionActivationError Handling

General Services

SearchValidationAnnotationsRelationship Highlighting

DATAFLOW ENGINE

Caching,Virtualization,Change tracking, andNotification

Target Data View StateConfiguration

blackmarble

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

blackmarble

Oslo Domains

TEXTUAL DSLsVISUAL DSLs 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

blackmarble

SUMMARY

blackmarble

Summary Oslo – September 2008

• Repository Database– Built on SQL Server 2008

– Stores model definitions (structure)

– Stores model instances (data)

• “M” language– Declarative text-based modeling language

– Aimed at “curly-brace” programmers

– Can be used to define models for repository database

– ““M” is to TSQL what C is to assembly” – Don Box

• “Quadrant” modeling tool– Graphical tool used to edit model instances

– Targeted at “Business Analysts” and architects

blackmarble

What Next?Get Ready for "Oslo“Codename “Oslo” Developer Centre

msdn.microsoft.com/oslo

SDK Download

SDK Contains

Repository database

“M” modelling language (MSchema, MGrammer)

IntelliPad editor

Does not include “Quadrant”

Documentation and resources

blackmarble

Get Ready for “Oslo”Bits

Try to get the “PDC08-CSD” virtual image

Community

BoggersGuides.net

Forums

“Oslo” forum

“Dublin” forum

Use “Oslo” today

Use “M” to model a database!

MGrammar

Language for creating textual DSLs

Specification will be released under OSP

Recommended