Blogger :
Sam Gentile
All posts :
All posts by Sam Gentile
Category :
WCF LOB
Blogged date : 2007 Oct 29
Day 2 of the course. Discovered Twitter last night but having problems with my account (currently cannot log in and can't reset password) so here goes. Last night, had a great dinner with Tim Rayburn and a bunch of BizTalk MVPs. Lots of great discussions. Aaron has been shuttling me around with Jon and Matt, so I am getting to spend great quality time with the Pluralsight guys. This course rocks BTW and I would highly recomend it!
-
Today, we start with What's New in BizTalk Server R2. I have to get much deeper in BizTalk so this is going to be great!
-
I am really excited anout the new WCF Adapters - should make writing adapters much easier and standard
-
EDI baked into R2 will help a lot of my customers - huge in health care I have noticed, HIPAA
-
WCF is Microsoft's distributed computing technology
-
Similar to SOAP Adapter in 2004/2006 although WCF Adapter can run in-proc and get new protocols (TCP, Named Pipes, MSMQ) + WS-*
-
EDI is a core feature of R2, no more Covast needed
-
Support for both X12 and EDIFACT
-
EDI never goes away!! We all want it to be "XML"
-
Supplants HIPAA accelerator
-
Over 8,000 EDI schemas (4.39 GB unpacked!!)
-
Drummond Group certified AS2 (HTTP EDIINT)
-
Implemented in the Pipeline - no Adapters
-
EDI screens look scary :) Man, there is a lot of stuff!
-
BAM = distributed infrastructure for declarative extraction of business/operational data
-
Interceptors/API allow data extract
-
Tools for viewing and Alerts
-
Two new BAM Interceptors for WCF/WF
-
They don't require code - config
-
Enables declarative end-to-end business level tracking
-
WCF LOB Adapter Pack - LOB Adapters built on new framework
-
In other words Adapter != BizTalk Server
-
Its callable via WCF Binding from anywhere - Adapter pattern to LOB based systen
-
Custom WCF binding
-
SAP, Oracle, Siebel, TIBCO
-
Can plug into R2, will ship as a separate SKU
-
WCF LOB Adapter SDK
-
BizTalk RFID - stand alone product that is not dependent on any part of BizTalk Server 2006
-
Includes Rules Engine component and various ways to connect
-
Aaron is diving into WCF Adapters
-
BizTalk has had Web Service support; just hasn't been that good; WSE3 support via
Jesus Rodriguez who just sat next to me
-
With WCF Adapters, can have "Services" with R2 and have BizTalk be a host!!!
-
"Modern SOA" - offers full integration with WCF Runtime
-
BizTalk will store WCF config info in the SSO db
-
We're on the "RPC Intrerface" and REST thing again in discussion of WCF.................oh joy
-
At least, we are using the Message class...
-
Message GenericOperation(Message inputMessage);
-
BizTalk uses this mechanism:
?using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Channels;
namespace GenericService
{
[ServiceContract]
public interface IService1
{
[OperationContract(Action="*", ReplyAction="*")]
Message GenericOperation(Message inputMessage);
}
}
?using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace GenericService
{
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class Service1 : IService1
{
#region IService1 Members
public System.ServiceModel.Channels.Message GenericOperation(System.ServiceModel.Channels.Message inputMessage)
{
return inputMessage;
}
#endregion
}
}
-
Freaking Twitter still won't reset my password correctly (: Its way behind, now I have requests for resets stacked up, crap...
-
Wow! Not one line of code to create and host a WCF Service in BizTalk (over Named Pipe too) - Create send/receive port, select WCF Adapter as transport, configure adapter to control WCF settings (GUI) and presto!
-
BizTalk R2 seems much easier and better host than IIS.... not same scenarios obviously....
-
Can host WCF Adapters in-proc or out of proc
-
Looks like
Glenn Block is heading over here for lunch...cool
-
No metadata because they are using generic contracts - receive locations inherently untyped - ok for some scenarios
-
Use WCF Service Publishing Wizard to provide metadata
-
I'll need to run through these scenarios ASAP....
-
Also a command line version
-
Security tab - Security "mode" is a required setting
-
WCF-Custom and WCF-CustomIsolated allow you to really party...
-
Lunch!
-
YES! Jon is going to show how to use Astoria from BizTalk so we can have REST interface!
-
EDM Designer of Northwind... Add WCF Service
-
Don't need Service Contract.....
public class Northwind : WebDataService<NorthwindEntities>
-
change svc file and browse it - aspNetCompatabilityMode = true
-
View it and boom! Automatic REST interface to our data model!
-
-
-
-
Very natural - why we like REST - also have formatting for JSON, RSS
-
DataServiceHost built on top of ServiceHost
-
Now BizTalk | Send Port | WCF Custom
-
-
and use webHttpBinding
-
Why won't this work in BizTalk? The Web Get/Invoke attributes...can't go into predefined BizTalk contracts
-
Could go into CustomBindingElement under WCF-Custom Transport
-
Create own behavior - HttpVerbElement - GET
-
Got a BizTalk endpoint that can call out to Astoria REST service
-
Create Receive Location net.tcp://localhost:9898/DoingGet
-
Create Send Port
-
Create console client ....
[ServiceContract}
public interface IUsingGet {
[OperationContract(Action="*", ReplyAction="*")]
Message Get(Message inMsg);
}
NetTcpBinding b = new NetTcpBinding();
ChannelFactory<IUsingGet> cf = new ChannelFactory<IUsingGet>(b, ea);
cf.Open();
Message inMsg = Message.CreateMessage(MessageVersion.Default, "*", "Here is the message you will ignore");
IUsingGet c = cf.CreateChannel();
Message response = c.Get(inMsg);
Console.WriteLine(response.GetReaderAtBodyContents()).ReadOuterXml(());
-- Tell Encoder to not look for SOAP
Whoo! Nice!
-
Jon has a HttpVerbBehavior
-
BizTalk RFID... RFID is poster child for enterprise connectivity...replacement for barcodes
-
The pain of RFID... h/w adoption blockers, s/w adoption blockers, h/w s/w/ automation, "scary technology"
-
Scenarios: Cattle tracking?
-
-
BizTalk RFID is separate product - "middleware"
-
Server and app services for interacting with devices and tag reads
-
Management tools for devices and RFID business processes
-
API for interacting with devices
-
Last part of course - WCF and WF BAM Integration
-
Almost all applications need business visibility
-
Data warehouse is generally the final keeper of this data
-
In a SOA world hardfer to coordinate
-
BAM is a distributed infrastructure for declarative extraction of business data
-
Includes tools for defining data extraction
-
Interceptors and API to allow data to be extracted
-
Interceptors enable aspect-oriented, hot-swappable tracking profiles
-
Services for collection and aggregation
-
Tools for viewing data
-
Alert capability
-
BAM Actvivity = named set of related data collection points
-
checkpoint - the atom of a BAM activity
-
R2 - BAM stuff now works with Office2007
-
Workflow Foundation Interceptor
-
IC is converted into Workflow TrackingProfile object
-
Operations from IC map to workflow, activity & user track point
-
End of day: Jon is going to do a crazy demo - there is no WF inside BizTalk yet despite 2 versions (06 and 06R2)
-
WF needs a host too
-
XLANG not the future
-
So Jon developed a sample with some WF team members - SDK in a few weeks
-
Workflow Library project for hosting WF workflows inside of BizTalk Server
-
using DataContracts as the messaging metadata
-
BTSReceive and BTSSend
-
Contract property - IServiceContract, pick method, and data bind to a field
-
Has to be signed and GAC'd to be run in BizTalk
-
Right click - Generate Orchestration
-
Generates BizTalk project with schemas based on WCF Contracts
-
Orchestration is generated automatically
-
Orchestration is the flow, workflow is the processing
-
Right Click - Deploy
-
Now can find Orchestration in BizTalk and pick Host and Port
-
Start
-
Add a Client project
-
Add endpoint address and binding
-
Call
-
Cool! Will be an SDK sample