エージェントによる Web サービス連携型商取引システム 研究者 :白池美穂 指導教員:越田高志
1.はじめに インターネットの利用環境 l 情報の受け手であったユーザが情報の発信者に もなる双方向の通信に変化している。 Google Yahoo 新しい Web サービス マッシュアップ l 企業が提供している Web サービスをユーザ が組み合わせて新たな Web サービスを作り 出す。
研究の背景 Web サービス 連携 l 商取引のビジネス分野では、 複数の Web サービスの連携 がほとんどない。 l インターンシップで商取引 のシステムを開発 連携がない そこ で・・・
l 複数の Web サービスとそれらの連携を行 う協調エージェントを開発する。 エージェント Web サービス サーバ ネットワーク
2.研究目標 lWeb サービスの開発 商取引の基本手順に対応した Web サービス l 協調エージェントの開発 複数の Web サービスを連携させるエージェン ト ユースケースの商取引を 実現するシステムを開発
3.システムの概要 加工食品メーカ 小売業者 卸売業者 選別されたメーカ 要求 回答 信用調査会社 商品受注 Web サービス ① ② ③ ④ ⑤ ⑥⑦ ⑧ エージェント 信用調査 Web サービス 在庫確認 見積り要求 在庫確認 見積り回答 商品選別 発注 メーカ商品 受注完了 信用調査 回答 信用調査 要求 商品受注 完了 商品要求 エージェント 信用調査 Web サービス 商品受注 Web サービス
開発環境 Java 言語 JDK1.6 エージェントシステム Jade4.0 Web サービス Axis2-1.5 データベース MySQL
開発した Web サービス l 加工食品メーカ ・在庫管理 Web サービ ス ・商品受注 Web サービ ス l 信用調査会社 ・信用調査 Web サービ ス 4.システムの構成と機能
開発したエージェント l 卸売業者 ・ StockServiceAgent メーカの Web サービスを連携するエージェント ・ CreditServiceAgent 信用調査の Web サービスを実行するエージェント ・ ClientAgent これら 2 つのエージェントを連携し制御するエージェント
5.システムの実証実験 l 信用調査 Web サービス実行 ( ②, ③ ) 入力画面 出力画面
l 在庫管理 Web サービス実行 ( ④ ) ・選択条件 番号1:最安価の商品を選択する 番号2:特定のメーカを指定する 番号3: 100g 当りの価格が最安価の商品を選択する 信用調査完了後 (卸売業者 → 3メーカ) 1 を入力
l 在庫管理 Web サービスの実行結果 ( ⑤ ) (3メーカ → 卸売業者) ham_A 社 ham_B 社 ham_C 社 最安価をエージェント によって決める
エージェントによる選別結果 選別結果 最終確認 商品受注 Web サービス 実行 ( ⑥ ) 受注完了 メッセー ジ ham_B 社 商品受注 Web サービス 実行 ( ⑦ ) メーカ → 卸売業者 卸売業者 → メーカ
6.おわりに ・ 商取引の基本手順に対応した Web サービスを 開発した。 ・複数の Web サービスの連携を行うエージェント を開発した。 ・ユースケースの商取引を実現するシステム を開発した。 l まとめ
ご清聴ありがとうございました。 l 今後の課題 ・ ユーザインターフェースを全てコマンド プロンプトで開発した。 今後は、入出力を GUI で構成するよう 検討して行きたい。
エージェント連携プログラム // リクエストメッセージ作成 ACLMessage requestMsg1 = new ACLMessage(ACLMessage.REQUEST); // 自分自身のエージェント名をセット requestMsg1.setSender(getAID()); // 送信先エージェント名指定 requestMsg1.addReceiver(new AID(agname, false)); requestMsg1.setLanguage(codec.getName()); requestMsg1.setOntology(ontology.getName()); try{ manager.fillContent(requestMsg1,new Action(new AID(agname,false),request1)); // リクエストメッセージを送信 send(requestMsg1); System.out.println("Requests have been sent to Web Service Agent."); System.out.println("Agent answers the results of Web Service(getCredit)."); }catch(Exception e){ e.printStackTrace(); } ClientAgent
Web サービス稼働プログラム //peak6 の「在庫管理 Web サービス」実行 RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); EndpointReference targetEPR =new EndpointReference( ur1 ); options.setTo( targetEPR ); // メソッド指定 QName opGetStock = new QName(" "getStockdetails"); //peak16 の「在庫管理 Web サービス」実行 RPCServiceClient serviceClient2 = new RPCServiceClient(); Options options2 = serviceClient2.getOptions(); EndpointReference targetEPR2 =new EndpointReference( ur2 ); options2.setTo( targetEPR2 ); StockServiceAgent
REST 型と SOAP 型の違い lREST(REpresentational State Transfer) ・ HTTP プロトコルでやり取り ・初期の学習コストが低い ・手軽に試せる lSOAP(Simple Object Access Protocol) ・拡張性が高い ・ Web サービスの実行結果を別の Web サービス の入力として扱える
加工食品メーカのデータベース hamtypehamnamecodepricevolumestocksmakername Roast ham slicesOban ham ham_A Roast hamRoast ham_A Boneless ham slicesSlice ham ham_A Boneless hamBoneless ham_A Raw hamRaw ham_A Roast ham slicesRoast ham_A Roast hamJukusei ham ham_A Stock テーブル 商品名 ハムの種類 コード 価格 内容量 在庫数 メーカ 名
加工食品メーカデータベース 業者名 業者 ID コード 納品日 受注日 個数 Orders テーブル
信用調査会社データベース nameheadaddresstelcredit CompanyAShiraikeShimane,Matsue,Nishiikuma, OK CompanyBMohammadK.Ali203 N.Goodwin Ave.,URBANA,IL OK CompanyCKousenTaro8653 Warmwell,San Diego,CA OK Company テーブル 代表者名 小売業者名 住所 電話番号 信用結果