robert hogg black marble oslo, microsoft’s...
TRANSCRIPT
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