.NETCompute ノードのサンプルは、C# で記述されたコードを使用して、メッセージのフィルター、変更、および変換を行います。 Windows ブローカーで .NETCompute ノードを使用して、出力メッセージの構成および Microsoft .NET Framework (.NET) またはコンポーネント・オブジェクト・モデル (COM) アプリケーションとの相互作用を行えます。
このサンプルは、コードが C# で記述され、Microsoft Visual Studio 2010 を使用してアセンブリー (拡張子は .dll) にビルドされた .NETCompute ノードを使用します。 WebSphere Message Broker はテンプレートを Microsoft Visual Studio にインストールします。 Microsoft Visual Studio では、フロー開発者が独自のコードを追加できる基本的な Evaluate メソッド構造が提供されています。 これは、Compute ノード、JavaCompute ノード、PHPCompute ノードと類似した概念です。 このサンプルの読者が Microsoft Visual Studio インストール済み環境へのアクセスを持っていない場合があるため、ビルド済みのアセンブリー・ファイルが提供されています。 つまり、Microsoft Visual Studio がなくても、サンプルをデプロイし、実行できます。 トピック『.NETCompute ノードのサンプルのデプロイメントの準備』では、アセンブリー・ファイルが置かれている場所とその使用方法について説明されています。 サンプルでは、C# ソース・コード (ここを参照) も提供されています。
ある小売会社はある都市の中の別々の場所にいくつかの店舗を持っています。 店舗は一日中、売買取引を行います。 各取引は、XML メッセージとして中央の IT オフィスの入力キューに送られます。 また、店舗は顧客ロイヤルティー・プログラムの提供も行っています。 顧客がロイヤルティー・プログラムに登録するたびに、XML メッセージが別の形式 (顧客の個人情報を含む) で同じ入力キューに送信されます。 会社は WebSphere Message Broker を使用して、これらのメッセージを処理することを決定しました。 このソリューションで使用されるルーティングおよび変換により、.NETCompute ノードの機能が示されます。
使用されるメッセージ・フローは次のとおりです。
メッセージはメッセージ・フローを以下のように移動していきます。
以下のセクションでは、2 つの別個の種類の入力テスト XML メッセージ (SaleEnvelope および LoyaltyProgram) の例が示されています。 出力メッセージは、『サンプルの実行』セクションに含まれています。
<SaleEnvelope> <Header> <SaleListCount>1</SaleListCount> </Header> <SaleList> <Invoice><Initial>K</Initial> <Initial>A</Initial> <Surname>Braithwaite</Surname> <Item><Code>00</Code> <Code>01</Code> <Code>02</Code> <Description>Twister</Description> <Category>Games</Category> <Price>00.30</Price> <Quantity>01</Quantity> </Item> <Item> <Code>02</Code> <Code>03</Code> <Code>01</Code> <Description>The Times Newspaper</Description> <Category>Books and Media</Category> <Price>00.20</Price> <Quantity>01</Quantity> </Item> <Balance>00.50</Balance> <Currency>Sterling</Currency> </Invoice> <Invoice> <Initial>T</Initial> <Initial>J</Initial> <Surname>Dunnwin</Surname> <Item> <Code>04</Code> <Code>05</Code> <Code>01</Code> <Description>The Origin of Species</Description> <Category>Books and Media</Category> <Price>22.34</Price> <Quantity>02</Quantity> </Item> <Item> <Code>06</Code> <Code>07</Code> <Code>01</Code> <Description>Microscope</Description> <Category>Miscellaneous</Category> <Price>36.20</Price> <Quantity>01</Quantity> </Item> <Balance>81.84</Balance> <Currency>Euros</Currency> </Invoice> </SaleList> <Trailer> <CompletionTime>12.00.00</CompletionTime> </Trailer> </SaleEnvelope>
<LoyaltyProgram xmlns:applicant="http://www.example.org/applicant" xmlns:store="http://www.example.org/store"> <applicant:ApplicantDetails> <applicant:FirstName>Ben</applicant:FirstName> <applicant:LastName>Thompson</applicant:LastName> <applicant:HouseNo>1</applicant:HouseNo> <applicant:Street>Happiness Avenue</applicant:Street> <applicant:Town>Grumpyville</applicant:Town> </applicant:ApplicantDetails> <store:StoreDetails> <store:StoreID>001</store:StoreID> </store:StoreDetails> </LoyaltyProgram>
このサンプルをインポートしてデプロイすると、以下のサンプルの実行の項の手順に従ってサンプルを実行できます。