PDC05 - Day 4 BizTalk Futures Musings

Sitting here watching the Future Directions: Beyond BizTalk Server 2006 session at PDC05
and thought I'd share a few notes. We haven't done a ton of sessions here on BizTalk, and let Windows Workflow Foundation take the spotlight, but don't
think for a minute that BizTalk Server is going anywhere. We've got quite an exciting roadmap, as you can see from notes below ...

  • While Windows Communication Foundation (WCF) is for interoperable web services development and for distributed application
    development unified based on Enterprise Services, Remoting, ASMX, MSMQ which is delivered in the platform, BizTalk Server is
    a business process and integration server for building A to A and B to B integration and applying business process automation which
    is supported by robust management and deployment tools.
  • WCF works in concert with BizTalk for additional business process and integration server capabilities
  • Workflow and BizTalk Server
    -
    BizTalk is Microsoft's premium BPM Server for manageable, scalable apps
    -
    Windows Workflow is for a broad set of scenarios, and used to build solutions around workflow into applications
  • Windows Workflow Foundation will be absorbed ("come home") and be the core orchestration engine in BizTalk Server
  • BizTalk 2004 and BizTalk 2006 orchestration investments will be protected moving forward
  • For 2006, Windows Workflow integration with BizTalk via Windows Sharepoint Services Adapter and Web Services
  • In the next version of BizTalk (vNext), BizTalk Server will be natively built on Windows Workflow Foundation, while continuing support
    for existing orchestration technology
  • Demo of WWF with BizTalk (scenario: ASP.NET page flow)
    • Opens up ASP.NET screen that walks through ordering a phone online
    • Follows a workflow with Back and Next functions to choose a phone
    • Remembers state of data as we move Back and Next, using Windows Workflow
    • Next click actually calls into the Workflow runtime, creates an instance of the workflow, and data is queried from the Workflow
    • Based on data evaluation, Workflow tells us which page to hit next
    • Workflow itself built to have decision trees to handle various navigation scenarios
    • So, what about the actions required to do the actual back-end processing work? Do I want to build this in a Workflow that will be deployed
      with the application, put in the DMZ, and have this stored there? Do I want to host this in IIS, and if so, how does it scale and how is it fault tolerant?
    • So, at this point, have BizTalk Server own the back-end processing and hitch Workflow with BizTalk
    • BizTalk Server links together fulfillment agencies, transactional handles the process, and the process gets exposed as a web service via
      the Web Service Publishing Wizard.
    • Back in Windows Workflow, drop InvokeWebService shape, it queries UDDI and finds the BizTalk service
    • Passes the Order object over to the BizTalk web service
    • To have visibility over this, we apply a Tracking Profile on the BizTalk process, and can view the Business Activity data
      in the new BAM portal
  • Mapping is hard, and BizTalk Mapper can lead to very complex maps that are hard to manage
  • We are making changes to make this a more rich editor that scales to the most complex schemas
  • Solution Designer is a key way to see a unified view of all moving parts as a Visual Studio plug-in
  • Neat new vNext stuff (by Eddie Churchill)
    • In start menu, you have New BizTalk Solution in the BizTalk start folder
    • *.bts file is for the Solution Designer
    • Not wizard based, but provides logical assistance
    • New Port on the Incoming side, and you can configure the adapter here
    • Then can click and add new Send Port on the right Outgoing side of the project
    • Drag a line between the Send and Receive which creates a subscription between the ports
    • Throw a message type onto the subscription connection (very cool)
    • If schema node is promoted, then we can go back to Solution Designer, create a new send port and drag
      a connection. we can then add subscription criteria to this connection!
    • If I make a small change in the project, then only updates are made on deployment
    • You can "import" a port from the server to pick up new ports created by admins. Don't need to rebuild the application
      to bring this in. Connections are automatically created.
    • This isn't doing anything "new" but offers a new, easier way to do the same thing you do today
    • This tool helps you visually design and review the architecture and moving parts of a BizTalk project
    • For the Mapper, it can be cumbersome to map huge files to standard internal schemas
    • Hard to find things in a map. Clicking a "link" on a large map doesn't necessarily show you endpoints! Can minimize
      links and highlight only the one you want, dimming all the others.
    • Can automatically bring nodes into view when you click a link! Applause from the crowd.
    • Tooltips and quasi-Smart Tags pop up to help make connections with functoids without opening property windows
    • New collapsing technology for being able to get even the largest schemas viewable in a single pane with no scrolling
    • Assisted Mapping is about using intelligent algorithms to figure out what node maps to another (all with keyboard,
      no mouse). Can use Up and Down arrows on keyboard to ask for suggestions on other nodes!
    • Back in Solution Designer, similar highlighting technology and searching is applied to find and view relevant items
    • Artifact Explorer is cousin of Solution Explorer in Visual Studio. Let's you view things by artifact type (schemas, ports, routing
      clauses). Changing something here changes ALL references to it!
    • New technologies that allow for adding breakpoints within routing functions. Also things for adding BAM points at new
      locations.
  • Wow, great stuff now, and some remarkably innovations coming in the future for both developer tools, and the engine and communication
    runtime components.