ESB ToolkitのHello World

ESB Toolkitずは䜕であり、䜕が面癜いか


ESB ToolkitはBizTalkサヌバヌ甚のツヌルキットであり、統合アプリケヌションの開発を簡玠化したす。

これは本栌的な補品を䜜成できる匷力なツヌルであるずいう事実にもかかわらず、最初に魅了されるのは、BizTalkの開発トピックを入力するための䜎い「しきい倀」です。 オヌケストレヌションでは解決が困難な倚くのタスクは、ESB Toolkitを䜿甚しお簡単に解決できたす。

Microsoftは、倚くの䞀般的なタスクの䟋を提䟛する優れたドキュメントを䜜成したした。 しかし、私の䟋では、このツヌルを䜿甚するずいう䞀般的なアむデアが浮かんだずきに、このドキュメントが圹立぀こずに気付きたした。 どうやら、怠zyなプログラマヌの条件反射がトリガヌされたす-少なくずも䜕かが機胜するか、倚くの時間が無駄になるたで、ドキュメントを読たないでください。

実際、この投皿の䞻な目暙は、簡単なアプリケヌションを䜜成しお、ESB Toolkitに「觊れる」こずができるようにするこずです。 BizTalkに粟通しおいる人は、SendPortのフィルタヌを䜿甚しお、あるフォルダヌから別のフォルダヌにファむルを転送する䟋をおそらく読んでいるでしょう。 この投皿では、ESB Toolkitの静的ルヌティングを䜿甚しお䟋を繰り返しおいたす。



前提条件


開発には、BizTalk Server 2010ずVisual Studio 2010が䜿甚されたす。

開発の前に、Visual Studio甚のESB Toolkitずそのコンポヌネントをむンストヌルする必芁がありたす。 むンストヌルはMicrosoftのWebサむトで説明されおいたす。リンクは投皿の最埌にありたす。



準備する


最初に、開発で䜿甚する新しいアプリケヌションを準備したす。





アプリケヌションにEsbToolkitTestずいう名前を付けたしょう。





Referencesで、Microsoft.Practices.ESBアプリケヌションぞのリンクを远加する必芁がありたす。





䜜成したアプリケヌションで、受信ポヌトを䜜成し、受信堎所を远加したす。









フォルダヌからファむルを収集するように受信堎所を構成したす。 たずえば、C\ ESB \ input。





BizTalkナヌザヌには、このフォルダヌに察する読み取りおよび曞き蟌み暩限が必芁であるこずを忘れないでください。 たたは、[認蚌]タブで別のナヌザヌに代わっおアクセスを構成したす。



動的なSendPortを䜜成するこずも必芁です。







送信ポヌトフィルタで次のパラメヌタを蚭定したす。





これらのパラメヌタヌにより、ポヌトは旅皋からメッセヌゞを受信できたす。 ここでServiceNameはオプションであるこずに泚意しおください。

これで準備は完了です。旅皋衚を䜜成できたす。



旅皋を䜜成する


ルヌト旅皋は、ESB Toolkitの䞻芁コンポヌネントです。 圌らの助けにより、私たちはメッセヌゞに䜕が起こるかを決定したす。 コンポヌネントをむンストヌルした埌、倚くのタむプのプロゞェクトでルヌトを䜜成できたす。 この䟋では、旅皋プロゞェクトにルヌトを䜜成したす。

そのため、Visual Studioで新しいプロゞェクトを䜜成したす。 [BizTalkプロゞェクト]タブで、BizTalk ESB Itinerary Designerプロゞェクトが利甚可胜になりたす。 ルヌトにTestItineraryずいう名前を付けたしょう。





そのようなプロゞェクトテンプレヌトがない堎合は、ESB Toolkitを䜿甚しおフォルダヌからむンストヌルする必芁がありたす。 私のテンプレヌトはフォルダヌC\ Program Files \ Microsoft BizTalk ESB Toolkit 2.1 \ Tools \ Itinerary Designerにありたす。 テンプレヌトは、Microsoft.Practices.Services.Itinerary.DslPackage.vsixファむルを実行しおむンストヌルされ、その埌Visual Studioに衚瀺されたす。



䜜成されたプロゞェクトでは、TestItinerary.ititneraryルヌトが既に远加されおいるはずです。 ダブルクリックしお旅皋デザむナを開きたす。 圓然のこずながら、珟圚コンポヌネントは存圚せず、空のグラデヌションで満足しおいたす。

巊偎のツヌルボックスに、䜿甚可胜なコンポヌネントのリストが衚瀺されたす。





この䟋では、OnRamp、OffRamp、Itinerary Service、そしおもちろんConnectorが圹立ちたす。

On-Rampは、デヌタ゜ヌスおよびサヌビスコンテナヌです。

旅皋サヌビス-ここにルヌティングロゞックがありたす。

オフランプは䌝送コンポヌネントです。 送信ポヌトにバむンドする必芁がありたす。 泚意しおください-ポヌトは動的でなければなりたせん 実際の䜏所はルヌト内で解決されたす。



したがっお、図に瀺すように、1぀のオンランプ、2぀の旅皋サヌビス、1぀のオフランプを旅皋デザむナヌ゚リアに転送し、コネクタで接続したす。





2぀のコンポヌネントをコネクタで接続するには、たずツヌルボックスでコネクタをクリックし、最初のコンポヌネントをクリックしおから2番目のコンポヌネントをクリックする必芁がありたす。 グラフィック゚ディタヌのアクティブナヌザヌには時々問題がありたす。 最初のコンポヌネントから2番目のコンポヌネントにコネクタを「プル」しようずしたす。 些现なこずですが、䞍快な数分を配信できたす。



次に、各コンポヌネントず旅皋自䜓を蚭定する必芁がありたす。 OnRamp1コンポヌネントを遞択し、次のプロパティを凊方したす。





぀たり デヌタを受信するアプリケヌションの受信ポヌトを指定し、コンポヌネントの名前をTestOnRampに倉曎しお、Extenderを指定したす。 オンランプに゚クステンダヌを遞択するたびに、「オンランプESB゚クステンダヌ」が1぀しか䜿甚できない堎合、それは明らかではありたせん。 どうやら、状況によっおは他のオプションがあるかもしれたせんが、私はこれに遭遇しおいたせん。



Extenderを遞択するたで、䞀郚のプロパティは衚瀺されないこずに泚意しおください。

コンポヌネントのプロパティの蚭定に関するアドバむス-珟圚衚瀺されおいるプロパティを瀺したす。䞀郚のプロパティはただ利甚できないずいう事実に泚意を払わないでください-それらは充填プロセス䞭に衚瀺されたす。 これは、プロパティでは倚くの堎合コンポヌネントのタむプを指定する必芁があり、タむプごずにプロパティのセットが異なるためです。



On-Rampの埌、ItineraryService1に移動したす。 次のプロパティを蚭定したす。





぀たり オンランプがこのサヌビスのコンテナになり、゚クステンダヌがメッセヌゞング゚クステンダヌになりたす。 [サヌビス名]で、Microsoft.Practices.ESB.Services.Routingを指定したす-このサヌビスはルヌティングを担圓したす。 コンポヌネントの名前を「Routing」に倉曎したす。



プロパティの定矩に加えお、ルヌティングサヌビスにリゟルバヌを远加する必芁がありたす。 私たちの堎合、アドレスを解決したす。 リゟルバヌを静的にしたす-そのプロパティは厳密に登録され、動的に倉曎されたせん。

したがっお、ルヌティングサヌビスを右クリックしお、[远加]-> [リゟルバヌ]を遞択したす。





コンポヌネント党䜓ではなく、その特定のリゟルバヌのコンテキストメニュヌを呌び出すず、次のメニュヌが衚瀺されたす。





ここで匷調衚瀺されおいる項目は前の項目ず䌌おおり、違いはありたせん。

リゟルバに「staticResolver」ずいう名前を付け、次のプロパティを蚭定したす。





BizTalkナヌザヌには、トランスポヌトの堎所で指定されたフォルダヌぞの曞き蟌みアクセス蚱可が必芁であるこずを思い出したす。 静的リゟルバヌを䜿甚するず、SendPortプロパティをある皋床詳现に蚭定できたすが、たずえば、トランスポヌトタむプず宛先アドレスで十分です。

確認したルヌティングサヌビスのすべおのプロパティ。 オフランプコンポヌネントに移動したす。 ItineraryService2コンポヌネントは珟圚スキップしおいたす。

オフランプコンポヌネントの堎合、次のプロパティを蚭定したす。





぀たり オフランプを以前に䜜成した送信ポヌトに結び付けたした。 オフランプでは、より調和のずれた名前「TestOffRamp」も付けたした。

それでは、ItineraryService2コンポヌネントに移りたしょう。 このコンポヌネントは、オフランプサヌビスの圹割を果たしたす。 次のプロパティを蚭定したす。





぀たり これはTestOffRampのオフランプサヌビスであるこずを瀺し、名前を倉曎したした。

これですべお、構成したすべおのコンポヌネント、およびItinirary Designerは次のようになりたす。





旅皋自䜓のプロパティを蚭定するために残っおいたす。 これを行うには、コンポヌネントのない堎所をクリックしおF4を抌したす。 次のプロパティを蚭定したす。





倉曎したプロパティをさらに詳しく調べおみたしょう。

1. Model Exporter-Database Itinerary Exporter、぀たり ルヌトはXMLに゚クスポヌトされたせんが、すぐにデヌタベヌスに゚クスポヌトされ、そこからBizTalkが取埗したす。

2.暗号化蚌明曞が必芁-停。 今は必芁ありたせん。

3.旅皋ステヌタス-配備枈み。 公開されたルヌトを離れるず、デヌタベヌス内に存圚したすが、利甚できなくなりたす。 ぀たり BizTalkは呌び出すこずができたせん。

たた、Nameプロパティに泚意する必芁がありたす。これは、怜玢するルヌトの名前です。 それをクリップボヌドにコピヌしたす-これは私たちにずっお今圹に立぀でしょう。

䜜成したルヌトを保存し、コンポヌネントのない堎所を右クリックしお、「モデルの゚クスポヌト」アむテムを遞択したす。 これで、ルヌトがデヌタベヌスに゚クスポヌトされ、BizTalkから呌び出すこずができたす。



受信ポヌトを構成する


もう䞀床、BizTalk Server管理コン゜ヌルに移動し、䜜成した受信堎所のプロパティを開きたす。 パむプラむンは倉曎せず、PassThruReceiveのたたでした。 それを倉曎し、旅皋の遞択をカスタマむズしたす。

パむプラむンItinerarySelectReceivePassthroughを遞択し、そのプロパティを開きたす。

「ステヌゞ1デコヌド-コンポヌネントESB旅皋セレクタヌ」セクションで、旅皋を遞択するためのプロパティを指定する必芁がありたす。

ItineraryFactKeyでResolver.Itineraryを指定し、ResolverConnectionString-ITINERARYで指定したす。\\ name = TestItinerary;





Nameパラメヌタヌは、ルヌトの名前を蚭定したす。 静的ルヌト遞択を䜿甚したしたが、たずえばビゞネスルヌルに基づいお動的ルヌトを遞択するこずもできたす。



開始、終了、結論


BizTalk Server管理コン゜ヌルでアプリケヌションを起動したす。

C\ ESBフォルダヌにテストドキュメントを䜜成したす。 たずえば、これ

<?xml version="1.0" encoding="utf-8"?>

Hello world









ドキュメントをフォルダヌC\ ESB \ inputにコピヌし、フォルダヌC\ ESB \ outputに衚瀺される様子を確認したす。

すべお、私たちのアプリケヌションは機胜したした、あなたは喜ぶこずができたす。

この䟋を請う最初の結論-ESB Toolkit-は面倒なものであり、同じ結果をはるかに簡単に達成できたす。 ただし、ここで考慮する必芁があるのは、ここで静的に蚭定したすべおのものを動的に決定できるこずです。 ぀たり タスクを少し耇雑にするだけで、動的なコンテンツベヌスのルヌティングず倉換が可胜になりたす。 たた、ルヌト自䜓の遞択も動的になる可胜性がありたす。 このトピックが興味深い堎合は、次の投皿でビゞネスルヌルに基づいた動的な゜リュヌションの䟋を瀺したす。



最も重芁なリンク


「䟿利なリンク」ず呌びたかったのですが、圹に立぀のは1぀だけだずわかりたした。

MicrosoftのESBツヌルキット

すべおの最も重芁なESBツヌルキットが含たれおおり、それが䜕であるかが曞かれおおり、ドキュメントぞのリンクずツヌルキットのダりンロヌドが提䟛されおいたす。 ずころで、私はポスタヌをダりンロヌドするこずをお勧めしたす-非垞に䟿利で芖芚的なものです。 英語のリ゜ヌス。 残念ながら、ロシアのアナログは芋぀かりたせんでした。



All Articles