ebxml bpss によるニグヅケンハュコケの ペタャ化とクプポヤヴ … ·...

87
筑大学大学院博士課程 情報工学研究科修士論文 ebXML BPSS にの 化と 二 之 200205190 (社会工学専攻) 指導教官 佐藤亮 2005 1

Upload: others

Post on 15-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

  • 筑波大学大学院博士課程

    システム情報工学研究科修士論文

    ebXML BPSSによるビジネス・プロセスの

    モデル化とシミュレーション

    二村 暢之

    200205190

    (社会システム工学専攻)

    指導教官 佐藤亮

    2005年 1月

  • i

    論文趣旨論文趣旨論文趣旨論文趣旨

    サプライチェーン内の企業との連携や,競合企業,異業種企業と言った B2B 連携には,取

    引手順(ビジネス・プロセス)や,取引に仕様する文書,データ構造,通信プロトコル,セキ

    ュリティなどの規定しなければならない.このように,異なるビジネス・プロセスを接合させ

    るためには,技術的な側面だけでなくビジネス的な側面の仕様も定めなければならない.これ

    らの取り決めをまとめて,ビジネス・プロトコルと呼ぶ.このようなビジネス・プロトコルは

    XML ベースで仕様がまとめられ,ebXML,RosettaNet,Web サービスなどが存在する.本研

    究では,その中で ebXML を選択し,そのサブセットであるビジネス・プロセス記述言語

    ebXML BPSS(以下 BPSS)を使用する.本研究では,BOMで表現できるような部品型のビジ

    ネス・プロセスをモデル化するための BPSS として,BPSS のサブセットとなる BOM-BPSS を

    定義する.そして BOM-BPSS によりモデル化されたビジネス・プロセスをシミュレーション

    するフレームワークを開発する.

    フレームワークでは,XML ベースの BOM-BPSS によるビジネス・プロセスのモデル化と,

    Java クラス型との連携のためにスキーマ言語 Relax NG を使用する.スキーマ言語とは XML

    文書の構造を定義する言語である.XML と Java クラスをマッピングするためにはスキーマと

    データバインディング・ツールを使うことで可能になる.本研究では BPSS,Relax NG の

    XML技術の有効性についても検証する.

    研究成果として,シンプルではあるがフレームワークを開発することができた.ebXML 自

    体がビジネス・コラボレーションのための仕様であるので,BPSS は自社内プロセスをモデル

    化するための仕様はない.今後,ビジネス・プロセスの内外一連の流れを記述するために,

    Web サービスのビジネス・プロセス記述言語 BPEL と組み合わせてモデル化するなどの展望が

    考えられる.また,スキーマ言語を利用することで XML 技術とオブジェクト指向言語との親

    和性,設計の類似性を確認した.

  • ii

    目次目次目次目次

    論文趣旨......................................................................................................................................................i

    目次.............................................................................................................................................................ii

    表目次........................................................................................................................................................iii

    図目次........................................................................................................................................................iii

    リスト目次................................................................................................................................................iv

    第 1 章 序論.........................................................................................................................................1

    第 2 章 ビジネス・プロトコル.........................................................................................................3

    2.1. ebXML........................................................................................................................................3

    2.1.1. 概要.....................................................................................................................................3

    2.1.2. ebXMLの仕組み ...............................................................................................................4

    2.1.3. BPSS の位置づけ ..............................................................................................................5

    2.2. 他のビジネス・プロトコル .....................................................................................................6

    2.2.1. RosettaNet ...........................................................................................................................6

    2.2.2. Webサービス.....................................................................................................................7

    2.3. ビジネス・プロセス記述言語の比較 .....................................................................................8

    第 3 章 関連技術...............................................................................................................................10

    3.1. BPSS .........................................................................................................................................10

    3.2. Relax NG...................................................................................................................................10

    3.3. データバインディング・ツール ........................................................................................... 11

    第 4 章 BPSS によるモデル設計.....................................................................................................14

    4.1. 対象のビジネス・プロセス ...................................................................................................14

    4.2. BPSS の構成要素 ....................................................................................................................14

    4.3. モデル設計手順.......................................................................................................................17

    4.4. 2 者間で行われるトランザクションの最小単位 ................................................................18

    4.4.1. BusinessTransaction:仕様.................................................................................................18

    4.4.2. 設計 (1) ............................................................................................................................20

    4.5. 2 者間で行われる取引の設計 ................................................................................................21

    4.5.1. BinaryCollaboration仕様 .................................................................................................21

    4.5.2. 設計(2) ..............................................................................................................................23

    4.6. 3 者間以上で行われる取引の設計 ........................................................................................24

    4.6.1. MultiPartyCollaboration仕様...........................................................................................24

  • iii

    4.6.2. 設計(3) ..............................................................................................................................25

    第 5 章 シミュレーション・プログラム .......................................................................................27

    5.1. プログラムの流れ...................................................................................................................27

    5.2. BOM-BPSS API........................................................................................................................27

    5.3. クラスの静的関係...................................................................................................................27

    5.4. 実行結果...................................................................................................................................30

    第 6 章 結論.......................................................................................................................................33

    参考文献...................................................................................................................................................34

    謝辞...........................................................................................................................................................36

    付録............................................................................................................................................................. a

    (1) BPSS UML version (出典 : UN/CEAFCT, OASIS BPSS ver1.01) ............................... a

    (2) BOM-BPSS (Relax NGスキーマ) ..........................................................................................b

    (3) BOM-BPSSモデル ........................................................................................................................h

    (4) シミュレーション・プログラム・フローチャート ..................................................................l

    (5) SimApp.java....................................................................................................................................n

    (6) DESSimulator.java ..........................................................................................................................p

    (7) TransformData.java.......................................................................................................................hh

    表目次表目次表目次表目次

    表表表表 1::::クラスクラスクラスクラス概要概要概要概要...........................................................................................................................29

    図目次図目次図目次図目次

    図 1:本研究のフローチャート.....................................................................................................2

    図 2:XMLモデルとオブジェクトモデルのマッピング .........................................................12

    図 3:データバインディング・ツールを利用したアプリケーション開発 ...........................13

    図 4:対象のビジネス・プロセス構造 .......................................................................................14

    図 5:BPSSの構成 ...........................................................................................................................15

    図 6:ProcessSpecificationの構成.................................................................................................16

    図 7:BusinessTransactionの構成 .................................................................................................18

    図 8:BusinessTransactionの例(Notify of advance shipment)の Choreography.....................19

    図 9:BusinessTransactionの例 (Create Order) の Choreography..............................................20

    図 10:BusinessTransaction (Ass2)の Choreography.....................................................................21

    図 11:BinaryCollaborationの構成 ...............................................................................................22

  • iv

    図 12:BinaryCollaborationの例 (Product Fulfillment) ...............................................................23

    図 13:BinaryCollaboration (Ordering)..........................................................................................24

    図 14:MultiPartyCollaborationの構成.........................................................................................25

    図 15:BOM-BPSS によるモデルの Choreography ....................................................................26

    図 16:バインディングツールによって生成された BOM-BPSS APIの UMLクラス .........28

    図 17:シミュレーション・プログラムのクラス図 .................................................................29

    リストリストリストリスト目次目次目次目次

    リスト 1:ProcessSpecificationの Relax NG スキーマ定義.......................................................17

    リスト 2:BusinessTransactionの例(Notify of advance shipment).........................................19

    リスト 3:BusinessDocumentの例(ASN) ...............................................................................19

    リスト 4:BusinessTransactionの例 (Create Order)....................................................................20

    リスト 5:BusinessTransaction (Ass2) ..........................................................................................20

    リスト 6:BusinessTransaction (Ass3) ..........................................................................................21

    リスト 7:BinaryCollaborationの例 (Product Fulfillment) .........................................................23

    リスト 8:BinaryCollaboration (Ordering) ....................................................................................24

    リスト 9:MultiPartyCollaboration (ModelMain) .........................................................................26

    リスト 10:シミュレーション実行結果 .....................................................................................32

  • 1

    第第第第1章章章章 序論序論序論序論

    近年のビジネスは1社だけで行うものではなく,サプライチェーン内の全ての企業と密な連

    携をすることで,在庫コストや原材料コスト,開発コストを低減や,ビジネス・プロセスの効

    率化が求められている.果ては,業界内の競合企業や異業種との提携までもが要求されている.

    そのために,お互いのビジネス間をシームレスにスムーズに統合し連携する方法が模索される

    ようになった.それはつまり,伝票ベースのデータ取引の電子化を実現した EDI1の次の段階

    として,それを用いるビジネス・プロセスの電子的統合を目指しているのである.

    それを行うことは.言わばビジネス・プロトコルと呼べるものを定義することであり,ビジ

    ネス連携を行う上での取引手順や通信プロトコル,ビジネス文書,ビジネス・プロセスの相互

    的な進行手順の記述方法などの標準化が必要となる.その代表的なものとして,1998 年にパ

    ソコン業界や電子部品業界が中心となって発足された RosettaNet, 1999 年に標準化団体 OASIS

    と国連機関の UN/CEFACT が母体となって,世界規模での電子商取引仕様の標準化を行う

    ebXML が発足された.その後,SOAP/UDDI/WSDL という技術を使った Web サービスが台頭

    してきた.

    ビジネス・プロトコルで規定されるものは,通信プロトコルやビジネス文書や用語の定義だ

    けではなく,ビジネス・プロセス自体を定義する仕様も必要となってくる.その定義されたビ

    ジネス・プロセス仕様を元に実装が行われる.本研究では,ebXML BPSS(以下 BPSS)とい

    うビジネス・プロセス記述言語を仕様して,部品型のビジネス・プロセスを記述する.どの技

    術も,XML がベースとなっており,XML のタグによりプレーン・データへの意味付けが行う

    ことが可能となり,プログラム間のインタフェースとしての役割を果たす.

    BPSS もまた XML 技術ベースの言語であり,BPSS で記述されたモデル(以下 BPSS モデ

    ル)はビジネス・プロセスとしての意味付けがなされた XML 文書である.ebXML では BPSS

    モデルを設計しても,それと連携したビジネス・プロセスの動的な特性を分析する仕組みがな

    かった.そのため,本研究ではその XML 文書を引数として,ビジネス・プロセスのシミュレ

    ーションを行う仕組みを開発する.その工程において,XML スキーマ言語を用いることで,

    XML 文書とオブジェクト指向プログラム言語 Java のクラス定義とのマッピングを行う.その

    意味で,本研究は XML技術の検証も行っていくものである.

    1 EDI: Electronic Data Interchange

  • 2

    以下に,本論文の構成を説明する.第 2 章では ebXML というビジネス・プロトコル仕様の

    概要や仕組みを説明し,その中での BPSS の位置づけを述べる.第 3 章では,本研究に関連す

    る技術として,BPSS,XML スキーマ言語 Relax NG(リラクシング),データバインディン

    グ・ツールについて紹介する.第 4 章ではモデル化対象のビジネス・プロセスを示し,BPSS

    を仕様したモデル設計を行っていく.第 5 章では第 4 章で作成された BPSS 文書をシミュレー

    ションするためのプログラム設計を行い,実行,考察を行う.最後に第 6 章で本研究のまとめ

    を示す.図 1に本研究のフローチャートを示す.

    設計BOM-BPSSの

    仕様説明とモデル化

    ビジネス・プロトコルの調査

    ビジネス・プロセス記述言語の調査

    関連技術紹介

    参照

    生成

    BOMモデルの作成

    引数

    シミュレーションプログラム設計

    シミュレーションプログラム作成

    利用

    参照

    シミュレーション引数

    BPSS文書(BPSSモデル)

    BPSSのRelaxNGスキーマの作成

    2章

    3章

    4章

    5章

    Javaクラス群 スキーマコンパイル

    BPSS RelaxNGスキーマ(BOM-BPSS)

    図図図図 1::::本研究本研究本研究本研究ののののフローチャートフローチャートフローチャートフローチャート

  • 3

    第第第第2章章章章 ビジネスビジネスビジネスビジネス・・・・プロトコルプロトコルプロトコルプロトコル

    ビジネス・プロトコルとは,電子商取引を行う際に,取り引きを行う企業間での取り決め

    を指す.取引基本規約,業務運用規約,情報表現規約,情報伝達規約などがあげられる.特

    に,データのフォーマットや構文規則である情報表現規約をビジネス・プロトコルという場

    合が多い.[28]

    ビジネス・プロトコルとは,企業間で取り引きを行うためのプロトコルの総称が「ビジネ

    スプロトコル」だ.ビジネスプロトコルは,TCP/IP をベースに,HTTP を使うのか,SSL を

    使うのか,といったトランスポート層の規定から,やりとりする XML 文書の形式や電子署

    名の方式といったアプリケーション層まで,複数のレイヤを包括している.[7]

    ビジネス・プロトコルとは明確な定義はないが,本研究では上記のように企業間で取引を行

    う上での,通信プロトコルやデータ構造,認証管理などの技術的側面と,取引文書や用語や取

    引手順などのビジネス的側面の両方の意味を有した取り決めを意味するものとする.その多く

    は,XML 技術をベースにしたものである.本章では,BPSS を含むビジネス・プロトコル仕様

    ebXML 技術について,BPSS 自身について説明する.また他のビジネス・プロトコル仕様の紹

    介し,各仕様の特徴を比較する.

    2.1. ebXML

    2.1.1. 概要概要概要概要

    ebXML はあらゆる業種や業態,大小の規模にかかわらず世界中のどんな電子商取引でも利

    用可能な,XML ベースのビジネス・プロトコルである.1999 年 11 月に,業界団体である

    OASIS2と国連機関の UN/CEFACT3との 18 ヶ月の期限付き合同プロジェクト「ebXML イニシ

    アティブ」として開始された.その期限となっていた 2001 年 5 月には ebXML1.1 が発表され,

    現在も ebXML は OASIS と UN/CEFACT により仕様のアップデートや開発が行われている.

    [29] OASIS は XML ベースの電子商取引の仕様をまとめる団体で,100 カ国から 600 を超え

    る組織と個人会員で構成されている,主な参加企業は,BEA,Hewlett Packard,IBM,,Intel

    Corporation,富士通,Microsoft, Oracle,SAP, Sun.

    2 OASIS: The Organization for the Advancement of Structured Information Standards.1993年設立.旧称 SGML

    Open, 1998年に改称. 3 UN/CEFACT: United Nations Centre for Trade Facilitation and Electronic Business

  • 4

    それには,これまで EDI の標準化活動を行ってきた国連機関 UN/CEFACT が,その仕様や

    技術を XML ベースの技術としても活かし続けたいと考えられた背景がある.現在 100 社以上

    の企業が賛同し,大手企業が実証実験を行っている.ebXML が RosettaNet(2.2.1 参照)や

    Web サービス(2.2.2 参照)と比べて大きく違うのは,国連の下部組織 UN/CEFACT がその仕

    様策定に携わっていること,特定の業界や企業に偏らない壮大な仕様であることが挙げられる.

    その目標が壮大であるため,実際稼動しているものは一部の仕様,例えば通信プロトコル部

    分の ebXML メッセージ・サービスだけである4(2003 年 9 月現在).発足当初こそ RosettaNet

    の開発した共通基盤のアイデアを取り込んで設計が行われたが,現在では RosettaNet 側も

    ebXML BPSS を使って自身の仕様を表現する方法を検討するなど影響を与え,その仕様は認

    められていると言える.

    2.1.2. ebXML のののの仕組仕組仕組仕組みみみみ

    ebXMLのアーキテクチャは次の 3 段階に分けて考えることができる.

    (1) レジストリに対する検索

    取引したい商品やサービスと,それらを提供してくれる企業などを探す

    (2) CPA の合意

    見つけた取引相手と,通信手段や通信先,フォーマット,そしてビジネス・プロセス

    などについて合意する

    (3) ビジネス・プロセスの実行

    合意内容に基づいて相手と通信を行い,B2Bを実行していく

    (1) レジストリに対する検索

    Web サービスにおける UDDI(2.2.2)のようなものが ebXML のレジストリである.つ

    まり,世界中のどの企業がどのようなサービスを提供しているかという B2B 取引のイエ

    ローページのようなもり,通常登録は企業が自ら行う.そしてここで企業は B2B 取引の

    パートナーを探すのである.このレジストリには人間がその内容を参照することも可能で

    あるし,コンピュータが直接問い合わせを行うことも可能である.

    レジストリでは,次のような情報が保持されている.

    ➢ CPP(CPP はフォーマットが決められており,そこには企業情報,連絡先,通信プロ

    トコル,セキュリティ仕様,ビジネス・プロトコルが記載されている.)

    ➢ CPA(ビジネス・プロセス,企業同士で交わされる文書やトランザクション)

    ➢ ビジネス・プロセスやビジネス文書で使用される用語

    4 日本でも小売流通業のカスミが,ebXMLメッセージ・サービス仕様に基づいたデータ交換手順などを用い

    て,取引先と商品情報や販促情報,販売実績情報などのデータを交換・共有するシステムを構築している.

  • 5

    ➢ 文書形式,メッセージ形式

    (2) CPAの合意

    業界や取引の種類によって,さまざまなビジネス・プロセスが存在する.そこで,

    ebXML イニシアティブの定義に従ってビジネス・プロセスを XML 文書として記述し,格

    納しておく.これによって,ebXML 自身はビジネス・プロセスの種類に縛られることなく,

    あらゆる B2B を ebXML の枠組みの中で扱えるようになっている.ビジネス・プロセス以外

    にも,レジストリには XML 文書の中で用いられる用語やさまざまな文書形式,通信プロト

    コルなども登録される.

    ある企業が,取引したい製品やサービスを提供する企業を見つけたら,まず相手企業の

    CPP をレジストリからダウンロードして参照する.そして相手の CPP と自社の CPP の共通

    部分を取り出し,調整して,両者が B2B において共通して処理が可能なプロトコルやセキ

    ュリティ仕様,採用するビジネス・プロセスなどを記述した文書を作成する.この文書を

    「CPA(Collaboration Protocol Agreement)」と呼ぶ.CPAは自動的に作成可能である.CPA

    には,両者間で B2B を実行するときに必要な技術的要件がすべてまとまっているため,

    CPA を基にシステム構成を設定すれば,両者間で B2B が開始可能となる.

    (3) ビジネス・プロセスの実行

    CPA がパートナー5企業間で合意されたら,実際にビジネス・プロセスを実行する.そこ

    で使われる通信プロトコルが,ebXML メッセージ・サービスである.ebXML メッセージ・

    サービスとは,レジストリサービスへのアクセスや,CPP の取得,CPA の承認のための取

    引パートナーとの通信プロトコルであり,大まかにいえば,Webサービスの SOAP などと同

    じように HTTP や FTP などの既存プロトコル上に XML データとしてパートナーにメッセー

    ジを送り,その送信機能やセキュリティなどに ebXML独自の拡張を施したものである.

    2.1.3. BPSS のののの位置位置位置位置づけづけづけづけ

    ebXML BPSS(Business Process Specification Schema)は,ebXMLにおいてビジネス・プロセス

    を定義するための仕様である.CPP/CPA での記述は実装レベルに近いのに対して,BPSS は,

    よりも上位の階層に位置するものであ,CPP/CPA を作成する上で参照される仕様である.こ

    こで言う「ビジネス・プロセス」は,複数のビジネス・パートナー間で行われるビジネス取引

    の手順などを取り決めたものである.

    5 ebXMLでは取引相手のことを「パートナー」と呼ぶ

  • 6

    2.2. 他他他他ののののビジネスビジネスビジネスビジネス・・・・プロトコルプロトコルプロトコルプロトコル

    ebXML の同様にビジネス・プロトコルの仕様として RosettaNet や Web サービスなどがある.

    これらの技術概要を示した後,各々の比較をしていく.

    2.2.1. RosettaNet

    RosettaNet は,1998 年に IT 業界の 40 社が B2B を実現するために作られた団体であり,ま

    たビジネス・プロトコルの名前でもある.1999 年にはそれに EC 業界が参加し,さらに 2000

    年には SM 業界が参加する,というように徐々に対応範囲を広げてきた.以下に RosettaNet に

    参加する企業を挙げる.(2002 年 1 月時点)

    情報機器業界(IT業界)

    3COM,CISCO,Compaq,Dell,HP, IBM, Intel,NEC,Quantum,Siemens,Solectron,Deutsche

    Financial,Microsoft,Netscape,AMEX,Lucent,FedEx,UPS,CompUSA,Offic Depot,Ingram Micro,

    SAP,SONY

    電子部品業界(EC業界)

    Altera,AMD,Hitachi,Intel,Lucent,Micron,Motorola,NEC,Philips,Samsung,TI,Toshiba,Xilinx,

    AMP,Molex,Frametone,AVX,Bourns,Kemet

    半導体業界(SM業界)

    Agilent,Micron,National Semiconductor,TI,Applied Material,凸版印刷,NEC,Philips,Chartered,

    Adaptec,Amkor,ASE,SPIL,JSR

    RosettaNet の定義したビジネス・プロトコルは,以下の 3 つのレイヤに分けることができる.

    � Dictionary

    � PIPs (RosettaNet Partner Interface Processes)

    � RNIF (RosettaNet Implementation Framework)

    3 つの関係を簡単に説明すると,Dictionary で言葉を定義し,PIP でその言葉を使って取引文書

    を作成.そして RNIFに定められたプロトコルで通信する.

    (1) Dictionary

    世界中の会社と B2B でビジネスを行うためには,自社の製品や自社そのものを固有に識

    別するためのコードが必要である.Dictionary は,それらを定めた規格であり.また,取引

    に使うための技術用語やビジネス用語についても規定している.

    (2) PIPs

    上記の Dictionary を使って,どのような形式で文書を作成するかを定義したものが PIPs

    である.また,その文書をどのようにやりとりするかというワークフローも定義している

    (ebXML BPSS と類似する点).つまり,PIPsは RosettaNetが定義するビジネス・プロセ

  • 7

    スの最もコアな部分を定義していると言える.

    (3) RNIF

    PIP によって作成された XML 文書とワークフローを,実際にどのように通信するかを決

    めたものが RNIF である.RNIF の中身は,既存の通信プロトコル HTTP,HTTPS を生かし

    たもので,他に電子署名,認証などインターネットを介して通信を実現するための仕様が規

    定されている,

    RosettaNet は,関連する業界の中で B2B を実現することにフォーカスすることで,ほかの標

    準技術に先駆けて迅速にビジネス・プロトコルを作成した.関連する業界であれば取引の内容

    や方法をパターン化しやすいし,またこのような技術を積極的に受け入れる業界であったこと

    も,理由の1つであろう.今後は隣接するテレコム業界や,自動車業界などへもその領域を拡

    大させていこうとしている.

    RosettaNet は業界を絞ってはいるがビジネス・プロトコルの仕様を策定した最初の標準化組

    織である.通信プロトコルとして RNIF などの仕様を策定しているが,その本来の関心はビジ

    ネス・プロセスやメッセージの仕様を策定して提供することにある.そのため,PIPs は RNIF

    以外の,例えば SOAP などで動作させることが可能である.

    2.2.2. Web サービスサービスサービスサービス

    Web サービスとは,いわゆる一般的な Web を使ったサービスのことではない.Web サービ

    ス技術仕様の標準化を行っているW3C Web Services Architecture Working Groupでは以下のよう

    に定義されている.

    [Definition: A Web service is a software system identified by a URI, whose public interfaces and

    bindings are defined and described using XML. Its definition can be discovered by other software

    systems. These systems may then interact with the Web service in a manner prescribed by its definition,

    using XML based messages conveyed by internet protocols.]

    Web サービスとは,URI によって識別されるソフトウェア・アプリケーションであり,そ

    のインタフェースおよびバインディング情報は,XML 技術によって定義,記述,検索が可

    能であり,インターネット・プロトコルを介した XML 書式のメッセージを使用して,他の

    ソフトウェア.アプリケーションとの直接的なやりとりをサポートするものである.[35]

    代表的な実稼動システムとしては,Amazon.com や Google の Web サービスがある.両社の

    データベースに外部の開発者が直接アクセスして,書籍カタログあるいは検索結果を自由に利

    用でき,自社内のシステムに組み込むことも可能である.

    ビジネス・プロトコルとしての盛り上がりは紹介した 3 つの中で一番である.個人的には,

  • 8

    その理由の1つは RosettaNet や ebXML で培われた基盤を,より実装方向へとまとめたためで

    あると考えている.ソフトウェアは XML を介して呼び出され,Web サービスで提供されてい

    る機能の記述や呼び出し方法などの標準化されている.その技術は次の3つで構成される.

    � WSDL (Web Services Description Language)

    � UDDI (Universal Description, Discovery, and Integration)

    � SOAP (Simple Object Access Protocol)

    Web サービスで使用される XML 書式を定めたものが WSDL.Web サービス,つまりソフト

    ウェアの機能の遠隔呼び出しの手順を定めたプロトコルが SOAP.WSDL と SOAP は W3C で

    標準化作業が行われている.どの会社がどのような Web サービスを提供しているかを検索・

    照会できるようにしたシステム,つまり Web サービスのイエローページに相当するのが UDDI.

    UDDI には Web サービスの名称や機能,対象,詳細な技術仕様などが検索可能である.その検

    索や登録は無料で,OASIS 配下の UDDI プロジェクトで仕様が定められ,Microsoft や Ariba,

    IBMなどが中心となって運営されている.

    しかし,Web サービスは情報照会のような単一のサービス,機能を呼び出す程度のことしか

    できない.そこで BPEL6というものが提唱されている.BPEL は複数の Web サービスを組み合

    わせて 1 つの Web サービスとして使うための XML 言語である.Microsoft の XLANG と IBM

    の WSFL (Web Services Flow Language)を統合してできたもので,その標準化策定は ebXML同

    様 OASIS がまとめている.[26] 現在では,その BPELを Java用に拡張させた BPELJ というも

    のも提唱されており,スクリプトとしての実行機能をもたせる方向にある.小さなビジネス・

    ユニットである Web サービスを組み合わせるという意味で,ビジネス・プロセスを記述する

    言語であるとも言える.

    2.3. ビジネスビジネスビジネスビジネス・・・・プロセスプロセスプロセスプロセス記述言語記述言語記述言語記述言語のののの比較比較比較比較

    ビジネス・プロトコルとして ebXML,RosettaNet,Web サービスが比較されると同時に,ビ

    ジネス・プロセスを記述するための言語として ebXML の BPSS と RosettaNet の PIPs,Web サ

    ービスの BPELが比較される.各々の特色や違いについて述べる.

    BPSS はモデルとしての要素を強く持ち,最初に本格的にビジネス・プロセスの記述につい

    てまとめた仕様である.その仕様は PIPs にも影響を与えた.また BPSS は ebXML BPSS はビ

    ジネス・コラボレーションというパブリックなフローを表現するのに対して,BPEL は,各々

    のビジネス・パートナー内部のプロセスや自家生産などのプライベートなビジネス・プロセス

    のフロー定義を対象としている.その比較は [37]が詳しい.

    6 BPEL(ビーペル): Business Process Execution Language

  • 9

    ビジネス・プロトコルにしても,ビジネス・プロセス記述言語にしても紹介した 3 つ以外に

    も存在する.それら仕様との比較は,OASIS や XML,Web 技術のコンソーシアム・リーダー

    の1つである富士通の[12][19]が詳しい.ビジネス・コラボレーションという意味では,仕様

    は統一されるべきであるが,すぐに淘汰が始まるとは考えられない.今後,お互いの長所を吸

    収し合いながら発展していくのではないかと考えている.

  • 10

    第第第第3章章章章 関連関連関連関連技術技術技術技術

    今回の実験では以下の技術を使用する.

    � ビジネス・プロセス記述言語 BPSS

    � XMLスキーマ言語 Relax NG

    � データバインディング・ツール Relaxer7

    ビジネス・プロセスの記述には ebXML のサブセットである BPSS 使用し,モデルのスキー

    マ言語として Relax NGを,Relax NGから Javaへのデータバインディングに Relaxerを使用す

    る.以下にその詳細について示す.

    3.1. BPSS

    BPSS には UML と XML バージョンの 2 つが存在する.XML バージョンは DTD と XML

    Schema の 2 つのスキーマ言語で提供されている.今回注目するのは XML バージョンである.

    その XML バージョンのサブセットとしてシンプルなスキーマ BOM-BPSS を提案し,生産シ

    ステムをモデル化する.そのモデル化された BPSS XML ファイル(以下 BPSS モデル)を入

    力としてシミュレーションを行うものとする.

    UML では抽象クラスやインタフェースなど Java を代表とするオブジェクト指向言語で実装

    可能なクラス型が存在し,XML バージョンでの各要素の詳細な関係が定義されている.BPSS

    モデル設計では,UML バージョンでモデル化を行い,その後 UML バージョンから XML バー

    ジョンへの変換を行う方法と,UML バージョンなしで XML バージョンのみでのモデル化が

    許されている.今回の研究では後者を採用する.

    3.2. Relax NG

    本研究では,XMLのスキーマ言語として Relax NGを使用する.スキーマ言語とは,記述す

    る XML ファイルのメタモデルであり,どのようなタグ・属性がどのような構造で書かれてい

    るかを記述した言語である.つまり,XML ファイルの構造を示すリファレンスの意味があり,

    各スキーマ言語に対応したツールを使うことで入力補助が可能である.現在,XML のスキー

    マ言語としては,WWW 技術の標準化団体 W3C がまとめている DTD8と XML Schema が広く

    普及している.DTD は多くのマークアップ言語の元となっている SGML で採用された仕様で

    7浅海智晴氏製作の GPL ライセンスのツール.(http://www.relaxer.org/index_ja.html) 8 DTD: Document Type Definition

  • 11

    あるが,開始タグと終了タグで表す XML のスタイルを取ってない.それに対して XML

    Schema は DTD とは違い XML スタイルを採用し,オブジェクト指向言語との連携を図るため

    のデータ型の採用9や,データベースで使用される SQL との連携のなど拡張がされている.し

    かし,その標準化作業には様々な要求を盛り込もうとする各社の思惑により複雑化しており,

    依然策定中である.

    上記 DTD10,XML Schema11の他に第 3の仕様として,Relax NG(リラクシング)12というも

    のが存在している.Relax NG は Relax Coreという日本発のスキーマ言語と,ebXMLの標準化

    を行う業界団体 OASIS が提案していたスキーマ言語 TREX の長所を統合して作り出された仕

    様である.Relax NG の特徴は,XML スキーマ並みの表現力を持ちつつ,シンプルな記述が可

    能であることが挙げられる.今回はこの Relax NGを使用して,BPSS のサブセットとしシンプ

    ルな BPSS スキーマ(XMLバージョン)を定義する.この Relax NG は,次で紹介するデータ

    バインディング・ツール Relaxer で Java クラス群の生成に使用する.尚,実際の仕様はモデル

    設計の説明と共に行う.

    3.3. データバインディングデータバインディングデータバインディングデータバインディング・・・・ツールツールツールツール

    データバインディング・ツールとは,XML モデルからオブジェクトモデルへのマッピング

    を簡単にする API を自動生成するツールである.XML をデータとして使うのは汎用性があり

    便利だが,それを処理するためのプラグラム・コード記述には労力を要する.Java から XML

    を扱うための標準ライブラリとして DOM と SAX という 2 つのクラスが存在している.しか

    し,SAX を使用する場合は,扱う XML ファイルを上から順に操作してタグ要素からクラス変

    数の意味づけ(このタグは int 型で取り出し,このタグは String 型で取り出すというような意

    味づけ)をしながら取り出す方法でおり,また DOM では構造をツリーにマップして,ツリー

    を探索しながらタグ要素からクラス変数への意味づけを行いながら取り出す方法である.どち

    らも XMLの構造が変わってしまったら処理するプログラムも変更しなければならない.

    そこで,XML モデルとオブジェクトモデルという 2 種類のモデル間のマッピング・ツール

    が必要になる.オブジェクト指向言語にはクラス定義とインスタンスがあるが,XML ファイ

    ルにも同様の構造定義であるスキーマとインスタンスと呼ばれる文書の部分が存在する(図

    2).データバインディング・ツールとは XML のスキーマ言語からそれを扱う Java のクラス

    ライブラリを生成してくれるものである.

    今回は,前節で紹介した Relax NG スキーマを Relaxerというバインディングツールを使用

    9 XMLSchema datatypes : http://www.w3.org/2001/XMLSchema-datatypes 10 DTD: http://www.w3.org/TR/REC-xml/#dt-doctype 11 XML Schema: http://www.w3.org/XML/Schema.html#dev 12 Relan NG: http://relaxng.org/

  • 12

    +getAttribute1(in int) : int

    -attribute1 : int-attribute2 : string

    +getAttribute1(in int) : int

    -attribute1 : decimal-attribute2 : string

    +getAttribute1() : int+setAttribute1() : void+getElement2() : element2

    -attribute1 : int

    参照 汎化

    オブジェクト志向モデルXMLモデル

    クラス定義(UMLクラス図)

    オブジェクト(UMLオブジェクト図)

    スキーマ(Relax NGなど)

    XML文書

    参照

    ・・・要素

    ・・・属性

    @attribute:element3

    @attribute1:decimal

    @attribute2:String

    @attribute1:int

    @attribute2:String

    @attribute:int

    attribute1 : int = 2

    : element1

    attribute1 : int = 223attribute2 : string = name1

    : element2

    attribute1 : intattribute1 : decimal = 3.34attribute2 : string = name2

    : element3

    attribute1 : int = 1

    : element1

    attribute1 : int = 123attribute2 : string = name1

    : element2

    attribute1 : intattribute1 : decimal = 1.34attribute2 : string = name2

    : element3

    attribute1 : int = 3

    : element1

    attribute1 : int = 323attribute2 : string = name1

    : element2

    attribute1 : intattribute1 : decimal = 323attribute2 : string = 3.34

    : element3

    図図図図 2::::XML モデルモデルモデルモデルととととオブジェクトモデルオブジェクトモデルオブジェクトモデルオブジェクトモデルののののマッピングマッピングマッピングマッピング

  • 13

    することで,Java プログラムから XMLファイル BPSS モデルを扱う.これにより,XMLファ

    イルの扱いに時間を取られることなく,シミュレーション・プログラムのコアの処理部分だけ

    に注力できる.また,扱う XM ファイルを拡張する場合も即座に新たな XML に対応したクラ

    クラス群を生成することが可能である.

    図 3はデータバインディング・ツールを利用したアプリケーション開発の手順である.

    ①スキーマの作成

    Relax NG やW3C XML Schemaなどで書かれたスキーマ文書(A)(入力ファイル(B)に対応

    したスキーマ)を作成する.13

    ②スキーマ・コンパイル

    そのスキーマ文書をデータバインディング・ツールによって,スキーマ・コンパイルを行

    うことで,スキーマ文書(A)の構造を持つ XML ファイルの入出力やタグ要素ごとの getter,

    setter メソッドなどが記述されたクラス群(C)が生成される.クラスの生成・命名規則は,

    ツールや使用するスキーマ言語によって異なるが,今回の Relax NG と Relaxer の組み合

    わせでは,タグ要素の 1 階層ごとにクラスを生成し,要素名クラス名として命名される.

    ツールによって,GoF のデザインバターンの1つである Visitor パターンや Factory パター

    ンの生成なども可能である.

    ③アプリケーションの作成

    生成されたクラス群(C)を参照(import)や継承(extends)して,アプリケーションプログ

    ラムの作成を行う.

    ④実行

    ③で作成したアプリケーション本体に,スキーマ文書(A)に準拠する XML 文書(B)を入力

    として渡すことで,アプリケーションの実行が可能になる.

    入力

    入力

    生成

    図図図図 3::::データバインディングデータバインディングデータバインディングデータバインディング・・・・ツールツールツールツールをををを利用利用利用利用したしたしたしたアプリケーションアプリケーションアプリケーションアプリケーション開発開発開発開発

    13 スキーマ文書(A)の作成には XML文書(B)から James Clark の Trangというツールを使うことで自動生成する

    ことが可能である.James Clarkは XML関連の仕様に広く関わる人物であり,ツールに対する信頼性が高い.

  • 14

    第第第第4章章章章 BPSSによるによるによるによるモデルモデルモデルモデル設計設計設計設計

    4.1. 対象対象対象対象ののののビジネスビジネスビジネスビジネス・・・・プロセスプロセスプロセスプロセス 図 4 は,モデル化を行うビジネス・プロセスの構造を BOM(Bill of Materials)に各製品・

    部品に関連する工程を記述したものである.各工程がそれぞれ別の組織で行われているビジネ

    ス・プロセスである.製品 A は子部品 B と子部品 C が組み立てられて完成し,その工程が所

    要 3 分の Ass1 工程である.子部品 B は材料 D と材料 E を使用して組み立てられる.その工程

    名は Ass2 で所要時間は 6 分.同様に,子部品 C は孫部品 F を使用して組み立てられる.その

    工程名は Ass3 で所要時間は 3 分.一番下の階層に位置する材料 D と材料 E はオーダー工程

    Ord1 で用意され,その所要時間は 5 分.孫部品 F は生産工程 Prd1 で自家生産され,所要時間

    は 6 分である.またそれぞれ初期在庫量が設定されている.

    材料D (ID=4, stock=3)

    材料E (ID=5, stock=2)

    子部品C (ID=3, stock=3)

    子部品B (ID=2, stock=4)

    孫部品F (ID=6, stock=5)

    製品A (ID=1, stock=0)

    Ass2, run=6

    Ass3, run=3

    Prd1, run=6

    Ass1 run=3

    Ord1, run=5

    Ord2, run=5

    部品or製品名 (ID=No, stock=初期在庫)

    OperationName, run=処理時間

    組立工程Ass1,所要時間3分で

    部品B,Cから製品Aが生産される

    部品Eはオーダー工程Ord2で外部サプラ

    イヤーから所要時間5分で入荷される

    図図図図 4::::対象対象対象対象ののののビジネスビジネスビジネスビジネス・・・・プロセスプロセスプロセスプロセス構造構造構造構造

    4.2. BPSS のののの構成要素構成要素構成要素構成要素 第 3 章 で述べたように,ebXML の目的はビジネスとビジネスの連携,コラボレーションで

    ある.本章では,2001 年 5 月 11 日に UN/CEFACT と OASIS がリリースした ebXML Business

    Process Specification Schema v1.01の仕様説明と共に設計を行っていく.しかし,仕様のすべて

    をカバーはせず,本研究では,最小限の定義部分を取り出し BOM-BPSS として Relax NG によ

    る XMLバージョンを作成した.(付録(2))

    図 5 は BPSS 構成の例を示したものである.ルート要素は ProcessSpecification となっており,

    その中に MultiPartyCollaboration,BinaryCollaboration,BusinessTransaction,BusinessDocument

    が含まれている.2 者間行われる最初の取引として「BusinessTransaction」が定義されており,

    各 BusinessTransation には 1 つか 2 つのビジネス文書「Business Document」が関連付けられる.

  • 15

    「BinaryCollaboration」は,2 つの BusinessPartnerRole 間で行われる BusinessTransaction のフロ

    ーを定義するも要素 2 者間で行われる取引を表す.また BinaryCollaboration 中の構成要素にさ

    らに BinaryCollaboration を含めて再帰的な構成にすることも可能である.さらに

    「MultipartyCollaboration」は,3 つ以上の BusinessPartnerRole 間で行われる BinaryCollaboration

    のフローを定義する要素で,3者間以上で行われる取引を表す.

    図図図図 5:BPSS のののの構成構成構成構成

    図 6 は,今回使用する BOM-BPSS の Relax NG スキーマのトップレベルを図的表現した構

    成図である.四角形で表されているタグとタグは Relax NG スキーマ言語で

    定義されている要素である.は別途定義されたタグ定義を参照するタグであり,属性

    name の値がその参照先である.参照先では,その値を属性 name として持つタグで定

    義されている.尚,構成図ではタグは紙面の都合上省略している.タグ

    は,該当タグ以下のタグや属性が 1 つ以上存在することを意味する.図 6 の 1 行目では,

    タグ下にが存在し,属性 name の値は

    BusinessDocument タグ定義を参照している.これはタグ下に,1 つ以上

    のタグが存在することを意味する.実際の Relax NG スキーマで記述する

    とリスト 1 のようになる.がタグを表し,タグが属性を表している.尚,

    オプションの属性である nameID は省略してある.これらの定義が記述された Relax NG スキ

  • 16

    ーマはモデル設計時の入力補助として,BPSS モデルから Java クラスへのマッピングに使用さ

    れる.次節以降で,ルート要素配下の要素仕様を示し,モデル化を行っていく.

    @uuid: String

    @version: String

    階層

    高 低

    optional

    optional

    @nameID: int

    @name: String

    optional

    @specificationLocation:String

    @specificationElement:String

    @name:Package

    @name:MultiParty

    Collaboration

    クラス名

    変数名:型名

    ・・・要素

    ・・・属性

    Java XML

    @name:BusinessDocument

    @name:Business

    Transaction

    @name:Binary

    Collaboration

    参照

    参照

    参照

    <Package/>

    @nameID: String

    @name: String

    参照

    図 7

    図 11

    参照

    図 14

    図図図図 6::::ProcessSpecification のののの構成構成構成構成

  • 17

    1:

    2:

    3:

    4:

    5:

    6:

    7:

    8:

    9:

    10:

    11:

    12:

    13:

    14:

    15:

    16:

    17:

    18:

    19:

    20:

    21:

    22:

    23:

    24:

    25:

    26:

    27:

    28:

    29:

    30:

    31:

    32:

    33:

    34:

    35:

    36:

    37:

    38:

    リストリストリストリスト 1::::ProcessSpecification のののの Relax NG スキーマスキーマスキーマスキーマ定義定義定義定義

    4.3. モデルモデルモデルモデル設計手順設計手順設計手順設計手順 設計手順は BPSS 仕様書 5 章 [6]で紹介されている「How to design collaborations and

    transactions, re-using at design time」を参考に,以下の手順で進め図 4をモデル化していく.

    (1) BusinessTransaction: 2者間で行われるトランザクションの最小単位の設計(4.4)

    (2) BinaryCollaboration: 2者間で行われる取引の設計(4.5)

    (3) MultiPartyCollaboration: 3者間以上で行われる取引の設計(4.6)

    上記のように Business Transaction から Binary Collaboration,Multiparty Collaboration へと

    bottom-up方式で設計でしていくが,top-down 方式による設計も可能である.

  • 18

    4.4. 2 者間者間者間者間でででで行行行行われるわれるわれるわれるトランザクショントランザクショントランザクショントランザクションのののの最小単位最小単位最小単位最小単位 4.4.1. BusinessTransaction:仕様仕様仕様仕様

    BPSS では 2 者間のビジネスのやりとり,ビジネス・トランザクションを定義する最小単位

    と し て BusinessTransaction を 定義 す る. 図 7 は BPSS の XML バ ー ジ ョン での

    BusinessTransaction タグ構成である.BusinessTransaction タグは,RequestingBusinessActivity タ

    グと RespondingBusinessActivity タグで構成され,各 Activity にビジネス文書を表す

    DocumentEnvelope を設定することが可能である.DocumentEnvelop タグには businessDocument

    属性が存在し,別途 BusinessDocumentタグで定義されたビジネス文書が参照される.

    BOM-BPSS では,BusinessTransaction は BOM モデルのオペレーションに対応し,ビジネス

    文書は製品の納品書や生産指示カンバンを想定している.

    ・・・要素

    ・・・属性

    @businessDocument

    @name:Requesting

    BusinessActivity

    @name:Responding

    BusinessActivity

    @nameID: int

    @name: String

    optional

    @name: String

    @nameID: intoptional

    @nameID: int

    @name: String

    optional

    @name:DocumentEnvelop

    @name:DocumentEnvelop

    階層

    高 低

    参照

    参照

    参照

    参照

    図図図図 7::::BusinessTransaction のののの構成構成構成構成

  • 19

    この構成に基づいた BusinessTransaction の例が,リスト 2 の Notification を行うビジネス・

    トランザクションである.ここでは sendASN という名前の RequestingBusinessActivity が ASN

    という BusinessDocument を送付する.この Notification トランザクションは最もシンプルな例

    に な っ て お り , RequestingBusinessActivity に 対 し て 応 答 の 必 要 が な い な い の で

    RespondingBusinessActivity は空となっている.このようなシンプルなトランザクションでは

    RespondingBusinessActivityは必ずしも必要な要素ではない.

    1:

    2:

    3:

    4:

    5:

    6:

    リストリストリストリスト 2::::BusinessTransaction のののの例例例例((((Notify of advance shipment))))

    図図図図 8::::BusinessTransaction のののの例例例例((((Notify of advance shipment))))のののの Choreography

    この Notification トランザクションを実現するために,ASN という名前のビジネス・ドキュ

    メントの定義が必要となる.実際の記述は以下のようなシンプルなものである.

    1:

    リストリストリストリスト 3::::BusinessDocument のののの例例例例((((ASN))))

    BusinessTransaction の各 Activity タグには Business Signal と呼ばれるトランザクション対に

    する acknowledgement 属性を設定することが可能である.リスト 4 の例では,Purchase Order

    という名前の RequestingBusinessActivity を受け取ったかどうかを timeToAcknowledgeReceipt の

    示す期限内に Business Signal として送ること,またそれを受け入れたかどうかを

    timeToAcknowledgeAcceptance の示す期限内に Business Signal として送ることなどが定義され

    ている.尚,この例の期限は日時の表記を規定する ISO8006 に基づいて記述されており,P2D

    は「Period: 5 days from start of transaction」を意味する.実際の Business Signalの評価はトラン

    ザクションの下位のプロトコル(ソフトウェアなど)によって評価され応答される.

    Requesting

    Business

    Activity

    Responding

    Business

    Activity Notification of

    Advance Shipment

    BusinessTransaction: Notification of Advance Shipment

    ASN

    BusinessDocument

  • 20

    1:

    2:

    5:

    6:

    7:

    9:

    11:

    12:

    リストリストリストリスト 4::::BusinessTransaction のののの例例例例 (Create Order)

    図図図図 9::::BusinessTransaction のののの例例例例 (Create Order) のののの Choreography

    4.4.2. 設計設計設計設計 (1) 本研究では BOM で表現できるような部品型のビジネス・プロセスのモデルを記述するため

    に,BusinessTransactionにおいて Business Signalを使用せずリスト 2の Notificationを行うトラ

    ンザクションのようなモデルを使用する.リスト 5 はその中の1つ,部品 C を組み立てる工

    程を表す Ass2 という名前の BusinessTransaction と B という名前の BusinessDocument の定義で

    ある.

    1:

    2:

    3:

    4:

    5:

    6:

    7:

    リストリストリストリスト 5::::BusinessTransaction (Ass2)

    Requesting

    Business

    Activity

    Responding

    Business

    Activity

    Purchase

    Order

    PO

    Acknowledgement

    timeToAcknowledgeReceipt

    timeToAcknowledgeAcceptance

    timeToAcknowledgeReceipt

    3 days

    2 days

    BusinessTransaction: Create Order

    Purchase

    Order

    PO

    Acknowl

    edgemen

    t BusinessDocument

  • 21

    BusinessTransaction: Ass2

    Requesting

    Business

    Activity

    Responding

    Business

    Activity

    Assembling

    BusinessDocumentで定義

    されたビジネス文書

    B

    TransactionのRequestor

    TransactionのResponder

    図図図図 10::::BusinessTransaction (Ass2)のののの Choreography

    同様に,リスト 6 は部品 C に対しても Ass3 という名前の BusinessTransaction と C という名

    前の BusinessDocumentの定義である.

    1:

    2:

    3:

    4:

    5:

    6:

    7:

    リストリストリストリスト 6::::BusinessTransaction (Ass3)

    4.5. 2 者間者間者間者間でででで行行行行われるわれるわれるわれる取引取引取引取引のののの設計設計設計設計 4.5.1. BinaryCollaboration 仕様仕様仕様仕様

    BinaryCollaboration では 2 者間のビジネス取引を表すために,2 つの BusinessPartnerRole間の

    BusinessTransaction の組み合わせとして定義する.図 11 は BPSS の XML バージョンでの

    BinaryCollaborationタグ構成である.

    BinaryCollaboation では,まず 2 つの Role(BusinessPartnerRole)を定義し,その 2 つの

    BusinessPartnerRole が 4.4 で定義した BusinessTransaction の RequestingBusinessActivity と

    RespondingBusinessActivity のどちらの振る舞いを行うのかを定義する.それは Relax NG ス

    キーマで定義された-タグ下の BusinessTransactionActivityの属性 nameで

    BusinessTransaction を指定し,RequestingBusinessActivity に対応する fromAuthorizedRole,

    RespondingBusinessActivity に対応する toAuthorizedRole で指定する.Transaction 要素では

    BusinessTransaction に遷移関係を定義したい場合に使用し,rom/toBusinessState に Business-

    TransactionActivity の名前,つまり BusienssTransaction を指定する.また,CollaborationActivity

    は再帰的に BinaryCollaboration を設定することが可能な要素である.尚,タグは,配

    下のタグのどれかが選択されることを意味する Relax NGの要素である.BinaryCollaborationの

    実行完了時間は,属性 timeToPerformで定義される.

  • 22

    BusinessTransactionActivity

    @fromAuthorizedRole: String

    @nameID: int

    @toAuthorizedRole: String

    @name: String

    @name: Role

    @name: Collaboration

    Activity

    CollaborationActivity

    @fromAuthorizedRole: String

    @nameID: int

    @toAuthorizedRole: String

    @name: String

    @binaryCollaboration: String

    optional optional

    参照

    クラス名

    変数名:型名

    ・・・要素

    ・・・属性

    Java XML

    階層

    高 低

    @timeToPerform: int

    @nameID: int

    @name: String

    optional

    @nameID: int

    @name: String

    optional

    @fromBusinessState: String

    @toBusinessState: String

    @name: Transition

    @name: BusinessTransa

    ctionActivity

    参照

    参照

    参照

    図図図図 11::::BinaryCollaboration のののの構成構成構成構成

    図 9 は BinaryCollaboration の例である.Product Fulfillment という BinaryCollaboration は,

    Create Order と Notify Shipment の 2 つの BusinessTransaction の遷移で構成されている.また,

    図 9 のような条件分岐のビジネス・プロセスを定義することも可能である.そのための要素

    として BPSSではに Start,Success,Failure,Fork,Joinの 5 つの擬似状態

    が定義されており,これらを要素で接続することでフローを表現することが可能

    である.例では,Transition の属性 formBusinessState に設定されている Create Order という

    BusinessTransactionが成功したら,Notify Shipment という BusinessTransactionの Business Signal

    として conditionGuard を送る.例えば,成功なら Success,失敗なら Failure を送る.(リスト

    7)

  • 23

    図図図図 12::::BinaryCollaboration のののの例例例例 (Product Fulfillment)

    timeToPerform=”Pertio: 5 days from start of transaction

  • 24

    図図図図 13::::BinaryCollaboration (Ordering)

    1:

    2:

    3:

    4:

    6:

    8:

    リストリストリストリスト 8::::BinaryCollaboration (Ordering)

    4.6. 3 者間以上者間以上者間以上者間以上でででで行行行行われるわれるわれるわれる取引取引取引取引のののの設計設計設計設計 4.6.1. MultiPartyCollaboration 仕様仕様仕様仕様

    MultiPartyCollaboration は , BinaryCollaboration の 組 み 合 わ せ に よ っ て 表 現 さ れ ,

    BinaryCollaboration 間の変遷を表す.図 14 は MultiPartyCollaboration の構成を図示したもので,

    MultiPartyCollaboration は 1 つ以上()の BusinessPartnerRole で構成されている.

    BusinessPartnerRole は,1 つ以上の Performs 要素,0 個以上()の Transition 要

    素で構成されている.Transiton の属性 fromBusinessState と fromBusinessState の値として,モデ

    ル化したい遷移関係の BinaryCollaboration 名を記述する.Performs はその BinaryCollaboration

    の Request を開始する Role( initiatingRole)なのか,またはその Request を受ける Role

    (respondingRole)なのかを定義する.これにより,複数の BinaryCollaboration 内の Role が結

    び付けられ,BinaryCollaboration の遷移関係,つまり 3 者間以上で行われる取引を記述するこ

    とが可能になる.

  • 25

    @nameID: int

    @name: String

    クラス名

    変数名:型名

    ・・・要素

    ・・・属性

    Java XML

    optional

    @nameID: int

    @name: String

    階層

    高 低

    @name: Performs

    @name: Transition

    @name: Business

    PartnerRole

    optional

    @fromBusinessState: String

    @toBusinessState: String

    @initiatingRole:String

    @respondingRole: String

    optional

    参照

    参照

    参照

    図図図図 14::::MultiPartyCollaboration のののの構成構成構成構成

    4.6.2. 設計設計設計設計(3) 図 15 は,図 4 の部品型ビジネス・プロセスの BOM-BPSS モデルの振る舞いを図示したも

    のである.この中で, 図 15 内の破線で囲まれた部分,3 つの BinaryCollaboration,

    AssemblingB, AssemblingC, FinalAssemblingの遷移関係(AssemblingBと AssemblingB の 2 つの

    reciver から FinalAssembling の assembler に伸びている矢印)を MultiPartyCollaboration によっ

    てモデル化する.A1 は AssemblingB と AssemblingC という 2 つの BinaryCollaboration の

    receiver(Role)であり,また FinalAssembling という BinaryCollaboraiton の assembler(Role)

  • 26

    でもある.この A1 によって 3 つの BinaryCollaboraiton は結合され遷移関係を定義する.その

    Roleの関係,つまり遷移関係がによって定義されている.

    O1 P1 A3 A2 A1 S1

    producer receiverPrd1

    F

    ProductionF

    assembler receiverAss2

    AssemblingB

    assembler receiverAss3

    C

    AssemblingC

    assembler receiverAss1

    A

    FinalAssembling

    BinaryCollaborationの遷移

    @RespondingRole

    @RequestingRole

    で定義されたビジネス文書

    B

    seller buyer

    Ordering

    DOrdD

    OrdE E

    図図図図 15::::BOM-BPSS によるによるによるによるモデルモデルモデルモデルのののの Choreography

    1:

    略 2:

    3:

    4:

    5:

    7:

    9:

    略 10:

    リストリストリストリスト 9::::MultiPartyCollaboration (ModelMain)

  • 27

    第第第第5章章章章 シミュレーションシミュレーションシミュレーションシミュレーション・・・・プログラムプログラムプログラムプログラム

    5.1. プログラムプログラムプログラムプログラムのののの流流流流れれれれ 本章では BOM-BPSS モデルのシミュレーション・プログラムに関して述べる.BOM-BPSS

    によってモデル化されたビジネス・プロセスを動的に Java のオブジェクトにマッピングしシ

    ミュレートする.

    5.2. BOM-BPSS API 先に述べたようにデータバインディング・ツール Relaxer を用い,第 4 章 で作成した Relax

    NG で定義した BOM-BPSS(付録 h (3))を使用して, BOM-BPSS モデル14を Java クラスにマ

    ッピングするためのクラス群(以下 BOM-BPSS API)を生成した.生成されたファイルは要素

    =クラスとなっているほか,クラス間の関係を示すクラスやインタフェース(Interface 型)な

    ど膨大な量であるので,ソースを割愛し UMLクラス図のみ示す.図 16 は BOM-BPSS APIの

    クラス図であり,重要な要素であるクラス名と属性値のみを表示しメソッド名や一部のクラス

    は省略した.クラス間は参照関係になっていることが点線矢印で表現されている.省略した各

    メソッドには,コンストラクタや getter, setterメソッド,XMLファイルの書き出しのためのメ

    ソッドが記述されている.

    5.3. クラスクラスクラスクラスのののの静的関係静的関係静的関係静的関係 本研究では,ビジネス・プロトコルや BPSS の調査と同時に,ビジネス・プロセスを動的に

    シミュレーションするためのプログラムも同時に作成していた(図 17).付録 (7)の

    TransformData クラスにより BOM-BPSS モデルを上記シミュレーション・プログラムのデータ

    構造へデータ変換を行い,このシミュレーション・プログラムを利用する.15図 17 が上記シ

    ミュレーション・プログラムのコア部分である.コードとフローチャートを付録(4)に示す.

    14 BOM-BPSS仕様に従って書かれたビジネス・プロセス 15 もちろんマニュアルで変換することも可能である.

  • 28

    図図図図 16::::バインディングツールバインディングツールバインディングツールバインディングツールによってによってによってによって生成生成生成生成されたされたされたされた BOM-BPSS API のののの UML クラスクラスクラスクラス

  • 29

    + main(in String[])

    SimApp

    # clock: Time

    # makeShippment(in ProductionLine, in Ope...

    # hasNoPair(in ProductionLine, in Operation...

    # getTargetResource(in Operation, in Facto...

    # releaseJobShop(in Factory, in Factory, in ...

    # useJobShop(in Factory, in Operation): void

    # storeStock(in Operation): void

    # consumeStock(in ProductionLine, in Oper...

    # isStartOperation(in Operation, in Factory):...

    # isFinalOperation(in Operation, in Factory):...

    # getEarliestFinishOperation(in ProductionLi...

    # proceedModel(in ProductionLine, in Produ...

    # proceedOperation(in Operation, in int): void

    # setOperations(in ProductionLine, in Produ...

    # setAllActives(in Factory): void

    # setAvailabilities(in ProductionLine, in Prod...

    # hasStockInPrevOperations(in ProductionL...

    # printResourceState(in Resource): void

    # printModelIndex(in ProductionLine): void

    # printModelState(in ProductionLine, in Fact...

    # printOperationState(in Operation): void

    # printModel(in ProductionLine, in Factory): ...

    DESSimulator

    jp.ac.tsukuba.sk.jasmin.mt09App

    - id_: int

    - name_: String

    - availability_: boolean

    - setuptime_: int

    - runtime_: int

    - stock_: int

    - resource_: String

    - previousOperation_: List

    - nextOperation_: List

    + getId()

    + setId()

    + getName()

    + setName()

    + getAvailability()

    + setAvailability()

    + getSetuptime()

    + getRuntime()

    + setRuntime()

    + getStock()

    + setStock()

    + getResource()

    + getPreviousOperation()

    + setPreviousOperation()

    + addPreviousOperation()

    + setPreviousOperation()

    + getNextOperation()

    + setNextOperation()

    + addNextOperation()

    Operation

    - documentation_: String

    - operation_: List

    + ProductionLine(in File): void

    + getDocumentation(): String

    + getOperation(): Operation[]

    + sizeOperation(): int

    + makeTextElement(in PrintWriter): void

    + toString(): String

    ProductionLine

    jp.ac.tsukuba.sk.jasmin.mt08Operation

    - resource_: List

    + Factory(in File): void

    + getResource(): Resource[]

    + sizeResource(): int

    + makeTextElement(in StringBuffer): void

    + toString(): String

    Factory

    - id_: int

    - name_: String

    - type_: int

    - availNum_: int

    - active_: boolean

    + getId(): int

    + setId(in int): void

    + getName(): String

    + setName(in String): void

    + getType(): int

    + setType(in int): void

    + getAvailNum(): int

    + setAvailNum(in int): void

    + getActive(): boolean

    + setActive(in boolean): void

    Resource

    jp.ac.tsukuba.sk.jasmin.mt08Factory

    図図図図 17::::シミュレーションシミュレーションシミュレーションシミュレーション・・・・プログラムプログラムプログラムプログラムののののクラスクラスクラスクラス図図図図

    表表表表 1::::クラスクラスクラスクラス概要概要概要概要

  • 30

    5.4. 実行結果実行結果実行結果実行結果 リスト 10 は最初に示した図 4 の BOM-BPSS モデル(付録 h (3))をシミュレートした実行結果である.実行結果は状態遷移図で表されてお

    り,「時間 Operation 名(RT: 残り作業時間) Operation で生産される品名 Operation 名(RT: 残り作業時間) Operation で生産される品

    名・・・」の順に表示され,状態が変化するときに新たな行が追加されている.「*」は Operation が実行可能であることを示し,Operation を

    実行するための在庫が存在し,かつリソース(Job Shop)に空きがあることを意味する.

    1: t Prd1(RT) F Ord2(RT) E Ord1(RT) D Ass3(RT) C Ass2(RT) B Ass1(RT) A

    2: -------------------------------------------------------------------------------------------------------------------------------------------------------

    3: 0 Prd1(6)* 5 Ord2(5)* 2 Ord1(5)* 3 Ass3(3)* 3 Ass2(6)* 4 Ass1(3)* 0

    4: 3 Prd1(3)* 5 Ord2(2)* 2 Ord1(2)* 3 Ass3(0)* 4 Ass2(3)* 4 Ass1(0)* 1

    5: 3 Prd1(3)* 4 Ord2(2)* 2 Ord1(2)* 3 Ass3(3)* 3 Ass2(3)* 3 Ass1(3)* 1

    6: 5 Prd1(1)* 4 Ord2(0)* 3 Ord1(0)* 4 Ass3(1)* 3 Ass2(1)* 3 Ass1(1)* 1

    7: 5 Prd1(1)* 4 Ord2(5)* 3 Ord1(5)* 4 Ass3(1)* 3 Ass2(1)* 3 Ass1(1)* 1

    8: 6 Prd1(0)* 5 Ord2(4)* 3 Ord1(4)* 4 Ass3(0)* 4 Ass2(0)* 4 Ass1(0)* 2

    9: 6 Prd1(6)* 4 Ord2(4)* 2 Ord1(4)* 3 Ass3(3)* 3 Ass2(6)* 3 Ass1(3)* 2

    10: 9 Prd1(3)* 4 Ord2(1)* 2 Ord1(1)* 3 Ass3(0)* 4 Ass2(3)* 3 Ass1(0)* 3

    11: 9 Prd1(3)* 3 Ord2(1)* 2 Ord1(1)* 3 Ass3(3)* 3 Ass2(3)* 2 Ass1(3)* 3

    12: 10 Prd1(2)* 3 Ord2(0)* 3 Ord1(0)* 4 Ass3(2)* 3 Ass2(2)* 2 Ass1(2)* 3

    13: 10 Prd1(2)* 3 Ord2(5)* 3 Ord1(5)* 4 Ass3(2)* 3 Ass2(2)* 2 Ass1(2)* 3

    14: 12 Prd1(0)* 4 Ord2(3)* 3 Ord1(3)* 4 Ass3(0)* 4 Ass2(0)* 3 Ass1(0)* 4

    15: 12 Prd1(6)* 3 Ord2(3)* 2 Ord1(3)* 3 Ass3(3)* 3 Ass2(6)* 2 Ass1(3)* 4

    16: 15 Prd1(3)* 3 Ord2(0)* 3 Ord1(0)* 4 Ass3(0)* 4 Ass2(3)* 2 Ass1(0)* 5

    17: 15 Prd1(3)* 2 Ord2(5)* 3 Ord1(5)* 4 Ass3(3)* 3 Ass2(3)* 1 Ass1(3)* 5

    18: 18 Prd1(0)* 3 Ord2(2)* 3 Ord1(2)* 4 Ass3(0)* 4 Ass2(0)* 2 Ass1(0)* 6

    19: 18 Prd1(6)* 2 Ord2(2)* 2 Ord1(2)* 3 Ass3(3)* 3 Ass2(6)* 1 Ass1(3)* 6

    20: 20 Prd1(4)* 2 Ord2(0)* 3 Ord1(0)* 4 Ass3(1)* 3 Ass2(4)* 1 Ass1(1)* 6

    21: 20 Prd1(4)* 2 Ord2(5)* 3 Ord1(5)* 4 Ass3(1)* 3 Ass2(4)* 1 Ass1(1)* 6

    22: 21 Prd1(3)* 2 Ord2(4)* 3 Ord1(4)* 4 Ass3(0)* 4 Ass2(3)* 1 Ass1(0)* 7

    23: 21 Prd1(3)* 1 Ord2(4)* 3 Ord1(4)* 4 Ass3(3)* 3 Ass2(3)* 0 Ass1(3)* 7

    24: 24 Prd1(0)* 2 Ord2(1)* 3 Ord1(1)* 4 Ass3(0)* 4 Ass2(0)* 1 Ass1(0)* 8

    25: 24 Prd1(6)* 1 Ord2(1)* 2 Ord1(1)* 3 Ass3(3)* 3 Ass2(6)* 0 Ass1(3)* 8

    26: 25 Prd1(5)* 1 Ord2(0)* 3 Ord1(0)* 4 Ass3(2)* 3 Ass2(5)* 0 Ass1(2)* 8

    27: 25 Prd1(5)* 1 Ord2(5)* 3 Ord1(5)* 4 Ass3(2)* 3 Ass2(5)* 0 Ass1(2)* 8

    28: 27 Prd1(3)* 1 Ord2(3)* 3 Ord1(3)* 4 Ass3(0)* 4 Ass2(3)* 0 Ass1(0) 9

    29: 27 Prd1(3)* 0 Ord2(3)* 3 Ord1(3)* 4 Ass3(3)* 4 Ass2(3)* 0 Ass1(0) 9

  • 31

    30: 30 Prd1(0)* 1 Ord2(0)* 4 Ord1(0)* 5 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 9

    31: 30 Prd1(6)* 0 Ord2(5)* 3 Ord1(5)* 4 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 9

    32: 33 Prd1(3)* 0 Ord2(2)* 3 Ord1(2)* 4 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 10

    33: 35 Prd1(1)* 0 Ord2(0)* 4 Ord1(0)* 5 Ass3(0) 5 Ass2(1)* 0 Ass1(0) 10

    34: 35 Prd1(1)* 0 Ord2(5)* 4 Ord1(5)* 5 Ass3(0) 5 Ass2(1)* 0 Ass1(0) 10

    35: 36 Prd1(0)* 1 Ord2(4)* 4 Ord1(4)* 5 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 10

    36: 36 Prd1(6)* 0 Ord2(4)* 3 Ord1(4)* 4 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 10

    37: 39 Prd1(3)* 0 Ord2(1)* 3 Ord1(1)* 4 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 11

    38: 40 Prd1(2)* 0 Ord2(0)* 4 Ord1(0)* 5 Ass3(0) 5 Ass2(2)* 0 Ass1(0) 11

    39: 40 Prd1(2)* 0 Ord2(5)* 4 Ord1(5)* 5 Ass3(0) 5 Ass2(2)* 0 Ass1(0) 11

    40: 42 Prd1(0)* 1 Ord2(3)* 4 Ord1(3)* 5 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 11

    41: 42 Prd1(6)* 0 Ord2(3)* 3 Ord1(3)* 4 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 11

    42: 45 Prd1(3)* 0 Ord2(0)* 4 Ord1(0)* 5 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 12

    43: 45 Prd1(3)* 0 Ord2(5)* 4 Ord1(5)* 5 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 12

    44: 48 Prd1(0)* 1 Ord2(2)* 4 Ord1(2)* 5 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 12

    45: 48 Prd1(6)* 0 Ord2(2)* 3 Ord1(2)* 4 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 12

    46: 50 Prd1(4)* 0 Ord2(0)* 4 Ord1(0)* 5 Ass3(1)* 4 Ass2(4)* 0 Ass1(1)* 12

    47: 50 Prd1(4)* 0 Ord2(5)* 4 Ord1(5)* 5 Ass3(1)* 4 Ass2(4)* 0 Ass1(1)* 12

    48: 51 Prd1(3)* 0 Ord2(4)* 4 Ord1(4)* 5 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 13

    49: 54 Prd1(0)* 1 Ord2(1)* 4 Ord1(1)* 5 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 13

    50: 54 Prd1(6)* 0 Ord2(1)* 3 Ord1(1)* 4 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 13

    51: 55 Prd1(5)* 0 Ord2(0)* 4 Ord1(0)* 5 Ass3(2)* 4 Ass2(5)* 0 Ass1(2)* 13

    52: 55 Prd1(5)* 0 Ord2(5)* 4 Ord1(5)* 5 Ass3(2)* 4 Ass2(5)* 0 Ass1(2)* 13

    53: 57 Prd1(3)* 0 Ord2(3)* 4 Ord1(3)* 5 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 14

    54: 60 Prd1(0)* 1 Ord2(0)* 5 Ord1(0)* 6 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 14

    55: 60 Prd1(6)* 0 Ord2(5)* 4 Ord1(5)* 5 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 14

    56: 63 Prd1(3)* 0 Ord2(2)* 4 Ord1(2)* 5 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 15

    57: 65 Prd1(1)* 0 Ord2(0)* 5 Ord1(0)* 6 Ass3(0) 5 Ass2(1)* 0 Ass1(0) 15

    58: 65 Prd1(1)* 0 Ord2(5)* 5 Ord1(5)* 6 Ass3(0) 5 Ass2(1)* 0 Ass1(0) 15

    59: 66 Prd1(0)* 1 Ord2(4)* 5 Ord1(4)* 6 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 15

    60: 66 Prd1(6)* 0 Ord2(4)* 4 Ord1(4)* 5 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 15

    61: 69 Prd1(3)* 0 Ord2(1)* 4 Ord1(1)* 5 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 16

    62: 70 Prd1(2)* 0 Ord2(0)* 5 Ord1(0)* 6 Ass3(0) 5 Ass2(2)* 0 Ass1(0) 16

    63: 70 Prd1(2)* 0 Ord2(5)* 5 Ord1(5)* 6 Ass3(0) 5 Ass2(2)* 0 Ass1(0) 16

    64: 72 Prd1(0)* 1 Ord2(3)* 5 Ord1(3)* 6 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 16

    65: 72 Prd1(6)* 0 Ord2(3)* 4 Ord1(3)* 5 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 16

  • 32

    66: 75 Prd1(3)* 0 Ord2(0)* 5 Ord1(0)* 6 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 17

    67: 75 Prd1(3)* 0 Ord2(5)* 5 Ord1(5)* 6 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 17

    68: 78 Prd1(0)* 1 Ord2(2)* 5 Ord1(2)* 6 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 17

    69: 78 Prd1(6)* 0 Ord2(2)* 4 Ord1(2)* 5 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 17

    70: 80 Prd1(4)* 0 Ord2(0)* 5 Ord1(0)* 6 Ass3(1)* 4 Ass2(4)* 0 Ass1(1)* 17

    71: 80 Prd1(4)* 0 Ord2(5)* 5 Ord1(5)* 6 Ass3(1)* 4 Ass2(4)* 0 Ass1(1)* 17

    72: 81 Prd1(3)* 0 Ord2(4)* 5 Ord1(4)* 6 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 18

    73: 84 Prd1(0)* 1 Ord2(1)* 5 Ord1(1)* 6 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 18

    74: 84 Prd1(6)* 0 Ord2(1)* 4 Ord1(1)* 5 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 18

    75: 85 Prd1(5)* 0 Ord2(0)* 5 Ord1(0)* 6 Ass3(2)* 4 Ass2(5)* 0 Ass1(2)* 18

    76: 85 Prd1(5)* 0 Ord2(5)* 5 Ord1(5)* 6 Ass3(2)* 4 Ass2(5)* 0 Ass1(2)* 18

    77: 87 Prd1(3)* 0 Ord2(3)* 5 Ord1(3)* 6 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 19

    78: 90 Prd1(0)* 1 Ord2(0)* 6 Ord1(0)* 7 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 19

    79: 90 Prd1(6)* 0 Ord2(5)* 5 Ord1(5)* 6 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 19

    80: 93 Prd1(3)* 0 Ord2(2)* 5 Ord1(2)* 6 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 20

    81: 95 Prd1(1)* 0 Ord2(0)* 6 Ord1(0)* 7 Ass3(0) 5 Ass2(1)* 0 Ass1(0) 20

    82: 95 Prd1(1)* 0 Ord2(5)* 6 Ord1(5)* 7 Ass3(0) 5 Ass2(1)* 0 Ass1(0) 20

    83: 96 Prd1(0)* 1 Ord2(4)* 6 Ord1(4)* 7 Ass3(0)* 5 Ass2(0)* 1 Ass1(0)* 20

    84: 96 Prd1(6)* 0 Ord2(4)* 5 Ord1(4)* 6 Ass3(3)* 4 Ass2(6)* 0 Ass1(3)* 20

    85: 99 Prd1(3)* 0 Ord2(1)* 5 Ord1(1)* 6 Ass3(0) 5 Ass2(3)* 0 Ass1(0) 21

    86: 100 Prd1(2)* 0 Ord2(0)* 6 Ord1(0)* 7 Ass3(0) 5 Ass2(2)* 0 Ass1(0) 21

    87: 100 Prd1(2)* 0 Ord2(5)* 6 Ord1(5)* 7 Ass3(0) 5 Ass2(2)* 0 Ass1(0) 21

    リストリストリストリスト 10::::シミュレーションシミュレーションシミュレーションシミュレーション実行結果実行結果実行結果実行結果

  • 33

    第第第第6章章章章 結論結論結論結論

    本研究では,ビジネス的側面と技術的側面の両方の取り決めであるビジネス・プロトコルに

    ついて調査し,その中で特にビジネス・プロセス記述言語についてそれぞれの特色を調査した.

    そして,ビジネス・プロセス記述言語 ebXML BPSS のサブセットとして BOM-BPSS という部

    品型ビジネス・プロセスのための言語を定義し,それによってモデル化された BOM-BPSS モ

    デルのシミュレーションまでを1つのフレームワークとして開発した.このフレームワーク以

    前,ebXML BPSS によって記述されたビジネスプロセス・モデルの動的特性を検証する術がな

    かった.このフレームワークによって,ビジネス・プロセスのシミュレーション結果の分析を

    し,その特性が分析可能になった.

    また,BOM-BPSS の定義とシミュレーション・プログラムへ落とし込む工程では,XML ス

    キーマ言語 Relax NG を使用し,データ構造としての XML 関連技術の有効性や,オブジェク

    ト指向言語との親和性を確認することができた.

    今後の展望として,現在はシンプルなモデルにしか対応していないので,フレームワークの

    ブラッシュアップも今後の研究として考えられる.具体的には,カンバン・システムのモデル

    化などが挙げられる.カンバン・システムの 2 つのカンバン,引き取りカンバンと生産指示カ

    ンバンをビジネス取引としてモデル化することで,カンバン・システムを導入したビジネス・

    プロセスの分析が可能になる.また,スケジューリングによる生産指示を実装することも可能

    であろう.

    BPSS はビジネス・パートナーとのコラボレーション取引を目的とした仕様であり,自家生

    産などの自社内のビジネス・プロセス記述には向いていない.それに対して,Web サービスの

    フロー定義として登場した BPEL では自社内のプライベートなプロセス記述に向いているとさ

    れている.また 2004 年 3 月 IBM と BEA Systems は BPEL に Java の拡張を施した BPELJ を

    発表している.BPELJ は Java で実行可能なスクリプトの機能有しており興味深い.今後,両

    者の仕様はお互いの長所を包含していき,内のビジネス・プロセスから外�