本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

BICS 2でのサービス情報の制約

サービス間で交換される情報に関して強い制約を課すBusiness Information Conformance Statements 2

Scott Hinkelman, Senior Software Engineer, IBM
Scott HinkelmanはIBMのSoftware Group Emerging Technology teamのシニア・ソフトウェア・エンジニアです。彼はこれまで、分散開発や分散アーキテクチャーに関して幅広い経験を積んできました。Java技術やXML標準化に関する幾つかの組織でIBMの代表を務めており、業界標準に関する協議会をSOAへと進化させることに努力を集中しています。また、そうした協議会のメンバーと共に、ビジネス統合やモデル化を進めるために関連の標準を強化するための活動を行っています。

概要: Business Information Conformance Statement (BICS) 2の仕様について説明します。Scott Hinkelmanが1.0仕様からの進化を調べ、その機能と、業界からのフィードバックの結果としてどのように変化したかを探ります。この仕様の今後の方向性についても述べます。

日付:  2005年 10月 11日
レベル: 中級 この記事の原文:  英語
アクティビティー: 890 ビュー
お気軽にご意見・ご感想をお寄せください: 


サービス情報の交換に関するペイロード制約は、SOA (Service-Oriented Architecture:サービス指向アーキテクチャー) 環境におけるビジネス・ツー・ビジネス (B2B) 通信にとって2つの課題をもたらします。

  • ビジネスは、情報交換に関する垂直的な業界標準を使用する場合でも、固有の制約を規定する必要があります。
  • 制約を包括的に宣言し、実際のサービス・ロジックにディスパッチされる前に実行時に情報をチェックするには、一般に複数の制約技術が必要です。

Business Information Conformance Stetement (BICS) は、これら両方の課題に対して拡張性のあるソリューションを提供するシンプルな仕様です。垂直的な業界標準団体からのフィードバックに基づいて、元の仕様から進化したものです。

BICS 2:更新された仕様

Business Information Conformance Statement (BICS) 2仕様は、2004年初めにIBMによって発行されたBusiness Integration - Information Conformance Statement (BI-ICS) 1.0仕様に代わる更新版です。(名称も、元のBI-ICSからシンプルなBICS 2に変更されました。)

BICS 2は、BI-ICS仕様を単純化したものであり、よりパワフルでわかりやすくなりました。以前のバージョンとの最も重要な違いは、次のとおりです。

  • モジュール性が強まりました。元の単一の仕様が複数の仕様に分割されました。
  • 現在と将来を見据えたXMLフレームワークとなり、既存の情報制約メカニズムと、将来の情報制約メカニズムに対する拡張性のセットで構成されています。独自のカスタム制約メカニズムを定義することもできます。

業界からのフィードバック

2004年から2005年にかけて、プレゼンテーション、チュートリアル、およびディスカッションを通じて、さまざまな業界標準団体とそのメンバーからこの仕様に対するフィードバックがありました。こうした貴重なフィードバックをいただき、XML.gov, MedBiquitous.org, Association for Cooperative Operations Research and Development (ACORD), Open Applications Group (OAGIS)、およびOrganization for the Advancement of Structured Information Standards (OASIS)のメンバーに感謝したいと思います。BICS 2の単純化とXMLフレームワーク設計の実現は、こうしたフィードバックの成果によるところが大です。


BICS 2の概要

前のバージョンをよく知らない方のために、BICSとは何か、何をするものかを簡単に紹介します。簡単に言うと、BICSは制約文書です。すなわち、一連の情報制限を含んだXMLドキュメントです。コンピューター科学の見地からすると、BICSは2つのパワフルなツールを採用しています。それは、抽象化と非方向性です。BICSドキュメントは、情報の制約に関するステートメント、すなわち宣言を行います。

BICSフレームワーク仕様の核となるものは制約処理モデルです。処理対象の情報が制約条件に適合しているかを判断する際には、適当な条件のタイプがあらかじめ一連の制約に対して定義されている必要がありますが、この制約処理モデルはこうした条件のタイプを規定するものです。制約メカニズムは、XMLスキーマ、型方式、またはカスタム・プログラミング・コードのいずれでもかまいません。そのコア・フレームワークの中で、BICSは、具象制約メカニズムを定義するための特殊型である抽象InformationConstraintMechanismTypeを提供しています。コアBICSフレームワークとともに、次の3つの具象制約メカニズム仕様が公開されています (これらの仕様へのリンクについては、「BICS 2 summary page」を参照してください) 。

  • W3C XMLスキーマ制約メカニズム (W3C XML Schema Constraint Mechanism:WXSCM)
  • Schematronスキーマ制約メカニズム (Schematron Schema Constraint Mechanism:SSCM)
  • MIME制約メカニズム (MIME Constraint Mechanism:MCM)

BICS 2は、この先出現するであろういかなる制約テクノロジーにも対応する準備ができています。スキーマや型方式など、他のテクノロジーを制約メカニズムとして定義することも、独自のカスタム制約ソリューションを定義することもできます。BICSインスタンス・ドキュメントには一連の制約構造が含まれ、これらの制約構造は具象制約メカニズムに従って型が定義されます。BICSドキュメントには、複数のスキーマやSchematronアサーション・スキーマなど、さまざまな種類の制約があります。BICSの処理系は、BICSドキュメントを読み取り、いくつかの情報の抜粋に制約を適用して、適合性をチェックすることができます。

このフレームワークの制約処理モデルには、BICSドキュメント内の制約セットに対する処理条件のタイプを規定するインジケータが含まれます。制約処理モデルには、「シーケンシャル (sequential) 」条件、「任意 (any) 」条件、および「すべて (all) 」条件が含まれ、それぞれ、制約の処理方法が異なります。

BICSの本質的な価値のひとつは、SOAで交換されるB2B情報の制約および検証チェックに使用されることにあります。つまり、サービス・ロジックでの制約チェックを回避できるということです。

BICSドキュメントに対して実際にチェックされる情報に特定の範囲はない点に注目する必要があります。どのような形式でもよく (テキストでも、バイナリでも) 、どのような種類の情報を含んでいてもかまいません。


サービスは一般に複数の制約メカニズムを必要とする

W3C XMLスキーマのパワフルな情報モデリング能力を業界標準団体内部で広範囲に使用する場合、当然ながらその能力は制限されます。たとえば、インスタンス要素の値に基づいての検証チェックは指定できないということは、よく知られています。このような制限があるため、企業にとっては、付随的な制約テクノロジーを使用してサービス全体に対して包括的な制約チェックを行うか、あるいは独自のプログラミング・ロジックを使用することが重要になってきます。典型的なSOAシナリオでは、W3C XMLスキーマ検証を使用し、その後XSLベースの検証 (Schematronアサーションなど) を使用し、サービスで交換される情報をビジネス・ロジックがハンドオフするという流れになるでしょう。多くの場合、特定の制約メカニズムの制限に対処するには、カスタム・コードも含めた複数の制約メカニズムが必要になります。また、SOA情報交換にはバイナリ情報が必要であり、これらもMIMEなどの特定の型方式に対してチェックできます。

現在、この処理モデルを宣言して自動化を実現するような正式または標準的な方法はありません。BICSドキュメントを使用して、サービスに対してこのモデルを宣言することになります。BICS抽象InformationConstraintMechanismTypeは、W3C XML SchemaやSchematronなどの特定のメカニズムの制約処理モデルにとって、一貫性のある拡張ポイントを提供します。チェック対象である交換情報がサービスに適合しているとみなされるためには、XML SchemaとSchematronアサーションが順に実行されなければならないことをリスト1のBICSドキュメントの抜粋は指定しています。BICSドキュメントは、この例のように、URL (おそらくスキーマの場所) を使用する制約を参照することができます。制約そのものをBICSドキュメントに含めることもできます。詳しくは、BICS仕様を参照してください。


リスト1.シーケンス内の2種類の制約
<InformationConformanceStatement> 
 <InformationConstraintProcessingModel
  modelType="sequence">
  <InformationConstraint
    xsi:type=
    "W3CXMLSchemaInformationConstraintMechanismType">
   <ProcessableConstraintURL>
   http://members.org/member.xsd
   </ProcessableConstraintURL>
     </InformationConstraint>
  <InformationConstraint
    xsi:type=
    "sch:SchematronInformationConstraintMechanismType">
   <ProcessableConstraintURL>
   http://Address.org/MyAddressLineSchematron.xml
   </ProcessableConstraintURL>
  </InformationConstraint>
 </InformationConstraintProcessingModel>
</InformationConformanceStatement>

通常、どの制約メカニズムにも制限があり、あらゆる情報形式に最適な単一の制約テクノロジーというものはありません。ビジネス・パートナー間で交換されるデータ形式は多岐に渡るため、確実な制約宣言と実行時チェック・ソリューションを実現するためには、複数の制約テクノロジーをSOA環境に導入する必要があります。XMLスキーマは、バイナリ情報の交換には適していません。InformationConstraintMechanismTypeのBICS抽象ポイントを型方式 (MIMEなど) と組み合わせて使用して、情報がバイナリ・データ形式タイプによって制約されることを宣言することもできます。たとえば、複数のバイナリ情報タイプにまたがる処理モデルを宣言することができます。リスト2のBICSドキュメントの抜粋は、任意 (any) 処理モデル内の2種類のMIME imageタイプを指定しています。これは、展開されているサービスにとって、いずれかの画像形式が受け入れ可能な情報であることを示しています。


リスト2."any"処理モデルの2つの制約
<InformationConformanceStatement> 
 <InformationConstraintProcessingModel
  modelType="any">
  <InformationConstraint 
    xsi:type="MIMEInformationConstraintMechanismType">
    <MIMEType>image/.jpg</MIMEType>  
  </InformationConstraint>
  <InformationConstraint 
     xsi:type="MIMEInformationConstraintMechanismType">
     <MIMEType>image/.gif</MIMEType>  
  </InformationConstraint>
 </InformationConstraintProcessingModel>
</InformationConformanceStatement>


ビジネスには垂直的な業界標準を超えた具体的な制約が必要である

業界レベルの多くのXML標準は、定義が緩やかです。このことは一般に、濃度 (カーディナリティー) が最小限しか定義されていないことを意味します。結果的に、より高いレベルの相互運用性をサポートするために制約の厳しい標準が求められるのは当然ですが、垂直的な業界標準においてこれを実現するのは依然として困難です。現実世界のビジネス要件は柔軟性の少ない厳格な業界固有の標準に当てはまらないことが多く、結果として、すべてのユーザーが柔軟に使用できる標準というものは存在しません。

インフラ・レベルの標準では、状況が異なります。このレベルではビジネスの価値が差別化されることは少ないため、ビジネスは共通のインフラを利用する可能性が高くなります。業界固有の標準とは対照的に、インフラ標準は一般に、ビジネスの価値を一意に定義するような機能を妨げることはありません。このため、あらゆるビジネスがカスタマイズなしにそのまま使えるような厳格な業界固有の標準を標準団体が規定することは困難ですが、インフラ・レベルの標準であれば、こうした標準を確立することははるかに容易です。

定義が緩やかな標準を垂直的な業界グループにおいて定義することは、垂直的な標準に対処するための実用的で自然なアプローチですが、このことは同時に、特定のビジネスの要件に合わせるにはB2B標準の制約の変更 (一般には厳格化) を規定する必要があるということも表しています。これを実現する正式な言語は、サービス用にプロファイルされた制約の公示を容易にすると同時に、ビジネスが独自の価値提案を維持することも可能にします。現時点では、このための正式な、または標準のメカニズムは存在しません。

SOAには、ビジネス・ロジックに至る、より高い処理層でオープン・スタンダードが採用されるにつれて、情報制約の変更を容易にする制約設計が含まれています。BICSなどの制約ドキュメントは、オープンな業界標準スキーマを第一の制約として正式に宣言する機能によって、この分野でのソリューションを提供します。また、サービスに応じて変化する制約として、追加のビジネス固有のスキーマ制約 (またはその他の何らかのメカニズム) も提供します。この点で、BICSは正式なサービス・プロファイリング言語と考えることができます。

動的なSOA環境の重要な特徴として、BICSはXMLドキュメントであるため、SOA環境内のBICS対応のWebスパイダーおよびクローラーは、Webページ上またはレジストリー内の発行済みBICSドキュメントに問い合わせて、特定の業界標準スキーマに対するサポートを判断できます。これにより、動的なB2Bの発見が容易になります。BICSドキュメントに問い合わせることによって、特定のスキーマやその他のメカニズムが情報制約として宣言されているかどうかを調べることができます。


発行済みの具象制約メカニズムについて

すでに述べたように、コアBICSフレームワークは、具象制約メカニズムを定義するための特殊型である抽象InformationConstraintMechanismTypeを提供しています。W3C XML Schema、Schematron、およびMIME型方式では、評価の高い制約メカニズムが発行されています。基底抽象型は、名前や説明など、いくつかの典型的な要素のほか、BICSドキュメントに含まれていない制約の場所をサポートする要素も定義します。これらの要素はすべてのタイプの具象メカニズムに継承され、BICSインスタンス・ドキュメントに一貫性を与え、自動処理を可能にします。

具象制約メカニズムは、特定のタイプで意味のある拡張制約を定めることもできます。一例として、W3C XML Schema Constraint Mechanism仕様は、名前空間と場所のペアを定義するオプションを提供しています。これを使用して、特定の名前空間に対する特定の場所 (URI) のスキーマを使用するように検証処理に命じることができます。これは、垂直的な業界標準を超えた、厳しい制限を含む制約を2次スキーマとして指定するのに特に便利です。すなわち、チェック対象であるXMLインスタンス・ドキュメント内に存在する任意のxsi;schemaLocation属性をオーバーライドするのに便利です。典型的な例としては、現在のデータベースがすでにビジネス内で実用化されていて、特定のビジネスによって特定のフィールド長が必要になる場合などです。詳しくは、W3C XML Schema Constraint Mechanism仕様を参照してください。

BICSフレームワークを使用して、独自の制約メカニズムを定義することもできます。


IBM alphaWorksでのBICSの概念実証

IBM alphaWorksは、Business Information Conformance Statements for Java (BICS4J)をホストしています。これは、BICS 2 仕様をサポートする概念実証ツールキットです。具体的には、このキットには、特定の情報の抜粋をBICSドキュメントに照らして評価する制約エンジンが含まれ、サービス・ビジネス・ロジックのハンドオフの前に、サービス呼び出しチェーンとハンドラーに挿入することができます。この実装はJavaコードで書かれていて、制約エンジンは入力をファイル名、JavaのInputStreams、またはEclipse EMF EObjects形式のサービス・データ・オブジェクトとして受け入れます。

このalphaWorks実装は、Axis 2要求フローでインストールできるApache Axis 2メッセージ・ハンドラーを提供することによって、Webサービス統合もサポートします。受信したSOAP本体の内容の適合性を、メッセージング方式のWebサービスに関連する展開済みのBICSドキュメントに照らしてチェックするために、BICS Webサービス・メッセージ・ハンドラーはBICS制約エンジンを実行します。詳しくは、alphaWorksのBICS4Jページを参照してください。


BICSはどこへ向かうのか

この分野での標準となることが、BICSの主要なモチベーションとなっています。2004年前半の最初のバージョン以来、このテクノロジーは業界団体で議論され、肯定的なフィードバックと関心を集めてきました。BICS4Jは、Webサービスと容易に統合できるBICS 2の概念実証実装を提供します。業界は、次のような環境で、BICSのようにSOAと整合性のある包括的な制約ドキュメントから恩恵を受けることができます。

  • 合意可能な内容としてSOA契約に含める。
  • Webサービスと同様、インターフェース定義によって参照し、包括的な情報制約を定義する。
  • 情報制約を発行するためのSOAレジストリーまたはWebサイトで公示する。
  • 上位レベルのサービス・ビジネス・ロジックへハンドオフする前の適合性チェックとして、インフラ・ランタイムで使用する。
  • 特定の業界スキーマに対するサポートを検索する際、BICS対応のWebスパイダーおよびクローラーで使用する。

BICS仕様が有効な方向としては、いくつか考えられます。十分な数の支援者が集まれば、BICSが標準策定団体に提出されるかもしれません。IBM alphaWorksのBICS4Jテクノロジーに基づくオープン・ソース実装の可能性も、十分な支援が得られるかどうかにかかっています。BICSが業界標準になるのは有益であると考え、その方向で支援したいと思う場合は、著者に連絡して、ディスカッション・グループに参加してください。

BICS仕様は、評価の高い制約メカニズムを含み、オンラインで入手可能です。「参考文献」のリンクを参照してください。


参考文献

学ぶために

  • developerWorksのXMLゾーンSOA and web servicesゾーンには、この記事で解説した技術を含めて、様々な情報が用意されています。

  • Service Oriented Architecture (SOA) from IBMから、今日のオンデマンド・ビジネス環境で必要なビジネス・プロセスのモデル化や組み立て、展開、管理のための、この柔軟で堅牢なインフラについて学んでください。

製品や技術を入手するために

議論するために

  • BICS Forumで、BICSとその方向性に関して議論してください。

著者について

Scott HinkelmanはIBMのSoftware Group Emerging Technology teamのシニア・ソフトウェア・エンジニアです。彼はこれまで、分散開発や分散アーキテクチャーに関して幅広い経験を積んできました。Java技術やXML標準化に関する幾つかの組織でIBMの代表を務めており、業界標準に関する協議会をSOAへと進化させることに努力を集中しています。また、そうした協議会のメンバーと共に、ビジネス統合やモデル化を進めるために関連の標準を強化するための活動を行っています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML, SOA and web services
ArticleID=239907
ArticleTitle=BICS 2でのサービス情報の制約
publish-date=10112005

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。