SOAP/UDDI/WSDL による B2B システムの開発 研究者 金山 隆志 中村 典浩 プッタソン 指導教官 越田 高志 1. はじめに サービス仲介者 1.1 開発の背景 <tModel> UDDI WSDL インターネットの普及とともに,ネットワークを 利用して企業業務活動全般を電子化する CALS が発 SOAP 検索 SOAP 登録・公開 展してきた.近年は,その CALS の中の電子商取引 (EC)が世界規模で展開されつつある.その電子商取 サービス利用者 接続 サービス提供者 SOAP 引システムを実現する技術として Java をベースに したクライアント‑サーバ技術が用いられてきた. 図 1.Web サービスの構成 我々は,特定の相手先との電子商取引とともに,必 ン上のサービス・ルーチンを呼び出したり,オブジ 要に応じて取引企業を選定できる動的な電子商取引 ェクトにアクセスしたりできるようにするプロトコ システムの開発を様々なテキストデータを一元的に ルである. SOAP を利用することで,様々な場所に 操作できる XML[1] をベースにした分散処理技術を 分散したサービスを結合し,システムとシステムを 用いて推進し, その開発を通して問題点を明確化し, 連携させることができるようになる.プラットホー その解決を提言してゆく. ム独立な XML を利用するため,環境の違いを吸収す 1.2 B2B システムについて ることができる SOAP は, まさにインターネット向け B2B(Business to Business)とは,企業間の電子商 の仕様といえる. XML メッセージを送信するプロト 取引やデータ交換の総称である.今までは,特定の コルに制限は無く,HTTP,SMTP,FTP などどのよう 企業間のみでのデータ交換であったが,これからは なものであっても構わない.[5] 必要に応じて,様々な企業との取引を行う動的な 2.2 UDDI B2B システムが求められている.そのためには,異 UDDI とは, その名前の通り, Web サービスの記述, なるプラットホーム上の多様なシステム,アプリケ 発見,統合のための仕組みである.この UDDI を利用 ーションとのデータ交換が必要となり,それにプラ することで,Web サービスを必要な時に検索するこ ットホーム独立な XML を利用する. とが出来るようになる. 1.3 Web サービスについて Web サービスを提供するサービス・プロバイダが, Web サービスとは, XML データを媒体としたインタ UDDI レジストリにWeb サービスを登録することによ ーネット上の動的な分散処理技術の総称である.そ って,Web サービスが公開される.一方,Web サービ の Web サービスを実現する技術が,SOAP(Simple スを利用するサービス・リクエスタは,自分が利用 Object Access Protocol)[2] , UDDI(Universal したい Web サービスの種類や内容をレジストリに対 Description して問い合わせ,検索して,利用する. Discovery and Integration)[3] , WSDL(Web Services Description Language)[4]の3 つの技術である.その構成を図 1.に示す. 2. B2B システムの技術 2.1 SOAP SOAP は,XML ベースのメッセージ交換により RPC (Remote Procedure Call)のようにリモート・マシ UDDI レジストリには,以下のような情報が登録さ れ,検索できるようになっている. ①ビジネス情報(WhitePages) Web サービス提供者についての情報が登録される. ②サービス情報 (YellowPages) Web サービス提供者の業務情報が登録される. ③バインド情報 (GreenPages) SOAP/UDDI/WSDL によるB2B システムの開発(1) Web サービスに接続する際のポインタや URL が記 生産しているメーカを検索し,発注するというもの 述される. である.その際に,商品コードとそのメーカ名の対 ④tModel 応を管理する DB,及びメーカ情報とメーカが提供す Web サービスのインタフェース情報を記述する. 具体的には WSDL へのポインタが記述される.[6] るWebサービスを一元的に管理するUDDIレジストリ を利用する. UDDI に登録される4 つのデータ構造型は, 各々XML 具体的には,卸売業者は小売業者を顧客として, の要素として定義されているため,UDDI レジストリ 複数のメーカの様々な商品に対する注文を一元的に へのアクセスを SOAP による XML 文書のメッセージ 受付け,顧客の指定する日時,店舗に納品する業務 の送受信によって行うことができる.また,UDDI レ を行う.特に,受注商品に対する納品率をできるだ ジストリ自身が Web サービスとして構成されており, け 100%に近づけること,小売業者への納品回答の高 UDDI レジストリへの登録,検索も SOAP メッセージ 速化と在庫状況と納品処理状況がいつでも確認でき を用いた Web サービスを介して行うことが出来る. ることが必要である.そのモデル図を図 2.で示す. 2.3 WSDL 食料品協会 UDDI サーバ WSDL とは,サービスがどのようなメッセージを理 解できるのかを説明するための規格であり,XML ベ ースの言語仕様の 1 つである.メッセージの構造や ③メーカ検索 通常メーカ 小売業者 ① ② 送受信の方法,採用されるプロトコルなどが記述さ れる.また,WSDL はコンピュータにより解析され, 受注 卸売業者 在庫確認 ④ 発注 サービスを利用するためのクライアントプログラム テンポラリーメーカ を自動生成したりするために用いられる. WSDL で 定義される情報の型を表 1.に示す.具体的に WSDL 図 2.システムのモデル ドキュメントでは,主にこの 6 つの要素を使用して 3.2 処理の流れ Web サービスが提供するサービスを記述する. ここでは,商取引を行う全体の処理の流れについ 3.調達 B2B システムの開発 3.1 システムのモデル て説明する.まず,小売業者から卸売業者への商品 発注を受けて, 卸売業者はメーカに在庫確認を行い, 今回開発する B2B システムは,食料品を扱う卸売業 メーカはその在庫確認を卸売業者に回答する.在庫 者とスーパーマーケットのような小売業者,食料品 があれば, 卸売業者はそのままメーカに発注を行う. メーカ間の商品流通に関する動的な電子商取引を実 欠品商品については,その商品を扱っているメーカ 現するものである.小売業者からの新規商品の受注 を DB から商品コードによって検索し,UDDI レジス 表 1.要素型の一覧表 トリと連携してその商品を扱うメーカ情報及びその 要素 ① types 解説 メーカが提供する Web サービス情報を取得する.そ メッセージ内で用いられる情報を型と の複数のメーカに対して,在庫確認と見積もり依頼 して定義 ② ③ message portType サービスとその利用者間で送受信され るメッセージを定義 これを繰り返し,小売業者から受注した全商品に対 Operation 要素をまとめてサービスを形 するメーカへの発注を完了する.小売業者は逐次状 成 況照会を行う.卸売業者は,小売業者からの注文を 格納する受注 DB と, メーカへの発注内容を格納する ④ binding WSDL におけるバインディングの定義 ⑤ service ③,④を用いて説明されたサービスの特 定の実装にアクセスするための情報の ⑥ port を行い,発注メーカを選択して,商品発注を行う. 発注 DB,及び取引メーカを管理する DB の3つの DB 定義 を持つ.各メーカは受注と発注を管理する受発注 DB 具体的なネットワークアドレスと④を と在庫を管理する在庫 DB を持ち, 食料品協会はメー 関連づけることによって定義 カ情報 DB を持っている.この流れを図 3.に示す. や既存商品のメーカ在庫切れに対して,その商品を ここでのポイントは,欠品が発生した時に,その SOAP/UDDI/WSDL によるB2B システムの開発(2) 商品を供給する最適なメーカを動的に検索し,選定 UDDI レジストリとして Microsoft Access を使用し できることである. ている.UDDI に登録されているデータを XML 階層で 3.3 システムの機能 表したものを図 6.に示す.UDDI への検索サービス これらの処理を実現するシステムの機能を以下に は UDDI4J[7]を用いて開発した. 示す.これらのサービスを全て Web サービスとして 提供する. 3.3.1 卸売業者が提供する Web サービス (1) 発注サービス(OrderService) 小売業者はこの Web サービスで発注処理を行う (図 4.). < bus ine ssE nti ty aut hor ize dNa me= "ka ney ama " b usi nes sKe y=" 718 a49 ff‑ f20 0‑0 000 ‑00 80‑ 8f5 26d 650 22a " o per ato r=" www .in dus log ic. com "> <na me> Kan eya ma com pan y</ nam e> <co nta cts > <c ont act us eTy pe= ""> < per son Nam e>k ane yam a</ per son Nam e> < des cri pti on xml :la ng= "en "> kos hid a l abo rat ory </d esc rip tio n> < pho ne use Typ e=" pho ne" >08 52‑ 36‑ 111 1</ pho ne> < ema il use Typ e=" E‑m ail "> kan eya ma‑ com pan y@k ane yam a.c om< /em ail > < add res s s ort Cod e=" " t Mod elK ey= "" use Typ e=" "> <ad dre ssL ine ke yNa me= "" key Val ue= ""> Ni shi iku ma 14‑ 4</ add res sLi ne> (中略) < /ad dre ss> </ con tac t> </c ont act s> (中略) < /bu sin ess Ent ity > 図 6. UDDI の XML データ階層 (1) メーカ検索サービス(findMakerByProductCode) これは卸売業者に対するサービスであり,商品コ ード(JAN コード)を検索キーとして指定すること で, その商品を生産するメーカの一覧 (企業コード, 図 4. 発注伝票画面 小売業者は,発注商品,発注数量,納品希望日な 企業名,アクセスポイントなど)を出力する.図 7. はこのサービスの結果を表示した画面である. どを入力し,発注を行う. (2) 発注状況照会サービス(SituationOrder) これも卸売業者が小売業者に提供する Web サービ スである.図 5.は発注状況照会画面である.「○」 が在庫あり,「×」が在庫なし,「△」は在庫不足 を示す. 図 7. メーカ検索サービス (2) メーカ情報提供サービス (getMakerDetail) 企業コードを入力し,UDDI と連携してその企業情 報(資本金,取引銀行など)を出力する.図 8.は このサービスの結果を表示した画面である. 食料品協会の持つメーカ情報 DB には,メーカが UDDI に登録した時に与えられるビジネスキーやメ 図 5. 状況照会画面 ーカ名, UDDI では持たない情報を格納する (表 2. ) . 3.3.2 食料品協会が提供する Web サービス 食料品協会はUDDIと連携したWebサービスを提供 する.UDDI には SOAPUDDI という Web アプリケーシ ョンを利用した. これは UDDI の XML 階層を実装した SOAP/UDDI/WSDL によるB2B システムの開発(3) まず卸売業者は商品分類コード(例:冷凍食品)を 用いてメーカ検索を行うサービスである 「findMakerByProductCode」を利用し,商品を扱って いるメーカを検索する.食料品協会では受け取った 商品分類コードを使用して, メーカ情報 DB からビジ ネスキー,メーカ名を検索し,そのビジネスキーを 使用してUDDIからメーカWebサービスへのアクセス ポイントを取得する.ビジネスキー,メーカ名,ア クセスポイントは見つかったメーカ数だけ卸売業者 に伝えられ,次に卸売業者はそのビジネスキーを用 図 8. メーカ情報提供サービス いてメーカ情報を提供するサービスである 表 2. メーカ情報 DB 「getMakerDetail」を利用する.食料品協会では受け テーブル:MakerInfo 属性名 説明 businessKey ビジネスキー makerName メーカ名 capital 資本金 stockHolder 主要株主 contents 業務内容 mainBank 主要取引銀行 customer 主要取引先 supplier 主要仕入先 productCode 商品分類コード productHandled 取扱商品 取ったビジネスキーによって, メーカ情報 DB から主 要株主,事業内容などの情報を,UDDI からはメーカ の電話番号,E‑mail アドレス,住所を取得して卸売 業者に伝える.卸売業者はこのメーカ情報を見て取 引を行うメーカを選択し,メーカの Web サービスを 利用することができる. このように UDDI と連携している食料品協会の存 在により,欠品が発生したとき,その商品を供給す るメーカを動的に検索することができるようになる. (3) Web サービスのセキュリティ また食料品協会ではメーカの検索と登録を行うこ B2B での通信では,セキュリティが必要不可欠と とができるホームページを公開している(図 9.). なってくる.そこで XML 暗号や XML 署名による SOAP これは JSP と Servlet で開発した. の機能強化を提供する WS‑Security(Web Services Security)仕様での試験を行った. 今回 XKMS 方式(XML Key Management Service:公 開鍵情報の処理と管理を外部のサービスに依頼す る)を用いて,XML 署名と XML 暗号処理を行った. この処理は WSTK (Web Service Toolkit)で構築した. 3.3.3 メーカが提供する Web サービス 図 10 .に登録されているサービスを示す. Version,AdminService は始めから登録されている サービスで Axis を利用するのに必要な土台である. メーカが提供する発注サービスとして, 図 9. 食料品協会ホームページ 通常メーカへの発注において欠品商品が生じた場 合,卸売業者は食料品協会が提供している Web サー MakerService を配備した.以下で MakerService の 内容を説明する. (1) 在庫・価格見積もり (PriceAndAvailable) ビスを使用して欠品を補うテンポラリーメーカを検 在庫・価格見積もりを回答するメソッドである. 索し,メーカの Web サービスのアクセスポイントを 商品名,発注数量,希望納品日などを入力し,価格, 取得する. 発注数量に対する対応数量などを出力する. SOAP/UDDI/WSDL によるB2B システムの開発(4) 表 4. 受発注 DB orderTable 図 10. メーカサービス一覧 (2) 発注要求サービス (RequestOrder) 実際に発注を行うメソッドである.商品,発注数 量,希望納品日など入力する.発注が行われると, そ の メ ー カ の 在 庫 DB(productTable) , 受 発 注 DB(TimeAndPlaceTable, orderTable)が更新される. 以上の 2 メソッドを各メーカに配備する. (3) DB について 在庫・価格見積もり,発注要求を行う際に必要な DB を説明する. a) 取引メーカ DB 表 3. は卸売業者が持っている取引メーカ DB で, 属性名 説明 voucher 伝票番号 JAN 製品コード product 製品名 request 要求数量 totalPrice 合計金額 TimeAndPlaceTable voucher 伝票番号 receiveTime 受注日時 appointedDay 納品予定期日 retailStore 小売名 place 場所 wholeID 卸売業者 ID wholeName 卸売業者名 表 5. 在庫 DB productTable 属性名 説明 JAN 製品コード product 製品名 stocks 在庫 price 単価 BusinessConnection テーブルを持つ.卸売業者が 最初に製品を発注するとき,BusinessConnection テーブルの製品に対応した通常メーカを参照する. b) 受発注 DB・在庫 DB 表 4.,表 5.は各メーカが持っている受発注 DB,在庫 DB である.ProductTable を参照し, PriceAndAvailable メソッドで在庫・価格見積も 図 11 . BusinessConnection りを行い,RequestOrder メソッドで在庫を更新す ることで発注処理を行う.TimeAndPlaceTable に 発注要求をした卸売業者の詳細を記録する.そし て orderTable に具体的な発注内容(製品名,数量 など)を記録する. 表 3. 取引メーカ DB BusinessConnection 属性名 説明 JAN 製品コード product 製品名 maker 通常メーカ名 accessPoint アクセスポイント (4) 処理内容 図 12. PriceAndAvailable 図 12.で発注した内容を確認し,発注処理を行う. 図 13.から図 15.にメーカが持っている受発注・在 MakerService をコマンドプロンプトで利用した 庫 DB を示す.図 12.で発注した処理により,これ 場合を説明する.図 11.に BusinessConnection を らの DB が更新されているのが分かる.図 13.の在 示す.product のライトビールを 100 本発注した場 庫 DB では, ライトビールの在庫(stocks)が 100 減少 合,在庫・価格見積もりは図 12.のようになる. している.図 14.と図 15.の受発注 DB では,発注 SOAP/UDDI/WSDL によるB2B システムの開発(5) した商品,数量などが更新されている. の企業では導入コストが高いために従来型の電子商 取引はあまり普及しておらず,電話や FAX による発 注作業が依然残っている.しかし Web サービス技術 は,インターネット接続環境を整備している企業で あれば,容易に利用することができる.また,取引 図 13. ProductTable 先が固定されている従来の電子商取引とは違い, UDDI レジストリを利用することにより,今まで全く 取引がなかったベンダーとも必要に応じて,動的に 接続できるようになる.今後は,複数の Web サービ 図 14. TimeAndPlaceTable スの連携や企業間での Web サービスの結合も考えら れる.このように,様々なシステムを柔軟に,迅速 に,容易に,安価に実現する Web サービスは,今後 の B2B システムにおいて,非常に重要なものとなる 図 15. OrderTable だろう.今回の開発を通して,更に使いやすくなる ように現在の問題点を明確化し,それらを解決する 4. おわりに 提案や実装の実現に努力したい. 現在,取引を行う中小規模の企業も多く,それら メーカ情報 DB ①受注 Servlet をコール 食料品協会 UDDI SOAP サーバ メーカ検索サービス メーカ情報サービス ⑥発注 処理 卸売業者 SOAP サーバ 小売業者 ⑧発注回答 ⑮最終発注 状況の回答 受注 DB 通常メーカ SOAP サーバ 在庫・価格見積もりサービス 発注要求サービス ④在庫 ⑨メーカ 確認 ⑤在庫回答 の検索 ⑩検索の 回答 ②受注画面 表示 ③発注処理 UDDI サーバ ⑦受注回答 ⑪在庫確認 発注要求サービス 発注状況照会サービス ⑫在庫 回答 ⑬発注処理 発注 DB 取引メーカ 一覧 DB 受注 DB 在庫 DB テンポラリー メーカ SOAP サーバ 在庫・価格見積もりサービス ⑭受注 発注要求サービス 回答 図 3.処理の流れ 参考文献 [1] World Wide Web [5] 日本ユニシス株式会社:高瀬俊郎:SOAP,情報処 Consortium(W3C), 理,VOL.42 NO.9,pp.863‑869 http://www.w3.org/ [6] 高瀬俊郎 :UDDI と WSDL, 情報処理,VOL.42 NO.9, [2] SOAP, http://www.w3.org/TR/SOAP/ pp.870‑877 [3] UDDI, http://www.uddi.org/ [7]UDDI4J,http://www‑124.ibm.com/developerwor [4] WSDL, http://www.w3.org/TR/WSDL ks/oss/uddi4 SOAP/UDDI/WSDL によるB2B システムの開発(6)
© Copyright 2025 Paperzz