This article specifically deals with exploring the
properties and methods of the Pipeline Class. However, knowledge of the WSE
architecture is important since incoming and outgoing messages pass through the
Pipeline. The input and output filters constitute the Pipeline. Details of
Pipeline class are not documented sufficiently in the WSEREF [Web Services
Enhancements Reference Document]. The author has interrogated the class members
in the preparation of this explorative tutorial. Also it may be noted that SP3
has been recently released.
Communication with messages is central to web services, and
therefore there is a strong reason to understand how messages are formed and
processed. The distributed messaging that is at the heart of interoperability,
would bring in a set of complications, such as different methods of transport;
requirements for processing messages at intermediate points etc
Pipeline
There are several contexts, in which the word pipeline is
used, such as the HTTP Pipeline, the BizTalk pipeline, the commerce server
pipeline, etc. However, in the context of WSE2.0, Pipeline refers to the
constructs involved in processing incoming and outgoing messages from a web service,
or a SOAP Node. The incoming and outgoing messages are filtered to get at the
information contained in the SOAP headers. This functionality for the
incoming/outgoing messages is handled by the input and output filters as shown
in this picture from Microsoft's WSE2.0 documentation. However, additionally
there may be several intermediaries that function both as a receiver and a
sender.

Message processing is handled by the pipeline in conjunction
with the SoapContext class. It is through the use of SoapContext the user
accesses the Filter functions. The default filters in WSE2.0 are the following:
·
Diagnostics
·
Security
·
Referral
·
Policy
·
TimeStamp
Two separate arrays of objects, SoapInputFilter and
SoapOutputFilter that filters the SOAP messages are contained in the Pipeline
class. These arrays are contained in the SoapInputFilterCollection and
SoapOutputFilterCollection classes. These filters are independently included in
the several other namespaces in WSE2.0. The orders in which the incoming
message or, the outgoing message face the filters before they get filtered are
different. Also it is possible to customize the pipeline so as to include/omit
the default filters, or add custom filters. WSE2.0 also supports ordering the
filters. These functionalities offered by the various methods cuts down the
overhead in processing messages and helps optimization. It may also be noted
that all filters are enabled by default on the web service. On the web client
such default enabling is contingent upon the client proxies deriving from the
WebServicesClientProtocol class.