Alan Smith – KnowIT Consulting
Oslo
Repository Database
“M” Language
“Quadrant” modelling tool
“3 Dubs”
Windows Communication Foundation 4.0
Windows Workflow Foundation 4.0
Dublin Application Server
How will this affect BizTalk?
Dublin and BizTalk
Connected Systems Consultant – KnowIT
Developer, Trainer, Mentor, Evangelist
MVP – “Connected Systems Developer”
Former MVP for BizTalk Server
Microsoft Connected Technology Advisor
Strong contacts with CSD development team in Redmond bloggersguides.net
Connected Systems community portal
Bloggers Guide to Connected Systems
Bloggers Guide to BizTalk
Webcasts & Articles bloggersguidetobiztalk@gmail.com
Community email address, feel free to bug me with questions!
Connected Systems Division (CSD)
One of the largest divisions in Microsoft
“Connected Systems” products and technologies
BizTalk Server
WCF/WF 4.0
Codename “Dublin”
Codename “Oslo”
Windows Azure
Current Connected Systems Story
.net 3.5
WCF
○ Foundation for developing connected applications
WF
○ Foundation for developing workflow based applications
BizTalk Server 2006 R2
○
○
Integration Server
○
○
Messaging Engine
Orchestration Engine
Trading Partner Management
EDI
○ Adapters
Emerging Connected Systems
Technologies
Oslo
Modeling platform
Repository database, graphical editor, modeling language
WCF/WF 4.0
Tighter integration between WCF and WF
Ability to create declarative services
Major changes in WF class library
Great improvements in XAML support
Improved activity designers
Dublin
Application server
Host for WCF Services and WF Workflows
Azure
Windows “in the cloud”
Provides a number of services hosted by Microsoft
BizTalk Server 2009
Integration Server
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
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
Can be used to define models for repository database
“Quadrant” modeling tool
Graphical tool used to edit model instances
Targeted at “Business Analysts” and architects
Storage for model definitions and model instances
SQL Server 2008 database
Transparent data access
Various tools can be used to query repository
Tables in the Repository database represent different technologies
Currently included:
Common language runtime
Windows Communication
Foundation
Windows Workflow
Foundation
Identity
Future technologies will be
“Schematized”
BizTalk Server
Structural Models
Model definitions
Represented by table structure
Instance Models
Model instances
Represented by data in structural model tables
Database structure is used to define models
The WCF artefacts are represented as tables in the repository database
Service contracts
Operation contracts
Endpoints
Bindings
System.ServiceModel partial structure
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
Textural based modelling language
Aimed at “Curly-brace” programmers
“Because graphical tools slow us down.” – Don
Box
Different types of “M”
MSchema – Used to define database schemas
MGrammar – Used to define domian specific languages
MService – Used to define service implementations
Using “M” to Model BizTalk Server
// module is equivalent to .net NameSpace module Microsoft.BizTalk
{
// type is a declaration of an entity type BizTalkGroup
{
Id : Integer32;
Name : Text;
MgmtDbServer : Text;
MgmtDbDatabase : Text;
} where identity Id;
// An extent of zero or more types
BizTalkGroups : BizTalkGroup*; type BizTalkServer
{
Id : Integer32;
Name : Text;
Group : BizTalkGroup;
} where identity Id;
BizTalkServers : BizTalkServer* where item .Group
in BizTalkGroups;
}
MSchema is used to model data structures, storage, views and constraints
BizTalk artefacts are
“Schematized”
“M” code is compiled to a module
Module is imported into repository database
}
// module is equivalent to .net NameSpace module Microsoft.BizTalk
{
// type is a declaration of an entity type BizTalkGroup
{
Id : Integer32;
Name : Text;
MgmtDbServer : Text;
MgmtDbDatabase : Text;
} where identity Id;
// An extend of zero or more types
BizTalkGroups : BizTalkGroup*; type BizTalkServer
{
Id : Integer32;
Name : Text;
Group : BizTalkGroup;
} where identity Id;
BizTalkServers : BizTalkServer* where item .Group
in BizTalkGroups;
Compile set xact_abort on; go begin transaction; go set ansi_nulls on; go create schema [Microsoft.BizTalk]; go create table [Microsoft.BizTalk].[BizTalkGroups]
(
); go
[Id] int not null,
[MgmtDbDatabase] nvarchar(max) not null,
[MgmtDbServer] nvarchar(max) not null,
[Name] nvarchar(max) not null, constraint [PK_BizTalkGroups] primary key clustered ([Id]) create table [Microsoft.BizTalk].[BizTalkServers]
(
); go
[Id] int not null,
[Group] int not null,
[Name] nvarchar(max) not null, constraint [PK_BizTalkServers] primary key clustered ([Id]), constraint
[FK_BizTalkServers_Group_Microsoft.BizTalk_BizTalkGroups] foreign key ([Group]) references
[Microsoft.BizTalk].[BizTalkGroups] ([Id]) commit transaction; go
“M” models can be compiled to TSQL
““M” is to TSQL what C is to assembly” – Don Box
TSQL can be used to create repository structure or standard database structure
Repository TSQL is more complex
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
Modelling data in IntelliPad
TSQL code is created instantly
Visual Studio – Oslo “M” Project
Template
“M” data models can be developed in
Visual Studio
Projects are better structured
Source control integration
Visual Studio can build projects
More suitable for larger projects
Repository “M” Source code
Product.mproj in Oslo SDK
Contains “M” models used to create repository structure
Demo: Modelling BizTalk Server using “M”
In this demo you will see
IntelliPad text editor
Basic “M” syntax
Generating TSQL
Compiling “M” to a module
Importing content into Repository database
My Opinions on the Repository
Database
Camelot!
Camelot!
Camelot!
It’s only a model
The Repository Contains Models
Alan's opinion...
The repository database contains models
Models can be structural (tables)
Models can be instances (data)
I could be wrong though...
The Repository Contains Models
Alan's opinion...
Runtime configuration information will not be stored in the repository
○ Applications will be modelled in the repository database
○ The repository models will be used to create running applications
○ Running applications will have their own runtime database
○ The runtime database structure may well mirror the repository structure
I could be wrong though...
The Repository Contains Models
Alan's opinion...
Business data will not be stored in the repository
○
○
Business models will be defined in “M”
The “M” models will be used to add the business model definition to the repository
○
○
○
These models will be used to help design applications
On deployment, the business data will have it’s own database
The “M” models could be used to create the application database structure
I could be wrong though...
Oslo SDK
Available for download
The “Oslo” Modelling Language
Langworthy, Lovering, Box – Addison-Wesley
Learning MSchema will take a C# developer about a day
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
MSchema Quadrant
1
2
Repository
Value
Info
In this demo you will see:
Using Quadrant to model a runtime environment
Using Quadrant to design a service contract
Quadrant workflow designer
Publishing an application to the Dublin application server
Possible Future Oslo Scenario:
Modelling a BizTalk Environment in Oslo
Design
Use Quadrant to model production environment
Groups, Servers, Hosts and Host Instances can be modelled
Model is stored in repository database
Deployment
Quadrant model can be used to create production environment
Virtualization could make this easy
Note, this is just a possible scenario...
Available now
msdn.microsoft.com/oslo
SDK Contains
Repository database
“M” modeling language (MSchema,
MGrammar)
IntelliPad editor
Does not include “Quadrant”
Quadrant is available on the PDC08-CSD virtual PC image
Windows Communication Foundation (WCF)
Unified communications foundation
Windows Workflow Foundation (WF)
Foundation for developing workflow based applications
Dublin
Application server extensions for IIS7
Communication & Workflow
Foundations
Windows Communication Foundation 4.0
Windows Workflow Foundation 4.0
Closely integrated in .net 4.0
“WCF/WF” can be considered as one technology
Extended use of eXtensible Application
Markup Language (XAML)
.net Version
3.0
3.5
4.0
Integration
WCF | WF
WCF + WF
WCF/WF
eXtensible Application Markup
Language (XAML)
Used in .net 3.0/3.5
WPF uses XAML to define user interfaces
WF uses XAML to define Workflows
Use in .net 4.0
Extended support in WF
Used in WCF for declarative services
Windows Communication Foundation
Unified communication framework
More than just SOA
Extensive functionality
One to rule them all
Very extensible
Challenging to develop with
“WCF is too complex for the average developer.” – Various sources
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 application server
Improved REST support
Improved discovery support
WCF Services can be declared entirely in
XAML
Services are implemented using workflow designer
XAML can be stored as a file or in a database
No code required
No compilation required
Sequential
Workflow designer used to model service implementation
Service is pure
XAML
“Om du inte har börjat titta på WCF eller XAML och
WF då är jag rädd att säga att du är tvåa just nu.”
“Primärt WCF, absolut WCF, det finns ingen ursäkt kvar alls att ligga kvar på någonting annat än WCF just nu.”
Johan Lindfors – Microsoft (MSDN Radio)
Resources
Learning WCF: A Hands-on Guide – Michele Bustamente
QuickLearn 3 day WCF Course - Hosted at Informator early 2009
Exam 70503 TS: “Microsoft .NET Framework 3.5 –
Windows Communication Foundation Application
Development”
Demo: Service Broker
Implementation
In this demo you will see:
Building standard WCF services
Building declarative WCF services
Windows Workflow Foundation
Workflow foundation technology
WF is a foundation, not a product
Used in Microsoft Server products
Windows SharePoint Services 3.0
Microsoft Office SharePoint Server 2007
Microsoft Speech Server
Not used in BizTalk Server!
Will not be used in BizTalk Server!
Used in 3 rd Party Products
EpiServer
K2.net Workflow
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
Freeform workflow design model
Activities can be placed anywhere
Less restrictive than Sequential model
Flow can be routed between activities in workflow
In this demo you will see:
Creating a Sequential Workflow
Creating a Flowchart Workflow
Application Server
Add in for IIS7 & WAS in Windows Server 2008
Will probably be free to license
Features
Host for WCF 4.0 services
Host for WF 4.0 workflows
Basic service and workflow tracking (CTP version)
Management tools hosted in IIS manager
Built into IIS 7 Manager
Service and Workflow Configuration
Persistence Store
SQL Server database for persisted instances
Workflows and declarative workflow based services can persist
Throttling
Maximum concurrent calls, instances and sessions can be configured
Tracking
SQL Server database used for tracking
Service and workflow execution can be tracked
Options to track user data
Security
Certificate configuration
Service and Workflow Configuration
Service and Workflow Management
Persisted workflow management
Instances can be resumed or terminated
Application export and import
Export from dev
Import to test or production
Service and Workflow Management
Service and Workflow Management
Demo: Dublin Management Tools
In this demo you will see:
Dublin configuration wizard
Dublin management tools
Dublin service configuration
Viewing and managing service instances
“DublinER” error reporting tool
Will {insert product} Replace BizTalk?
Windows Workflow Foundation
Offers similar functionality to BizTalk Orchestrations
Free to use
Closer to .net than BizTalk Server
Users can create custom activities
SQL Server Integration Services
Features adapters and pipelines
Very performant ETL processing
Included in SQL 2005 licence
Dublin
Application server hosting WCF/WF services
Adds to functionality of IIS7
Will probably be free to use
Reliability
Highly reliable messaging
Highly reliable orchestration engine
Scalability
Easily sailable to large environment
Management Tools
Central management console for server group
Integration specific features
More comprehensive range of adapters
Strong EDI, Swift, HIPPA support
BAM
Trading partner management
Price
Very competitive in integration space
Standard edition for $8,499 (65,000 SEK)
Heavy ELT Data Integration
BizTalk is more suited to many small messages than very large batches
ETL can work in BizTalk, but performance is not optimal
Low-Latency SOA Solutions
Multiple message box hops make latency an issue
User interfaces scenarios are always an issue
BizTalk can be tuned to reduce latency
Human Workflow Services
Introduced in BizTalk Server 2004
Far too complex to justify implementation
Even Microsoft BizTalk sales people said “Use something else for human workflow...”
Windows Workflow Foundation
Announced in 2005
“WWF will replace BizTalk Orchestration Engine”
○ Not true
Development History
Included in .net 3.0
Improved in .net 3.5
Re-written in .net 4.0
Current usage
Not gained traction amongst developers
Re-write in .net 4.0 will affect 3.5 adoption
Most used for human workflow scenarios in
SharePoint projects
SQL Server Integration Services
Included in SQL Server 2005
Re-write of Data Transform Services (DTS)
Adapters & Pipelines
FTP adapter
SSIS Pipeline
Outperforms BizTalk for ETL operations
Recommended to use instead of BizTalk
Often used for ETL tasks in BizTalk projects
Expected 2010 release
No date confirmed
“3 months after Visual Studio 2010”
Free add-in for IIS7
Simple Functionality
Basic management tools
More challenging to scale
Messages and processes not “highly reliable”
Low Latency
Messages are not persisted in data store
BizTalk Dublin
$34,999 per proc ($8,499 Std Edn) Possible included in Windows Server 2008
License
Hosts message channels and orchestrations Hosts services and workflows
Uses message box for highly reliable messaging
Comprehensive range of receive endpoints
(HTTP, TCP, File, FTP, MSMQ, MQSeries,
POP3 etc.)
WS-RM can be used, messages not persisted
Limited receive endpoints
Fully supported for large scale deployments Some scalability is available
Basic management and diagnostics tools Comprehensive management and diagnostics tools
Tried and tested extensively in large scale deployments
Supports broad range of LOB applications
(EDI, Swift, HIPPA)
Latency can be an issue as messages are persisted
Currently “Pre-Alpha”
Not a supported scenario
Low latency achieved easily
Portal application needs to provide users with low latency response from LOB system
Low latency achieved
BizTalk Adapter Pack costs $5,000
Not much price difference with BizTalk Standard
Edition
MOSS HTTP Dublin SAP Adapter SAP
Projects use more that one Technology
Human workflow based integration
WF can be used in MOSS
BizTalk can handle integration aspects
Integration with some ETL tasks
SSIS used for ETL “heavy lifting”
BizTalk used for messages based integration
SOA Based Integration
BizTalk used where reliability is required
Dublin used where low-latency is required
BloggersGuides.net
Bloggers Guide to Connected Systems
Webcasts and Articles
Codename “Oslo” Developer Centre
msdn.microsoft.com/oslo
SDK Download
Documentation and resources
Forums
“Oslo” forum
“Dublin” forum
Questions in Session
Outside for questions and discussions
bloggersguidetobiztalk@gmail.com
Community email address, feel free to bug me with questions!