.NET Enterprise ServersのXML度を探る

BizTalk Server 2000

 .NET Enterprise Serverの中で、現在のところXML機能の中心にあるのが、「BizTalk Server 2000」(以下BizTalk Server)だ。これは、現段階での.NET Enterprise ServersのXML機能の役割の中心が、BtoBの実現にあることを示しているといえる(今後はもっとあらゆる機能のためにXMLが使われることになるのだろうが)。

 BizTalk Serverは、ほかのサイトとXML文書を交換することでBtoBを実現する機能を備えたサーバである。その機能は、XML文書を取引先とやりとりするための文書フローの定義などを行う「BizTalkオーケストレーション・サービス」と、データをXML文書に変換したり、フォーマットのチェックなどを行う「BizTalkメッセージング・サービス」の2つに分けることができる。

■BizTalkオーケストレーション・サービス

ビジネスプロセスの例
1つの取引を終わらせるまでに、さまざまな情報交換を繰り返さなければならない

 BtoBを実現するには、他社と取引のための情報を何度も交換しなければならない。例えば、何か注文をしたいときには、相手が提供しているカタログを入手して、注文したい製品が提供されているかどうかを確認する。製品が見つかったら、見積もり依頼を出して見積書をもらい、価格の折り合いがつけば、注文書を送付する。さらに、注文が確実に届いたか確認できたら、納期を知らせてもらい、納期までに注文の品が届けば納品書を送り返す。もちろん、こうしたやりとりに、複数の企業がかかわることもあるだろう。

 BtoBの分野では一般に、こうした取引に関連する一連の社内/社外の動作を「ビジネスプロセス」と呼んでいる。BtoBを実現するためには、注文、納品、出荷指示、信用確認などさまざまな場面に対してビジネスプロセスを設定しなければならない。もちろん、こうしたビジネスプロセスは1社のみで決められるものではなく、BtoBに参加する企業間で合意され、実装されている必要があるわけだ。

 と同時に、ビジネスプロセスのさまざまな場面ごとで、システムの連携が必要だ。社内の在庫管理や出納管理などのサーバとの連携、社外の取引先との受発注関連のサーバとのやりとりなどである。

■ビジネスプロセスの標準化
ビジネスプロセスの標準化はBtoBのカギを握るという意味で非常に重要であり、さまざまな組織が取り組んでいる。代表的なのは、情報機器メーカーや電子部品メーカーが集まるRosettaNetや、OASISと国連が連携して取り組んでいるebXMLなどだ。RosettaNetは、すでに標準化を終えたビジネスプロセスを利用してのBtoBを開始している。BizTalk ServerにRosettaNetのビジネスプロセスを実装して、BtoBを実現している企業もあるという。

マイクロソフトも、もちろんこうしたビジネスプロセスの標準化にいくつかの業界を巻き込んで取り組んでおり、WebサイトのBizTalk.orgでその動向を公開している。 日本語版のBizTalk.orgもある。

 BizTalkオーケストレーション・サービスとは、このビジネスプロセスを設定することと、さまざまなサーバとの連携をすることの両方を担う。つまりビジネスプロセスを「実行」するのがこのサービスの役割だ。

 そして、BizTalkオーケストレーション・サービスを実現するためのコンポーネントとして用意されているのが、「BizTalkオーケストレーションエンジン」である。これはビジネスプロセスを実行する2つの機能を持つ。

 1つ目の機能は、「BizTalkオーケストレーションデザイナー」による、ビジネスプロセスの定義機能だ。BizTalkオーケストレーションデザイナーは、フローチャートを描くような方法で、ビジネスプロセスをビジュアルに定義できる。BizTalk Serverが、どのアプリケーションやサービスと連携し、そのときどのような動作を行うのか、その後の処理の分岐や結合、繰り返し、待ち合わせなどのロジックを定義する。そして、定義された内容は「XLANG」と呼ばれるBizTalk独自のXML文書形式のスクリプトとして吐き出され、それをBizTalkオーケストレーションエンジンが解釈、ビジネスプロセスが実行されることになる。

 もう1つの機能は、COMコンポーネントの呼び出し、MSMQ(Microsoft Message Queue Server)との連携、SOAPを通じた外部のアプリケーションやサービスとのやりとりなど、ほかのサーバやシステムとの連携機能だ。ビジネスプロセスの実行の途中では、社内/社外のサーバと、情報のやりとりなどのさまざまな連携が発生する。BizTalkオーケストレーションエンジンは、そのためのインターフェイスを備えている。

BizTalkオーケストレーションデザイナーの画面 (クリックすると拡大します)
Visioをベースにしており、ビジネスプロセスの定義と実装をグラフィカルに設定する。コンポーネントやサービスの実装と、それらを結びつけるロジックを分離できる

■BizTalkメッセージング・サービス

 前述したBizTalkオーケストレーション・サービスがビジネスプロセスの実行を処理する機能を備えているのに対し、BizTalkメッセージングサービスは、企業内/外とのデータ交換を実行するための機能を備える。具体的には、データの定義、変換、送信、受信に関連した処理だ。

BizTalk Serverのアーキテクチャ
XMLのストアにはSQL Serverを利用。外部とのやり取りの方法を設定し、行うのが「BizTalkメッセージング・サービス」になる

■SOAPとは?
BtoBでの情報のやりとりを、いわゆる企業間にまたがるワークフローだと考えるとき、そこには必ず、文書をどこにどうやって届けるのか、という文書の経路情報が必要になる。SOAPは、XML文書などが格納されるメッセージボディに、経路情報などの付加情報を書き込むためのエンベロープという領域を提供する。そのため、XMLベースでBtoBを行うのに非常に適したプロトコルである。

ちなみに、BizTalk ServerとSQL Serverなど、.NET Enterprise Server同士の連携にはSOAPは使われておらず、COMやOLE DBなどが使われている。

 社外とのやりとりのほとんどの場面では、通信プロトコルにHTTPやSMTPなどが使われることになる。しかしBizTalk Server自身は、HTTPやSMTPによる通信機能は備えておらず、そうした通信機能はInternet Information Server(IIS)やExchange Serverと連携して行う。例えばSOAPをHTTPにのせて外部と情報をやり取りする場合には、情報をSOAP化するところはBizTalkが、その後HTTPで送信するところはIISが担当する。

 どういった場面でどのサーバと連携して、どのプロトコルを利用するのか、という定義はあらかじめ「BizTalk管理デスク」で定義しておくことになる。外部とのやりとりは、主にSOAPをIIS経由でHTTPもしくはHTTP/Sで行うことが多いと思われるが、SOAPをSMTPによって送信することもできる。また、特定のフォルダなどにファイルを置いておき、読み込んでもらうような、いわゆるファイル渡し方式も可能だ。前述したように、MSMQやDCOM経由でも可能である。

 情報交換に利用するドキュメントの定義は、「BizTalkエディター」で行う。もちろん、生成されるのはXML文書の形式になるためXMLの形式を扱えることはもちろんだが、EDI形式のほか、フラットファイルやCSV形式のドキュメントも扱うことができる。

 「BizTalkマッパー」は、BizTalkエディターなどで作成されたXML文書を変換するための機能を提供する。他社から送られてきたXML形式の文書を、自社内の形式に整形したり、自社内の文書でも、必要な個所だけを抜き出して特定の部門に転送する、といったことが可能だ。

 変換には基本的にはXMLに関連したXSLTの技術を利用しているが、「Functoids(ファンクトイド)」と呼ばれる独自の拡張機能を備えている。Functoidsは、XSLTのスタイルシートや関数以外にスクリプトを実行する機能であるため、XML文書中の値に対して計算をしたうえで書き換えたりと、高度な変換を実現する。XSLT機能を提供するのは、マイクロソフトのXMLパーサ「MSXML」というモジュール。これはInternet Explorerでも利用可能な、同社共通のXMLパーサだ。

 BizTalkには、ここで扱われるすべてのXML文書を格納し、またメッセージのやりとりをトラッキングする機能もある。メッセージの信頼性確保には不可欠な機能だ。データの格納にはSQL Server 2000が使われており、XML文書はTEXT型として丸ごと格納されている。

BizTalkマッパーの画面 (クリックすると拡大します)
取り引き企業ごとにXML文書の形式が変わったとしても、BizTalkマッパーを利用して形式を変換。統一したフォーマットにすることができる。ここで設定した変換マップは、XSLTに変換される

「SQL Server 2000」

Index
.NET Enterprise ServersとXMLの関係
  各サーバのXML機能概要
BizTalk Server 2000
BizTalkオーケストレーション・サービス
BizTalkメッセージング・サービス
  SQL Server 2000
FOR XML句
XMLビュー
URLクエリ
OpenXML
  Exchange、Commerce、そのほかのサーバ
Exchange 2000 Server
Commerce Server 2000
Host Integration Server 2000
Internet Security & Acceleration Server 2000
Application Center 2000
Windows 2000
今後どんなXML機能が追加されるか?
 

 



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間