670 likes | 894 Views
Alan Smith – KnowIT Consulting. BUGS November 08 Oslo, WCF/WF, Dublin. Agenda. 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?
E N D
Alan Smith – KnowIT Consulting BUGS November 08 Oslo, WCF/WF, Dublin
Agenda • 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
About Alan Smith • 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” • 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
Repository Database • Storage for model definitions and model instances • SQL Server 2008 database • Transparent data access • Various tools can be used to query repository
Repository Database Content • 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
Types of Models • Structural Models • Model definitions • Represented by table structure • Instance Models • Model instances • Represented by data in structural model tables
Structural Models • Database structure is used to define models • The WCF artefacts are represented as tables in the repository database • Service contracts • Operation contracts • Endpoints • Bindings
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
“M” Language • 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 • 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 .netNameSpace moduleMicrosoft.BizTalk { // type is a declaration of an entity typeBizTalkGroup { Id : Integer32; Name : Text; MgmtDbServer : Text; MgmtDbDatabase : Text; } whereidentity Id; // An extent of zero or more types BizTalkGroups : BizTalkGroup*; typeBizTalkServer { Id : Integer32; Name : Text; Group : BizTalkGroup; } whereidentity Id; BizTalkServers : BizTalkServer* whereitem.GroupinBizTalkGroups; }
Compiling to “Reach” SQL • set xact_abort on; • go • begin transaction; • go • set ansi_nulls on; • go • create schema [Microsoft.BizTalk]; • go • create table [Microsoft.BizTalk].[BizTalkGroups] • ( • [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]) • ); • go • create table [Microsoft.BizTalk].[BizTalkServers] • ( • [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]) • ); • go • commit transaction; • go // module is equivalent to .netNameSpace moduleMicrosoft.BizTalk { // type is a declaration of an entity typeBizTalkGroup { Id : Integer32; Name : Text; MgmtDbServer : Text; MgmtDbDatabase : Text; } whereidentity Id; // An extend of zero or more types BizTalkGroups : BizTalkGroup*; typeBizTalkServer { Id : Integer32; Name : Text; Group : BizTalkGroup; } whereidentity Id; BizTalkServers : BizTalkServer* whereitem.GroupinBizTalkGroups; } • “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 Compile
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
IntelliPad Editing Tool • 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...
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
Quadrant Modelling Tool • 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
Oslo Architecture MSchema Quadrant Adds Structure Adds Data Repository
Demo: Modelling in Quadrant • 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...
Oslo SDK • 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
“3 Dubs” – WCF/WF & Dublin • 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)
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
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 application server • Improved REST support • Improved discovery support
Declarative Services • 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
Declarative Service Designer • Sequential Workflow designer used to model service implementation • Service is pure XAML
Learn WCF! • “Om du inteharbörjattittapå WCF eller XAML och WF dåär jag räddattsägaatt du ärtvåa just nu.” • “Primärt WCF, absolut WCF, detfinnsingenursäktkvar alls attliggakvarpånågontingannatä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 70-503 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 3rd Party Products • EpiServer • K2.net Workflow
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
Flowchart Workflow Model • Freeform workflow design model • Activities can be placed anywhere • Less restrictive than Sequential model • Flow can be routed between activities in workflow
Demo: WF 4.0 Designers • In this demo you will see: • Creating a Sequential Workflow • Creating a Flowchart Workflow
Dublin • 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
Dublin Administration Tools • Built into IIS 7 Manager