Wednesday, December 26, 2007

BizTalk Custom Pipeline Components - Framework Overview Part-1

In this article I am trying to put consolidated information for developing custom pipeline components. Hope you like my efforts; frankly, there is nothing new in the article but it's all together.

Receive and Send pipeline performs below basic operations in BizTalk Solution,
- Encrypt outgoing and decrypt income message
- Handle digitally signed messages and verify them
- Validation
- Handling promotion
- Disassembling and assembling coming or processed messages.
- Wrapping header and footer into messages.

The below I have listed components and their jobs in BizTalk Solution.


Pipeline Components

Stages Employed

Tasks

General Component Decode, Encode, Pre-assemble, Resolve Party or Validate Take one message process message and produce zero or one message
Disassemble ComponentDisassemble Split message, promote custom properties
Assemble Component Assemble Used to wrap message with head or trailer or both
Probe Component This is not an independent component. Any pipeline component can implement the IProbeMessage interface if it must support message-probing functionality. Enables the component to check the beginning part of the message


To develop general pipeline component we can use following interfaces. These are coming as part of SDK and BizTalk Solution (BTS).

IBaseComponent Interface
IComponentUI Interface
IComponent Interface
IpersistPropertyBag

IBaseComponent Interface
Members Usage
Description Property. Used to specify small description about pipeline component. Description is visible on pipeline properties page at design time.
NameProperty used to specify name of pipeline component. Name is visible on pipeline properties page at design time.
VersionProperty used to specify version (example 1.0.0.0) of pipeline component. Visible on pipeline properties page at design time.

IComponentUI Interface
Members Usage
IconProperty used to provide icon associated with pipeline component.
ValidateMethod. Pipeline designer before pipeline compilation to verify that all configuration properties are correctly set calls this.

IComponent Interface
Members Usage
ExecuteMethod. Does specific processing/massaging in inbound message and produces output message to be forwarded to next stages of pipeline or message box.

IpersistPropertyBag
Members Usage
GetClassIDMethod. Retrieves the component's globally unique identifying value.
InitNewMethod. Initializes any objects needed by the component to use the persisted properties.
LoadMethod. Used to load property from property bag.
SaveMethod. Used to save property-to-property bag.

I will surly come back with more detail articles and implementation with sample code for the subject.

Thanks for visiting my blog and please send your feedback or queries to nilayparikh@gmail.com.

Cheers!
Have a nice day!

1 comment:

Anonymous said...
This comment has been removed by a blog administrator.